summaryrefslogtreecommitdiffhomepage
diff options
context:
space:
mode:
authorRandy Morgan <[email protected]>2012-07-20 20:28:07 +0900
committerRandy Morgan <[email protected]>2012-07-20 20:28:07 +0900
commitfd071c1779467ecce47a77993683aa947a62081a (patch)
treeaf44da82db779a3141bf6b1b6a5af110b3fe243a
parent1f20f9450ff75ee5783cbb5d44a86559e6dbe41f (diff)
downloadcaxlsx-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.rb2
-rw-r--r--lib/axlsx/workbook/worksheet/worksheet.rb2
-rw-r--r--test/drawing/tc_d_lbls.rb39
-rw-r--r--test/workbook/worksheet/tc_worksheet.rb7
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)