diff options
| author | Randy Morgan <[email protected]> | 2012-07-20 20:28:07 +0900 |
|---|---|---|
| committer | Randy Morgan <[email protected]> | 2012-07-20 20:28:07 +0900 |
| commit | fd071c1779467ecce47a77993683aa947a62081a (patch) | |
| tree | af44da82db779a3141bf6b1b6a5af110b3fe243a | |
| parent | 1f20f9450ff75ee5783cbb5d44a86559e6dbe41f (diff) | |
| download | caxlsx-fd071c1779467ecce47a77993683aa947a62081a.tar.gz caxlsx-fd071c1779467ecce47a77993683aa947a62081a.zip | |
specs for d_lbls and a patch to cover for nil relationships in a worksheet.
| -rw-r--r-- | lib/axlsx/drawing/d_lbls.rb | 2 | ||||
| -rw-r--r-- | lib/axlsx/workbook/worksheet/worksheet.rb | 2 | ||||
| -rw-r--r-- | test/drawing/tc_d_lbls.rb | 39 | ||||
| -rw-r--r-- | test/workbook/worksheet/tc_worksheet.rb | 7 |
4 files changed, 41 insertions, 9 deletions
diff --git a/lib/axlsx/drawing/d_lbls.rb b/lib/axlsx/drawing/d_lbls.rb index 6682bd07..faf7017d 100644 --- a/lib/axlsx/drawing/d_lbls.rb +++ b/lib/axlsx/drawing/d_lbls.rb @@ -23,7 +23,7 @@ module Axlsx # creates a new DLbls object def initialize(options={}) - d_lbl_pos = :best_fit + @d_lbl_pos = :best_fit initialize_defaults options.each do |o| self.send("#{o[0]}=", o[1]) if self.respond_to? "#{o[0]}=" diff --git a/lib/axlsx/workbook/worksheet/worksheet.rb b/lib/axlsx/workbook/worksheet/worksheet.rb index bc933f30..f0d733c7 100644 --- a/lib/axlsx/workbook/worksheet/worksheet.rb +++ b/lib/axlsx/workbook/worksheet/worksheet.rb @@ -488,7 +488,7 @@ module Axlsx r = Relationships.new r + [tables.relationships, worksheet_comments.relationships, - worksheet_drawing.relationship].flatten.compact + worksheet_drawing.relationship].flatten.compact || [] r end diff --git a/test/drawing/tc_d_lbls.rb b/test/drawing/tc_d_lbls.rb new file mode 100644 index 00000000..49facd5c --- /dev/null +++ b/test/drawing/tc_d_lbls.rb @@ -0,0 +1,39 @@ +require 'tc_helper' + +class TestDLbls < Test::Unit::TestCase + + def setup + @d_lbls = Axlsx::DLbls.new + end + + def test_initialization + assert_equal(:best_fit, @d_lbls.d_lbl_pos) + Axlsx::DLbls::BOOLEAN_ATTRIBUTES.each do |attr| + assert_equal(false, @d_lbls.send(attr)) + end + end + + def test_d_lbl_pos + assert_raise(ArgumentError, 'invlaid label positions are rejected') { @d_lbls.d_lbl_pos = :upside_down } + assert_nothing_raised('accepts valid label position') { @d_lbls.d_lbl_pos = :ctr } + end + + def test_boolean_attributes + Axlsx::DLbls::BOOLEAN_ATTRIBUTES.each do |attr| + assert_raise(ArgumentError, "rejects non boolean value for #{attr}") { @d_lbls.send("#{attr}=", :foo) } + assert_nothing_raised("accepts boolean value for #{attr}") { @d_lbls.send("#{attr}=", true) } + assert_nothing_raised("accepts boolean value for #{attr}") { @d_lbls.send("#{attr}=", false) } + end + end + + def test_to_xml_string + str = '<?xml version="1.0" encoding="UTF-8"?>' + str << '<c:chartSpace xmlns:c="' << Axlsx::XML_NS_C << '" xmlns:a="' << Axlsx::XML_NS_A << '" xmlns:r="' << Axlsx::XML_NS_R << '">' + @d_lbls.to_xml_string(str) + str << '</c:chartSpace>' + doc = Nokogiri::XML(str) + @d_lbls.instance_values.each do |name, value| + assert(doc.xpath("//c:#{Axlsx::camel(name, false)}[@val='#{value}']"), "#{name} is properly serialized") + end + end +end diff --git a/test/workbook/worksheet/tc_worksheet.rb b/test/workbook/worksheet/tc_worksheet.rb index 3bb9908f..f5689c13 100644 --- a/test/workbook/worksheet/tc_worksheet.rb +++ b/test/workbook/worksheet/tc_worksheet.rb @@ -308,13 +308,6 @@ class TestWorksheet < Test::Unit::TestCase assert_equal(doc.xpath('//xmlns:worksheet/xmlns:tableParts/xmlns:tablePart[@r:id="rId1"]').size, 1) end - def test_auto_filter - @ws.add_row [1, "two", 3] - @ws.auto_filter = "A1:C1" - assert_equal("A1:C1", @ws.auto_filter.range) - assert_equal(@ws.auto_filter.defined_name, "'Sheet1'!$A$1:$C$1") - end - def test_to_xml_string schema = Nokogiri::XML::Schema(File.open(Axlsx::SML_XSD)) doc = Nokogiri::XML(@ws.to_xml_string) |
