dg-axlsx 2.1.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 +7 -0
- data/.yardopts +9 -0
- data/.yardopts_guide +19 -0
- data/CHANGELOG.md +239 -0
- data/LICENSE +22 -0
- data/README.md +259 -0
- data/Rakefile +30 -0
- data/examples/2010_comments.rb +17 -0
- data/examples/anchor_swapping.rb +28 -0
- data/examples/auto_filter.rb +25 -0
- data/examples/basic_charts.rb +58 -0
- data/examples/chart_colors.rb +88 -0
- data/examples/colored_links.rb +59 -0
- data/examples/conditional_formatting/example_conditional_formatting.rb +89 -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 +875 -0
- data/examples/extractive.rb +45 -0
- data/examples/image1.jpeg +0 -0
- data/examples/ios_preview.rb +14 -0
- data/examples/merge_cells.rb +17 -0
- data/examples/no_grid_with_borders.rb +18 -0
- data/examples/page_setup.rb +11 -0
- data/examples/pivot_table.rb +39 -0
- data/examples/pivot_test.rb +63 -0
- data/examples/sheet_protection.rb +10 -0
- data/examples/skydrive/real_example.rb +63 -0
- data/examples/split.rb +16 -0
- data/examples/styles.rb +66 -0
- data/examples/underline.rb +13 -0
- data/examples/wrap_text.rb +21 -0
- data/lib/axlsx.rb +168 -0
- data/lib/axlsx/content_type/abstract_content_type.rb +32 -0
- data/lib/axlsx/content_type/content_type.rb +26 -0
- data/lib/axlsx/content_type/default.rb +25 -0
- data/lib/axlsx/content_type/override.rb +25 -0
- data/lib/axlsx/doc_props/app.rb +235 -0
- data/lib/axlsx/doc_props/core.rb +39 -0
- data/lib/axlsx/drawing/ax_data_source.rb +26 -0
- data/lib/axlsx/drawing/axes.rb +61 -0
- data/lib/axlsx/drawing/axis.rb +190 -0
- data/lib/axlsx/drawing/bar_3D_chart.rb +151 -0
- data/lib/axlsx/drawing/bar_series.rb +82 -0
- data/lib/axlsx/drawing/bubble_chart.rb +59 -0
- data/lib/axlsx/drawing/bubble_series.rb +63 -0
- data/lib/axlsx/drawing/cat_axis.rb +85 -0
- data/lib/axlsx/drawing/chart.rb +269 -0
- data/lib/axlsx/drawing/d_lbls.rb +90 -0
- data/lib/axlsx/drawing/drawing.rb +164 -0
- data/lib/axlsx/drawing/graphic_frame.rb +54 -0
- data/lib/axlsx/drawing/hyperlink.rb +100 -0
- data/lib/axlsx/drawing/line_3D_chart.rb +68 -0
- data/lib/axlsx/drawing/line_chart.rb +99 -0
- data/lib/axlsx/drawing/line_series.rb +110 -0
- data/lib/axlsx/drawing/marker.rb +84 -0
- data/lib/axlsx/drawing/num_data.rb +52 -0
- data/lib/axlsx/drawing/num_data_source.rb +62 -0
- data/lib/axlsx/drawing/num_val.rb +32 -0
- data/lib/axlsx/drawing/one_cell_anchor.rb +98 -0
- data/lib/axlsx/drawing/pic.rb +213 -0
- data/lib/axlsx/drawing/picture_locking.rb +42 -0
- data/lib/axlsx/drawing/pie_3D_chart.rb +47 -0
- data/lib/axlsx/drawing/pie_series.rb +74 -0
- data/lib/axlsx/drawing/scaling.rb +60 -0
- data/lib/axlsx/drawing/scatter_chart.rb +74 -0
- data/lib/axlsx/drawing/scatter_series.rb +84 -0
- data/lib/axlsx/drawing/ser_axis.rb +45 -0
- data/lib/axlsx/drawing/series.rb +69 -0
- data/lib/axlsx/drawing/series_title.rb +23 -0
- data/lib/axlsx/drawing/str_data.rb +42 -0
- data/lib/axlsx/drawing/str_val.rb +32 -0
- data/lib/axlsx/drawing/title.rb +78 -0
- data/lib/axlsx/drawing/two_cell_anchor.rb +92 -0
- data/lib/axlsx/drawing/val_axis.rb +37 -0
- data/lib/axlsx/drawing/view_3D.rb +115 -0
- data/lib/axlsx/drawing/vml_drawing.rb +42 -0
- data/lib/axlsx/drawing/vml_shape.rb +66 -0
- data/lib/axlsx/package.rb +363 -0
- data/lib/axlsx/rels/relationship.rb +129 -0
- data/lib/axlsx/rels/relationships.rb +29 -0
- data/lib/axlsx/stylesheet/border.rb +71 -0
- data/lib/axlsx/stylesheet/border_pr.rb +71 -0
- data/lib/axlsx/stylesheet/cell_alignment.rb +132 -0
- data/lib/axlsx/stylesheet/cell_protection.rb +41 -0
- data/lib/axlsx/stylesheet/cell_style.rb +72 -0
- data/lib/axlsx/stylesheet/color.rb +76 -0
- data/lib/axlsx/stylesheet/dxf.rb +79 -0
- data/lib/axlsx/stylesheet/fill.rb +35 -0
- data/lib/axlsx/stylesheet/font.rb +148 -0
- data/lib/axlsx/stylesheet/gradient_fill.rb +103 -0
- data/lib/axlsx/stylesheet/gradient_stop.rb +37 -0
- data/lib/axlsx/stylesheet/num_fmt.rb +77 -0
- data/lib/axlsx/stylesheet/pattern_fill.rb +73 -0
- data/lib/axlsx/stylesheet/styles.rb +420 -0
- data/lib/axlsx/stylesheet/table_style.rb +54 -0
- data/lib/axlsx/stylesheet/table_style_element.rb +77 -0
- data/lib/axlsx/stylesheet/table_styles.rb +46 -0
- data/lib/axlsx/stylesheet/xf.rb +147 -0
- data/lib/axlsx/util/accessors.rb +64 -0
- data/lib/axlsx/util/constants.rb +397 -0
- data/lib/axlsx/util/mime_type_utils.rb +11 -0
- data/lib/axlsx/util/options_parser.rb +16 -0
- data/lib/axlsx/util/parser.rb +44 -0
- data/lib/axlsx/util/serialized_attributes.rb +89 -0
- data/lib/axlsx/util/simple_typed_list.rb +179 -0
- data/lib/axlsx/util/storage.rb +146 -0
- data/lib/axlsx/util/string.rb +7 -0
- data/lib/axlsx/util/validators.rb +311 -0
- data/lib/axlsx/version.rb +5 -0
- data/lib/axlsx/workbook/defined_name.rb +128 -0
- data/lib/axlsx/workbook/defined_names.rb +21 -0
- data/lib/axlsx/workbook/shared_strings_table.rb +77 -0
- data/lib/axlsx/workbook/workbook.rb +361 -0
- data/lib/axlsx/workbook/workbook_view.rb +78 -0
- data/lib/axlsx/workbook/workbook_views.rb +22 -0
- data/lib/axlsx/workbook/worksheet/auto_filter/auto_filter.rb +77 -0
- data/lib/axlsx/workbook/worksheet/auto_filter/filter_column.rb +94 -0
- data/lib/axlsx/workbook/worksheet/auto_filter/filters.rb +244 -0
- data/lib/axlsx/workbook/worksheet/break.rb +35 -0
- data/lib/axlsx/workbook/worksheet/cell.rb +475 -0
- data/lib/axlsx/workbook/worksheet/cell_serializer.rb +154 -0
- data/lib/axlsx/workbook/worksheet/cfvo.rb +60 -0
- data/lib/axlsx/workbook/worksheet/cfvos.rb +15 -0
- data/lib/axlsx/workbook/worksheet/col.rb +141 -0
- data/lib/axlsx/workbook/worksheet/col_breaks.rb +35 -0
- data/lib/axlsx/workbook/worksheet/color_scale.rb +110 -0
- data/lib/axlsx/workbook/worksheet/cols.rb +20 -0
- data/lib/axlsx/workbook/worksheet/comment.rb +91 -0
- data/lib/axlsx/workbook/worksheet/comments.rb +82 -0
- data/lib/axlsx/workbook/worksheet/conditional_formatting.rb +82 -0
- data/lib/axlsx/workbook/worksheet/conditional_formatting_rule.rb +220 -0
- data/lib/axlsx/workbook/worksheet/conditional_formattings.rb +25 -0
- data/lib/axlsx/workbook/worksheet/data_bar.rb +129 -0
- data/lib/axlsx/workbook/worksheet/data_validation.rb +246 -0
- data/lib/axlsx/workbook/worksheet/data_validations.rb +28 -0
- data/lib/axlsx/workbook/worksheet/date_time_converter.rb +30 -0
- data/lib/axlsx/workbook/worksheet/dimension.rb +64 -0
- data/lib/axlsx/workbook/worksheet/header_footer.rb +52 -0
- data/lib/axlsx/workbook/worksheet/icon_set.rb +81 -0
- data/lib/axlsx/workbook/worksheet/merged_cells.rb +35 -0
- data/lib/axlsx/workbook/worksheet/page_margins.rb +97 -0
- data/lib/axlsx/workbook/worksheet/page_set_up_pr.rb +44 -0
- data/lib/axlsx/workbook/worksheet/page_setup.rb +240 -0
- data/lib/axlsx/workbook/worksheet/pane.rb +139 -0
- data/lib/axlsx/workbook/worksheet/pivot_table.rb +266 -0
- data/lib/axlsx/workbook/worksheet/pivot_table_cache_definition.rb +66 -0
- data/lib/axlsx/workbook/worksheet/pivot_tables.rb +24 -0
- data/lib/axlsx/workbook/worksheet/print_options.rb +39 -0
- data/lib/axlsx/workbook/worksheet/protected_range.rb +47 -0
- data/lib/axlsx/workbook/worksheet/protected_ranges.rb +34 -0
- data/lib/axlsx/workbook/worksheet/rich_text.rb +35 -0
- data/lib/axlsx/workbook/worksheet/rich_text_run.rb +254 -0
- data/lib/axlsx/workbook/worksheet/row.rb +154 -0
- data/lib/axlsx/workbook/worksheet/row_breaks.rb +33 -0
- data/lib/axlsx/workbook/worksheet/selection.rb +101 -0
- data/lib/axlsx/workbook/worksheet/sheet_calc_pr.rb +29 -0
- data/lib/axlsx/workbook/worksheet/sheet_data.rb +27 -0
- data/lib/axlsx/workbook/worksheet/sheet_format_pr.rb +60 -0
- data/lib/axlsx/workbook/worksheet/sheet_pr.rb +79 -0
- data/lib/axlsx/workbook/worksheet/sheet_protection.rb +118 -0
- data/lib/axlsx/workbook/worksheet/sheet_view.rb +213 -0
- data/lib/axlsx/workbook/worksheet/table.rb +102 -0
- data/lib/axlsx/workbook/worksheet/table_style_info.rb +49 -0
- data/lib/axlsx/workbook/worksheet/tables.rb +31 -0
- data/lib/axlsx/workbook/worksheet/worksheet.rb +798 -0
- data/lib/axlsx/workbook/worksheet/worksheet_comments.rb +58 -0
- data/lib/axlsx/workbook/worksheet/worksheet_drawing.rb +58 -0
- data/lib/axlsx/workbook/worksheet/worksheet_hyperlink.rb +74 -0
- data/lib/axlsx/workbook/worksheet/worksheet_hyperlinks.rb +38 -0
- data/lib/dg-axlsx.rb +1 -0
- data/lib/schema/dc.xsd +118 -0
- data/lib/schema/dcmitype.xsd +52 -0
- data/lib/schema/dcterms.xsd +331 -0
- data/lib/schema/dml-chart.xsd +1499 -0
- data/lib/schema/dml-chartDrawing.xsd +146 -0
- data/lib/schema/dml-compatibility.xsd +14 -0
- data/lib/schema/dml-diagram.xsd +1091 -0
- data/lib/schema/dml-lockedCanvas.xsd +11 -0
- data/lib/schema/dml-main.xsd +3048 -0
- data/lib/schema/dml-picture.xsd +23 -0
- data/lib/schema/dml-spreadsheetDrawing.xsd +185 -0
- data/lib/schema/dml-wordprocessingDrawing.xsd +185 -0
- data/lib/schema/opc-contentTypes.xsd +42 -0
- data/lib/schema/opc-coreProperties.xsd +54 -0
- data/lib/schema/opc-digSig.xsd +49 -0
- data/lib/schema/opc-relationships.xsd +33 -0
- data/lib/schema/pml.xsd +1676 -0
- data/lib/schema/shared-additionalCharacteristics.xsd +28 -0
- data/lib/schema/shared-bibliography.xsd +144 -0
- data/lib/schema/shared-commonSimpleTypes.xsd +166 -0
- data/lib/schema/shared-customXmlDataProperties.xsd +25 -0
- data/lib/schema/shared-customXmlSchemaProperties.xsd +18 -0
- data/lib/schema/shared-documentPropertiesCustom.xsd +59 -0
- data/lib/schema/shared-documentPropertiesExtended.xsd +56 -0
- data/lib/schema/shared-documentPropertiesVariantTypes.xsd +195 -0
- data/lib/schema/shared-math.xsd +582 -0
- data/lib/schema/shared-relationshipReference.xsd +25 -0
- data/lib/schema/sml.xsd +4434 -0
- data/lib/schema/vml-main.xsd +569 -0
- data/lib/schema/vml-officeDrawing.xsd +509 -0
- data/lib/schema/vml-presentationDrawing.xsd +12 -0
- data/lib/schema/vml-spreadsheetDrawing.xsd +108 -0
- data/lib/schema/vml-wordprocessingDrawing.xsd +96 -0
- data/lib/schema/wml.xsd +3644 -0
- data/lib/schema/xml.xsd +116 -0
- data/test/benchmark.rb +72 -0
- data/test/content_type/tc_content_type.rb +76 -0
- data/test/content_type/tc_default.rb +16 -0
- data/test/content_type/tc_override.rb +14 -0
- data/test/doc_props/tc_app.rb +43 -0
- data/test/doc_props/tc_core.rb +42 -0
- data/test/drawing/tc_axes.rb +8 -0
- data/test/drawing/tc_axis.rb +112 -0
- data/test/drawing/tc_bar_3D_chart.rb +71 -0
- data/test/drawing/tc_bar_series.rb +37 -0
- data/test/drawing/tc_bubble_chart.rb +44 -0
- data/test/drawing/tc_bubble_series.rb +21 -0
- data/test/drawing/tc_cat_axis.rb +31 -0
- data/test/drawing/tc_cat_axis_data.rb +27 -0
- data/test/drawing/tc_chart.rb +110 -0
- data/test/drawing/tc_d_lbls.rb +57 -0
- data/test/drawing/tc_data_source.rb +23 -0
- data/test/drawing/tc_drawing.rb +80 -0
- data/test/drawing/tc_graphic_frame.rb +27 -0
- data/test/drawing/tc_hyperlink.rb +64 -0
- data/test/drawing/tc_line_3d_chart.rb +47 -0
- data/test/drawing/tc_line_chart.rb +39 -0
- data/test/drawing/tc_line_series.rb +71 -0
- data/test/drawing/tc_marker.rb +44 -0
- 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_one_cell_anchor.rb +66 -0
- data/test/drawing/tc_pic.rb +106 -0
- data/test/drawing/tc_picture_locking.rb +72 -0
- data/test/drawing/tc_pie_3D_chart.rb +28 -0
- data/test/drawing/tc_pie_series.rb +32 -0
- data/test/drawing/tc_scaling.rb +36 -0
- data/test/drawing/tc_scatter_chart.rb +48 -0
- data/test/drawing/tc_scatter_series.rb +45 -0
- data/test/drawing/tc_ser_axis.rb +31 -0
- data/test/drawing/tc_series.rb +23 -0
- data/test/drawing/tc_series_title.rb +33 -0
- data/test/drawing/tc_str_data.rb +18 -0
- data/test/drawing/tc_str_val.rb +21 -0
- data/test/drawing/tc_title.rb +49 -0
- data/test/drawing/tc_two_cell_anchor.rb +36 -0
- data/test/drawing/tc_val_axis.rb +24 -0
- data/test/drawing/tc_view_3D.rb +54 -0
- data/test/drawing/tc_vml_drawing.rb +25 -0
- data/test/drawing/tc_vml_shape.rb +106 -0
- data/test/profile.rb +24 -0
- data/test/rels/tc_relationship.rb +44 -0
- data/test/rels/tc_relationships.rb +37 -0
- data/test/stylesheet/tc_border.rb +37 -0
- data/test/stylesheet/tc_border_pr.rb +32 -0
- data/test/stylesheet/tc_cell_alignment.rb +81 -0
- data/test/stylesheet/tc_cell_protection.rb +29 -0
- data/test/stylesheet/tc_cell_style.rb +57 -0
- data/test/stylesheet/tc_color.rb +43 -0
- data/test/stylesheet/tc_dxf.rb +81 -0
- data/test/stylesheet/tc_fill.rb +18 -0
- data/test/stylesheet/tc_font.rb +121 -0
- data/test/stylesheet/tc_gradient_fill.rb +72 -0
- data/test/stylesheet/tc_gradient_stop.rb +31 -0
- data/test/stylesheet/tc_num_fmt.rb +30 -0
- data/test/stylesheet/tc_pattern_fill.rb +43 -0
- data/test/stylesheet/tc_styles.rb +235 -0
- data/test/stylesheet/tc_table_style.rb +44 -0
- data/test/stylesheet/tc_table_style_element.rb +45 -0
- data/test/stylesheet/tc_table_styles.rb +29 -0
- data/test/stylesheet/tc_xf.rb +120 -0
- data/test/tc_axlsx.rb +72 -0
- data/test/tc_helper.rb +10 -0
- data/test/tc_package.rb +233 -0
- data/test/util/tc_mime_type_utils.rb +13 -0
- data/test/util/tc_serialized_attributes.rb +19 -0
- data/test/util/tc_simple_typed_list.rb +77 -0
- data/test/util/tc_validators.rb +210 -0
- data/test/workbook/tc_defined_name.rb +49 -0
- data/test/workbook/tc_shared_strings_table.rb +58 -0
- data/test/workbook/tc_workbook.rb +139 -0
- data/test/workbook/tc_workbook_view.rb +50 -0
- data/test/workbook/worksheet/auto_filter/tc_auto_filter.rb +38 -0
- data/test/workbook/worksheet/auto_filter/tc_filter_column.rb +76 -0
- data/test/workbook/worksheet/auto_filter/tc_filters.rb +50 -0
- data/test/workbook/worksheet/tc_break.rb +49 -0
- data/test/workbook/worksheet/tc_cell.rb +358 -0
- data/test/workbook/worksheet/tc_cfvo.rb +31 -0
- data/test/workbook/worksheet/tc_col.rb +78 -0
- data/test/workbook/worksheet/tc_color_scale.rb +58 -0
- data/test/workbook/worksheet/tc_comment.rb +72 -0
- data/test/workbook/worksheet/tc_comments.rb +57 -0
- data/test/workbook/worksheet/tc_conditional_formatting.rb +224 -0
- data/test/workbook/worksheet/tc_data_bar.rb +46 -0
- data/test/workbook/worksheet/tc_data_validation.rb +265 -0
- data/test/workbook/worksheet/tc_date_time_converter.rb +124 -0
- data/test/workbook/worksheet/tc_header_footer.rb +151 -0
- data/test/workbook/worksheet/tc_icon_set.rb +45 -0
- data/test/workbook/worksheet/tc_page_margins.rb +97 -0
- data/test/workbook/worksheet/tc_page_set_up_pr.rb +15 -0
- data/test/workbook/worksheet/tc_page_setup.rb +143 -0
- data/test/workbook/worksheet/tc_pane.rb +54 -0
- data/test/workbook/worksheet/tc_pivot_table.rb +120 -0
- data/test/workbook/worksheet/tc_pivot_table_cache_definition.rb +54 -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_rich_text.rb +44 -0
- data/test/workbook/worksheet/tc_rich_text_run.rb +172 -0
- data/test/workbook/worksheet/tc_row.rb +117 -0
- data/test/workbook/worksheet/tc_selection.rb +55 -0
- data/test/workbook/worksheet/tc_sheet_calc_pr.rb +18 -0
- data/test/workbook/worksheet/tc_sheet_format_pr.rb +88 -0
- data/test/workbook/worksheet/tc_sheet_pr.rb +49 -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_table.rb +68 -0
- data/test/workbook/worksheet/tc_table_style_info.rb +53 -0
- data/test/workbook/worksheet/tc_worksheet.rb +577 -0
- data/test/workbook/worksheet/tc_worksheet_hyperlink.rb +55 -0
- metadata +583 -0
|
@@ -0,0 +1,72 @@
|
|
|
1
|
+
require 'tc_helper.rb'
|
|
2
|
+
|
|
3
|
+
class TestGradientFill < Test::Unit::TestCase
|
|
4
|
+
|
|
5
|
+
def setup
|
|
6
|
+
@item = Axlsx::GradientFill.new
|
|
7
|
+
end
|
|
8
|
+
|
|
9
|
+
def teardown
|
|
10
|
+
end
|
|
11
|
+
|
|
12
|
+
|
|
13
|
+
def test_initialiation
|
|
14
|
+
assert_equal(@item.type, :linear)
|
|
15
|
+
assert_equal(@item.degree, nil)
|
|
16
|
+
assert_equal(@item.left, nil)
|
|
17
|
+
assert_equal(@item.right, nil)
|
|
18
|
+
assert_equal(@item.top, nil)
|
|
19
|
+
assert_equal(@item.bottom, nil)
|
|
20
|
+
assert(@item.stop.is_a?(Axlsx::SimpleTypedList))
|
|
21
|
+
end
|
|
22
|
+
|
|
23
|
+
def test_type
|
|
24
|
+
assert_raise(ArgumentError) { @item.type = 7 }
|
|
25
|
+
assert_nothing_raised { @item.type = :path }
|
|
26
|
+
assert_equal(@item.type, :path)
|
|
27
|
+
end
|
|
28
|
+
|
|
29
|
+
def test_degree
|
|
30
|
+
assert_raise(ArgumentError) { @item.degree = -7 }
|
|
31
|
+
assert_nothing_raised { @item.degree = 5.0 }
|
|
32
|
+
assert_equal(@item.degree, 5.0)
|
|
33
|
+
end
|
|
34
|
+
|
|
35
|
+
def test_left
|
|
36
|
+
assert_raise(ArgumentError) { @item.left = -1.1 }
|
|
37
|
+
assert_nothing_raised { @item.left = 1.0 }
|
|
38
|
+
assert_equal(@item.left, 1.0)
|
|
39
|
+
end
|
|
40
|
+
|
|
41
|
+
def test_right
|
|
42
|
+
assert_raise(ArgumentError) { @item.right = -1.1 }
|
|
43
|
+
assert_nothing_raised { @item.right = 0.5 }
|
|
44
|
+
assert_equal(@item.right, 0.5)
|
|
45
|
+
end
|
|
46
|
+
|
|
47
|
+
def test_top
|
|
48
|
+
assert_raise(ArgumentError) { @item.top = -1.1 }
|
|
49
|
+
assert_nothing_raised { @item.top = 1.0 }
|
|
50
|
+
assert_equal(@item.top, 1.0)
|
|
51
|
+
end
|
|
52
|
+
|
|
53
|
+
def test_bottom
|
|
54
|
+
assert_raise(ArgumentError) { @item.bottom = -1.1 }
|
|
55
|
+
assert_nothing_raised { @item.bottom = 0.0 }
|
|
56
|
+
assert_equal(@item.bottom, 0.0)
|
|
57
|
+
end
|
|
58
|
+
|
|
59
|
+
def test_stop
|
|
60
|
+
@item.stop << Axlsx::GradientStop.new(Axlsx::Color.new(:rgb=>"00000000"), 0.5)
|
|
61
|
+
assert(@item.stop.size == 1)
|
|
62
|
+
assert(@item.stop.last.is_a?(Axlsx::GradientStop))
|
|
63
|
+
end
|
|
64
|
+
|
|
65
|
+
def test_to_xml_string
|
|
66
|
+
@item.stop << Axlsx::GradientStop.new(Axlsx::Color.new(:rgb => "000000"), 0.5)
|
|
67
|
+
@item.stop << Axlsx::GradientStop.new(Axlsx::Color.new(:rgb => "FFFFFF"), 0.5)
|
|
68
|
+
@item.type = :path
|
|
69
|
+
doc = Nokogiri::XML(@item.to_xml_string)
|
|
70
|
+
assert(doc.xpath("//color[@rgb='FF000000']"))
|
|
71
|
+
end
|
|
72
|
+
end
|
|
@@ -0,0 +1,31 @@
|
|
|
1
|
+
require 'tc_helper.rb'
|
|
2
|
+
|
|
3
|
+
class TestGradientStop < Test::Unit::TestCase
|
|
4
|
+
|
|
5
|
+
def setup
|
|
6
|
+
@item = Axlsx::GradientStop.new(Axlsx::Color.new(:rgb=>"FFFF0000"), 1.0)
|
|
7
|
+
end
|
|
8
|
+
|
|
9
|
+
def teardown
|
|
10
|
+
end
|
|
11
|
+
|
|
12
|
+
|
|
13
|
+
def test_initialiation
|
|
14
|
+
assert_equal(@item.color.rgb, "FFFF0000")
|
|
15
|
+
assert_equal(@item.position, 1.0)
|
|
16
|
+
end
|
|
17
|
+
|
|
18
|
+
def test_position
|
|
19
|
+
assert_raise(ArgumentError) { @item.position = -1.1 }
|
|
20
|
+
assert_nothing_raised { @item.position = 0.0 }
|
|
21
|
+
assert_equal(@item.position, 0.0)
|
|
22
|
+
end
|
|
23
|
+
|
|
24
|
+
def test_color
|
|
25
|
+
assert_raise(ArgumentError) { @item.color = nil }
|
|
26
|
+
color = Axlsx::Color.new(:rgb=>"FF0000FF")
|
|
27
|
+
@item.color = color
|
|
28
|
+
assert_equal(@item.color.rgb, "FF0000FF")
|
|
29
|
+
end
|
|
30
|
+
|
|
31
|
+
end
|
|
@@ -0,0 +1,30 @@
|
|
|
1
|
+
require 'tc_helper.rb'
|
|
2
|
+
|
|
3
|
+
class TestNumFmt < Test::Unit::TestCase
|
|
4
|
+
|
|
5
|
+
def setup
|
|
6
|
+
@item = Axlsx::NumFmt.new
|
|
7
|
+
end
|
|
8
|
+
|
|
9
|
+
def teardown
|
|
10
|
+
end
|
|
11
|
+
|
|
12
|
+
|
|
13
|
+
def test_initialiation
|
|
14
|
+
assert_equal(@item.numFmtId, 0)
|
|
15
|
+
assert_equal(@item.formatCode, "")
|
|
16
|
+
end
|
|
17
|
+
|
|
18
|
+
def test_numFmtId
|
|
19
|
+
assert_raise(ArgumentError) { @item.numFmtId = -1.1 }
|
|
20
|
+
assert_nothing_raised { @item.numFmtId = 2 }
|
|
21
|
+
assert_equal(@item.numFmtId, 2)
|
|
22
|
+
end
|
|
23
|
+
|
|
24
|
+
def test_fomatCode
|
|
25
|
+
assert_raise(ArgumentError) { @item.formatCode = -1.1 }
|
|
26
|
+
assert_nothing_raised { @item.formatCode = "0" }
|
|
27
|
+
assert_equal(@item.formatCode, "0")
|
|
28
|
+
end
|
|
29
|
+
|
|
30
|
+
end
|
|
@@ -0,0 +1,43 @@
|
|
|
1
|
+
require 'tc_helper.rb'
|
|
2
|
+
|
|
3
|
+
class TestPatternFill < Test::Unit::TestCase
|
|
4
|
+
|
|
5
|
+
def setup
|
|
6
|
+
@item = Axlsx::PatternFill.new
|
|
7
|
+
end
|
|
8
|
+
|
|
9
|
+
def teardown
|
|
10
|
+
end
|
|
11
|
+
|
|
12
|
+
|
|
13
|
+
def test_initialiation
|
|
14
|
+
assert_equal(@item.patternType, :none)
|
|
15
|
+
assert_equal(@item.bgColor, nil)
|
|
16
|
+
assert_equal(@item.fgColor, nil)
|
|
17
|
+
end
|
|
18
|
+
|
|
19
|
+
def test_bgColor
|
|
20
|
+
assert_raise(ArgumentError) { @item.bgColor = -1.1 }
|
|
21
|
+
assert_nothing_raised { @item.bgColor = Axlsx::Color.new }
|
|
22
|
+
assert_equal(@item.bgColor.rgb, "FF000000")
|
|
23
|
+
end
|
|
24
|
+
|
|
25
|
+
def test_fgColor
|
|
26
|
+
assert_raise(ArgumentError) { @item.fgColor = -1.1 }
|
|
27
|
+
assert_nothing_raised { @item.fgColor = Axlsx::Color.new }
|
|
28
|
+
assert_equal(@item.fgColor.rgb, "FF000000")
|
|
29
|
+
end
|
|
30
|
+
|
|
31
|
+
def test_pattern_type
|
|
32
|
+
assert_raise(ArgumentError) { @item.patternType = -1.1 }
|
|
33
|
+
assert_nothing_raised { @item.patternType = :lightUp }
|
|
34
|
+
assert_equal(@item.patternType, :lightUp)
|
|
35
|
+
end
|
|
36
|
+
|
|
37
|
+
def test_to_xml_string
|
|
38
|
+
@item = Axlsx::PatternFill.new :bgColor => Axlsx::Color.new(:rgb => "FF0000"), :fgColor => Axlsx::Color.new(:rgb=>"00FF00")
|
|
39
|
+
doc = Nokogiri::XML(@item.to_xml_string)
|
|
40
|
+
assert(doc.xpath('//color[@rgb="FFFF0000"]'))
|
|
41
|
+
assert(doc.xpath('//color[@rgb="FF00FF00"]'))
|
|
42
|
+
end
|
|
43
|
+
end
|
|
@@ -0,0 +1,235 @@
|
|
|
1
|
+
require 'tc_helper.rb'
|
|
2
|
+
|
|
3
|
+
class TestStyles < Test::Unit::TestCase
|
|
4
|
+
def setup
|
|
5
|
+
@styles = Axlsx::Styles.new
|
|
6
|
+
end
|
|
7
|
+
def teardown
|
|
8
|
+
end
|
|
9
|
+
|
|
10
|
+
def test_valid_document
|
|
11
|
+
schema = Nokogiri::XML::Schema(File.open(Axlsx::SML_XSD))
|
|
12
|
+
doc = Nokogiri::XML(@styles.to_xml_string)
|
|
13
|
+
errors = []
|
|
14
|
+
schema.validate(doc).each do |error|
|
|
15
|
+
errors.push error
|
|
16
|
+
puts error.message
|
|
17
|
+
end
|
|
18
|
+
assert(errors.size == 0)
|
|
19
|
+
end
|
|
20
|
+
def test_add_style_border_hash
|
|
21
|
+
border_count = @styles.borders.size
|
|
22
|
+
@styles.add_style :border => {:style => :thin, :color => "FFFF0000"}
|
|
23
|
+
assert_equal(@styles.borders.size, border_count + 1)
|
|
24
|
+
assert_equal(@styles.borders.last.prs.last.color.rgb, "FFFF0000")
|
|
25
|
+
assert_raise(ArgumentError) { @styles.add_style :border => {:color => "FFFF0000"} }
|
|
26
|
+
assert_equal @styles.borders.last.prs.size, 4
|
|
27
|
+
end
|
|
28
|
+
|
|
29
|
+
def test_add_style_border_edges
|
|
30
|
+
@styles.add_style :border => { :style => :thin, :color => "0000FFFF", :edges => [:top, :bottom] }
|
|
31
|
+
parts = @styles.borders.last.prs
|
|
32
|
+
parts.each { |pr| assert_equal(pr.color.rgb, "0000FFFF", "Style is applied to #{pr.name} properly") }
|
|
33
|
+
assert((parts.map { |pr| pr.name.to_s }.sort && ['bottom', 'top']).size == 2, "specify two edges, and you get two border prs")
|
|
34
|
+
end
|
|
35
|
+
|
|
36
|
+
def test_do_not_alter_options_in_add_style
|
|
37
|
+
#This should test all options, but for now - just the bits that we know caused some pain
|
|
38
|
+
options = { :border => { :style => :thin, :color =>"FF000000" } }
|
|
39
|
+
@styles.add_style options
|
|
40
|
+
assert_equal options[:border][:style], :thin, 'thin style is stil in option'
|
|
41
|
+
assert_equal options[:border][:color], "FF000000", 'color is stil in option'
|
|
42
|
+
end
|
|
43
|
+
|
|
44
|
+
def test_parse_num_fmt
|
|
45
|
+
f_code = {:format_code => "YYYY/MM"}
|
|
46
|
+
num_fmt = {:num_fmt => 5}
|
|
47
|
+
assert_equal(@styles.parse_num_fmt_options, nil, 'noop if neither :format_code or :num_fmt exist')
|
|
48
|
+
max = @styles.numFmts.map{ |nf| nf.numFmtId }.max
|
|
49
|
+
@styles.parse_num_fmt_options(f_code)
|
|
50
|
+
assert_equal(@styles.numFmts.last.numFmtId, max + 1, "new numfmts gets next available id")
|
|
51
|
+
assert(@styles.parse_num_fmt_options(num_fmt).is_a?(Integer), "Should return the provided num_fmt if not dxf")
|
|
52
|
+
assert(@styles.parse_num_fmt_options(num_fmt.merge({:type => :dxf})).is_a?(Axlsx::NumFmt), "Makes a new NumFmt if dxf")
|
|
53
|
+
end
|
|
54
|
+
|
|
55
|
+
def test_parse_border_options_hash_required_keys
|
|
56
|
+
assert_raise(ArgumentError, "Require color key") { @styles.parse_border_options(:border => { :style => :thin }) }
|
|
57
|
+
assert_raise(ArgumentError, "Require style key") { @styles.parse_border_options(:border => { :color => "FF0d0d0d" }) }
|
|
58
|
+
assert_nothing_raised { @styles.parse_border_options(:border => { :style => :thin, :color => "FF000000"} ) }
|
|
59
|
+
end
|
|
60
|
+
|
|
61
|
+
def test_parse_border_basic_options
|
|
62
|
+
b_opts = {:border => { :diagonalUp => 1, :edges => [:left, :right], :color => "FFDADADA", :style => :thick } }
|
|
63
|
+
b = @styles.parse_border_options b_opts
|
|
64
|
+
assert(b.is_a? Integer)
|
|
65
|
+
assert_equal(@styles.parse_border_options(b_opts.merge({:type => :dxf})).class,Axlsx::Border)
|
|
66
|
+
assert(@styles.borders.last.diagonalUp == 1, "border options are passed in to the initializer")
|
|
67
|
+
end
|
|
68
|
+
|
|
69
|
+
def test_parse_border_options_edges
|
|
70
|
+
b_opts = {:border => { :diagonalUp => 1, :edges => [:left, :right], :color => "FFDADADA", :style => :thick } }
|
|
71
|
+
@styles.parse_border_options b_opts
|
|
72
|
+
b = @styles.borders.last
|
|
73
|
+
left = b.prs.select { |bpr| bpr.name == :left }[0]
|
|
74
|
+
right = b.prs.select { |bpr| bpr.name == :right }[0]
|
|
75
|
+
top = b.prs.select { |bpr| bpr.name == :top }[0]
|
|
76
|
+
bottom = b.prs.select { |bpr| bpr.name == :bottom }[0]
|
|
77
|
+
assert_equal(top, nil, "unspecified top edge should not be created")
|
|
78
|
+
assert_equal(bottom, nil, "unspecified bottom edge should not be created")
|
|
79
|
+
assert(left.is_a?(Axlsx::BorderPr), "specified left edge is set")
|
|
80
|
+
assert(right.is_a?(Axlsx::BorderPr), "specified right edge is set")
|
|
81
|
+
assert_equal(left.style,right.style, "edge parts have the same style")
|
|
82
|
+
assert_equal(left.style, :thick, "the style is THICK")
|
|
83
|
+
assert_equal(right.color.rgb,left.color.rgb, "edge parts are colors are the same")
|
|
84
|
+
assert_equal(right.color.rgb,"FFDADADA", "edge color rgb is correct")
|
|
85
|
+
end
|
|
86
|
+
|
|
87
|
+
def test_parse_border_options_noop
|
|
88
|
+
assert_equal(@styles.parse_border_options({}), nil, "noop if the border key is not in options")
|
|
89
|
+
end
|
|
90
|
+
|
|
91
|
+
def test_parse_border_options_integer_xf
|
|
92
|
+
assert_equal(@styles.parse_border_options(:border => 1), 1)
|
|
93
|
+
assert_raise(ArgumentError, "unknown border index") {@styles.parse_border_options(:border => 100) }
|
|
94
|
+
end
|
|
95
|
+
|
|
96
|
+
def test_parse_border_options_integer_dxf
|
|
97
|
+
b_opts = { :border => { :edges => [:left, :right], :color => "FFFFFFFF", :style=> :thick } }
|
|
98
|
+
b = @styles.parse_border_options(b_opts)
|
|
99
|
+
b2 = @styles.parse_border_options(:border => b, :type => :dxf)
|
|
100
|
+
assert(b2.is_a?(Axlsx::Border), "Cloned existing border object")
|
|
101
|
+
end
|
|
102
|
+
|
|
103
|
+
def test_parse_alignment_options
|
|
104
|
+
assert_equal(@styles.parse_alignment_options {}, nil, "noop if :alignment is not set")
|
|
105
|
+
assert(@styles.parse_alignment_options(:alignment => {}).is_a?(Axlsx::CellAlignment))
|
|
106
|
+
end
|
|
107
|
+
|
|
108
|
+
def test_parse_font_using_defaults
|
|
109
|
+
original = @styles.fonts.first
|
|
110
|
+
@styles.add_style :b => 1, :sz => 99
|
|
111
|
+
created = @styles.fonts.last
|
|
112
|
+
original_attributes = original.instance_values
|
|
113
|
+
assert_equal(1, created.b)
|
|
114
|
+
assert_equal(99, created.sz)
|
|
115
|
+
copied = original_attributes.reject{ |key, value| %w(b sz).include? key }
|
|
116
|
+
copied.each do |key, value|
|
|
117
|
+
assert_equal(created.instance_values[key], value)
|
|
118
|
+
end
|
|
119
|
+
end
|
|
120
|
+
|
|
121
|
+
def test_parse_font_options
|
|
122
|
+
options = {
|
|
123
|
+
:fg_color => "FF050505",
|
|
124
|
+
:sz => 20,
|
|
125
|
+
:b => 1,
|
|
126
|
+
:i => 1,
|
|
127
|
+
:u => 1,
|
|
128
|
+
:strike => 1,
|
|
129
|
+
:outline => 1,
|
|
130
|
+
:shadow => 1,
|
|
131
|
+
:charset => 9,
|
|
132
|
+
:family => 1,
|
|
133
|
+
:font_name => "woot font"
|
|
134
|
+
}
|
|
135
|
+
assert_equal(@styles.parse_font_options {}, nil, "noop if no font keys are set")
|
|
136
|
+
assert_equal(@styles.parse_font_options(:b=>1).class, Fixnum, "return index of font if not :dxf type")
|
|
137
|
+
assert_equal(@styles.parse_font_options(:b=>1, :type => :dxf).class, Axlsx::Font, "return font object if :dxf type")
|
|
138
|
+
|
|
139
|
+
f = @styles.parse_font_options(options.merge(:type => :dxf))
|
|
140
|
+
color = options.delete(:fg_color)
|
|
141
|
+
options[:name] = options.delete(:font_name)
|
|
142
|
+
options.each do |key, value|
|
|
143
|
+
assert_equal(f.send(key), value, "assert that #{key} was parsed")
|
|
144
|
+
end
|
|
145
|
+
assert_equal(f.color.rgb, color)
|
|
146
|
+
end
|
|
147
|
+
|
|
148
|
+
def test_parse_fill_options
|
|
149
|
+
assert_equal(@styles.parse_fill_options {}, nil, "noop if no fill keys are set")
|
|
150
|
+
assert_equal(@styles.parse_fill_options(:bg_color => "DE").class, Fixnum, "return index of fill if not :dxf type")
|
|
151
|
+
assert_equal(@styles.parse_fill_options(:bg_color => "DE", :type => :dxf).class, Axlsx::Fill, "return fill object if :dxf type")
|
|
152
|
+
f = @styles.parse_fill_options(:bg_color => "DE", :type => :dxf)
|
|
153
|
+
assert(f.fill_type.bgColor.rgb == "FFDEDEDE")
|
|
154
|
+
end
|
|
155
|
+
|
|
156
|
+
def test_parse_protection_options
|
|
157
|
+
assert_equal(@styles.parse_protection_options {}, nil, "noop if no protection keys are set")
|
|
158
|
+
assert_equal(@styles.parse_protection_options(:hidden => 1).class, Axlsx::CellProtection, "creates a new cell protection object")
|
|
159
|
+
end
|
|
160
|
+
|
|
161
|
+
def test_add_style
|
|
162
|
+
fill_count = @styles.fills.size
|
|
163
|
+
font_count = @styles.fonts.size
|
|
164
|
+
xf_count = @styles.cellXfs.size
|
|
165
|
+
|
|
166
|
+
@styles.add_style :bg_color=>"FF000000", :fg_color=>"FFFFFFFF", :sz=>13, :num_fmt=>Axlsx::NUM_FMT_PERCENT, :alignment=>{:horizontal=>:left}, :border=>Axlsx::STYLE_THIN_BORDER, :hidden=>true, :locked=>true
|
|
167
|
+
assert_equal(@styles.fills.size, fill_count+1)
|
|
168
|
+
assert_equal(@styles.fonts.size, font_count+1)
|
|
169
|
+
assert_equal(@styles.cellXfs.size, xf_count+1)
|
|
170
|
+
xf = @styles.cellXfs.last
|
|
171
|
+
assert_equal(xf.fillId, (@styles.fills.size-1), "points to the last created fill")
|
|
172
|
+
assert_equal(@styles.fills.last.fill_type.fgColor.rgb, "FF000000", "fill created with color")
|
|
173
|
+
|
|
174
|
+
assert_equal(xf.fontId, (@styles.fonts.size-1), "points to the last created font")
|
|
175
|
+
assert_equal(@styles.fonts.last.sz, 13, "font sz applied")
|
|
176
|
+
assert_equal(@styles.fonts.last.color.rgb, "FFFFFFFF", "font color applied")
|
|
177
|
+
|
|
178
|
+
assert_equal(xf.borderId, Axlsx::STYLE_THIN_BORDER, "border id is set")
|
|
179
|
+
assert_equal(xf.numFmtId, Axlsx::NUM_FMT_PERCENT, "number format id is set")
|
|
180
|
+
|
|
181
|
+
assert(xf.alignment.is_a?(Axlsx::CellAlignment), "alignment was created")
|
|
182
|
+
assert_equal(xf.alignment.horizontal, :left, "horizontal alignment applied")
|
|
183
|
+
assert_equal(xf.protection.hidden, true, "hidden protection set")
|
|
184
|
+
assert_equal(xf.protection.locked, true, "cell locking set")
|
|
185
|
+
assert_raise(ArgumentError, "should reject invalid borderId") { @styles.add_style :border => 2 }
|
|
186
|
+
|
|
187
|
+
|
|
188
|
+
assert_equal(xf.applyProtection, true, "protection applied")
|
|
189
|
+
assert_equal(xf.applyBorder, true, "border applied")
|
|
190
|
+
assert_equal(xf.applyNumberFormat,true, "number format applied")
|
|
191
|
+
assert_equal(xf.applyAlignment, true, "alignment applied")
|
|
192
|
+
end
|
|
193
|
+
|
|
194
|
+
def test_basic_add_style_dxf
|
|
195
|
+
border_count = @styles.borders.size
|
|
196
|
+
@styles.add_style :border => {:style => :thin, :color => "FFFF0000"}, :type => :dxf
|
|
197
|
+
assert_equal(@styles.borders.size, border_count, "styles borders not affected")
|
|
198
|
+
assert_equal(@styles.dxfs.last.border.prs.last.color.rgb, "FFFF0000")
|
|
199
|
+
assert_raise(ArgumentError) { @styles.add_style :border => {:color => "FFFF0000"}, :type => :dxf }
|
|
200
|
+
assert_equal @styles.borders.last.prs.size, 4
|
|
201
|
+
end
|
|
202
|
+
|
|
203
|
+
def test_add_style_dxf
|
|
204
|
+
fill_count = @styles.fills.size
|
|
205
|
+
font_count = @styles.fonts.size
|
|
206
|
+
dxf_count = @styles.dxfs.size
|
|
207
|
+
|
|
208
|
+
style = @styles.add_style :bg_color=>"FF000000", :fg_color=>"FFFFFFFF", :sz=>13, :alignment=>{:horizontal=>:left}, :border=>{:style => :thin, :color => "FFFF0000"}, :hidden=>true, :locked=>true, :type => :dxf
|
|
209
|
+
assert_equal(@styles.dxfs.size, dxf_count+1)
|
|
210
|
+
assert_equal(0, style, "returns the zero-based dxfId")
|
|
211
|
+
|
|
212
|
+
dxf = @styles.dxfs.last
|
|
213
|
+
assert_equal(@styles.dxfs.last.fill.fill_type.bgColor.rgb, "FF000000", "fill created with color")
|
|
214
|
+
|
|
215
|
+
assert_equal(font_count, (@styles.fonts.size), "font not created under styles")
|
|
216
|
+
assert_equal(fill_count, (@styles.fills.size), "fill not created under styles")
|
|
217
|
+
|
|
218
|
+
assert(dxf.border.is_a?(Axlsx::Border), "border is set")
|
|
219
|
+
assert_equal(nil, dxf.numFmt, "number format is not set")
|
|
220
|
+
|
|
221
|
+
assert(dxf.alignment.is_a?(Axlsx::CellAlignment), "alignment was created")
|
|
222
|
+
assert_equal(dxf.alignment.horizontal, :left, "horizontal alignment applied")
|
|
223
|
+
assert_equal(dxf.protection.hidden, true, "hidden protection set")
|
|
224
|
+
assert_equal(dxf.protection.locked, true, "cell locking set")
|
|
225
|
+
assert_raise(ArgumentError, "should reject invalid borderId") { @styles.add_style :border => 3 }
|
|
226
|
+
end
|
|
227
|
+
|
|
228
|
+
def test_multiple_dxf
|
|
229
|
+
# add a second style
|
|
230
|
+
style = @styles.add_style :bg_color=>"00000000", :fg_color=>"FFFFFFFF", :sz=>13, :alignment=>{:horizontal=>:left}, :border=>{:style => :thin, :color => "FFFF0000"}, :hidden=>true, :locked=>true, :type => :dxf
|
|
231
|
+
assert_equal(0, style, "returns the first dxfId")
|
|
232
|
+
style = @styles.add_style :bg_color=>"FF000000", :fg_color=>"FFFFFFFF", :sz=>13, :alignment=>{:horizontal=>:left}, :border=>{:style => :thin, :color => "FFFF0000"}, :hidden=>true, :locked=>true, :type => :dxf
|
|
233
|
+
assert_equal(1, style, "returns the second dxfId")
|
|
234
|
+
end
|
|
235
|
+
end
|
|
@@ -0,0 +1,44 @@
|
|
|
1
|
+
require 'tc_helper.rb'
|
|
2
|
+
|
|
3
|
+
class TestTableStyle < Test::Unit::TestCase
|
|
4
|
+
|
|
5
|
+
def setup
|
|
6
|
+
@item = Axlsx::TableStyle.new "fisher"
|
|
7
|
+
end
|
|
8
|
+
|
|
9
|
+
def teardown
|
|
10
|
+
end
|
|
11
|
+
|
|
12
|
+
def test_initialiation
|
|
13
|
+
assert_equal(@item.name, "fisher")
|
|
14
|
+
assert_equal(@item.pivot, nil)
|
|
15
|
+
assert_equal(@item.table, nil)
|
|
16
|
+
ts = Axlsx::TableStyle.new 'price', :pivot => true, :table => true
|
|
17
|
+
assert_equal(ts.name, 'price')
|
|
18
|
+
assert_equal(ts.pivot, true)
|
|
19
|
+
assert_equal(ts.table, true)
|
|
20
|
+
end
|
|
21
|
+
|
|
22
|
+
def test_name
|
|
23
|
+
assert_raise(ArgumentError) { @item.name = -1.1 }
|
|
24
|
+
assert_nothing_raised { @item.name = "lovely table style" }
|
|
25
|
+
assert_equal(@item.name, "lovely table style")
|
|
26
|
+
end
|
|
27
|
+
|
|
28
|
+
def test_pivot
|
|
29
|
+
assert_raise(ArgumentError) { @item.pivot = -1.1 }
|
|
30
|
+
assert_nothing_raised { @item.pivot = true }
|
|
31
|
+
assert_equal(@item.pivot, true)
|
|
32
|
+
end
|
|
33
|
+
|
|
34
|
+
def test_table
|
|
35
|
+
assert_raise(ArgumentError) { @item.table = -1.1 }
|
|
36
|
+
assert_nothing_raised { @item.table = true }
|
|
37
|
+
assert_equal(@item.table, true)
|
|
38
|
+
end
|
|
39
|
+
|
|
40
|
+
def test_to_xml_string
|
|
41
|
+
doc = Nokogiri::XML(@item.to_xml_string)
|
|
42
|
+
assert(doc.xpath("//tableStyle[@name='#{@item.name}']"))
|
|
43
|
+
end
|
|
44
|
+
end
|