axlsx 1.3.6 → 2.0.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.
Files changed (87) hide show
  1. checksums.yaml +4 -4
  2. data/.yardopts_guide +19 -0
  3. data/CHANGELOG.md +8 -0
  4. data/README.md +52 -79
  5. data/Rakefile +0 -5
  6. data/examples/2010_comments.rb +17 -0
  7. data/examples/anchor_swapping.rb +28 -0
  8. data/examples/example.rb +16 -1
  9. data/examples/pivot_table.rb +2 -0
  10. data/examples/underline.rb +13 -0
  11. data/lib/axlsx.rb +8 -0
  12. data/lib/axlsx/doc_props/core.rb +6 -1
  13. data/lib/axlsx/drawing/axes.rb +7 -3
  14. data/lib/axlsx/drawing/bar_3D_chart.rb +2 -2
  15. data/lib/axlsx/drawing/chart.rb +20 -4
  16. data/lib/axlsx/drawing/drawing.rb +2 -17
  17. data/lib/axlsx/drawing/graphic_frame.rb +3 -8
  18. data/lib/axlsx/drawing/hyperlink.rb +5 -12
  19. data/lib/axlsx/drawing/marker.rb +25 -5
  20. data/lib/axlsx/drawing/one_cell_anchor.rb +9 -0
  21. data/lib/axlsx/drawing/pic.rb +17 -23
  22. data/lib/axlsx/drawing/two_cell_anchor.rb +7 -27
  23. data/lib/axlsx/package.rb +31 -11
  24. data/lib/axlsx/rels/relationship.rb +73 -8
  25. data/lib/axlsx/rels/relationships.rb +8 -1
  26. data/lib/axlsx/stylesheet/color.rb +1 -1
  27. data/lib/axlsx/stylesheet/num_fmt.rb +2 -2
  28. data/lib/axlsx/stylesheet/styles.rb +5 -3
  29. data/lib/axlsx/util/serialized_attributes.rb +11 -8
  30. data/lib/axlsx/util/simple_typed_list.rb +34 -13
  31. data/lib/axlsx/util/validators.rb +7 -0
  32. data/lib/axlsx/version.rb +1 -1
  33. data/lib/axlsx/workbook/defined_name.rb +1 -1
  34. data/lib/axlsx/workbook/shared_strings_table.rb +12 -3
  35. data/lib/axlsx/workbook/workbook.rb +31 -8
  36. data/lib/axlsx/workbook/worksheet/break.rb +37 -0
  37. data/lib/axlsx/workbook/worksheet/cell.rb +5 -5
  38. data/lib/axlsx/workbook/worksheet/cell_serializer.rb +1 -1
  39. data/lib/axlsx/workbook/worksheet/col_breaks.rb +35 -0
  40. data/lib/axlsx/workbook/worksheet/comment.rb +6 -5
  41. data/lib/axlsx/workbook/worksheet/comments.rb +3 -3
  42. data/lib/axlsx/workbook/worksheet/conditional_formatting_rule.rb +1 -1
  43. data/lib/axlsx/workbook/worksheet/date_time_converter.rb +6 -5
  44. data/lib/axlsx/workbook/worksheet/pivot_table.rb +32 -18
  45. data/lib/axlsx/workbook/worksheet/pivot_table_cache_definition.rb +4 -3
  46. data/lib/axlsx/workbook/worksheet/pivot_tables.rb +1 -1
  47. data/lib/axlsx/workbook/worksheet/row.rb +1 -1
  48. data/lib/axlsx/workbook/worksheet/row_breaks.rb +33 -0
  49. data/lib/axlsx/workbook/worksheet/table.rb +3 -2
  50. data/lib/axlsx/workbook/worksheet/tables.rb +1 -1
  51. data/lib/axlsx/workbook/worksheet/worksheet.rb +61 -26
  52. data/lib/axlsx/workbook/worksheet/worksheet_comments.rb +6 -5
  53. data/lib/axlsx/workbook/worksheet/worksheet_drawing.rb +3 -9
  54. data/lib/axlsx/workbook/worksheet/worksheet_hyperlink.rb +5 -10
  55. data/lib/schema/sml.xsd +4 -0
  56. data/test/axlsx.qcachegrind +2226 -0
  57. data/test/doc_props/tc_core.rb +7 -0
  58. data/test/drawing/tc_axes.rb +8 -0
  59. data/test/drawing/tc_bar_3D_chart.rb +6 -0
  60. data/test/drawing/tc_chart.rb +13 -0
  61. data/test/drawing/tc_drawing.rb +0 -5
  62. data/test/drawing/tc_graphic_frame.rb +4 -7
  63. data/test/drawing/tc_hyperlink.rb +0 -4
  64. data/test/drawing/tc_pic.rb +14 -3
  65. data/test/drawing/tc_two_cell_anchor.rb +3 -3
  66. data/test/profile.rb +7 -3
  67. data/test/rels/tc_relationship.rb +29 -11
  68. data/test/rels/tc_relationships.rb +12 -1
  69. data/test/stylesheet/tc_color.rb +6 -0
  70. data/test/stylesheet/tc_styles.rb +2 -2
  71. data/test/tc_helper.rb +1 -0
  72. data/test/tc_package.rb +30 -0
  73. data/test/util/tc_serialized_attributes.rb +19 -0
  74. data/test/workbook/tc_shared_strings_table.rb +6 -0
  75. data/test/workbook/tc_workbook.rb +23 -1
  76. data/test/workbook/worksheet/tc_break.rb +49 -0
  77. data/test/workbook/worksheet/tc_comment.rb +17 -6
  78. data/test/workbook/worksheet/tc_conditional_formatting.rb +2 -2
  79. data/test/workbook/worksheet/tc_date_time_converter.rb +3 -11
  80. data/test/workbook/worksheet/tc_pivot_table.rb +40 -22
  81. data/test/workbook/worksheet/tc_pivot_table_cache_definition.rb +9 -1
  82. data/test/workbook/worksheet/tc_sheet_view.rb +39 -39
  83. data/test/workbook/worksheet/tc_table.rb +2 -2
  84. data/test/workbook/worksheet/tc_worksheet.rb +39 -7
  85. data/test/workbook/worksheet/tc_worksheet_hyperlink.rb +2 -11
  86. metadata +37 -10
  87. data/test/example.xlsx +0 -0
