diff options
| author | Jan-Hendrik Hühne <[email protected]> | 2012-06-06 14:50:05 +0200 |
|---|---|---|
| committer | Jan-Hendrik Hühne <[email protected]> | 2012-06-06 14:50:05 +0200 |
| commit | eb0ab7ec68707ada8b537465db639639e2212bc6 (patch) | |
| tree | 7e9380479daae596b4bdd78e3a0d78b0a2a9263b /test | |
| parent | 5736abaa282f87a67dad102216b98d6d667f213a (diff) | |
| download | caxlsx-eb0ab7ec68707ada8b537465db639639e2212bc6.tar.gz caxlsx-eb0ab7ec68707ada8b537465db639639e2212bc6.zip | |
SheetView bugfixes and test suite
Diffstat (limited to 'test')
| -rw-r--r-- | test/workbook/worksheet/tc_sheet_view.rb | 222 |
1 files changed, 222 insertions, 0 deletions
diff --git a/test/workbook/worksheet/tc_sheet_view.rb b/test/workbook/worksheet/tc_sheet_view.rb new file mode 100644 index 00000000..02e6101f --- /dev/null +++ b/test/workbook/worksheet/tc_sheet_view.rb @@ -0,0 +1,222 @@ +# encoding: UTF-8 +require 'tc_helper.rb' + +class TestSheetView < Test::Unit::TestCase + def setup + #inverse defaults for booleans + @boolean_options = { :right_to_left => true, :show_formulas => true, :show_outline_symbols => true, + :show_white_space => true, :tab_selected => true, :default_grid_color => false, :show_grid_lines => false, + :show_row_col_headers => false, :show_ruler => false, :show_zeros => false, :window_protection => false } + @symbol_options = { :view => :page_break_preview } + @nil_options = { :color_id => 2, :top_left_cell => 'A2' } + @int_0 = { :zoom_scale_normal => 100, :zoom_scale_page_layout_view => 100, :zoom_scale_sheet_layout_view => 100, :workbook_view_id => 2 } + @int_100 = { :zoom_scale => 10 } + + @integer_options = { :color_id => 2, :workbook_view_id => 2 }.merge(@int_0).merge(@int_100) + @string_options = { :top_left_cell => 'A2' } + + + @options = @boolean_options.merge(@boolean_options).merge(@symbol_options).merge(@nil_options).merge(@int_0).merge(@int_100) + + @sv = Axlsx::SheetView.new(@options) + end + + def test_initialize + sv = Axlsx::SheetView.new + + @boolean_options.each do |key, value| + assert_equal(!value, sv.send(key.to_sym), "initialized default #{key} should be #{!value}") + assert_equal(value, @sv.send(key.to_sym), "initialized options #{key} should be #{value}") + end + + @nil_options.each do |key, value| + assert_equal(nil, sv.send(key.to_sym), "initialized default #{key} should be nil") + assert_equal(value, @sv.send(key.to_sym), "initialized options #{key} should be #{value}") + end + + @int_0.each do |key, value| + assert_equal(0, sv.send(key.to_sym), "initialized default #{key} should be 0") + assert_equal(value, @sv.send(key.to_sym), "initialized options #{key} should be #{value}") + end + + @int_100.each do |key, value| + assert_equal(100, sv.send(key.to_sym), "initialized default #{key} should be 100") + assert_equal(value, @sv.send(key.to_sym), "initialized options #{key} should be #{value}") + end + end + + def test_boolean_attribute_validation + @boolean_options.each do |key, value| + assert_raise(ArgumentError, "#{key} must be boolean") { @sv.send("#{key}=".to_sym, 'A') } + assert_nothing_raised { @sv.send("#{key}=".to_sym, true) } + end + end + + def test_string_attribute_validation + @string_options.each do |key, value| + assert_raise(ArgumentError, "#{key} must be string") { @sv.send("#{key}=".to_sym, :symbol) } + assert_nothing_raised { @sv.send("#{key}=".to_sym, "foo") } + end + end + + def test_symbol_attribute_validation + @symbol_options.each do |key, value| + assert_raise(ArgumentError, "#{key} must be symbol") { @sv.send("#{key}=".to_sym, "foo") } + assert_nothing_raised { @sv.send("#{key}=".to_sym, value) } + end + end + + def test_integer_attribute_validation + @symbol_options.each do |key, value| + assert_raise(ArgumentError, "#{key} must be integer") { @sv.send("#{key}=".to_sym, "foo") } + assert_nothing_raised { @sv.send("#{key}=".to_sym, value) } + end + end + + def test_color_id + assert_raise(ArgumentError) { @sv.color_id = "10" } + assert_nothing_raised { @sv.color_id = 2 } + assert_equal(@sv.color_id, 2) + end + + def test_default_grid_color + assert_raise(ArgumentError) { @sv.default_grid_color = "foo" } + assert_nothing_raised { @sv.default_grid_color = false } + assert_equal(@sv.default_grid_color, false) + end + + def test_right_to_left + assert_raise(ArgumentError) { @sv.right_to_left = "foo´" } + assert_nothing_raised { @sv.right_to_left = true } + assert_equal(@sv.right_to_left, true) + end + + def test_show_formulas + assert_raise(ArgumentError) { @sv.show_formulas = 'foo' } + assert_nothing_raised { @sv.show_formulas = false } + assert_equal(@sv.show_formulas, false) + end + + def test_show_grid_lines + assert_raise(ArgumentError) { @sv.show_grid_lines = "foo" } + assert_nothing_raised { @sv.show_grid_lines = false } + assert_equal(@sv.show_grid_lines, false) + end + + def test_show_outline_symbols + assert_raise(ArgumentError) { @sv.show_outline_symbols = 'foo' } + assert_nothing_raised { @sv.show_outline_symbols = false } + assert_equal(@sv.show_outline_symbols, false) + end + + def test_show_row_col_headers + assert_raise(ArgumentError) { @sv.show_row_col_headers = "foo" } + assert_nothing_raised { @sv.show_row_col_headers = false } + assert_equal(@sv.show_row_col_headers, false) + end + + def test_show_ruler + assert_raise(ArgumentError) { @sv.show_ruler = 'foo' } + assert_nothing_raised { @sv.show_ruler = false } + assert_equal(@sv.show_ruler, false) + end + + def test_show_white_space + assert_raise(ArgumentError) { @sv.show_white_space = 'foo' } + assert_nothing_raised { @sv.show_white_space = false } + assert_equal(@sv.show_white_space, false) + end + + def test_show_zeros + assert_raise(ArgumentError) { @sv.show_zeros = "foo" } + assert_nothing_raised { @sv.show_zeros = false } + assert_equal(@sv.show_zeros, false) + end + + def test_tab_selected + assert_raise(ArgumentError) { @sv.tab_selected = "foo" } + assert_nothing_raised { @sv.tab_selected = false } + assert_equal(@sv.tab_selected, false) + end + + def test_top_left_cell + assert_raise(ArgumentError) { @sv.top_left_cell = :cell_adress } + assert_nothing_raised { @sv.top_left_cell = "A2" } + assert_equal(@sv.top_left_cell, "A2") + end + + def test_view + assert_raise(ArgumentError) { @sv.view = 'view' } + assert_nothing_raised { @sv.view = :page_break_preview } + assert_equal(@sv.view, :page_break_preview) + end + + def test_window_protection + assert_raise(ArgumentError) { @sv.window_protection = "foo" } + assert_nothing_raised { @sv.window_protection = false } + assert_equal(@sv.window_protection, false) + end + + def test_workbook_view_id + assert_raise(ArgumentError) { @sv.workbook_view_id = "1" } + assert_nothing_raised { @sv.workbook_view_id = 1 } + assert_equal(@sv.workbook_view_id, 1) + end + + def test_zoom_scale + assert_raise(ArgumentError) { @sv.zoom_scale = "50" } + assert_nothing_raised { @sv.zoom_scale = 50 } + assert_equal(@sv.zoom_scale, 50) + end + + def test_zoom_scale_normal + assert_raise(ArgumentError) { @sv.zoom_scale_normal = "50" } + assert_nothing_raised { @sv.zoom_scale_normal = 50 } + assert_equal(@sv.zoom_scale_normal, 50) + end + + def test_zoom_scale_page_layout_view + assert_raise(ArgumentError) { @sv.zoom_scale_page_layout_view = "50" } + assert_nothing_raised { @sv.zoom_scale_page_layout_view = 50 } + assert_equal(@sv.zoom_scale_page_layout_view, 50) + end + + def test_zoom_scale_sheet_layout_view + assert_raise(ArgumentError) { @sv.zoom_scale_sheet_layout_view = "50" } + assert_nothing_raised { @sv.zoom_scale_sheet_layout_view = 50 } + assert_equal(@sv.zoom_scale_sheet_layout_view, 50) + end + + def test_to_xml + p = Axlsx::Package.new + @ws = p.workbook.add_worksheet :name => "sheetview" + @ws.sheet_view do |vs| + vs.view = :page_break_preview + end + + doc = Nokogiri::XML.parse(@ws.to_xml_string) + + assert_equal(1, doc.xpath("//xmlns:worksheet/xmlns:sheetViews/xmlns:sheetView[@topLeftCell=''][@colorId=''] + [@tabSelected='false'][@showWhiteSpace='false'][@showOutlineSymbols='false'][@showFormulas='false'] + [@rightToLeft='false'][@windowProtection='true'][@showZeros='true'][@showRuler='true'] + [@showRowColHeaders='true'][@showGridLines='true'][@defaultGridColor='true'] + [@zoomScale='100'][@workbookViewId='0'][@zoomScaleSheetLayoutView='0'][@zoomScalePageLayoutView='0'] + [@zoomScaleNormal='0'][@view='page_break_preview']").size) + + assert doc.xpath("//xmlns:worksheet/xmlns:sheetViews/xmlns:sheetView[@topLeftCell=''][@colorId=''] + [@tabSelected='false'][@showWhiteSpace='false'][@showOutlineSymbols='false'][@showFormulas='false'] + [@rightToLeft='false'][@windowProtection='true'][@showZeros='true'][@showRuler='true'] + [@showRowColHeaders='true'][@showGridLines='true'][@defaultGridColor='true'] + [@zoomScale='100'][@workbookViewId='0'][@zoomScaleSheetLayoutView='0'][@zoomScalePageLayoutView='0'] + [@zoomScaleNormal='0'][@view='page_break_preview']") + end + + def test_to_xml_string_show_selection + p = Axlsx::Package.new + @ws = p.workbook.add_worksheet :name => "sheetview" + + doc = Nokogiri::XML(@ws.to_xml_string) + assert_equal(1, doc.xpath('//xmlns:worksheet/xmlns:sheetViews/xmlns:sheetView/xmlns:selection[@activeCell="A1"]').size) + assert_equal(1, doc.xpath('//xmlns:worksheet/xmlns:sheetViews/xmlns:sheetView/xmlns:selection[@sqref="A1"]').size) + end +end
\ No newline at end of file |
