axlsx 1.0.12 → 1.0.13

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 (122) hide show
  1. data/README.md +7 -3
  2. data/lib/axlsx.rb +57 -0
  3. data/lib/axlsx/content_type/content_type.rb +23 -0
  4. data/lib/axlsx/content_type/default.rb +37 -0
  5. data/lib/axlsx/content_type/override.rb +37 -0
  6. data/lib/axlsx/doc_props/app.rb +178 -0
  7. data/lib/axlsx/doc_props/core.rb +34 -0
  8. data/lib/axlsx/drawing/axis.rb +90 -0
  9. data/lib/axlsx/drawing/bar_3D_chart.rb +128 -0
  10. data/lib/axlsx/drawing/bar_series.rb +64 -0
  11. data/lib/axlsx/drawing/cat_axis.rb +63 -0
  12. data/lib/axlsx/drawing/cat_axis_data.rb +35 -0
  13. data/lib/axlsx/drawing/chart.rb +179 -0
  14. data/lib/axlsx/drawing/drawing.rb +137 -0
  15. data/lib/axlsx/drawing/graphic_frame.rb +52 -0
  16. data/lib/axlsx/drawing/line_3D_chart.rb +106 -0
  17. data/lib/axlsx/drawing/line_series.rb +46 -0
  18. data/lib/axlsx/drawing/marker.rb +61 -0
  19. data/lib/axlsx/drawing/one_cell_anchor.rb +89 -0
  20. data/lib/axlsx/drawing/pic.rb +153 -0
  21. data/lib/axlsx/drawing/picture_locking.rb +72 -0
  22. data/lib/axlsx/drawing/picture_locking.rb~ +36 -0
  23. data/lib/axlsx/drawing/pie_3D_chart.rb +41 -0
  24. data/lib/axlsx/drawing/pie_series.rb +56 -0
  25. data/lib/axlsx/drawing/scaling.rb +59 -0
  26. data/lib/axlsx/drawing/ser_axis.rb +45 -0
  27. data/lib/axlsx/drawing/series.rb +71 -0
  28. data/lib/axlsx/drawing/series_title.rb +22 -0
  29. data/lib/axlsx/drawing/title.rb +61 -0
  30. data/lib/axlsx/drawing/two_cell_anchor.rb +76 -0
  31. data/lib/axlsx/drawing/val_axis.rb +34 -0
  32. data/lib/axlsx/drawing/val_axis_data.rb +28 -0
  33. data/lib/axlsx/drawing/view_3D.rb +85 -0
  34. data/lib/axlsx/package.rb +215 -0
  35. data/lib/axlsx/rels/relationship.rb +44 -0
  36. data/lib/axlsx/rels/relationships.rb +25 -0
  37. data/lib/axlsx/stylesheet/border.rb +57 -0
  38. data/lib/axlsx/stylesheet/border_pr.rb +68 -0
  39. data/lib/axlsx/stylesheet/cell_alignment.rb +105 -0
  40. data/lib/axlsx/stylesheet/cell_protection.rb +36 -0
  41. data/lib/axlsx/stylesheet/cell_style.rb +65 -0
  42. data/lib/axlsx/stylesheet/color.rb +69 -0
  43. data/lib/axlsx/stylesheet/fill.rb +32 -0
  44. data/lib/axlsx/stylesheet/font.rb +139 -0
  45. data/lib/axlsx/stylesheet/gradient_fill.rb +76 -0
  46. data/lib/axlsx/stylesheet/gradient_stop.rb +33 -0
  47. data/lib/axlsx/stylesheet/num_fmt.rb +63 -0
  48. data/lib/axlsx/stylesheet/pattern_fill.rb +66 -0
  49. data/lib/axlsx/stylesheet/styles.rb +298 -0
  50. data/lib/axlsx/stylesheet/table_style.rb +47 -0
  51. data/lib/axlsx/stylesheet/table_style_element.rb +71 -0
  52. data/lib/axlsx/stylesheet/table_styles.rb +39 -0
  53. data/lib/axlsx/stylesheet/xf.rb +138 -0
  54. data/lib/axlsx/util/constants.rb +220 -0
  55. data/lib/axlsx/util/parser.rb +43 -0
  56. data/lib/axlsx/util/parser.rb~ +6 -0
  57. data/lib/axlsx/util/simple_typed_list.rb +160 -0
  58. data/lib/axlsx/util/validators.rb +132 -0
  59. data/lib/axlsx/version.rb +4 -0
  60. data/lib/axlsx/workbook/#workbook.rb# +165 -0
  61. data/lib/axlsx/workbook/workbook.rb +160 -0
  62. data/lib/axlsx/workbook/worksheet/cell.rb +337 -0
  63. data/lib/axlsx/workbook/worksheet/row.rb +107 -0
  64. data/lib/axlsx/workbook/worksheet/worksheet.rb +279 -0
  65. metadata +93 -141
  66. data/examples/follow_20111202.xlsx +0 -0
  67. data/test/content_type/tc_content_type.rb +0 -81
  68. data/test/content_type/tc_default.rb +0 -40
  69. data/test/content_type/tc_override.rb +0 -40
  70. data/test/doc_props/tc_app.rb +0 -19
  71. data/test/doc_props/tc_core.rb +0 -34
  72. data/test/drawing/tc_axis.rb +0 -40
  73. data/test/drawing/tc_bar_3D_chart.rb +0 -66
  74. data/test/drawing/tc_bar_series.rb +0 -34
  75. data/test/drawing/tc_cat_axis.rb +0 -32
  76. data/test/drawing/tc_cat_axis_data.rb +0 -18
  77. data/test/drawing/tc_chart.rb +0 -73
  78. data/test/drawing/tc_drawing.rb +0 -80
  79. data/test/drawing/tc_graphic_frame.rb +0 -26
  80. data/test/drawing/tc_line_3d_chart.rb +0 -48
  81. data/test/drawing/tc_line_series.rb +0 -27
  82. data/test/drawing/tc_marker.rb +0 -45
  83. data/test/drawing/tc_one_cell_anchor.rb +0 -67
  84. data/test/drawing/tc_pic.rb +0 -71
  85. data/test/drawing/tc_picture_locking.rb +0 -73
  86. data/test/drawing/tc_pie_3D_chart.rb +0 -33
  87. data/test/drawing/tc_pie_series.rb +0 -35
  88. data/test/drawing/tc_scaling.rb +0 -37
  89. data/test/drawing/tc_ser_axis.rb +0 -31
  90. data/test/drawing/tc_series.rb +0 -24
  91. data/test/drawing/tc_series_title.rb +0 -34
  92. data/test/drawing/tc_title.rb +0 -34
  93. data/test/drawing/tc_two_cell_anchor.rb +0 -38
  94. data/test/drawing/tc_val_axis.rb +0 -25
  95. data/test/drawing/tc_val_axis_data.rb +0 -18
  96. data/test/drawing/tc_view_3D.rb +0 -55
  97. data/test/rels/tc_relationship.rb +0 -16
  98. data/test/rels/tc_relationships.rb +0 -27
  99. data/test/stylesheet/tc_border.rb +0 -38
  100. data/test/stylesheet/tc_border_pr.rb +0 -33
  101. data/test/stylesheet/tc_cell_alignment.rb +0 -77
  102. data/test/stylesheet/tc_cell_protection.rb +0 -30
  103. data/test/stylesheet/tc_cell_style.rb +0 -58
  104. data/test/stylesheet/tc_color.rb +0 -38
  105. data/test/stylesheet/tc_fill.rb +0 -19
  106. data/test/stylesheet/tc_font.rb +0 -114
  107. data/test/stylesheet/tc_gradient_fill.rb +0 -65
  108. data/test/stylesheet/tc_gradient_stop.rb +0 -32
  109. data/test/stylesheet/tc_num_fmt.rb +0 -31
  110. data/test/stylesheet/tc_pattern_fill.rb +0 -38
  111. data/test/stylesheet/tc_styles.rb +0 -52
  112. data/test/stylesheet/tc_table_style.rb +0 -37
  113. data/test/stylesheet/tc_table_style_element.rb +0 -37
  114. data/test/stylesheet/tc_table_styles.rb +0 -30
  115. data/test/stylesheet/tc_xf.rb +0 -121
  116. data/test/tc_package.rb +0 -68
  117. data/test/util/tc_simple_typed_list.rb +0 -66
  118. data/test/util/tc_validators.rb +0 -76
  119. data/test/workbook/tc_workbook.rb +0 -60
  120. data/test/workbook/worksheet/tc_cell.rb +0 -179
  121. data/test/workbook/worksheet/tc_row.rb +0 -36
  122. data/test/workbook/worksheet/tc_worksheet.rb +0 -138
