summaryrefslogtreecommitdiffhomepage
path: root/test/drawing
diff options
context:
space:
mode:
authorRandy Morgan <[email protected]>2011-11-23 21:45:54 +0900
committerRandy Morgan <[email protected]>2011-11-23 21:45:54 +0900
commitc8c63518b4d58ca8875f81602792050cbec318f2 (patch)
tree14f6e2c5286e5509879b6b664205f3ea2f38180c /test/drawing
parent2dea87f6f601795e32c7c14fbba5717c4b04fc1e (diff)
downloadcaxlsx-c8c63518b4d58ca8875f81602792050cbec318f2.tar.gz
caxlsx-c8c63518b4d58ca8875f81602792050cbec318f2.zip
Adding image support and some document clean up for .8 release
Diffstat (limited to 'test/drawing')
-rw-r--r--test/drawing/tc_drawing.rb11
-rw-r--r--test/drawing/tc_one_cell_anchor.rb67
-rw-r--r--test/drawing/tc_pic.rb71
3 files changed, 148 insertions, 1 deletions
diff --git a/test/drawing/tc_drawing.rb b/test/drawing/tc_drawing.rb
index 474f5b51..7dd21c32 100644
--- a/test/drawing/tc_drawing.rb
+++ b/test/drawing/tc_drawing.rb
@@ -18,13 +18,22 @@ class TestDrawing < Test::Unit::TestCase
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")
+ assert_equal(@ws.drawing.anchors.last.object.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_add_image
+ src = File.dirname(__FILE__) + "/../../examples/image1.jpeg"
+ image = @ws.add_image(:image_src => src, :start_at=>[0,0], :width=>600, :height=>400)
+ assert(@ws.drawing.anchors.last.is_a?(Axlsx::OneCellAnchor))
+ assert(image.is_a?(Axlsx::Pic))
+ assert_equal(600, image.width)
+ assert_equal(400, image.height)
+ 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])
diff --git a/test/drawing/tc_one_cell_anchor.rb b/test/drawing/tc_one_cell_anchor.rb
new file mode 100644
index 00000000..d2618622
--- /dev/null
+++ b/test/drawing/tc_one_cell_anchor.rb
@@ -0,0 +1,67 @@
+require 'test/unit'
+require 'axlsx.rb'
+
+class TestOneCellAnchor < Test::Unit::TestCase
+
+ def setup
+ @p = Axlsx::Package.new
+ @ws = @p.workbook.add_worksheet
+ @test_img = File.dirname(__FILE__) + "/../../examples/image1.jpeg"
+ @image = @ws.add_image :image_src => @test_img
+ @anchor = @image.anchor
+ end
+
+ def teardown
+ end
+
+ def test_initialization
+ assert(@anchor.from.col == 0)
+ assert(@anchor.from.row == 0)
+ assert(@anchor.width == 0)
+ assert(@anchor.height == 0)
+ end
+
+ def test_from
+ assert(@anchor.from.is_a?(Axlsx::Marker))
+ end
+
+ def test_object
+ assert(@anchor.object.is_a?(Axlsx::Pic))
+ end
+
+ def test_index
+ assert(@anchor.index, @anchor.drawing.anchors.index(@anchor))
+ end
+
+ def test_width
+ assert_raise(ArgumentError) { @anchor.width = "a" }
+ assert_nothing_raised { @anchor.width = 600 }
+ assert_equal(@anchor.width, 600)
+ end
+
+ def test_height
+ assert_raise(ArgumentError) { @anchor.height = "a" }
+ assert_nothing_raised { @anchor.height = 400 }
+ assert_equal(400, @anchor.height)
+ end
+
+ def test_ext
+ ext = @anchor.send(:ext)
+ assert_equal(ext[:cx], (@anchor.width * 914400 / 96))
+ assert_equal(ext[:cy], (@anchor.height * 914400 / 96))
+ end
+
+ def test_options
+ assert_raise(ArgumentError, 'invalid start_at') { @ws.add_image :image_src=>@test_img, :start_at=>[1] }
+ i = @ws.add_image :image_src=>@test_img, :start_at => [1,2], :width=>100, :height=>200, :name=>"someimage", :descr=>"a neat image"
+
+ assert_equal("a neat image", i.descr)
+ assert_equal("someimage", i.name)
+ assert_equal(200, i.height)
+ assert_equal(100, i.width)
+ assert_equal(1, i.anchor.from.col)
+ assert_equal(2, i.anchor.from.row)
+ assert_equal(@test_img, i.image_src)
+ end
+
+end
diff --git a/test/drawing/tc_pic.rb b/test/drawing/tc_pic.rb
new file mode 100644
index 00000000..2d6c603d
--- /dev/null
+++ b/test/drawing/tc_pic.rb
@@ -0,0 +1,71 @@
+require 'test/unit'
+require 'axlsx.rb'
+
+class TestPic < Test::Unit::TestCase
+
+ def setup
+ @p = Axlsx::Package.new
+ ws = @p.workbook.add_worksheet
+ @test_img = File.dirname(__FILE__) + "/../../examples/image1.jpeg"
+ @image = ws.add_image :image_src => @test_img
+ end
+
+ def teardown
+ end
+
+ def test_initialization
+ assert_equal(@p.workbook.images.first, @image)
+ assert_equal(@image.image_src, @test_img)
+ end
+
+ def test_name
+ assert_raise(ArgumentError) { @image.name = 49 }
+ assert_nothing_raised { @image.name = "unknown" }
+ assert_equal(@image.name, "unknown")
+ end
+
+ def test_start_at
+ assert_raise(ArgumentError) { @image.start_at "a", 1 }
+ assert_nothing_raised { @image.start_at 6, 7 }
+ assert_equal(@image.anchor.from.col, 6)
+ assert_equal(@image.anchor.from.row, 7)
+ end
+
+ def test_width
+ assert_raise(ArgumentError) { @image.width = "a" }
+ assert_nothing_raised { @image.width = 600 }
+ assert_equal(@image.width, 600)
+ end
+
+ def test_height
+ assert_raise(ArgumentError) { @image.height = "a" }
+ assert_nothing_raised { @image.height = 600 }
+ assert_equal(600, @image.height)
+ end
+
+ def test_image_src
+ assert_raise(ArgumentError) { @image.image_src = 49 }
+ assert_raise(ArgumentError) { @image.image_src = 'Unknown' }
+ assert_raise(ArgumentError) { @image.image_src = __FILE__ }
+ assert_nothing_raised { @image.image_src = @test_img }
+ assert_equal(@image.image_src, @test_img)
+ end
+
+ def test_descr
+ assert_raise(ArgumentError) { @image.descr = 49 }
+ assert_nothing_raised { @image.descr = "test" }
+ assert_equal(@image.descr, "test")
+ end
+
+ def test_to_xml
+ schema = Nokogiri::XML::Schema(File.open(Axlsx::DRAWING_XSD))
+ doc = Nokogiri::XML(@image.anchor.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