@@ -0,0 +1,49 @@
1
+ require 'tc_helper.rb'
2
+
3
+ class TestBreak < Test::Unit::TestCase
4
+
5
+ def setup
6
+ @break = Axlsx::Break.new(:id => 1, :min => 1, :max => 10, :man => true, :pt => false)
7
+ end
8
+
9
+ def test_id
10
+ assert_equal(1, @break.id)
11
+ assert_raises ArgumentError do
12
+ Axlsx::Break.new(:hoge, {:id => -1})
13
+ end
14
+ end
15
+
16
+ def test_min
17
+ assert_equal(1, @break.min)
18
+ assert_raises ArgumentError do
19
+ Axlsx::Break.new(:hoge, :min => -1)
20
+ end
21
+ end
22
+
23
+ def test_max
24
+ assert_equal(10, @break.max)
25
+ assert_raises ArgumentError do
26
+ Axlsx::Break.new(:hoge, :max => -1)
27
+ end
28
+ end
29
+
30
+
31
+ def test_man
32
+ assert_equal(true, @break.man)
33
+ assert_raises ArgumentError do
34
+ Axlsx::Break.new(:man => -1)
35
+ end
36
+ end
37
+
38
+ def test_pt
39
+ assert_equal(false, @break.pt)
40
+ assert_raises ArgumentError do
41
+ Axlsx::Break.new(:pt => -1)
42
+ end
43
+ end
44
+
45
+ def test_to_xml_string
46
+ doc = Nokogiri::XML(@break.to_xml_string)
47
+ assert_equal(doc.xpath('//brk[@id="1"][@min="1"][@max="10"][@pt="false"][@man="true"]').size, 1)
48
+ end
49
+ end
@@ -5,7 +5,7 @@ class TestComment < Test::Unit::TestCase
5
5
  p = Axlsx::Package.new