@@ -1,81 +0,0 @@
1
- require 'test/unit'
2
- require 'axlsx.rb'
3
-
4
- class TestContentType < Test::Unit::TestCase
5
- def setup
6
- @package = Axlsx::Package.new
7
- @doc = Nokogiri::XML(@package.send(:content_types).to_xml)
8
- end
9
-
10
- def test_valid_document
11
- schema = Nokogiri::XML::Schema(File.open(Axlsx::CONTENT_TYPES_XSD))
12
- errors = []
13
- schema.validate(@doc).each do |error|
14
- puts error.message
15
- errors << error
16
- end
17
- assert_equal(errors.size, 0, "[Content Types].xml Invalid" + errors.map{ |e| e.message }.to_s)
18
- end
19
-
20
- def test_pre_built_types
21
-
22
- o_path = "Types Override [@ContentType='%s']"
23
- d_path = "Types Default [@ContentType='%s']"
24
-
25
- #default
26
- assert_equal(@doc.css("Types Default").size, 2, "There should be 2 default types")
27
-
28
- node = @doc.css(d_path % Axlsx::XML_CT).first
29
- assert_equal(node["Extension"], "#{Axlsx::XML_EX}", "xml content type invalid")
30
-
31
- node = @doc.css(d_path % Axlsx::RELS_CT).first
32
- assert_equal(node["Extension"],"#{Axlsx::RELS_EX}", "relationships content type invalid")
33
-
34
- #overrride
35
- assert_equal(@doc.css("Types Override").size, 4, "There should be 4 Override types")
36
-
37
- node = @doc.css(o_path % Axlsx::APP_CT).first
38
- assert_equal(node["PartName"], "/#{Axlsx::APP_PN}", "App part name invalid")
39
-
40
- node = @doc.css(o_path % Axlsx::CORE_CT).first
41
- assert_equal(node["PartName"], "/#{Axlsx::CORE_PN}", "Core part name invalid")
42
-
43
- node = @doc.css(o_path % Axlsx::STYLES_CT).first
44
- assert_equal(node["PartName"], "/xl/#{Axlsx::STYLES_PN}", "Styles part name invalid")
45
-
46
- node = @doc.css(o_path % Axlsx::WORKBOOK_CT).first
47
- assert_equal(node["PartName"], "/#{Axlsx::WORKBOOK_PN}", "Workbook part invalid")
48
- end
49
-
50
- def test_should_get_worksheet_for_worksheets
51
- o_path = "Types Override [@ContentType='%s']"
52
-
53
- ws = @package.workbook.add_worksheet
54
- doc = Nokogiri::XML(@package.send(:content_types).to_xml)
55
- assert_equal(doc.css("Types Override").size, 5, "adding a worksheet should add another type")
56
- assert_equal(doc.css(o_path % Axlsx::WORKSHEET_CT).last["PartName"], "/xl/#{ws.pn}", "Worksheet part invalid")
57
-
58
- ws = @package.workbook.add_worksheet
59
- doc = Nokogiri::XML(@package.send(:content_types).to_xml)
60
- assert_equal(doc.css("Types Override").size, 6, "adding workship should add another type")
61
- assert_equal(doc.css(o_path % Axlsx::WORKSHEET_CT).last["PartName"], "/xl/#{ws.pn}", "Worksheet part invalid")
62
-
63
- end
64
-
65
- def test_drawings_and_charts_need_content_types
66
- o_path = "Types Override [@ContentType='%s']"
67
- ws = @package.workbook.add_worksheet
68
-
69
- c = ws.add_chart Axlsx::Pie3DChart
70
- doc = Nokogiri::XML(@package.send(:content_types).to_xml)
71
- assert_equal(doc.css("Types Override").size, 7, "expected 7 types got #{doc.css("Types Override").size}")
72
- assert_equal(doc.css(o_path % Axlsx::DRAWING_CT).first["PartName"], "/xl/#{ws.drawing.pn}", "Drawing part name invlid")
73
- assert_equal(doc.css(o_path % Axlsx::CHART_CT).last["PartName"], "/xl/#{c.pn}", "Chart part name invlid")
74
-
75
- c = ws.add_chart Axlsx::Pie3DChart
76
- doc = Nokogiri::XML(@package.send(:content_types).to_xml)
77
- assert_equal(doc.css("Types Override").size, 8, "expected 7 types got #{doc.css("Types Override").size}")
78
- assert_equal(doc.css(o_path % Axlsx::CHART_CT).last["PartName"], "/xl/#{c.pn}", "Chart part name invlid")
79
- end
80
-
81
- end
@@ -1,40 +0,0 @@
1
- require 'test/unit'
2
- require 'axlsx.rb'
3
-
4
- class TestDefault < Test::Unit::TestCase
5
- def setup
6
- end
7
- def teardown
8
- end
9
- def test_initialization_requires_Extension_and_ContentType
10
- assert_raise(ArgumentError, "raises argument error if Extension and/or ContentType are not specified") { Axlsx::Default.new }
11
- assert_raise(ArgumentError, "raises argument error if Extension and/or ContentType are not specified") { Axlsx::Default.new :Extension=>"xml" }
12
- assert_raise(ArgumentError, "raises argument error if Extension and/or ContentType are not specified") { Axlsx::Default.new :ContentType=>"asdf" }
13
-
14
- assert_nothing_raised {Axlsx::Default.new :Extension=>"foo", :ContentType=>Axlsx::XML_CT}
15
-
16
- end
17
- def test_content_type_restriction
18
- assert_raise(ArgumentError, "raises argument error if invlalid ContentType is") { Axlsx::Default.new :ContentType=>"asdf" }
19
- end
20
-
21
- def test_to_xml
22
- schema = Nokogiri::XML::Schema(File.open(Axlsx::CONTENT_TYPES_XSD))
23
- type = Axlsx::Default.new :Extension=>"xml", :ContentType=>Axlsx::XML_CT
24
- builder = Nokogiri::XML::Builder.new(:encoding => Axlsx::ENCODING) do |xml|
25
- xml.Types(:xmlns => Axlsx::XML_NS_T) {
26
- type.to_xml(xml)
27
- }
28
- end
29
- doc = Nokogiri::XML(builder.to_xml)
30
- errors = []
31
- schema.validate(doc).each do |error|
32
- puts error.message
33
- errors << error
34
- end
35
- assert_equal(errors.size, 0, "[Content Types].xml Invalid" + errors.map{ |e| e.message }.to_s)
36
-
37
- end
38
-
39
-
40
- end
@@ -1,40 +0,0 @@
1
- require 'test/unit'
2
- require 'axlsx.rb'
3
-
4
- class TestOverride < Test::Unit::TestCase
5
- def setup
6
- end
7
- def teardown
8
- end
9
- def test_initialization_requires_Extension_and_ContentType
10
- err = "requires PartName and ContentType options"
11
- assert_raise(ArgumentError, err) { Axlsx::Override.new }
12
- assert_raise(ArgumentError, err) { Axlsx::Override.new :PartName=>"xml" }
13
- assert_raise(ArgumentError, err) { Axlsx::Override.new :ContentType=>"asdf" }
14
- assert_nothing_raised {Axlsx::Override.new :PartName=>"foo", :ContentType=>Axlsx::CHART_CT}
15
- end
16
-
17
- def test_content_type_restriction
18
- assert_raise(ArgumentError, "requires known content type") { Axlsx::Override.new :ContentType=>"asdf" }
19
- end
20
-
21
- def test_to_xml
22
- schema = Nokogiri::XML::Schema(File.open(Axlsx::CONTENT_TYPES_XSD))
23
- type = Axlsx::Override.new :PartName=>"somechart.xml", :ContentType=>Axlsx::CHART_CT
24
- builder = Nokogiri::XML::Builder.new(:encoding => Axlsx::ENCODING) do |xml|
25
- xml.Types(:xmlns => Axlsx::XML_NS_T) {
26
- type.to_xml(xml)
27
- }
28
- end
29
- doc = Nokogiri::XML(builder.to_xml)
30
- errors = []
31
- schema.validate(doc).each do |error|
32
- puts error.message
33
- errors << error
34
- end
35
- assert_equal(errors.size, 0, "Override content type caused invalid content_type doc" + errors.map{ |e| e.message }.to_s)
36
-
37
- end
38
-
39
-
40
- end
@@ -1,19 +0,0 @@
1
- require 'test/unit'
2
- require 'axlsx.rb'
3
-
4
- class TestApp < Test::Unit::TestCase
5
- def setup
6
- end
7
- def teardown
8
- end
9
-
10
- def test_valid_document
11
- schema = Nokogiri::XML::Schema(File.open(Axlsx::APP_XSD))
12
- doc = Nokogiri::XML(Axlsx::App.new.to_xml)
13
- errors = []
14
- schema.validate(doc).each do |error|
15
- errors << error
16
- end
17
- assert_equal(errors.size, 0, "app.xml invalid" + errors.map{ |e| e.message }.to_s)
18
- end
19
- end
@@ -1,34 +0,0 @@
1
- require 'test/unit'
2
- require 'axlsx.rb'
3
-
4
- class TestCore < Test::Unit::TestCase
5
-
6
- def setup
7
- @core = Axlsx::Core.new
8
- @doc = Nokogiri::XML(@core.to_xml)
9
- end
10
-
11
- def test_valid_document
12
- schema = Nokogiri::XML::Schema(File.open(Axlsx::CORE_XSD))
13
- errors = []
14
- schema.validate(@doc).each do |error|
15
- puts error.message
16
- errors << error
17
- end
18
- assert_equal(errors.size, 0, "core.xml Invalid" + errors.map{ |e| e.message }.to_s)
19
- end
20
-
21
- def test_populates_created
22
- assert_equal(@doc.xpath('//dcterms:created').text, Time.now.strftime('%Y-%m-%dT%H:%M:%S'), "dcterms:created incorrect")
23
- end
24
-
25
- def test_populates_default_name
26
- assert_equal(@doc.xpath('//dc:creator').text, "axlsx", "Default name not populated")
27
- end
28
-
29
- def test_creator_as_option
30
- c = Axlsx::Core.new :creator => "some guy"
31
- doc = Nokogiri::XML(c.to_xml)
32
- assert(doc.xpath('//dc:creator').text == "some guy")
33
- end
34
- end
@@ -1,40 +0,0 @@
1
- require 'test/unit'
2
- require 'axlsx.rb'
3
-
4
- class TestAxis < Test::Unit::TestCase
5
- def setup
6
- @axis = Axlsx::Axis.new 12345, 54321
7
- end
8
- def teardown
9
- end
10
-
11
- def test_initialization
12
- assert_equal(@axis.axPos, :l, "axis position default incorrect")
13
- assert_equal(@axis.tickLblPos, :nextTo, "tick label position default incorrect")
14
- assert_equal(@axis.tickLblPos, :nextTo, "tick label position default incorrect")
15
- assert_equal(@axis.crosses, :autoZero, "tick label position default incorrect")
16
- assert(@axis.scaling.is_a?(Axlsx::Scaling) && @axis.scaling.orientation == :minMax, "scaling default incorrect")
17
- assert_raise(ArgumentError) { Axlsx::Axis.new -1234, 'abcd' }
18
- end
19
-
20
- def test_axis_position
21
- assert_raise(ArgumentError, "requires valid axis position") { @axis.axPos = :nowhere }
22
- assert_nothing_raised("accepts valid axis position") { @axis.axPos = :r }
23
- end
24
-
25
- def test_tick_label_position
26
- assert_raise(ArgumentError, "requires valid tick label position") { @axis.tickLblPos = :nowhere }
27
- assert_nothing_raised("accepts valid tick label position") { @axis.tickLblPos = :high }
28
- end
29
-
30
- def test_format_code
31
- assert_raise(ArgumentError, "requires valid format code") { @axis.format_code = 1 }
32
- assert_nothing_raised("accepts valid format code") { @axis.tickLblPos = :high }
33
- end
34
-
35
- def test_crosses
36
- assert_raise(ArgumentError, "requires valid crosses") { @axis.crosses = 1 }
37
- assert_nothing_raised("accepts valid crosses") { @axis.crosses = :min }
38
- end
39
-
40
- end
@@ -1,66 +0,0 @@
1
- require 'test/unit'
2
- require 'axlsx.rb'
3
-
4
- class TestBar3DChart < Test::Unit::TestCase
5
-
6
- def setup
7
- @p = Axlsx::Package.new
8
- ws = @p.workbook.add_worksheet
9
- @row = ws.add_row ["one", 1, Time.now]
10
- @chart = ws.add_chart Axlsx::Bar3DChart, :title => "fishery"
11
- end
12
-
13
- def teardown
14
- end
15
-
16
- def test_initialization
17
- assert_equal(@chart.grouping, :clustered, "grouping defualt incorrect")
18
- assert_equal(@chart.series_type, Axlsx::BarSeries, "series type incorrect")
19
- assert_equal(@chart.barDir, :bar, " bar direction incorrect")
20
- assert(@chart.catAxis.is_a?(Axlsx::CatAxis), "category axis not created")
21
- assert(@chart.valAxis.is_a?(Axlsx::ValAxis), "value access not created")
22
- end
23
-
24
- def test_bar_direction
25
- assert_raise(ArgumentError, "require valid bar direction") { @chart.barDir = :left }
26
- assert_nothing_raised("allow valid bar direction") { @chart.barDir = :col }
27
- assert(@chart.barDir == :col)
28
- end
29
-
30
- def test_grouping
31
- assert_raise(ArgumentError, "require valid grouping") { @chart.grouping = :inverted }
32
- assert_nothing_raised("allow valid grouping") { @chart.grouping = :standard }
33
- assert(@chart.grouping == :standard)
34
- end
35
-
36
-
37
- def test_gapWidth
38
- assert_raise(ArgumentError, "require valid gap width") { @chart.gapWidth = 200 }
39
- assert_nothing_raised("allow valid gapWidth") { @chart.gapWidth = "200%" }
40
- assert(@chart.gapWidth == "200%")
41
- end
42
-
43
- def test_gapDepth
44
- assert_raise(ArgumentError, "require valid gapDepth") { @chart.gapDepth = 200 }
45
- assert_nothing_raised("allow valid gapDepth") { @chart.gapDepth = "200%" }
46
- assert(@chart.gapDepth == "200%")
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
56
- schema = Nokogiri::XML::Schema(File.open(Axlsx::DRAWING_XSD))
57
- doc = Nokogiri::XML(@chart.to_xml)
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
- end
@@ -1,34 +0,0 @@
1
- require 'test/unit'
2
- require 'axlsx.rb'
3
-
4
- class TestBarSeries < Test::Unit::TestCase
5
-
6
- def setup
7
- p = Axlsx::Package.new
8
- @ws = p.workbook.add_worksheet :name=>"hmmm"
9
- chart = @ws.drawing.add_chart Axlsx::Bar3DChart, :title => "fishery"
10
- @series = chart.add_series :data=>[0,1,2], :labels=>["zero", "one", "two"], :title=>"bob"
11
- end
12
-
13
- def test_initialize
14
- assert_equal(@series.title.text, "bob", "series title has been applied")
15
- assert_equal(@series.data, [0,1,2], "data option applied")
16
- assert_equal(@series.labels, ["zero", "one","two"], "labels option applied")
17
- assert_equal(@series.shape, :box, "series shape has been applied")
18
- end
19
-
20
- def test_data
21
- assert_equal(@series.data, [0,1,2])
22
- end
23
-
24
- def test_labels
25
- assert_equal(@series.labels, ["zero", "one", "two"])
26
- end
27
-
28
- def test_shape
29
- assert_raise(ArgumentError, "require valid shape") { @series.shape = :teardropt }
30
- assert_nothing_raised("allow valid shape") { @series.shape = :cone }
31
- assert(@series.shape == :cone)
32
- end
33
-
34
- end
@@ -1,32 +0,0 @@
1
- require 'test/unit'
2
- require 'axlsx.rb'
3
-
4
- class TestCatAxis < Test::Unit::TestCase
5
- def setup
6
- @axis = Axlsx::CatAxis.new 12345, 54321
7
- end
8
- def teardown
9
- end
10
-
11
- def test_initialization
12
- assert_equal(@axis.auto, true, "axis auto default incorrect")
13
- assert_equal(@axis.lblAlgn, :ctr, "label align default incorrect")
14
- assert_equal(@axis.lblOffset, "100%", "label offset default incorrect")
15
- end
16
-
17
- def test_auto
18
- assert_raise(ArgumentError, "requires valid auto") { @axis.auto = :nowhere }
19
- assert_nothing_raised("accepts valid auto") { @axis.auto = false }
20
- end
21
-
22
- def test_lblAlgn
23
- assert_raise(ArgumentError, "requires valid label alignment") { @axis.lblAlgn = :nowhere }
24
- assert_nothing_raised("accepts valid label alignment") { @axis.lblAlgn = :r }
25
- end
26
-
27
- def test_lblOffset
28
- assert_raise(ArgumentError, "requires valid label offset") { @axis.lblOffset = 100 }
29
- assert_nothing_raised("accepts valid label offset") { @axis.lblOffset = "20%" }
30
- end
31
-
32
- end
@@ -1,18 +0,0 @@
1
- require 'test/unit'
2
- require 'axlsx.rb'
3
-
4
- class TestCatAxisData < Test::Unit::TestCase
5
-
6
- def setup
7
- p = Axlsx::Package.new
8
- @ws = p.workbook.add_worksheet
9
- chart = @ws.drawing.add_chart Axlsx::Bar3DChart
10
- @series = chart.add_series :labels=>["zero", "one", "two"]
11
- end
12
-
13
- def test_initialize
14
- assert(@series.labels.is_a?Axlsx::SimpleTypedList)
15
- assert_equal(@series.labels, ["zero", "one", "two"])
16
- end
17
-
18
- end
@@ -1,73 +0,0 @@
1
- require 'test/unit'
2
- require 'axlsx.rb'
3
-
4
- class TestChart < Test::Unit::TestCase
5
-
6
- def setup
7
- @p = Axlsx::Package.new
8
- ws = @p.workbook.add_worksheet
9
- @row = ws.add_row ["one", 1, Time.now]
10
- @chart = ws.add_chart Axlsx::Bar3DChart, :title => "fishery"
11
- end
12
-
13
- def teardown
14
- end
15
-
16
- def test_initialization
17
- assert_equal(@p.workbook.charts.last,@chart, "the chart is in the workbook")
18
- assert_equal(@chart.title.text, "fishery", "the title option has been applied")
19
- assert((@chart.series.is_a?(Axlsx::SimpleTypedList) && @chart.series.empty?), "The series is initialized and empty")
20
- end
21
-
22
- def test_title
23
- @chart.title.text = 'wowzer'
24
- assert_equal(@chart.title.text, "wowzer", "the title text via a string")
25
- assert_equal(@chart.title.cell, nil, "the title cell is nil as we set the title with text.")
26
- @chart.title.cell = @row.cells.first
27
- assert_equal(@chart.title.text, "one", "the title text was set via cell reference")
28
- assert_equal(@chart.title.cell, @row.cells.first)
29
- end
30
-
31
- def test_style
32
- assert_raise(ArgumentError) { @chart.style = 49 }
33
- assert_nothing_raised { @chart.style = 2 }
34
- assert_equal(@chart.style, 2)
35
- end
36
-
37
- def test_start_at
38
- @chart.start_at 15,25
39
- assert_equal(@chart.graphic_frame.anchor.from.col, 15)
40
- assert_equal(@chart.graphic_frame.anchor.from.row, 25)
41
-
42
- end
43
-
44
- def end_at
45
- @chart.end_at 25, 90
46
- assert_equal(@chart.graphic_frame.anchor.from.col, 25)
47
- assert_equal(@chart.graphic_frame.anchor.to.row, 90)
48
- end
49
-
50
- def test_add_series
51
- s = @chart.add_series :data=>[0,1,2,3], :labels => ["one", 1, "anything"], :title=>"bob"
52
- assert_equal(@chart.series.last, s, "series has been added to chart series collection")
53
- assert_equal(s.title.text, "bob", "series title has been applied")
54
- assert_equal(s.data, [0,1,2,3], "data option applied")
55
- assert_equal(s.labels, ["one",1,"anything"], "labels option applied")
56
- end
57
-
58
- def test_pn
59
- assert_equal(@chart.pn, "charts/chart1.xml")
60
- end
61
-
62
- def test_to_xml
63
- schema = Nokogiri::XML::Schema(File.open(Axlsx::DRAWING_XSD))
64
- doc = Nokogiri::XML(@chart.to_xml)
65
- errors = []
66
- schema.validate(doc).each do |error|
67
- errors.push error
68
- puts error.message
69
- end
70
- assert(errors.empty?, "error free validation")
71
- end
72
-
73
- end