caxlsx 3.0.4 → 3.2.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 (294) hide show
  1. checksums.yaml +4 -4
  2. data/.yardopts +9 -9
  3. data/.yardopts_guide +18 -18
  4. data/CHANGELOG.md +354 -334
  5. data/LICENSE +21 -21
  6. data/README.md +168 -170
  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 -151
  21. data/lib/axlsx/drawing/bar_chart.rb +138 -143
  22. data/lib/axlsx/drawing/bar_series.rb +97 -80
  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 +276 -276
  27. data/lib/axlsx/drawing/d_lbls.rb +90 -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 -98
  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 +97 -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 +388 -363
  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 -71
  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 +494 -420
  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 +410 -401
  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 +395 -370
  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/break.rb +35 -35
  98. data/lib/axlsx/workbook/worksheet/cell.rb +506 -505
  99. data/lib/axlsx/workbook/worksheet/cell_serializer.rb +164 -164
  100. data/lib/axlsx/workbook/worksheet/cfvo.rb +60 -60
  101. data/lib/axlsx/workbook/worksheet/cfvos.rb +18 -18
  102. data/lib/axlsx/workbook/worksheet/col.rb +145 -145
  103. data/lib/axlsx/workbook/worksheet/col_breaks.rb +35 -35
  104. data/lib/axlsx/workbook/worksheet/color_scale.rb +110 -110
  105. data/lib/axlsx/workbook/worksheet/cols.rb +23 -23
  106. data/lib/axlsx/workbook/worksheet/comment.rb +91 -91
  107. data/lib/axlsx/workbook/worksheet/comments.rb +82 -82
  108. data/lib/axlsx/workbook/worksheet/conditional_formatting.rb +82 -82
  109. data/lib/axlsx/workbook/worksheet/conditional_formatting_rule.rb +220 -220
  110. data/lib/axlsx/workbook/worksheet/conditional_formattings.rb +25 -25
  111. data/lib/axlsx/workbook/worksheet/data_bar.rb +129 -129
  112. data/lib/axlsx/workbook/worksheet/data_validation.rb +246 -246
  113. data/lib/axlsx/workbook/worksheet/data_validations.rb +28 -28
  114. data/lib/axlsx/workbook/worksheet/date_time_converter.rb +30 -30
  115. data/lib/axlsx/workbook/worksheet/dimension.rb +64 -64
  116. data/lib/axlsx/workbook/worksheet/header_footer.rb +52 -52
  117. data/lib/axlsx/workbook/worksheet/icon_set.rb +81 -81
  118. data/lib/axlsx/workbook/worksheet/merged_cells.rb +37 -37
  119. data/lib/axlsx/workbook/worksheet/outline_pr.rb +33 -33
  120. data/lib/axlsx/workbook/worksheet/page_margins.rb +97 -97
  121. data/lib/axlsx/workbook/worksheet/page_set_up_pr.rb +44 -44
  122. data/lib/axlsx/workbook/worksheet/page_setup.rb +240 -240
  123. data/lib/axlsx/workbook/worksheet/pane.rb +139 -139
  124. data/lib/axlsx/workbook/worksheet/pivot_table.rb +296 -289
  125. data/lib/axlsx/workbook/worksheet/pivot_table_cache_definition.rb +66 -66
  126. data/lib/axlsx/workbook/worksheet/pivot_tables.rb +24 -24
  127. data/lib/axlsx/workbook/worksheet/print_options.rb +39 -39
  128. data/lib/axlsx/workbook/worksheet/protected_range.rb +47 -47
  129. data/lib/axlsx/workbook/worksheet/protected_ranges.rb +37 -37
  130. data/lib/axlsx/workbook/worksheet/rich_text.rb +55 -55
  131. data/lib/axlsx/workbook/worksheet/rich_text_run.rb +250 -250
  132. data/lib/axlsx/workbook/worksheet/row.rb +164 -162
  133. data/lib/axlsx/workbook/worksheet/row_breaks.rb +33 -33
  134. data/lib/axlsx/workbook/worksheet/selection.rb +101 -101
  135. data/lib/axlsx/workbook/worksheet/sheet_calc_pr.rb +29 -29
  136. data/lib/axlsx/workbook/worksheet/sheet_data.rb +27 -27
  137. data/lib/axlsx/workbook/worksheet/sheet_pr.rb +87 -87
  138. data/lib/axlsx/workbook/worksheet/sheet_protection.rb +118 -118
  139. data/lib/axlsx/workbook/worksheet/sheet_view.rb +213 -213
  140. data/lib/axlsx/workbook/worksheet/table.rb +102 -102
  141. data/lib/axlsx/workbook/worksheet/table_style_info.rb +49 -49
  142. data/lib/axlsx/workbook/worksheet/tables.rb +34 -34
  143. data/lib/axlsx/workbook/worksheet/worksheet.rb +786 -764
  144. data/lib/axlsx/workbook/worksheet/worksheet_comments.rb +58 -58
  145. data/lib/axlsx/workbook/worksheet/worksheet_drawing.rb +58 -58
  146. data/lib/axlsx/workbook/worksheet/worksheet_hyperlink.rb +74 -74
  147. data/lib/axlsx/workbook/worksheet/worksheet_hyperlinks.rb +38 -38
  148. data/lib/axlsx.rb +185 -170
  149. data/lib/caxlsx.rb +2 -2
  150. data/lib/schema/dc.xsd +118 -118
  151. data/lib/schema/dcmitype.xsd +51 -51
  152. data/lib/schema/dcterms.xsd +331 -331
  153. data/lib/schema/dml-chartDrawing.xsd +146 -146
  154. data/lib/schema/dml-compatibility.xsd +14 -14
  155. data/lib/schema/dml-lockedCanvas.xsd +11 -11
  156. data/lib/schema/dml-main.xsd +3048 -3048
  157. data/lib/schema/dml-picture.xsd +23 -23
  158. data/lib/schema/dml-spreadsheetDrawing.xsd +185 -185
  159. data/lib/schema/dml-wordprocessingDrawing.xsd +185 -185
  160. data/lib/schema/shared-additionalCharacteristics.xsd +28 -28
  161. data/lib/schema/shared-bibliography.xsd +144 -144
  162. data/lib/schema/shared-commonSimpleTypes.xsd +166 -166
  163. data/lib/schema/shared-customXmlDataProperties.xsd +25 -25
  164. data/lib/schema/shared-customXmlSchemaProperties.xsd +18 -18
  165. data/lib/schema/shared-documentPropertiesCustom.xsd +59 -59
  166. data/lib/schema/shared-documentPropertiesExtended.xsd +56 -56
  167. data/lib/schema/shared-documentPropertiesVariantTypes.xsd +195 -195
  168. data/lib/schema/shared-relationshipReference.xsd +25 -25
  169. data/lib/schema/vml-main.xsd +569 -569
  170. data/lib/schema/vml-officeDrawing.xsd +509 -509
  171. data/lib/schema/vml-presentationDrawing.xsd +12 -12
  172. data/lib/schema/vml-spreadsheetDrawing.xsd +108 -108
  173. data/lib/schema/vml-wordprocessingDrawing.xsd +96 -96
  174. data/lib/schema/xml.xsd +116 -116
  175. data/test/benchmark.rb +72 -72
  176. data/test/content_type/tc_content_type.rb +76 -76
  177. data/test/content_type/tc_default.rb +16 -16
  178. data/test/content_type/tc_override.rb +14 -14
  179. data/test/doc_props/tc_app.rb +43 -43
  180. data/test/doc_props/tc_core.rb +42 -42
  181. data/test/drawing/tc_area_chart.rb +39 -39
  182. data/test/drawing/tc_area_series.rb +71 -71
  183. data/test/drawing/tc_axes.rb +7 -7
  184. data/test/drawing/tc_axis.rb +112 -112
  185. data/test/drawing/tc_bar_3D_chart.rb +86 -71
  186. data/test/drawing/tc_bar_chart.rb +86 -71
  187. data/test/drawing/tc_bar_series.rb +46 -37
  188. data/test/drawing/tc_bubble_chart.rb +44 -44
  189. data/test/drawing/tc_bubble_series.rb +21 -21
  190. data/test/drawing/tc_cat_axis.rb +31 -31
  191. data/test/drawing/tc_cat_axis_data.rb +27 -27
  192. data/test/drawing/tc_chart.rb +123 -123
  193. data/test/drawing/tc_d_lbls.rb +57 -57
  194. data/test/drawing/tc_data_source.rb +23 -23
  195. data/test/drawing/tc_drawing.rb +80 -80
  196. data/test/drawing/tc_graphic_frame.rb +27 -27
  197. data/test/drawing/tc_hyperlink.rb +64 -64
  198. data/test/drawing/tc_line_3d_chart.rb +47 -47
  199. data/test/drawing/tc_line_chart.rb +39 -39
  200. data/test/drawing/tc_line_series.rb +71 -71
  201. data/test/drawing/tc_marker.rb +44 -44
  202. data/test/drawing/tc_named_axis_data.rb +27 -27
  203. data/test/drawing/tc_num_data.rb +31 -31
  204. data/test/drawing/tc_num_val.rb +29 -29
  205. data/test/drawing/tc_one_cell_anchor.rb +66 -66
  206. data/test/drawing/tc_pic.rb +103 -103
  207. data/test/drawing/tc_picture_locking.rb +72 -72
  208. data/test/drawing/tc_pie_3D_chart.rb +28 -28
  209. data/test/drawing/tc_pie_series.rb +33 -33
  210. data/test/drawing/tc_scaling.rb +36 -36
  211. data/test/drawing/tc_scatter_chart.rb +48 -48
  212. data/test/drawing/tc_scatter_series.rb +74 -56
  213. data/test/drawing/tc_ser_axis.rb +31 -31
  214. data/test/drawing/tc_series.rb +23 -23
  215. data/test/drawing/tc_series_title.rb +54 -54
  216. data/test/drawing/tc_str_data.rb +18 -18
  217. data/test/drawing/tc_str_val.rb +30 -30
  218. data/test/drawing/tc_title.rb +70 -70
  219. data/test/drawing/tc_two_cell_anchor.rb +36 -36
  220. data/test/drawing/tc_val_axis.rb +24 -24
  221. data/test/drawing/tc_view_3D.rb +54 -54
  222. data/test/drawing/tc_vml_drawing.rb +25 -25
  223. data/test/drawing/tc_vml_shape.rb +106 -106
  224. data/test/profile.rb +24 -24
  225. data/test/rels/tc_relationship.rb +52 -52
  226. data/test/rels/tc_relationships.rb +37 -37
  227. data/test/stylesheet/tc_border.rb +37 -37
  228. data/test/stylesheet/tc_border_pr.rb +32 -32
  229. data/test/stylesheet/tc_cell_alignment.rb +81 -81
  230. data/test/stylesheet/tc_cell_protection.rb +29 -29
  231. data/test/stylesheet/tc_cell_style.rb +57 -57
  232. data/test/stylesheet/tc_color.rb +43 -43
  233. data/test/stylesheet/tc_dxf.rb +81 -81
  234. data/test/stylesheet/tc_fill.rb +18 -18
  235. data/test/stylesheet/tc_font.rb +133 -133
  236. data/test/stylesheet/tc_gradient_fill.rb +72 -72
  237. data/test/stylesheet/tc_gradient_stop.rb +31 -31
  238. data/test/stylesheet/tc_num_fmt.rb +30 -30
  239. data/test/stylesheet/tc_pattern_fill.rb +43 -43
  240. data/test/stylesheet/tc_styles.rb +309 -261
  241. data/test/stylesheet/tc_table_style.rb +44 -44
  242. data/test/stylesheet/tc_table_style_element.rb +45 -45
  243. data/test/stylesheet/tc_table_styles.rb +29 -29
  244. data/test/stylesheet/tc_xf.rb +120 -120
  245. data/test/tc_axlsx.rb +109 -109
  246. data/test/tc_helper.rb +10 -12
  247. data/test/tc_package.rb +317 -264
  248. data/test/util/tc_mime_type_utils.rb +13 -13
  249. data/test/util/tc_serialized_attributes.rb +19 -19
  250. data/test/util/tc_simple_typed_list.rb +77 -77
  251. data/test/util/tc_validators.rb +210 -210
  252. data/test/workbook/tc_defined_name.rb +49 -49
  253. data/test/workbook/tc_shared_strings_table.rb +59 -59
  254. data/test/workbook/tc_workbook.rb +165 -160
  255. data/test/workbook/tc_workbook_view.rb +50 -50
  256. data/test/workbook/worksheet/auto_filter/tc_auto_filter.rb +38 -38
  257. data/test/workbook/worksheet/auto_filter/tc_filter_column.rb +76 -76
  258. data/test/workbook/worksheet/auto_filter/tc_filters.rb +50 -50
  259. data/test/workbook/worksheet/tc_break.rb +49 -49
  260. data/test/workbook/worksheet/tc_cell.rb +465 -453
  261. data/test/workbook/worksheet/tc_cfvo.rb +31 -31
  262. data/test/workbook/worksheet/tc_col.rb +93 -93
  263. data/test/workbook/worksheet/tc_color_scale.rb +58 -58
  264. data/test/workbook/worksheet/tc_comment.rb +72 -72
  265. data/test/workbook/worksheet/tc_comments.rb +57 -57
  266. data/test/workbook/worksheet/tc_conditional_formatting.rb +224 -224
  267. data/test/workbook/worksheet/tc_data_bar.rb +46 -46
  268. data/test/workbook/worksheet/tc_data_validation.rb +265 -265
  269. data/test/workbook/worksheet/tc_date_time_converter.rb +124 -124
  270. data/test/workbook/worksheet/tc_header_footer.rb +151 -151
  271. data/test/workbook/worksheet/tc_icon_set.rb +45 -45
  272. data/test/workbook/worksheet/tc_outline_pr.rb +19 -19
  273. data/test/workbook/worksheet/tc_page_margins.rb +97 -97
  274. data/test/workbook/worksheet/tc_page_set_up_pr.rb +15 -15
  275. data/test/workbook/worksheet/tc_page_setup.rb +143 -143
  276. data/test/workbook/worksheet/tc_pane.rb +54 -54
  277. data/test/workbook/worksheet/tc_pivot_table.rb +180 -135
  278. data/test/workbook/worksheet/tc_pivot_table_cache_definition.rb +62 -54
  279. data/test/workbook/worksheet/tc_print_options.rb +72 -72
  280. data/test/workbook/worksheet/tc_protected_range.rb +17 -17
  281. data/test/workbook/worksheet/tc_rich_text.rb +44 -44
  282. data/test/workbook/worksheet/tc_rich_text_run.rb +173 -173
  283. data/test/workbook/worksheet/tc_row.rb +160 -139
  284. data/test/workbook/worksheet/tc_selection.rb +55 -55
  285. data/test/workbook/worksheet/tc_sheet_calc_pr.rb +18 -18
  286. data/test/workbook/worksheet/tc_sheet_format_pr.rb +88 -88
  287. data/test/workbook/worksheet/tc_sheet_pr.rb +49 -49
  288. data/test/workbook/worksheet/tc_sheet_protection.rb +117 -117
  289. data/test/workbook/worksheet/tc_sheet_view.rb +214 -214
  290. data/test/workbook/worksheet/tc_table.rb +77 -67
  291. data/test/workbook/worksheet/tc_table_style_info.rb +53 -53
  292. data/test/workbook/worksheet/tc_worksheet.rb +632 -601
  293. data/test/workbook/worksheet/tc_worksheet_hyperlink.rb +55 -55
  294. metadata +11 -11