6
6
  wb = p.workbook
7
7
  @ws = wb.add_worksheet
8
- @c1 = @ws.add_comment :ref => 'A1', :text => 'penut machine', :author => 'crank', :visible => false
8
+ @c1 = @ws.add_comment :ref => 'A1', :text => 'text with special char <', :author => 'author with special char <', :visible => false
9
9
  @c2 = @ws.add_comment :ref => 'C3', :text => 'rust bucket', :author => 'PO'
10
10
  end
11
11
 
@@ -14,12 +14,12 @@ class TestComment < Test::Unit::TestCase
14
14
  end
15
15
 
16
16
  def test_author
17
- assert(@c1.author == 'crank')
17
+ assert(@c1.author == 'author with special char <')
18
18
  assert(@c2.author == 'PO')
19
19
  end
20
20
 
21
21
  def test_text
22
- assert(@c1.text == 'penut machine')
22
+ assert(@c1.text == 'text with special char <')
23
23
  assert(@c2.text == 'rust bucket')
24
24
  end
25
25
 
@@ -49,13 +49,24 @@ class TestComment < Test::Unit::TestCase
49
49
  assert(@c1.vml_shape.bottom_row == pos[1]+4)
50
50
  end
51
51
 
52
- def to_xml_string
52
+ def test_to_xml_string
53
53
  doc = Nokogiri::XML(@c1.to_xml_string)
54
54
  assert_equal(doc.xpath("//comment[@ref='#{@c1.ref}']").size, 1)
55
- assert_equal(doc.xpath("//comment[@authorId='#{@c1.author_index.to}']").size, 1)
56
- assert_equal(doc.xpath("//t[text()='#{@c1.author}']").size, 1)
55
+ assert_equal(doc.xpath("//comment[@authorId='#{@c1.author_index.to_s}']").size, 1)
56
+ assert_equal(doc.xpath("//t[text()='#{@c1.author}:\n']").size, 1)
57
57
  assert_equal(doc.xpath("//t[text()='#{@c1.text}']").size, 1)
58
58
  end
59
59
 
60
+ def test_comment_text_contain_author_and_text
61
+ comment = @ws.add_comment :ref => 'C4', :text => 'some text', :author => 'Bob'
62
+ doc = Nokogiri::XML(comment.to_xml_string)
63
+ assert_equal("Bob:\nsome text", doc.xpath("//comment/text").text)
64
+ end
65
+
66
+ def test_comment_text_does_not_contain_stray_colon_if_author_blank
67
+ comment = @ws.add_comment :ref => 'C5', :text => 'some text', :author => ''
68
+ doc = Nokogiri::XML(comment.to_xml_string)
69
+ assert_equal("some text", doc.xpath("//comment/text").text)
70
+ end
60
71
  end
61
72
 
@@ -131,9 +131,9 @@ class TestConditionalFormatting < Test::Unit::TestCase
131
131
  end
132
132
 
133
133
  def test_multiple_formulas
134
- @ws.add_conditional_formatting "B3:B3", { :type => :cellIs, :dxfId => 0, :priority => 1, :operator => :between, :formula => ["1","5"] }
134
+ @ws.add_conditional_formatting "B3:B3", { :type => :cellIs, :dxfId => 0, :priority => 1, :operator => :between, :formula => ["1 <> 2","5"] }
135
135
  doc = Nokogiri::XML.parse(@ws.to_xml_string)
136
- assert doc.xpath("//xmlns:worksheet/xmlns:conditionalFormatting//xmlns:cfRule[@type='cellIs'][@dxfId=0][@priority=1][@operator='between']//xmlns:formula='1'")
136
+ assert doc.xpath("//xmlns:worksheet/xmlns:conditionalFormatting//xmlns:cfRule[@type='cellIs'][@dxfId=0][@priority=1][@operator='between']//xmlns:formula='1 <> 2'")
137
137
  assert doc.xpath("//xmlns:worksheet/xmlns:conditionalFormatting//xmlns:cfRule[@type='cellIs'][@dxfId=0][@priority=1][@operator='between']//xmlns:formula='5'")
