summaryrefslogtreecommitdiffhomepage
path: root/test/workbook/worksheet/tc_cell.rb
diff options
context:
space:
mode:
Diffstat (limited to 'test/workbook/worksheet/tc_cell.rb')
-rw-r--r--test/workbook/worksheet/tc_cell.rb242
1 files changed, 143 insertions, 99 deletions
diff --git a/test/workbook/worksheet/tc_cell.rb b/test/workbook/worksheet/tc_cell.rb
index 959304c8..9e1ebb0a 100644
--- a/test/workbook/worksheet/tc_cell.rb
+++ b/test/workbook/worksheet/tc_cell.rb
@@ -15,14 +15,15 @@ class TestCell < Test::Unit::TestCase
def test_initialize
assert_equal(@row.cells.last, @c, "the cell was added to the row")
- assert_equal(@c.type, :float, "type option is applied")
- assert_equal(@c.style, 1, "style option is applied")
- assert_equal(@c.value, 1.0, "type option is applied and value is casted")
- assert_equal(@c.escape_formulas, true, "escape formulas option is applied")
+ assert_equal(:float, @c.type, "type option is applied")
+ assert_equal(1, @c.style, "style option is applied")
+ assert_in_delta(@c.value, 1.0, 0.001, "type option is applied and value is casted")
+ assert(@c.escape_formulas, "escape formulas option is applied")
end
def test_style_date_data
c = Axlsx::Cell.new(@c.row, Time.now)
+
assert_equal(Axlsx::STYLE_DATE, c.style)
end
@@ -39,20 +40,21 @@ class TestCell < Test::Unit::TestCase
end
def test_r
- assert_equal(@c.r, "A1", "calculate cell reference")
+ assert_equal("A1", @c.r, "calculate cell reference")
end
def test_wide_r
- assert_equal(@cAA.r, "AA2", "calculate cell reference")
+ assert_equal("AA2", @cAA.r, "calculate cell reference")
end
def test_r_abs
- assert_equal(@c.r_abs, "$A$1", "calculate absolute cell reference")
- assert_equal(@cAA.r_abs, "$AA$2", "needs to accept multi-digit columns")
+ assert_equal("$A$1", @c.r_abs, "calculate absolute cell reference")
+ assert_equal("$AA$2", @cAA.r_abs, "needs to accept multi-digit columns")
end
def test_name
@c.name = 'foo'
+
assert_equal(1, @ws.workbook.defined_names.size)
assert_equal('foo', @ws.workbook.defined_names.last.name)
end
@@ -60,6 +62,7 @@ class TestCell < Test::Unit::TestCase
def test_autowidth
style = @c.row.worksheet.workbook.styles.add_style({ :alignment => { :horizontal => :center, :vertical => :center, :wrap_text => true } })
@c.style = style
+
assert_in_delta(6.6, @c.autowidth, 0.01)
end
@@ -67,11 +70,13 @@ class TestCell < Test::Unit::TestCase
style = @c.row.worksheet.workbook.styles.add_style(b: true)
@c.row.worksheet.workbook.bold_font_multiplier = 1.05
@c.style = style
+
assert_in_delta(6.93, @c.autowidth, 0.01)
end
def test_autowidth_with_font_scale_divisor
@c.row.worksheet.workbook.font_scale_divisor = 11.0
+
assert_in_delta(6.0, @c.autowidth, 0.01)
end
@@ -79,6 +84,7 @@ class TestCell < Test::Unit::TestCase
@c.type = :time
now = DateTime.now
@c.value = now
+
assert_equal(@c.value, now.to_time)
end
@@ -86,55 +92,56 @@ class TestCell < Test::Unit::TestCase
@c.type = :date
now = Time.now
@c.value = now
+
assert_equal(@c.value, now.to_date)
end
def test_style
assert_raise(ArgumentError, "must reject invalid style indexes") { @c.style = @c.row.worksheet.workbook.styles.cellXfs.size }
assert_nothing_raised("must allow valid style index changes") { @c.style = 1 }
- assert_equal(@c.style, 1)
+ assert_equal(1, @c.style)
end
def test_type
assert_raise(ArgumentError, "type must be :string, :integer, :float, :date, :time, :boolean") { @c.type = :array }
assert_nothing_raised("type can be changed") { @c.type = :string }
- assert_equal(@c.value, "1.0", "changing type casts the value")
+ assert_equal("1.0", @c.value, "changing type casts the value")
assert_equal(:float, @row.add_cell(1.0 / (10**7)).type, 'properly identify exponential floats as float type')
- assert_equal(@row.add_cell(Time.now).type, :time, 'time should be time')
- assert_equal(@row.add_cell(Date.today).type, :date, 'date should be date')
- assert_equal(@row.add_cell(true).type, :boolean, 'boolean should be boolean')
+ assert_equal(:time, @row.add_cell(Time.now).type, 'time should be time')
+ assert_equal(:date, @row.add_cell(Date.today).type, 'date should be date')
+ assert_equal(:boolean, @row.add_cell(true).type, 'boolean should be boolean')
end
def test_value
assert_raise(ArgumentError, "type must be :string, :integer, :float, :date, :time, :boolean") { @c.type = :array }
assert_nothing_raised("type can be changed") { @c.type = :string }
- assert_equal(@c.value, "1.0", "changing type casts the value")
+ assert_equal("1.0", @c.value, "changing type casts the value")
end
def test_col_ref
# TODO: move to axlsx spec
- assert_equal(Axlsx.col_ref(0), "A")
+ assert_equal("A", Axlsx.col_ref(0))
end
def test_cell_type_from_value
- assert_equal(@c.send(:cell_type_from_value, 1.0), :float)
- assert_equal(@c.send(:cell_type_from_value, "1e1"), :float)
- assert_equal(@c.send(:cell_type_from_value, "1e#{Float::MAX_10_EXP}"), :float)
- assert_equal(@c.send(:cell_type_from_value, "1e#{Float::MAX_10_EXP + 1}"), :string)
- assert_equal(@c.send(:cell_type_from_value, "1e-1"), :float)
- assert_equal(@c.send(:cell_type_from_value, "1e#{Float::MIN_10_EXP}"), :float)
- assert_equal(@c.send(:cell_type_from_value, "1e#{Float::MIN_10_EXP - 1}"), :string)
- assert_equal(@c.send(:cell_type_from_value, 1), :integer)
- assert_equal(@c.send(:cell_type_from_value, Date.today), :date)
- assert_equal(@c.send(:cell_type_from_value, Time.now), :time)
- assert_equal(@c.send(:cell_type_from_value, []), :string)
- assert_equal(@c.send(:cell_type_from_value, "d"), :string)
- assert_equal(@c.send(:cell_type_from_value, nil), :string)
- assert_equal(@c.send(:cell_type_from_value, -1), :integer)
- assert_equal(@c.send(:cell_type_from_value, true), :boolean)
- assert_equal(@c.send(:cell_type_from_value, false), :boolean)
- assert_equal(@c.send(:cell_type_from_value, 1.0 / (10**6)), :float)
- assert_equal(@c.send(:cell_type_from_value, Axlsx::RichText.new), :richtext)
+ assert_equal(:float, @c.send(:cell_type_from_value, 1.0))
+ assert_equal(:float, @c.send(:cell_type_from_value, "1e1"))
+ assert_equal(:float, @c.send(:cell_type_from_value, "1e#{Float::MAX_10_EXP}"))
+ assert_equal(:string, @c.send(:cell_type_from_value, "1e#{Float::MAX_10_EXP + 1}"))
+ assert_equal(:float, @c.send(:cell_type_from_value, "1e-1"))
+ assert_equal(:float, @c.send(:cell_type_from_value, "1e#{Float::MIN_10_EXP}"))
+ assert_equal(:string, @c.send(:cell_type_from_value, "1e#{Float::MIN_10_EXP - 1}"))
+ assert_equal(:integer, @c.send(:cell_type_from_value, 1))
+ assert_equal(:date, @c.send(:cell_type_from_value, Date.today))
+ assert_equal(:time, @c.send(:cell_type_from_value, Time.now))
+ assert_equal(:string, @c.send(:cell_type_from_value, []))
+ assert_equal(:string, @c.send(:cell_type_from_value, "d"))
+ assert_equal(:string, @c.send(:cell_type_from_value, nil))
+ assert_equal(:integer, @c.send(:cell_type_from_value, -1))
+ assert_equal(:boolean, @c.send(:cell_type_from_value, true))
+ assert_equal(:boolean, @c.send(:cell_type_from_value, false))
+ assert_equal(:float, @c.send(:cell_type_from_value, 1.0 / (10**6)))
+ assert_equal(:richtext, @c.send(:cell_type_from_value, Axlsx::RichText.new))
assert_equal(:iso_8601, @c.send(:cell_type_from_value, '2008-08-30T01:45:36.123+09:00'))
end
@@ -159,27 +166,35 @@ class TestCell < Test::Unit::TestCase
]
number_strings.each do |number_string|
- assert_equal(@c.send(:cell_type_from_value, mimic_number.new(number_string)), :string)
+ assert_equal(:string, @c.send(:cell_type_from_value, mimic_number.new(number_string)))
end
end
def test_cast_value
@c.type = :string
- assert_equal(@c.send(:cast_value, 1.0), "1.0")
+
+ assert_equal("1.0", @c.send(:cast_value, 1.0))
@c.type = :integer
- assert_equal(@c.send(:cast_value, 1.0), 1)
+
+ assert_equal(1, @c.send(:cast_value, 1.0))
@c.type = :float
- assert_equal(@c.send(:cast_value, "1.0"), 1.0)
+
+ assert_in_delta(@c.send(:cast_value, "1.0"), 1.0)
@c.type = :string
- assert_equal(@c.send(:cast_value, nil), nil)
+
+ assert_nil(@c.send(:cast_value, nil))
@c.type = :richtext
- assert_equal(@c.send(:cast_value, nil), nil)
+
+ assert_nil(@c.send(:cast_value, nil))
@c.type = :float
- assert_equal(@c.send(:cast_value, nil), nil)
+
+ assert_nil(@c.send(:cast_value, nil))
@c.type = :boolean
- assert_equal(@c.send(:cast_value, true), 1)
- assert_equal(@c.send(:cast_value, false), 0)
+
+ assert_equal(1, @c.send(:cast_value, true))
+ assert_equal(0, @c.send(:cast_value, false))
@c.type = :iso_8601
+
assert_equal("2012-10-10T12:24", @c.send(:cast_value, "2012-10-10T12:24"))
end
@@ -193,173 +208,190 @@ class TestCell < Test::Unit::TestCase
time = subtime.now
@c.type = :time
+
assert_equal(time, @c.send(:cast_value, time))
end
def test_color
assert_raise(ArgumentError) { @c.color = -1.1 }
assert_nothing_raised { @c.color = "FF00FF00" }
- assert_equal(@c.color.rgb, "FF00FF00")
+ assert_equal("FF00FF00", @c.color.rgb)
end
def test_scheme
assert_raise(ArgumentError) { @c.scheme = -1.1 }
assert_nothing_raised { @c.scheme = :major }
- assert_equal(@c.scheme, :major)
+ assert_equal(:major, @c.scheme)
end
def test_vertAlign
assert_raise(ArgumentError) { @c.vertAlign = -1.1 }
assert_nothing_raised { @c.vertAlign = :baseline }
- assert_equal(@c.vertAlign, :baseline)
+ assert_equal(:baseline, @c.vertAlign)
end
def test_sz
assert_raise(ArgumentError) { @c.sz = -1.1 }
assert_nothing_raised { @c.sz = 12 }
- assert_equal(@c.sz, 12)
+ assert_equal(12, @c.sz)
end
def test_extend
assert_raise(ArgumentError) { @c.extend = -1.1 }
assert_nothing_raised { @c.extend = false }
- assert_equal(@c.extend, false)
+ refute(@c.extend)
end
def test_condense
assert_raise(ArgumentError) { @c.condense = -1.1 }
assert_nothing_raised { @c.condense = false }
- assert_equal(@c.condense, false)
+ refute(@c.condense)
end
def test_shadow
assert_raise(ArgumentError) { @c.shadow = -1.1 }
assert_nothing_raised { @c.shadow = false }
- assert_equal(@c.shadow, false)
+ refute(@c.shadow)
end
def test_outline
assert_raise(ArgumentError) { @c.outline = -1.1 }
assert_nothing_raised { @c.outline = false }
- assert_equal(@c.outline, false)
+ refute(@c.outline)
end
def test_strike
assert_raise(ArgumentError) { @c.strike = -1.1 }
assert_nothing_raised { @c.strike = false }
- assert_equal(@c.strike, false)
+ refute(@c.strike)
end
def test_u
@c.type = :string
assert_raise(ArgumentError) { @c.u = -1.1 }
assert_nothing_raised { @c.u = :single }
- assert_equal(@c.u, :single)
+ assert_equal(:single, @c.u)
doc = Nokogiri::XML(@c.to_xml_string(1, 1))
+
assert(doc.xpath('//u[@val="single"]'))
end
def test_i
assert_raise(ArgumentError) { @c.i = -1.1 }
assert_nothing_raised { @c.i = false }
- assert_equal(@c.i, false)
+ refute(@c.i)
end
def test_rFont
assert_raise(ArgumentError) { @c.font_name = -1.1 }
assert_nothing_raised { @c.font_name = "Arial" }
- assert_equal(@c.font_name, "Arial")
+ assert_equal("Arial", @c.font_name)
end
def test_charset
assert_raise(ArgumentError) { @c.charset = -1.1 }
assert_nothing_raised { @c.charset = 1 }
- assert_equal(@c.charset, 1)
+ assert_equal(1, @c.charset)
end
def test_family
assert_raise(ArgumentError) { @c.family = -1.1 }
assert_nothing_raised { @c.family = 5 }
- assert_equal(@c.family, 5)
+ assert_equal(5, @c.family)
end
def test_b
assert_raise(ArgumentError) { @c.b = -1.1 }
assert_nothing_raised { @c.b = false }
- assert_equal(@c.b, false)
+ refute(@c.b)
end
def test_merge_with_string
@c.row.add_cell 2
@c.row.add_cell 3
@c.merge "A2"
- assert_equal(@c.row.worksheet.send(:merged_cells).last, "A1:A2")
+
+ assert_equal("A1:A2", @c.row.worksheet.send(:merged_cells).last)
end
def test_merge_with_cell
@c.row.add_cell 2
@c.row.add_cell 3
@c.merge @row.cells.last
- assert_equal(@c.row.worksheet.send(:merged_cells).last, "A1:C1")
+
+ assert_equal("A1:C1", @c.row.worksheet.send(:merged_cells).last)
end
def test_reverse_merge_with_cell
@c.row.add_cell 2
@c.row.add_cell 3
@row.cells.last.merge @c
- assert_equal(@c.row.worksheet.send(:merged_cells).last, "A1:C1")
+
+ assert_equal("A1:C1", @c.row.worksheet.send(:merged_cells).last)
end
def test_ssti
assert_raise(ArgumentError, "ssti must be an unsigned integer!") { @c.send(:ssti=, -1) }
@c.send :ssti=, 1
- assert_equal(@c.ssti, 1)
+
+ assert_equal(1, @c.ssti)
end
def test_plain_string
@c.escape_formulas = false
@c.type = :integer
- assert_equal(@c.plain_string?, false)
+
+ refute_predicate(@c, :plain_string?)
@c.type = :string
@c.value = 'plain string'
- assert_equal(@c.plain_string?, true)
+
+ assert_predicate(@c, :plain_string?)
@c.value = nil
- assert_equal(@c.plain_string?, false)
+
+ refute_predicate(@c, :plain_string?)
@c.value = ''
- assert_equal(@c.plain_string?, false)
+
+ refute_predicate(@c, :plain_string?)
@c.value = '=sum'
- assert_equal(@c.plain_string?, false)
+
+ refute_predicate(@c, :plain_string?)
@c.value = '{=sum}'
- assert_equal(@c.plain_string?, false)
+
+ refute_predicate(@c, :plain_string?)
@c.escape_formulas = true
@c.value = '=sum'
- assert_equal(@c.plain_string?, true)
+
+ assert_predicate(@c, :plain_string?)
@c.value = '{=sum}'
- assert_equal(@c.plain_string?, true)
+
+ assert_predicate(@c, :plain_string?)
@c.value = 'plain string'
@c.font_name = 'Arial'
- assert_equal(@c.plain_string?, false)
+
+ refute_predicate(@c, :plain_string?)
end
def test_to_xml_string
c_xml = Nokogiri::XML(@c.to_xml_string(1, 1))
- assert_equal(c_xml.xpath("/c[@s=1]").size, 1)
+
+ assert_equal(1, c_xml.xpath("/c[@s=1]").size)
end
def test_to_xml_string_nil
@c.value = nil
c_xml = Nokogiri::XML(@c.to_xml_string(1, 1))
- assert_equal(c_xml.xpath("/c[@s=1]").size, 1)
+
+ assert_equal(1, c_xml.xpath("/c[@s=1]").size)
end
def test_to_xml_string_with_run
@@ -371,7 +403,8 @@ class TestCell < Test::Unit::TestCase
@c.font_name = 'arial'
@c.color = 'FF0000'
c_xml = Nokogiri::XML(@c.to_xml_string(1, 1))
- assert(c_xml.xpath("//b").any?)
+
+ assert_predicate(c_xml.xpath("//b"), :any?)
end
def test_to_xml_string_formula
@@ -381,7 +414,8 @@ class TestCell < Test::Unit::TestCase
end
doc = Nokogiri::XML(ws.to_xml_string)
doc.remove_namespaces!
- assert(doc.xpath("//f[text()='IF(2+2=4,4,5)']").any?)
+
+ assert_predicate(doc.xpath("//f[text()='IF(2+2=4,4,5)']"), :any?)
end
def test_to_xml_string_formula_escaped
@@ -391,7 +425,8 @@ class TestCell < Test::Unit::TestCase
end
doc = Nokogiri::XML(ws.to_xml_string)
doc.remove_namespaces!
- assert(doc.xpath("//t[text()='=IF(2+2=4,4,5)']").any?)
+
+ assert_predicate(doc.xpath("//t[text()='=IF(2+2=4,4,5)']"), :any?)
end
def test_to_xml_string_numeric_escaped
@@ -401,8 +436,9 @@ class TestCell < Test::Unit::TestCase
end
doc = Nokogiri::XML(ws.to_xml_string)
doc.remove_namespaces!
- assert(doc.xpath("//t[text()='-1']").any?)
- assert(doc.xpath("//t[text()='+2']").any?)
+
+ assert_predicate(doc.xpath("//t[text()='-1']"), :any?)
+ assert_predicate(doc.xpath("//t[text()='+2']"), :any?)
end
def test_to_xml_string_owasp_prefixes_that_are_no_excel_formulas
@@ -422,11 +458,12 @@ class TestCell < Test::Unit::TestCase
end
doc = Nokogiri::XML(ws.to_xml_string)
doc.remove_namespaces!
- assert(doc.xpath("//t[text()='@1']").any?)
- assert(doc.xpath("//t[text()='%2']").any?)
- assert(doc.xpath("//t[text()='|3']").any?)
- assert(doc.xpath("//t[text()='\nfoo']").any?)
- assert(doc.xpath("//t[text()='\tbar']").any?)
+
+ assert_predicate(doc.xpath("//t[text()='@1']"), :any?)
+ assert_predicate(doc.xpath("//t[text()='%2']"), :any?)
+ assert_predicate(doc.xpath("//t[text()='|3']"), :any?)
+ assert_predicate(doc.xpath("//t[text()='\nfoo']"), :any?)
+ assert_predicate(doc.xpath("//t[text()='\tbar']"), :any?)
end
def test_to_xml_string_owasp_prefixes_that_are_no_excel_formulas_with_escape_formulas
@@ -446,11 +483,12 @@ class TestCell < Test::Unit::TestCase
end
doc = Nokogiri::XML(ws.to_xml_string)
doc.remove_namespaces!
- assert(doc.xpath("//t[text()='@1']").any?)
- assert(doc.xpath("//t[text()='%2']").any?)
- assert(doc.xpath("//t[text()='|3']").any?)
- assert(doc.xpath("//t[text()='\nfoo']").any?)
- assert(doc.xpath("//t[text()='\tbar']").any?)
+
+ assert_predicate(doc.xpath("//t[text()='@1']"), :any?)
+ assert_predicate(doc.xpath("//t[text()='%2']"), :any?)
+ assert_predicate(doc.xpath("//t[text()='|3']"), :any?)
+ assert_predicate(doc.xpath("//t[text()='\nfoo']"), :any?)
+ assert_predicate(doc.xpath("//t[text()='\tbar']"), :any?)
end
def test_to_xml_string_formula_escape_array_parameter
@@ -465,9 +503,9 @@ class TestCell < Test::Unit::TestCase
doc = Nokogiri::XML(ws.to_xml_string)
doc.remove_namespaces!
- assert(doc.xpath("//t[text()='=IF(2+2=4,4,5)']").any?)
- assert(doc.xpath("//f[text()='IF(13+13=4,4,5)']").any?)
- assert(doc.xpath("//t[text()='=IF(99+99=4,4,5)']").any?)
+ assert_predicate(doc.xpath("//t[text()='=IF(2+2=4,4,5)']"), :any?)
+ assert_predicate(doc.xpath("//f[text()='IF(13+13=4,4,5)']"), :any?)
+ assert_predicate(doc.xpath("//t[text()='=IF(99+99=4,4,5)']"), :any?)
end
def test_to_xml_string_array_formula
@@ -477,9 +515,10 @@ class TestCell < Test::Unit::TestCase
end
doc = Nokogiri::XML(ws.to_xml_string)
doc.remove_namespaces!
- assert(doc.xpath("//f[text()='SUM(C2:C11*D2:D11)']").any?)
- assert(doc.xpath("//f[@t='array']").any?)
- assert(doc.xpath("//f[@ref='A1']").any?)
+
+ assert_predicate(doc.xpath("//f[text()='SUM(C2:C11*D2:D11)']"), :any?)
+ assert_predicate(doc.xpath("//f[@t='array']"), :any?)
+ assert_predicate(doc.xpath("//f[@ref='A1']"), :any?)
end
def test_to_xml_string_text_formula
@@ -490,32 +529,36 @@ class TestCell < Test::Unit::TestCase
doc = Nokogiri::XML(ws.to_xml_string)
doc.remove_namespaces!
- assert(doc.xpath("//f[text()='1+1']").empty?)
- assert(doc.xpath("//t[text()='=1+1']").any?)
+ assert_empty(doc.xpath("//f[text()='1+1']"))
+ assert_predicate(doc.xpath("//t[text()='=1+1']"), :any?)
- assert(doc.xpath("//f[text()='1+1']").empty?)
- assert(doc.xpath("//t[text()='-1+1']").any?)
+ assert_empty(doc.xpath("//f[text()='1+1']"))
+ assert_predicate(doc.xpath("//t[text()='-1+1']"), :any?)
end
def test_font_size_with_custom_style_and_no_sz
@c.style = @c.row.worksheet.workbook.styles.add_style :bg_color => 'FF00FF'
sz = @c.send(:font_size)
+
assert_equal(sz, @c.row.worksheet.workbook.styles.fonts.first.sz)
end
def test_font_size_with_bolding
@c.style = @c.row.worksheet.workbook.styles.add_style :b => true
+
assert_equal(@c.row.worksheet.workbook.styles.fonts.first.sz * 1.5, @c.send(:font_size))
end
def test_font_size_with_custom_sz
@c.style = @c.row.worksheet.workbook.styles.add_style :sz => 52
sz = @c.send(:font_size)
- assert_equal(sz, 52)
+
+ assert_equal(52, sz)
end
def test_cell_with_sz
@c.sz = 25
+
assert_equal(25, @c.send(:font_size))
end
@@ -531,6 +574,7 @@ class TestCell < Test::Unit::TestCase
errors.push error
puts error.message
end
- assert(errors.empty?, "error free validation")
+
+ assert_empty(errors, "error free validation")
end
end