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,16 +0,0 @@
1
- # encoding: UTF-8
2
- require 'tc_helper.rb'
3
-
4
- class TestDefault < Test::Unit::TestCase
5
-
6
- def test_content_type_restriction
7
- assert_raise(ArgumentError, "raises argument error if invlalid ContentType is") { Axlsx::Default.new :ContentType=>"asdf" }
8
- end
9
-
10
- def test_to_xml_string
11
- type = Axlsx::Default.new :Extension=>"xml", :ContentType=>Axlsx::XML_CT
12
- doc = Nokogiri::XML(type.to_xml_string)
13
- assert_equal(doc.xpath("Default[@ContentType='#{Axlsx::XML_CT}']").size, 1)
14
- assert_equal(doc.xpath("Default[@Extension='xml']").size, 1)
15
- end
16
- end
@@ -1,14 +0,0 @@
1
- require 'tc_helper.rb'
2
- class TestOverride < Test::Unit::TestCase
3
-
4
- def test_content_type_restriction
5
- assert_raise(ArgumentError, "requires known content type") { Axlsx::Override.new :ContentType=>"asdf" }
6
- end
7
-
8
- def test_to_xml
9
- type = Axlsx::Override.new :PartName=>"somechart.xml", :ContentType=>Axlsx::CHART_CT
10
- doc = Nokogiri::XML(type.to_xml_string)
11
- assert_equal(doc.xpath("Override[@ContentType='#{Axlsx::CHART_CT}']").size, 1)
12
- assert_equal(doc.xpath("Override[@PartName='somechart.xml']").size, 1)
13
- end
14
- end
@@ -1,43 +0,0 @@
1
- require 'tc_helper.rb'
2
-
3
- class TestApp < Test::Unit::TestCase
4
- def setup
5
- options = {
6
- :'Template' => 'Foo.xlt',
7
- :'Manager' => 'Penny',
8
- :'Company' => "Bob's Repair",
9
- :'Pages' => 1,
10
- :'Words' => 2,
11
- :'Characters' => 7,
12
- :'PresentationFormat' => 'any',
13
- :'Lines' => 1,
14
- :'Paragraphs' => 1,
15
- :'Slides' => 4,
16
- :'Notes' => 1,
17
- :'TotalTime' => 2,
18
- :'HidddenSlides' => 3,
19
- :'MMClips' => 10,
20
- :'ScaleCrop' => true,
21
- :'LinksUpToDate' => true,
22
- :'CharactersWithSpaces' => 9,
23
- :'SharedDoc' => false,
24
- :'HyperlinkBase' => 'foo',
25
- :'HyperlInksChanged' => false,
26
- :'Application' => 'axlsx',
27
- :'AppVersion' => '1.1.5',
28
- :'DocSecurity' => 0
29
- }
30
-
31
- @app = Axlsx::App.new options
32
-
33
- end
34
- def test_valid_document
35
- schema = Nokogiri::XML::Schema(File.open(Axlsx::APP_XSD))
36
- doc = Nokogiri::XML(@app.to_xml_string)
37
- errors = []
38
- schema.validate(doc).each do |error|
39
- errors << error
40
- end
41
- assert_equal(errors.size, 0, "app.xml invalid" + errors.map{ |e| e.message }.to_s)
42
- end
43
- end
@@ -1,42 +0,0 @@
1
- require 'tc_helper.rb'
2
-
3
- class TestCore < Test::Unit::TestCase
4
-
5
- def setup
6
- @core = Axlsx::Core.new
7
- # could still see some false positives if the second changes between the next two calls
8
- @time = Time.now.strftime('%Y-%m-%dT%H:%M:%SZ')
9
- @doc = Nokogiri::XML(@core.to_xml_string)
10
- end
11
-
12
- def test_valid_document
13
- schema = Nokogiri::XML::Schema(File.open(Axlsx::CORE_XSD))
14
- errors = []
15
- schema.validate(@doc).each do |error|
16
- puts error.message
17
- errors << error
18
- end
19
- assert_equal(errors.size, 0, "core.xml Invalid" + errors.map{ |e| e.message }.to_s)
20
- end
21
-
22
- def test_populates_created
23
- assert_equal(@doc.xpath('//dcterms:created').text, @time, "dcterms:created incorrect")
24
- end
25
-
26
- def test_created_as_option
27
- time = Time.utc(2013, 1, 1, 12, 00)
28
- c = Axlsx::Core.new :created => time
29
- doc = Nokogiri::XML(c.to_xml_string)
30
- assert_equal(doc.xpath('//dcterms:created').text, time.xmlschema, "dcterms:created incorrect")
31
- end
32
-
33
- def test_populates_default_name
34
- assert_equal(@doc.xpath('//dc:creator').text, "axlsx", "Default name not populated")
35
- end
36
-
37
- def test_creator_as_option
38
- c = Axlsx::Core.new :creator => "some guy"
39
- doc = Nokogiri::XML(c.to_xml_string)
40
- assert(doc.xpath('//dc:creator').text == "some guy")
41
- end
42
- end
@@ -1,39 +0,0 @@
1
- require 'tc_helper.rb'
2
-
3
- class TestAreaChart < Test::Unit::TestCase
4
-
5
- def setup
6
- @p = Axlsx::Package.new
7
- ws = @p.workbook.add_worksheet
8
- @row = ws.add_row ["one", 1, Time.now]
9
- @chart = ws.add_chart Axlsx::AreaChart, :title => "fishery"
10
- end
11
-
12
- def teardown
13
- end
14
-
15
- def test_initialization
16
- assert_equal(@chart.grouping, :standard, "grouping defualt incorrect")
17
- assert_equal(@chart.series_type, Axlsx::AreaSeries, "series type incorrect")
18
- assert(@chart.cat_axis.is_a?(Axlsx::CatAxis), "category axis not created")
19
- assert(@chart.val_axis.is_a?(Axlsx::ValAxis), "value access not created")
20
- end
21
-
22
- def test_grouping
23
- assert_raise(ArgumentError, "require valid grouping") { @chart.grouping = :inverted }
24
- assert_nothing_raised("allow valid grouping") { @chart.grouping = :stacked }
25
- assert(@chart.grouping == :stacked)
26
- end
27
-
28
- def test_to_xml
29
- schema = Nokogiri::XML::Schema(File.open(Axlsx::DRAWING_XSD))
30
- doc = Nokogiri::XML(@chart.to_xml_string)
31
- errors = []
32
- schema.validate(doc).each do |error|
33
- errors.push error
34
- puts error.message
35
- end
36
- assert(errors.empty?, "error free validation")
37
- end
38
-
39
- end
@@ -1,71 +0,0 @@
1
- require 'tc_helper.rb'
2
-
3
- class TestAreaSeries < Test::Unit::TestCase
4
-
5
- def setup
6
- p = Axlsx::Package.new
7
- @ws = p.workbook.add_worksheet :name=>"hmmm"
8
- chart = @ws.add_chart Axlsx::AreaChart, :title => "fishery"
9
- @series = chart.add_series(
10
- :data => [0,1,2],
11
- :labels => ["zero", "one", "two"],
12
- :title => "bob",
13
- :color => "#FF0000",
14
- :show_marker => true,
15
- :smooth => true
16
- )
17
- end
18
-
19
- def test_initialize
20
- assert_equal(@series.title.text, "bob", "series title has been applied")
21
- assert_equal(@series.labels.class, Axlsx::AxDataSource)
22
- assert_equal(@series.data.class, Axlsx::NumDataSource)
23
- end
24
-
25
- def test_show_marker
26
- assert_equal(true, @series.show_marker)
27
- @series.show_marker = false
28
- assert_equal(false, @series.show_marker)
29
- end
30
-
31
- def test_smooth
32
- assert_equal(true, @series.smooth)
33
- @series.smooth = false
34
- assert_equal(false, @series.smooth)
35
- end
36
-
37
- def test_marker_symbol
38
- assert_equal(:default, @series.marker_symbol)
39
- @series.marker_symbol = :circle
40
- assert_equal(:circle, @series.marker_symbol)
41
- end
42
-
43
- def test_to_xml_string
44
- doc = Nokogiri::XML(wrap_with_namespaces(@series))
45
- assert(doc.xpath("//srgbClr[@val='#{@series.color}']"))
46
- assert_equal(xpath_with_namespaces(doc, "//c:marker").size, 0)
47
- assert(doc.xpath("//smooth"))
48
-
49
- @series.marker_symbol = :diamond
50
- doc = Nokogiri::XML(wrap_with_namespaces(@series))
51
- assert_equal(xpath_with_namespaces(doc, "//c:marker/c:symbol[@val='diamond']").size, 1)
52
-
53
- @series.show_marker = false
54
- doc = Nokogiri::XML(wrap_with_namespaces(@series))
55
- assert_equal(xpath_with_namespaces(doc, "//c:marker/c:symbol[@val='none']").size, 1)
56
- end
57
-
58
- def wrap_with_namespaces(series)
59
- '<c:chartSpace xmlns:c="' <<
60
- Axlsx::XML_NS_C <<
61
- '" xmlns:a="' <<
62
- Axlsx::XML_NS_A <<
63
- '">' <<
64
- series.to_xml_string <<
65
- '</c:chartSpace>'
66
- end
67
-
68
- def xpath_with_namespaces(doc, xpath)
69
- doc.xpath(xpath, "a" => Axlsx::XML_NS_A, "c" => Axlsx::XML_NS_C)
70
- end
71
- end
@@ -1,8 +0,0 @@
1
- require 'tc_helper.rb'
2
-
3
- class TestAxes < Test::Unit::TestCase
4
- def test_constructor_requires_cat_axis_first
5
- assert_raise(ArgumentError) { Axlsx::Axes.new(:val_axis => Axlsx::ValAxis, :cat_axis => Axlsx::CatAxis) }
6
- assert_nothing_raised { Axlsx::Axes.new(:cat_axis => Axlsx::CatAxis, :val_axis => Axlsx::ValAxis) }
7
- end
8
- end
@@ -1,112 +0,0 @@
1
- require 'tc_helper.rb'
2
-
3
- class TestAxis < Test::Unit::TestCase
4
- def setup
5
- @axis = Axlsx::Axis.new :gridlines => false, :title => 'Foo'
6
- end
7
-
8
-
9
- def test_initialization
10
- assert_equal(@axis.ax_pos, :b, "axis position default incorrect")
11
- assert_equal(@axis.tick_lbl_pos, :nextTo, "tick label position default incorrect")
12
- assert_equal(@axis.tick_lbl_pos, :nextTo, "tick label position default incorrect")
13
- assert_equal(@axis.crosses, :autoZero, "tick label position default incorrect")
14
- assert(@axis.scaling.is_a?(Axlsx::Scaling) && @axis.scaling.orientation == :minMax, "scaling default incorrect")
15
- assert_equal('Foo', @axis.title.text)
16
- end
17
-
18
- def test_color
19
- @axis.color = "00FF00"
20
- @axis.cross_axis = Axlsx::CatAxis.new
21
- str = '<?xml version="1.0" encoding="UTF-8"?>'
22
- str << '<c:chartSpace xmlns:c="' << Axlsx::XML_NS_C << '" xmlns:a="' << Axlsx::XML_NS_A << '">'
23
- doc = Nokogiri::XML(@axis.to_xml_string(str))
24
- assert(doc.xpath("//a:srgbClr[@val='00FF00']"))
25
- end
26
-
27
- def test_cell_based_axis_title
28
- p = Axlsx::Package.new
29
- p.workbook.add_worksheet(:name=>'foosheet') do |sheet|
30
- sheet.add_row ['battle victories']
31
- sheet.add_row ['bird', 1, 2, 1]
32
- sheet.add_row ['cat', 7, 9, 10]
33
- sheet.add_chart(Axlsx::Line3DChart) do |chart|
34
- chart.add_series :data => sheet['B2:D2'], :labels => sheet['B1']
35
- chart.val_axis.title = sheet['A1']
36
- assert_equal('battle victories', chart.val_axis.title.text)
37
- end
38
- end
39
- end
40
-
41
- def test_axis_position
42
- assert_raise(ArgumentError, "requires valid axis position") { @axis.ax_pos = :nowhere }
43
- assert_nothing_raised("accepts valid axis position") { @axis.ax_pos = :r }
44
- end
45
-
46
- def test_label_rotation
47
- assert_raise(ArgumentError, "requires valid angle") { @axis.label_rotation = :nowhere }
48
- assert_raise(ArgumentError, "requires valid angle") { @axis.label_rotation = 91 }
49
- assert_raise(ArgumentError, "requires valid angle") { @axis.label_rotation = -91 }
50
- assert_nothing_raised("accepts valid angle") { @axis.label_rotation = 45 }
51
- assert_equal(@axis.label_rotation, 45 * 60000)
52
- end
53
-
54
- def test_tick_label_position
55
- assert_raise(ArgumentError, "requires valid tick label position") { @axis.tick_lbl_pos = :nowhere }
56
- assert_nothing_raised("accepts valid tick label position") { @axis.tick_lbl_pos = :high }
57
- end
58
-
59
- def test_format_code
60
- assert_raise(ArgumentError, "requires valid format code") { @axis.format_code = :high }
61
- assert_nothing_raised("accepts valid format code") { @axis.format_code = "00.##" }
62
- end
63
-
64
- def create_chart_with_formatting(format_string=nil)
65
- p = Axlsx::Package.new
66
- p.workbook.add_worksheet(:name => "Formatting Test") do |sheet|
67
- sheet.add_row(['test', 20])
68
- sheet.add_chart(Axlsx::Bar3DChart, :start_at => [0,5], :end_at => [10, 20], :title => "Test Formatting") do |chart|
69
- chart.add_series :data => sheet["B1:B1"], :labels => sheet["A1:A1"]
70
- chart.val_axis.format_code = format_string if format_string
71
- doc = Nokogiri::XML(chart.to_xml_string)
72
- yield doc
73
- end
74
- end
75
- end
76
-
77
- def test_format_code_resets_source_linked
78
- create_chart_with_formatting("#,##0.00") do |doc|
79
- assert_equal(doc.xpath("//c:valAx/c:numFmt[@formatCode='#,##0.00']").size, 1)
80
- assert_equal(doc.xpath("//c:valAx/c:numFmt[@sourceLinked='0']").size, 1)
81
- end
82
- end
83
-
84
- def test_no_format_code_keeps_source_linked
85
- create_chart_with_formatting do |doc|
86
- assert_equal(doc.xpath("//c:valAx/c:numFmt[@formatCode='General']").size, 1)
87
- assert_equal(doc.xpath("//c:valAx/c:numFmt[@sourceLinked='1']").size, 1)
88
- end
89
- end
90
-
91
- def test_crosses
92
- assert_raise(ArgumentError, "requires valid crosses") { @axis.crosses = 1 }
93
- assert_nothing_raised("accepts valid crosses") { @axis.crosses = :min }
94
- end
95
-
96
- def test_gridlines
97
- assert_raise(ArgumentError, "requires valid gridlines") { @axis.gridlines = 'alice' }
98
- assert_nothing_raised("accepts valid crosses") { @axis.gridlines = false }
99
- end
100
-
101
- def test_to_xml_string
102
- @axis.cross_axis = Axlsx::CatAxis.new
103
- str = '<?xml version="1.0" encoding="UTF-8"?>'
104
- str << '<c:chartSpace xmlns:c="' << Axlsx::XML_NS_C << '" xmlns:a="' << Axlsx::XML_NS_A << '">'
105
- doc = Nokogiri::XML(@axis.to_xml_string(str))
106
- assert(doc.xpath('//a:noFill'))
107
- assert(doc.xpath("//c:crosses[@val='#{@axis.crosses.to_s}']"))
108
- assert(doc.xpath("//c:crossAx[@val='#{@axis.cross_axis.to_s}']"))
109
- assert(doc.xpath("//a:bodyPr[@rot='#{@axis.label_rotation.to_s}']"))
110
- assert(doc.xpath("//a:t[text()='Foo']"))
111
- end
112
- end
@@ -1,86 +0,0 @@
1
- require 'tc_helper.rb'
2
-
3
- class TestBar3DChart < Test::Unit::TestCase
4
-
5
- def setup
6
- @p = Axlsx::Package.new
7
- ws = @p.workbook.add_worksheet
8
- @row = ws.add_row ["one", 1, Time.now]
9
- @chart = ws.add_chart Axlsx::Bar3DChart, :title => "fishery"
10
- end
11
-
12
- def teardown
13
- end
14
-
15
- def test_initialization
16
- assert_equal(@chart.grouping, :clustered, "grouping defualt incorrect")
17
- assert_equal(@chart.series_type, Axlsx::BarSeries, "series type incorrect")
18
- assert_equal(@chart.bar_dir, :bar, " bar direction incorrect")
19
- assert(@chart.cat_axis.is_a?(Axlsx::CatAxis), "category axis not created")
20
- assert(@chart.val_axis.is_a?(Axlsx::ValAxis), "value access not created")
21
- end
22
-
23
- def test_bar_direction
24
- assert_raise(ArgumentError, "require valid bar direction") { @chart.bar_dir = :left }
25
- assert_nothing_raised("allow valid bar direction") { @chart.bar_dir = :col }
26
- assert(@chart.bar_dir == :col)
27
- end
28
-
29
- def test_grouping
30
- assert_raise(ArgumentError, "require valid grouping") { @chart.grouping = :inverted }
31
- assert_nothing_raised("allow valid grouping") { @chart.grouping = :standard }
32
- assert(@chart.grouping == :standard)
33
- end
34
-
35
- def test_gap_width
36
- assert_raise(ArgumentError, "require valid gap width") { @chart.gap_width = -1 }
37
- assert_raise(ArgumentError, "require valid gap width") { @chart.gap_width = 501 }
38
- assert_nothing_raised("allow valid gapWidth") { @chart.gap_width = 200 }
39
- assert_equal(@chart.gap_width, 200, 'gap width is incorrect')
40
- end
41
-
42
- def test_gap_depth
43
- assert_raise(ArgumentError, "require valid gap_depth") { @chart.gap_depth = -1 }
44
- assert_raise(ArgumentError, "require valid gap_depth") { @chart.gap_depth = 501 }
45
- assert_nothing_raised("allow valid gap_depth") { @chart.gap_depth = 200 }
46
- assert_equal(@chart.gap_depth, 200, 'gap depth is incorrect')
47
- end
48
-
49
- def test_shape
50
- assert_raise(ArgumentError, "require valid shape") { @chart.shape = :star }
51
- assert_nothing_raised("allow valid shape") { @chart.shape = :cone }
52
- assert(@chart.shape == :cone)
53
- end
54
-
55
- def test_to_xml_string
56
- schema = Nokogiri::XML::Schema(File.open(Axlsx::DRAWING_XSD))
57
- doc = Nokogiri::XML(@chart.to_xml_string)
58
- errors = []
59
- schema.validate(doc).each do |error|
60
- errors.push error
61
- puts error.message
62
- end
63
- assert(errors.empty?, "error free validation")
64
- end
65
-
66
- def test_to_xml_string_has_axes_in_correct_order
67
- str = @chart.to_xml_string
68
- cat_axis_position = str.index(@chart.axes[:cat_axis].id.to_s)
69
- val_axis_position = str.index(@chart.axes[:val_axis].id.to_s)
70
- assert(cat_axis_position < val_axis_position, "cat_axis must occur earlier than val_axis in the XML")
71
- end
72
-
73
- def test_to_xml_string_has_gap_depth
74
- gap_depth_value = rand(0..500)
75
- @chart.gap_depth = gap_depth_value
76
- doc = Nokogiri::XML(@chart.to_xml_string)
77
- assert_equal(doc.xpath("//c:bar3DChart/c:gapDepth").first.attribute('val').value, gap_depth_value.to_s)
78
- end
79
-
80
- def test_to_xml_string_has_gap_width
81
- gap_width_value = rand(0..500)
82
- @chart.gap_width = gap_width_value
83
- doc = Nokogiri::XML(@chart.to_xml_string)
84
- assert_equal(doc.xpath("//c:bar3DChart/c:gapWidth").first.attribute('val').value, gap_width_value.to_s)
85
- end
86
- end
@@ -1,86 +0,0 @@
1
- require 'tc_helper.rb'
2
-
3
- class TestBarChart < Test::Unit::TestCase
4
-
5
- def setup
6
- @p = Axlsx::Package.new
7
- ws = @p.workbook.add_worksheet
8
- @row = ws.add_row ["one", 1, Time.now]
9
- @chart = ws.add_chart Axlsx::BarChart, :title => "fishery"
10
- end
11
-
12
- def teardown
13
- end
14
-
15
- def test_initialization
16
- assert_equal(@chart.grouping, :clustered, "grouping defualt incorrect")
17
- assert_equal(@chart.series_type, Axlsx::BarSeries, "series type incorrect")
18
- assert_equal(@chart.bar_dir, :bar, " bar direction incorrect")
19
- assert(@chart.cat_axis.is_a?(Axlsx::CatAxis), "category axis not created")
20
- assert(@chart.val_axis.is_a?(Axlsx::ValAxis), "value access not created")
21
- end
22
-
23
- def test_bar_direction
24
- assert_raise(ArgumentError, "require valid bar direction") { @chart.bar_dir = :left }
25
- assert_nothing_raised("allow valid bar direction") { @chart.bar_dir = :col }
26
- assert(@chart.bar_dir == :col)
27
- end
28
-
29
- def test_grouping
30
- assert_raise(ArgumentError, "require valid grouping") { @chart.grouping = :inverted }
31
- assert_nothing_raised("allow valid grouping") { @chart.grouping = :standard }
32
- assert(@chart.grouping == :standard)
33
- end
34
-
35
- def test_gap_width
36
- assert_raise(ArgumentError, "require valid gap width") { @chart.gap_width = -1 }
37
- assert_raise(ArgumentError, "require valid gap width") { @chart.gap_width = 501 }
38
- assert_nothing_raised("allow valid gap width") { @chart.gap_width = 200 }
39
- assert_equal(@chart.gap_width, 200, 'gap width is incorrect')
40
- end
41
-
42
- def test_overlap
43
- assert_raise(ArgumentError, "require valid overlap") { @chart.overlap = -101 }
44
- assert_raise(ArgumentError, "require valid overlap") { @chart.overlap = 101 }
45
- assert_nothing_raised("allow valid overlap") { @chart.overlap = 100 }
46
- assert_equal(@chart.overlap, 100, 'overlap is incorrect')
47
- end
48
-
49
- def test_shape
50
- assert_raise(ArgumentError, "require valid shape") { @chart.shape = :star }
51
- assert_nothing_raised("allow valid shape") { @chart.shape = :cone }
52
- assert(@chart.shape == :cone)
53
- end
54
-
55
- def test_to_xml_string
56
- schema = Nokogiri::XML::Schema(File.open(Axlsx::DRAWING_XSD))
57
- doc = Nokogiri::XML(@chart.to_xml_string)
58
- errors = []
59
- schema.validate(doc).each do |error|
60
- errors.push error
61
- puts error.message
62
- end
63
- assert(errors.empty?, "error free validation")
64
- end
65
-
66
- def test_to_xml_string_has_axes_in_correct_order
67
- str = @chart.to_xml_string
68
- cat_axis_position = str.index(@chart.axes[:cat_axis].id.to_s)
69
- val_axis_position = str.index(@chart.axes[:val_axis].id.to_s)
70
- assert(cat_axis_position < val_axis_position, "cat_axis must occur earlier than val_axis in the XML")
71
- end
72
-
73
- def test_to_xml_string_has_gap_width
74
- gap_width_value = rand(0..500)
75
- @chart.gap_width = gap_width_value
76
- doc = Nokogiri::XML(@chart.to_xml_string)
77
- assert_equal(doc.xpath("//c:barChart/c:gapWidth").first.attribute('val').value, gap_width_value.to_s)
78
- end
79
-
80
- def test_to_xml_string_has_overlap
81
- overlap_value = rand(-100..100)
82
- @chart.overlap = overlap_value
83
- doc = Nokogiri::XML(@chart.to_xml_string)
84
- assert_equal(doc.xpath("//c:barChart/c:overlap").first.attribute('val').value, overlap_value.to_s)
85
- end
86
- end
@@ -1,46 +0,0 @@
1
- require 'tc_helper.rb'
2
-
3
- class TestBarSeries < Test::Unit::TestCase
4
-
5
- def setup
6
- p = Axlsx::Package.new
7
- @ws = p.workbook.add_worksheet :name=>"hmmm"
8
- @chart = @ws.add_chart Axlsx::Bar3DChart, :title => "fishery"
9
- @series = @chart.add_series(
10
- data: [0, 1, 2],
11
- labels: ['zero', 'one', 'two'],
12
- title: 'bob',
13
- colors: ['FF0000', '00FF00', '0000FF'],
14
- shape: :cone,
15
- series_color: '5A5A5A'
16
- )
17
- end
18
-
19
- def test_initialize
20
- assert_equal(@series.title.text, "bob", "series title has been applied")
21
- assert_equal(@series.data.class, Axlsx::NumDataSource, "data option applied")
22
- assert_equal(@series.shape, :cone, "series shape has been applied")
23
- assert_equal(@series.series_color, '5A5A5A', 'series color has been applied')
24
- assert(@series.data.is_a?(Axlsx::NumDataSource))
25
- assert(@series.labels.is_a?(Axlsx::AxDataSource))
26
- end
27
-
28
- def test_colors
29
- assert_equal(@series.colors.size, 3)
30
- end
31
-
32
- def test_shape
33
- assert_raise(ArgumentError, "require valid shape") { @series.shape = :teardropt }
34
- assert_nothing_raised("allow valid shape") { @series.shape = :box }
35
- assert(@series.shape == :box)
36
- end
37
-
38
- def test_to_xml_string
39
- doc = Nokogiri::XML(@chart.to_xml_string)
40
- @series.colors.each_with_index do |color, index|
41
- assert_equal(doc.xpath("//c:dPt/c:idx[@val='#{index}']").size,1)
42
- assert_equal(doc.xpath("//c:dPt/c:spPr/a:solidFill/a:srgbClr[@val='#{@series.colors[index]}']").size,1)
43
- end
44
- assert_equal(doc.xpath('//c:spPr[not(ancestor::c:dPt)]/a:solidFill/a:srgbClr').first.get_attribute('val'), '5A5A5A', 'series color has been applied')
45
- end
46
- end
@@ -1,44 +0,0 @@
1
- require 'tc_helper.rb'
2
-
3
- class TestBubbleChart < Test::Unit::TestCase
4
- def setup
5
- @p = Axlsx::Package.new
6
- @chart = nil
7
- @p.workbook.add_worksheet do |sheet|
8
- sheet.add_row ["First", 1, 5, 7, 9]
9
- sheet.add_row ["", 1, 25, 49, 81]
10
- sheet.add_row ["", 1, 42, 60, 75]
11
- sheet.add_row ["Second", 5, 2, 14, 9]
12
- sheet.add_row ["", 5, 10, 15, 20]
13
- sheet.add_row ["", 5, 28, 92, 13]
14
- sheet.add_chart(Axlsx::BubbleChart, :title => "example: Bubble Chart") do |chart|
15
- chart.start_at 0, 4
16
- chart.end_at 10, 19
17
- chart.add_series :xData => sheet["B1:E1"], :yData => sheet["B2:E2"], :bubbleSize => sheet["B3:E3"], :title => sheet["A1"]
18
- chart.add_series :xData => sheet["B4:E4"], :yData => sheet["B5:E5"], :bubbleSize => sheet["B6:E6"], :title => sheet["A3"]
19
- @chart = chart
20
- end
21
- end
22
- end
23
-
24
- def teardown
25
- end
26
-
27
- def test_initialization
28
- assert_equal(@chart.series_type, Axlsx::BubbleSeries, "series type incorrect")
29
- assert(@chart.xValAxis.is_a?(Axlsx::ValAxis), "independant value axis not created")
30
- assert(@chart.yValAxis.is_a?(Axlsx::ValAxis), "dependant value axis not created")
31
- end
32
-
33
- def test_to_xml_string
34
- schema = Nokogiri::XML::Schema(File.open(Axlsx::DRAWING_XSD))
35
- doc = Nokogiri::XML(@chart.to_xml_string)
36
- errors = []
37
- schema.validate(doc).each do |error|
38
- errors.push error
39
- puts error.message
40
- end
41
- assert(errors.empty?, "error free validation")
42
- end
43
-
44
- end
@@ -1,21 +0,0 @@
1
- require 'tc_helper.rb'
2
-
3
- class TestBubbleSeries < Test::Unit::TestCase
4
-
5
- def setup
6
- p = Axlsx::Package.new
7
- @ws = p.workbook.add_worksheet :name=>"hmmm"
8
- @chart = @ws.add_chart Axlsx::BubbleChart, :title => "Bubble Chart"
9
- @series = @chart.add_series :xData=>[1,2,4], :yData=>[1,3,9], :bubbleSize=>[1,5,7], :title=>"GDP", :color => 'FF0000'
10
- end
11
-
12
- def test_initialize
13
- assert_equal(@series.title.text, "GDP", "series title has been applied")
14
- end
15
-
16
- def test_to_xml_string
17
- doc = Nokogiri::XML(@chart.to_xml_string)
18
- assert_equal(doc.xpath("//a:srgbClr[@val='#{@series.color}']").size,2)
19
- end
20
-
21
- end
@@ -1,31 +0,0 @@
1
- require 'tc_helper.rb'
2
-
3
- class TestCatAxis < Test::Unit::TestCase
4
- def setup
5
- @axis = Axlsx::CatAxis.new
6
- end
7
- def teardown
8
- end
9
-
10
- def test_initialization
11
- assert_equal(@axis.auto, 1, "axis auto default incorrect")
12
- assert_equal(@axis.lbl_algn, :ctr, "label align default incorrect")
13
- assert_equal(@axis.lbl_offset, "100", "label offset default incorrect")
14
- end
15
-
16
- def test_auto
17
- assert_raise(ArgumentError, "requires valid auto") { @axis.auto = :nowhere }
18
- assert_nothing_raised("accepts valid auto") { @axis.auto = false }
19
- end
20
-
21
- def test_lbl_algn
22
- assert_raise(ArgumentError, "requires valid label alignment") { @axis.lbl_algn = :nowhere }
23
- assert_nothing_raised("accepts valid label alignment") { @axis.lbl_algn = :r }
24
- end
25
-
26
- def test_lbl_offset
27
- assert_raise(ArgumentError, "requires valid label offset") { @axis.lbl_offset = 'foo' }
28
- assert_nothing_raised("accepts valid label offset") { @axis.lbl_offset = "20" }
29
- end
30
-
31
- end