caxlsx 2.0.2
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 +256 -0
- data/Rakefile +31 -0
- data/examples/2010_comments.rb +17 -0
- data/examples/anchor_swapping.rb +28 -0
- data/examples/auto_filter.rb +16 -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 +74 -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 +777 -0
- data/examples/extractive.rb +45 -0
- data/examples/image1.jpeg +0 -0
- data/examples/ios_preview.rb +14 -0
- data/examples/page_setup.rb +11 -0
- data/examples/pivot_table.rb +39 -0
- data/examples/sheet_protection.rb +10 -0
- data/examples/skydrive/real_example.rb +63 -0
- data/examples/styles.rb +66 -0
- data/examples/underline.rb +13 -0
- data/examples/wrap_text.rb +21 -0
- data/lib/axlsx.rb +152 -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 +187 -0
- data/lib/axlsx/drawing/bar_3D_chart.rb +151 -0
- data/lib/axlsx/drawing/bar_series.rb +82 -0
- data/lib/axlsx/drawing/cat_axis.rb +85 -0
- data/lib/axlsx/drawing/chart.rb +232 -0
- data/lib/axlsx/drawing/d_lbls.rb +90 -0
- data/lib/axlsx/drawing/drawing.rb +162 -0
- data/lib/axlsx/drawing/graphic_frame.rb +54 -0
- data/lib/axlsx/drawing/hyperlink.rb +102 -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 +81 -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 +205 -0
- data/lib/axlsx/drawing/picture_locking.rb +44 -0
- data/lib/axlsx/drawing/pie_3D_chart.rb +48 -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 +65 -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 +352 -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 +134 -0
- data/lib/axlsx/stylesheet/cell_protection.rb +43 -0
- data/lib/axlsx/stylesheet/cell_style.rb +74 -0
- data/lib/axlsx/stylesheet/color.rb +78 -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 +79 -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 +79 -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 +392 -0
- data/lib/axlsx/util/options_parser.rb +15 -0
- data/lib/axlsx/util/parser.rb +44 -0
- data/lib/axlsx/util/serialized_attributes.rb +79 -0
- data/lib/axlsx/util/simple_typed_list.rb +203 -0
- data/lib/axlsx/util/storage.rb +146 -0
- data/lib/axlsx/util/validators.rb +300 -0
- data/lib/axlsx/version.rb +5 -0
- data/lib/axlsx/workbook/defined_name.rb +129 -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 +354 -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 +246 -0
- data/lib/axlsx/workbook/worksheet/break.rb +37 -0
- data/lib/axlsx/workbook/worksheet/cell.rb +416 -0
- data/lib/axlsx/workbook/worksheet/cell_serializer.rb +144 -0
- data/lib/axlsx/workbook/worksheet/cfvo.rb +62 -0
- data/lib/axlsx/workbook/worksheet/cfvos.rb +15 -0
- data/lib/axlsx/workbook/worksheet/col.rb +144 -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 +92 -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 +220 -0
- data/lib/axlsx/workbook/worksheet/conditional_formattings.rb +25 -0
- data/lib/axlsx/workbook/worksheet/data_bar.rb +131 -0
- data/lib/axlsx/workbook/worksheet/data_validation.rb +244 -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 +54 -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_margins.rb +99 -0
- data/lib/axlsx/workbook/worksheet/page_set_up_pr.rb +44 -0
- data/lib/axlsx/workbook/worksheet/page_setup.rb +242 -0
- data/lib/axlsx/workbook/worksheet/pane.rb +141 -0
- data/lib/axlsx/workbook/worksheet/pivot_table.rb +273 -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 +41 -0
- data/lib/axlsx/workbook/worksheet/protected_range.rb +49 -0
- data/lib/axlsx/workbook/worksheet/protected_ranges.rb +34 -0
- data/lib/axlsx/workbook/worksheet/row.rb +172 -0
- data/lib/axlsx/workbook/worksheet/row_breaks.rb +33 -0
- data/lib/axlsx/workbook/worksheet/selection.rb +103 -0
- data/lib/axlsx/workbook/worksheet/sheet_calc_pr.rb +29 -0
- data/lib/axlsx/workbook/worksheet/sheet_data.rb +25 -0
- data/lib/axlsx/workbook/worksheet/sheet_format_pr.rb +60 -0
- data/lib/axlsx/workbook/worksheet/sheet_pr.rb +69 -0
- data/lib/axlsx/workbook/worksheet/sheet_protection.rb +120 -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 +51 -0
- data/lib/axlsx/workbook/worksheet/tables.rb +31 -0
- data/lib/axlsx/workbook/worksheet/worksheet.rb +769 -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/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 +85 -0
- data/test/drawing/tc_bar_3D_chart.rb +71 -0
- data/test/drawing/tc_bar_series.rb +37 -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 +17 -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 +30 -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 +107 -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 +21 -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 +227 -0
- data/test/util/tc_serialized_attributes.rb +19 -0
- data/test/util/tc_simple_typed_list.rb +78 -0
- data/test/util/tc_validators.rb +186 -0
- data/test/workbook/tc_defined_name.rb +41 -0
- data/test/workbook/tc_shared_strings_table.rb +44 -0
- data/test/workbook/tc_workbook.rb +125 -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 +319 -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_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 +27 -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 +538 -0
- data/test/workbook/worksheet/tc_worksheet_hyperlink.rb +55 -0
- metadata +546 -0
|
@@ -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
|
|
@@ -0,0 +1,45 @@
|
|
|
1
|
+
require 'tc_helper.rb'
|
|
2
|
+
|
|
3
|
+
class TestTableStyleElement < Test::Unit::TestCase
|
|
4
|
+
|
|
5
|
+
def setup
|
|
6
|
+
@item = Axlsx::TableStyleElement.new
|
|
7
|
+
end
|
|
8
|
+
|
|
9
|
+
def teardown
|
|
10
|
+
end
|
|
11
|
+
|
|
12
|
+
def test_initialiation
|
|
13
|
+
assert_equal(@item.type, nil)
|
|
14
|
+
assert_equal(@item.size, nil)
|
|
15
|
+
assert_equal(@item.dxfId, nil)
|
|
16
|
+
options = { :type => :headerRow, :size => 10, :dxfId => 1 }
|
|
17
|
+
|
|
18
|
+
tse = Axlsx::TableStyleElement.new options
|
|
19
|
+
options.each { |key, value| assert_equal(tse.send(key.to_sym), value) }
|
|
20
|
+
end
|
|
21
|
+
|
|
22
|
+
def test_type
|
|
23
|
+
assert_raise(ArgumentError) { @item.type = -1.1 }
|
|
24
|
+
assert_nothing_raised { @item.type = :blankRow }
|
|
25
|
+
assert_equal(@item.type, :blankRow)
|
|
26
|
+
end
|
|
27
|
+
|
|
28
|
+
def test_size
|
|
29
|
+
assert_raise(ArgumentError) { @item.size = -1.1 }
|
|
30
|
+
assert_nothing_raised { @item.size = 2 }
|
|
31
|
+
assert_equal(@item.size, 2)
|
|
32
|
+
end
|
|
33
|
+
|
|
34
|
+
def test_dxfId
|
|
35
|
+
assert_raise(ArgumentError) { @item.dxfId = -1.1 }
|
|
36
|
+
assert_nothing_raised { @item.dxfId = 7 }
|
|
37
|
+
assert_equal(@item.dxfId, 7)
|
|
38
|
+
end
|
|
39
|
+
|
|
40
|
+
def test_to_xml_string
|
|
41
|
+
doc = Nokogiri::XML(@item.to_xml_string)
|
|
42
|
+
@item.type = :headerRow
|
|
43
|
+
assert(doc.xpath("//tableStyleElement[@type='#{@item.type.to_s}']"))
|
|
44
|
+
end
|
|
45
|
+
end
|
|
@@ -0,0 +1,29 @@
|
|
|
1
|
+
require 'tc_helper.rb'
|
|
2
|
+
|
|
3
|
+
class TestTableStyles < Test::Unit::TestCase
|
|
4
|
+
|
|
5
|
+
def setup
|
|
6
|
+
@item = Axlsx::TableStyles.new
|
|
7
|
+
end
|
|
8
|
+
|
|
9
|
+
def teardown
|
|
10
|
+
end
|
|
11
|
+
|
|
12
|
+
def test_initialiation
|
|
13
|
+
assert_equal(@item.defaultTableStyle, "TableStyleMedium9")
|
|
14
|
+
assert_equal(@item.defaultPivotStyle, "PivotStyleLight16")
|
|
15
|
+
end
|
|
16
|
+
|
|
17
|
+
def test_defaultTableStyle
|
|
18
|
+
assert_raise(ArgumentError) { @item.defaultTableStyle = -1.1 }
|
|
19
|
+
assert_nothing_raised { @item.defaultTableStyle = "anyones guess" }
|
|
20
|
+
assert_equal(@item.defaultTableStyle, "anyones guess")
|
|
21
|
+
end
|
|
22
|
+
|
|
23
|
+
def test_defaultPivotStyle
|
|
24
|
+
assert_raise(ArgumentError) { @item.defaultPivotStyle = -1.1 }
|
|
25
|
+
assert_nothing_raised { @item.defaultPivotStyle = "anyones guess" }
|
|
26
|
+
assert_equal(@item.defaultPivotStyle, "anyones guess")
|
|
27
|
+
end
|
|
28
|
+
|
|
29
|
+
end
|
|
@@ -0,0 +1,120 @@
|
|
|
1
|
+
require 'tc_helper.rb'
|
|
2
|
+
|
|
3
|
+
class TestXf < Test::Unit::TestCase
|
|
4
|
+
|
|
5
|
+
def setup
|
|
6
|
+
@item = Axlsx::Xf.new
|
|
7
|
+
end
|
|
8
|
+
|
|
9
|
+
def teardown
|
|
10
|
+
end
|
|
11
|
+
|
|
12
|
+
def test_initialiation
|
|
13
|
+
assert_equal(@item.alignment, nil)
|
|
14
|
+
assert_equal(@item.protection, nil)
|
|
15
|
+
assert_equal(@item.numFmtId, nil)
|
|
16
|
+
assert_equal(@item.fontId, nil)
|
|
17
|
+
assert_equal(@item.fillId, nil)
|
|
18
|
+
assert_equal(@item.borderId, nil)
|
|
19
|
+
assert_equal(@item.xfId, nil)
|
|
20
|
+
assert_equal(@item.quotePrefix, nil)
|
|
21
|
+
assert_equal(@item.pivotButton, nil)
|
|
22
|
+
assert_equal(@item.applyNumberFormat, nil)
|
|
23
|
+
assert_equal(@item.applyFont, nil)
|
|
24
|
+
assert_equal(@item.applyFill, nil)
|
|
25
|
+
assert_equal(@item.applyBorder, nil)
|
|
26
|
+
assert_equal(@item.applyAlignment, nil)
|
|
27
|
+
assert_equal(@item.applyProtection, nil)
|
|
28
|
+
end
|
|
29
|
+
|
|
30
|
+
def test_alignment
|
|
31
|
+
assert_raise(ArgumentError) { @item.alignment = -1.1 }
|
|
32
|
+
assert_nothing_raised { @item.alignment = Axlsx::CellAlignment.new }
|
|
33
|
+
assert(@item.alignment.is_a?(Axlsx::CellAlignment))
|
|
34
|
+
end
|
|
35
|
+
|
|
36
|
+
def test_protection
|
|
37
|
+
assert_raise(ArgumentError) { @item.protection = -1.1 }
|
|
38
|
+
assert_nothing_raised { @item.protection = Axlsx::CellProtection.new }
|
|
39
|
+
assert(@item.protection.is_a?(Axlsx::CellProtection))
|
|
40
|
+
end
|
|
41
|
+
|
|
42
|
+
def test_numFmtId
|
|
43
|
+
assert_raise(ArgumentError) { @item.numFmtId = -1.1 }
|
|
44
|
+
assert_nothing_raised { @item.numFmtId = 0 }
|
|
45
|
+
assert_equal(@item.numFmtId, 0)
|
|
46
|
+
end
|
|
47
|
+
|
|
48
|
+
def test_fillId
|
|
49
|
+
assert_raise(ArgumentError) { @item.fillId = -1.1 }
|
|
50
|
+
assert_nothing_raised { @item.fillId = 0 }
|
|
51
|
+
assert_equal(@item.fillId, 0)
|
|
52
|
+
end
|
|
53
|
+
|
|
54
|
+
def test_fontId
|
|
55
|
+
assert_raise(ArgumentError) { @item.fontId = -1.1 }
|
|
56
|
+
assert_nothing_raised { @item.fontId = 0 }
|
|
57
|
+
assert_equal(@item.fontId, 0)
|
|
58
|
+
end
|
|
59
|
+
|
|
60
|
+
def test_borderId
|
|
61
|
+
assert_raise(ArgumentError) { @item.borderId = -1.1 }
|
|
62
|
+
assert_nothing_raised { @item.borderId = 0 }
|
|
63
|
+
assert_equal(@item.borderId, 0)
|
|
64
|
+
end
|
|
65
|
+
|
|
66
|
+
def test_xfId
|
|
67
|
+
assert_raise(ArgumentError) { @item.xfId = -1.1 }
|
|
68
|
+
assert_nothing_raised { @item.xfId = 0 }
|
|
69
|
+
assert_equal(@item.xfId, 0)
|
|
70
|
+
end
|
|
71
|
+
|
|
72
|
+
def test_quotePrefix
|
|
73
|
+
assert_raise(ArgumentError) { @item.quotePrefix = -1.1 }
|
|
74
|
+
assert_nothing_raised { @item.quotePrefix = false }
|
|
75
|
+
assert_equal(@item.quotePrefix, false)
|
|
76
|
+
end
|
|
77
|
+
|
|
78
|
+
def test_pivotButton
|
|
79
|
+
assert_raise(ArgumentError) { @item.pivotButton = -1.1 }
|
|
80
|
+
assert_nothing_raised { @item.pivotButton = false }
|
|
81
|
+
assert_equal(@item.pivotButton, false)
|
|
82
|
+
end
|
|
83
|
+
|
|
84
|
+
def test_applyNumberFormat
|
|
85
|
+
assert_raise(ArgumentError) { @item.applyNumberFormat = -1.1 }
|
|
86
|
+
assert_nothing_raised { @item.applyNumberFormat = false }
|
|
87
|
+
assert_equal(@item.applyNumberFormat, false)
|
|
88
|
+
end
|
|
89
|
+
|
|
90
|
+
def test_applyFont
|
|
91
|
+
assert_raise(ArgumentError) { @item.applyFont = -1.1 }
|
|
92
|
+
assert_nothing_raised { @item.applyFont = false }
|
|
93
|
+
assert_equal(@item.applyFont, false)
|
|
94
|
+
end
|
|
95
|
+
|
|
96
|
+
def test_applyFill
|
|
97
|
+
assert_raise(ArgumentError) { @item.applyFill = -1.1 }
|
|
98
|
+
assert_nothing_raised { @item.applyFill = false }
|
|
99
|
+
assert_equal(@item.applyFill, false)
|
|
100
|
+
end
|
|
101
|
+
|
|
102
|
+
def test_applyBorder
|
|
103
|
+
assert_raise(ArgumentError) { @item.applyBorder = -1.1 }
|
|
104
|
+
assert_nothing_raised { @item.applyBorder = false }
|
|
105
|
+
assert_equal(@item.applyBorder, false)
|
|
106
|
+
end
|
|
107
|
+
|
|
108
|
+
def test_applyAlignment
|
|
109
|
+
assert_raise(ArgumentError) { @item.applyAlignment = -1.1 }
|
|
110
|
+
assert_nothing_raised { @item.applyAlignment = false }
|
|
111
|
+
assert_equal(@item.applyAlignment, false)
|
|
112
|
+
end
|
|
113
|
+
|
|
114
|
+
def test_applyProtection
|
|
115
|
+
assert_raise(ArgumentError) { @item.applyProtection = -1.1 }
|
|
116
|
+
assert_nothing_raised { @item.applyProtection = false }
|
|
117
|
+
assert_equal(@item.applyProtection, false)
|
|
118
|
+
end
|
|
119
|
+
|
|
120
|
+
end
|