@@ -1,139 +1,160 @@
1
- require 'tc_helper.rb'
2
-
3
- class TestRow < Test::Unit::TestCase
4
-
5
- def setup
6
- p = Axlsx::Package.new
7
- @ws = p.workbook.add_worksheet :name=>"hmmm"
8
- @row = @ws.add_row
9
- end
10
-
11
- def test_initialize
12
- assert(@row.cells.empty?, "no cells by default")
13
- assert_equal(@row.worksheet, @ws, "has a reference to the worksheet")
14
- assert_nil(@row.height, "height defaults to nil")
15
- assert(!@row.custom_height, "no custom height by default")
16
- end
17
-
18
- def test_initialize_with_fixed_height
19
- row = @ws.add_row([1,2,3,4,5], :height=>40)
20
- assert_equal(40, row.height)
21
- assert(row.custom_height)
22
- end
23
-
24
- def test_style
25
- r = @ws.add_row([1,2,3,4,5])
26
- r.style=1
27
- r.cells.each { |c| assert_equal(c.style,1) }
28
- end
29
-
30
- def test_color
31
- r = @ws.add_row([1,2,3,4,5])
32
- r.color = "FF00FF00"
33
- r.cells.each { |c| assert_equal(c.color.rgb, "FF00FF00") }
34
- end
35
-
36
- def test_index
37
- assert_equal(@row.row_index, @row.worksheet.rows.index(@row))
38
- end
39
-
40
- def test_add_cell
41
- c = @row.add_cell(1)
42
- assert_equal(@row.cells.last, c)
43
- end
44
-
45
- def test_add_cell_autowidth_info
46
- cell = @row.add_cell("this is the cell of cells")
47
- width = cell.send(:autowidth)
48
- assert_equal(@ws.column_info.last.width, width)
49
- end
50
-
51
- def test_array_to_cells
52
- r = @ws.add_row [1,2,3], :style=>1, :types=>[:integer, :string, :float]
53
- assert_equal(r.cells.size, 3)
54
- r.cells.each do |c|
55
- assert_equal(c.style, 1)
56
- end
57
- r = @ws.add_row [1,2,3], :style=>[1]
58
- assert_equal(r.cells.first.style, 1, "only apply style to cells with at the same index of of the style array")
59
- assert_equal(r.cells.last.style, 0, "only apply style to cells with at the same index of of the style array")
60
-
61
- end
62
-
63
- def test_array_to_cells_with_escape_formulas
64
- row = ['=HYPERLINK("http://www.example.com", "CSV Payload")', '=Bar']
65
- @ws.add_row row, escape_formulas: true
66
-
67
- assert_equal @ws.rows.last.cells[0].escape_formulas, true
68
- assert_equal @ws.rows.last.cells[1].escape_formulas, true
69
- end
70
-
71
- def test_array_to_cells_with_escape_formulas_as_an_array
72
- row = ['=HYPERLINK("http://www.example.com", "CSV Payload")', '+Foo', '-Bar']
73
- @ws.add_row row, escape_formulas: [true, false, true]
74
-
75
- assert_equal @ws.rows.last.cells.first.escape_formulas, true
76
- assert_equal @ws.rows.last.cells[1].escape_formulas, false
77
- assert_equal @ws.rows.last.cells[2].escape_formulas, true
78
- end
79
-
80
- def test_custom_height
81
- @row.height = 20
82
- assert(@row.custom_height)
83
- end
84
-
85
- def test_height
86
- assert_raise(ArgumentError) { @row.height = -3 }
87
- assert_nothing_raised { @row.height = 15 }
88
- assert_equal(15, @row.height)
89
- end
90
-
91
-
92
- def test_ph
93
- assert_raise(ArgumentError) { @row.ph = -3 }
94
- assert_nothing_raised { @row.ph = true }
95
- assert_equal(true, @row.ph)
96
- end
97
-
98
- def test_hidden
99
- assert_raise(ArgumentError) { @row.hidden = -3 }
100
- assert_nothing_raised { @row.hidden = true }
101
- assert_equal(true, @row.hidden)
102
- end
103
-
104
- def test_collapsed
105
- assert_raise(ArgumentError) { @row.collapsed = -3 }
106
- assert_nothing_raised { @row.collapsed = true }
107
- assert_equal(true, @row.collapsed)
108
- end
109
-
110
- def test_outlineLevel
111
- assert_raise(ArgumentError) { @row.outlineLevel = -3 }
112
- assert_nothing_raised { @row.outlineLevel = 2 }
113
- assert_equal(2, @row.outlineLevel)
114
- end
115
-
116
- def test_to_xml_without_custom_height
117
- doc = Nokogiri::XML.parse(@row.to_xml_string(0))
118
- assert_equal(0, doc.xpath(".//row[@ht]").size)
119
- assert_equal(0, doc.xpath(".//row[@customHeight]").size)
120
- end
121
-
122
- def test_to_xml_string
123
- @row.height = 20
124
- @row.s = 1
125
- @row.outlineLevel = 2
126
- @row.collapsed = true
127
- @row.hidden = true
128
- r_s_xml = Nokogiri::XML(@row.to_xml_string(0, ''))
129
- assert_equal(r_s_xml.xpath(".//row[@r=1]").size, 1)
130
- end
131
-
132
- def test_to_xml_string_with_custom_height
133
- @row.add_cell 1
134
- @row.height = 20
135
- r_s_xml = Nokogiri::XML(@row.to_xml_string(0, ''))
136
- assert_equal(r_s_xml.xpath(".//row[@r=1][@ht=20][@customHeight=1]").size, 1)
137
- end
138
-
139
- end
1
+ require 'tc_helper.rb'
2
+
3
+ class TestRow < Test::Unit::TestCase
4
+
5
+ def setup
6
+ p = Axlsx::Package.new
7
+ @ws = p.workbook.add_worksheet :name=>"hmmm"
8
+ @row = @ws.add_row
9
+ end
10
+
11
+ def test_initialize
12
+ assert(@row.cells.empty?, "no cells by default")
13
+ assert_equal(@row.worksheet, @ws, "has a reference to the worksheet")
14
+ assert_nil(@row.height, "height defaults to nil")
15
+ assert(!@row.custom_height, "no custom height by default")
16
+ end
17
+
18
+ def test_initialize_with_fixed_height
19
+ row = @ws.add_row([1,2,3,4,5], :height=>40)
20
+ assert_equal(40, row.height)
21
+ assert(row.custom_height)
22
+ end
23
+
24
+ def test_style
25
+ r = @ws.add_row([1,2,3,4,5])
26
+ r.style=1
27
+ r.cells.each { |c| assert_equal(c.style,1) }
28
+ end
29
+
30
+ def test_color
31
+ r = @ws.add_row([1,2,3,4,5])
32
+ r.color = "FF00FF00"
33
+ r.cells.each { |c| assert_equal(c.color.rgb, "FF00FF00") }
34
+ end
35
+
36
+ def test_index
37
+ assert_equal(@row.row_index, @row.worksheet.rows.index(@row))
38
+ end
39
+
40
+ def test_add_cell
41
+ c = @row.add_cell(1)
42
+ assert_equal(@row.cells.last, c)
43
+ end
44
+
45
+ def test_add_cell_autowidth_info
46
+ cell = @row.add_cell("this is the cell of cells")
47
+ width = cell.send(:autowidth)
48
+ assert_equal(@ws.column_info.last.width, width)
49
+ end
50
+
51
+ def test_array_to_cells
52
+ r = @ws.add_row [1,2,3], :style=>1, :types=>[:integer, :string, :float]
53
+ assert_equal(r.cells.size, 3)
54
+ r.cells.each do |c|
55
+ assert_equal(c.style, 1)
56
+ end
57
+ r = @ws.add_row [1,2,3], :style=>[1]
58
+ assert_equal(r.cells.first.style, 1, "only apply style to cells with at the same index of of the style array")
59
+ assert_equal(r.cells.last.style, 0, "only apply style to cells with at the same index of of the style array")
60
+
61
+ end
62
+
63
+ def test_array_to_cells_with_escape_formulas
64
+ row = ['=HYPERLINK("http://www.example.com", "CSV Payload")', '=Bar']
65
+ @ws.add_row row, escape_formulas: true
66
+
67
+ assert_equal @ws.rows.last.cells[0].escape_formulas, true
68
+ assert_equal @ws.rows.last.cells[1].escape_formulas, true
69
+ end
70
+
71
+ def test_array_to_cells_with_escape_formulas_as_an_array
72
+ row = ['=HYPERLINK("http://www.example.com", "CSV Payload")', '+Foo', '-Bar']
73
+ @ws.add_row row, escape_formulas: [true, false, true]
74
+
75
+ assert_equal @ws.rows.last.cells.first.escape_formulas, true
76
+ assert_equal @ws.rows.last.cells[1].escape_formulas, false
77
+ assert_equal @ws.rows.last.cells[2].escape_formulas, true
78
+ end
79
+
80
+ def test_custom_height
81
+ @row.height = 20
82
+ assert(@row.custom_height)
83
+ end
84
+
85
+ def test_height
86
+ assert_raise(ArgumentError) { @row.height = -3 }
87
+ assert_nothing_raised { @row.height = 15 }
88
+ assert_equal(15, @row.height)
89
+ end
90
+
91
+
92
+ def test_ph
93
+ assert_raise(ArgumentError) { @row.ph = -3 }
94
+ assert_nothing_raised { @row.ph = true }
95
+ assert_equal(true, @row.ph)
96
+ end
97
+
98
+ def test_hidden
99
+ assert_raise(ArgumentError) { @row.hidden = -3 }
100
+ assert_nothing_raised { @row.hidden = true }
101
+ assert_equal(true, @row.hidden)
102
+ end
103
+
104
+ def test_collapsed
105
+ assert_raise(ArgumentError) { @row.collapsed = -3 }
106
+ assert_nothing_raised { @row.collapsed = true }
107
+ assert_equal(true, @row.collapsed)
108
+ end
109
+
110
+ def test_outlineLevel
111
+ assert_raise(ArgumentError) { @row.outlineLevel = -3 }
112
+ assert_nothing_raised { @row.outlineLevel = 2 }
113
+ assert_equal(2, @row.outlineLevel)
114
+ end
115
+
116
+ def test_to_xml_without_custom_height
117
+ doc = Nokogiri::XML.parse(@row.to_xml_string(0))
118
+ assert_equal(0, doc.xpath(".//row[@ht]").size)
119
+ assert_equal(0, doc.xpath(".//row[@customHeight]").size)
120
+ end
121
+
122
+ def test_to_xml_string
123
+ @row.height = 20
124
+ @row.s = 1
125
+ @row.outlineLevel = 2
126
+ @row.collapsed = true
127
+ @row.hidden = true
128
+ r_s_xml = Nokogiri::XML(@row.to_xml_string(0, ''))
129
+ assert_equal(r_s_xml.xpath(".//row[@r=1]").size, 1)
130
+ end
131
+
132
+ def test_to_xml_string_with_custom_height
133
+ @row.add_cell 1
134
+ @row.height = 20
135
+ r_s_xml = Nokogiri::XML(@row.to_xml_string(0, ''))
136
+ assert_equal(r_s_xml.xpath(".//row[@r=1][@ht=20][@customHeight=1]").size, 1)
137
+ end
138
+
139
+ def test_offsets
140
+ offset = 3
141
+ values = [1,2,3,4,5]
142
+ r = @ws.add_row(values, offset: offset, style: 1)
143
+ r.cells.each_with_index do |c, index|
144
+ assert_equal(c.style, index < offset ? 0 : 1)
145
+ assert_equal(c.value, index < offset ? nil : values[index - offset])
146
+ end
147
+ end
148
+
149
+ def test_offsets_with_styles
150
+ offset = 3
151
+ values = [1,2,3,4,5]
152
+ styles = (1..5).map{ @ws.workbook.styles.add_style }
153
+ r = @ws.add_row(values, offset: offset, style: styles)
154
+ r.cells.each_with_index do |c, index|
155
+ assert_equal(c.style, index < offset ? 0 : styles[index-offset])
156
+ assert_equal(c.value, index < offset ? nil : values[index - offset])
157
+ end
158
+ end
159
+
160
+ end
@@ -1,55 +1,55 @@
1
- # encoding: UTF-8
2
- require 'tc_helper.rb'
3
-
4
- class TestSelection < Test::Unit::TestCase
5
- def setup
6
- @options = { :active_cell => 'A2', :active_cell_id => 1, :pane => :top_left, :sqref => 'A2' }
7
- @selection = Axlsx::Selection.new(@options)
8
- end
9
-
10
- def test_active_cell
11
- assert_raise(ArgumentError) { @selection.active_cell = :active_cell }
12
- assert_nothing_raised { @selection.active_cell = "F5" }
13
- assert_equal(@selection.active_cell, "F5")
14
- end
15
-
16
- def test_active_cell_id
17
- assert_raise(ArgumentError) { @selection.active_cell_id = "foo" }
18
- assert_nothing_raised { @selection.active_cell_id = 11 }
19
- assert_equal(@selection.active_cell_id, 11)
20
- end
21
-
22
- def test_pane
23
- assert_raise(ArgumentError) { @selection.pane = "foo´" }
24
- assert_nothing_raised { @selection.pane = :bottom_right }
25
- assert_equal(@selection.pane, "bottomRight")
26
- end
27
-
28
- def test_sqref
29
- assert_raise(ArgumentError) { @selection.sqref = :sqref }
30
- assert_nothing_raised { @selection.sqref = "G32" }
31
- assert_equal(@selection.sqref, "G32")
32
- end
33
-
34
- def test_to_xml
35
- p = Axlsx::Package.new
36
- @ws = p.workbook.add_worksheet :name => "sheetview"
37
- @ws.sheet_view do |vs|
38
- vs.add_selection(:top_left, { :active_cell => 'B2', :sqref => 'B2' })
39
- vs.add_selection(:top_right, { :active_cell => 'I10', :sqref => 'I10' })
40
- vs.add_selection(:bottom_left, { :active_cell => 'E55', :sqref => 'E55' })
41
- vs.add_selection(:bottom_right, { :active_cell => 'I57', :sqref => 'I57' })
42
- end
43
-
44
- doc = Nokogiri::XML.parse(@ws.to_xml_string)
45
-
46
- assert_equal(1, doc.xpath("//xmlns:worksheet/xmlns:sheetViews/xmlns:sheetView/xmlns:selection[@sqref='B2'][@pane='topLeft'][@activeCell='B2']").size)
47
- assert doc.xpath("//xmlns:worksheet/xmlns:sheetViews/xmlns:sheetView/xmlns:selection[@sqref='B2'][@pane='topLeft'][@activeCell='B2']")
48
- assert_equal(1, doc.xpath("//xmlns:worksheet/xmlns:sheetViews/xmlns:sheetView/xmlns:selection[@sqref='I10'][@pane='topRight'][@activeCell='I10']").size)
49
- assert doc.xpath("//xmlns:worksheet/xmlns:sheetViews/xmlns:sheetView/xmlns:selection[@sqref='I10'][@pane='topRight'][@activeCell='I10']")
50
- assert_equal(1, doc.xpath("//xmlns:worksheet/xmlns:sheetViews/xmlns:sheetView/xmlns:selection[@sqref='E55'][@pane='bottomLeft'][@activeCell='E55']").size)
51
- assert doc.xpath("//xmlns:worksheet/xmlns:sheetViews/xmlns:sheetView/xmlns:selection[@sqref='E55'][@pane='bottomLeft'][@activeCell='E55']")
52
- assert_equal(1, doc.xpath("//xmlns:worksheet/xmlns:sheetViews/xmlns:sheetView/xmlns:selection[@sqref='I57'][@pane='bottomRight'][@activeCell='I57']").size)
53
- assert doc.xpath("//xmlns:worksheet/xmlns:sheetViews/xmlns:sheetView/xmlns:selection[@sqref='I57'][@pane='bottomRight'][@activeCell='I57']")
54
- end
55
- end
1
+ # encoding: UTF-8
2
+ require 'tc_helper.rb'
3
+
4
+ class TestSelection < Test::Unit::TestCase
5
+ def setup
6
+ @options = { :active_cell => 'A2', :active_cell_id => 1, :pane => :top_left, :sqref => 'A2' }
7
+ @selection = Axlsx::Selection.new(@options)
8
+ end
9
+
10
+ def test_active_cell
11
+ assert_raise(ArgumentError) { @selection.active_cell = :active_cell }
12
+ assert_nothing_raised { @selection.active_cell = "F5" }
13
+ assert_equal(@selection.active_cell, "F5")
14
+ end
15
+
16
+ def test_active_cell_id
17
+ assert_raise(ArgumentError) { @selection.active_cell_id = "foo" }
18
+ assert_nothing_raised { @selection.active_cell_id = 11 }
19
+ assert_equal(@selection.active_cell_id, 11)
20
+ end
21
+
22
+ def test_pane
23
+ assert_raise(ArgumentError) { @selection.pane = "foo´" }
24
+ assert_nothing_raised { @selection.pane = :bottom_right }
25
+ assert_equal(@selection.pane, "bottomRight")
26
+ end
27
+
28
+ def test_sqref
29
+ assert_raise(ArgumentError) { @selection.sqref = :sqref }
30
+ assert_nothing_raised { @selection.sqref = "G32" }
31
+ assert_equal(@selection.sqref, "G32")
32
+ end
33
+
34
+ def test_to_xml
35
+ p = Axlsx::Package.new
36
+ @ws = p.workbook.add_worksheet :name => "sheetview"
37
+ @ws.sheet_view do |vs|
38
+ vs.add_selection(:top_left, { :active_cell => 'B2', :sqref => 'B2' })
39
+ vs.add_selection(:top_right, { :active_cell => 'I10', :sqref => 'I10' })
40
+ vs.add_selection(:bottom_left, { :active_cell => 'E55', :sqref => 'E55' })
41
+ vs.add_selection(:bottom_right, { :active_cell => 'I57', :sqref => 'I57' })
42
+ end
43
+
44
+ doc = Nokogiri::XML.parse(@ws.to_xml_string)
45
+
46
+ assert_equal(1, doc.xpath("//xmlns:worksheet/xmlns:sheetViews/xmlns:sheetView/xmlns:selection[@sqref='B2'][@pane='topLeft'][@activeCell='B2']").size)
47
+ assert doc.xpath("//xmlns:worksheet/xmlns:sheetViews/xmlns:sheetView/xmlns:selection[@sqref='B2'][@pane='topLeft'][@activeCell='B2']")
48
+ assert_equal(1, doc.xpath("//xmlns:worksheet/xmlns:sheetViews/xmlns:sheetView/xmlns:selection[@sqref='I10'][@pane='topRight'][@activeCell='I10']").size)
49
+ assert doc.xpath("//xmlns:worksheet/xmlns:sheetViews/xmlns:sheetView/xmlns:selection[@sqref='I10'][@pane='topRight'][@activeCell='I10']")
50
+ assert_equal(1, doc.xpath("//xmlns:worksheet/xmlns:sheetViews/xmlns:sheetView/xmlns:selection[@sqref='E55'][@pane='bottomLeft'][@activeCell='E55']").size)
51
+ assert doc.xpath("//xmlns:worksheet/xmlns:sheetViews/xmlns:sheetView/xmlns:selection[@sqref='E55'][@pane='bottomLeft'][@activeCell='E55']")
52
+ assert_equal(1, doc.xpath("//xmlns:worksheet/xmlns:sheetViews/xmlns:sheetView/xmlns:selection[@sqref='I57'][@pane='bottomRight'][@activeCell='I57']").size)
53
+ assert doc.xpath("//xmlns:worksheet/xmlns:sheetViews/xmlns:sheetView/xmlns:selection[@sqref='I57'][@pane='bottomRight'][@activeCell='I57']")
54
+ end
55
+ end
@@ -1,18 +1,18 @@
1
- require 'tc_helper'
2
-
3
- class TestSheetCalcPr < Test::Unit::TestCase
4
-
5
- def setup
6
- @sheet_calc_pr = Axlsx::SheetCalcPr.new(:full_calc_on_load => false)
7
- end
8
-
9
- def test_full_calc_on_load
10
- assert_equal false, @sheet_calc_pr.full_calc_on_load
11
- assert Axlsx::SheetCalcPr.new.full_calc_on_load
12
- end
13
-
14
- def test_to_xml_string
15
- doc = Nokogiri::XML(@sheet_calc_pr.to_xml_string)
16
- assert_equal 1, doc.xpath('//sheetCalcPr[@fullCalcOnLoad=0]').size
17
- end
18
- end
1
+ require 'tc_helper'
2
+
3
+ class TestSheetCalcPr < Test::Unit::TestCase
4
+
5
+ def setup
6
+ @sheet_calc_pr = Axlsx::SheetCalcPr.new(:full_calc_on_load => false)
7
+ end
8
+
9
+ def test_full_calc_on_load
10
+ assert_equal false, @sheet_calc_pr.full_calc_on_load
11
+ assert Axlsx::SheetCalcPr.new.full_calc_on_load
12
+ end
13
+
14
+ def test_to_xml_string
15
+ doc = Nokogiri::XML(@sheet_calc_pr.to_xml_string)
16
+ assert_equal 1, doc.xpath('//sheetCalcPr[@fullCalcOnLoad=0]').size
17
+ end
18
+ end
@@ -1,88 +1,88 @@
1
- require 'tc_helper.rb'
2
-
3
- class TestSheetFormatPr < Test::Unit::TestCase
4
-
5
- def setup
6
- @options = {
7
- :base_col_width => 5,
8
- :default_col_width => 7.2,
9
- :default_row_height => 5.2,
10
- :custom_height => true,
11
- :zero_height => false,
12
- :thick_top => true,
13
- :thick_bottom => true,
14
- :outline_level_row => 0,
15
- :outline_level_col => 0
16
- }
17
- @sheet_format_pr = Axlsx::SheetFormatPr.new(@options)
18
- end
19
-
20
- def test_default_initialization
21
- sheet_format_pr = Axlsx::SheetFormatPr.new
22
- assert_equal 8, sheet_format_pr.base_col_width
23
- assert_equal 18, sheet_format_pr.default_row_height
24
- end
25
-
26
- def test_initialization_with_options
27
- @options.each do |key, value|
28
- assert_equal value, @sheet_format_pr.instance_variable_get("@#{key}")
29
- end
30
- end
31
-
32
- def test_base_col_width
33
- assert_raise(ArgumentError) { @sheet_format_pr.base_col_width = :foo }
34
- assert_nothing_raised { @sheet_format_pr.base_col_width = 1 }
35
- end
36
-
37
- def test_outline_level_row
38
- assert_raise(ArgumentError) { @sheet_format_pr.outline_level_row = :foo }
39
- assert_nothing_raised { @sheet_format_pr.outline_level_row = 1 }
40
- end
41
-
42
- def test_outline_level_col
43
- assert_raise(ArgumentError) { @sheet_format_pr.outline_level_col = :foo }
44
- assert_nothing_raised { @sheet_format_pr.outline_level_col = 1 }
45
- end
46
-
47
- def test_default_row_height
48
- assert_raise(ArgumentError) { @sheet_format_pr.default_row_height = :foo }
49
- assert_nothing_raised { @sheet_format_pr.default_row_height= 1.0 }
50
- end
51
-
52
- def test_default_col_width
53
- assert_raise(ArgumentError) { @sheet_format_pr.default_col_width= :foo }
54
- assert_nothing_raised { @sheet_format_pr.default_col_width = 1.0 }
55
- end
56
-
57
- def test_custom_height
58
- assert_raise(ArgumentError) { @sheet_format_pr.custom_height= :foo }
59
- assert_nothing_raised { @sheet_format_pr.custom_height = true }
60
- end
61
-
62
- def test_zero_height
63
- assert_raise(ArgumentError) { @sheet_format_pr.zero_height= :foo }
64
- assert_nothing_raised { @sheet_format_pr.zero_height = true }
65
- end
66
- def test_thick_top
67
- assert_raise(ArgumentError) { @sheet_format_pr.thick_top= :foo }
68
- assert_nothing_raised { @sheet_format_pr.thick_top = true }
69
- end
70
- def test_thick_bottom
71
- assert_raise(ArgumentError) { @sheet_format_pr.thick_bottom= :foo }
72
- assert_nothing_raised { @sheet_format_pr.thick_bottom = true }
73
- end
74
-
75
- def test_to_xml_string
76
- doc = Nokogiri::XML(@sheet_format_pr.to_xml_string)
77
- assert doc.xpath("sheetFormatPr[@thickBottom=1]")
78
- assert doc.xpath("sheetFormatPr[@baseColWidth=5]")
79
- assert doc.xpath("sheetFormatPr[@default_col_width=7.2]")
80
- assert doc.xpath("sheetFormatPr[@default_row_height=5.2]")
81
- assert doc.xpath("sheetFormatPr[@custom_height=1]")
82
- assert doc.xpath("sheetFormatPr[@zero_height=0]")
83
- assert doc.xpath("sheetFormatPr[@thick_top=1]")
84
- assert doc.xpath("sheetFormatPr[@outline_level_row=0]")
85
- assert doc.xpath("sheetFormatPr[@outline_level_col=0]")
86
- end
87
-
88
- end
1
+ require 'tc_helper.rb'
2
+
3
+ class TestSheetFormatPr < Test::Unit::TestCase
4
+
5
+ def setup
6
+ @options = {
7
+ :base_col_width => 5,
8
+ :default_col_width => 7.2,
9
+ :default_row_height => 5.2,
10
+ :custom_height => true,
11
+ :zero_height => false,
12
+ :thick_top => true,
13
+ :thick_bottom => true,
14
+ :outline_level_row => 0,
15
+ :outline_level_col => 0
16
+ }
17
+ @sheet_format_pr = Axlsx::SheetFormatPr.new(@options)
18
+ end
19
+
20
+ def test_default_initialization
21
+ sheet_format_pr = Axlsx::SheetFormatPr.new
22
+ assert_equal 8, sheet_format_pr.base_col_width
23
+ assert_equal 18, sheet_format_pr.default_row_height
24
+ end
25
+
26
+ def test_initialization_with_options
27
+ @options.each do |key, value|
28
+ assert_equal value, @sheet_format_pr.instance_variable_get("@#{key}")
29
+ end
30
+ end
31
+
32
+ def test_base_col_width
33
+ assert_raise(ArgumentError) { @sheet_format_pr.base_col_width = :foo }
34
+ assert_nothing_raised { @sheet_format_pr.base_col_width = 1 }
35
+ end
36
+
37
+ def test_outline_level_row
38
+ assert_raise(ArgumentError) { @sheet_format_pr.outline_level_row = :foo }
39
+ assert_nothing_raised { @sheet_format_pr.outline_level_row = 1 }
40
+ end
41
+
42
+ def test_outline_level_col
43
+ assert_raise(ArgumentError) { @sheet_format_pr.outline_level_col = :foo }
44
+ assert_nothing_raised { @sheet_format_pr.outline_level_col = 1 }
45
+ end
46
+
47
+ def test_default_row_height
48
+ assert_raise(ArgumentError) { @sheet_format_pr.default_row_height = :foo }
49
+ assert_nothing_raised { @sheet_format_pr.default_row_height= 1.0 }
50
+ end
51
+
52
+ def test_default_col_width
53
+ assert_raise(ArgumentError) { @sheet_format_pr.default_col_width= :foo }
54
+ assert_nothing_raised { @sheet_format_pr.default_col_width = 1.0 }
55
+ end
56
+
57
+ def test_custom_height
58
+ assert_raise(ArgumentError) { @sheet_format_pr.custom_height= :foo }
59
+ assert_nothing_raised { @sheet_format_pr.custom_height = true }
60
+ end
61
+
62
+ def test_zero_height
63
+ assert_raise(ArgumentError) { @sheet_format_pr.zero_height= :foo }
64
+ assert_nothing_raised { @sheet_format_pr.zero_height = true }
65
+ end
66
+ def test_thick_top
67
+ assert_raise(ArgumentError) { @sheet_format_pr.thick_top= :foo }
68
+ assert_nothing_raised { @sheet_format_pr.thick_top = true }
69
+ end
70
+ def test_thick_bottom
71
+ assert_raise(ArgumentError) { @sheet_format_pr.thick_bottom= :foo }
72
+ assert_nothing_raised { @sheet_format_pr.thick_bottom = true }
73
+ end
74
+
75
+ def test_to_xml_string
76
+ doc = Nokogiri::XML(@sheet_format_pr.to_xml_string)
77
+ assert doc.xpath("sheetFormatPr[@thickBottom=1]")
78
+ assert doc.xpath("sheetFormatPr[@baseColWidth=5]")
79
+ assert doc.xpath("sheetFormatPr[@default_col_width=7.2]")
80
+ assert doc.xpath("sheetFormatPr[@default_row_height=5.2]")
81
+ assert doc.xpath("sheetFormatPr[@custom_height=1]")
82
+ assert doc.xpath("sheetFormatPr[@zero_height=0]")
83
+ assert doc.xpath("sheetFormatPr[@thick_top=1]")
84
+ assert doc.xpath("sheetFormatPr[@outline_level_row=0]")
85
+ assert doc.xpath("sheetFormatPr[@outline_level_col=0]")
86
+ end
87
+
88
+ end