caxlsx 3.2.0 → 3.4.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 (301) hide show
  1. checksums.yaml +4 -4
  2. data/.yardopts +9 -9
  3. data/.yardopts_guide +18 -18
  4. data/CHANGELOG.md +394 -354
  5. data/LICENSE +21 -21
  6. data/README.md +184 -168
  7. data/Rakefile +28 -29
  8. data/examples/generate.rb +15 -15
  9. data/lib/axlsx/content_type/abstract_content_type.rb +29 -32
  10. data/lib/axlsx/content_type/content_type.rb +22 -26
  11. data/lib/axlsx/content_type/default.rb +21 -25
  12. data/lib/axlsx/content_type/override.rb +21 -25
  13. data/lib/axlsx/doc_props/app.rb +230 -235
  14. data/lib/axlsx/doc_props/core.rb +34 -39
  15. data/lib/axlsx/drawing/area_chart.rb +96 -99
  16. data/lib/axlsx/drawing/area_series.rb +107 -110
  17. data/lib/axlsx/drawing/ax_data_source.rb +21 -26
  18. data/lib/axlsx/drawing/axes.rb +60 -61
  19. data/lib/axlsx/drawing/axis.rb +185 -190
  20. data/lib/axlsx/drawing/bar_3D_chart.rb +145 -148
  21. data/lib/axlsx/drawing/bar_chart.rb +135 -138
  22. data/lib/axlsx/drawing/bar_series.rb +91 -97
  23. data/lib/axlsx/drawing/bubble_chart.rb +56 -59
  24. data/lib/axlsx/drawing/bubble_series.rb +60 -63
  25. data/lib/axlsx/drawing/cat_axis.rb +80 -85
  26. data/lib/axlsx/drawing/chart.rb +294 -276
  27. data/lib/axlsx/drawing/d_lbls.rb +92 -90
  28. data/lib/axlsx/drawing/drawing.rb +163 -167
  29. data/lib/axlsx/drawing/graphic_frame.rb +51 -54
  30. data/lib/axlsx/drawing/hyperlink.rb +97 -100
  31. data/lib/axlsx/drawing/line_3D_chart.rb +64 -68
  32. data/lib/axlsx/drawing/line_chart.rb +96 -99
  33. data/lib/axlsx/drawing/line_series.rb +107 -110
  34. data/lib/axlsx/drawing/marker.rb +80 -84
  35. data/lib/axlsx/drawing/num_data.rb +47 -52
  36. data/lib/axlsx/drawing/num_data_source.rb +58 -62
  37. data/lib/axlsx/drawing/num_val.rb +31 -34
  38. data/lib/axlsx/drawing/one_cell_anchor.rb +97 -99
  39. data/lib/axlsx/drawing/pic.rb +244 -211
  40. data/lib/axlsx/drawing/picture_locking.rb +39 -42
  41. data/lib/axlsx/drawing/pie_3D_chart.rb +42 -47
  42. data/lib/axlsx/drawing/pie_series.rb +69 -74
  43. data/lib/axlsx/drawing/scaling.rb +57 -60
  44. data/lib/axlsx/drawing/scatter_chart.rb +71 -74
  45. data/lib/axlsx/drawing/scatter_series.rb +126 -129
  46. data/lib/axlsx/drawing/ser_axis.rb +41 -45
  47. data/lib/axlsx/drawing/series.rb +67 -69
  48. data/lib/axlsx/drawing/series_title.rb +23 -25
  49. data/lib/axlsx/drawing/str_data.rb +37 -42
  50. data/lib/axlsx/drawing/str_val.rb +31 -34
  51. data/lib/axlsx/drawing/title.rb +104 -97
  52. data/lib/axlsx/drawing/two_cell_anchor.rb +95 -97
  53. data/lib/axlsx/drawing/val_axis.rb +34 -37
  54. data/lib/axlsx/drawing/view_3D.rb +115 -115
  55. data/lib/axlsx/drawing/vml_drawing.rb +39 -42
  56. data/lib/axlsx/drawing/vml_shape.rb +63 -66
  57. data/lib/axlsx/package.rb +397 -388
  58. data/lib/axlsx/rels/relationship.rb +127 -130
  59. data/lib/axlsx/rels/relationships.rb +29 -32
  60. data/lib/axlsx/stylesheet/border.rb +70 -73
  61. data/lib/axlsx/stylesheet/border_pr.rb +69 -71
  62. data/lib/axlsx/stylesheet/cell_alignment.rb +124 -132
  63. data/lib/axlsx/stylesheet/cell_protection.rb +38 -41
  64. data/lib/axlsx/stylesheet/cell_style.rb +68 -72
  65. data/lib/axlsx/stylesheet/color.rb +77 -76
  66. data/lib/axlsx/stylesheet/dxf.rb +75 -79
  67. data/lib/axlsx/stylesheet/fill.rb +31 -35
  68. data/lib/axlsx/stylesheet/font.rb +157 -156
  69. data/lib/axlsx/stylesheet/gradient_fill.rb +101 -103
  70. data/lib/axlsx/stylesheet/gradient_stop.rb +36 -37
  71. data/lib/axlsx/stylesheet/num_fmt.rb +83 -86
  72. data/lib/axlsx/stylesheet/pattern_fill.rb +71 -73
  73. data/lib/axlsx/stylesheet/styles.rb +543 -494
  74. data/lib/axlsx/stylesheet/table_style.rb +51 -54
  75. data/lib/axlsx/stylesheet/table_style_element.rb +74 -77
  76. data/lib/axlsx/stylesheet/table_styles.rb +42 -46
  77. data/lib/axlsx/stylesheet/xf.rb +144 -147
  78. data/lib/axlsx/util/accessors.rb +62 -64
  79. data/lib/axlsx/util/constants.rb +414 -410
  80. data/lib/axlsx/util/mime_type_utils.rb +24 -11
  81. data/lib/axlsx/util/options_parser.rb +15 -16
  82. data/lib/axlsx/util/serialized_attributes.rb +88 -89
  83. data/lib/axlsx/util/simple_typed_list.rb +180 -179
  84. data/lib/axlsx/util/storage.rb +142 -146
  85. data/lib/axlsx/util/validators.rb +315 -312
  86. data/lib/axlsx/util/zip_command.rb +71 -73
  87. data/lib/axlsx/version.rb +4 -5
  88. data/lib/axlsx/workbook/defined_name.rb +129 -128
  89. data/lib/axlsx/workbook/defined_names.rb +20 -21
  90. data/lib/axlsx/workbook/shared_strings_table.rb +74 -77
  91. data/lib/axlsx/workbook/workbook.rb +430 -395
  92. data/lib/axlsx/workbook/workbook_view.rb +75 -80
  93. data/lib/axlsx/workbook/workbook_views.rb +20 -22
  94. data/lib/axlsx/workbook/worksheet/auto_filter/auto_filter.rb +78 -77
  95. data/lib/axlsx/workbook/worksheet/auto_filter/filter_column.rb +94 -94
  96. data/lib/axlsx/workbook/worksheet/auto_filter/filters.rb +243 -244
  97. data/lib/axlsx/workbook/worksheet/border_creator.rb +79 -0
  98. data/lib/axlsx/workbook/worksheet/break.rb +32 -35
  99. data/lib/axlsx/workbook/worksheet/cell.rb +552 -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 +16 -18
  103. data/lib/axlsx/workbook/worksheet/col.rb +142 -145
  104. data/lib/axlsx/workbook/worksheet/col_breaks.rb +34 -35
  105. data/lib/axlsx/workbook/worksheet/color_scale.rb +108 -110
  106. data/lib/axlsx/workbook/worksheet/cols.rb +23 -23
  107. data/lib/axlsx/workbook/worksheet/comment.rb +90 -91
  108. data/lib/axlsx/workbook/worksheet/comments.rb +78 -82
  109. data/lib/axlsx/workbook/worksheet/conditional_formatting.rb +81 -82
  110. data/lib/axlsx/workbook/worksheet/conditional_formatting_rule.rb +216 -220
  111. data/lib/axlsx/workbook/worksheet/conditional_formattings.rb +23 -25
  112. data/lib/axlsx/workbook/worksheet/data_bar.rb +127 -129
  113. data/lib/axlsx/workbook/worksheet/data_validation.rb +266 -246
  114. data/lib/axlsx/workbook/worksheet/data_validations.rb +25 -28
  115. data/lib/axlsx/workbook/worksheet/date_time_converter.rb +28 -30
  116. data/lib/axlsx/workbook/worksheet/dimension.rb +65 -64
  117. data/lib/axlsx/workbook/worksheet/header_footer.rb +51 -52
  118. data/lib/axlsx/workbook/worksheet/icon_set.rb +80 -81
  119. data/lib/axlsx/workbook/worksheet/merged_cells.rb +37 -37
  120. data/lib/axlsx/workbook/worksheet/outline_pr.rb +32 -33
  121. data/lib/axlsx/workbook/worksheet/page_margins.rb +97 -97
  122. data/lib/axlsx/workbook/worksheet/page_set_up_pr.rb +42 -44
  123. data/lib/axlsx/workbook/worksheet/page_setup.rb +237 -240
  124. data/lib/axlsx/workbook/worksheet/pane.rb +138 -139
  125. data/lib/axlsx/workbook/worksheet/pivot_table.rb +332 -296
  126. data/lib/axlsx/workbook/worksheet/pivot_table_cache_definition.rb +63 -66
  127. data/lib/axlsx/workbook/worksheet/pivot_tables.rb +23 -24
  128. data/lib/axlsx/workbook/worksheet/print_options.rb +38 -39
  129. data/lib/axlsx/workbook/worksheet/protected_range.rb +46 -47
  130. data/lib/axlsx/workbook/worksheet/protected_ranges.rb +37 -37
  131. data/lib/axlsx/workbook/worksheet/rich_text.rb +53 -55
  132. data/lib/axlsx/workbook/worksheet/rich_text_run.rb +266 -250
  133. data/lib/axlsx/workbook/worksheet/row.rb +173 -164
  134. data/lib/axlsx/workbook/worksheet/row_breaks.rb +32 -33
  135. data/lib/axlsx/workbook/worksheet/selection.rb +99 -101
  136. data/lib/axlsx/workbook/worksheet/sheet_calc_pr.rb +28 -29
  137. data/lib/axlsx/workbook/worksheet/sheet_data.rb +25 -27
  138. data/lib/axlsx/workbook/worksheet/sheet_format_pr.rb +18 -18
  139. data/lib/axlsx/workbook/worksheet/sheet_pr.rb +87 -87
  140. data/lib/axlsx/workbook/worksheet/sheet_protection.rb +117 -118
  141. data/lib/axlsx/workbook/worksheet/sheet_view.rb +206 -213
  142. data/lib/axlsx/workbook/worksheet/table.rb +100 -102
  143. data/lib/axlsx/workbook/worksheet/table_style_info.rb +48 -49
  144. data/lib/axlsx/workbook/worksheet/tables.rb +34 -34
  145. data/lib/axlsx/workbook/worksheet/worksheet.rb +857 -786
  146. data/lib/axlsx/workbook/worksheet/worksheet_comments.rb +58 -58
  147. data/lib/axlsx/workbook/worksheet/worksheet_drawing.rb +59 -58
  148. data/lib/axlsx/workbook/worksheet/worksheet_hyperlink.rb +73 -74
  149. data/lib/axlsx/workbook/worksheet/worksheet_hyperlinks.rb +38 -38
  150. data/lib/axlsx.rb +218 -185
  151. data/lib/caxlsx.rb +1 -2
  152. data/lib/schema/dc.xsd +118 -118
  153. data/lib/schema/dcmitype.xsd +51 -51
  154. data/lib/schema/dcterms.xsd +331 -331
  155. data/lib/schema/dml-chartDrawing.xsd +146 -146
  156. data/lib/schema/dml-compatibility.xsd +14 -14
  157. data/lib/schema/dml-lockedCanvas.xsd +11 -11
  158. data/lib/schema/dml-main.xsd +3048 -3048
  159. data/lib/schema/dml-picture.xsd +23 -23
  160. data/lib/schema/dml-spreadsheetDrawing.xsd +185 -185
  161. data/lib/schema/dml-wordprocessingDrawing.xsd +185 -185
  162. data/lib/schema/shared-additionalCharacteristics.xsd +28 -28
  163. data/lib/schema/shared-bibliography.xsd +144 -144
  164. data/lib/schema/shared-commonSimpleTypes.xsd +166 -166
  165. data/lib/schema/shared-customXmlDataProperties.xsd +25 -25
  166. data/lib/schema/shared-customXmlSchemaProperties.xsd +18 -18
  167. data/lib/schema/shared-documentPropertiesCustom.xsd +59 -59
  168. data/lib/schema/shared-documentPropertiesExtended.xsd +56 -56
  169. data/lib/schema/shared-documentPropertiesVariantTypes.xsd +195 -195
  170. data/lib/schema/shared-relationshipReference.xsd +25 -25
  171. data/lib/schema/vml-main.xsd +569 -569
  172. data/lib/schema/vml-officeDrawing.xsd +509 -509
  173. data/lib/schema/vml-presentationDrawing.xsd +12 -12
  174. data/lib/schema/vml-spreadsheetDrawing.xsd +108 -108
  175. data/lib/schema/vml-wordprocessingDrawing.xsd +96 -96
  176. data/lib/schema/xml.xsd +116 -116
  177. metadata +5 -252
  178. data/test/benchmark.rb +0 -72
  179. data/test/content_type/tc_content_type.rb +0 -76
  180. data/test/content_type/tc_default.rb +0 -16
  181. data/test/content_type/tc_override.rb +0 -14
  182. data/test/doc_props/tc_app.rb +0 -43
  183. data/test/doc_props/tc_core.rb +0 -42
  184. data/test/drawing/tc_area_chart.rb +0 -39
  185. data/test/drawing/tc_area_series.rb +0 -71
  186. data/test/drawing/tc_axes.rb +0 -8
  187. data/test/drawing/tc_axis.rb +0 -112
  188. data/test/drawing/tc_bar_3D_chart.rb +0 -86
  189. data/test/drawing/tc_bar_chart.rb +0 -86
  190. data/test/drawing/tc_bar_series.rb +0 -46
  191. data/test/drawing/tc_bubble_chart.rb +0 -44
  192. data/test/drawing/tc_bubble_series.rb +0 -21
  193. data/test/drawing/tc_cat_axis.rb +0 -31
  194. data/test/drawing/tc_cat_axis_data.rb +0 -27
  195. data/test/drawing/tc_chart.rb +0 -123
  196. data/test/drawing/tc_d_lbls.rb +0 -57
  197. data/test/drawing/tc_data_source.rb +0 -23
  198. data/test/drawing/tc_drawing.rb +0 -80
  199. data/test/drawing/tc_graphic_frame.rb +0 -27
  200. data/test/drawing/tc_hyperlink.rb +0 -64
  201. data/test/drawing/tc_line_3d_chart.rb +0 -47
  202. data/test/drawing/tc_line_chart.rb +0 -39
  203. data/test/drawing/tc_line_series.rb +0 -71
  204. data/test/drawing/tc_marker.rb +0 -44
  205. data/test/drawing/tc_named_axis_data.rb +0 -27
  206. data/test/drawing/tc_num_data.rb +0 -31
  207. data/test/drawing/tc_num_val.rb +0 -29
  208. data/test/drawing/tc_one_cell_anchor.rb +0 -66
  209. data/test/drawing/tc_pic.rb +0 -103
  210. data/test/drawing/tc_picture_locking.rb +0 -72
  211. data/test/drawing/tc_pie_3D_chart.rb +0 -28
  212. data/test/drawing/tc_pie_series.rb +0 -33
  213. data/test/drawing/tc_scaling.rb +0 -36
  214. data/test/drawing/tc_scatter_chart.rb +0 -48
  215. data/test/drawing/tc_scatter_series.rb +0 -74
  216. data/test/drawing/tc_ser_axis.rb +0 -31
  217. data/test/drawing/tc_series.rb +0 -23
  218. data/test/drawing/tc_series_title.rb +0 -54
  219. data/test/drawing/tc_str_data.rb +0 -18
  220. data/test/drawing/tc_str_val.rb +0 -30
  221. data/test/drawing/tc_title.rb +0 -70
  222. data/test/drawing/tc_two_cell_anchor.rb +0 -36
  223. data/test/drawing/tc_val_axis.rb +0 -24
  224. data/test/drawing/tc_view_3D.rb +0 -54
  225. data/test/drawing/tc_vml_drawing.rb +0 -25
  226. data/test/drawing/tc_vml_shape.rb +0 -106
  227. data/test/fixtures/image1.gif +0 -0
  228. data/test/fixtures/image1.jpeg +0 -0
  229. data/test/fixtures/image1.jpg +0 -0
  230. data/test/fixtures/image1.png +0 -0
  231. data/test/fixtures/image1_fake.jpg +0 -0
  232. data/test/profile.rb +0 -24
  233. data/test/rels/tc_relationship.rb +0 -52
  234. data/test/rels/tc_relationships.rb +0 -37
  235. data/test/stylesheet/tc_border.rb +0 -37
  236. data/test/stylesheet/tc_border_pr.rb +0 -32
  237. data/test/stylesheet/tc_cell_alignment.rb +0 -81
  238. data/test/stylesheet/tc_cell_protection.rb +0 -29
  239. data/test/stylesheet/tc_cell_style.rb +0 -57
  240. data/test/stylesheet/tc_color.rb +0 -43
  241. data/test/stylesheet/tc_dxf.rb +0 -81
  242. data/test/stylesheet/tc_fill.rb +0 -18
  243. data/test/stylesheet/tc_font.rb +0 -133
  244. data/test/stylesheet/tc_gradient_fill.rb +0 -72
  245. data/test/stylesheet/tc_gradient_stop.rb +0 -31
  246. data/test/stylesheet/tc_num_fmt.rb +0 -30
  247. data/test/stylesheet/tc_pattern_fill.rb +0 -43
  248. data/test/stylesheet/tc_styles.rb +0 -309
  249. data/test/stylesheet/tc_table_style.rb +0 -44
  250. data/test/stylesheet/tc_table_style_element.rb +0 -45
  251. data/test/stylesheet/tc_table_styles.rb +0 -29
  252. data/test/stylesheet/tc_xf.rb +0 -120
  253. data/test/tc_axlsx.rb +0 -109
  254. data/test/tc_helper.rb +0 -10
  255. data/test/tc_package.rb +0 -317
  256. data/test/util/tc_mime_type_utils.rb +0 -13
  257. data/test/util/tc_serialized_attributes.rb +0 -19
  258. data/test/util/tc_simple_typed_list.rb +0 -77
  259. data/test/util/tc_validators.rb +0 -210
  260. data/test/workbook/tc_defined_name.rb +0 -49
  261. data/test/workbook/tc_shared_strings_table.rb +0 -59
  262. data/test/workbook/tc_workbook.rb +0 -165
  263. data/test/workbook/tc_workbook_view.rb +0 -50
  264. data/test/workbook/worksheet/auto_filter/tc_auto_filter.rb +0 -38
  265. data/test/workbook/worksheet/auto_filter/tc_filter_column.rb +0 -76
  266. data/test/workbook/worksheet/auto_filter/tc_filters.rb +0 -50
  267. data/test/workbook/worksheet/tc_break.rb +0 -49
  268. data/test/workbook/worksheet/tc_cell.rb +0 -465
  269. data/test/workbook/worksheet/tc_cfvo.rb +0 -31
  270. data/test/workbook/worksheet/tc_col.rb +0 -93
  271. data/test/workbook/worksheet/tc_color_scale.rb +0 -58
  272. data/test/workbook/worksheet/tc_comment.rb +0 -72
  273. data/test/workbook/worksheet/tc_comments.rb +0 -57
  274. data/test/workbook/worksheet/tc_conditional_formatting.rb +0 -224
  275. data/test/workbook/worksheet/tc_data_bar.rb +0 -46
  276. data/test/workbook/worksheet/tc_data_validation.rb +0 -265
  277. data/test/workbook/worksheet/tc_date_time_converter.rb +0 -124
  278. data/test/workbook/worksheet/tc_header_footer.rb +0 -151
  279. data/test/workbook/worksheet/tc_icon_set.rb +0 -45
  280. data/test/workbook/worksheet/tc_outline_pr.rb +0 -19
  281. data/test/workbook/worksheet/tc_page_margins.rb +0 -97
  282. data/test/workbook/worksheet/tc_page_set_up_pr.rb +0 -15
  283. data/test/workbook/worksheet/tc_page_setup.rb +0 -143
  284. data/test/workbook/worksheet/tc_pane.rb +0 -54
  285. data/test/workbook/worksheet/tc_pivot_table.rb +0 -180
  286. data/test/workbook/worksheet/tc_pivot_table_cache_definition.rb +0 -62
  287. data/test/workbook/worksheet/tc_print_options.rb +0 -72
  288. data/test/workbook/worksheet/tc_protected_range.rb +0 -17
  289. data/test/workbook/worksheet/tc_rich_text.rb +0 -44
  290. data/test/workbook/worksheet/tc_rich_text_run.rb +0 -173
  291. data/test/workbook/worksheet/tc_row.rb +0 -160
  292. data/test/workbook/worksheet/tc_selection.rb +0 -55
  293. data/test/workbook/worksheet/tc_sheet_calc_pr.rb +0 -18
  294. data/test/workbook/worksheet/tc_sheet_format_pr.rb +0 -88
  295. data/test/workbook/worksheet/tc_sheet_pr.rb +0 -49
  296. data/test/workbook/worksheet/tc_sheet_protection.rb +0 -117
  297. data/test/workbook/worksheet/tc_sheet_view.rb +0 -214
  298. data/test/workbook/worksheet/tc_table.rb +0 -77
  299. data/test/workbook/worksheet/tc_table_style_info.rb +0 -53
  300. data/test/workbook/worksheet/tc_worksheet.rb +0 -632
  301. data/test/workbook/worksheet/tc_worksheet_hyperlink.rb +0 -55
