caxlsx 3.1.1 → 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 -343
- data/LICENSE +21 -21
- data/README.md +168 -172
- 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 -148
- data/lib/axlsx/drawing/bar_chart.rb +138 -138
- data/lib/axlsx/drawing/bar_series.rb +97 -97
- 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 -388
- 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 -294
- 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 -164
- 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 -768
- 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 -171
- 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 -86
- data/test/drawing/tc_bar_chart.rb +86 -86
- data/test/drawing/tc_bar_series.rb +46 -46
- 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 -10
- data/test/tc_package.rb +317 -314
- 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 -143
- data/test/workbook/worksheet/tc_pivot_table_cache_definition.rb +62 -62
- 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 -160
- 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 -77
- 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 +101 -101
|
@@ -1,265 +1,265 @@
|
|
|
1
|
-
# encoding: UTF-8
|
|
2
|
-
require 'tc_helper.rb'
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
class TestDataValidation < Test::Unit::TestCase
|
|
6
|
-
def setup
|
|
7
|
-
#inverse defaults
|
|
8
|
-
@boolean_options = { :allowBlank => false, :showDropDown => true, :showErrorMessage => false, :showInputMessage => true }
|
|
9
|
-
@nil_options = { :formula1 => 'foo', :formula2 => 'foo', :errorTitle => 'foo', :operator => :lessThan, :prompt => 'foo', :promptTitle => 'foo', :sqref => 'foo' }
|
|
10
|
-
@type_option = { :type => :whole }
|
|
11
|
-
@error_style_option = { :errorStyle => :warning }
|
|
12
|
-
|
|
13
|
-
@string_options = { :formula1 => 'foo', :formula2 => 'foo', :error => 'foo', :errorTitle => 'foo', :prompt => 'foo', :promptTitle => 'foo', :sqref => 'foo' }
|
|
14
|
-
@symbol_options = { :errorStyle => :warning, :operator => :lessThan, :type => :whole}
|
|
15
|
-
|
|
16
|
-
@options = @boolean_options.merge(@nil_options).merge(@type_option).merge(@error_style_option)
|
|
17
|
-
|
|
18
|
-
@dv = Axlsx::DataValidation.new(@options)
|
|
19
|
-
end
|
|
20
|
-
|
|
21
|
-
def test_initialize
|
|
22
|
-
dv = Axlsx::DataValidation.new
|
|
23
|
-
|
|
24
|
-
@boolean_options.each do |key, value|
|
|
25
|
-
assert_equal(!value, dv.send(key.to_sym), "initialized default #{key} should be #{!value}")
|
|
26
|
-
assert_equal(value, @dv.send(key.to_sym), "initialized options #{key} should be #{value}")
|
|
27
|
-
end
|
|
28
|
-
|
|
29
|
-
@nil_options.each do |key, value|
|
|
30
|
-
assert_equal(nil, dv.send(key.to_sym), "initialized default #{key} should be nil")
|
|
31
|
-
assert_equal(value, @dv.send(key.to_sym), "initialized options #{key} should be #{value}")
|
|
32
|
-
end
|
|
33
|
-
|
|
34
|
-
@type_option.each do |key, value|
|
|
35
|
-
assert_equal(:none, dv.send(key.to_sym), "initialized default #{key} should be :none")
|
|
36
|
-
assert_equal(value, @dv.send(key.to_sym), "initialized options #{key} should be #{value}")
|
|
37
|
-
end
|
|
38
|
-
|
|
39
|
-
@error_style_option.each do |key, value|
|
|
40
|
-
assert_equal(:stop, dv.send(key.to_sym), "initialized default #{key} should be :stop")
|
|
41
|
-
assert_equal(value, @dv.send(key.to_sym), "initialized options #{key} should be #{value}")
|
|
42
|
-
end
|
|
43
|
-
end
|
|
44
|
-
|
|
45
|
-
def test_boolean_attribute_validation
|
|
46
|
-
@boolean_options.each do |key, value|
|
|
47
|
-
assert_raise(ArgumentError, "#{key} must be boolean") { @dv.send("#{key}=".to_sym, 'A') }
|
|
48
|
-
assert_nothing_raised { @dv.send("#{key}=".to_sym, true) }
|
|
49
|
-
end
|
|
50
|
-
end
|
|
51
|
-
|
|
52
|
-
def test_string_attribute_validation
|
|
53
|
-
@string_options.each do |key, value|
|
|
54
|
-
assert_raise(ArgumentError, "#{key} must be string") { @dv.send("#{key}=".to_sym, :symbol) }
|
|
55
|
-
assert_nothing_raised { @dv.send("#{key}=".to_sym, "foo") }
|
|
56
|
-
end
|
|
57
|
-
end
|
|
58
|
-
|
|
59
|
-
def test_symbol_attribute_validation
|
|
60
|
-
@symbol_options.each do |key, value|
|
|
61
|
-
assert_raise(ArgumentError, "#{key} must be symbol") { @dv.send("#{key}=".to_sym, "foo") }
|
|
62
|
-
assert_nothing_raised { @dv.send("#{key}=".to_sym, value) }
|
|
63
|
-
end
|
|
64
|
-
end
|
|
65
|
-
|
|
66
|
-
def test_formula1
|
|
67
|
-
assert_raise(ArgumentError) { @dv.formula1 = 10 }
|
|
68
|
-
assert_nothing_raised { @dv.formula1 = "=SUM(A1:A1)" }
|
|
69
|
-
assert_equal(@dv.formula1, "=SUM(A1:A1)")
|
|
70
|
-
end
|
|
71
|
-
|
|
72
|
-
def test_formula2
|
|
73
|
-
assert_raise(ArgumentError) { @dv.formula2 = 10 }
|
|
74
|
-
assert_nothing_raised { @dv.formula2 = "=SUM(A1:A1)" }
|
|
75
|
-
assert_equal(@dv.formula2, "=SUM(A1:A1)")
|
|
76
|
-
end
|
|
77
|
-
|
|
78
|
-
def test_allowBlank
|
|
79
|
-
assert_raise(ArgumentError) { @dv.allowBlank = "foo´" }
|
|
80
|
-
assert_nothing_raised { @dv.allowBlank = false }
|
|
81
|
-
assert_equal(@dv.allowBlank, false)
|
|
82
|
-
end
|
|
83
|
-
|
|
84
|
-
def test_error
|
|
85
|
-
assert_raise(ArgumentError) { @dv.error = :symbol }
|
|
86
|
-
assert_nothing_raised { @dv.error = "This is a error message" }
|
|
87
|
-
assert_equal(@dv.error, "This is a error message")
|
|
88
|
-
end
|
|
89
|
-
|
|
90
|
-
def test_errorStyle
|
|
91
|
-
assert_raise(ArgumentError) { @dv.errorStyle = "foo" }
|
|
92
|
-
assert_nothing_raised { @dv.errorStyle = :information }
|
|
93
|
-
assert_equal(@dv.errorStyle, :information)
|
|
94
|
-
end
|
|
95
|
-
|
|
96
|
-
def test_errorTitle
|
|
97
|
-
assert_raise(ArgumentError) { @dv.errorTitle = :symbol }
|
|
98
|
-
assert_nothing_raised { @dv.errorTitle = "This is the error title" }
|
|
99
|
-
assert_equal(@dv.errorTitle, "This is the error title")
|
|
100
|
-
end
|
|
101
|
-
|
|
102
|
-
def test_operator
|
|
103
|
-
assert_raise(ArgumentError) { @dv.operator = "foo" }
|
|
104
|
-
assert_nothing_raised { @dv.operator = :greaterThan }
|
|
105
|
-
assert_equal(@dv.operator, :greaterThan)
|
|
106
|
-
end
|
|
107
|
-
|
|
108
|
-
def test_prompt
|
|
109
|
-
assert_raise(ArgumentError) { @dv.prompt = :symbol }
|
|
110
|
-
assert_nothing_raised { @dv.prompt = "This is a prompt message" }
|
|
111
|
-
assert_equal(@dv.prompt, "This is a prompt message")
|
|
112
|
-
end
|
|
113
|
-
|
|
114
|
-
def test_promptTitle
|
|
115
|
-
assert_raise(ArgumentError) { @dv.promptTitle = :symbol }
|
|
116
|
-
assert_nothing_raised { @dv.promptTitle = "This is the prompt title" }
|
|
117
|
-
assert_equal(@dv.promptTitle, "This is the prompt title")
|
|
118
|
-
end
|
|
119
|
-
|
|
120
|
-
def test_showDropDown
|
|
121
|
-
assert_raise(ArgumentError) { @dv.showDropDown = "foo´" }
|
|
122
|
-
assert_nothing_raised { @dv.showDropDown = false }
|
|
123
|
-
assert_equal(@dv.showDropDown, false)
|
|
124
|
-
end
|
|
125
|
-
|
|
126
|
-
def test_showErrorMessage
|
|
127
|
-
assert_raise(ArgumentError) { @dv.showErrorMessage = "foo´" }
|
|
128
|
-
assert_nothing_raised { @dv.showErrorMessage = false }
|
|
129
|
-
assert_equal(@dv.showErrorMessage, false)
|
|
130
|
-
end
|
|
131
|
-
|
|
132
|
-
def test_showInputMessage
|
|
133
|
-
assert_raise(ArgumentError) { @dv.showInputMessage = "foo´" }
|
|
134
|
-
assert_nothing_raised { @dv.showInputMessage = false }
|
|
135
|
-
assert_equal(@dv.showInputMessage, false)
|
|
136
|
-
end
|
|
137
|
-
|
|
138
|
-
def test_sqref
|
|
139
|
-
assert_raise(ArgumentError) { @dv.sqref = 10 }
|
|
140
|
-
assert_nothing_raised { @dv.sqref = "A1:A1" }
|
|
141
|
-
assert_equal(@dv.sqref, "A1:A1")
|
|
142
|
-
end
|
|
143
|
-
|
|
144
|
-
def test_type
|
|
145
|
-
assert_raise(ArgumentError) { @dv.type = "foo" }
|
|
146
|
-
assert_nothing_raised { @dv.type = :list }
|
|
147
|
-
assert_equal(@dv.type, :list)
|
|
148
|
-
end
|
|
149
|
-
|
|
150
|
-
def test_whole_decimal_data_time_textLength_to_xml
|
|
151
|
-
p = Axlsx::Package.new
|
|
152
|
-
@ws = p.workbook.add_worksheet :name=>"data_validation"
|
|
153
|
-
@ws.add_data_validation("A1", { :type => :whole, :operator => :between, :formula1 => '5', :formula2 => '10',
|
|
154
|
-
:showErrorMessage => true, :errorTitle => 'Wrong input', :error => 'Only values between 5 and 10',
|
|
155
|
-
:errorStyle => :information, :showInputMessage => true, :promptTitle => 'Be carful!',
|
|
156
|
-
:prompt => 'Only values between 5 and 10'})
|
|
157
|
-
|
|
158
|
-
doc = Nokogiri::XML.parse(@ws.to_xml_string)
|
|
159
|
-
|
|
160
|
-
#test attributes
|
|
161
|
-
assert_equal(1, doc.xpath("//xmlns:worksheet/xmlns:dataValidations[@count='1']/xmlns:dataValidation[@sqref='A1']
|
|
162
|
-
[@promptTitle='Be carful!'][@prompt='Only values between 5 and 10'][@operator='between'][@errorTitle='Wrong input']
|
|
163
|
-
[@error='Only values between 5 and 10'][@showErrorMessage=1][@allowBlank=1][@showInputMessage=1][@type='whole']
|
|
164
|
-
[@errorStyle='information']").size)
|
|
165
|
-
assert doc.xpath("//xmlns:worksheet/xmlns:dataValidations[@count='1']/xmlns:dataValidation[@sqref='A1']
|
|
166
|
-
[@promptTitle='Be carful!'][@prompt='Only values between 5 and 10'][@operator='between'][@errorTitle='Wrong input']
|
|
167
|
-
[@error='Only values between 5 and 10'][@showErrorMessage=1][@allowBlank=1][@showInputMessage=1]
|
|
168
|
-
[@type='whole'][@errorStyle='information']")
|
|
169
|
-
|
|
170
|
-
#test forumula1
|
|
171
|
-
assert_equal(1, doc.xpath("//xmlns:worksheet/xmlns:dataValidations/xmlns:dataValidation/xmlns:formula1").size)
|
|
172
|
-
assert doc.xpath("//xmlns:worksheet/xmlns:dataValidations/xmlns:dataValidation/xmlns:formula1='5'")
|
|
173
|
-
|
|
174
|
-
#test forumula2
|
|
175
|
-
assert_equal(1, doc.xpath("//xmlns:worksheet/xmlns:dataValidations/xmlns:dataValidation/xmlns:formula2").size)
|
|
176
|
-
assert doc.xpath("//xmlns:worksheet/xmlns:dataValidations/xmlns:dataValidation/xmlns:formula2='10'")
|
|
177
|
-
end
|
|
178
|
-
|
|
179
|
-
def test_list_to_xml
|
|
180
|
-
p = Axlsx::Package.new
|
|
181
|
-
@ws = p.workbook.add_worksheet :name=>"data_validation"
|
|
182
|
-
@ws.add_data_validation("A1", { :type => :list, :formula1 => 'A1:A5',
|
|
183
|
-
:showErrorMessage => true, :errorTitle => 'Wrong input', :error => 'Only values from list',
|
|
184
|
-
:errorStyle => :stop, :showInputMessage => true, :promptTitle => 'Be carful!',
|
|
185
|
-
:prompt => 'Only values from list', :showDropDown => true})
|
|
186
|
-
|
|
187
|
-
doc = Nokogiri::XML.parse(@ws.to_xml_string)
|
|
188
|
-
|
|
189
|
-
#test attributes
|
|
190
|
-
assert_equal(1, doc.xpath("//xmlns:worksheet/xmlns:dataValidations[@count='1']/xmlns:dataValidation[@sqref='A1']
|
|
191
|
-
[@promptTitle='Be carful!'][@prompt='Only values from list'][@errorTitle='Wrong input'][@error='Only values from list']
|
|
192
|
-
[@showErrorMessage=1][@allowBlank=1][@showInputMessage=1][@showDropDown=1][@type='list']
|
|
193
|
-
[@errorStyle='stop']").size)
|
|
194
|
-
assert doc.xpath("//xmlns:worksheet/xmlns:dataValidations[@count='1']/xmlns:dataValidation[@sqref='A1']
|
|
195
|
-
[@promptTitle='Be carful!'][@prompt='Only values from list'][@errorTitle='Wrong input'][@error='Only values from list']
|
|
196
|
-
[@showErrorMessage=1][@allowBlank=1][@showInputMessage=1][@showDropDown=1][@type='list'][@errorStyle='stop']")
|
|
197
|
-
|
|
198
|
-
#test forumula1
|
|
199
|
-
assert_equal(1, doc.xpath("//xmlns:worksheet/xmlns:dataValidations/xmlns:dataValidation/xmlns:formula1").size)
|
|
200
|
-
assert doc.xpath("//xmlns:worksheet/xmlns:dataValidations/xmlns:dataValidation/xmlns:formula1='A1:A5'")
|
|
201
|
-
end
|
|
202
|
-
|
|
203
|
-
def test_custom_to_xml
|
|
204
|
-
p = Axlsx::Package.new
|
|
205
|
-
@ws = p.workbook.add_worksheet :name=>"data_validation"
|
|
206
|
-
@ws.add_data_validation("A1", { :type => :custom, :formula1 => '=5/2',
|
|
207
|
-
:showErrorMessage => true, :errorTitle => 'Wrong input', :error => 'Only values corresponding formula',
|
|
208
|
-
:errorStyle => :stop, :showInputMessage => true, :promptTitle => 'Be carful!',
|
|
209
|
-
:prompt => 'Only values corresponding formula'})
|
|
210
|
-
|
|
211
|
-
doc = Nokogiri::XML.parse(@ws.to_xml_string)
|
|
212
|
-
|
|
213
|
-
#test attributes
|
|
214
|
-
assert_equal(1, doc.xpath("//xmlns:worksheet/xmlns:dataValidations[@count='1']/xmlns:dataValidation[@sqref='A1'][@promptTitle='Be carful!']
|
|
215
|
-
[@prompt='Only values corresponding formula'][@errorTitle='Wrong input'][@error='Only values corresponding formula'][@showErrorMessage=1]
|
|
216
|
-
[@allowBlank=1][@showInputMessage=1][@type='custom'][@errorStyle='stop']").size)
|
|
217
|
-
assert doc.xpath("//xmlns:worksheet/xmlns:dataValidations[@count='1']/xmlns:dataValidation[@sqref='A1'][@promptTitle='Be carful!']
|
|
218
|
-
[@prompt='Only values corresponding formula'][@errorTitle='Wrong input'][@error='Only values corresponding formula']
|
|
219
|
-
[@showErrorMessage=1][@allowBlank=1][@showInputMessage=1][@type='custom'][@errorStyle='stop']")
|
|
220
|
-
|
|
221
|
-
#test forumula1
|
|
222
|
-
assert_equal(1, doc.xpath("//xmlns:worksheet/xmlns:dataValidations/xmlns:dataValidation/xmlns:formula1").size)
|
|
223
|
-
assert doc.xpath("//xmlns:worksheet/xmlns:dataValidations/xmlns:dataValidation/xmlns:formula1='=5/2'")
|
|
224
|
-
end
|
|
225
|
-
|
|
226
|
-
def test_multiple_datavalidations_to_xml
|
|
227
|
-
p = Axlsx::Package.new
|
|
228
|
-
@ws = p.workbook.add_worksheet :name=>"data_validation"
|
|
229
|
-
@ws.add_data_validation("A1", { :type => :whole, :operator => :between, :formula1 => '5', :formula2 => '10',
|
|
230
|
-
:showErrorMessage => true, :errorTitle => 'Wrong input', :error => 'Only values between 5 and 10',
|
|
231
|
-
:errorStyle => :information, :showInputMessage => true, :promptTitle => 'Be carful!',
|
|
232
|
-
:prompt => 'Only values between 5 and 10'})
|
|
233
|
-
@ws.add_data_validation("B1", { :type => :list, :formula1 => 'A1:A5',
|
|
234
|
-
:showErrorMessage => true, :errorTitle => 'Wrong input', :error => 'Only values from list',
|
|
235
|
-
:errorStyle => :stop, :showInputMessage => true, :promptTitle => 'Be carful!',
|
|
236
|
-
:prompt => 'Only values from list', :showDropDown => true})
|
|
237
|
-
|
|
238
|
-
doc = Nokogiri::XML.parse(@ws.to_xml_string)
|
|
239
|
-
|
|
240
|
-
#test attributes
|
|
241
|
-
assert_equal(1, doc.xpath("//xmlns:worksheet/xmlns:dataValidations[@count='2']/xmlns:dataValidation[@sqref='A1']
|
|
242
|
-
[@promptTitle='Be carful!'][@prompt='Only values between 5 and 10'][@operator='between'][@errorTitle='Wrong input']
|
|
243
|
-
[@error='Only values between 5 and 10'][@showErrorMessage=1][@allowBlank=1][@showInputMessage=1][@type='whole']
|
|
244
|
-
[@errorStyle='information']").size)
|
|
245
|
-
assert doc.xpath("//xmlns:worksheet/xmlns:dataValidations[@count='2']/xmlns:dataValidation[@sqref='A1']
|
|
246
|
-
[@promptTitle='Be carful!'][@prompt='Only values between 5 and 10'][@operator='between'][@errorTitle='Wrong input']
|
|
247
|
-
[@error='Only values between 5 and 10'][@showErrorMessage=1][@allowBlank=1][@showInputMessage=1]
|
|
248
|
-
[@type='whole'][@errorStyle='information']")
|
|
249
|
-
|
|
250
|
-
#test attributes
|
|
251
|
-
assert_equal(1, doc.xpath("//xmlns:worksheet/xmlns:dataValidations[@count='2']/xmlns:dataValidation[@sqref='B1']
|
|
252
|
-
[@promptTitle='Be carful!'][@prompt='Only values from list'][@errorTitle='Wrong input'][@error='Only values from list']
|
|
253
|
-
[@showErrorMessage=1][@allowBlank=1][@showInputMessage=1][@showDropDown=1][@type='list']
|
|
254
|
-
[@errorStyle='stop']").size)
|
|
255
|
-
assert doc.xpath("//xmlns:worksheet/xmlns:dataValidations[@count='2']/xmlns:dataValidation[@sqref='B1']
|
|
256
|
-
[@promptTitle='Be carful!'][@prompt='Only values from list'][@errorTitle='Wrong input'][@error='Only values from list']
|
|
257
|
-
[@showErrorMessage=1][@allowBlank=1][@showInputMessage=1][@showDropDown=1][@type='list'][@errorStyle='stop']")
|
|
258
|
-
end
|
|
259
|
-
|
|
260
|
-
def test_empty_attributes
|
|
261
|
-
v = Axlsx::DataValidation.new
|
|
262
|
-
assert_equal(nil, v.send(:get_valid_attributes))
|
|
263
|
-
|
|
264
|
-
end
|
|
265
|
-
end
|
|
1
|
+
# encoding: UTF-8
|
|
2
|
+
require 'tc_helper.rb'
|
|
3
|
+
|
|
4
|
+
|
|
5
|
+
class TestDataValidation < Test::Unit::TestCase
|
|
6
|
+
def setup
|
|
7
|
+
#inverse defaults
|
|
8
|
+
@boolean_options = { :allowBlank => false, :showDropDown => true, :showErrorMessage => false, :showInputMessage => true }
|
|
9
|
+
@nil_options = { :formula1 => 'foo', :formula2 => 'foo', :errorTitle => 'foo', :operator => :lessThan, :prompt => 'foo', :promptTitle => 'foo', :sqref => 'foo' }
|
|
10
|
+
@type_option = { :type => :whole }
|
|
11
|
+
@error_style_option = { :errorStyle => :warning }
|
|
12
|
+
|
|
13
|
+
@string_options = { :formula1 => 'foo', :formula2 => 'foo', :error => 'foo', :errorTitle => 'foo', :prompt => 'foo', :promptTitle => 'foo', :sqref => 'foo' }
|
|
14
|
+
@symbol_options = { :errorStyle => :warning, :operator => :lessThan, :type => :whole}
|
|
15
|
+
|
|
16
|
+
@options = @boolean_options.merge(@nil_options).merge(@type_option).merge(@error_style_option)
|
|
17
|
+
|
|
18
|
+
@dv = Axlsx::DataValidation.new(@options)
|
|
19
|
+
end
|
|
20
|
+
|
|
21
|
+
def test_initialize
|
|
22
|
+
dv = Axlsx::DataValidation.new
|
|
23
|
+
|
|
24
|
+
@boolean_options.each do |key, value|
|
|
25
|
+
assert_equal(!value, dv.send(key.to_sym), "initialized default #{key} should be #{!value}")
|
|
26
|
+
assert_equal(value, @dv.send(key.to_sym), "initialized options #{key} should be #{value}")
|
|
27
|
+
end
|
|
28
|
+
|
|
29
|
+
@nil_options.each do |key, value|
|
|
30
|
+
assert_equal(nil, dv.send(key.to_sym), "initialized default #{key} should be nil")
|
|
31
|
+
assert_equal(value, @dv.send(key.to_sym), "initialized options #{key} should be #{value}")
|
|
32
|
+
end
|
|
33
|
+
|
|
34
|
+
@type_option.each do |key, value|
|
|
35
|
+
assert_equal(:none, dv.send(key.to_sym), "initialized default #{key} should be :none")
|
|
36
|
+
assert_equal(value, @dv.send(key.to_sym), "initialized options #{key} should be #{value}")
|
|
37
|
+
end
|
|
38
|
+
|
|
39
|
+
@error_style_option.each do |key, value|
|
|
40
|
+
assert_equal(:stop, dv.send(key.to_sym), "initialized default #{key} should be :stop")
|
|
41
|
+
assert_equal(value, @dv.send(key.to_sym), "initialized options #{key} should be #{value}")
|
|
42
|
+
end
|
|
43
|
+
end
|
|
44
|
+
|
|
45
|
+
def test_boolean_attribute_validation
|
|
46
|
+
@boolean_options.each do |key, value|
|
|
47
|
+
assert_raise(ArgumentError, "#{key} must be boolean") { @dv.send("#{key}=".to_sym, 'A') }
|
|
48
|
+
assert_nothing_raised { @dv.send("#{key}=".to_sym, true) }
|
|
49
|
+
end
|
|
50
|
+
end
|
|
51
|
+
|
|
52
|
+
def test_string_attribute_validation
|
|
53
|
+
@string_options.each do |key, value|
|
|
54
|
+
assert_raise(ArgumentError, "#{key} must be string") { @dv.send("#{key}=".to_sym, :symbol) }
|
|
55
|
+
assert_nothing_raised { @dv.send("#{key}=".to_sym, "foo") }
|
|
56
|
+
end
|
|
57
|
+
end
|
|
58
|
+
|
|
59
|
+
def test_symbol_attribute_validation
|
|
60
|
+
@symbol_options.each do |key, value|
|
|
61
|
+
assert_raise(ArgumentError, "#{key} must be symbol") { @dv.send("#{key}=".to_sym, "foo") }
|
|
62
|
+
assert_nothing_raised { @dv.send("#{key}=".to_sym, value) }
|
|
63
|
+
end
|
|
64
|
+
end
|
|
65
|
+
|
|
66
|
+
def test_formula1
|
|
67
|
+
assert_raise(ArgumentError) { @dv.formula1 = 10 }
|
|
68
|
+
assert_nothing_raised { @dv.formula1 = "=SUM(A1:A1)" }
|
|
69
|
+
assert_equal(@dv.formula1, "=SUM(A1:A1)")
|
|
70
|
+
end
|
|
71
|
+
|
|
72
|
+
def test_formula2
|
|
73
|
+
assert_raise(ArgumentError) { @dv.formula2 = 10 }
|
|
74
|
+
assert_nothing_raised { @dv.formula2 = "=SUM(A1:A1)" }
|
|
75
|
+
assert_equal(@dv.formula2, "=SUM(A1:A1)")
|
|
76
|
+
end
|
|
77
|
+
|
|
78
|
+
def test_allowBlank
|
|
79
|
+
assert_raise(ArgumentError) { @dv.allowBlank = "foo´" }
|
|
80
|
+
assert_nothing_raised { @dv.allowBlank = false }
|
|
81
|
+
assert_equal(@dv.allowBlank, false)
|
|
82
|
+
end
|
|
83
|
+
|
|
84
|
+
def test_error
|
|
85
|
+
assert_raise(ArgumentError) { @dv.error = :symbol }
|
|
86
|
+
assert_nothing_raised { @dv.error = "This is a error message" }
|
|
87
|
+
assert_equal(@dv.error, "This is a error message")
|
|
88
|
+
end
|
|
89
|
+
|
|
90
|
+
def test_errorStyle
|
|
91
|
+
assert_raise(ArgumentError) { @dv.errorStyle = "foo" }
|
|
92
|
+
assert_nothing_raised { @dv.errorStyle = :information }
|
|
93
|
+
assert_equal(@dv.errorStyle, :information)
|
|
94
|
+
end
|
|
95
|
+
|
|
96
|
+
def test_errorTitle
|
|
97
|
+
assert_raise(ArgumentError) { @dv.errorTitle = :symbol }
|
|
98
|
+
assert_nothing_raised { @dv.errorTitle = "This is the error title" }
|
|
99
|
+
assert_equal(@dv.errorTitle, "This is the error title")
|
|
100
|
+
end
|
|
101
|
+
|
|
102
|
+
def test_operator
|
|
103
|
+
assert_raise(ArgumentError) { @dv.operator = "foo" }
|
|
104
|
+
assert_nothing_raised { @dv.operator = :greaterThan }
|
|
105
|
+
assert_equal(@dv.operator, :greaterThan)
|
|
106
|
+
end
|
|
107
|
+
|
|
108
|
+
def test_prompt
|
|
109
|
+
assert_raise(ArgumentError) { @dv.prompt = :symbol }
|
|
110
|
+
assert_nothing_raised { @dv.prompt = "This is a prompt message" }
|
|
111
|
+
assert_equal(@dv.prompt, "This is a prompt message")
|
|
112
|
+
end
|
|
113
|
+
|
|
114
|
+
def test_promptTitle
|
|
115
|
+
assert_raise(ArgumentError) { @dv.promptTitle = :symbol }
|
|
116
|
+
assert_nothing_raised { @dv.promptTitle = "This is the prompt title" }
|
|
117
|
+
assert_equal(@dv.promptTitle, "This is the prompt title")
|
|
118
|
+
end
|
|
119
|
+
|
|
120
|
+
def test_showDropDown
|
|
121
|
+
assert_raise(ArgumentError) { @dv.showDropDown = "foo´" }
|
|
122
|
+
assert_nothing_raised { @dv.showDropDown = false }
|
|
123
|
+
assert_equal(@dv.showDropDown, false)
|
|
124
|
+
end
|
|
125
|
+
|
|
126
|
+
def test_showErrorMessage
|
|
127
|
+
assert_raise(ArgumentError) { @dv.showErrorMessage = "foo´" }
|
|
128
|
+
assert_nothing_raised { @dv.showErrorMessage = false }
|
|
129
|
+
assert_equal(@dv.showErrorMessage, false)
|
|
130
|
+
end
|
|
131
|
+
|
|
132
|
+
def test_showInputMessage
|
|
133
|
+
assert_raise(ArgumentError) { @dv.showInputMessage = "foo´" }
|
|
134
|
+
assert_nothing_raised { @dv.showInputMessage = false }
|
|
135
|
+
assert_equal(@dv.showInputMessage, false)
|
|
136
|
+
end
|
|
137
|
+
|
|
138
|
+
def test_sqref
|
|
139
|
+
assert_raise(ArgumentError) { @dv.sqref = 10 }
|
|
140
|
+
assert_nothing_raised { @dv.sqref = "A1:A1" }
|
|
141
|
+
assert_equal(@dv.sqref, "A1:A1")
|
|
142
|
+
end
|
|
143
|
+
|
|
144
|
+
def test_type
|
|
145
|
+
assert_raise(ArgumentError) { @dv.type = "foo" }
|
|
146
|
+
assert_nothing_raised { @dv.type = :list }
|
|
147
|
+
assert_equal(@dv.type, :list)
|
|
148
|
+
end
|
|
149
|
+
|
|
150
|
+
def test_whole_decimal_data_time_textLength_to_xml
|
|
151
|
+
p = Axlsx::Package.new
|
|
152
|
+
@ws = p.workbook.add_worksheet :name=>"data_validation"
|
|
153
|
+
@ws.add_data_validation("A1", { :type => :whole, :operator => :between, :formula1 => '5', :formula2 => '10',
|
|
154
|
+
:showErrorMessage => true, :errorTitle => 'Wrong input', :error => 'Only values between 5 and 10',
|
|
155
|
+
:errorStyle => :information, :showInputMessage => true, :promptTitle => 'Be carful!',
|
|
156
|
+
:prompt => 'Only values between 5 and 10'})
|
|
157
|
+
|
|
158
|
+
doc = Nokogiri::XML.parse(@ws.to_xml_string)
|
|
159
|
+
|
|
160
|
+
#test attributes
|
|
161
|
+
assert_equal(1, doc.xpath("//xmlns:worksheet/xmlns:dataValidations[@count='1']/xmlns:dataValidation[@sqref='A1']
|
|
162
|
+
[@promptTitle='Be carful!'][@prompt='Only values between 5 and 10'][@operator='between'][@errorTitle='Wrong input']
|
|
163
|
+
[@error='Only values between 5 and 10'][@showErrorMessage=1][@allowBlank=1][@showInputMessage=1][@type='whole']
|
|
164
|
+
[@errorStyle='information']").size)
|
|
165
|
+
assert doc.xpath("//xmlns:worksheet/xmlns:dataValidations[@count='1']/xmlns:dataValidation[@sqref='A1']
|
|
166
|
+
[@promptTitle='Be carful!'][@prompt='Only values between 5 and 10'][@operator='between'][@errorTitle='Wrong input']
|
|
167
|
+
[@error='Only values between 5 and 10'][@showErrorMessage=1][@allowBlank=1][@showInputMessage=1]
|
|
168
|
+
[@type='whole'][@errorStyle='information']")
|
|
169
|
+
|
|
170
|
+
#test forumula1
|
|
171
|
+
assert_equal(1, doc.xpath("//xmlns:worksheet/xmlns:dataValidations/xmlns:dataValidation/xmlns:formula1").size)
|
|
172
|
+
assert doc.xpath("//xmlns:worksheet/xmlns:dataValidations/xmlns:dataValidation/xmlns:formula1='5'")
|
|
173
|
+
|
|
174
|
+
#test forumula2
|
|
175
|
+
assert_equal(1, doc.xpath("//xmlns:worksheet/xmlns:dataValidations/xmlns:dataValidation/xmlns:formula2").size)
|
|
176
|
+
assert doc.xpath("//xmlns:worksheet/xmlns:dataValidations/xmlns:dataValidation/xmlns:formula2='10'")
|
|
177
|
+
end
|
|
178
|
+
|
|
179
|
+
def test_list_to_xml
|
|
180
|
+
p = Axlsx::Package.new
|
|
181
|
+
@ws = p.workbook.add_worksheet :name=>"data_validation"
|
|
182
|
+
@ws.add_data_validation("A1", { :type => :list, :formula1 => 'A1:A5',
|
|
183
|
+
:showErrorMessage => true, :errorTitle => 'Wrong input', :error => 'Only values from list',
|
|
184
|
+
:errorStyle => :stop, :showInputMessage => true, :promptTitle => 'Be carful!',
|
|
185
|
+
:prompt => 'Only values from list', :showDropDown => true})
|
|
186
|
+
|
|
187
|
+
doc = Nokogiri::XML.parse(@ws.to_xml_string)
|
|
188
|
+
|
|
189
|
+
#test attributes
|
|
190
|
+
assert_equal(1, doc.xpath("//xmlns:worksheet/xmlns:dataValidations[@count='1']/xmlns:dataValidation[@sqref='A1']
|
|
191
|
+
[@promptTitle='Be carful!'][@prompt='Only values from list'][@errorTitle='Wrong input'][@error='Only values from list']
|
|
192
|
+
[@showErrorMessage=1][@allowBlank=1][@showInputMessage=1][@showDropDown=1][@type='list']
|
|
193
|
+
[@errorStyle='stop']").size)
|
|
194
|
+
assert doc.xpath("//xmlns:worksheet/xmlns:dataValidations[@count='1']/xmlns:dataValidation[@sqref='A1']
|
|
195
|
+
[@promptTitle='Be carful!'][@prompt='Only values from list'][@errorTitle='Wrong input'][@error='Only values from list']
|
|
196
|
+
[@showErrorMessage=1][@allowBlank=1][@showInputMessage=1][@showDropDown=1][@type='list'][@errorStyle='stop']")
|
|
197
|
+
|
|
198
|
+
#test forumula1
|
|
199
|
+
assert_equal(1, doc.xpath("//xmlns:worksheet/xmlns:dataValidations/xmlns:dataValidation/xmlns:formula1").size)
|
|
200
|
+
assert doc.xpath("//xmlns:worksheet/xmlns:dataValidations/xmlns:dataValidation/xmlns:formula1='A1:A5'")
|
|
201
|
+
end
|
|
202
|
+
|
|
203
|
+
def test_custom_to_xml
|
|
204
|
+
p = Axlsx::Package.new
|
|
205
|
+
@ws = p.workbook.add_worksheet :name=>"data_validation"
|
|
206
|
+
@ws.add_data_validation("A1", { :type => :custom, :formula1 => '=5/2',
|
|
207
|
+
:showErrorMessage => true, :errorTitle => 'Wrong input', :error => 'Only values corresponding formula',
|
|
208
|
+
:errorStyle => :stop, :showInputMessage => true, :promptTitle => 'Be carful!',
|
|
209
|
+
:prompt => 'Only values corresponding formula'})
|
|
210
|
+
|
|
211
|
+
doc = Nokogiri::XML.parse(@ws.to_xml_string)
|
|
212
|
+
|
|
213
|
+
#test attributes
|
|
214
|
+
assert_equal(1, doc.xpath("//xmlns:worksheet/xmlns:dataValidations[@count='1']/xmlns:dataValidation[@sqref='A1'][@promptTitle='Be carful!']
|
|
215
|
+
[@prompt='Only values corresponding formula'][@errorTitle='Wrong input'][@error='Only values corresponding formula'][@showErrorMessage=1]
|
|
216
|
+
[@allowBlank=1][@showInputMessage=1][@type='custom'][@errorStyle='stop']").size)
|
|
217
|
+
assert doc.xpath("//xmlns:worksheet/xmlns:dataValidations[@count='1']/xmlns:dataValidation[@sqref='A1'][@promptTitle='Be carful!']
|
|
218
|
+
[@prompt='Only values corresponding formula'][@errorTitle='Wrong input'][@error='Only values corresponding formula']
|
|
219
|
+
[@showErrorMessage=1][@allowBlank=1][@showInputMessage=1][@type='custom'][@errorStyle='stop']")
|
|
220
|
+
|
|
221
|
+
#test forumula1
|
|
222
|
+
assert_equal(1, doc.xpath("//xmlns:worksheet/xmlns:dataValidations/xmlns:dataValidation/xmlns:formula1").size)
|
|
223
|
+
assert doc.xpath("//xmlns:worksheet/xmlns:dataValidations/xmlns:dataValidation/xmlns:formula1='=5/2'")
|
|
224
|
+
end
|
|
225
|
+
|
|
226
|
+
def test_multiple_datavalidations_to_xml
|
|
227
|
+
p = Axlsx::Package.new
|
|
228
|
+
@ws = p.workbook.add_worksheet :name=>"data_validation"
|
|
229
|
+
@ws.add_data_validation("A1", { :type => :whole, :operator => :between, :formula1 => '5', :formula2 => '10',
|
|
230
|
+
:showErrorMessage => true, :errorTitle => 'Wrong input', :error => 'Only values between 5 and 10',
|
|
231
|
+
:errorStyle => :information, :showInputMessage => true, :promptTitle => 'Be carful!',
|
|
232
|
+
:prompt => 'Only values between 5 and 10'})
|
|
233
|
+
@ws.add_data_validation("B1", { :type => :list, :formula1 => 'A1:A5',
|
|
234
|
+
:showErrorMessage => true, :errorTitle => 'Wrong input', :error => 'Only values from list',
|
|
235
|
+
:errorStyle => :stop, :showInputMessage => true, :promptTitle => 'Be carful!',
|
|
236
|
+
:prompt => 'Only values from list', :showDropDown => true})
|
|
237
|
+
|
|
238
|
+
doc = Nokogiri::XML.parse(@ws.to_xml_string)
|
|
239
|
+
|
|
240
|
+
#test attributes
|
|
241
|
+
assert_equal(1, doc.xpath("//xmlns:worksheet/xmlns:dataValidations[@count='2']/xmlns:dataValidation[@sqref='A1']
|
|
242
|
+
[@promptTitle='Be carful!'][@prompt='Only values between 5 and 10'][@operator='between'][@errorTitle='Wrong input']
|
|
243
|
+
[@error='Only values between 5 and 10'][@showErrorMessage=1][@allowBlank=1][@showInputMessage=1][@type='whole']
|
|
244
|
+
[@errorStyle='information']").size)
|
|
245
|
+
assert doc.xpath("//xmlns:worksheet/xmlns:dataValidations[@count='2']/xmlns:dataValidation[@sqref='A1']
|
|
246
|
+
[@promptTitle='Be carful!'][@prompt='Only values between 5 and 10'][@operator='between'][@errorTitle='Wrong input']
|
|
247
|
+
[@error='Only values between 5 and 10'][@showErrorMessage=1][@allowBlank=1][@showInputMessage=1]
|
|
248
|
+
[@type='whole'][@errorStyle='information']")
|
|
249
|
+
|
|
250
|
+
#test attributes
|
|
251
|
+
assert_equal(1, doc.xpath("//xmlns:worksheet/xmlns:dataValidations[@count='2']/xmlns:dataValidation[@sqref='B1']
|
|
252
|
+
[@promptTitle='Be carful!'][@prompt='Only values from list'][@errorTitle='Wrong input'][@error='Only values from list']
|
|
253
|
+
[@showErrorMessage=1][@allowBlank=1][@showInputMessage=1][@showDropDown=1][@type='list']
|
|
254
|
+
[@errorStyle='stop']").size)
|
|
255
|
+
assert doc.xpath("//xmlns:worksheet/xmlns:dataValidations[@count='2']/xmlns:dataValidation[@sqref='B1']
|
|
256
|
+
[@promptTitle='Be carful!'][@prompt='Only values from list'][@errorTitle='Wrong input'][@error='Only values from list']
|
|
257
|
+
[@showErrorMessage=1][@allowBlank=1][@showInputMessage=1][@showDropDown=1][@type='list'][@errorStyle='stop']")
|
|
258
|
+
end
|
|
259
|
+
|
|
260
|
+
def test_empty_attributes
|
|
261
|
+
v = Axlsx::DataValidation.new
|
|
262
|
+
assert_equal(nil, v.send(:get_valid_attributes))
|
|
263
|
+
|
|
264
|
+
end
|
|
265
|
+
end
|