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,70 +0,0 @@
1
- $LOAD_PATH.unshift "#{File.dirname(__FILE__)}/../"
2
-
3
- require 'tc_helper.rb'
4
-
5
- class TestTitle < Test::Unit::TestCase
6
- def setup
7
- @p = Axlsx::Package.new
8
- ws = @p.workbook.add_worksheet
9
- @row = ws.add_row ["one", 1, Time.now]
10
- @title = Axlsx::Title.new
11
- @chart = ws.add_chart Axlsx::Bar3DChart
12
- end
13
-
14
- def teardown
15
- end
16
-
17
- def test_initialization
18
- assert(@title.text == "")
19
- assert(@title.cell == nil)
20
- end
21
-
22
- def test_initialize_title_size
23
- title = Axlsx::Title.new 'bob', 90
24
- assert_equal "90", title.text_size
25
- end
26
-
27
- def test_text
28
- assert_raise(ArgumentError, "text must be a string") { @title.text = 123 }
29
- @title.cell = @row.cells.first
30
- @title.text = "bob"
31
- assert(@title.cell == nil, "setting title with text clears the cell")
32
- end
33
-
34
- def test_cell
35
- assert_raise(ArgumentError, "cell must be a Cell") { @title.cell = "123" }
36
- @title.cell = @row.cells.first
37
- assert(@title.text == "one")
38
- end
39
-
40
- def test_to_xml_string_text
41
- @chart.title.text = 'foo'
42
- doc = Nokogiri::XML(@chart.to_xml_string)
43
- assert_equal(1, doc.xpath('//c:rich').size)
44
- assert_equal(1, doc.xpath("//a:t[text()='foo']").size)
45
- end
46
-
47
- def test_to_xml_string_cell
48
- @chart.title.cell = @row.cells.first
49
- doc = Nokogiri::XML(@chart.to_xml_string)
50
- assert_equal(1, doc.xpath('//c:strCache').size)
51
- assert_equal(1, doc.xpath('//c:v[text()="one"]').size)
52
- end
53
-
54
- def test_to_xml_string_for_special_characters
55
- @chart.title.text = "&><'\""
56
- doc = Nokogiri::XML(@chart.to_xml_string)
57
- errors = doc.errors
58
- assert(errors.empty?, "invalid xml: #{errors.map(&:to_s).join(', ')}")
59
- end
60
-
61
- def test_to_xml_string_for_special_characters_in_cell
62
- cell = @row.cells.first
63
- cell.value = "&><'\""
64
-
65
- @chart.title.cell = cell
66
- doc = Nokogiri::XML(@chart.to_xml_string)
67
- errors = doc.errors
68
- assert(errors.empty?, "invalid xml: #{errors.map(&:to_s).join(', ')}")
69
- end
70
- end
@@ -1,36 +0,0 @@
1
- require 'tc_helper.rb'
2
-
3
- class TestTwoCellAnchor < Test::Unit::TestCase
4
-
5
- def setup
6
- p = Axlsx::Package.new
7
- @ws = p.workbook.add_worksheet
8
- @ws.add_row ["one", 1, Time.now]
9
- chart = @ws.add_chart Axlsx::Bar3DChart
10
- @anchor = chart.graphic_frame.anchor
11
- end
12
-
13
- def test_initialization
14
- assert(@anchor.from.col == 0)
15
- assert(@anchor.from.row == 0)
16
- assert(@anchor.to.col == 5)
17
- assert(@anchor.to.row == 10)
18
- end
19
-
20
- def test_index
21
- assert_equal(@anchor.index, @anchor.drawing.anchors.index(@anchor))
22
- end
23
-
24
- def test_options
25
- assert_raise(ArgumentError, 'invalid start_at') { @ws.add_chart Axlsx::Chart, :start_at=>"1" }
26
- assert_raise(ArgumentError, 'invalid end_at') { @ws.add_chart Axlsx::Chart, :start_at=>[1,2], :end_at => ["a", 4] }
27
- # this is actually raised in the graphic frame
28
- assert_raise(ArgumentError, 'invalid Chart') { @ws.add_chart Axlsx::TwoCellAnchor }
29
- a = @ws.add_chart Axlsx::Chart, :start_at => [15, 35], :end_at => [90, 45]
30
- assert_equal(a.graphic_frame.anchor.from.col, 15)
31
- assert_equal(a.graphic_frame.anchor.from.row, 35)
32
- assert_equal(a.graphic_frame.anchor.to.col, 90)
33
- assert_equal(a.graphic_frame.anchor.to.row, 45)
34
- end
35
-
36
- end
@@ -1,24 +0,0 @@
1
- require 'tc_helper.rb'
2
-
3
- class TestValAxis < Test::Unit::TestCase
4
- def setup
5
- @axis = Axlsx::ValAxis.new
6
- end
7
- def teardown
8
- end
9
-
10
- def test_initialization
11
- assert_equal(@axis.cross_between, :between, "axis crossBetween default incorrect")
12
- end
13
-
14
- def test_options
15
- a = Axlsx::ValAxis.new(:cross_between => :midCat)
16
- assert_equal(:midCat, a.cross_between)
17
- end
18
-
19
- def test_crossBetween
20
- assert_raise(ArgumentError, "requires valid crossBetween") { @axis.cross_between = :my_eyes }
21
- assert_nothing_raised("accepts valid crossBetween") { @axis.cross_between = :midCat }
22
- end
23
-
24
- end
@@ -1,54 +0,0 @@
1
- require 'tc_helper.rb'
2
-
3
- class TestView3D < Test::Unit::TestCase
4
- def setup
5
- @view = Axlsx::View3D.new
6
- end
7
-
8
- def teardown
9
- end
10
-
11
- def test_options
12
- v = Axlsx::View3D.new :rot_x => 10, :rot_y => 5, :h_percent => "30%", :depth_percent => "45%", :r_ang_ax => false, :perspective => 10
13
- assert_equal(v.rot_x, 10)
14
- assert_equal(v.rot_y, 5)
15
- assert_equal(v.h_percent, "30%")
16
- assert_equal(v.depth_percent, "45%")
17
- assert_equal(v.r_ang_ax, false)
18
- assert_equal(v.perspective, 10)
19
- end
20
-
21
- def test_rot_x
22
- assert_raise(ArgumentError) {@view.rot_x = "bob"}
23
- assert_nothing_raised {@view.rot_x = -90}
24
- end
25
-
26
- def test_rot_y
27
- assert_raise(ArgumentError) {@view.rot_y = "bob"}
28
- assert_nothing_raised {@view.rot_y = 90}
29
- end
30
-
31
- def test_h_percent
32
- assert_raise(ArgumentError) {@view.h_percent = "bob"}
33
- assert_nothing_raised {@view.h_percent = "500%"}
34
- end
35
-
36
- def test_depth_percent
37
- assert_raise(ArgumentError) {@view.depth_percent = "bob"}
38
- assert_nothing_raised {@view.depth_percent = "20%"}
39
- end
40
-
41
-
42
- def test_rAngAx
43
- assert_raise(ArgumentError) {@view.rAngAx = "bob"}
44
- assert_nothing_raised {@view.rAngAx = true}
45
- end
46
-
47
- def test_perspective
48
- assert_raise(ArgumentError) {@view.perspective = "bob"}
49
- assert_nothing_raised {@view.perspective = 30}
50
- end
51
-
52
-
53
-
54
- end
@@ -1,25 +0,0 @@
1
- require 'tc_helper.rb'
2
-
3
- class TestVmlDrawing < Test::Unit::TestCase
4
-
5
- def setup
6
- p = Axlsx::Package.new
7
- wb = p.workbook
8
- @ws = wb.add_worksheet
9
- @ws.add_comment :ref => 'A1', :text => 'penut machine', :author => 'crank'
10
- @ws.add_comment :ref => 'C3', :text => 'rust bucket', :author => 'PO'
11
- @vml_drawing = @ws.comments.vml_drawing
12
- end
13
-
14
- def test_initialize
15
- assert_raise(ArgumentError) { Axlsx::VmlDrawing.new }
16
- end
17
-
18
- def test_to_xml_string
19
- str = @vml_drawing.to_xml_string()
20
- doc = Nokogiri::XML(str)
21
- assert_equal(doc.xpath("//v:shape").size, 2)
22
- assert(doc.xpath("//o:idmap[@o:data='#{@ws.index+1}']"))
23
- end
24
-
25
- end
@@ -1,106 +0,0 @@
1
- require 'tc_helper.rb'
2
-
3
- class TestVmlShape < Test::Unit::TestCase
4
-
5
- def setup
6
- p = Axlsx::Package.new
7
- wb = p.workbook
8
- @ws = wb.add_worksheet
9
- @ws.add_comment :ref => 'A1', :text => 'penut machine', :author => 'crank', :visible => true
10
- @ws.add_comment :ref => 'C3', :text => 'rust bucket', :author => 'PO', :visible => false
11
- @comments = @ws.comments
12
- end
13
-
14
- def test_initialize
15
- assert_raise(ArgumentError) { Axlsx::VmlDrawing.new }
16
- end
17
-
18
- def test_row
19
- shape = @comments.first.vml_shape
20
- assert_equal(shape.row, 0)
21
- shape = @comments.last.vml_shape
22
- assert_equal(shape.row, 2)
23
- end
24
-
25
- def test_column
26
- shape = @comments.first.vml_shape
27
- assert_equal(shape.column, 0)
28
- shape = @comments.last.vml_shape
29
- assert_equal(shape.column, 2)
30
- end
31
-
32
- def test_left_column
33
- shape = @comments.first.vml_shape
34
- shape.left_column = 3
35
- assert(shape.left_column == 3)
36
- assert_raise(ArgumentError) { shape.left_column = [] }
37
- end
38
-
39
- def test_left_offset
40
- shape = @comments.first.vml_shape
41
- shape.left_offset = 3
42
- assert(shape.left_offset == 3)
43
- assert_raise(ArgumentError) { shape.left_offset = [] }
44
- end
45
-
46
- def test_right_column
47
- shape = @comments.first.vml_shape
48
- shape.right_column = 3
49
- assert(shape.right_column == 3)
50
- assert_raise(ArgumentError) { shape.right_column = [] }
51
- end
52
-
53
- def test_right_offset
54
- shape = @comments.first.vml_shape
55
- shape.right_offset = 3
56
- assert(shape.right_offset == 3)
57
- assert_raise(ArgumentError) { shape.right_offset = [] }
58
- end
59
-
60
- def test_top_offset
61
- shape = @comments.first.vml_shape
62
- shape.top_offset = 3
63
- assert(shape.top_offset == 3)
64
- assert_raise(ArgumentError) { shape.top_offset = [] }
65
- end
66
-
67
- def test_bottom_offset
68
- shape = @comments.first.vml_shape
69
- shape.bottom_offset = 3
70
- assert(shape.bottom_offset == 3)
71
- assert_raise(ArgumentError) { shape.bottom_offset = [] }
72
- end
73
-
74
- def test_bottom_row
75
- shape = @comments.first.vml_shape
76
- shape.bottom_row = 3
77
- assert(shape.bottom_row == 3)
78
- assert_raise(ArgumentError) { shape.bottom_row = [] }
79
- end
80
-
81
- def test_top_row
82
- shape = @comments.first.vml_shape
83
- shape.top_row = 3
84
- assert(shape.top_row == 3)
85
- assert_raise(ArgumentError) { shape.top_row = [] }
86
- end
87
- def test_visible
88
- shape = @comments.first.vml_shape
89
- shape.visible = false
90
- assert(shape.visible == false)
91
- assert_raise(ArgumentError) { shape.visible = 'foo' }
92
- end
93
- def test_to_xml_string
94
- str = @comments.vml_drawing.to_xml_string()
95
- doc = Nokogiri::XML(str)
96
- assert_equal(doc.xpath("//v:shape").size, 2)
97
- assert_equal(1, doc.xpath("//x:Visible").size, 'ClientData/x:Visible element rendering')
98
- @comments.each do |comment|
99
- shape = comment.vml_shape
100
- assert(doc.xpath("//v:shape/x:ClientData/x:Row[text()='#{shape.row}']").size == 1)
101
- assert(doc.xpath("//v:shape/x:ClientData/x:Column[text()='#{shape.column}']").size == 1)
102
- assert(doc.xpath("//v:shape/x:ClientData/x:Anchor[text()='#{shape.left_column}, #{shape.left_offset}, #{shape.top_row}, #{shape.top_offset}, #{shape.right_column}, #{shape.right_offset}, #{shape.bottom_row}, #{shape.bottom_offset}']").size == 1)
103
- end
104
- end
105
-
106
- end
Binary file
Binary file
Binary file
Binary file
File without changes
data/test/profile.rb DELETED
@@ -1,24 +0,0 @@
1
- #!/usr/bin/env ruby -s
2
-
3
- $:.unshift "#{File.dirname(__FILE__)}/../lib"
4
- require 'axlsx'
5
- require 'ruby-prof'
6
- #RubyProf.measure_mode = RubyProf::MEMORY
7
- #
8
- row = []
9
- # Taking worst case scenario of all string data
10
- input = (32..126).to_a.pack('U*').chars.to_a
11
- 20.times { row << input.shuffle.join}
12
-
13
- profile = RubyProf.profile do
14
- p = Axlsx::Package.new
15
- p.workbook.add_worksheet do |sheet|
16
- 10000.times do
17
- sheet << row
18
- end
19
- end
20
- p.to_stream
21
- end
22
-
23
- printer = RubyProf::FlatPrinter.new(profile)
24
- printer.print(STDOUT, {})
@@ -1,52 +0,0 @@
1
- require 'tc_helper.rb'
2
-
3
- class TestRelationships < Test::Unit::TestCase
4
-
5
- def test_instances_with_different_attributes_have_unique_ids
6
- rel_1 = Axlsx::Relationship.new(Object.new, Axlsx::WORKSHEET_R, 'target')
7
- rel_2 = Axlsx::Relationship.new(Object.new, Axlsx::COMMENT_R, 'foobar')
8
- assert_not_equal rel_1.Id, rel_2.Id
9
- end
10
-
11
- def test_instances_with_same_attributes_share_id
12
- source_obj = Object.new
13
- instance = Axlsx::Relationship.new(source_obj, Axlsx::WORKSHEET_R, 'target')
14
- assert_equal instance.Id, Axlsx::Relationship.new(source_obj, Axlsx::WORKSHEET_R, 'target').Id
15
- end
16
-
17
- def test_ids_cache_is_thread_safe
18
- cache1, cache2 = nil
19
- t1 = Thread.new { cache1 = Axlsx::Relationship.ids_cache }
20
- t2 = Thread.new { cache2 = Axlsx::Relationship.ids_cache }
21
- [t1, t2].each(&:join)
22
- assert_not_same(cache1, cache2)
23
- end
24
-
25
- def test_target_is_only_considered_for_same_attributes_check_if_target_mode_is_external
26
- source_obj = Object.new
27
- rel_1 = Axlsx::Relationship.new(source_obj, Axlsx::WORKSHEET_R, 'target')
28
- rel_2 = Axlsx::Relationship.new(source_obj, Axlsx::WORKSHEET_R, '../target')
29
- assert_equal rel_1.Id, rel_2.Id
30
-
31
- rel_3 = Axlsx::Relationship.new(source_obj, Axlsx::HYPERLINK_R, 'target', :target_mode => :External)
32
- rel_4 = Axlsx::Relationship.new(source_obj, Axlsx::HYPERLINK_R, '../target', :target_mode => :External)
33
- assert_not_equal rel_3.Id, rel_4.Id
34
- end
35
-
36
- def test_type
37
- assert_raise(ArgumentError) { Axlsx::Relationship.new nil, 'type', 'target' }
38
- assert_nothing_raised { Axlsx::Relationship.new nil, Axlsx::WORKSHEET_R, 'target' }
39
- assert_nothing_raised { Axlsx::Relationship.new nil, Axlsx::COMMENT_R, 'target' }
40
- end
41
-
42
- def test_target_mode
43
- assert_raise(ArgumentError) { Axlsx::Relationship.new nil, 'type', 'target', :target_mode => "FISH" }
44
- assert_nothing_raised { Axlsx::Relationship.new( nil, Axlsx::WORKSHEET_R, 'target', :target_mode => :External) }
45
- end
46
-
47
- def test_ampersand_escaping_in_target
48
- r = Axlsx::Relationship.new(nil, Axlsx::HYPERLINK_R, "http://example.com?foo=1&bar=2", :target_mod => :External)
49
- doc = Nokogiri::XML(r.to_xml_string)
50
- assert_equal(doc.xpath("//Relationship[@Target='http://example.com?foo=1&bar=2']").size, 1)
51
- end
52
- end
@@ -1,37 +0,0 @@
1
- require 'tc_helper.rb'
2
-
3
- class TestRelationships < Test::Unit::TestCase
4
-
5
- def test_for
6
- source_obj_1, source_obj_2 = Object.new, Object.new
7
- rel_1 = Axlsx::Relationship.new(source_obj_1, Axlsx::WORKSHEET_R, "bar")
8
- rel_2 = Axlsx::Relationship.new(source_obj_2, Axlsx::WORKSHEET_R, "bar")
9
- rels = Axlsx::Relationships.new
10
- rels << rel_1
11
- rels << rel_2
12
- assert_equal rel_1, rels.for(source_obj_1)
13
- assert_equal rel_2, rels.for(source_obj_2)
14
- end
15
-
16
- def test_valid_document
17
- @rels = Axlsx::Relationships.new
18
- schema = Nokogiri::XML::Schema(File.open(Axlsx::RELS_XSD))
19
- doc = Nokogiri::XML(@rels.to_xml_string)
20
- errors = []
21
- schema.validate(doc).each do |error|
22
- puts error.message
23
- errors << error
24
- end
25
-
26
- @rels << Axlsx::Relationship.new(nil, Axlsx::WORKSHEET_R, "bar")
27
- doc = Nokogiri::XML(@rels.to_xml_string)
28
- errors = []
29
- schema.validate(doc).each do |error|
30
- puts error.message
31
- errors << error
32
- end
33
-
34
- assert(errors.size == 0)
35
- end
36
-
37
- end
@@ -1,37 +0,0 @@
1
- require 'tc_helper.rb'
2
-
3
- class TestBorder < Test::Unit::TestCase
4
- def setup
5
- @b = Axlsx::Border.new
6
- end
7
- def teardown
8
- end
9
- def test_initialiation
10
- assert_equal(@b.diagonalUp, nil)
11
- assert_equal(@b.diagonalDown, nil)
12
- assert_equal(@b.outline, nil)
13
- assert(@b.prs.is_a?(Axlsx::SimpleTypedList))
14
- end
15
-
16
- def test_diagonalUp
17
- assert_raise(ArgumentError) { @b.diagonalUp = :red }
18
- assert_nothing_raised { @b.diagonalUp = true }
19
- assert_equal(@b.diagonalUp, true )
20
- end
21
-
22
- def test_diagonalDown
23
- assert_raise(ArgumentError) { @b.diagonalDown = :red }
24
- assert_nothing_raised { @b.diagonalDown = true }
25
- assert_equal(@b.diagonalDown, true )
26
- end
27
-
28
- def test_outline
29
- assert_raise(ArgumentError) { @b.outline = :red }
30
- assert_nothing_raised { @b.outline = true }
31
- assert_equal(@b.outline, true )
32
- end
33
-
34
- def test_prs
35
- assert_nothing_raised { @b.prs << Axlsx::BorderPr.new(:name=>:top, :style=>:thin, :color => Axlsx::Color.new(:rgb=>"FF0000FF")) }
36
- end
37
- end
@@ -1,32 +0,0 @@
1
- require 'tc_helper.rb'
2
-
3
- class TestBorderPr < Test::Unit::TestCase
4
- def setup
5
- @bpr = Axlsx::BorderPr.new
6
- end
7
- def teardown
8
- end
9
- def test_initialiation
10
- assert_equal(@bpr.color, nil)
11
- assert_equal(@bpr.style, nil)
12
- assert_equal(@bpr.name, nil)
13
- end
14
-
15
- def test_color
16
- assert_raise(ArgumentError) { @bpr.color = :red }
17
- assert_nothing_raised { @bpr.color = Axlsx::Color.new :rgb=>"FF000000" }
18
- assert(@bpr.color.is_a?(Axlsx::Color))
19
- end
20
-
21
- def test_style
22
- assert_raise(ArgumentError) { @bpr.style = :red }
23
- assert_nothing_raised { @bpr.style = :thin }
24
- assert_equal(@bpr.style, :thin)
25
- end
26
-
27
- def test_name
28
- assert_raise(ArgumentError) { @bpr.name = :red }
29
- assert_nothing_raised { @bpr.name = :top }
30
- assert_equal(@bpr.name, :top)
31
- end
32
- end
@@ -1,81 +0,0 @@
1
- require 'tc_helper.rb'
2
-
3
- class TestCellAlignment < Test::Unit::TestCase
4
- def setup
5
- @item = Axlsx::CellAlignment.new
6
- end
7
-
8
- def test_initialiation
9
- assert_equal(@item.horizontal, nil)
10
- assert_equal(@item.vertical, nil)
11
- assert_equal(@item.textRotation, nil)
12
- assert_equal(@item.wrapText, nil)
13
- assert_equal(@item.indent, nil)
14
- assert_equal(@item.relativeIndent, nil)
15
- assert_equal(@item.justifyLastLine, nil)
16
- assert_equal(@item.shrinkToFit, nil)
17
- assert_equal(@item.readingOrder, nil)
18
- options = { :horizontal => :left, :vertical => :top, :textRotation => 3,
19
- :wrapText => true, :indent => 2, :relativeIndent => 5,
20
- :justifyLastLine => true, :shrinkToFit => true, :readingOrder => 2 }
21
- ca = Axlsx::CellAlignment.new options
22
- options.each do |key, value|
23
- assert_equal(ca.send(key.to_sym),value)
24
- end
25
- end
26
-
27
- def test_horizontal
28
- assert_raise(ArgumentError) { @item.horizontal = :red }
29
- assert_nothing_raised { @item.horizontal = :left }
30
- assert_equal(@item.horizontal, :left )
31
- end
32
-
33
- def test_vertical
34
- assert_raise(ArgumentError) { @item.vertical = :red }
35
- assert_nothing_raised { @item.vertical = :top }
36
- assert_equal(@item.vertical, :top )
37
- end
38
-
39
- def test_textRotation
40
- assert_raise(ArgumentError) { @item.textRotation = -1 }
41
- assert_nothing_raised { @item.textRotation = 5 }
42
- assert_equal(@item.textRotation, 5 )
43
- end
44
-
45
- def test_wrapText
46
- assert_raise(ArgumentError) { @item.wrapText = -1 }
47
- assert_nothing_raised { @item.wrapText = false }
48
- assert_equal(@item.wrapText, false )
49
- end
50
-
51
- def test_indent
52
- assert_raise(ArgumentError) { @item.indent = -1 }
53
- assert_nothing_raised { @item.indent = 5 }
54
- assert_equal(@item.indent, 5 )
55
- end
56
-
57
- def test_relativeIndent
58
- assert_raise(ArgumentError) { @item.relativeIndent = :symbol }
59
- assert_nothing_raised { @item.relativeIndent = 5 }
60
- assert_equal(@item.relativeIndent, 5 )
61
- end
62
-
63
- def test_justifyLastLine
64
- assert_raise(ArgumentError) { @item.justifyLastLine = -1 }
65
- assert_nothing_raised { @item.justifyLastLine = true }
66
- assert_equal(@item.justifyLastLine, true )
67
- end
68
-
69
- def test_shrinkToFit
70
- assert_raise(ArgumentError) { @item.shrinkToFit = -1 }
71
- assert_nothing_raised { @item.shrinkToFit = true }
72
- assert_equal(@item.shrinkToFit, true )
73
- end
74
-
75
- def test_readingOrder
76
- assert_raise(ArgumentError) { @item.readingOrder = -1 }
77
- assert_nothing_raised { @item.readingOrder = 2 }
78
- assert_equal(@item.readingOrder, 2 )
79
- end
80
-
81
- end
@@ -1,29 +0,0 @@
1
- require 'tc_helper.rb'
2
-
3
- class TestCellProtection < Test::Unit::TestCase
4
-
5
- def setup
6
- @item = Axlsx::CellProtection.new
7
- end
8
-
9
- def teardown
10
- end
11
-
12
- def test_initialiation
13
- assert_equal(@item.hidden, nil)
14
- assert_equal(@item.locked, nil)
15
- end
16
-
17
- def test_hidden
18
- assert_raise(ArgumentError) { @item.hidden = -1 }
19
- assert_nothing_raised { @item.hidden = false }
20
- assert_equal(@item.hidden, false )
21
- end
22
-
23
- def test_locked
24
- assert_raise(ArgumentError) { @item.locked = -1 }
25
- assert_nothing_raised { @item.locked = false }
26
- assert_equal(@item.locked, false )
27
- end
28
-
29
- end
@@ -1,57 +0,0 @@
1
- require 'tc_helper.rb'
2
-
3
- class TestCellStyle < Test::Unit::TestCase
4
-
5
- def setup
6
- @item = Axlsx::CellStyle.new
7
- end
8
-
9
- def teardown
10
- end
11
-
12
- def test_initialiation
13
- assert_equal(@item.name, nil)
14
- assert_equal(@item.xfId, nil)
15
- assert_equal(@item.builtinId, nil)
16
- assert_equal(@item.iLevel, nil)
17
- assert_equal(@item.hidden, nil)
18
- assert_equal(@item.customBuiltin, nil)
19
- end
20
-
21
- def test_name
22
- assert_raise(ArgumentError) { @item.name = -1 }
23
- assert_nothing_raised { @item.name = "stylin" }
24
- assert_equal(@item.name, "stylin" )
25
- end
26
-
27
- def test_xfId
28
- assert_raise(ArgumentError) { @item.xfId = -1 }
29
- assert_nothing_raised { @item.xfId = 5 }
30
- assert_equal(@item.xfId, 5 )
31
- end
32
-
33
- def test_builtinId
34
- assert_raise(ArgumentError) { @item.builtinId = -1 }
35
- assert_nothing_raised { @item.builtinId = 5 }
36
- assert_equal(@item.builtinId, 5 )
37
- end
38
-
39
- def test_iLevel
40
- assert_raise(ArgumentError) { @item.iLevel = -1 }
41
- assert_nothing_raised { @item.iLevel = 5 }
42
- assert_equal(@item.iLevel, 5 )
43
- end
44
-
45
- def test_hidden
46
- assert_raise(ArgumentError) { @item.hidden = -1 }
47
- assert_nothing_raised { @item.hidden = true }
48
- assert_equal(@item.hidden, true )
49
- end
50
-
51
- def test_customBuiltin
52
- assert_raise(ArgumentError) { @item.customBuiltin = -1 }
53
- assert_nothing_raised { @item.customBuiltin = true }
54
- assert_equal(@item.customBuiltin, true )
55
- end
56
-
57
- end