diff options
Diffstat (limited to 'test/workbook/tc_defined_name.rb')
| -rw-r--r-- | test/workbook/tc_defined_name.rb | 41 |
1 files changed, 41 insertions, 0 deletions
diff --git a/test/workbook/tc_defined_name.rb b/test/workbook/tc_defined_name.rb new file mode 100644 index 00000000..51f5a484 --- /dev/null +++ b/test/workbook/tc_defined_name.rb @@ -0,0 +1,41 @@ +require 'tc_helper' + +class TestDefinedNames < Test::Unit::TestCase + def setup + @dn = Axlsx::DefinedName.new('Sheet1!A1:A1') + end + + def test_initialize + assert_equal('Sheet1!A1:A1', @dn.formula) + end + + def test_string_attributes + Axlsx::DefinedName::STRING_ATTRIBUTES.each do |attr| + assert_raise(ArgumentError, 'only strings allowed in string attributes') { @dn.send("#{attr}=", 1) } + assert_nothing_raised { @dn.send("#{attr}=", '_xlnm.Sheet_Title') } + end + end + + def test_boolean_attributes + Axlsx::DefinedName::BOOLEAN_ATTRIBUTES.each do |attr| + assert_raise(ArgumentError, 'only booleanish allowed in string attributes') { @dn.send("#{attr}=", 'foo') } + assert_nothing_raised { @dn.send("#{attr}=", 1) } + end + + end + + def test_local_sheet_id + assert_raise(ArgumentError, 'local_sheet_id must be an unsigned int') { @dn.local_sheet_id = -1 } + assert_nothing_raised { @dn.local_sheet_id = 1 } + end + + def test_to_xml_string + assert_raise(ArgumentError, 'name is required for serialization') { @dn.to_xml_string } + @dn.name = '_xlnm.Print_Titles' + @dn.hidden = true + doc = Nokogiri::XML(@dn.to_xml_string) + assert(doc.xpath("//definedName[@name='_xlnm.Print_Titles']")) + assert(doc.xpath("//definedName[@hidden='true']")) + assert_equal('Sheet1!A1:A1', doc.xpath('//definedName').text) + end +end |