138
138
  end
139
139
 
@@ -113,20 +113,12 @@ class TestDateTimeConverter < Test::Unit::TestCase
113
113
  def test_timezone
114
114
 
115
115
  utc = Time.utc 2012 # January 1st, 2012 at 0:00 UTC
116
-
117
- # JRuby makes no assumption on time zone. randym
118
- #local = begin
119
- # Time.new 2012, 1, 1, 1, 0, 0, 3600 # January 1st, 2012 at 1:00 GMT+1
120
- #rescue ArgumentError
121
- # Time.parse "2012-01-01 01:00:00 +0100"
122
- #end
123
-
124
- local = Time.parse "2012-01-01 01:00:00 +0100"
116
+ local = Time.parse "2012-01-01 09:00:00 +0900"
125
117
 
126
118
  assert_equal local, utc
127
- assert_equal Axlsx::DateTimeConverter::time_to_serial(local), Axlsx::DateTimeConverter::time_to_serial(utc)
119
+ assert_equal Axlsx::DateTimeConverter::time_to_serial(local) - local.utc_offset.to_f/86400, Axlsx::DateTimeConverter::time_to_serial(utc)
128
120
  Axlsx::Workbook.date1904 = true
129
- assert_equal Axlsx::DateTimeConverter::time_to_serial(local), Axlsx::DateTimeConverter::time_to_serial(utc)
121
+ assert_equal Axlsx::DateTimeConverter::time_to_serial(local) - local.utc_offset.to_f/86400, Axlsx::DateTimeConverter::time_to_serial(utc)
130
122
  end
131
123
 
132
124
  end
@@ -1,5 +1,17 @@
1
1
  require 'tc_helper.rb'
2
2
 
3
+
4
+ def shared_test_pivot_table_xml_validity(pivot_table)
5
+ schema = Nokogiri::XML::Schema(File.open(Axlsx::SML_XSD))
6
+ doc = Nokogiri::XML(pivot_table.to_xml_string)
7
+ errors = []
8
+ schema.validate(doc).each do |error|
9
+ errors.push error
10
+ puts error.message
11
+ end
12
+ assert(errors.empty?, "error free validation")
13
+ end
14
+
3
15
  class TestPivotTable < Test::Unit::TestCase
4
16
  def setup
5
17
  p = Axlsx::Package.new
@@ -24,8 +36,18 @@ class TestPivotTable < Test::Unit::TestCase
24
36
  assert_equal(@ws.pivot_tables.last, pivot_table, "must be added to worksheet pivot tables collection")
25
37
  end
26
38
 
39
+ def test_set_pivot_table_data_sheet
40
+ pivot_table = @ws.add_pivot_table('G5:G6', 'A1:D5')
41
+ data_sheet = @ws.clone
42
+ data_sheet.name = "Pivot Table Data Source"
43
+
44
+ assert_equal(pivot_table.data_sheet.name, @ws.name, "must default to the same sheet the pivot table is added to")
45
+ pivot_table.data_sheet = data_sheet
46
+ assert_equal(pivot_table.data_sheet.name, data_sheet.name, "data sheet assigned to pivot table")
47
+ end
48
+
27
49
  def test_add_pivot_table_with_config
28
- pivot_table = @ws.add_pivot_table('G5:G6', 'A1:D5') do |pt|
50
+ pivot_table = @ws.add_pivot_table('G5:G6', 'A1:E5') do |pt|
29
51
  pt.rows = ['Year', 'Month']
30
52
  pt.columns = ['Type']
31
53
  pt.data = ['Sales']
@@ -33,8 +55,16 @@ class TestPivotTable < Test::Unit::TestCase
33
55
  end
34
56
  assert_equal(['Year', 'Month'], pivot_table.rows)
35
57
  assert_equal(['Type'], pivot_table.columns)
