caxlsx 3.2.0 → 3.3.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (300) hide show
  1. checksums.yaml +4 -4
  2. data/.yardopts +9 -9
  3. data/.yardopts_guide +18 -18
  4. data/CHANGELOG.md +385 -354
  5. data/LICENSE +21 -21
  6. data/README.md +165 -168
  7. data/Rakefile +29 -29
  8. data/examples/generate.rb +15 -15
  9. data/lib/axlsx/content_type/abstract_content_type.rb +32 -32
  10. data/lib/axlsx/content_type/content_type.rb +26 -26
  11. data/lib/axlsx/content_type/default.rb +25 -25
  12. data/lib/axlsx/content_type/override.rb +25 -25
  13. data/lib/axlsx/doc_props/app.rb +235 -235
  14. data/lib/axlsx/doc_props/core.rb +39 -39
  15. data/lib/axlsx/drawing/area_chart.rb +99 -99
  16. data/lib/axlsx/drawing/area_series.rb +110 -110
  17. data/lib/axlsx/drawing/ax_data_source.rb +26 -26
  18. data/lib/axlsx/drawing/axes.rb +61 -61
  19. data/lib/axlsx/drawing/axis.rb +190 -190
  20. data/lib/axlsx/drawing/bar_3D_chart.rb +148 -148
  21. data/lib/axlsx/drawing/bar_chart.rb +138 -138
  22. data/lib/axlsx/drawing/bar_series.rb +97 -97
  23. data/lib/axlsx/drawing/bubble_chart.rb +59 -59
  24. data/lib/axlsx/drawing/bubble_series.rb +63 -63
  25. data/lib/axlsx/drawing/cat_axis.rb +85 -85
  26. data/lib/axlsx/drawing/chart.rb +299 -276
  27. data/lib/axlsx/drawing/d_lbls.rb +91 -90
  28. data/lib/axlsx/drawing/drawing.rb +167 -167
  29. data/lib/axlsx/drawing/graphic_frame.rb +54 -54
  30. data/lib/axlsx/drawing/hyperlink.rb +100 -100
  31. data/lib/axlsx/drawing/line_3D_chart.rb +68 -68
  32. data/lib/axlsx/drawing/line_chart.rb +99 -99
  33. data/lib/axlsx/drawing/line_series.rb +110 -110
  34. data/lib/axlsx/drawing/marker.rb +84 -84
  35. data/lib/axlsx/drawing/num_data.rb +52 -52
  36. data/lib/axlsx/drawing/num_data_source.rb +62 -62
  37. data/lib/axlsx/drawing/num_val.rb +34 -34
  38. data/lib/axlsx/drawing/one_cell_anchor.rb +99 -99
  39. data/lib/axlsx/drawing/pic.rb +211 -211
  40. data/lib/axlsx/drawing/picture_locking.rb +42 -42
  41. data/lib/axlsx/drawing/pie_3D_chart.rb +47 -47
  42. data/lib/axlsx/drawing/pie_series.rb +74 -74
  43. data/lib/axlsx/drawing/scaling.rb +60 -60
  44. data/lib/axlsx/drawing/scatter_chart.rb +74 -74
  45. data/lib/axlsx/drawing/scatter_series.rb +129 -129
  46. data/lib/axlsx/drawing/ser_axis.rb +45 -45
  47. data/lib/axlsx/drawing/series.rb +69 -69
  48. data/lib/axlsx/drawing/series_title.rb +25 -25
  49. data/lib/axlsx/drawing/str_data.rb +42 -42
  50. data/lib/axlsx/drawing/str_val.rb +34 -34
  51. data/lib/axlsx/drawing/title.rb +107 -97
  52. data/lib/axlsx/drawing/two_cell_anchor.rb +97 -97
  53. data/lib/axlsx/drawing/val_axis.rb +37 -37
  54. data/lib/axlsx/drawing/view_3D.rb +115 -115
  55. data/lib/axlsx/drawing/vml_drawing.rb +42 -42
  56. data/lib/axlsx/drawing/vml_shape.rb +66 -66
  57. data/lib/axlsx/package.rb +398 -388
  58. data/lib/axlsx/rels/relationship.rb +130 -130
  59. data/lib/axlsx/rels/relationships.rb +32 -32
  60. data/lib/axlsx/stylesheet/border.rb +73 -73
  61. data/lib/axlsx/stylesheet/border_pr.rb +71 -71
  62. data/lib/axlsx/stylesheet/cell_alignment.rb +132 -132
  63. data/lib/axlsx/stylesheet/cell_protection.rb +41 -41
  64. data/lib/axlsx/stylesheet/cell_style.rb +72 -72
  65. data/lib/axlsx/stylesheet/color.rb +76 -76
  66. data/lib/axlsx/stylesheet/dxf.rb +79 -79
  67. data/lib/axlsx/stylesheet/fill.rb +35 -35
  68. data/lib/axlsx/stylesheet/font.rb +156 -156
  69. data/lib/axlsx/stylesheet/gradient_fill.rb +103 -103
  70. data/lib/axlsx/stylesheet/gradient_stop.rb +37 -37
  71. data/lib/axlsx/stylesheet/num_fmt.rb +86 -86
  72. data/lib/axlsx/stylesheet/pattern_fill.rb +73 -73
  73. data/lib/axlsx/stylesheet/styles.rb +535 -494
  74. data/lib/axlsx/stylesheet/table_style.rb +54 -54
  75. data/lib/axlsx/stylesheet/table_style_element.rb +77 -77
  76. data/lib/axlsx/stylesheet/table_styles.rb +46 -46
  77. data/lib/axlsx/stylesheet/xf.rb +147 -147
  78. data/lib/axlsx/util/accessors.rb +64 -64
  79. data/lib/axlsx/util/constants.rb +416 -410
  80. data/lib/axlsx/util/mime_type_utils.rb +11 -11
  81. data/lib/axlsx/util/options_parser.rb +16 -16
  82. data/lib/axlsx/util/serialized_attributes.rb +89 -89
  83. data/lib/axlsx/util/simple_typed_list.rb +179 -179
  84. data/lib/axlsx/util/storage.rb +146 -146
  85. data/lib/axlsx/util/validators.rb +312 -312
  86. data/lib/axlsx/util/zip_command.rb +73 -73
  87. data/lib/axlsx/version.rb +5 -5
  88. data/lib/axlsx/workbook/defined_name.rb +128 -128
  89. data/lib/axlsx/workbook/defined_names.rb +21 -21
  90. data/lib/axlsx/workbook/shared_strings_table.rb +77 -77
  91. data/lib/axlsx/workbook/workbook.rb +425 -395
  92. data/lib/axlsx/workbook/workbook_view.rb +80 -80
  93. data/lib/axlsx/workbook/workbook_views.rb +22 -22
  94. data/lib/axlsx/workbook/worksheet/auto_filter/auto_filter.rb +77 -77
  95. data/lib/axlsx/workbook/worksheet/auto_filter/filter_column.rb +94 -94
  96. data/lib/axlsx/workbook/worksheet/auto_filter/filters.rb +244 -244
  97. data/lib/axlsx/workbook/worksheet/border_creator.rb +76 -0
  98. data/lib/axlsx/workbook/worksheet/break.rb +35 -35
  99. data/lib/axlsx/workbook/worksheet/cell.rb +532 -506
  100. data/lib/axlsx/workbook/worksheet/cell_serializer.rb +164 -164
  101. data/lib/axlsx/workbook/worksheet/cfvo.rb +60 -60
  102. data/lib/axlsx/workbook/worksheet/cfvos.rb +18 -18
  103. data/lib/axlsx/workbook/worksheet/col.rb +145 -145
  104. data/lib/axlsx/workbook/worksheet/col_breaks.rb +35 -35
  105. data/lib/axlsx/workbook/worksheet/color_scale.rb +110 -110
  106. data/lib/axlsx/workbook/worksheet/cols.rb +23 -23
  107. data/lib/axlsx/workbook/worksheet/comment.rb +91 -91
  108. data/lib/axlsx/workbook/worksheet/comments.rb +82 -82
  109. data/lib/axlsx/workbook/worksheet/conditional_formatting.rb +82 -82
  110. data/lib/axlsx/workbook/worksheet/conditional_formatting_rule.rb +220 -220
  111. data/lib/axlsx/workbook/worksheet/conditional_formattings.rb +25 -25
  112. data/lib/axlsx/workbook/worksheet/data_bar.rb +129 -129
  113. data/lib/axlsx/workbook/worksheet/data_validation.rb +267 -246
  114. data/lib/axlsx/workbook/worksheet/data_validations.rb +28 -28
  115. data/lib/axlsx/workbook/worksheet/date_time_converter.rb +30 -30
  116. data/lib/axlsx/workbook/worksheet/dimension.rb +64 -64
  117. data/lib/axlsx/workbook/worksheet/header_footer.rb +52 -52
  118. data/lib/axlsx/workbook/worksheet/icon_set.rb +81 -81
  119. data/lib/axlsx/workbook/worksheet/merged_cells.rb +37 -37
  120. data/lib/axlsx/workbook/worksheet/outline_pr.rb +33 -33
  121. data/lib/axlsx/workbook/worksheet/page_margins.rb +97 -97
  122. data/lib/axlsx/workbook/worksheet/page_set_up_pr.rb +44 -44
  123. data/lib/axlsx/workbook/worksheet/page_setup.rb +240 -240
  124. data/lib/axlsx/workbook/worksheet/pane.rb +139 -139
  125. data/lib/axlsx/workbook/worksheet/pivot_table.rb +335 -296
  126. data/lib/axlsx/workbook/worksheet/pivot_table_cache_definition.rb +66 -66
  127. data/lib/axlsx/workbook/worksheet/pivot_tables.rb +24 -24
  128. data/lib/axlsx/workbook/worksheet/print_options.rb +39 -39
  129. data/lib/axlsx/workbook/worksheet/protected_range.rb +47 -47
  130. data/lib/axlsx/workbook/worksheet/protected_ranges.rb +37 -37
  131. data/lib/axlsx/workbook/worksheet/rich_text.rb +55 -55
  132. data/lib/axlsx/workbook/worksheet/rich_text_run.rb +250 -250
  133. data/lib/axlsx/workbook/worksheet/row.rb +164 -164
  134. data/lib/axlsx/workbook/worksheet/row_breaks.rb +33 -33
  135. data/lib/axlsx/workbook/worksheet/selection.rb +101 -101
  136. data/lib/axlsx/workbook/worksheet/sheet_calc_pr.rb +29 -29
  137. data/lib/axlsx/workbook/worksheet/sheet_data.rb +27 -27
  138. data/lib/axlsx/workbook/worksheet/sheet_pr.rb +87 -87
  139. data/lib/axlsx/workbook/worksheet/sheet_protection.rb +118 -118
  140. data/lib/axlsx/workbook/worksheet/sheet_view.rb +213 -213
  141. data/lib/axlsx/workbook/worksheet/table.rb +102 -102
  142. data/lib/axlsx/workbook/worksheet/table_style_info.rb +49 -49
  143. data/lib/axlsx/workbook/worksheet/tables.rb +34 -34
  144. data/lib/axlsx/workbook/worksheet/worksheet.rb +829 -786
  145. data/lib/axlsx/workbook/worksheet/worksheet_comments.rb +58 -58
  146. data/lib/axlsx/workbook/worksheet/worksheet_drawing.rb +58 -58
  147. data/lib/axlsx/workbook/worksheet/worksheet_hyperlink.rb +74 -74
  148. data/lib/axlsx/workbook/worksheet/worksheet_hyperlinks.rb +38 -38
  149. data/lib/axlsx.rb +204 -185
  150. data/lib/caxlsx.rb +2 -2
  151. data/lib/schema/dc.xsd +118 -118
  152. data/lib/schema/dcmitype.xsd +51 -51
  153. data/lib/schema/dcterms.xsd +331 -331
  154. data/lib/schema/dml-chartDrawing.xsd +146 -146
  155. data/lib/schema/dml-compatibility.xsd +14 -14
  156. data/lib/schema/dml-lockedCanvas.xsd +11 -11
  157. data/lib/schema/dml-main.xsd +3048 -3048
  158. data/lib/schema/dml-picture.xsd +23 -23
  159. data/lib/schema/dml-spreadsheetDrawing.xsd +185 -185
  160. data/lib/schema/dml-wordprocessingDrawing.xsd +185 -185
  161. data/lib/schema/shared-additionalCharacteristics.xsd +28 -28
  162. data/lib/schema/shared-bibliography.xsd +144 -144
  163. data/lib/schema/shared-commonSimpleTypes.xsd +166 -166
  164. data/lib/schema/shared-customXmlDataProperties.xsd +25 -25
  165. data/lib/schema/shared-customXmlSchemaProperties.xsd +18 -18
  166. data/lib/schema/shared-documentPropertiesCustom.xsd +59 -59
  167. data/lib/schema/shared-documentPropertiesExtended.xsd +56 -56
  168. data/lib/schema/shared-documentPropertiesVariantTypes.xsd +195 -195
  169. data/lib/schema/shared-relationshipReference.xsd +25 -25
  170. data/lib/schema/vml-main.xsd +569 -569
  171. data/lib/schema/vml-officeDrawing.xsd +509 -509
  172. data/lib/schema/vml-presentationDrawing.xsd +12 -12
  173. data/lib/schema/vml-spreadsheetDrawing.xsd +108 -108
  174. data/lib/schema/vml-wordprocessingDrawing.xsd +96 -96
  175. data/lib/schema/xml.xsd +116 -116
  176. metadata +5 -252
  177. data/test/benchmark.rb +0 -72
  178. data/test/content_type/tc_content_type.rb +0 -76
  179. data/test/content_type/tc_default.rb +0 -16
  180. data/test/content_type/tc_override.rb +0 -14
  181. data/test/doc_props/tc_app.rb +0 -43
  182. data/test/doc_props/tc_core.rb +0 -42
  183. data/test/drawing/tc_area_chart.rb +0 -39
  184. data/test/drawing/tc_area_series.rb +0 -71
  185. data/test/drawing/tc_axes.rb +0 -8
  186. data/test/drawing/tc_axis.rb +0 -112
  187. data/test/drawing/tc_bar_3D_chart.rb +0 -86
  188. data/test/drawing/tc_bar_chart.rb +0 -86
  189. data/test/drawing/tc_bar_series.rb +0 -46
  190. data/test/drawing/tc_bubble_chart.rb +0 -44
  191. data/test/drawing/tc_bubble_series.rb +0 -21
  192. data/test/drawing/tc_cat_axis.rb +0 -31
  193. data/test/drawing/tc_cat_axis_data.rb +0 -27
  194. data/test/drawing/tc_chart.rb +0 -123
  195. data/test/drawing/tc_d_lbls.rb +0 -57
  196. data/test/drawing/tc_data_source.rb +0 -23
  197. data/test/drawing/tc_drawing.rb +0 -80
  198. data/test/drawing/tc_graphic_frame.rb +0 -27
  199. data/test/drawing/tc_hyperlink.rb +0 -64
  200. data/test/drawing/tc_line_3d_chart.rb +0 -47
  201. data/test/drawing/tc_line_chart.rb +0 -39
  202. data/test/drawing/tc_line_series.rb +0 -71
  203. data/test/drawing/tc_marker.rb +0 -44
  204. data/test/drawing/tc_named_axis_data.rb +0 -27
  205. data/test/drawing/tc_num_data.rb +0 -31
  206. data/test/drawing/tc_num_val.rb +0 -29
  207. data/test/drawing/tc_one_cell_anchor.rb +0 -66
  208. data/test/drawing/tc_pic.rb +0 -103
  209. data/test/drawing/tc_picture_locking.rb +0 -72
  210. data/test/drawing/tc_pie_3D_chart.rb +0 -28
  211. data/test/drawing/tc_pie_series.rb +0 -33
  212. data/test/drawing/tc_scaling.rb +0 -36
  213. data/test/drawing/tc_scatter_chart.rb +0 -48
  214. data/test/drawing/tc_scatter_series.rb +0 -74
  215. data/test/drawing/tc_ser_axis.rb +0 -31
  216. data/test/drawing/tc_series.rb +0 -23
  217. data/test/drawing/tc_series_title.rb +0 -54
  218. data/test/drawing/tc_str_data.rb +0 -18
  219. data/test/drawing/tc_str_val.rb +0 -30
  220. data/test/drawing/tc_title.rb +0 -70
  221. data/test/drawing/tc_two_cell_anchor.rb +0 -36
  222. data/test/drawing/tc_val_axis.rb +0 -24
  223. data/test/drawing/tc_view_3D.rb +0 -54
  224. data/test/drawing/tc_vml_drawing.rb +0 -25
  225. data/test/drawing/tc_vml_shape.rb +0 -106
  226. data/test/fixtures/image1.gif +0 -0
  227. data/test/fixtures/image1.jpeg +0 -0
  228. data/test/fixtures/image1.jpg +0 -0
  229. data/test/fixtures/image1.png +0 -0
  230. data/test/fixtures/image1_fake.jpg +0 -0
  231. data/test/profile.rb +0 -24
  232. data/test/rels/tc_relationship.rb +0 -52
  233. data/test/rels/tc_relationships.rb +0 -37
  234. data/test/stylesheet/tc_border.rb +0 -37
  235. data/test/stylesheet/tc_border_pr.rb +0 -32
  236. data/test/stylesheet/tc_cell_alignment.rb +0 -81
  237. data/test/stylesheet/tc_cell_protection.rb +0 -29
  238. data/test/stylesheet/tc_cell_style.rb +0 -57
  239. data/test/stylesheet/tc_color.rb +0 -43
  240. data/test/stylesheet/tc_dxf.rb +0 -81
  241. data/test/stylesheet/tc_fill.rb +0 -18
  242. data/test/stylesheet/tc_font.rb +0 -133
  243. data/test/stylesheet/tc_gradient_fill.rb +0 -72
  244. data/test/stylesheet/tc_gradient_stop.rb +0 -31
  245. data/test/stylesheet/tc_num_fmt.rb +0 -30
  246. data/test/stylesheet/tc_pattern_fill.rb +0 -43
  247. data/test/stylesheet/tc_styles.rb +0 -309
  248. data/test/stylesheet/tc_table_style.rb +0 -44
  249. data/test/stylesheet/tc_table_style_element.rb +0 -45
  250. data/test/stylesheet/tc_table_styles.rb +0 -29
  251. data/test/stylesheet/tc_xf.rb +0 -120
  252. data/test/tc_axlsx.rb +0 -109
  253. data/test/tc_helper.rb +0 -10
  254. data/test/tc_package.rb +0 -317
  255. data/test/util/tc_mime_type_utils.rb +0 -13
  256. data/test/util/tc_serialized_attributes.rb +0 -19
  257. data/test/util/tc_simple_typed_list.rb +0 -77
  258. data/test/util/tc_validators.rb +0 -210
  259. data/test/workbook/tc_defined_name.rb +0 -49
  260. data/test/workbook/tc_shared_strings_table.rb +0 -59
  261. data/test/workbook/tc_workbook.rb +0 -165
  262. data/test/workbook/tc_workbook_view.rb +0 -50
  263. data/test/workbook/worksheet/auto_filter/tc_auto_filter.rb +0 -38
  264. data/test/workbook/worksheet/auto_filter/tc_filter_column.rb +0 -76
  265. data/test/workbook/worksheet/auto_filter/tc_filters.rb +0 -50
  266. data/test/workbook/worksheet/tc_break.rb +0 -49
  267. data/test/workbook/worksheet/tc_cell.rb +0 -465
  268. data/test/workbook/worksheet/tc_cfvo.rb +0 -31
  269. data/test/workbook/worksheet/tc_col.rb +0 -93
  270. data/test/workbook/worksheet/tc_color_scale.rb +0 -58
  271. data/test/workbook/worksheet/tc_comment.rb +0 -72
  272. data/test/workbook/worksheet/tc_comments.rb +0 -57
  273. data/test/workbook/worksheet/tc_conditional_formatting.rb +0 -224
  274. data/test/workbook/worksheet/tc_data_bar.rb +0 -46
  275. data/test/workbook/worksheet/tc_data_validation.rb +0 -265
  276. data/test/workbook/worksheet/tc_date_time_converter.rb +0 -124
  277. data/test/workbook/worksheet/tc_header_footer.rb +0 -151
  278. data/test/workbook/worksheet/tc_icon_set.rb +0 -45
  279. data/test/workbook/worksheet/tc_outline_pr.rb +0 -19
  280. data/test/workbook/worksheet/tc_page_margins.rb +0 -97
  281. data/test/workbook/worksheet/tc_page_set_up_pr.rb +0 -15
  282. data/test/workbook/worksheet/tc_page_setup.rb +0 -143
  283. data/test/workbook/worksheet/tc_pane.rb +0 -54
  284. data/test/workbook/worksheet/tc_pivot_table.rb +0 -180
  285. data/test/workbook/worksheet/tc_pivot_table_cache_definition.rb +0 -62
  286. data/test/workbook/worksheet/tc_print_options.rb +0 -72
  287. data/test/workbook/worksheet/tc_protected_range.rb +0 -17
  288. data/test/workbook/worksheet/tc_rich_text.rb +0 -44
  289. data/test/workbook/worksheet/tc_rich_text_run.rb +0 -173
  290. data/test/workbook/worksheet/tc_row.rb +0 -160
  291. data/test/workbook/worksheet/tc_selection.rb +0 -55
  292. data/test/workbook/worksheet/tc_sheet_calc_pr.rb +0 -18
  293. data/test/workbook/worksheet/tc_sheet_format_pr.rb +0 -88
  294. data/test/workbook/worksheet/tc_sheet_pr.rb +0 -49
  295. data/test/workbook/worksheet/tc_sheet_protection.rb +0 -117
  296. data/test/workbook/worksheet/tc_sheet_view.rb +0 -214
  297. data/test/workbook/worksheet/tc_table.rb +0 -77
  298. data/test/workbook/worksheet/tc_table_style_info.rb +0 -53
  299. data/test/workbook/worksheet/tc_worksheet.rb +0 -632
  300. data/test/workbook/worksheet/tc_worksheet_hyperlink.rb +0 -55
