axlsx 1.1.0 → 1.2.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- data/.yardopts +5 -2
- data/CHANGELOG.md +78 -0
- data/LICENSE +1 -1
- data/README.md +132 -331
- data/Rakefile +17 -5
- data/examples/basic_charts.rb +54 -0
- data/examples/chart_colors.rb +88 -0
- data/examples/conditional_formatting/example_conditional_formatting.rb +72 -0
- data/examples/conditional_formatting/getting_barred.rb +37 -0
- data/examples/conditional_formatting/hitting_the_high_notes.rb +37 -0
- data/examples/conditional_formatting/scaled_colors.rb +39 -0
- data/examples/conditional_formatting/stop_and_go.rb +37 -0
- data/examples/data_validation.rb +50 -0
- data/examples/example.rb +300 -152
- data/examples/example.xlsx +0 -0
- data/examples/example_streamed.xlsx +0 -0
- data/examples/extractive.pdf +0 -0
- data/examples/extractive.rb +45 -0
- data/examples/no-use_autowidth.xlsx +0 -0
- data/examples/sample.png +0 -0
- data/examples/scraping_html.rb +91 -0
- data/examples/shared_strings_example.xlsx +0 -0
- data/examples/sheet_protection.rb +10 -0
- data/examples/sheet_view.rb +34 -0
- data/examples/skydrive/real_example.rb +63 -0
- data/examples/two_cell_anchor_image.rb +11 -0
- data/lib/axlsx/content_type/content_type.rb +2 -0
- data/lib/axlsx/content_type/default.rb +30 -15
- data/lib/axlsx/content_type/override.rb +29 -14
- data/lib/axlsx/doc_props/app.rb +161 -104
- data/lib/axlsx/doc_props/core.rb +9 -5
- data/lib/axlsx/drawing/ax_data_source.rb +26 -0
- data/lib/axlsx/drawing/axis.rb +106 -35
- data/lib/axlsx/drawing/bar_3D_chart.rb +49 -45
- data/lib/axlsx/drawing/bar_series.rb +25 -7
- data/lib/axlsx/drawing/cat_axis.rb +50 -22
- data/lib/axlsx/drawing/chart.rb +69 -56
- data/lib/axlsx/drawing/d_lbls.rb +100 -0
- data/lib/axlsx/drawing/drawing.rb +28 -12
- data/lib/axlsx/drawing/graphic_frame.rb +2 -1
- data/lib/axlsx/drawing/line_3D_chart.rb +3 -10
- data/lib/axlsx/drawing/line_series.rb +20 -4
- data/lib/axlsx/drawing/num_data.rb +52 -0
- data/lib/axlsx/drawing/num_data_source.rb +61 -0
- data/lib/axlsx/drawing/num_val.rb +32 -0
- data/lib/axlsx/drawing/pic.rb +44 -4
- data/lib/axlsx/drawing/pie_3D_chart.rb +10 -7
- data/lib/axlsx/drawing/pie_series.rb +18 -4
- data/lib/axlsx/drawing/scatter_chart.rb +12 -18
- data/lib/axlsx/drawing/scatter_series.rb +28 -2
- data/lib/axlsx/drawing/ser_axis.rb +1 -1
- data/lib/axlsx/drawing/series.rb +1 -1
- data/lib/axlsx/drawing/str_data.rb +42 -0
- data/lib/axlsx/drawing/str_val.rb +33 -0
- data/lib/axlsx/drawing/title.rb +21 -9
- data/lib/axlsx/drawing/two_cell_anchor.rb +46 -9
- data/lib/axlsx/drawing/view_3D.rb +44 -31
- data/lib/axlsx/drawing/vml_drawing.rb +42 -0
- data/lib/axlsx/drawing/vml_shape.rb +125 -0
- data/lib/axlsx/package.rb +44 -16
- data/lib/axlsx/rels/relationship.rb +3 -3
- data/lib/axlsx/rels/relationships.rb +1 -11
- data/lib/axlsx/stylesheet/color.rb +0 -1
- data/lib/axlsx/stylesheet/dxf.rb +79 -0
- data/lib/axlsx/stylesheet/font.rb +2 -1
- data/lib/axlsx/stylesheet/gradient_fill.rb +1 -1
- data/lib/axlsx/stylesheet/styles.rb +143 -50
- data/lib/axlsx/stylesheet/table_style.rb +3 -3
- data/lib/axlsx/stylesheet/xf.rb +2 -0
- data/lib/axlsx/util/constants.rb +36 -0
- data/lib/axlsx/util/simple_typed_list.rb +15 -21
- data/lib/axlsx/util/validators.rb +122 -5
- data/lib/axlsx/version.rb +2 -7
- data/lib/axlsx/workbook/defined_name.rb +174 -0
- data/lib/axlsx/workbook/defined_names.rb +21 -0
- data/lib/axlsx/workbook/shared_strings_table.rb +12 -13
- data/lib/axlsx/workbook/workbook.rb +71 -13
- data/lib/axlsx/workbook/worksheet/auto_filter.rb +34 -0
- data/lib/axlsx/workbook/worksheet/cell.rb +45 -36
- data/lib/axlsx/workbook/worksheet/cfvo.rb +62 -0
- data/lib/axlsx/workbook/worksheet/col.rb +17 -1
- data/lib/axlsx/workbook/worksheet/color_scale.rb +76 -0
- data/lib/axlsx/workbook/worksheet/cols.rb +20 -0
- data/lib/axlsx/workbook/worksheet/comment.rb +101 -0
- data/lib/axlsx/workbook/worksheet/comments.rb +85 -0
- data/lib/axlsx/workbook/worksheet/conditional_formatting.rb +82 -0
- data/lib/axlsx/workbook/worksheet/conditional_formatting_rule.rb +216 -0
- data/lib/axlsx/workbook/worksheet/conditional_formattings.rb +25 -0
- data/lib/axlsx/workbook/worksheet/data_bar.rb +97 -0
- data/lib/axlsx/workbook/worksheet/data_validation.rb +245 -0
- data/lib/axlsx/workbook/worksheet/data_validations.rb +28 -0
- data/lib/axlsx/workbook/worksheet/dimension.rb +65 -0
- data/lib/axlsx/workbook/worksheet/icon_set.rb +83 -0
- data/lib/axlsx/workbook/worksheet/merged_cells.rb +35 -0
- data/lib/axlsx/workbook/worksheet/page_setup.rb +113 -0
- data/lib/axlsx/workbook/worksheet/pane.rb +144 -0
- data/lib/axlsx/workbook/worksheet/print_options.rb +63 -0
- data/lib/axlsx/workbook/worksheet/protected_range.rb +46 -0
- data/lib/axlsx/workbook/worksheet/protected_ranges.rb +34 -0
- data/lib/axlsx/workbook/worksheet/row.rb +69 -12
- data/lib/axlsx/workbook/worksheet/selection.rb +111 -0
- data/lib/axlsx/workbook/worksheet/sheet_data.rb +25 -0
- data/lib/axlsx/workbook/worksheet/sheet_pr.rb +24 -0
- data/lib/axlsx/workbook/worksheet/sheet_protection.rb +224 -0
- data/lib/axlsx/workbook/worksheet/sheet_view.rb +379 -0
- data/lib/axlsx/workbook/worksheet/table.rb +3 -3
- data/lib/axlsx/workbook/worksheet/tables.rb +31 -0
- data/lib/axlsx/workbook/worksheet/worksheet.rb +379 -233
- data/lib/axlsx/workbook/worksheet/worksheet_comments.rb +57 -0
- data/lib/axlsx/workbook/worksheet/worksheet_drawing.rb +64 -0
- data/lib/axlsx.rb +31 -16
- data/test/benchmark.rb +30 -38
- data/test/content_type/tc_content_type.rb +1 -6
- data/test/doc_props/tc_app.rb +31 -1
- data/test/doc_props/tc_core.rb +3 -1
- data/test/drawing/tc_axis.rb +46 -3
- data/test/drawing/tc_bar_3D_chart.rb +12 -12
- data/test/drawing/tc_bar_series.rb +17 -13
- data/test/drawing/tc_cat_axis.rb +3 -3
- data/test/drawing/tc_cat_axis_data.rb +23 -13
- data/test/drawing/tc_chart.rb +29 -11
- data/test/drawing/tc_d_lbls.rb +47 -0
- data/test/drawing/tc_data_source.rb +17 -0
- data/test/drawing/tc_drawing.rb +11 -5
- data/test/drawing/tc_hyperlink.rb +4 -5
- data/test/drawing/tc_line_series.rb +9 -11
- data/test/drawing/tc_named_axis_data.rb +27 -0
- data/test/drawing/tc_num_data.rb +31 -0
- data/test/drawing/tc_num_val.rb +29 -0
- data/test/drawing/tc_pic.rb +22 -2
- data/test/drawing/tc_pie_3D_chart.rb +4 -8
- data/test/drawing/tc_pie_series.rb +11 -13
- data/test/drawing/tc_scatter_chart.rb +6 -1
- data/test/drawing/tc_scatter_series.rb +6 -5
- data/test/drawing/tc_series.rb +1 -1
- data/test/drawing/tc_str_data.rb +18 -0
- data/test/drawing/tc_str_val.rb +21 -0
- data/test/drawing/tc_title.rb +16 -0
- data/test/drawing/tc_two_cell_anchor.rb +2 -3
- data/test/drawing/tc_view_3D.rb +18 -18
- data/test/drawing/tc_vml_drawing.rb +25 -0
- data/test/drawing/tc_vml_shape.rb +100 -0
- data/test/profile.rb +2 -1
- data/test/rels/tc_relationship.rb +1 -0
- data/test/stylesheet/tc_dxf.rb +81 -0
- data/test/stylesheet/tc_gradient_fill.rb +8 -0
- data/test/stylesheet/tc_pattern_fill.rb +7 -1
- data/test/stylesheet/tc_styles.rb +163 -3
- data/test/stylesheet/tc_table_style.rb +8 -0
- data/test/stylesheet/tc_table_style_element.rb +10 -1
- data/test/tc_helper.rb +1 -0
- data/test/tc_package.rb +93 -17
- data/test/util/tc_simple_typed_list.rb +13 -0
- data/test/util/tc_validators.rb +95 -9
- data/test/workbook/tc_defined_name.rb +41 -0
- data/test/workbook/tc_workbook.rb +5 -3
- data/test/workbook/worksheet/table/tc_table.rb +3 -11
- data/test/workbook/worksheet/tc_cell.rb +52 -18
- data/test/workbook/worksheet/tc_cfvo.rb +31 -0
- data/test/workbook/worksheet/tc_col.rb +9 -0
- data/test/workbook/worksheet/tc_color_scale.rb +29 -0
- data/test/workbook/worksheet/tc_comment.rb +57 -0
- data/test/workbook/worksheet/tc_comments.rb +57 -0
- data/test/workbook/worksheet/tc_conditional_formatting.rb +217 -0
- data/test/workbook/worksheet/tc_data_bar.rb +39 -0
- data/test/workbook/worksheet/tc_data_validation.rb +265 -0
- data/test/workbook/worksheet/tc_date_time_converter.rb +11 -5
- data/test/workbook/worksheet/tc_icon_set.rb +45 -0
- data/test/workbook/worksheet/tc_page_setup.rb +138 -0
- data/test/workbook/worksheet/tc_pane.rb +94 -0
- data/test/workbook/worksheet/tc_print_options.rb +72 -0
- data/test/workbook/worksheet/tc_protected_range.rb +17 -0
- data/test/workbook/worksheet/tc_row.rb +44 -13
- data/test/workbook/worksheet/tc_selection.rb +94 -0
- data/test/workbook/worksheet/tc_sheet_protection.rb +117 -0
- data/test/workbook/worksheet/tc_sheet_view.rb +214 -0
- data/test/workbook/worksheet/tc_worksheet.rb +147 -50
- metadata +216 -148
- data/examples/example.csv +0 -1000
- data/examples/example.rb~ +0 -112
- data/lib/axlsx/drawing/cat_axis_data.rb +0 -34
- data/lib/axlsx/drawing/hlink_click.rb~ +0 -0
- data/lib/axlsx/drawing/hyperlink.rb~ +0 -64
- data/lib/axlsx/drawing/named_axis_data.rb +0 -36
- data/lib/axlsx/drawing/picture_locking.rb~ +0 -36
- data/lib/axlsx/drawing/val_axis_data.rb +0 -27
- data/lib/axlsx/stylesheet/#num_fmt.rb# +0 -69
- data/lib/axlsx/util/cbf.rb +0 -333
- data/lib/axlsx/util/cfb.rb~ +0 -201
- data/lib/axlsx/util/ms_off_crypto.rb +0 -189
- data/lib/axlsx/util/ms_off_crypto.rb~ +0 -3
- data/lib/axlsx/util/ms_offcrypto.rb~ +0 -0
- data/lib/axlsx/util/parser.rb~ +0 -6
- data/lib/axlsx/util/storage.rb~ +0 -0
- data/lib/axlsx/workbook/shared_strings_table.rb~ +0 -69
- data/lib/axlsx/workbook/worksheet/col.rb~ +0 -0
- data/lib/axlsx/workbook/worksheet/shared_strings_table.rb~ +0 -0
- data/lib/axlsx/workbook/worksheet/table.rb~ +0 -97
- data/lib/schema/dc.xsd~ +0 -118
- data/lib/schema/dcterms.xsd~ +0 -331
- data/lib/schema/opc-coreProperties.xsd~ +0 -50
- data/test/#benchmark.txt# +0 -7
- data/test/#tc_helper.rb# +0 -3
- data/test/benchmark.rb~ +0 -0
- data/test/benchmark.txt +0 -6
- data/test/benchmark.txt~ +0 -6
- data/test/drawing/tc_val_axis_data.rb +0 -17
- data/test/example.csv +0 -1000
- data/test/example.xlsx +0 -0
- data/test/example_streamed.xlsx +0 -0
- data/test/tc_axlsx.rb~ +0 -0
- data/test/tc_helper.rb~ +0 -3
- data/test/workbook/worksheet/table/tc_table.rb~ +0 -72
- data/test/workbook/worksheet/tc_col.rb~ +0 -10
data/test/drawing/tc_chart.rb
CHANGED
|
@@ -22,11 +22,16 @@ class TestChart < Test::Unit::TestCase
|
|
|
22
22
|
@chart.title.text = 'wowzer'
|
|
23
23
|
assert_equal(@chart.title.text, "wowzer", "the title text via a string")
|
|
24
24
|
assert_equal(@chart.title.cell, nil, "the title cell is nil as we set the title with text.")
|
|
25
|
-
@chart.title
|
|
25
|
+
@chart.title = @row.cells.first
|
|
26
26
|
assert_equal(@chart.title.text, "one", "the title text was set via cell reference")
|
|
27
27
|
assert_equal(@chart.title.cell, @row.cells.first)
|
|
28
28
|
end
|
|
29
29
|
|
|
30
|
+
def test_to_from_marker_access
|
|
31
|
+
assert(@chart.to.is_a?(Axlsx::Marker))
|
|
32
|
+
assert(@chart.from.is_a?(Axlsx::Marker))
|
|
33
|
+
end
|
|
34
|
+
|
|
30
35
|
def test_style
|
|
31
36
|
assert_raise(ArgumentError) { @chart.style = 49 }
|
|
32
37
|
assert_nothing_raised { @chart.style = 2 }
|
|
@@ -34,38 +39,51 @@ class TestChart < Test::Unit::TestCase
|
|
|
34
39
|
end
|
|
35
40
|
|
|
36
41
|
def test_start_at
|
|
37
|
-
@chart.start_at 15,25
|
|
42
|
+
@chart.start_at 15, 25
|
|
38
43
|
assert_equal(@chart.graphic_frame.anchor.from.col, 15)
|
|
39
44
|
assert_equal(@chart.graphic_frame.anchor.from.row, 25)
|
|
40
|
-
|
|
45
|
+
@chart.start_at @row.cells.first
|
|
46
|
+
assert_equal(@chart.graphic_frame.anchor.from.col, 0)
|
|
47
|
+
assert_equal(@chart.graphic_frame.anchor.from.row, 0)
|
|
48
|
+
@chart.start_at [5,6]
|
|
49
|
+
assert_equal(@chart.graphic_frame.anchor.from.col, 5)
|
|
50
|
+
assert_equal(@chart.graphic_frame.anchor.from.row, 6)
|
|
51
|
+
|
|
41
52
|
end
|
|
42
53
|
|
|
43
54
|
def test_end_at
|
|
44
55
|
@chart.end_at 25, 90
|
|
45
56
|
assert_equal(@chart.graphic_frame.anchor.to.col, 25)
|
|
46
57
|
assert_equal(@chart.graphic_frame.anchor.to.row, 90)
|
|
58
|
+
@chart.end_at @row.cells.last
|
|
59
|
+
assert_equal(@chart.graphic_frame.anchor.to.col, 2)
|
|
60
|
+
assert_equal(@chart.graphic_frame.anchor.to.row, 0)
|
|
61
|
+
@chart.end_at [10,11]
|
|
62
|
+
assert_equal(@chart.graphic_frame.anchor.to.col, 10)
|
|
63
|
+
assert_equal(@chart.graphic_frame.anchor.to.row, 11)
|
|
64
|
+
|
|
47
65
|
end
|
|
48
66
|
|
|
49
67
|
def test_add_series
|
|
50
68
|
s = @chart.add_series :data=>[0,1,2,3], :labels => ["one", 1, "anything"], :title=>"bob"
|
|
51
69
|
assert_equal(@chart.series.last, s, "series has been added to chart series collection")
|
|
52
70
|
assert_equal(s.title.text, "bob", "series title has been applied")
|
|
53
|
-
assert_equal(s.data, [0,1,2,3], "data option applied")
|
|
54
|
-
assert_equal(s.labels, ["one",1,"anything"], "labels option applied")
|
|
55
71
|
end
|
|
56
72
|
|
|
57
73
|
def test_pn
|
|
58
74
|
assert_equal(@chart.pn, "charts/chart1.xml")
|
|
59
75
|
end
|
|
60
|
-
|
|
76
|
+
|
|
77
|
+
def test_d_lbls
|
|
78
|
+
assert_equal(nil, @chart.instance_values[:d_lbls])
|
|
79
|
+
@chart.d_lbls.d_lbl_pos = :t
|
|
80
|
+
assert(@chart.d_lbls.is_a?(Axlsx::DLbls), 'DLbls instantiated on access')
|
|
81
|
+
end
|
|
82
|
+
|
|
61
83
|
def test_to_xml_string
|
|
62
84
|
schema = Nokogiri::XML::Schema(File.open(Axlsx::DRAWING_XSD))
|
|
63
85
|
doc = Nokogiri::XML(@chart.to_xml_string)
|
|
64
|
-
errors =
|
|
65
|
-
schema.validate(doc).each do |error|
|
|
66
|
-
errors.push error
|
|
67
|
-
puts error.message
|
|
68
|
-
end
|
|
86
|
+
errors = schema.validate(doc).map { |error| puts error.message; error }
|
|
69
87
|
assert(errors.empty?, "error free validation")
|
|
70
88
|
end
|
|
71
89
|
|
|
@@ -0,0 +1,47 @@
|
|
|
1
|
+
require 'tc_helper'
|
|
2
|
+
|
|
3
|
+
class TestDLbls < Test::Unit::TestCase
|
|
4
|
+
|
|
5
|
+
def setup
|
|
6
|
+
@d_lbls = Axlsx::DLbls.new(Axlsx::Pie3DChart)
|
|
7
|
+
end
|
|
8
|
+
|
|
9
|
+
def test_initialization
|
|
10
|
+
assert_equal(:bestFit, @d_lbls.d_lbl_pos)
|
|
11
|
+
Axlsx::DLbls::BOOLEAN_ATTRIBUTES.each do |attr|
|
|
12
|
+
assert_equal(false, @d_lbls.send(attr))
|
|
13
|
+
end
|
|
14
|
+
end
|
|
15
|
+
|
|
16
|
+
def test_initialization_with_optoins
|
|
17
|
+
options_hash = Hash[*[Axlsx::DLbls::BOOLEAN_ATTRIBUTES.map { |name| [name, true] }] ]
|
|
18
|
+
d_lbls = Axlsx::DLbls.new(Axlsx::Pie3DChart, options_hash.merge( { :d_lbl_pos => :t }))
|
|
19
|
+
Axlsx::DLbls::BOOLEAN_ATTRIBUTES.each do |attr|
|
|
20
|
+
assert_equal(true, d_lbls.send(attr), "boolean attributes set by options")
|
|
21
|
+
end
|
|
22
|
+
assert_equal(:t, d_lbls.d_lbl_pos, "d_lbl_pos set by options")
|
|
23
|
+
end
|
|
24
|
+
def test_d_lbl_pos
|
|
25
|
+
assert_raise(ArgumentError, 'invlaid label positions are rejected') { @d_lbls.d_lbl_pos = :upside_down }
|
|
26
|
+
assert_nothing_raised('accepts valid label position') { @d_lbls.d_lbl_pos = :ctr }
|
|
27
|
+
end
|
|
28
|
+
|
|
29
|
+
def test_boolean_attributes
|
|
30
|
+
Axlsx::DLbls::BOOLEAN_ATTRIBUTES.each do |attr|
|
|
31
|
+
assert_raise(ArgumentError, "rejects non boolean value for #{attr}") { @d_lbls.send("#{attr}=", :foo) }
|
|
32
|
+
assert_nothing_raised("accepts boolean value for #{attr}") { @d_lbls.send("#{attr}=", true) }
|
|
33
|
+
assert_nothing_raised("accepts boolean value for #{attr}") { @d_lbls.send("#{attr}=", false) }
|
|
34
|
+
end
|
|
35
|
+
end
|
|
36
|
+
|
|
37
|
+
def test_to_xml_string
|
|
38
|
+
str = '<?xml version="1.0" encoding="UTF-8"?>'
|
|
39
|
+
str << '<c:chartSpace xmlns:c="' << Axlsx::XML_NS_C << '" xmlns:a="' << Axlsx::XML_NS_A << '" xmlns:r="' << Axlsx::XML_NS_R << '">'
|
|
40
|
+
@d_lbls.to_xml_string(str)
|
|
41
|
+
str << '</c:chartSpace>'
|
|
42
|
+
doc = Nokogiri::XML(str)
|
|
43
|
+
@d_lbls.instance_values.each do |name, value|
|
|
44
|
+
assert(doc.xpath("//c:#{Axlsx::camel(name, false)}[@val='#{value}']"), "#{name} is properly serialized")
|
|
45
|
+
end
|
|
46
|
+
end
|
|
47
|
+
end
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
require 'tc_helper.rb'
|
|
2
|
+
|
|
3
|
+
class TestNumDataSource < Test::Unit::TestCase
|
|
4
|
+
|
|
5
|
+
def setup
|
|
6
|
+
@data_source = Axlsx::NumDataSource.new :data => ["1", "2", "3"]
|
|
7
|
+
end
|
|
8
|
+
|
|
9
|
+
def test_to_xml_string_strLit
|
|
10
|
+
str = '<?xml version="1.0" encoding="UTF-8"?>'
|
|
11
|
+
str << '<c:chartSpace xmlns:c="' << Axlsx::XML_NS_C << '">'
|
|
12
|
+
str << @data_source.to_xml_string
|
|
13
|
+
doc = Nokogiri::XML(str)
|
|
14
|
+
assert_equal(doc.xpath("//c:val").size, 1)
|
|
15
|
+
end
|
|
16
|
+
|
|
17
|
+
end
|
data/test/drawing/tc_drawing.rb
CHANGED
|
@@ -9,8 +9,6 @@ class TestDrawing < Test::Unit::TestCase
|
|
|
9
9
|
|
|
10
10
|
def test_initialization
|
|
11
11
|
assert(@ws.workbook.drawings.empty?)
|
|
12
|
-
assert_equal(@ws.drawing, @ws.workbook.drawings.last, "drawing is added to workbook")
|
|
13
|
-
assert(@ws.drawing.anchors.is_a?(Axlsx::SimpleTypedList) && @ws.drawing.anchors.empty?, "anchor list is created and empty")
|
|
14
12
|
end
|
|
15
13
|
|
|
16
14
|
def test_add_chart
|
|
@@ -32,9 +30,13 @@ class TestDrawing < Test::Unit::TestCase
|
|
|
32
30
|
assert_equal(600, image.width)
|
|
33
31
|
assert_equal(400, image.height)
|
|
34
32
|
end
|
|
35
|
-
|
|
33
|
+
def test_add_two_cell_anchor_image
|
|
34
|
+
src = File.dirname(__FILE__) + "/../../examples/image1.jpeg"
|
|
35
|
+
image = @ws.add_image(:image_src => src, :start_at=>[0,0], :end_at => [15,0])
|
|
36
|
+
assert(@ws.drawing.anchors.last.is_a?(Axlsx::TwoCellAnchor))
|
|
37
|
+
assert(image.is_a?(Axlsx::Pic))
|
|
38
|
+
end
|
|
36
39
|
def test_charts
|
|
37
|
-
assert(@ws.drawing.charts.empty?)
|
|
38
40
|
chart = @ws.add_chart(Axlsx::Pie3DChart, :title=>"bob", :start_at=>[0,0], :end_at=>[1,1])
|
|
39
41
|
assert_equal(@ws.drawing.charts.last, chart, "add chart is returned")
|
|
40
42
|
chart = @ws.add_chart(Axlsx::Pie3DChart, :title=>"nancy", :start_at=>[1,5], :end_at=>[5,10])
|
|
@@ -42,23 +44,26 @@ class TestDrawing < Test::Unit::TestCase
|
|
|
42
44
|
end
|
|
43
45
|
|
|
44
46
|
def test_pn
|
|
47
|
+
@ws.add_chart(Axlsx::Pie3DChart)
|
|
45
48
|
assert_equal(@ws.drawing.pn, "drawings/drawing1.xml")
|
|
46
49
|
end
|
|
47
50
|
|
|
48
51
|
def test_rels_pn
|
|
52
|
+
@ws.add_chart(Axlsx::Pie3DChart)
|
|
49
53
|
assert_equal(@ws.drawing.rels_pn, "drawings/_rels/drawing1.xml.rels")
|
|
50
54
|
end
|
|
51
55
|
|
|
52
56
|
def test_rId
|
|
57
|
+
@ws.add_chart(Axlsx::Pie3DChart)
|
|
53
58
|
assert_equal(@ws.drawing.rId, "rId1")
|
|
54
59
|
end
|
|
55
60
|
|
|
56
61
|
def test_index
|
|
62
|
+
@ws.add_chart(Axlsx::Pie3DChart)
|
|
57
63
|
assert_equal(@ws.drawing.index, @ws.workbook.drawings.index(@ws.drawing))
|
|
58
64
|
end
|
|
59
65
|
|
|
60
66
|
def test_relationships
|
|
61
|
-
assert(@ws.drawing.relationships.empty?)
|
|
62
67
|
chart = @ws.add_chart(Axlsx::Pie3DChart, :title=>"bob", :start_at=>[0,0], :end_at=>[1,1])
|
|
63
68
|
assert_equal(@ws.drawing.relationships.size, 1, "adding a chart adds a relationship")
|
|
64
69
|
chart = @ws.add_chart(Axlsx::Pie3DChart, :title=>"nancy", :start_at=>[1,5], :end_at=>[5,10])
|
|
@@ -67,6 +72,7 @@ class TestDrawing < Test::Unit::TestCase
|
|
|
67
72
|
|
|
68
73
|
def test_to_xml
|
|
69
74
|
schema = Nokogiri::XML::Schema(File.open(Axlsx::DRAWING_XSD))
|
|
75
|
+
@ws.add_chart(Axlsx::Pie3DChart)
|
|
70
76
|
doc = Nokogiri::XML(@ws.drawing.to_xml_string)
|
|
71
77
|
errors = []
|
|
72
78
|
schema.validate(doc).each do |error|
|
|
@@ -19,11 +19,6 @@ class TestHyperlink < Test::Unit::TestCase
|
|
|
19
19
|
assert_equal(@hyperlink.href, "http://axlsx.blogspot.com")
|
|
20
20
|
end
|
|
21
21
|
|
|
22
|
-
def test_invalidUrl
|
|
23
|
-
assert_nothing_raised { @hyperlink.invalidUrl = "http://axlsx.blogspot.com" }
|
|
24
|
-
assert_equal(@hyperlink.invalidUrl, "http://axlsx.blogspot.com")
|
|
25
|
-
end
|
|
26
|
-
|
|
27
22
|
def test_tgtFrame
|
|
28
23
|
assert_nothing_raised { @hyperlink.tgtFrame = "http://axlsx.blogspot.com" }
|
|
29
24
|
assert_equal(@hyperlink.tgtFrame, "http://axlsx.blogspot.com")
|
|
@@ -66,4 +61,8 @@ class TestHyperlink < Test::Unit::TestCase
|
|
|
66
61
|
assert_equal(@hyperlink.history, false )
|
|
67
62
|
end
|
|
68
63
|
|
|
64
|
+
def test_to_xml_string
|
|
65
|
+
doc = Nokogiri::XML(@p.workbook.worksheets.first.drawing.to_xml_string)
|
|
66
|
+
assert(doc.xpath("//a:hlinkClick"))
|
|
67
|
+
end
|
|
69
68
|
end
|
|
@@ -5,22 +5,20 @@ class TestLineSeries < Test::Unit::TestCase
|
|
|
5
5
|
def setup
|
|
6
6
|
p = Axlsx::Package.new
|
|
7
7
|
@ws = p.workbook.add_worksheet :name=>"hmmm"
|
|
8
|
-
chart = @ws.
|
|
9
|
-
@series = chart.add_series :data=>[0,1,2], :labels=>["zero", "one", "two"], :title=>"bob"
|
|
8
|
+
chart = @ws.add_chart Axlsx::Line3DChart, :title => "fishery"
|
|
9
|
+
@series = chart.add_series :data=>[0,1,2], :labels=>["zero", "one", "two"], :title=>"bob", :color => "#FF0000"
|
|
10
10
|
end
|
|
11
11
|
|
|
12
12
|
def test_initialize
|
|
13
13
|
assert_equal(@series.title.text, "bob", "series title has been applied")
|
|
14
|
-
assert_equal(@series.
|
|
15
|
-
assert_equal(@series.
|
|
16
|
-
end
|
|
14
|
+
assert_equal(@series.labels.class, Axlsx::AxDataSource)
|
|
15
|
+
assert_equal(@series.data.class, Axlsx::NumDataSource)
|
|
17
16
|
|
|
18
|
-
def test_data
|
|
19
|
-
assert_equal(@series.data, [0,1,2])
|
|
20
17
|
end
|
|
21
|
-
|
|
22
|
-
def
|
|
23
|
-
|
|
18
|
+
|
|
19
|
+
def test_to_xml_string
|
|
20
|
+
doc = Nokogiri::XML(@series.to_xml_string)
|
|
21
|
+
assert(doc.xpath("//srgbClr[@val='#{@series.color}']"))
|
|
24
22
|
end
|
|
25
|
-
|
|
23
|
+
#TODO serialization testing
|
|
26
24
|
end
|
|
@@ -0,0 +1,27 @@
|
|
|
1
|
+
# require 'tc_helper.rb'
|
|
2
|
+
|
|
3
|
+
# class TestNamedAxisData < Test::Unit::TestCase
|
|
4
|
+
|
|
5
|
+
# def setup
|
|
6
|
+
# p = Axlsx::Package.new
|
|
7
|
+
# @ws = p.workbook.add_worksheet
|
|
8
|
+
# @chart = @ws.drawing.add_chart Axlsx::Line3DChart
|
|
9
|
+
# @series = @chart.add_series :data=>[0,1,2]
|
|
10
|
+
# end
|
|
11
|
+
|
|
12
|
+
# def test_initialize
|
|
13
|
+
# assert(@series.data.is_a?Axlsx::SimpleTypedList)
|
|
14
|
+
# assert_equal(@series.data, [0,1,2])
|
|
15
|
+
# end
|
|
16
|
+
|
|
17
|
+
# def test_to_xml_string
|
|
18
|
+
# doc = Nokogiri::XML(@chart.to_xml_string)
|
|
19
|
+
# assert_equal(doc.xpath("//c:val/c:numRef/c:f").size,1)
|
|
20
|
+
# assert_equal(doc.xpath("//c:numCache/c:ptCount[@val='#{@series.data.size}']").size,1)
|
|
21
|
+
# @series.data.each_with_index do |datum, index|
|
|
22
|
+
# assert_equal(doc.xpath("//c:numCache/c:pt[@idx='#{index}']").size,1)
|
|
23
|
+
# assert_equal(doc.xpath("//c:numCache/c:pt/c:v[text()='#{datum}']").size,1)
|
|
24
|
+
# end
|
|
25
|
+
# end
|
|
26
|
+
|
|
27
|
+
# end
|
|
@@ -0,0 +1,31 @@
|
|
|
1
|
+
require 'tc_helper.rb'
|
|
2
|
+
|
|
3
|
+
class TestNumData < Test::Unit::TestCase
|
|
4
|
+
|
|
5
|
+
def setup
|
|
6
|
+
@num_data = Axlsx::NumData.new :data => [1, 2, 3]
|
|
7
|
+
end
|
|
8
|
+
|
|
9
|
+
def test_initialize
|
|
10
|
+
assert_equal(@num_data.format_code, "General")
|
|
11
|
+
end
|
|
12
|
+
|
|
13
|
+
def test_formula_based_cell
|
|
14
|
+
|
|
15
|
+
end
|
|
16
|
+
|
|
17
|
+
def test_format_code
|
|
18
|
+
assert_raise(ArgumentError) {@num_data.format_code = 7}
|
|
19
|
+
assert_nothing_raised {@num_data.format_code = 'foo_bar'}
|
|
20
|
+
end
|
|
21
|
+
|
|
22
|
+
def test_to_xml_string
|
|
23
|
+
str = '<?xml version="1.0" encoding="UTF-8"?>'
|
|
24
|
+
str << '<c:chartSpace xmlns:c="' << Axlsx::XML_NS_C << '">'
|
|
25
|
+
str << @num_data.to_xml_string
|
|
26
|
+
doc = Nokogiri::XML(str)
|
|
27
|
+
assert_equal(doc.xpath("//c:numLit/c:ptCount[@val=3]").size, 1)
|
|
28
|
+
assert_equal(doc.xpath("//c:numLit/c:pt/c:v[text()='1']").size, 1)
|
|
29
|
+
end
|
|
30
|
+
|
|
31
|
+
end
|
|
@@ -0,0 +1,29 @@
|
|
|
1
|
+
require 'tc_helper.rb'
|
|
2
|
+
|
|
3
|
+
class TestNumVal < Test::Unit::TestCase
|
|
4
|
+
|
|
5
|
+
def setup
|
|
6
|
+
@num_val = Axlsx::NumVal.new :v => 1
|
|
7
|
+
end
|
|
8
|
+
|
|
9
|
+
def test_initialize
|
|
10
|
+
assert_equal(@num_val.format_code, "General")
|
|
11
|
+
assert_equal(@num_val.v, "1")
|
|
12
|
+
end
|
|
13
|
+
|
|
14
|
+
def test_format_code
|
|
15
|
+
assert_raise(ArgumentError) {@num_val.format_code = 7}
|
|
16
|
+
assert_nothing_raised {@num_val.format_code = 'foo_bar'}
|
|
17
|
+
end
|
|
18
|
+
|
|
19
|
+
def test_to_xml_string
|
|
20
|
+
str = '<?xml version="1.0" encoding="UTF-8"?>'
|
|
21
|
+
str << '<c:chartSpace xmlns:c="' << Axlsx::XML_NS_C << '">'
|
|
22
|
+
str << @num_val.to_xml_string(0)
|
|
23
|
+
doc = Nokogiri::XML(str)
|
|
24
|
+
# lets see if this works?
|
|
25
|
+
assert_equal(doc.xpath("//c:pt/c:v[text()='1']").size, 1)
|
|
26
|
+
|
|
27
|
+
end
|
|
28
|
+
|
|
29
|
+
end
|
data/test/drawing/tc_pic.rb
CHANGED
|
@@ -6,7 +6,7 @@ class TestPic < Test::Unit::TestCase
|
|
|
6
6
|
@p = Axlsx::Package.new
|
|
7
7
|
ws = @p.workbook.add_worksheet
|
|
8
8
|
@test_img = File.dirname(__FILE__) + "/../../examples/image1.jpeg"
|
|
9
|
-
@image = ws.add_image :image_src => @test_img
|
|
9
|
+
@image = ws.add_image :image_src => @test_img, :hyperlink => 'https://github.com/randym', :tooltip => "What's up doc?"
|
|
10
10
|
end
|
|
11
11
|
|
|
12
12
|
def teardown
|
|
@@ -14,11 +14,31 @@ class TestPic < Test::Unit::TestCase
|
|
|
14
14
|
|
|
15
15
|
def test_initialization
|
|
16
16
|
assert_equal(@p.workbook.images.first, @image)
|
|
17
|
+
assert_equal(@image.file_name, 'image1.jpeg')
|
|
17
18
|
assert_equal(@image.image_src, @test_img)
|
|
18
19
|
end
|
|
19
20
|
|
|
21
|
+
def test_anchor_swapping
|
|
22
|
+
#swap from one cell to two cell when end_at is specified
|
|
23
|
+
assert(@image.anchor.is_a?(Axlsx::OneCellAnchor))
|
|
24
|
+
start_at = @image.anchor.from
|
|
25
|
+
@image.end_at 10,5
|
|
26
|
+
assert(@image.anchor.is_a?(Axlsx::TwoCellAnchor))
|
|
27
|
+
assert_equal(start_at.col, @image.anchor.from.col)
|
|
28
|
+
assert_equal(start_at.row, @image.anchor.from.row)
|
|
29
|
+
assert_equal(10,@image.anchor.to.col)
|
|
30
|
+
assert_equal(5, @image.anchor.to.row)
|
|
31
|
+
|
|
32
|
+
#swap from two cell to one cell when width or height are specified
|
|
33
|
+
@image.width = 200
|
|
34
|
+
assert(@image.anchor.is_a?(Axlsx::OneCellAnchor))
|
|
35
|
+
assert_equal(start_at.col, @image.anchor.from.col)
|
|
36
|
+
assert_equal(start_at.row, @image.anchor.from.row)
|
|
37
|
+
assert_equal(200, @image.width)
|
|
38
|
+
|
|
39
|
+
end
|
|
20
40
|
def test_hyperlink
|
|
21
|
-
assert_equal(@image.hyperlink,
|
|
41
|
+
assert_equal(@image.hyperlink.href, "https://github.com/randym")
|
|
22
42
|
@image.hyperlink = "http://axlsx.blogspot.com"
|
|
23
43
|
assert_equal(@image.hyperlink.href, "http://axlsx.blogspot.com")
|
|
24
44
|
end
|
|
@@ -6,26 +6,22 @@ class TestPie3DChart < Test::Unit::TestCase
|
|
|
6
6
|
p = Axlsx::Package.new
|
|
7
7
|
ws = p.workbook.add_worksheet
|
|
8
8
|
@row = ws.add_row ["one", 1, Time.now]
|
|
9
|
-
@chart = ws.
|
|
9
|
+
@chart = ws.add_chart Axlsx::Pie3DChart, :title => "fishery"
|
|
10
10
|
end
|
|
11
11
|
|
|
12
12
|
def teardown
|
|
13
13
|
end
|
|
14
14
|
|
|
15
15
|
def test_initialization
|
|
16
|
-
assert_equal(@chart.
|
|
17
|
-
assert_equal(@chart.
|
|
16
|
+
assert_equal(@chart.view_3D.rot_x, 30, "view 3d default rot_x incorrect")
|
|
17
|
+
assert_equal(@chart.view_3D.perspective, 30, "view_3d default perspective incorrect")
|
|
18
18
|
assert_equal(@chart.series_type, Axlsx::PieSeries, "series type incorrect")
|
|
19
19
|
end
|
|
20
20
|
|
|
21
21
|
def test_to_xml
|
|
22
22
|
schema = Nokogiri::XML::Schema(File.open(Axlsx::DRAWING_XSD))
|
|
23
23
|
doc = Nokogiri::XML(@chart.to_xml_string)
|
|
24
|
-
errors =
|
|
25
|
-
schema.validate(doc).each do |error|
|
|
26
|
-
errors.push error
|
|
27
|
-
puts error.message
|
|
28
|
-
end
|
|
24
|
+
errors = schema.validate(doc).map {|error| puts error.message; error }
|
|
29
25
|
assert(errors.empty?, "error free validation")
|
|
30
26
|
end
|
|
31
27
|
|
|
@@ -5,30 +5,28 @@ class TestPieSeries < Test::Unit::TestCase
|
|
|
5
5
|
def setup
|
|
6
6
|
p = Axlsx::Package.new
|
|
7
7
|
@ws = p.workbook.add_worksheet :name=>"hmmm"
|
|
8
|
-
chart = @ws.
|
|
9
|
-
@series = chart.add_series :data=>[0,1,2], :labels=>["zero", "one", "two"], :title=>"bob"
|
|
8
|
+
chart = @ws.add_chart Axlsx::Pie3DChart, :title => "fishery"
|
|
9
|
+
@series = chart.add_series :data=>[0,1,2], :labels=>["zero", "one", "two"], :title=>"bob", :colors => ["FF0000", "00FF00", "0000FF"]
|
|
10
10
|
end
|
|
11
11
|
|
|
12
12
|
def test_initialize
|
|
13
13
|
assert_equal(@series.title.text, "bob", "series title has been applied")
|
|
14
|
-
assert_equal(@series.
|
|
15
|
-
assert_equal(@series.
|
|
14
|
+
assert_equal(@series.labels.class, Axlsx::AxDataSource)
|
|
15
|
+
assert_equal(@series.data.class, Axlsx::NumDataSource)
|
|
16
16
|
assert_equal(@series.explosion, nil, "series shape has been applied")
|
|
17
17
|
end
|
|
18
18
|
|
|
19
|
-
def test_data
|
|
20
|
-
assert_equal(@series.data, [0,1,2])
|
|
21
|
-
end
|
|
22
|
-
|
|
23
|
-
def test_labels
|
|
24
|
-
assert_equal(@series.labels, ["zero", "one", "two"])
|
|
25
|
-
|
|
26
|
-
end
|
|
27
|
-
|
|
28
19
|
def test_explosion
|
|
29
20
|
assert_raise(ArgumentError, "require valid explosion") { @series.explosion = :lots }
|
|
30
21
|
assert_nothing_raised("allow valid explosion") { @series.explosion = 20 }
|
|
31
22
|
assert(@series.explosion == 20)
|
|
32
23
|
end
|
|
33
24
|
|
|
25
|
+
def test_to_xml_string
|
|
26
|
+
doc = Nokogiri::XML(@series.to_xml_string)
|
|
27
|
+
assert(doc.xpath("//srgbClr[@val='#{@series.colors[0]}']"))
|
|
28
|
+
|
|
29
|
+
end
|
|
30
|
+
#TODO test unique serialization parts
|
|
31
|
+
|
|
34
32
|
end
|
|
@@ -4,7 +4,7 @@ class TestScatterChart < Test::Unit::TestCase
|
|
|
4
4
|
def setup
|
|
5
5
|
@p = Axlsx::Package.new
|
|
6
6
|
@chart = nil
|
|
7
|
-
|
|
7
|
+
@p.workbook.add_worksheet do |sheet|
|
|
8
8
|
sheet.add_row ["First", 1, 5, 7, 9]
|
|
9
9
|
sheet.add_row ["", 1, 25, 49, 81]
|
|
10
10
|
sheet.add_row ["Second", 5, 2, 14, 9]
|
|
@@ -22,6 +22,11 @@ class TestScatterChart < Test::Unit::TestCase
|
|
|
22
22
|
def teardown
|
|
23
23
|
end
|
|
24
24
|
|
|
25
|
+
def test_scatter_style
|
|
26
|
+
@chart.scatterStyle = :marker
|
|
27
|
+
assert(@chart.scatterStyle == :marker)
|
|
28
|
+
assert_raise(ArgumentError) { @chart.scatterStyle = :buckshot }
|
|
29
|
+
end
|
|
25
30
|
def test_initialization
|
|
26
31
|
assert_equal(@chart.scatterStyle, :lineMarker, "scatterStyle defualt incorrect")
|
|
27
32
|
assert_equal(@chart.series_type, Axlsx::ScatterSeries, "series type incorrect")
|
|
@@ -5,16 +5,17 @@ class TestScatterSeries < Test::Unit::TestCase
|
|
|
5
5
|
def setup
|
|
6
6
|
p = Axlsx::Package.new
|
|
7
7
|
@ws = p.workbook.add_worksheet :name=>"hmmm"
|
|
8
|
-
chart = @ws.
|
|
9
|
-
@series = chart.add_series :xData=>[1,2,4], :yData=>[1,3,9], :title=>"exponents"
|
|
8
|
+
@chart = @ws.add_chart Axlsx::ScatterChart, :title => "Scatter Chart"
|
|
9
|
+
@series = @chart.add_series :xData=>[1,2,4], :yData=>[1,3,9], :title=>"exponents", :color => 'FF0000'
|
|
10
10
|
end
|
|
11
11
|
|
|
12
12
|
def test_initialize
|
|
13
13
|
assert_equal(@series.title.text, "exponents", "series title has been applied")
|
|
14
14
|
end
|
|
15
15
|
|
|
16
|
-
def
|
|
17
|
-
|
|
18
|
-
assert_equal(@series.
|
|
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,4)
|
|
19
19
|
end
|
|
20
|
+
|
|
20
21
|
end
|
data/test/drawing/tc_series.rb
CHANGED
|
@@ -5,7 +5,7 @@ class TestSeries < Test::Unit::TestCase
|
|
|
5
5
|
def setup
|
|
6
6
|
p = Axlsx::Package.new
|
|
7
7
|
@ws = p.workbook.add_worksheet :name=>"hmmm"
|
|
8
|
-
chart = @ws.
|
|
8
|
+
chart = @ws.add_chart Axlsx::Chart, :title => "fishery"
|
|
9
9
|
@series = chart.add_series :title=>"bob"
|
|
10
10
|
end
|
|
11
11
|
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
require 'tc_helper.rb'
|
|
2
|
+
|
|
3
|
+
class TestStrData < Test::Unit::TestCase
|
|
4
|
+
|
|
5
|
+
def setup
|
|
6
|
+
@str_data = Axlsx::StrData.new :data => ["1", "2", "3"]
|
|
7
|
+
end
|
|
8
|
+
|
|
9
|
+
def test_to_xml_string_strLit
|
|
10
|
+
str = '<?xml version="1.0" encoding="UTF-8"?>'
|
|
11
|
+
str << '<c:chartSpace xmlns:c="' << Axlsx::XML_NS_C << '">'
|
|
12
|
+
str << @str_data.to_xml_string
|
|
13
|
+
doc = Nokogiri::XML(str)
|
|
14
|
+
assert_equal(doc.xpath("//c:strLit/c:ptCount[@val=3]").size, 1)
|
|
15
|
+
assert_equal(doc.xpath("//c:strLit/c:pt/c:v[text()='1']").size, 1)
|
|
16
|
+
end
|
|
17
|
+
|
|
18
|
+
end
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
require 'tc_helper.rb'
|
|
2
|
+
|
|
3
|
+
class TestStrVal < Test::Unit::TestCase
|
|
4
|
+
|
|
5
|
+
def setup
|
|
6
|
+
@str_val = Axlsx::StrVal.new :v => "1"
|
|
7
|
+
end
|
|
8
|
+
|
|
9
|
+
def test_initialize
|
|
10
|
+
assert_equal(@str_val.v, "1")
|
|
11
|
+
end
|
|
12
|
+
|
|
13
|
+
def test_to_xml_string
|
|
14
|
+
str = '<?xml version="1.0" encoding="UTF-8"?>'
|
|
15
|
+
str << '<c:chartSpace xmlns:c="' << Axlsx::XML_NS_C << '">'
|
|
16
|
+
str << @str_val.to_xml_string(0)
|
|
17
|
+
doc = Nokogiri::XML(str)
|
|
18
|
+
assert_equal(doc.xpath("//c:pt/c:v[text()='1']").size, 1)
|
|
19
|
+
end
|
|
20
|
+
|
|
21
|
+
end
|
data/test/drawing/tc_title.rb
CHANGED
|
@@ -1,3 +1,5 @@
|
|
|
1
|
+
$LOAD_PATH.unshift "#{File.dirname(__FILE__)}/../"
|
|
2
|
+
|
|
1
3
|
require 'tc_helper.rb'
|
|
2
4
|
|
|
3
5
|
class TestTitle < Test::Unit::TestCase
|
|
@@ -30,4 +32,18 @@ class TestTitle < Test::Unit::TestCase
|
|
|
30
32
|
assert(@title.text == "one")
|
|
31
33
|
end
|
|
32
34
|
|
|
35
|
+
def test_to_xml_string_text
|
|
36
|
+
@chart.title.text = 'foo'
|
|
37
|
+
doc = Nokogiri::XML(@chart.to_xml_string)
|
|
38
|
+
assert_equal(1, doc.xpath('//c:rich').size)
|
|
39
|
+
assert_equal(1, doc.xpath("//a:t[text()='foo']").size)
|
|
40
|
+
end
|
|
41
|
+
|
|
42
|
+
def test_to_xml_string_cell
|
|
43
|
+
@chart.title.cell = @row.cells.first
|
|
44
|
+
doc = Nokogiri::XML(@chart.to_xml_string)
|
|
45
|
+
assert_equal(1, doc.xpath('//c:strCache').size)
|
|
46
|
+
assert_equal(1, doc.xpath('//c:v[text()="one"]').size)
|
|
47
|
+
end
|
|
48
|
+
|
|
33
49
|
end
|
|
@@ -5,8 +5,7 @@ class TestTwoCellAnchor < Test::Unit::TestCase
|
|
|
5
5
|
def setup
|
|
6
6
|
p = Axlsx::Package.new
|
|
7
7
|
@ws = p.workbook.add_worksheet
|
|
8
|
-
|
|
9
|
-
title = Axlsx::Title.new
|
|
8
|
+
@ws.add_row ["one", 1, Time.now]
|
|
10
9
|
chart = @ws.add_chart Axlsx::Bar3DChart
|
|
11
10
|
@anchor = chart.graphic_frame.anchor
|
|
12
11
|
end
|
|
@@ -23,7 +22,7 @@ class TestTwoCellAnchor < Test::Unit::TestCase
|
|
|
23
22
|
|
|
24
23
|
|
|
25
24
|
def test_options
|
|
26
|
-
assert_raise(ArgumentError, 'invalid start_at') { @ws.add_chart Axlsx::Chart, :start_at=>
|
|
25
|
+
assert_raise(ArgumentError, 'invalid start_at') { @ws.add_chart Axlsx::Chart, :start_at=>"1" }
|
|
27
26
|
assert_raise(ArgumentError, 'invalid end_at') { @ws.add_chart Axlsx::Chart, :start_at=>[1,2], :end_at => ["a", 4] }
|
|
28
27
|
# this is actually raised in the graphic frame
|
|
29
28
|
assert_raise(ArgumentError, 'invalid Chart') { @ws.add_chart Axlsx::TwoCellAnchor }
|
data/test/drawing/tc_view_3D.rb
CHANGED
|
@@ -9,33 +9,33 @@ class TestView3D < Test::Unit::TestCase
|
|
|
9
9
|
end
|
|
10
10
|
|
|
11
11
|
def test_options
|
|
12
|
-
v = Axlsx::View3D.new :
|
|
13
|
-
assert_equal(v.
|
|
14
|
-
assert_equal(v.
|
|
15
|
-
assert_equal(v.
|
|
16
|
-
assert_equal(v.
|
|
17
|
-
assert_equal(v.
|
|
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
18
|
assert_equal(v.perspective, 10)
|
|
19
19
|
end
|
|
20
20
|
|
|
21
|
-
def
|
|
22
|
-
assert_raise(ArgumentError) {@view.
|
|
23
|
-
assert_nothing_raised {@view.
|
|
21
|
+
def test_rot_x
|
|
22
|
+
assert_raise(ArgumentError) {@view.rot_x = "bob"}
|
|
23
|
+
assert_nothing_raised {@view.rot_x = -90}
|
|
24
24
|
end
|
|
25
25
|
|
|
26
|
-
def
|
|
27
|
-
assert_raise(ArgumentError) {@view.
|
|
28
|
-
assert_nothing_raised {@view.
|
|
26
|
+
def test_rot_y
|
|
27
|
+
assert_raise(ArgumentError) {@view.rot_y = "bob"}
|
|
28
|
+
assert_nothing_raised {@view.rot_y = 90}
|
|
29
29
|
end
|
|
30
30
|
|
|
31
|
-
def
|
|
32
|
-
assert_raise(ArgumentError) {@view.
|
|
33
|
-
assert_nothing_raised {@view.
|
|
31
|
+
def test_h_percent
|
|
32
|
+
assert_raise(ArgumentError) {@view.h_percent = "bob"}
|
|
33
|
+
assert_nothing_raised {@view.h_percent = "500%"}
|
|
34
34
|
end
|
|
35
35
|
|
|
36
|
-
def
|
|
37
|
-
assert_raise(ArgumentError) {@view.
|
|
38
|
-
assert_nothing_raised {@view.
|
|
36
|
+
def test_depth_percent
|
|
37
|
+
assert_raise(ArgumentError) {@view.depth_percent = "bob"}
|
|
38
|
+
assert_nothing_raised {@view.depth_percent = "20%"}
|
|
39
39
|
end
|
|
40
40
|
|
|
41
41
|
|