36
- assert_equal(['Sales'], pivot_table.data)
58
+ assert_equal([{:ref=>"Sales"}], pivot_table.data)
37
59
  assert_equal(['Region'], pivot_table.pages)
60
+ shared_test_pivot_table_xml_validity(pivot_table)
61
+ end
62
+
63
+ def test_add_pivot_table_with_options_on_data_field
64
+ pivot_table = @ws.add_pivot_table('G5:G6', 'A1:D5') do |pt|
65
+ pt.data = [{:ref=>"Sales", :subtotal => 'average'}]
66
+ end
67
+ assert_equal([{:ref=>"Sales", :subtotal => 'average'}], pivot_table.data)
38
68
  end
39
69
 
40
70
  def test_header_indices
@@ -53,11 +83,6 @@ class TestPivotTable < Test::Unit::TestCase
53
83
  assert_equal(@ws.pivot_tables.first.pn, "pivotTables/pivotTable1.xml")
54
84
  end
55
85
 
56
- def test_rId
57
- @ws.add_pivot_table('G5:G6', 'A1:D5')
58
- assert_equal(@ws.pivot_tables.first.rId, "rId1")
59
- end
60
-
61
86
  def test_index
62
87
  @ws.add_pivot_table('G5:G6', 'A1:D5')
63
88
  assert_equal(@ws.pivot_tables.first.index, @ws.workbook.pivot_tables.index(@ws.pivot_tables.first))
@@ -73,14 +98,7 @@ class TestPivotTable < Test::Unit::TestCase
73
98
 
74
99
  def test_to_xml_string
75
100
  pivot_table = @ws.add_pivot_table('G5:G6', 'A1:D5')
76
- schema = Nokogiri::XML::Schema(File.open(Axlsx::SML_XSD))
77
- doc = Nokogiri::XML(pivot_table.to_xml_string)
78
- errors = []
79
- schema.validate(doc).each do |error|
80
- errors.push error
81
- puts error.message
82
- end
83
- assert(errors.empty?, "error free validation")
101
+ shared_test_pivot_table_xml_validity(pivot_table)
84
102
  end
85
103
 
86
104
  def test_to_xml_string_with_configuration
@@ -90,13 +108,13 @@ class TestPivotTable < Test::Unit::TestCase
90
108
  pt.data = ['Sales']
91
109
  pt.pages = ['Region']
92
110
  end
93
- schema = Nokogiri::XML::Schema(File.open(Axlsx::SML_XSD))
94
- doc = Nokogiri::XML(pivot_table.to_xml_string)
95
- errors = []
96
- schema.validate(doc).each do |error|
97
- errors.push error
98
- puts error.message
111
+ shared_test_pivot_table_xml_validity(pivot_table)
112
+ end
113
+
114
+ def test_to_xml_string_with_options_on_data_field
115
+ pivot_table = @ws.add_pivot_table('G5:G6', 'A1:E5') do |pt|
116
+ pt.data = [{:ref=>"Sales", :subtotal => 'average'}]
99
117
  end
100
- assert(errors.empty?, "error free validation")
118
+ shared_test_pivot_table_xml_validity(pivot_table)
101
119
  end
102
120
  end
@@ -21,7 +21,7 @@ class TestPivotTableCacheDefinition < Test::Unit::TestCase
21
21
  end
22
22
 
23
23
  def test_rId
24
- assert_equal('rId1', @cache_definition.rId)
24
+ assert_equal @pivot_table.relationships.for(@cache_definition).Id, @cache_definition.rId
25
25
  end
26
26
 
27
27
  def test_index
@@ -32,6 +32,14 @@ class TestPivotTableCacheDefinition < Test::Unit::TestCase
32
32
  assert_equal(1, @cache_definition.cache_id)
33
33
  end
34
34
 
35
+ def test_data_sheet
36
+ data_sheet = @ws.clone
37
+ data_sheet.name = "Pivot Table Data Source"
38
+ @pivot_table.data_sheet = data_sheet
39
+
40
+ assert(@cache_definition.to_xml_string.include?(data_sheet.name), "must set the data source correctly")
41
+ end
42
+
35
43
  def test_to_xml_string