@@ -1,309 +0,0 @@
1
- require 'tc_helper.rb'
2
-
3
- class TestStyles < Test::Unit::TestCase
4
- def setup
5
- @styles = Axlsx::Styles.new
6
- end
7
- def teardown
8
- end
9
-
10
- def test_valid_document
11
- schema = Nokogiri::XML::Schema(File.open(Axlsx::SML_XSD))
12
- doc = Nokogiri::XML(@styles.to_xml_string)
13
- errors = []
14
- schema.validate(doc).each do |error|
15
- errors.push error
16
- puts error.message
17
- end
18
- assert(errors.size == 0)
19
- end
20
-
21
- def test_add_style_border_hash
22
- border_count = @styles.borders.size
23
- @styles.add_style :border => {:style => :thin, :color => "FFFF0000"}
24
- assert_equal(@styles.borders.size, border_count + 1)
25
- assert_equal(@styles.borders.last.prs.last.color.rgb, "FFFF0000")
26
- assert_raise(ArgumentError) { @styles.add_style :border => {:color => "FFFF0000"} }
27
- assert_equal @styles.borders.last.prs.size, 4
28
- end
29
-
30
- def test_add_style_border_array
31
- prev_border_count = @styles.borders.size
32
-
33
- borders_array = [
34
- {:style => :thin, :color => "DDDDDD"},
35
- {:edges => [:top], :style => :thin, :color => "000000"},
36
- {:edges => [:bottom], :style => :thick, :color => "FF0000"},
37
- {:edges => [:left], :style => :dotted, :color => "FFFF00"},
38
- {:edges => [:right], :style => :dashed, :color => "FFFFFF"},
39
- {:style => :thick, :color => "CCCCCC"},
40
- ]
41
-
42
- @styles.add_style(border: borders_array)
43
-
44
- assert_equal(@styles.borders.size, (prev_border_count+1))
45
-
46
- current_border = @styles.borders.last
47
-
48
- borders_array.each do |b_opts|
49
- if b_opts[:edges]
50
- border_pr = current_border.prs.detect{|x| x.name == b_opts[:edges].first }
51
- assert_equal(border_pr.color.rgb, "FF#{b_opts[:color]}")
52
- end
53
- end
54
- end
55
-
56
- def test_add_style_border_edges
57
- @styles.add_style :border => { :style => :thin, :color => "0000FFFF", :edges => [:top, :bottom] }
58
- parts = @styles.borders.last.prs
59
- parts.each { |pr| assert_equal(pr.color.rgb, "0000FFFF", "Style is applied to #{pr.name} properly") }
60
- assert((parts.map { |pr| pr.name.to_s }.sort && ['bottom', 'top']).size == 2, "specify two edges, and you get two border prs")
61
- end
62
-
63
- def test_do_not_alter_options_in_add_style
64
- #This should test all options, but for now - just the bits that we know caused some pain
65
- options = { :border => { :style => :thin, :color =>"FF000000" } }
66
- @styles.add_style options
67
- assert_equal options[:border][:style], :thin, 'thin style is stil in option'
68
- assert_equal options[:border][:color], "FF000000", 'color is stil in option'
69
- end
70
-
71
- def test_parse_num_fmt
72
- f_code = {:format_code => "YYYY/MM"}
73
- num_fmt = {:num_fmt => 5}
74
- assert_equal(@styles.parse_num_fmt_options, nil, 'noop if neither :format_code or :num_fmt exist')
75
- max = @styles.numFmts.map{ |nf| nf.numFmtId }.max
76
- @styles.parse_num_fmt_options(f_code)
77
- assert_equal(@styles.numFmts.last.numFmtId, max + 1, "new numfmts gets next available id")
78
- assert(@styles.parse_num_fmt_options(num_fmt).is_a?(Integer), "Should return the provided num_fmt if not dxf")
79
- assert(@styles.parse_num_fmt_options(num_fmt.merge({:type => :dxf})).is_a?(Axlsx::NumFmt), "Makes a new NumFmt if dxf")
80
- end
81
-
82
- def test_parse_border_options_hash_required_keys
83
- assert_raise(ArgumentError, "Require color key") { @styles.parse_border_options(:border => { :style => :thin }) }
84
- assert_raise(ArgumentError, "Require style key") { @styles.parse_border_options(:border => { :color => "FF0d0d0d" }) }
85
- assert_nothing_raised { @styles.parse_border_options(:border => { :style => :thin, :color => "FF000000"} ) }
86
- end
87
-
88
- def test_parse_border_basic_options
89
- b_opts = {:border => { :diagonalUp => 1, :edges => [:left, :right], :color => "FFDADADA", :style => :thick } }
90
- b = @styles.parse_border_options b_opts
91
- assert(b.is_a? Integer)
92
- assert_equal(@styles.parse_border_options(b_opts.merge({:type => :dxf})).class,Axlsx::Border)
93
- assert(@styles.borders.last.diagonalUp == 1, "border options are passed in to the initializer")
94
- end
95
-
96
- def test_parse_border_options_edges
97
- b_opts = {:border => { :diagonalUp => 1, :edges => [:left, :right], :color => "FFDADADA", :style => :thick } }
98
- @styles.parse_border_options b_opts
99
- b = @styles.borders.last
100
- left = b.prs.select { |bpr| bpr.name == :left }[0]
101
- right = b.prs.select { |bpr| bpr.name == :right }[0]
102
- top = b.prs.select { |bpr| bpr.name == :top }[0]
103
- bottom = b.prs.select { |bpr| bpr.name == :bottom }[0]
104
- assert_equal(top, nil, "unspecified top edge should not be created")
105
- assert_equal(bottom, nil, "unspecified bottom edge should not be created")
106
- assert(left.is_a?(Axlsx::BorderPr), "specified left edge is set")
107
- assert(right.is_a?(Axlsx::BorderPr), "specified right edge is set")
108
- assert_equal(left.style,right.style, "edge parts have the same style")
109
- assert_equal(left.style, :thick, "the style is THICK")
110
- assert_equal(right.color.rgb,left.color.rgb, "edge parts are colors are the same")
111
- assert_equal(right.color.rgb,"FFDADADA", "edge color rgb is correct")
112
- end
113
-
114
- def test_parse_border_options_noop
115
- assert_equal(@styles.parse_border_options({}), nil, "noop if the border key is not in options")
116
- end
117
-
118
- def test_parse_border_options_integer_xf
119
- assert_equal(@styles.parse_border_options(:border => 1), 1)
120
- assert_raise(ArgumentError, "unknown border index") {@styles.parse_border_options(:border => 100) }
121
- end
122
-
123
- def test_parse_border_options_integer_dxf
124
- b_opts = { :border => { :edges => [:left, :right], :color => "FFFFFFFF", :style=> :thick } }
125
- b = @styles.parse_border_options(b_opts)
126
- b2 = @styles.parse_border_options(:border => b, :type => :dxf)
127
- assert(b2.is_a?(Axlsx::Border), "Cloned existing border object")
128
- end
129
-
130
- def test_parse_alignment_options
131
- assert_equal(@styles.parse_alignment_options {}, nil, "noop if :alignment is not set")
132
- assert(@styles.parse_alignment_options(:alignment => {}).is_a?(Axlsx::CellAlignment))
133
- end
134
-
135
- def test_parse_font_using_defaults
136
- original = @styles.fonts.first
137
- @styles.add_style :b => 1, :sz => 99
138
- created = @styles.fonts.last
139
- original_attributes = original.instance_values
140
- assert_equal(1, created.b)
141
- assert_equal(99, created.sz)
142
- copied = original_attributes.reject{ |key, value| %w(b sz).include? key }
143
- copied.each do |key, value|
144
- assert_equal(created.instance_values[key], value)
145
- end
146
- end
147
-
148
- def test_parse_font_options
149
- options = {
150
- :fg_color => "FF050505",
151
- :sz => 20,
152
- :b => 1,
153
- :i => 1,
154
- :u => :single,
155
- :strike => 1,
156
- :outline => 1,
157
- :shadow => 1,
158
- :charset => 9,
159
- :family => 1,
160
- :font_name => "woot font"
161
- }
162
- assert_equal(@styles.parse_font_options {}, nil, "noop if no font keys are set")
163
- assert(@styles.parse_font_options(:b=>1).is_a?(Integer), "return index of font if not :dxf type")
164
- assert_equal(@styles.parse_font_options(:b=>1, :type => :dxf).class, Axlsx::Font, "return font object if :dxf type")
165
-
166
- f = @styles.parse_font_options(options.merge(:type => :dxf))
167
- color = options.delete(:fg_color)
168
- options[:name] = options.delete(:font_name)
169
- options.each do |key, value|
170
- assert_equal(f.send(key), value, "assert that #{key} was parsed")
171
- end
172
- assert_equal(f.color.rgb, color)
173
- end
174
-
175
- def test_parse_fill_options
176
- assert_equal(@styles.parse_fill_options {}, nil, "noop if no fill keys are set")
177
- assert(@styles.parse_fill_options(:bg_color => "DE").is_a?(Integer), "return index of fill if not :dxf type")
178
- assert_equal(@styles.parse_fill_options(:bg_color => "DE", :type => :dxf).class, Axlsx::Fill, "return fill object if :dxf type")
179
- f = @styles.parse_fill_options(:bg_color => "DE", :type => :dxf)
180
- assert(f.fill_type.bgColor.rgb == "FFDEDEDE")
181
- end
182
-
183
- def test_parse_protection_options
184
- assert_equal(@styles.parse_protection_options {}, nil, "noop if no protection keys are set")
185
- assert_equal(@styles.parse_protection_options(:hidden => 1).class, Axlsx::CellProtection, "creates a new cell protection object")
186
- end
187
-
188
- def test_add_style
189
- fill_count = @styles.fills.size
190
- font_count = @styles.fonts.size
191
- xf_count = @styles.cellXfs.size
192
-
193
- @styles.add_style :bg_color=>"FF000000", :fg_color=>"FFFFFFFF", :sz=>13, :num_fmt=>Axlsx::NUM_FMT_PERCENT, :alignment=>{:horizontal=>:left}, :border=>Axlsx::STYLE_THIN_BORDER, :hidden=>true, :locked=>true
194
- assert_equal(@styles.fills.size, fill_count+1)
195
- assert_equal(@styles.fonts.size, font_count+1)
196
- assert_equal(@styles.cellXfs.size, xf_count+1)
197
- xf = @styles.cellXfs.last
198
- assert_equal(xf.fillId, (@styles.fills.size-1), "points to the last created fill")
199
- assert_equal(@styles.fills.last.fill_type.fgColor.rgb, "FF000000", "fill created with color")
200
-
201
- assert_equal(xf.fontId, (@styles.fonts.size-1), "points to the last created font")
202
- assert_equal(@styles.fonts.last.sz, 13, "font sz applied")
203
- assert_equal(@styles.fonts.last.color.rgb, "FFFFFFFF", "font color applied")
204
-
205
- assert_equal(xf.borderId, Axlsx::STYLE_THIN_BORDER, "border id is set")
206
- assert_equal(xf.numFmtId, Axlsx::NUM_FMT_PERCENT, "number format id is set")
207
-
208
- assert(xf.alignment.is_a?(Axlsx::CellAlignment), "alignment was created")
209
- assert_equal(xf.alignment.horizontal, :left, "horizontal alignment applied")
210
- assert_equal(xf.protection.hidden, true, "hidden protection set")
211
- assert_equal(xf.protection.locked, true, "cell locking set")
212
- assert_raise(ArgumentError, "should reject invalid borderId") { @styles.add_style :border => 2 }
213
-
214
-
215
- assert_equal(xf.applyProtection, true, "protection applied")
216
- assert_equal(xf.applyBorder, true, "border applied")
217
- assert_equal(xf.applyNumberFormat,true, "number format applied")
218
- assert_equal(xf.applyAlignment, true, "alignment applied")
219
- end
220
-
221
- def test_basic_add_style_dxf
222
- border_count = @styles.borders.size
223
- @styles.add_style :border => {:style => :thin, :color => "FFFF0000"}, :type => :dxf
224
- assert_equal(@styles.borders.size, border_count, "styles borders not affected")
225
- assert_equal(@styles.dxfs.last.border.prs.last.color.rgb, "FFFF0000")
226
- assert_raise(ArgumentError) { @styles.add_style :border => {:color => "FFFF0000"}, :type => :dxf }
227
- assert_equal @styles.borders.last.prs.size, 4
228
- end
229
-
230
- def test_add_style_dxf
231
- fill_count = @styles.fills.size
232
- font_count = @styles.fonts.size
233
- dxf_count = @styles.dxfs.size
234
-
235
- style = @styles.add_style :bg_color=>"FF000000", :fg_color=>"FFFFFFFF", :sz=>13, :alignment=>{:horizontal=>:left}, :border=>{:style => :thin, :color => "FFFF0000"}, :hidden=>true, :locked=>true, :type => :dxf
236
- assert_equal(@styles.dxfs.size, dxf_count+1)
237
- assert_equal(0, style, "returns the zero-based dxfId")
238
-
239
- dxf = @styles.dxfs.last
240
- assert_equal(@styles.dxfs.last.fill.fill_type.bgColor.rgb, "FF000000", "fill created with color")
241
-
242
- assert_equal(font_count, (@styles.fonts.size), "font not created under styles")
243
- assert_equal(fill_count, (@styles.fills.size), "fill not created under styles")
244
-
245
- assert(dxf.border.is_a?(Axlsx::Border), "border is set")
246
- assert_equal(nil, dxf.numFmt, "number format is not set")
247
-
248
- assert(dxf.alignment.is_a?(Axlsx::CellAlignment), "alignment was created")
249
- assert_equal(dxf.alignment.horizontal, :left, "horizontal alignment applied")
250
- assert_equal(dxf.protection.hidden, true, "hidden protection set")
251
- assert_equal(dxf.protection.locked, true, "cell locking set")
252
- assert_raise(ArgumentError, "should reject invalid borderId") { @styles.add_style :border => 3 }
253
- end
254
-
255
- def test_multiple_dxf
256
- # add a second style
257
- style = @styles.add_style :bg_color=>"00000000", :fg_color=>"FFFFFFFF", :sz=>13, :alignment=>{:horizontal=>:left}, :border=>{:style => :thin, :color => "FFFF0000"}, :hidden=>true, :locked=>true, :type => :dxf
258
- assert_equal(0, style, "returns the first dxfId")
259
- style = @styles.add_style :bg_color=>"FF000000", :fg_color=>"FFFFFFFF", :sz=>13, :alignment=>{:horizontal=>:left}, :border=>{:style => :thin, :color => "FFFF0000"}, :hidden=>true, :locked=>true, :type => :dxf
260
- assert_equal(1, style, "returns the second dxfId")
261
- end
262
-
263
- def test_valid_document_with_font_options
264
- font_options = {
265
- :fg_color => "FF050505",
266
- :sz => 20,
267
- :b => 1,
268
- :i => 1,
269
- :u => :single,
270
- :strike => 1,
271
- :outline => 1,
272
- :shadow => 1,
273
- :charset => 9,
274
- :family => 1,
275
- :font_name => "woot font"
276
- }
277
- @styles.add_style font_options
278
-
279
- schema = Nokogiri::XML::Schema(File.open(Axlsx::SML_XSD))
280
- doc = Nokogiri::XML(@styles.to_xml_string)
281
- errors = []
282
- schema.validate(doc).each do |error|
283
- errors.push error
284
- puts error.message
285
- end
286
- assert(errors.size == 0)
287
- end
288
-
289
- def test_border_top_without_border_regression
290
- ### https://github.com/axlsx-styler-gem/axlsx_styler/issues/31
291
-
292
- borders = {
293
- top: { style: :double, color: '0000FF' },
294
- right: { style: :thick, color: 'FF0000' },
295
- bottom: { style: :double, color: '0000FF' },
296
- left: { style: :thick, color: 'FF0000' }
297
- }
298
-
299
- borders.each do |edge, b_opts|
300
- @styles.add_style("border_#{edge}".to_sym => b_opts)
301
-
302
- current_border = @styles.borders.last
303
-
304
- border_pr = current_border.prs.detect{|x| x.name == edge }
305
- assert_equal(border_pr.color.rgb, "FF#{b_opts[:color]}")
306
- end
307
-
308
- end
309
- end
@@ -1,44 +0,0 @@
1
- require 'tc_helper.rb'
2
-
3
- class TestTableStyle < Test::Unit::TestCase
4
-
5
- def setup
6
- @item = Axlsx::TableStyle.new "fisher"
7
- end
8
-
9
- def teardown
10
- end
11
-
12
- def test_initialiation
13
- assert_equal(@item.name, "fisher")
14
- assert_equal(@item.pivot, nil)
15
- assert_equal(@item.table, nil)
16
- ts = Axlsx::TableStyle.new 'price', :pivot => true, :table => true
17
- assert_equal(ts.name, 'price')
18
- assert_equal(ts.pivot, true)
19
- assert_equal(ts.table, true)
20
- end
21
-
22
- def test_name
23
- assert_raise(ArgumentError) { @item.name = -1.1 }
24
- assert_nothing_raised { @item.name = "lovely table style" }
25
- assert_equal(@item.name, "lovely table style")
26
- end
27
-
28
- def test_pivot
29
- assert_raise(ArgumentError) { @item.pivot = -1.1 }
30
- assert_nothing_raised { @item.pivot = true }
31
- assert_equal(@item.pivot, true)
32
- end
33
-
34
- def test_table
35
- assert_raise(ArgumentError) { @item.table = -1.1 }
36
- assert_nothing_raised { @item.table = true }
37
- assert_equal(@item.table, true)
38
- end
39
-
40
- def test_to_xml_string
41
- doc = Nokogiri::XML(@item.to_xml_string)
42
- assert(doc.xpath("//tableStyle[@name='#{@item.name}']"))
43
- end
44
- end
@@ -1,45 +0,0 @@
1
- require 'tc_helper.rb'
2
-
3
- class TestTableStyleElement < Test::Unit::TestCase
4
-
5
- def setup
6
- @item = Axlsx::TableStyleElement.new
7
- end
8
-
9
- def teardown
10
- end
11
-
12
- def test_initialiation
13
- assert_equal(@item.type, nil)
14
- assert_equal(@item.size, nil)
15
- assert_equal(@item.dxfId, nil)
16
- options = { :type => :headerRow, :size => 10, :dxfId => 1 }
17
-
18
- tse = Axlsx::TableStyleElement.new options
19
- options.each { |key, value| assert_equal(tse.send(key.to_sym), value) }
20
- end
21
-
22
- def test_type
23
- assert_raise(ArgumentError) { @item.type = -1.1 }
24
- assert_nothing_raised { @item.type = :blankRow }
25
- assert_equal(@item.type, :blankRow)
26
- end
27
-
28
- def test_size
29
- assert_raise(ArgumentError) { @item.size = -1.1 }
30
- assert_nothing_raised { @item.size = 2 }
31
- assert_equal(@item.size, 2)
32
- end
33
-
34
- def test_dxfId
35
- assert_raise(ArgumentError) { @item.dxfId = -1.1 }
36
- assert_nothing_raised { @item.dxfId = 7 }
37
- assert_equal(@item.dxfId, 7)
38
- end
39
-
40
- def test_to_xml_string
41
- doc = Nokogiri::XML(@item.to_xml_string)
42
- @item.type = :headerRow
43
- assert(doc.xpath("//tableStyleElement[@type='#{@item.type.to_s}']"))
44
- end
45
- end
@@ -1,29 +0,0 @@
1
- require 'tc_helper.rb'
2
-
3
- class TestTableStyles < Test::Unit::TestCase
4
-
5
- def setup
6
- @item = Axlsx::TableStyles.new
7
- end
8
-
9
- def teardown
10
- end
11
-
12
- def test_initialiation
13
- assert_equal(@item.defaultTableStyle, "TableStyleMedium9")
14
- assert_equal(@item.defaultPivotStyle, "PivotStyleLight16")
15
- end
16
-
17
- def test_defaultTableStyle
18
- assert_raise(ArgumentError) { @item.defaultTableStyle = -1.1 }
19
- assert_nothing_raised { @item.defaultTableStyle = "anyones guess" }
20
- assert_equal(@item.defaultTableStyle, "anyones guess")
21
- end
22
-
23
- def test_defaultPivotStyle
24
- assert_raise(ArgumentError) { @item.defaultPivotStyle = -1.1 }
25
- assert_nothing_raised { @item.defaultPivotStyle = "anyones guess" }
26
- assert_equal(@item.defaultPivotStyle, "anyones guess")
27
- end
28
-
29
- end
@@ -1,120 +0,0 @@
1
- require 'tc_helper.rb'
2
-
3
- class TestXf < Test::Unit::TestCase
4
-
5
- def setup
6
- @item = Axlsx::Xf.new
7
- end
8
-
9
- def teardown
10
- end
11
-
12
- def test_initialiation
13
- assert_equal(@item.alignment, nil)
14
- assert_equal(@item.protection, nil)
15
- assert_equal(@item.numFmtId, nil)
16
- assert_equal(@item.fontId, nil)
17
- assert_equal(@item.fillId, nil)
18
- assert_equal(@item.borderId, nil)
19
- assert_equal(@item.xfId, nil)
20
- assert_equal(@item.quotePrefix, nil)
21
- assert_equal(@item.pivotButton, nil)
22
- assert_equal(@item.applyNumberFormat, nil)
23
- assert_equal(@item.applyFont, nil)
24
- assert_equal(@item.applyFill, nil)
25
- assert_equal(@item.applyBorder, nil)
26
- assert_equal(@item.applyAlignment, nil)
27
- assert_equal(@item.applyProtection, nil)
28
- end
29
-
30
- def test_alignment
31
- assert_raise(ArgumentError) { @item.alignment = -1.1 }
32
- assert_nothing_raised { @item.alignment = Axlsx::CellAlignment.new }
33
- assert(@item.alignment.is_a?(Axlsx::CellAlignment))
34
- end
35
-
36
- def test_protection
37
- assert_raise(ArgumentError) { @item.protection = -1.1 }
38
- assert_nothing_raised { @item.protection = Axlsx::CellProtection.new }
39
- assert(@item.protection.is_a?(Axlsx::CellProtection))
40
- end
41
-
42
- def test_numFmtId
43
- assert_raise(ArgumentError) { @item.numFmtId = -1.1 }
44
- assert_nothing_raised { @item.numFmtId = 0 }
45
- assert_equal(@item.numFmtId, 0)
46
- end
47
-
48
- def test_fillId
49
- assert_raise(ArgumentError) { @item.fillId = -1.1 }
50
- assert_nothing_raised { @item.fillId = 0 }
51
- assert_equal(@item.fillId, 0)
52
- end
53
-
54
- def test_fontId
55
- assert_raise(ArgumentError) { @item.fontId = -1.1 }
56
- assert_nothing_raised { @item.fontId = 0 }
57
- assert_equal(@item.fontId, 0)
58
- end
59
-
60
- def test_borderId
61
- assert_raise(ArgumentError) { @item.borderId = -1.1 }
62
- assert_nothing_raised { @item.borderId = 0 }
63
- assert_equal(@item.borderId, 0)
64
- end
65
-
66
- def test_xfId
67
- assert_raise(ArgumentError) { @item.xfId = -1.1 }
68
- assert_nothing_raised { @item.xfId = 0 }
69
- assert_equal(@item.xfId, 0)
70
- end
71
-
72
- def test_quotePrefix
73
- assert_raise(ArgumentError) { @item.quotePrefix = -1.1 }
74
- assert_nothing_raised { @item.quotePrefix = false }
75
- assert_equal(@item.quotePrefix, false)
76
- end
77
-
78
- def test_pivotButton
79
- assert_raise(ArgumentError) { @item.pivotButton = -1.1 }
80
- assert_nothing_raised { @item.pivotButton = false }
81
- assert_equal(@item.pivotButton, false)
82
- end
83
-
84
- def test_applyNumberFormat
85
- assert_raise(ArgumentError) { @item.applyNumberFormat = -1.1 }
86
- assert_nothing_raised { @item.applyNumberFormat = false }
87
- assert_equal(@item.applyNumberFormat, false)
88
- end
89
-
90
- def test_applyFont
91
- assert_raise(ArgumentError) { @item.applyFont = -1.1 }
92
- assert_nothing_raised { @item.applyFont = false }
93
- assert_equal(@item.applyFont, false)
94
- end
95
-
96
- def test_applyFill
97
- assert_raise(ArgumentError) { @item.applyFill = -1.1 }
98
- assert_nothing_raised { @item.applyFill = false }
99
- assert_equal(@item.applyFill, false)
100
- end
101
-
102
- def test_applyBorder
103
- assert_raise(ArgumentError) { @item.applyBorder = -1.1 }
104
- assert_nothing_raised { @item.applyBorder = false }
105
- assert_equal(@item.applyBorder, false)
106
- end
107
-
108
- def test_applyAlignment
109
- assert_raise(ArgumentError) { @item.applyAlignment = -1.1 }
110
- assert_nothing_raised { @item.applyAlignment = false }
111
- assert_equal(@item.applyAlignment, false)
112
- end
113
-
114
- def test_applyProtection
115
- assert_raise(ArgumentError) { @item.applyProtection = -1.1 }
116
- assert_nothing_raised { @item.applyProtection = false }
117
- assert_equal(@item.applyProtection, false)
118
- end
119
-
120
- end
data/test/tc_axlsx.rb DELETED
@@ -1,109 +0,0 @@
1
- require 'tc_helper.rb'
2
-
3
- class TestAxlsx < Test::Unit::TestCase
4
-
5
- def setup_wide
6
- @wide_test_points = { "A3" => 0,
7
- "Z3" => 25,
8
- "B3" => 1,
9
- "AA3" => 1 * 26 + 0,
10
- "AAA3" => 1 * 26**2 + 1 * 26 + 0,
11
- "AAZ3" => 1 * 26**2 + 1 * 26 + 25,
12
- "ABA3" => 1 * 26**2 + 2 * 26 + 0,
13
- "BZU3" => 2 * 26**2 + 26 * 26 + 20
14
- }
15
- end
16
-
17
- def test_cell_range_empty_if_no_cell
18
- assert_equal(Axlsx.cell_range([]), "")
19
- end
20
-
21
- def test_do_not_trust_input_by_default
22
- assert_equal false, Axlsx.trust_input
23
- end
24
-
25
-
26
- def test_trust_input_can_be_set_to_true
27
- # Class variables like this are not reset between test runs, so we have
28
- # to save and restore the original value manually.
29
- old = Axlsx.trust_input
30
-
31
- Axlsx.trust_input = true
32
- assert_equal true, Axlsx.trust_input
33
-
34
- Axlsx.trust_input = old
35
- end
36
- def test_cell_range_relative
37
- p = Axlsx::Package.new
38
- ws = p.workbook.add_worksheet
39
- row = ws.add_row
40
- c1 = row.add_cell
41
- c2 = row.add_cell
42
- assert_equal(Axlsx.cell_range([c2, c1], false), "A1:B1")
43
- end
44
-
45
- def test_cell_range_absolute
46
- p = Axlsx::Package.new
47
- ws = p.workbook.add_worksheet :name => "Sheet <'>\" 1"
48
- row = ws.add_row
49
- c1 = row.add_cell
50
- c2 = row.add_cell
51
- assert_equal(Axlsx.cell_range([c2, c1], true), "'Sheet &lt;''&gt;&quot; 1'!$A$1:$B$1")
52
- end
53
-
54
- def test_cell_range_row
55
- p = Axlsx::Package.new
56
- ws = p.workbook.add_worksheet
57
- row = ws.add_row
58
- row.add_cell
59
- row.add_cell
60
- row.add_cell
61
- assert_equal("A1:C1", Axlsx.cell_range(row, false))
62
- end
63
-
64
- def test_name_to_indices
65
- setup_wide
66
- @wide_test_points.each do |key, value|
67
- assert_equal(Axlsx.name_to_indices(key), [value,2])
68
- end
69
- end
70
-
71
- def test_col_ref
72
- setup_wide
73
- @wide_test_points.each do |key, value|
74
- assert_equal(Axlsx.col_ref(value), key.gsub(/\d+/, ''))
75
- end
76
- end
77
-
78
- def test_cell_r
79
- # todo
80
- end
81
-
82
- def test_range_to_a
83
- assert_equal([['A1', 'B1', 'C1']], Axlsx::range_to_a('A1:C1'))
84
- assert_equal([['A1', 'B1', 'C1'], ['A2', 'B2', 'C2']], Axlsx::range_to_a('A1:C2'))
85
- assert_equal([['Z5', 'AA5', 'AB5'], ['Z6', 'AA6', 'AB6']], Axlsx::range_to_a('Z5:AB6'))
86
- end
87
-
88
- def test_sanitize_frozen_control_strippped
89
- needs_sanitize = "legit\x08".freeze # Backspace control char
90
-
91
- assert_equal(Axlsx.sanitize(needs_sanitize), 'legit', 'should strip control chars')
92
- end
93
-
94
- def test_sanitize_unfrozen_control_strippped
95
- needs_sanitize = "legit\x08" # Backspace control char
96
- sanitized_str = Axlsx.sanitize(needs_sanitize)
97
-
98
- assert_equal(sanitized_str, 'legit', 'should strip control chars')
99
- assert_equal(sanitized_str.object_id, sanitized_str.object_id, 'should preserve object')
100
- end
101
-
102
- def test_sanitize_unfrozen_no_sanitize
103
- legit_str = 'legit'
104
- sanitized_str = Axlsx.sanitize(legit_str)
105
-
106
- assert_equal(sanitized_str, legit_str, 'should preserve value')
107
- assert_equal(sanitized_str.object_id, legit_str.object_id, 'should preserve object')
108
- end
109
- end
data/test/tc_helper.rb DELETED
@@ -1,10 +0,0 @@
1
- $LOAD_PATH.unshift "#{File.dirname(__FILE__)}/../lib"
2
- require 'simplecov'
3
- SimpleCov.start do
4
- add_filter "/test/"
5
- add_filter "/vendor/"
6
- end
7
-
8
- require 'test/unit'
9
- require "timecop"
10
- require "axlsx.rb"