@@ -1,124 +0,0 @@
1
- # -*- coding: utf-8 -*-
2
- require 'tc_helper.rb'
3
-
4
- class TestDateTimeConverter < Test::Unit::TestCase
5
- def setup
6
- @margin_of_error = 0.000_001
7
- @extended_time_range = begin
8
- Time.parse "1893-08-05"
9
- Time.parse "9999-12-31T23:59:59Z"
10
- true
11
- rescue
12
- false
13
- end
14
- end
15
-
16
- def test_date_to_serial_1900
17
- Axlsx::Workbook.date1904 = false
18
- tests = if @extended_time_range
19
- { # examples taken straight from the spec
20
- "1893-08-05" => -2338.0,
21
- "1900-01-01" => 2.0,
22
- "1910-02-03" => 3687.0,
23
- "2006-02-01" => 38749.0,
24
- "9999-12-31" => 2958465.0
25
- }
26
- else
27
- { # examples taken inside the possible values
28
- "1970-01-01" => 25569.0, # Unix epoch
29
- "1970-01-02" => 25570.0,
30
- "2006-02-01" => 38749.0,
31
- "2038-01-19" => 50424.0, # max date using signed timestamp in 32bit
32
- }
33
- end
34
- tests.each do |date_string, expected|
35
- serial = Axlsx::DateTimeConverter::date_to_serial Date.parse(date_string)
36
- assert_equal expected, serial
37
- end
38
- end
39
-
40
- def test_date_to_serial_1904
41
- Axlsx::Workbook.date1904 = true
42
- tests = if @extended_time_range
43
- { # examples taken straight from the spec
44
- "1893-08-05" => -3800.0,
45
- "1904-01-01" => 0.0,
46
- "1910-02-03" => 2225.0,
47
- "2006-02-01" => 37287.0,
48
- "9999-12-31" => 2957003.0
49
- }
50
- else
51
- { # examples taken inside the possible values
52
- "1970-01-01" => 24107.0, # Unix epoch
53
- "1970-01-02" => 24108.0,
54
- "2006-02-01" => 37287.0,
55
- "2038-01-19" => 48962.0, # max date using signed timestamp in 32bit
56
- }
57
- end
58
- tests.each do |date_string, expected|
59
- serial = Axlsx::DateTimeConverter::date_to_serial Date.parse(date_string)
60
- assert_equal expected, serial
61
- end
62
- end
63
-
64
- def test_time_to_serial_1900
65
- Axlsx::Workbook.date1904 = false
66
- tests = if @extended_time_range
67
- { # examples taken straight from the spec
68
- "1893-08-05T00:00:01Z" => -2337.999989,
69
- "1899-12-28T18:00:00Z" => -1.25,
70
- "1910-02-03T10:05:54Z" => 3687.4207639,
71
- "1900-01-01T12:00:00Z" => 2.5, # wrongly indicated as 1.5 in the spec!
72
- "9999-12-31T23:59:59Z" => 2958465.9999884
73
- }
74
- else
75
- { # examples taken inside the possible values
76
- "1970-01-01T00:00:00Z" => 25569.0, # Unix epoch
77
- "1970-01-01T12:00:00Z" => 25569.5,
78
- "2000-01-01T00:00:00Z" => 36526.0,
79
- "2038-01-19T03:14:07Z" => 50424.134803, # max signed timestamp in 32bit
80
- }
81
- end
82
- tests.each do |time_string, expected|
83
- serial = Axlsx::DateTimeConverter::time_to_serial Time.parse(time_string)
84
- assert_in_delta expected, serial, @margin_of_error
85
- end
86
- end
87
-
88
- def test_time_to_serial_1904
89
- Axlsx::Workbook.date1904 = true
90
- # ruby 1.8.7 cannot parse dates prior to epoch. see http://ruby-doc.org/core-1.8.7/Time.html
91
-
92
- tests = if @extended_time_range
93
- { # examples taken straight from the spec
94
- "1893-08-05T00:00:01Z" => -3799.999989,
95
- "1910-02-03T10:05:54Z" => 2225.4207639,
96
- "1904-01-01T12:00:00Z" => 0.5000000,
97
- "9999-12-31T23:59:59Z" => 2957003.9999884
98
- }
99
- else
100
- { # examples taken inside the possible values
101
- "1970-01-01T00:00:00Z" => 24107.0, # Unix epoch
102
- "1970-01-01T12:00:00Z" => 24107.5,
103
- "2000-01-01T00:00:00Z" => 35064.0,
104
- "2038-01-19T03:14:07Z" => 48962.134803, # max signed timestamp in 32bit
105
- }
106
- end
107
- tests.each do |time_string, expected|
108
- serial = Axlsx::DateTimeConverter::time_to_serial Time.parse(time_string)
109
- assert_in_delta expected, serial, @margin_of_error
110
- end
111
- end
112
-
113
- def test_timezone
114
-
115
- utc = Time.utc 2012 # January 1st, 2012 at 0:00 UTC
116
- local = Time.parse "2012-01-01 09:00:00 +0900"
117
-
118
- assert_equal local, utc
119
- assert_equal Axlsx::DateTimeConverter::time_to_serial(local) - local.utc_offset.to_f/86400, Axlsx::DateTimeConverter::time_to_serial(utc)
120
- Axlsx::Workbook.date1904 = true
121
- assert_equal Axlsx::DateTimeConverter::time_to_serial(local) - local.utc_offset.to_f/86400, Axlsx::DateTimeConverter::time_to_serial(utc)
122
- end
123
-
124
- end
@@ -1,151 +0,0 @@
1
- require 'tc_helper'
2
-
3
- class TestHeaderFooter < Test::Unit::TestCase
4
-
5
- def setup
6
- @p = Axlsx::Package.new
7
- ws = @p.workbook.add_worksheet :name => 'test'
8
- @hf = ws.header_footer
9
- end
10
-
11
- def test_initialize
12
- assert_equal(nil, @hf.odd_header)
13
- assert_equal(nil, @hf.odd_footer)
14
-
15
- assert_equal(nil, @hf.even_header)
16
- assert_equal(nil, @hf.even_footer)
17
-
18
- assert_equal(nil, @hf.first_header)
19
- assert_equal(nil, @hf.first_footer)
20
-
21
- assert_equal(nil, @hf.different_first)
22
- assert_equal(nil, @hf.different_odd_even)
23
- end
24
-
25
- def test_initialize_with_options
26
- header_footer = {
27
- :odd_header => 'oh',
28
- :odd_footer => 'of',
29
-
30
- :even_header => 'eh',
31
- :even_footer => 'ef',
32
-
33
- :first_header => 'fh',
34
- :first_footer => 'ff',
35
-
36
- :different_first => true,
37
- :different_odd_even => true
38
- }
39
- optioned = @p.workbook.add_worksheet(:name => 'optioned', :header_footer => header_footer).header_footer
40
-
41
- assert_equal('oh', optioned.odd_header)
42
- assert_equal('of', optioned.odd_footer)
43
-
44
- assert_equal('eh', optioned.even_header)
45
- assert_equal('ef', optioned.even_footer)
46
-
47
- assert_equal('fh', optioned.first_header)
48
- assert_equal('ff', optioned.first_footer)
49
-
50
- assert_equal(true, optioned.different_first)
51
- assert_equal(true, optioned.different_odd_even)
52
- end
53
-
54
- def test_string_attributes
55
- %w(odd_header odd_footer even_header even_footer first_header first_footer).each do |attr|
56
- assert_raise(ArgumentError, 'only strings allowed in string attributes') { @hf.send("#{attr}=", 1) }
57
- assert_nothing_raised { @hf.send("#{attr}=", 'test_string') }
58
- end
59
- end
60
-
61
- def test_boolean_attributes
62
- %w(different_first different_odd_even).each do |attr|
63
- assert_raise(ArgumentError, 'only booleanish allowed in string attributes') { @hf.send("#{attr}=", 'foo') }
64
- assert_nothing_raised { @hf.send("#{attr}=", 1) }
65
- end
66
- end
67
-
68
- def test_set_all_values
69
- @hf.set(
70
- :odd_header => 'oh',
71
- :odd_footer => 'of',
72
-
73
- :even_header => 'eh',
74
- :even_footer => 'ef',
75
-
76
- :first_header => 'fh',
77
- :first_footer => 'ff',
78
-
79
- :different_first => true,
80
- :different_odd_even => true
81
- )
82
-
83
- assert_equal('oh', @hf.odd_header)
84
- assert_equal('of', @hf.odd_footer)
85
-
86
- assert_equal('eh', @hf.even_header)
87
- assert_equal('ef', @hf.even_footer)
88
-
89
- assert_equal('fh', @hf.first_header)
90
- assert_equal('ff', @hf.first_footer)
91
-
92
- assert_equal(true, @hf.different_first)
93
- assert_equal(true, @hf.different_odd_even)
94
- end
95
-
96
- def test_to_xml_all_values
97
- @hf.set(
98
- :odd_header => 'oh',
99
- :odd_footer => 'of',
100
-
101
- :even_header => 'eh',
102
- :even_footer => 'ef',
103
-
104
- :first_header => 'fh',
105
- :first_footer => 'ff',
106
-
107
- :different_first => true,
108
- :different_odd_even => true
109
- )
110
-
111
- doc = Nokogiri::XML.parse(@hf.to_xml_string)
112
- assert_equal(1, doc.xpath(".//headerFooter[@differentFirst=1][@differentOddEven=1]").size)
113
-
114
- assert_equal(1, doc.xpath(".//headerFooter/oddHeader").size)
115
- assert_equal('oh', doc.xpath(".//headerFooter/oddHeader").text)
116
- assert_equal(1, doc.xpath(".//headerFooter/oddFooter").size)
117
- assert_equal('of', doc.xpath(".//headerFooter/oddFooter").text)
118
-
119
- assert_equal(1, doc.xpath(".//headerFooter/evenHeader").size)
120
- assert_equal('eh', doc.xpath(".//headerFooter/evenHeader").text)
121
- assert_equal(1, doc.xpath(".//headerFooter/evenFooter").size)
122
- assert_equal('ef', doc.xpath(".//headerFooter/evenFooter").text)
123
-
124
- assert_equal(1, doc.xpath(".//headerFooter/firstHeader").size)
125
- assert_equal('fh', doc.xpath(".//headerFooter/firstHeader").text)
126
- assert_equal(1, doc.xpath(".//headerFooter/firstFooter").size)
127
- assert_equal('ff', doc.xpath(".//headerFooter/firstFooter").text)
128
- end
129
-
130
- def test_to_xml_some_values
131
- @hf.set(
132
- :odd_header => 'oh',
133
- :different_odd_even => false
134
- )
135
-
136
- doc = Nokogiri::XML.parse(@hf.to_xml_string)
137
- assert_equal(1, doc.xpath(".//headerFooter[@differentOddEven=0]").size)
138
- assert_equal(0, doc.xpath(".//headerFooter[@differentFirst]").size)
139
-
140
- assert_equal(1, doc.xpath(".//headerFooter/oddHeader").size)
141
- assert_equal('oh', doc.xpath(".//headerFooter/oddHeader").text)
142
- assert_equal(0, doc.xpath(".//headerFooter/oddFooter").size)
143
-
144
- assert_equal(0, doc.xpath(".//headerFooter/evenHeader").size)
145
- assert_equal(0, doc.xpath(".//headerFooter/evenFooter").size)
146
-
147
- assert_equal(0, doc.xpath(".//headerFooter/firstHeader").size)
148
- assert_equal(0, doc.xpath(".//headerFooter/firstFooter").size)
149
- end
150
- end
151
-
@@ -1,45 +0,0 @@
1
- require 'tc_helper.rb'
2
-
3
- class TestIconSet < Test::Unit::TestCase
4
- def setup
5
- @icon_set = Axlsx::IconSet.new
6
- end
7
-
8
- def test_defaults
9
- assert_equal @icon_set.iconSet, "3TrafficLights1"
10
- assert_equal @icon_set.percent, true
11
- assert_equal @icon_set.reverse, false
12
- assert_equal @icon_set.showValue, true
13
- end
14
-
15
- def test_icon_set
16
- assert_raise(ArgumentError) { @icon_set.iconSet = "invalid_value" }
17
- assert_nothing_raised { @icon_set.iconSet = "5Rating"}
18
- assert_equal(@icon_set.iconSet, "5Rating")
19
- end
20
-
21
- def test_percent
22
- assert_raise(ArgumentError) { @icon_set.percent = :invalid_type }
23
- assert_nothing_raised { @icon_set.percent = false}
24
- assert_equal(@icon_set.percent, false)
25
- end
26
-
27
- def test_showValue
28
- assert_raise(ArgumentError) { @icon_set.showValue = :invalid_type }
29
- assert_nothing_raised { @icon_set.showValue = false}
30
- assert_equal(@icon_set.showValue, false)
31
- end
32
-
33
- def test_reverse
34
- assert_raise(ArgumentError) { @icon_set.reverse = :invalid_type }
35
- assert_nothing_raised { @icon_set.reverse = false}
36
- assert_equal(@icon_set.reverse, false)
37
- end
38
-
39
- def test_to_xml_string
40
- doc = Nokogiri::XML.parse(@icon_set.to_xml_string)
41
- assert_equal(doc.xpath(".//iconSet[@iconSet='3TrafficLights1'][@percent=1][@reverse=0][@showValue=1]").size, 1)
42
- assert_equal(doc.xpath(".//iconSet//cfvo").size, 3)
43
- end
44
-
45
- end
@@ -1,19 +0,0 @@
1
- require 'tc_helper.rb'
2
-
3
- class TestOutlinePr < Test::Unit::TestCase
4
- def setup
5
- @outline_pr = Axlsx::OutlinePr.new(:summary_below => false, :summary_right => true, :apply_styles => false)
6
- end
7
-
8
- def test_summary_below
9
- assert_equal false, @outline_pr.summary_below
10
- end
11
-
12
- def test_summary_right
13
- assert_equal true, @outline_pr.summary_right
14
- end
15
-
16
- def test_apply_styles
17
- assert_equal false, @outline_pr.apply_styles
18
- end
19
- end
@@ -1,97 +0,0 @@
1
- require 'tc_helper.rb'
2
-
3
- class TestPageMargins < Test::Unit::TestCase
4
-
5
- def setup
6
- p = Axlsx::Package.new
7
- ws = p.workbook.add_worksheet :name=>"hmmm"
8
- @pm = ws.page_margins
9
- end
10
-
11
- def test_initialize
12
- assert_equal(Axlsx::PageMargins::DEFAULT_LEFT_RIGHT, @pm.left)
13
- assert_equal(Axlsx::PageMargins::DEFAULT_LEFT_RIGHT, @pm.right)
14
- assert_equal(Axlsx::PageMargins::DEFAULT_TOP_BOTTOM, @pm.top)
15
- assert_equal(Axlsx::PageMargins::DEFAULT_TOP_BOTTOM, @pm.bottom)
16
- assert_equal(Axlsx::PageMargins::DEFAULT_HEADER_FOOTER, @pm.header)
17
- assert_equal(Axlsx::PageMargins::DEFAULT_HEADER_FOOTER, @pm.footer)
18
- end
19
-
20
- def test_initialize_with_options
21
- optioned = Axlsx::PageMargins.new(:left => 2, :right => 3, :top => 2, :bottom => 1, :header => 0.1, :footer => 0.1)
22
- assert_equal(2, optioned.left)
23
- assert_equal(3, optioned.right)
24
- assert_equal(2, optioned.top)
25
- assert_equal(1, optioned.bottom)
26
- assert_equal(0.1, optioned.header)
27
- assert_equal(0.1, optioned.footer)
28
- end
29
-
30
-
31
- def test_set_all_values
32
- @pm.set(:left => 1.1, :right => 1.2, :top => 1.3, :bottom => 1.4, :header => 0.8, :footer => 0.9)
33
- assert_equal(1.1, @pm.left)
34
- assert_equal(1.2, @pm.right)
35
- assert_equal(1.3, @pm.top)
36
- assert_equal(1.4, @pm.bottom)
37
- assert_equal(0.8, @pm.header)
38
- assert_equal(0.9, @pm.footer)
39
- end
40
-
41
- def test_set_some_values
42
- @pm.set(:left => 1.1, :right => 1.2)
43
- assert_equal(1.1, @pm.left)
44
- assert_equal(1.2, @pm.right)
45
- assert_equal(Axlsx::PageMargins::DEFAULT_TOP_BOTTOM, @pm.top)
46
- assert_equal(Axlsx::PageMargins::DEFAULT_TOP_BOTTOM, @pm.bottom)
47
- assert_equal(Axlsx::PageMargins::DEFAULT_HEADER_FOOTER, @pm.header)
48
- assert_equal(Axlsx::PageMargins::DEFAULT_HEADER_FOOTER, @pm.footer)
49
- end
50
-
51
- def test_to_xml
52
- @pm.left = 1.1
53
- @pm.right = 1.2
54
- @pm.top = 1.3
55
- @pm.bottom = 1.4
56
- @pm.header = 0.8
57
- @pm.footer = 0.9
58
- doc = Nokogiri::XML.parse(@pm.to_xml_string)
59
- assert_equal(1, doc.xpath(".//pageMargins[@left=1.1][@right=1.2][@top=1.3][@bottom=1.4][@header=0.8][@footer=0.9]").size)
60
- end
61
-
62
- def test_left
63
- assert_raise(ArgumentError) { @pm.left = -1.2 }
64
- assert_nothing_raised { @pm.left = 1.5 }
65
- assert_equal(@pm.left, 1.5)
66
- end
67
-
68
- def test_right
69
- assert_raise(ArgumentError) { @pm.right = -1.2 }
70
- assert_nothing_raised { @pm.right = 1.5 }
71
- assert_equal(@pm.right, 1.5)
72
- end
73
-
74
- def test_top
75
- assert_raise(ArgumentError) { @pm.top = -1.2 }
76
- assert_nothing_raised { @pm.top = 1.5 }
77
- assert_equal(@pm.top, 1.5)
78
- end
79
-
80
- def test_bottom
81
- assert_raise(ArgumentError) { @pm.bottom = -1.2 }
82
- assert_nothing_raised { @pm.bottom = 1.5 }
83
- assert_equal(@pm.bottom, 1.5)
84
- end
85
-
86
- def test_header
87
- assert_raise(ArgumentError) { @pm.header = -1.2 }
88
- assert_nothing_raised { @pm.header = 1.5 }
89
- assert_equal(@pm.header, 1.5)
90
- end
91
-
92
- def test_footer
93
- assert_raise(ArgumentError) { @pm.footer = -1.2 }
94
- assert_nothing_raised { @pm.footer = 1.5 }
95
- assert_equal(@pm.footer, 1.5)
96
- end
97
- end
@@ -1,15 +0,0 @@
1
- require 'tc_helper.rb'
2
-
3
- class TestPageSetUpPr < Test::Unit::TestCase
4
- def setup
5
- @page_setup_pr = Axlsx::PageSetUpPr.new(:fit_to_page => true, :auto_page_breaks => true)
6
- end
7
-
8
- def test_fit_to_page
9
- assert_equal true, @page_setup_pr.fit_to_page
10
- end
11
-
12
- def test_auto_page_breaks
13
- assert_equal true, @page_setup_pr.auto_page_breaks
14
- end
15
- end
@@ -1,143 +0,0 @@
1
- require 'tc_helper.rb'
2
-
3
- class TestPageSetup < Test::Unit::TestCase
4
-
5
- def setup
6
- @p = Axlsx::Package.new
7
- ws = @p.workbook.add_worksheet :name => "hmmm"
8
- @ps = ws.page_setup
9
- end
10
-
11
- def test_initialize
12
- assert_equal(nil, @ps.fit_to_height)
13
- assert_equal(nil, @ps.fit_to_width)
14
- assert_equal(nil, @ps.orientation)
15
- assert_equal(nil, @ps.paper_height)
16
- assert_equal(nil, @ps.paper_width)
17
- assert_equal(nil, @ps.scale)
18
- end
19
-
20
- def test_initialize_with_options
21
- page_setup = { :fit_to_height => 1,
22
- :fit_to_width => 2,
23
- :orientation => :landscape,
24
- :paper_height => "297mm",
25
- :paper_width => "210mm",
26
- :scale => 50 }
27
-
28
- optioned = @p.workbook.add_worksheet(:name => 'optioned', :page_setup => page_setup).page_setup
29
- assert_equal(1, optioned.fit_to_height)
30
- assert_equal(2, optioned.fit_to_width)
31
- assert_equal(:landscape, optioned.orientation)
32
- assert_equal("297mm", optioned.paper_height)
33
- assert_equal("210mm", optioned.paper_width)
34
- assert_equal(50, optioned.scale)
35
- end
36
-
37
- def test_set_all_values
38
- @ps.set(:fit_to_height => 1, :fit_to_width => 2, :orientation => :landscape, :paper_height => "297mm", :paper_width => "210mm", :scale => 50)
39
- assert_equal(1, @ps.fit_to_height)
40
- assert_equal(2, @ps.fit_to_width)
41
- assert_equal(:landscape, @ps.orientation)
42
- assert_equal("297mm", @ps.paper_height)
43
- assert_equal("210mm", @ps.paper_width)
44
- assert_equal(50, @ps.scale)
45
- end
46
-
47
- def test_paper_size
48
- assert_raise(ArgumentError) { @ps.paper_size = 119 }
49
- assert_nothing_raised { @ps.paper_size = 10 }
50
- end
51
-
52
- def test_set_some_values
53
- @ps.set(:fit_to_width => 2, :orientation => :portrait)
54
- assert_equal(2, @ps.fit_to_width)
55
- assert_equal(:portrait, @ps.orientation)
56
- assert_equal(nil, @ps.fit_to_height)
57
- assert_equal(nil, @ps.paper_height)
58
- assert_equal(nil, @ps.paper_width)
59
- assert_equal(nil, @ps.scale)
60
- end
61
-
62
- def test_default_fit_to_page?
63
- assert(@ps.fit_to_width == nil && @ps.fit_to_height == nil)
64
- assert(@ps.fit_to_page? == false)
65
- end
66
-
67
- def test_with_height_fit_to_page?
68
- assert(@ps.fit_to_width == nil && @ps.fit_to_height == nil)
69
- @ps.set(:fit_to_height => 1)
70
- assert(@ps.fit_to_page?)
71
- end
72
-
73
- def test_with_width_fit_to_page?
74
- assert(@ps.fit_to_width == nil && @ps.fit_to_height == nil)
75
- @ps.set(:fit_to_width => 1)
76
- assert(@ps.fit_to_page?)
77
- end
78
-
79
- def test_to_xml_all_values
80
- @ps.set(:fit_to_height => 1, :fit_to_width => 2, :orientation => :landscape, :paper_height => "297mm", :paper_width => "210mm", :scale => 50)
81
- doc = Nokogiri::XML.parse(@ps.to_xml_string)
82
- assert_equal(1, doc.xpath(".//pageSetup[@fitToHeight='1'][@fitToWidth='2'][@orientation='landscape'][@paperHeight='297mm'][@paperWidth='210mm'][@scale='50']").size)
83
- end
84
-
85
- def test_to_xml_some_values
86
- @ps.set(:orientation => :portrait)
87
- doc = Nokogiri::XML.parse(@ps.to_xml_string)
88
- assert_equal(1, doc.xpath(".//pageSetup[@orientation='portrait']").size)
89
- assert_equal(0, doc.xpath(".//pageSetup[@fitToHeight]").size)
90
- assert_equal(0, doc.xpath(".//pageSetup[@fitToWidth]").size)
91
- assert_equal(0, doc.xpath(".//pageSetup[@paperHeight]").size)
92
- assert_equal(0, doc.xpath(".//pageSetup[@paperWidth]").size)
93
- assert_equal(0, doc.xpath(".//pageSetup[@scale]").size)
94
- end
95
-
96
- def test_fit_to_height
97
- assert_raise(ArgumentError) { @ps.fit_to_height = 1.5 }
98
- assert_nothing_raised { @ps.fit_to_height = 2 }
99
- assert_equal(2, @ps.fit_to_height)
100
- end
101
-
102
- def test_fit_to_width
103
- assert_raise(ArgumentError) { @ps.fit_to_width = false }
104
- assert_nothing_raised { @ps.fit_to_width = 1 }
105
- assert_equal(1, @ps.fit_to_width)
106
- end
107
-
108
- def test_orientation
109
- assert_raise(ArgumentError) { @ps.orientation = "" }
110
- assert_nothing_raised { @ps.orientation = :default }
111
- assert_equal(:default, @ps.orientation)
112
- end
113
-
114
- def test_paper_height
115
- assert_raise(ArgumentError) { @ps.paper_height = 99 }
116
- assert_nothing_raised { @ps.paper_height = "11in" }
117
- assert_equal("11in", @ps.paper_height)
118
- end
119
-
120
- def test_paper_width
121
- assert_raise(ArgumentError) { @ps.paper_width = "22" }
122
- assert_nothing_raised { @ps.paper_width = "29.7cm" }
123
- assert_equal("29.7cm", @ps.paper_width)
124
- end
125
-
126
- def test_scale
127
- assert_raise(ArgumentError) { @ps.scale = 50.5 }
128
- assert_nothing_raised { @ps.scale = 99 }
129
- assert_equal(99, @ps.scale)
130
- end
131
-
132
- def test_fit_to
133
- fits = @ps.fit_to(:width => 1)
134
- assert_equal([1, 999], fits)
135
- fits = @ps.fit_to :height => 1
136
- assert_equal(fits, [999 ,1])
137
- fits = @ps.fit_to :height => 7, :width => 2
138
- assert_equal(fits, [2, 7])
139
- assert_raise(ArgumentError) { puts @ps.fit_to(:width => true)}
140
-
141
-
142
- end
143
- end
@@ -1,54 +0,0 @@
1
- # encoding: UTF-8
2
- $LOAD_PATH.unshift "#{File.dirname(__FILE__)}/../../"
3
- require 'tc_helper.rb'
4
-
5
- class TestPane < Test::Unit::TestCase
6
- def setup
7
- #inverse defaults for booleans
8
- @nil_options = { :active_pane => :bottom_left, :state => :frozen, :top_left_cell => 'A2' }
9
- @int_0_options = { :x_split => 2, :y_split => 2 }
10
- @options = @nil_options.merge(@int_0_options)
11
- @pane = Axlsx::Pane.new(@options)
12
- end
13
-
14
-
15
- def test_active_pane
16
- assert_raise(ArgumentError) { @pane.active_pane = "10" }
17
- assert_nothing_raised { @pane.active_pane = :top_left }
18
- assert_equal(@pane.active_pane, "topLeft")
19
- end
20
-
21
- def test_state
22
- assert_raise(ArgumentError) { @pane.state = "foo" }
23
- assert_nothing_raised { @pane.state = :frozen_split }
24
- assert_equal(@pane.state, "frozenSplit")
25
- end
26
-
27
- def test_x_split
28
- assert_raise(ArgumentError) { @pane.x_split = "foo´" }
29
- assert_nothing_raised { @pane.x_split = 200 }
30
- assert_equal(@pane.x_split, 200)
31
- end
32
-
33
- def test_y_split
34
- assert_raise(ArgumentError) { @pane.y_split = 'foo' }
35
- assert_nothing_raised { @pane.y_split = 300 }
36
- assert_equal(@pane.y_split, 300)
37
- end
38
-
39
- def test_top_left_cell
40
- assert_raise(ArgumentError) { @pane.top_left_cell = :cell }
41
- assert_nothing_raised { @pane.top_left_cell = "A2" }
42
- assert_equal(@pane.top_left_cell, "A2")
43
- end
44
-
45
- def test_to_xml
46
- doc = Nokogiri::XML.parse(@pane.to_xml_string)
47
- assert_equal(1, doc.xpath("//pane[@ySplit=2][@xSplit='2'][@topLeftCell='A2'][@state='frozen'][@activePane='bottomLeft']").size)
48
- end
49
- def test_to_xml_frozen
50
- pane = Axlsx::Pane.new :state => :frozen, :y_split => 2
51
- doc = Nokogiri::XML(pane.to_xml_string)
52
- assert_equal(1, doc.xpath("//pane[@topLeftCell='A3']").size)
53
- end
54
- end