36
44
  schema = Nokogiri::XML::Schema(File.open(Axlsx::SML_XSD))
37
45
  doc = Nokogiri::XML(@cache_definition.to_xml_string)
@@ -5,207 +5,207 @@ require 'tc_helper.rb'
5
5
  class TestSheetView < Test::Unit::TestCase
6
6
  def setup
7
7
  #inverse defaults for booleans
8
- @boolean_options = { :right_to_left => true, :show_formulas => true, :show_outline_symbols => true,
8
+ @boolean_options = { :right_to_left => true, :show_formulas => true, :show_outline_symbols => true,
9
9
  :show_white_space => true, :tab_selected => true, :default_grid_color => false, :show_grid_lines => false,
10
10
  :show_row_col_headers => false, :show_ruler => false, :show_zeros => false, :window_protection => true }
11
11
  @symbol_options = { :view => :page_break_preview }
12
12
  @nil_options = { :color_id => 2, :top_left_cell => 'A2' }
13
13
  @int_0 = { :zoom_scale_normal => 100, :zoom_scale_page_layout_view => 100, :zoom_scale_sheet_layout_view => 100, :workbook_view_id => 2 }
14
14
  @int_100 = { :zoom_scale => 10 }
15
-
15
+
16
16
  @integer_options = { :color_id => 2, :workbook_view_id => 2 }.merge(@int_0).merge(@int_100)
17
17
  @string_options = { :top_left_cell => 'A2' }
18
-
19
-
18
+
19
+
20
20
  @options = @boolean_options.merge(@boolean_options).merge(@symbol_options).merge(@nil_options).merge(@int_0).merge(@int_100)
21
-
21
+
22
22
  @sv = Axlsx::SheetView.new(@options)
23
23
  end
24
-
24
+
25
25
  def test_initialize
26
26
  sv = Axlsx::SheetView.new
27
-
27
+
28
28
  @boolean_options.each do |key, value|
29
29
  assert_equal(!value, sv.send(key.to_sym), "initialized default #{key} should be #{!value}")
30
30
  assert_equal(value, @sv.send(key.to_sym), "initialized options #{key} should be #{value}")
31
31
  end
32
-
32
+
33
33
  @nil_options.each do |key, value|
34
34
  assert_equal(nil, sv.send(key.to_sym), "initialized default #{key} should be nil")
35
35
  assert_equal(value, @sv.send(key.to_sym), "initialized options #{key} should be #{value}")
36
36
  end
37
-
37
+
38
38
  @int_0.each do |key, value|
39
39
  assert_equal(0, sv.send(key.to_sym), "initialized default #{key} should be 0")
40
40
  assert_equal(value, @sv.send(key.to_sym), "initialized options #{key} should be #{value}")
41
41
  end
42
-
42
+
43
43
  @int_100.each do |key, value|
44
44
  assert_equal(100, sv.send(key.to_sym), "initialized default #{key} should be 100")
45
45
  assert_equal(value, @sv.send(key.to_sym), "initialized options #{key} should be #{value}")
46
46
  end
47
47
  end
48
-
48
+
49
49
  def test_boolean_attribute_validation
50
50
  @boolean_options.each do |key, value|
51
51
  assert_raise(ArgumentError, "#{key} must be boolean") { @sv.send("#{key}=".to_sym, 'A') }
52
52
  assert_nothing_raised { @sv.send("#{key}=".to_sym, true) }
53
53
  end
54
54
  end
55
-
55
+
56
56
  def test_string_attribute_validation
57
57
  @string_options.each do |key, value|
58
58
  assert_raise(ArgumentError, "#{key} must be string") { @sv.send("#{key}=".to_sym, :symbol) }
59
59
  assert_nothing_raised { @sv.send("#{key}=".to_sym, "foo") }
60
60
  end
61
61
  end
62
-
62
+
63
63
  def test_symbol_attribute_validation
64
64
  @symbol_options.each do |key, value|
65
65
  assert_raise(ArgumentError, "#{key} must be symbol") { @sv.send("#{key}=".to_sym, "foo") }
66
66
  assert_nothing_raised { @sv.send("#{key}=".to_sym, value) }
67
67
  end
68
68
  end
69
-
69
+
70
70
  def test_integer_attribute_validation
71
71
  @integer_options.each do |key, value|
72
72
  assert_raise(ArgumentError, "#{key} must be integer") { @sv.send("#{key}=".to_sym, "foo") }
73
73
  assert_nothing_raised { @sv.send("#{key}=".to_sym, value) }
74
74
  end
75
75
  end
76
-
76
+
77
77
  def test_color_id
78
78
  assert_raise(ArgumentError) { @sv.color_id = "10" }
79
79
  assert_nothing_raised { @sv.color_id = 2 }
80
80
  assert_equal(@sv.color_id, 2)
81
81
  end
82
-
82
+
83
83
  def test_default_grid_color
84
84
  assert_raise(ArgumentError) { @sv.default_grid_color = "foo" }
85
85
  assert_nothing_raised { @sv.default_grid_color = false }
86
86
  assert_equal(@sv.default_grid_color, false)
87
87
  end
88
-
88
+
89
89
  def test_right_to_left
90
90
  assert_raise(ArgumentError) { @sv.right_to_left = "foo´" }
91
91
  assert_nothing_raised { @sv.right_to_left = true }
92
92
  assert_equal(@sv.right_to_left, true)
93
93
  end
94
-
94
+
95
95
  def test_show_formulas
96
96
  assert_raise(ArgumentError) { @sv.show_formulas = 'foo' }
97
97
  assert_nothing_raised { @sv.show_formulas = false }
98
98
  assert_equal(@sv.show_formulas, false)
99
99
  end
100
-
100
+
101
101
  def test_show_grid_lines
102
102
  assert_raise(ArgumentError) { @sv.show_grid_lines = "foo" }
103
103
  assert_nothing_raised { @sv.show_grid_lines = false }
104
104
  assert_equal(@sv.show_grid_lines, false)
105
105
  end
106
-
106
+
107
107
  def test_show_outline_symbols
108
108
  assert_raise(ArgumentError) { @sv.show_outline_symbols = 'foo' }
109
109
  assert_nothing_raised { @sv.show_outline_symbols = false }
110
110
  assert_equal(@sv.show_outline_symbols, false)
111
111
  end
112
-
112
+
113
113
  def test_show_row_col_headers
114
114
  assert_raise(ArgumentError) { @sv.show_row_col_headers = "foo" }
115
115
  assert_nothing_raised { @sv.show_row_col_headers = false }
116
116
  assert_equal(@sv.show_row_col_headers, false)
117
117
  end
118
-
118
+
119
119
  def test_show_ruler
120
120
  assert_raise(ArgumentError) { @sv.show_ruler = 'foo' }
121
121
  assert_nothing_raised { @sv.show_ruler = false }
122
122
  assert_equal(@sv.show_ruler, false)
123
123
  end
124
-
124
+
125
125
  def test_show_white_space
126
126
  assert_raise(ArgumentError) { @sv.show_white_space = 'foo' }
127
127
  assert_nothing_raised { @sv.show_white_space = false }
128
128
  assert_equal(@sv.show_white_space, false)
129
129
  end
130
-
130
+
131
131
  def test_show_zeros
132
132
  assert_raise(ArgumentError) { @sv.show_zeros = "foo" }
133
133
  assert_nothing_raised { @sv.show_zeros = false }
134
134
  assert_equal(@sv.show_zeros, false)
135
135
  end
136
-
136
+
137
137
  def test_tab_selected
138
138
  assert_raise(ArgumentError) { @sv.tab_selected = "foo" }
139
139
  assert_nothing_raised { @sv.tab_selected = false }
140
140
  assert_equal(@sv.tab_selected, false)
141
141
  end
142
-
142
+
143
143
  def test_top_left_cell
144
144
  assert_raise(ArgumentError) { @sv.top_left_cell = :cell_adress }
145
145
  assert_nothing_raised { @sv.top_left_cell = "A2" }
146
146
  assert_equal(@sv.top_left_cell, "A2")
147
147
  end
148
-
148
+
149
149
  def test_view
150
150
  assert_raise(ArgumentError) { @sv.view = 'view' }
151
151
  assert_nothing_raised { @sv.view = :page_break_preview }
152
152
  assert_equal(@sv.view, :page_break_preview)
153
153
  end
154
-
154
+
155
155
  def test_window_protection
156
156
  assert_raise(ArgumentError) { @sv.window_protection = "foo" }
157
157
  assert_nothing_raised { @sv.window_protection = false }
158
158
  assert_equal(@sv.window_protection, false)
159
159
  end
160
-
160
+
161
161
  def test_workbook_view_id
162
162
  assert_raise(ArgumentError) { @sv.workbook_view_id = "1" }
163
163
  assert_nothing_raised { @sv.workbook_view_id = 1 }
164
164
  assert_equal(@sv.workbook_view_id, 1)
165
165
  end
166
-
166
+
167
167
  def test_zoom_scale
168
168
  assert_raise(ArgumentError) { @sv.zoom_scale = "50" }
169
169
  assert_nothing_raised { @sv.zoom_scale = 50 }
170
170
  assert_equal(@sv.zoom_scale, 50)
171
171
  end
172
-
172
+
173
173
  def test_zoom_scale_normal
174
174
  assert_raise(ArgumentError) { @sv.zoom_scale_normal = "50" }
175
175
  assert_nothing_raised { @sv.zoom_scale_normal = 50 }
176
176
  assert_equal(@sv.zoom_scale_normal, 50)
177
177
  end
178
-
178
+
179
179
  def test_zoom_scale_page_layout_view
180
180
  assert_raise(ArgumentError) { @sv.zoom_scale_page_layout_view = "50" }
181
181
  assert_nothing_raised { @sv.zoom_scale_page_layout_view = 50 }
182
182
  assert_equal(@sv.zoom_scale_page_layout_view, 50)
183
183
  end
184
-
184
+
185
185
  def test_zoom_scale_sheet_layout_view
186
186
  assert_raise(ArgumentError) { @sv.zoom_scale_sheet_layout_view = "50" }
187
187
  assert_nothing_raised { @sv.zoom_scale_sheet_layout_view = 50 }
188
188
  assert_equal(@sv.zoom_scale_sheet_layout_view, 50)
189
189
  end
190
-
190
+
191
191
  def test_to_xml
192
192
  p = Axlsx::Package.new
193
193
  @ws = p.workbook.add_worksheet :name => "sheetview"
194
194
  @ws.sheet_view do |vs|
195
195
  vs.view = :page_break_preview
196
196
  end
197
-
197
+
198
198
  doc = Nokogiri::XML.parse(@ws.sheet_view.to_xml_string)
199
-
199
+
200
200
  assert_equal(1, doc.xpath("//sheetView[@tabSelected='false']").size)
201
-
201
+
202
202
  assert_equal(1, doc.xpath("//sheetView[@tabSelected='false'][@showWhiteSpace='false'][@showOutlineSymbols='false'][@showFormulas='false']
203
203
  [@rightToLeft='false'][@windowProtection='false'][@showZeros='true'][@showRuler='true']
204
204
  [@showRowColHeaders='true'][@showGridLines='true'][@defaultGridColor='true']
205
205
  [@zoomScale='100'][@workbookViewId='0'][@zoomScaleSheetLayoutView='0'][@zoomScalePageLayoutView='0']
206
- [@zoomScaleNormal='0'][@view='page_break_preview']").size)
206
+ [@zoomScaleNormal='0'][@view='pageBreakPreview']").size)
207
207
  end
208
-
208
+
209
209
  def test_add_selection
210
210
  @sv.add_selection(:top_left, :active_cell => "A1")
211
211
  assert_equal('A1', @sv.selections[:top_left].active_cell)