summaryrefslogtreecommitdiffhomepage
path: root/test/drawing/tc_drawing.rb
diff options
context:
space:
mode:
authorRandy Morgan <[email protected]>2011-11-20 23:22:04 +0900
committerRandy Morgan <[email protected]>2011-11-20 23:22:04 +0900
commite53f04284618713b0a90b7a691425c380e829476 (patch)
tree801fea138160f9af426d62bf94ad5bf97123ece9 /test/drawing/tc_drawing.rb
downloadcaxlsx-e53f04284618713b0a90b7a691425c380e829476.tar.gz
caxlsx-e53f04284618713b0a90b7a691425c380e829476.zip
first commit
Diffstat (limited to 'test/drawing/tc_drawing.rb')
-rw-r--r--test/drawing/tc_drawing.rb71
1 files changed, 71 insertions, 0 deletions
diff --git a/test/drawing/tc_drawing.rb b/test/drawing/tc_drawing.rb
new file mode 100644
index 00000000..474f5b51
--- /dev/null
+++ b/test/drawing/tc_drawing.rb
@@ -0,0 +1,71 @@
+require 'test/unit'
+require 'axlsx.rb'
+
+class TestDrawing < Test::Unit::TestCase
+ def setup
+ p = Axlsx::Package.new
+ @ws = p.workbook.add_worksheet
+
+ end
+
+ def test_initialization
+ assert(@ws.workbook.drawings.empty?)
+ assert_equal(@ws.drawing, @ws.workbook.drawings.last, "drawing is added to workbook")
+ assert(@ws.drawing.anchors.is_a?(Axlsx::SimpleTypedList) && @ws.drawing.anchors.empty?, "anchor list is created and empty")
+ end
+
+ def test_add_chart
+ chart = @ws.add_chart(Axlsx::Pie3DChart, :title=>"bob", :start_at=>[0,0], :end_at=>[1,1])
+ assert(chart.is_a?(Axlsx::Pie3DChart), "must create a chart")
+ assert_equal(@ws.workbook.charts.last, chart, "must be added to workbook charts collection")
+ assert_equal(@ws.drawing.anchors.last.graphic_frame.chart, chart, "an anchor has been created and holds a reference to this chart")
+ anchor = @ws.drawing.anchors.last
+ assert_equal([anchor.from.row, anchor.from.col], [0,0], "options for start at are applied")
+ assert_equal([anchor.to.row, anchor.to.col], [1,1], "options for start at are applied")
+ assert_equal(chart.title.text, "bob", "option for title is applied")
+ end
+
+ def test_charts
+ assert(@ws.drawing.charts.empty?)
+ chart = @ws.add_chart(Axlsx::Pie3DChart, :title=>"bob", :start_at=>[0,0], :end_at=>[1,1])
+ assert_equal(@ws.drawing.charts.last, chart, "add chart is returned")
+ chart = @ws.add_chart(Axlsx::Pie3DChart, :title=>"nancy", :start_at=>[1,5], :end_at=>[5,10])
+ assert_equal(@ws.drawing.charts.last, chart, "add chart is returned")
+ end
+
+ def test_pn
+ assert_equal(@ws.drawing.pn, "drawings/drawing1.xml")
+ end
+
+ def test_rels_pn
+ assert_equal(@ws.drawing.rels_pn, "drawings/_rels/drawing1.xml.rels")
+ end
+
+ def test_rId
+ assert_equal(@ws.drawing.rId, "rId1")
+ end
+
+ def test_index
+ assert_equal(@ws.drawing.index, @ws.workbook.drawings.index(@ws.drawing))
+ end
+
+ def test_relationships
+ assert(@ws.drawing.relationships.empty?)
+ chart = @ws.add_chart(Axlsx::Pie3DChart, :title=>"bob", :start_at=>[0,0], :end_at=>[1,1])
+ assert_equal(@ws.drawing.relationships.size, 1, "adding a chart adds a relationship")
+ chart = @ws.add_chart(Axlsx::Pie3DChart, :title=>"nancy", :start_at=>[1,5], :end_at=>[5,10])
+ assert_equal(@ws.drawing.relationships.size, 2, "adding a chart adds a relationship")
+ end
+
+ def test_to_xml
+ schema = Nokogiri::XML::Schema(File.open(Axlsx::DRAWING_XSD))
+ doc = Nokogiri::XML(@ws.drawing.to_xml)
+ errors = []
+ schema.validate(doc).each do |error|
+ errors.push error
+ puts error.message
+ end
+ assert(errors.empty?, "error free validation")
+ end
+
+end