diff options
| author | Randy Morgan <[email protected]> | 2011-11-23 21:45:54 +0900 |
|---|---|---|
| committer | Randy Morgan <[email protected]> | 2011-11-23 21:45:54 +0900 |
| commit | c8c63518b4d58ca8875f81602792050cbec318f2 (patch) | |
| tree | 14f6e2c5286e5509879b6b664205f3ea2f38180c /test/drawing | |
| parent | 2dea87f6f601795e32c7c14fbba5717c4b04fc1e (diff) | |
| download | caxlsx-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.rb | 11 | ||||
| -rw-r--r-- | test/drawing/tc_one_cell_anchor.rb | 67 | ||||
| -rw-r--r-- | test/drawing/tc_pic.rb | 71 |
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 |
