caxlsx 3.0.4 → 3.2.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- checksums.yaml +4 -4
- data/.yardopts +9 -9
- data/.yardopts_guide +18 -18
- data/CHANGELOG.md +354 -334
- data/LICENSE +21 -21
- data/README.md +168 -170
- data/Rakefile +29 -29
- data/examples/generate.rb +15 -15
- data/lib/axlsx/content_type/abstract_content_type.rb +32 -32
- data/lib/axlsx/content_type/content_type.rb +26 -26
- data/lib/axlsx/content_type/default.rb +25 -25
- data/lib/axlsx/content_type/override.rb +25 -25
- data/lib/axlsx/doc_props/app.rb +235 -235
- data/lib/axlsx/doc_props/core.rb +39 -39
- data/lib/axlsx/drawing/area_chart.rb +99 -99
- data/lib/axlsx/drawing/area_series.rb +110 -110
- data/lib/axlsx/drawing/ax_data_source.rb +26 -26
- data/lib/axlsx/drawing/axes.rb +61 -61
- data/lib/axlsx/drawing/axis.rb +190 -190
- data/lib/axlsx/drawing/bar_3D_chart.rb +148 -151
- data/lib/axlsx/drawing/bar_chart.rb +138 -143
- data/lib/axlsx/drawing/bar_series.rb +97 -80
- data/lib/axlsx/drawing/bubble_chart.rb +59 -59
- data/lib/axlsx/drawing/bubble_series.rb +63 -63
- data/lib/axlsx/drawing/cat_axis.rb +85 -85
- data/lib/axlsx/drawing/chart.rb +276 -276
- data/lib/axlsx/drawing/d_lbls.rb +90 -90
- data/lib/axlsx/drawing/drawing.rb +167 -167
- data/lib/axlsx/drawing/graphic_frame.rb +54 -54
- data/lib/axlsx/drawing/hyperlink.rb +100 -100
- data/lib/axlsx/drawing/line_3D_chart.rb +68 -68
- data/lib/axlsx/drawing/line_chart.rb +99 -99
- data/lib/axlsx/drawing/line_series.rb +110 -110
- data/lib/axlsx/drawing/marker.rb +84 -84
- data/lib/axlsx/drawing/num_data.rb +52 -52
- data/lib/axlsx/drawing/num_data_source.rb +62 -62
- data/lib/axlsx/drawing/num_val.rb +34 -34
- data/lib/axlsx/drawing/one_cell_anchor.rb +99 -99
- data/lib/axlsx/drawing/pic.rb +211 -211
- data/lib/axlsx/drawing/picture_locking.rb +42 -42
- data/lib/axlsx/drawing/pie_3D_chart.rb +47 -47
- data/lib/axlsx/drawing/pie_series.rb +74 -74
- data/lib/axlsx/drawing/scaling.rb +60 -60
- data/lib/axlsx/drawing/scatter_chart.rb +74 -74
- data/lib/axlsx/drawing/scatter_series.rb +129 -98
- data/lib/axlsx/drawing/ser_axis.rb +45 -45
- data/lib/axlsx/drawing/series.rb +69 -69
- data/lib/axlsx/drawing/series_title.rb +25 -25
- data/lib/axlsx/drawing/str_data.rb +42 -42
- data/lib/axlsx/drawing/str_val.rb +34 -34
- data/lib/axlsx/drawing/title.rb +97 -97
- data/lib/axlsx/drawing/two_cell_anchor.rb +97 -97
- data/lib/axlsx/drawing/val_axis.rb +37 -37
- data/lib/axlsx/drawing/view_3D.rb +115 -115
- data/lib/axlsx/drawing/vml_drawing.rb +42 -42
- data/lib/axlsx/drawing/vml_shape.rb +66 -66
- data/lib/axlsx/package.rb +388 -363
- data/lib/axlsx/rels/relationship.rb +130 -130
- data/lib/axlsx/rels/relationships.rb +32 -32
- data/lib/axlsx/stylesheet/border.rb +73 -71
- data/lib/axlsx/stylesheet/border_pr.rb +71 -71
- data/lib/axlsx/stylesheet/cell_alignment.rb +132 -132
- data/lib/axlsx/stylesheet/cell_protection.rb +41 -41
- data/lib/axlsx/stylesheet/cell_style.rb +72 -72
- data/lib/axlsx/stylesheet/color.rb +76 -76
- data/lib/axlsx/stylesheet/dxf.rb +79 -79
- data/lib/axlsx/stylesheet/fill.rb +35 -35
- data/lib/axlsx/stylesheet/font.rb +156 -156
- data/lib/axlsx/stylesheet/gradient_fill.rb +103 -103
- data/lib/axlsx/stylesheet/gradient_stop.rb +37 -37
- data/lib/axlsx/stylesheet/num_fmt.rb +86 -86
- data/lib/axlsx/stylesheet/pattern_fill.rb +73 -73
- data/lib/axlsx/stylesheet/styles.rb +494 -420
- data/lib/axlsx/stylesheet/table_style.rb +54 -54
- data/lib/axlsx/stylesheet/table_style_element.rb +77 -77
- data/lib/axlsx/stylesheet/table_styles.rb +46 -46
- data/lib/axlsx/stylesheet/xf.rb +147 -147
- data/lib/axlsx/util/accessors.rb +64 -64
- data/lib/axlsx/util/constants.rb +410 -401
- data/lib/axlsx/util/mime_type_utils.rb +11 -11
- data/lib/axlsx/util/options_parser.rb +16 -16
- data/lib/axlsx/util/serialized_attributes.rb +89 -89
- data/lib/axlsx/util/simple_typed_list.rb +179 -179
- data/lib/axlsx/util/storage.rb +146 -146
- data/lib/axlsx/util/validators.rb +312 -312
- data/lib/axlsx/util/zip_command.rb +73 -73
- data/lib/axlsx/version.rb +5 -5
- data/lib/axlsx/workbook/defined_name.rb +128 -128
- data/lib/axlsx/workbook/defined_names.rb +21 -21
- data/lib/axlsx/workbook/shared_strings_table.rb +77 -77
- data/lib/axlsx/workbook/workbook.rb +395 -370
- data/lib/axlsx/workbook/workbook_view.rb +80 -80
- data/lib/axlsx/workbook/workbook_views.rb +22 -22
- data/lib/axlsx/workbook/worksheet/auto_filter/auto_filter.rb +77 -77
- data/lib/axlsx/workbook/worksheet/auto_filter/filter_column.rb +94 -94
- data/lib/axlsx/workbook/worksheet/auto_filter/filters.rb +244 -244
- data/lib/axlsx/workbook/worksheet/break.rb +35 -35
- data/lib/axlsx/workbook/worksheet/cell.rb +506 -505
- data/lib/axlsx/workbook/worksheet/cell_serializer.rb +164 -164
- data/lib/axlsx/workbook/worksheet/cfvo.rb +60 -60
- data/lib/axlsx/workbook/worksheet/cfvos.rb +18 -18
- data/lib/axlsx/workbook/worksheet/col.rb +145 -145
- data/lib/axlsx/workbook/worksheet/col_breaks.rb +35 -35
- data/lib/axlsx/workbook/worksheet/color_scale.rb +110 -110
- data/lib/axlsx/workbook/worksheet/cols.rb +23 -23
- data/lib/axlsx/workbook/worksheet/comment.rb +91 -91
- data/lib/axlsx/workbook/worksheet/comments.rb +82 -82
- data/lib/axlsx/workbook/worksheet/conditional_formatting.rb +82 -82
- data/lib/axlsx/workbook/worksheet/conditional_formatting_rule.rb +220 -220
- data/lib/axlsx/workbook/worksheet/conditional_formattings.rb +25 -25
- data/lib/axlsx/workbook/worksheet/data_bar.rb +129 -129
- data/lib/axlsx/workbook/worksheet/data_validation.rb +246 -246
- data/lib/axlsx/workbook/worksheet/data_validations.rb +28 -28
- data/lib/axlsx/workbook/worksheet/date_time_converter.rb +30 -30
- data/lib/axlsx/workbook/worksheet/dimension.rb +64 -64
- data/lib/axlsx/workbook/worksheet/header_footer.rb +52 -52
- data/lib/axlsx/workbook/worksheet/icon_set.rb +81 -81
- data/lib/axlsx/workbook/worksheet/merged_cells.rb +37 -37
- data/lib/axlsx/workbook/worksheet/outline_pr.rb +33 -33
- data/lib/axlsx/workbook/worksheet/page_margins.rb +97 -97
- data/lib/axlsx/workbook/worksheet/page_set_up_pr.rb +44 -44
- data/lib/axlsx/workbook/worksheet/page_setup.rb +240 -240
- data/lib/axlsx/workbook/worksheet/pane.rb +139 -139
- data/lib/axlsx/workbook/worksheet/pivot_table.rb +296 -289
- data/lib/axlsx/workbook/worksheet/pivot_table_cache_definition.rb +66 -66
- data/lib/axlsx/workbook/worksheet/pivot_tables.rb +24 -24
- data/lib/axlsx/workbook/worksheet/print_options.rb +39 -39
- data/lib/axlsx/workbook/worksheet/protected_range.rb +47 -47
- data/lib/axlsx/workbook/worksheet/protected_ranges.rb +37 -37
- data/lib/axlsx/workbook/worksheet/rich_text.rb +55 -55
- data/lib/axlsx/workbook/worksheet/rich_text_run.rb +250 -250
- data/lib/axlsx/workbook/worksheet/row.rb +164 -162
- data/lib/axlsx/workbook/worksheet/row_breaks.rb +33 -33
- data/lib/axlsx/workbook/worksheet/selection.rb +101 -101
- data/lib/axlsx/workbook/worksheet/sheet_calc_pr.rb +29 -29
- data/lib/axlsx/workbook/worksheet/sheet_data.rb +27 -27
- data/lib/axlsx/workbook/worksheet/sheet_pr.rb +87 -87
- data/lib/axlsx/workbook/worksheet/sheet_protection.rb +118 -118
- data/lib/axlsx/workbook/worksheet/sheet_view.rb +213 -213
- data/lib/axlsx/workbook/worksheet/table.rb +102 -102
- data/lib/axlsx/workbook/worksheet/table_style_info.rb +49 -49
- data/lib/axlsx/workbook/worksheet/tables.rb +34 -34
- data/lib/axlsx/workbook/worksheet/worksheet.rb +786 -764
- data/lib/axlsx/workbook/worksheet/worksheet_comments.rb +58 -58
- data/lib/axlsx/workbook/worksheet/worksheet_drawing.rb +58 -58
- data/lib/axlsx/workbook/worksheet/worksheet_hyperlink.rb +74 -74
- data/lib/axlsx/workbook/worksheet/worksheet_hyperlinks.rb +38 -38
- data/lib/axlsx.rb +185 -170
- data/lib/caxlsx.rb +2 -2
- data/lib/schema/dc.xsd +118 -118
- data/lib/schema/dcmitype.xsd +51 -51
- data/lib/schema/dcterms.xsd +331 -331
- data/lib/schema/dml-chartDrawing.xsd +146 -146
- data/lib/schema/dml-compatibility.xsd +14 -14
- data/lib/schema/dml-lockedCanvas.xsd +11 -11
- data/lib/schema/dml-main.xsd +3048 -3048
- data/lib/schema/dml-picture.xsd +23 -23
- data/lib/schema/dml-spreadsheetDrawing.xsd +185 -185
- data/lib/schema/dml-wordprocessingDrawing.xsd +185 -185
- data/lib/schema/shared-additionalCharacteristics.xsd +28 -28
- data/lib/schema/shared-bibliography.xsd +144 -144
- data/lib/schema/shared-commonSimpleTypes.xsd +166 -166
- data/lib/schema/shared-customXmlDataProperties.xsd +25 -25
- data/lib/schema/shared-customXmlSchemaProperties.xsd +18 -18
- data/lib/schema/shared-documentPropertiesCustom.xsd +59 -59
- data/lib/schema/shared-documentPropertiesExtended.xsd +56 -56
- data/lib/schema/shared-documentPropertiesVariantTypes.xsd +195 -195
- data/lib/schema/shared-relationshipReference.xsd +25 -25
- data/lib/schema/vml-main.xsd +569 -569
- data/lib/schema/vml-officeDrawing.xsd +509 -509
- data/lib/schema/vml-presentationDrawing.xsd +12 -12
- data/lib/schema/vml-spreadsheetDrawing.xsd +108 -108
- data/lib/schema/vml-wordprocessingDrawing.xsd +96 -96
- data/lib/schema/xml.xsd +116 -116
- data/test/benchmark.rb +72 -72
- data/test/content_type/tc_content_type.rb +76 -76
- data/test/content_type/tc_default.rb +16 -16
- data/test/content_type/tc_override.rb +14 -14
- data/test/doc_props/tc_app.rb +43 -43
- data/test/doc_props/tc_core.rb +42 -42
- data/test/drawing/tc_area_chart.rb +39 -39
- data/test/drawing/tc_area_series.rb +71 -71
- data/test/drawing/tc_axes.rb +7 -7
- data/test/drawing/tc_axis.rb +112 -112
- data/test/drawing/tc_bar_3D_chart.rb +86 -71
- data/test/drawing/tc_bar_chart.rb +86 -71
- data/test/drawing/tc_bar_series.rb +46 -37
- data/test/drawing/tc_bubble_chart.rb +44 -44
- data/test/drawing/tc_bubble_series.rb +21 -21
- data/test/drawing/tc_cat_axis.rb +31 -31
- data/test/drawing/tc_cat_axis_data.rb +27 -27
- data/test/drawing/tc_chart.rb +123 -123
- data/test/drawing/tc_d_lbls.rb +57 -57
- data/test/drawing/tc_data_source.rb +23 -23
- data/test/drawing/tc_drawing.rb +80 -80
- data/test/drawing/tc_graphic_frame.rb +27 -27
- data/test/drawing/tc_hyperlink.rb +64 -64
- data/test/drawing/tc_line_3d_chart.rb +47 -47
- data/test/drawing/tc_line_chart.rb +39 -39
- data/test/drawing/tc_line_series.rb +71 -71
- data/test/drawing/tc_marker.rb +44 -44
- data/test/drawing/tc_named_axis_data.rb +27 -27
- data/test/drawing/tc_num_data.rb +31 -31
- data/test/drawing/tc_num_val.rb +29 -29
- data/test/drawing/tc_one_cell_anchor.rb +66 -66
- data/test/drawing/tc_pic.rb +103 -103
- data/test/drawing/tc_picture_locking.rb +72 -72
- data/test/drawing/tc_pie_3D_chart.rb +28 -28
- data/test/drawing/tc_pie_series.rb +33 -33
- data/test/drawing/tc_scaling.rb +36 -36
- data/test/drawing/tc_scatter_chart.rb +48 -48
- data/test/drawing/tc_scatter_series.rb +74 -56
- data/test/drawing/tc_ser_axis.rb +31 -31
- data/test/drawing/tc_series.rb +23 -23
- data/test/drawing/tc_series_title.rb +54 -54
- data/test/drawing/tc_str_data.rb +18 -18
- data/test/drawing/tc_str_val.rb +30 -30
- data/test/drawing/tc_title.rb +70 -70
- data/test/drawing/tc_two_cell_anchor.rb +36 -36
- data/test/drawing/tc_val_axis.rb +24 -24
- data/test/drawing/tc_view_3D.rb +54 -54
- data/test/drawing/tc_vml_drawing.rb +25 -25
- data/test/drawing/tc_vml_shape.rb +106 -106
- data/test/profile.rb +24 -24
- data/test/rels/tc_relationship.rb +52 -52
- data/test/rels/tc_relationships.rb +37 -37
- data/test/stylesheet/tc_border.rb +37 -37
- data/test/stylesheet/tc_border_pr.rb +32 -32
- data/test/stylesheet/tc_cell_alignment.rb +81 -81
- data/test/stylesheet/tc_cell_protection.rb +29 -29
- data/test/stylesheet/tc_cell_style.rb +57 -57
- data/test/stylesheet/tc_color.rb +43 -43
- data/test/stylesheet/tc_dxf.rb +81 -81
- data/test/stylesheet/tc_fill.rb +18 -18
- data/test/stylesheet/tc_font.rb +133 -133
- data/test/stylesheet/tc_gradient_fill.rb +72 -72
- data/test/stylesheet/tc_gradient_stop.rb +31 -31
- data/test/stylesheet/tc_num_fmt.rb +30 -30
- data/test/stylesheet/tc_pattern_fill.rb +43 -43
- data/test/stylesheet/tc_styles.rb +309 -261
- data/test/stylesheet/tc_table_style.rb +44 -44
- data/test/stylesheet/tc_table_style_element.rb +45 -45
- data/test/stylesheet/tc_table_styles.rb +29 -29
- data/test/stylesheet/tc_xf.rb +120 -120
- data/test/tc_axlsx.rb +109 -109
- data/test/tc_helper.rb +10 -12
- data/test/tc_package.rb +317 -264
- data/test/util/tc_mime_type_utils.rb +13 -13
- data/test/util/tc_serialized_attributes.rb +19 -19
- data/test/util/tc_simple_typed_list.rb +77 -77
- data/test/util/tc_validators.rb +210 -210
- data/test/workbook/tc_defined_name.rb +49 -49
- data/test/workbook/tc_shared_strings_table.rb +59 -59
- data/test/workbook/tc_workbook.rb +165 -160
- data/test/workbook/tc_workbook_view.rb +50 -50
- data/test/workbook/worksheet/auto_filter/tc_auto_filter.rb +38 -38
- data/test/workbook/worksheet/auto_filter/tc_filter_column.rb +76 -76
- data/test/workbook/worksheet/auto_filter/tc_filters.rb +50 -50
- data/test/workbook/worksheet/tc_break.rb +49 -49
- data/test/workbook/worksheet/tc_cell.rb +465 -453
- data/test/workbook/worksheet/tc_cfvo.rb +31 -31
- data/test/workbook/worksheet/tc_col.rb +93 -93
- data/test/workbook/worksheet/tc_color_scale.rb +58 -58
- data/test/workbook/worksheet/tc_comment.rb +72 -72
- data/test/workbook/worksheet/tc_comments.rb +57 -57
- data/test/workbook/worksheet/tc_conditional_formatting.rb +224 -224
- data/test/workbook/worksheet/tc_data_bar.rb +46 -46
- data/test/workbook/worksheet/tc_data_validation.rb +265 -265
- data/test/workbook/worksheet/tc_date_time_converter.rb +124 -124
- data/test/workbook/worksheet/tc_header_footer.rb +151 -151
- data/test/workbook/worksheet/tc_icon_set.rb +45 -45
- data/test/workbook/worksheet/tc_outline_pr.rb +19 -19
- data/test/workbook/worksheet/tc_page_margins.rb +97 -97
- data/test/workbook/worksheet/tc_page_set_up_pr.rb +15 -15
- data/test/workbook/worksheet/tc_page_setup.rb +143 -143
- data/test/workbook/worksheet/tc_pane.rb +54 -54
- data/test/workbook/worksheet/tc_pivot_table.rb +180 -135
- data/test/workbook/worksheet/tc_pivot_table_cache_definition.rb +62 -54
- data/test/workbook/worksheet/tc_print_options.rb +72 -72
- data/test/workbook/worksheet/tc_protected_range.rb +17 -17
- data/test/workbook/worksheet/tc_rich_text.rb +44 -44
- data/test/workbook/worksheet/tc_rich_text_run.rb +173 -173
- data/test/workbook/worksheet/tc_row.rb +160 -139
- data/test/workbook/worksheet/tc_selection.rb +55 -55
- data/test/workbook/worksheet/tc_sheet_calc_pr.rb +18 -18
- data/test/workbook/worksheet/tc_sheet_format_pr.rb +88 -88
- data/test/workbook/worksheet/tc_sheet_pr.rb +49 -49
- data/test/workbook/worksheet/tc_sheet_protection.rb +117 -117
- data/test/workbook/worksheet/tc_sheet_view.rb +214 -214
- data/test/workbook/worksheet/tc_table.rb +77 -67
- data/test/workbook/worksheet/tc_table_style_info.rb +53 -53
- data/test/workbook/worksheet/tc_worksheet.rb +632 -601
- data/test/workbook/worksheet/tc_worksheet_hyperlink.rb +55 -55
- metadata +11 -11
data/test/drawing/tc_chart.rb
CHANGED
|
@@ -1,123 +1,123 @@
|
|
|
1
|
-
require 'tc_helper.rb'
|
|
2
|
-
|
|
3
|
-
class TestChart < 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", :bg_color => "000000"
|
|
10
|
-
end
|
|
11
|
-
|
|
12
|
-
def teardown
|
|
13
|
-
end
|
|
14
|
-
|
|
15
|
-
def test_initialization
|
|
16
|
-
assert_equal(@p.workbook.charts.last,@chart, "the chart is in the workbook")
|
|
17
|
-
assert_equal(@chart.title.text, "fishery", "the title option has been applied")
|
|
18
|
-
assert((@chart.series.is_a?(Axlsx::SimpleTypedList) && @chart.series.empty?), "The series is initialized and empty")
|
|
19
|
-
end
|
|
20
|
-
|
|
21
|
-
def test_title
|
|
22
|
-
@chart.title.text = 'wowzer'
|
|
23
|
-
assert_equal(@chart.title.text, "wowzer", "the title text via a string")
|
|
24
|
-
assert_equal(@chart.title.cell, nil, "the title cell is nil as we set the title with text.")
|
|
25
|
-
@chart.title = @row.cells.first
|
|
26
|
-
assert_equal(@chart.title.text, "one", "the title text was set via cell reference")
|
|
27
|
-
assert_equal(@chart.title.cell, @row.cells.first)
|
|
28
|
-
end
|
|
29
|
-
|
|
30
|
-
def test_style
|
|
31
|
-
assert_raise(ArgumentError) { @chart.style = 49 }
|
|
32
|
-
assert_nothing_raised { @chart.style = 2 }
|
|
33
|
-
assert_equal(@chart.style, 2)
|
|
34
|
-
end
|
|
35
|
-
|
|
36
|
-
def test_to_from_marker_access
|
|
37
|
-
assert(@chart.to.is_a?(Axlsx::Marker))
|
|
38
|
-
assert(@chart.from.is_a?(Axlsx::Marker))
|
|
39
|
-
end
|
|
40
|
-
|
|
41
|
-
def test_bg_color
|
|
42
|
-
assert_raise(ArgumentError) { @chart.bg_color = 2 }
|
|
43
|
-
assert_nothing_raised { @chart.bg_color = "FFFFFF" }
|
|
44
|
-
assert_equal(@chart.bg_color, "FFFFFF")
|
|
45
|
-
|
|
46
|
-
end
|
|
47
|
-
|
|
48
|
-
def test_title_size
|
|
49
|
-
assert_raise(ArgumentError) { @chart.title_size = 2 }
|
|
50
|
-
assert_nothing_raised { @chart.title_size = "100" }
|
|
51
|
-
assert_equal(@chart.title.text_size, "100")
|
|
52
|
-
end
|
|
53
|
-
|
|
54
|
-
def test_vary_colors
|
|
55
|
-
assert_equal(true, @chart.vary_colors)
|
|
56
|
-
assert_raise(ArgumentError) { @chart.vary_colors = 7 }
|
|
57
|
-
assert_nothing_raised { @chart.vary_colors = false }
|
|
58
|
-
assert_equal(false, @chart.vary_colors)
|
|
59
|
-
end
|
|
60
|
-
|
|
61
|
-
def test_display_blanks_as
|
|
62
|
-
assert_equal(:gap, @chart.display_blanks_as, "default is not :gap")
|
|
63
|
-
assert_raise(ArgumentError, "did not validate possible values") { @chart.display_blanks_as = :hole }
|
|
64
|
-
assert_nothing_raised { @chart.display_blanks_as = :zero }
|
|
65
|
-
assert_nothing_raised { @chart.display_blanks_as = :span }
|
|
66
|
-
assert_equal(:span, @chart.display_blanks_as)
|
|
67
|
-
end
|
|
68
|
-
|
|
69
|
-
def test_start_at
|
|
70
|
-
@chart.start_at 15, 25
|
|
71
|
-
assert_equal(@chart.graphic_frame.anchor.from.col, 15)
|
|
72
|
-
assert_equal(@chart.graphic_frame.anchor.from.row, 25)
|
|
73
|
-
@chart.start_at @row.cells.first
|
|
74
|
-
assert_equal(@chart.graphic_frame.anchor.from.col, 0)
|
|
75
|
-
assert_equal(@chart.graphic_frame.anchor.from.row, 0)
|
|
76
|
-
@chart.start_at [5,6]
|
|
77
|
-
assert_equal(@chart.graphic_frame.anchor.from.col, 5)
|
|
78
|
-
assert_equal(@chart.graphic_frame.anchor.from.row, 6)
|
|
79
|
-
|
|
80
|
-
end
|
|
81
|
-
|
|
82
|
-
def test_end_at
|
|
83
|
-
@chart.end_at 25, 90
|
|
84
|
-
assert_equal(@chart.graphic_frame.anchor.to.col, 25)
|
|
85
|
-
assert_equal(@chart.graphic_frame.anchor.to.row, 90)
|
|
86
|
-
@chart.end_at @row.cells.last
|
|
87
|
-
assert_equal(@chart.graphic_frame.anchor.to.col, 2)
|
|
88
|
-
assert_equal(@chart.graphic_frame.anchor.to.row, 0)
|
|
89
|
-
@chart.end_at [10,11]
|
|
90
|
-
assert_equal(@chart.graphic_frame.anchor.to.col, 10)
|
|
91
|
-
assert_equal(@chart.graphic_frame.anchor.to.row, 11)
|
|
92
|
-
|
|
93
|
-
end
|
|
94
|
-
|
|
95
|
-
def test_add_series
|
|
96
|
-
s = @chart.add_series :data=>[0,1,2,3], :labels => ["one", 1, "anything"], :title=>"bob"
|
|
97
|
-
assert_equal(@chart.series.last, s, "series has been added to chart series collection")
|
|
98
|
-
assert_equal(s.title.text, "bob", "series title has been applied")
|
|
99
|
-
end
|
|
100
|
-
|
|
101
|
-
def test_pn
|
|
102
|
-
assert_equal(@chart.pn, "charts/chart1.xml")
|
|
103
|
-
end
|
|
104
|
-
|
|
105
|
-
def test_d_lbls
|
|
106
|
-
assert_equal(nil, @chart.instance_values[:d_lbls])
|
|
107
|
-
@chart.d_lbls.d_lbl_pos = :t
|
|
108
|
-
assert(@chart.d_lbls.is_a?(Axlsx::DLbls), 'DLbls instantiated on access')
|
|
109
|
-
end
|
|
110
|
-
|
|
111
|
-
def test_to_xml_string
|
|
112
|
-
schema = Nokogiri::XML::Schema(File.open(Axlsx::DRAWING_XSD))
|
|
113
|
-
doc = Nokogiri::XML(@chart.to_xml_string)
|
|
114
|
-
errors = schema.validate(doc).map { |error| puts error.message; error }
|
|
115
|
-
assert(errors.empty?, "error free validation")
|
|
116
|
-
end
|
|
117
|
-
|
|
118
|
-
def test_to_xml_string_for_display_blanks_as
|
|
119
|
-
@chart.display_blanks_as = :span
|
|
120
|
-
doc = Nokogiri::XML(@chart.to_xml_string)
|
|
121
|
-
assert_equal("span", doc.xpath("//c:dispBlanksAs").attr("val").value, "did not use the display_blanks_as configuration")
|
|
122
|
-
end
|
|
123
|
-
end
|
|
1
|
+
require 'tc_helper.rb'
|
|
2
|
+
|
|
3
|
+
class TestChart < 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", :bg_color => "000000"
|
|
10
|
+
end
|
|
11
|
+
|
|
12
|
+
def teardown
|
|
13
|
+
end
|
|
14
|
+
|
|
15
|
+
def test_initialization
|
|
16
|
+
assert_equal(@p.workbook.charts.last,@chart, "the chart is in the workbook")
|
|
17
|
+
assert_equal(@chart.title.text, "fishery", "the title option has been applied")
|
|
18
|
+
assert((@chart.series.is_a?(Axlsx::SimpleTypedList) && @chart.series.empty?), "The series is initialized and empty")
|
|
19
|
+
end
|
|
20
|
+
|
|
21
|
+
def test_title
|
|
22
|
+
@chart.title.text = 'wowzer'
|
|
23
|
+
assert_equal(@chart.title.text, "wowzer", "the title text via a string")
|
|
24
|
+
assert_equal(@chart.title.cell, nil, "the title cell is nil as we set the title with text.")
|
|
25
|
+
@chart.title = @row.cells.first
|
|
26
|
+
assert_equal(@chart.title.text, "one", "the title text was set via cell reference")
|
|
27
|
+
assert_equal(@chart.title.cell, @row.cells.first)
|
|
28
|
+
end
|
|
29
|
+
|
|
30
|
+
def test_style
|
|
31
|
+
assert_raise(ArgumentError) { @chart.style = 49 }
|
|
32
|
+
assert_nothing_raised { @chart.style = 2 }
|
|
33
|
+
assert_equal(@chart.style, 2)
|
|
34
|
+
end
|
|
35
|
+
|
|
36
|
+
def test_to_from_marker_access
|
|
37
|
+
assert(@chart.to.is_a?(Axlsx::Marker))
|
|
38
|
+
assert(@chart.from.is_a?(Axlsx::Marker))
|
|
39
|
+
end
|
|
40
|
+
|
|
41
|
+
def test_bg_color
|
|
42
|
+
assert_raise(ArgumentError) { @chart.bg_color = 2 }
|
|
43
|
+
assert_nothing_raised { @chart.bg_color = "FFFFFF" }
|
|
44
|
+
assert_equal(@chart.bg_color, "FFFFFF")
|
|
45
|
+
|
|
46
|
+
end
|
|
47
|
+
|
|
48
|
+
def test_title_size
|
|
49
|
+
assert_raise(ArgumentError) { @chart.title_size = 2 }
|
|
50
|
+
assert_nothing_raised { @chart.title_size = "100" }
|
|
51
|
+
assert_equal(@chart.title.text_size, "100")
|
|
52
|
+
end
|
|
53
|
+
|
|
54
|
+
def test_vary_colors
|
|
55
|
+
assert_equal(true, @chart.vary_colors)
|
|
56
|
+
assert_raise(ArgumentError) { @chart.vary_colors = 7 }
|
|
57
|
+
assert_nothing_raised { @chart.vary_colors = false }
|
|
58
|
+
assert_equal(false, @chart.vary_colors)
|
|
59
|
+
end
|
|
60
|
+
|
|
61
|
+
def test_display_blanks_as
|
|
62
|
+
assert_equal(:gap, @chart.display_blanks_as, "default is not :gap")
|
|
63
|
+
assert_raise(ArgumentError, "did not validate possible values") { @chart.display_blanks_as = :hole }
|
|
64
|
+
assert_nothing_raised { @chart.display_blanks_as = :zero }
|
|
65
|
+
assert_nothing_raised { @chart.display_blanks_as = :span }
|
|
66
|
+
assert_equal(:span, @chart.display_blanks_as)
|
|
67
|
+
end
|
|
68
|
+
|
|
69
|
+
def test_start_at
|
|
70
|
+
@chart.start_at 15, 25
|
|
71
|
+
assert_equal(@chart.graphic_frame.anchor.from.col, 15)
|
|
72
|
+
assert_equal(@chart.graphic_frame.anchor.from.row, 25)
|
|
73
|
+
@chart.start_at @row.cells.first
|
|
74
|
+
assert_equal(@chart.graphic_frame.anchor.from.col, 0)
|
|
75
|
+
assert_equal(@chart.graphic_frame.anchor.from.row, 0)
|
|
76
|
+
@chart.start_at [5,6]
|
|
77
|
+
assert_equal(@chart.graphic_frame.anchor.from.col, 5)
|
|
78
|
+
assert_equal(@chart.graphic_frame.anchor.from.row, 6)
|
|
79
|
+
|
|
80
|
+
end
|
|
81
|
+
|
|
82
|
+
def test_end_at
|
|
83
|
+
@chart.end_at 25, 90
|
|
84
|
+
assert_equal(@chart.graphic_frame.anchor.to.col, 25)
|
|
85
|
+
assert_equal(@chart.graphic_frame.anchor.to.row, 90)
|
|
86
|
+
@chart.end_at @row.cells.last
|
|
87
|
+
assert_equal(@chart.graphic_frame.anchor.to.col, 2)
|
|
88
|
+
assert_equal(@chart.graphic_frame.anchor.to.row, 0)
|
|
89
|
+
@chart.end_at [10,11]
|
|
90
|
+
assert_equal(@chart.graphic_frame.anchor.to.col, 10)
|
|
91
|
+
assert_equal(@chart.graphic_frame.anchor.to.row, 11)
|
|
92
|
+
|
|
93
|
+
end
|
|
94
|
+
|
|
95
|
+
def test_add_series
|
|
96
|
+
s = @chart.add_series :data=>[0,1,2,3], :labels => ["one", 1, "anything"], :title=>"bob"
|
|
97
|
+
assert_equal(@chart.series.last, s, "series has been added to chart series collection")
|
|
98
|
+
assert_equal(s.title.text, "bob", "series title has been applied")
|
|
99
|
+
end
|
|
100
|
+
|
|
101
|
+
def test_pn
|
|
102
|
+
assert_equal(@chart.pn, "charts/chart1.xml")
|
|
103
|
+
end
|
|
104
|
+
|
|
105
|
+
def test_d_lbls
|
|
106
|
+
assert_equal(nil, @chart.instance_values[:d_lbls])
|
|
107
|
+
@chart.d_lbls.d_lbl_pos = :t
|
|
108
|
+
assert(@chart.d_lbls.is_a?(Axlsx::DLbls), 'DLbls instantiated on access')
|
|
109
|
+
end
|
|
110
|
+
|
|
111
|
+
def test_to_xml_string
|
|
112
|
+
schema = Nokogiri::XML::Schema(File.open(Axlsx::DRAWING_XSD))
|
|
113
|
+
doc = Nokogiri::XML(@chart.to_xml_string)
|
|
114
|
+
errors = schema.validate(doc).map { |error| puts error.message; error }
|
|
115
|
+
assert(errors.empty?, "error free validation")
|
|
116
|
+
end
|
|
117
|
+
|
|
118
|
+
def test_to_xml_string_for_display_blanks_as
|
|
119
|
+
@chart.display_blanks_as = :span
|
|
120
|
+
doc = Nokogiri::XML(@chart.to_xml_string)
|
|
121
|
+
assert_equal("span", doc.xpath("//c:dispBlanksAs").attr("val").value, "did not use the display_blanks_as configuration")
|
|
122
|
+
end
|
|
123
|
+
end
|
data/test/drawing/tc_d_lbls.rb
CHANGED
|
@@ -1,57 +1,57 @@
|
|
|
1
|
-
require 'tc_helper'
|
|
2
|
-
|
|
3
|
-
class TestDLbls < Test::Unit::TestCase
|
|
4
|
-
|
|
5
|
-
def setup
|
|
6
|
-
@d_lbls = Axlsx::DLbls.new(Axlsx::Pie3DChart)
|
|
7
|
-
@boolean_attributes =[:show_legend_key,
|
|
8
|
-
:show_val,
|
|
9
|
-
:show_cat_name,
|
|
10
|
-
:show_ser_name,
|
|
11
|
-
:show_percent,
|
|
12
|
-
:show_bubble_size,
|
|
13
|
-
:show_leader_lines]
|
|
14
|
-
end
|
|
15
|
-
|
|
16
|
-
def test_initialization
|
|
17
|
-
assert_equal(:bestFit, @d_lbls.d_lbl_pos)
|
|
18
|
-
@boolean_attributes.each do |attr|
|
|
19
|
-
assert_equal(false, @d_lbls.send(attr))
|
|
20
|
-
end
|
|
21
|
-
end
|
|
22
|
-
|
|
23
|
-
def test_initialization_with_optoins
|
|
24
|
-
|
|
25
|
-
options_hash = Hash[*[@boolean_attributes.map { |name| [name, true] }] ]
|
|
26
|
-
|
|
27
|
-
d_lbls = Axlsx::DLbls.new(Axlsx::Pie3DChart, options_hash.merge( { :d_lbl_pos => :t }))
|
|
28
|
-
|
|
29
|
-
@boolean_attributes.each do |attr|
|
|
30
|
-
assert_equal(true, d_lbls.send(attr), "boolean attributes set by options")
|
|
31
|
-
end
|
|
32
|
-
assert_equal(:t, d_lbls.d_lbl_pos, "d_lbl_pos set by options")
|
|
33
|
-
end
|
|
34
|
-
def test_d_lbl_pos
|
|
35
|
-
assert_raise(ArgumentError, 'invlaid label positions are rejected') { @d_lbls.d_lbl_pos = :upside_down }
|
|
36
|
-
assert_nothing_raised('accepts valid label position') { @d_lbls.d_lbl_pos = :ctr }
|
|
37
|
-
end
|
|
38
|
-
|
|
39
|
-
def test_boolean_attributes
|
|
40
|
-
@boolean_attributes.each do |attr|
|
|
41
|
-
assert_raise(ArgumentError, "rejects non boolean value for #{attr}") { @d_lbls.send("#{attr}=", :foo) }
|
|
42
|
-
assert_nothing_raised("accepts boolean value for #{attr}") { @d_lbls.send("#{attr}=", true) }
|
|
43
|
-
assert_nothing_raised("accepts boolean value for #{attr}") { @d_lbls.send("#{attr}=", false) }
|
|
44
|
-
end
|
|
45
|
-
end
|
|
46
|
-
|
|
47
|
-
def test_to_xml_string
|
|
48
|
-
str = '<?xml version="1.0" encoding="UTF-8"?>'
|
|
49
|
-
str << '<c:chartSpace xmlns:c="' << Axlsx::XML_NS_C << '" xmlns:a="' << Axlsx::XML_NS_A << '" xmlns:r="' << Axlsx::XML_NS_R << '">'
|
|
50
|
-
@d_lbls.to_xml_string(str)
|
|
51
|
-
str << '</c:chartSpace>'
|
|
52
|
-
doc = Nokogiri::XML(str)
|
|
53
|
-
@d_lbls.instance_values.each do |name, value|
|
|
54
|
-
assert(doc.xpath("//c:#{Axlsx::camel(name, false)}[@val='#{value}']"), "#{name} is properly serialized")
|
|
55
|
-
end
|
|
56
|
-
end
|
|
57
|
-
end
|
|
1
|
+
require 'tc_helper'
|
|
2
|
+
|
|
3
|
+
class TestDLbls < Test::Unit::TestCase
|
|
4
|
+
|
|
5
|
+
def setup
|
|
6
|
+
@d_lbls = Axlsx::DLbls.new(Axlsx::Pie3DChart)
|
|
7
|
+
@boolean_attributes =[:show_legend_key,
|
|
8
|
+
:show_val,
|
|
9
|
+
:show_cat_name,
|
|
10
|
+
:show_ser_name,
|
|
11
|
+
:show_percent,
|
|
12
|
+
:show_bubble_size,
|
|
13
|
+
:show_leader_lines]
|
|
14
|
+
end
|
|
15
|
+
|
|
16
|
+
def test_initialization
|
|
17
|
+
assert_equal(:bestFit, @d_lbls.d_lbl_pos)
|
|
18
|
+
@boolean_attributes.each do |attr|
|
|
19
|
+
assert_equal(false, @d_lbls.send(attr))
|
|
20
|
+
end
|
|
21
|
+
end
|
|
22
|
+
|
|
23
|
+
def test_initialization_with_optoins
|
|
24
|
+
|
|
25
|
+
options_hash = Hash[*[@boolean_attributes.map { |name| [name, true] }] ]
|
|
26
|
+
|
|
27
|
+
d_lbls = Axlsx::DLbls.new(Axlsx::Pie3DChart, options_hash.merge( { :d_lbl_pos => :t }))
|
|
28
|
+
|
|
29
|
+
@boolean_attributes.each do |attr|
|
|
30
|
+
assert_equal(true, d_lbls.send(attr), "boolean attributes set by options")
|
|
31
|
+
end
|
|
32
|
+
assert_equal(:t, d_lbls.d_lbl_pos, "d_lbl_pos set by options")
|
|
33
|
+
end
|
|
34
|
+
def test_d_lbl_pos
|
|
35
|
+
assert_raise(ArgumentError, 'invlaid label positions are rejected') { @d_lbls.d_lbl_pos = :upside_down }
|
|
36
|
+
assert_nothing_raised('accepts valid label position') { @d_lbls.d_lbl_pos = :ctr }
|
|
37
|
+
end
|
|
38
|
+
|
|
39
|
+
def test_boolean_attributes
|
|
40
|
+
@boolean_attributes.each do |attr|
|
|
41
|
+
assert_raise(ArgumentError, "rejects non boolean value for #{attr}") { @d_lbls.send("#{attr}=", :foo) }
|
|
42
|
+
assert_nothing_raised("accepts boolean value for #{attr}") { @d_lbls.send("#{attr}=", true) }
|
|
43
|
+
assert_nothing_raised("accepts boolean value for #{attr}") { @d_lbls.send("#{attr}=", false) }
|
|
44
|
+
end
|
|
45
|
+
end
|
|
46
|
+
|
|
47
|
+
def test_to_xml_string
|
|
48
|
+
str = '<?xml version="1.0" encoding="UTF-8"?>'
|
|
49
|
+
str << '<c:chartSpace xmlns:c="' << Axlsx::XML_NS_C << '" xmlns:a="' << Axlsx::XML_NS_A << '" xmlns:r="' << Axlsx::XML_NS_R << '">'
|
|
50
|
+
@d_lbls.to_xml_string(str)
|
|
51
|
+
str << '</c:chartSpace>'
|
|
52
|
+
doc = Nokogiri::XML(str)
|
|
53
|
+
@d_lbls.instance_values.each do |name, value|
|
|
54
|
+
assert(doc.xpath("//c:#{Axlsx::camel(name, false)}[@val='#{value}']"), "#{name} is properly serialized")
|
|
55
|
+
end
|
|
56
|
+
end
|
|
57
|
+
end
|
|
@@ -1,23 +1,23 @@
|
|
|
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_tag_name
|
|
10
|
-
assert_raise(ArgumentError) { @data_source.tag_name = :zVal }
|
|
11
|
-
assert_nothing_raised { @data_source.tag_name = :yVal }
|
|
12
|
-
assert_nothing_raised { @data_source.tag_name = :bubbleSize }
|
|
13
|
-
end
|
|
14
|
-
|
|
15
|
-
def test_to_xml_string_strLit
|
|
16
|
-
str = '<?xml version="1.0" encoding="UTF-8"?>'
|
|
17
|
-
str << '<c:chartSpace xmlns:c="' << Axlsx::XML_NS_C << '">'
|
|
18
|
-
str << @data_source.to_xml_string
|
|
19
|
-
doc = Nokogiri::XML(str)
|
|
20
|
-
assert_equal(doc.xpath("//c:val").size, 1)
|
|
21
|
-
end
|
|
22
|
-
|
|
23
|
-
end
|
|
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_tag_name
|
|
10
|
+
assert_raise(ArgumentError) { @data_source.tag_name = :zVal }
|
|
11
|
+
assert_nothing_raised { @data_source.tag_name = :yVal }
|
|
12
|
+
assert_nothing_raised { @data_source.tag_name = :bubbleSize }
|
|
13
|
+
end
|
|
14
|
+
|
|
15
|
+
def test_to_xml_string_strLit
|
|
16
|
+
str = '<?xml version="1.0" encoding="UTF-8"?>'
|
|
17
|
+
str << '<c:chartSpace xmlns:c="' << Axlsx::XML_NS_C << '">'
|
|
18
|
+
str << @data_source.to_xml_string
|
|
19
|
+
doc = Nokogiri::XML(str)
|
|
20
|
+
assert_equal(doc.xpath("//c:val").size, 1)
|
|
21
|
+
end
|
|
22
|
+
|
|
23
|
+
end
|
data/test/drawing/tc_drawing.rb
CHANGED
|
@@ -1,80 +1,80 @@
|
|
|
1
|
-
require 'tc_helper.rb'
|
|
2
|
-
|
|
3
|
-
class TestDrawing < Test::Unit::TestCase
|
|
4
|
-
def setup
|
|
5
|
-
p = Axlsx::Package.new
|
|
6
|
-
@ws = p.workbook.add_worksheet
|
|
7
|
-
|
|
8
|
-
end
|
|
9
|
-
|
|
10
|
-
def test_initialization
|
|
11
|
-
assert(@ws.workbook.drawings.empty?)
|
|
12
|
-
end
|
|
13
|
-
|
|
14
|
-
def test_add_chart
|
|
15
|
-
chart = @ws.add_chart(Axlsx::Pie3DChart, :title=>"bob", :start_at=>[0,0], :end_at=>[1,1])
|
|
16
|
-
assert(chart.is_a?(Axlsx::Pie3DChart), "must create a chart")
|
|
17
|
-
assert_equal(@ws.workbook.charts.last, chart, "must be added to workbook charts collection")
|
|
18
|
-
assert_equal(@ws.drawing.anchors.last.object.chart, chart, "an anchor has been created and holds a reference to this chart")
|
|
19
|
-
anchor = @ws.drawing.anchors.last
|
|
20
|
-
assert_equal([anchor.from.row, anchor.from.col], [0,0], "options for start at are applied")
|
|
21
|
-
assert_equal([anchor.to.row, anchor.to.col], [1,1], "options for start at are applied")
|
|
22
|
-
assert_equal(chart.title.text, "bob", "option for title is applied")
|
|
23
|
-
end
|
|
24
|
-
|
|
25
|
-
def test_add_image
|
|
26
|
-
src = File.dirname(__FILE__) + "/../fixtures/image1.jpeg"
|
|
27
|
-
image = @ws.add_image(:image_src => src, :start_at=>[0,0], :width=>600, :height=>400)
|
|
28
|
-
assert(@ws.drawing.anchors.last.is_a?(Axlsx::OneCellAnchor))
|
|
29
|
-
assert(image.is_a?(Axlsx::Pic))
|
|
30
|
-
assert_equal(600, image.width)
|
|
31
|
-
assert_equal(400, image.height)
|
|
32
|
-
end
|
|
33
|
-
def test_add_two_cell_anchor_image
|
|
34
|
-
src = File.dirname(__FILE__) + "/../fixtures/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
|
|
39
|
-
def test_charts
|
|
40
|
-
chart = @ws.add_chart(Axlsx::Pie3DChart, :title=>"bob", :start_at=>[0,0], :end_at=>[1,1])
|
|
41
|
-
assert_equal(@ws.drawing.charts.last, chart, "add chart is returned")
|
|
42
|
-
chart = @ws.add_chart(Axlsx::Pie3DChart, :title=>"nancy", :start_at=>[1,5], :end_at=>[5,10])
|
|
43
|
-
assert_equal(@ws.drawing.charts.last, chart, "add chart is returned")
|
|
44
|
-
end
|
|
45
|
-
|
|
46
|
-
def test_pn
|
|
47
|
-
@ws.add_chart(Axlsx::Pie3DChart)
|
|
48
|
-
assert_equal(@ws.drawing.pn, "drawings/drawing1.xml")
|
|
49
|
-
end
|
|
50
|
-
|
|
51
|
-
def test_rels_pn
|
|
52
|
-
@ws.add_chart(Axlsx::Pie3DChart)
|
|
53
|
-
assert_equal(@ws.drawing.rels_pn, "drawings/_rels/drawing1.xml.rels")
|
|
54
|
-
end
|
|
55
|
-
|
|
56
|
-
def test_index
|
|
57
|
-
@ws.add_chart(Axlsx::Pie3DChart)
|
|
58
|
-
assert_equal(@ws.drawing.index, @ws.workbook.drawings.index(@ws.drawing))
|
|
59
|
-
end
|
|
60
|
-
|
|
61
|
-
def test_relationships
|
|
62
|
-
@ws.add_chart(Axlsx::Pie3DChart, :title=>"bob", :start_at=>[0,0], :end_at=>[1,1])
|
|
63
|
-
assert_equal(@ws.drawing.relationships.size, 1, "adding a chart adds a relationship")
|
|
64
|
-
@ws.add_chart(Axlsx::Pie3DChart, :title=>"nancy", :start_at=>[1,5], :end_at=>[5,10])
|
|
65
|
-
assert_equal(@ws.drawing.relationships.size, 2, "adding a chart adds a relationship")
|
|
66
|
-
end
|
|
67
|
-
|
|
68
|
-
def test_to_xml
|
|
69
|
-
schema = Nokogiri::XML::Schema(File.open(Axlsx::DRAWING_XSD))
|
|
70
|
-
@ws.add_chart(Axlsx::Pie3DChart)
|
|
71
|
-
doc = Nokogiri::XML(@ws.drawing.to_xml_string)
|
|
72
|
-
errors = []
|
|
73
|
-
schema.validate(doc).each do |error|
|
|
74
|
-
errors.push error
|
|
75
|
-
puts error.message
|
|
76
|
-
end
|
|
77
|
-
assert(errors.empty?, "error free validation")
|
|
78
|
-
end
|
|
79
|
-
|
|
80
|
-
end
|
|
1
|
+
require 'tc_helper.rb'
|
|
2
|
+
|
|
3
|
+
class TestDrawing < Test::Unit::TestCase
|
|
4
|
+
def setup
|
|
5
|
+
p = Axlsx::Package.new
|
|
6
|
+
@ws = p.workbook.add_worksheet
|
|
7
|
+
|
|
8
|
+
end
|
|
9
|
+
|
|
10
|
+
def test_initialization
|
|
11
|
+
assert(@ws.workbook.drawings.empty?)
|
|
12
|
+
end
|
|
13
|
+
|
|
14
|
+
def test_add_chart
|
|
15
|
+
chart = @ws.add_chart(Axlsx::Pie3DChart, :title=>"bob", :start_at=>[0,0], :end_at=>[1,1])
|
|
16
|
+
assert(chart.is_a?(Axlsx::Pie3DChart), "must create a chart")
|
|
17
|
+
assert_equal(@ws.workbook.charts.last, chart, "must be added to workbook charts collection")
|
|
18
|
+
assert_equal(@ws.drawing.anchors.last.object.chart, chart, "an anchor has been created and holds a reference to this chart")
|
|
19
|
+
anchor = @ws.drawing.anchors.last
|
|
20
|
+
assert_equal([anchor.from.row, anchor.from.col], [0,0], "options for start at are applied")
|
|
21
|
+
assert_equal([anchor.to.row, anchor.to.col], [1,1], "options for start at are applied")
|
|
22
|
+
assert_equal(chart.title.text, "bob", "option for title is applied")
|
|
23
|
+
end
|
|
24
|
+
|
|
25
|
+
def test_add_image
|
|
26
|
+
src = File.dirname(__FILE__) + "/../fixtures/image1.jpeg"
|
|
27
|
+
image = @ws.add_image(:image_src => src, :start_at=>[0,0], :width=>600, :height=>400)
|
|
28
|
+
assert(@ws.drawing.anchors.last.is_a?(Axlsx::OneCellAnchor))
|
|
29
|
+
assert(image.is_a?(Axlsx::Pic))
|
|
30
|
+
assert_equal(600, image.width)
|
|
31
|
+
assert_equal(400, image.height)
|
|
32
|
+
end
|
|
33
|
+
def test_add_two_cell_anchor_image
|
|
34
|
+
src = File.dirname(__FILE__) + "/../fixtures/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
|
|
39
|
+
def test_charts
|
|
40
|
+
chart = @ws.add_chart(Axlsx::Pie3DChart, :title=>"bob", :start_at=>[0,0], :end_at=>[1,1])
|
|
41
|
+
assert_equal(@ws.drawing.charts.last, chart, "add chart is returned")
|
|
42
|
+
chart = @ws.add_chart(Axlsx::Pie3DChart, :title=>"nancy", :start_at=>[1,5], :end_at=>[5,10])
|
|
43
|
+
assert_equal(@ws.drawing.charts.last, chart, "add chart is returned")
|
|
44
|
+
end
|
|
45
|
+
|
|
46
|
+
def test_pn
|
|
47
|
+
@ws.add_chart(Axlsx::Pie3DChart)
|
|
48
|
+
assert_equal(@ws.drawing.pn, "drawings/drawing1.xml")
|
|
49
|
+
end
|
|
50
|
+
|
|
51
|
+
def test_rels_pn
|
|
52
|
+
@ws.add_chart(Axlsx::Pie3DChart)
|
|
53
|
+
assert_equal(@ws.drawing.rels_pn, "drawings/_rels/drawing1.xml.rels")
|
|
54
|
+
end
|
|
55
|
+
|
|
56
|
+
def test_index
|
|
57
|
+
@ws.add_chart(Axlsx::Pie3DChart)
|
|
58
|
+
assert_equal(@ws.drawing.index, @ws.workbook.drawings.index(@ws.drawing))
|
|
59
|
+
end
|
|
60
|
+
|
|
61
|
+
def test_relationships
|
|
62
|
+
@ws.add_chart(Axlsx::Pie3DChart, :title=>"bob", :start_at=>[0,0], :end_at=>[1,1])
|
|
63
|
+
assert_equal(@ws.drawing.relationships.size, 1, "adding a chart adds a relationship")
|
|
64
|
+
@ws.add_chart(Axlsx::Pie3DChart, :title=>"nancy", :start_at=>[1,5], :end_at=>[5,10])
|
|
65
|
+
assert_equal(@ws.drawing.relationships.size, 2, "adding a chart adds a relationship")
|
|
66
|
+
end
|
|
67
|
+
|
|
68
|
+
def test_to_xml
|
|
69
|
+
schema = Nokogiri::XML::Schema(File.open(Axlsx::DRAWING_XSD))
|
|
70
|
+
@ws.add_chart(Axlsx::Pie3DChart)
|
|
71
|
+
doc = Nokogiri::XML(@ws.drawing.to_xml_string)
|
|
72
|
+
errors = []
|
|
73
|
+
schema.validate(doc).each do |error|
|
|
74
|
+
errors.push error
|
|
75
|
+
puts error.message
|
|
76
|
+
end
|
|
77
|
+
assert(errors.empty?, "error free validation")
|
|
78
|
+
end
|
|
79
|
+
|
|
80
|
+
end
|
|
@@ -1,27 +1,27 @@
|
|
|
1
|
-
require 'tc_helper.rb'
|
|
2
|
-
|
|
3
|
-
class TestGraphicFrame < Test::Unit::TestCase
|
|
4
|
-
def setup
|
|
5
|
-
p = Axlsx::Package.new
|
|
6
|
-
@ws = p.workbook.add_worksheet
|
|
7
|
-
@chart = @ws.add_chart Axlsx::Chart
|
|
8
|
-
@frame = @chart.graphic_frame
|
|
9
|
-
end
|
|
10
|
-
|
|
11
|
-
def teardown
|
|
12
|
-
end
|
|
13
|
-
|
|
14
|
-
def test_initialization
|
|
15
|
-
assert(@frame.anchor.is_a?(Axlsx::TwoCellAnchor))
|
|
16
|
-
assert_equal(@frame.chart, @chart)
|
|
17
|
-
end
|
|
18
|
-
|
|
19
|
-
def test_rId
|
|
20
|
-
assert_equal @ws.drawing.relationships.for(@chart).Id, @frame.rId
|
|
21
|
-
end
|
|
22
|
-
|
|
23
|
-
def test_to_xml_has_correct_rId
|
|
24
|
-
doc = Nokogiri::XML(@frame.to_xml_string)
|
|
25
|
-
assert_equal @frame.rId, doc.xpath("//c:chart", doc.collect_namespaces).first["r:id"]
|
|
26
|
-
end
|
|
27
|
-
end
|
|
1
|
+
require 'tc_helper.rb'
|
|
2
|
+
|
|
3
|
+
class TestGraphicFrame < Test::Unit::TestCase
|
|
4
|
+
def setup
|
|
5
|
+
p = Axlsx::Package.new
|
|
6
|
+
@ws = p.workbook.add_worksheet
|
|
7
|
+
@chart = @ws.add_chart Axlsx::Chart
|
|
8
|
+
@frame = @chart.graphic_frame
|
|
9
|
+
end
|
|
10
|
+
|
|
11
|
+
def teardown
|
|
12
|
+
end
|
|
13
|
+
|
|
14
|
+
def test_initialization
|
|
15
|
+
assert(@frame.anchor.is_a?(Axlsx::TwoCellAnchor))
|
|
16
|
+
assert_equal(@frame.chart, @chart)
|
|
17
|
+
end
|
|
18
|
+
|
|
19
|
+
def test_rId
|
|
20
|
+
assert_equal @ws.drawing.relationships.for(@chart).Id, @frame.rId
|
|
21
|
+
end
|
|
22
|
+
|
|
23
|
+
def test_to_xml_has_correct_rId
|
|
24
|
+
doc = Nokogiri::XML(@frame.to_xml_string)
|
|
25
|
+
assert_equal @frame.rId, doc.xpath("//c:chart", doc.collect_namespaces).first["r:id"]
|
|
26
|
+
end
|
|
27
|
+
end
|