From 869acca69612b9197d5bdf7ff8c543e51438f9ed Mon Sep 17 00:00:00 2001 From: Randy Morgan Date: Sat, 19 May 2012 09:44:29 +0900 Subject: correct relation management for comments and some spec improvements for package to provide more breadth in serialization integration testing. --- lib/axlsx/drawing/vml_shape.rb | 6 +----- lib/axlsx/rels/relationships.rb | 2 +- lib/axlsx/workbook/worksheet/comment.rb | 6 +++--- lib/axlsx/workbook/worksheet/worksheet.rb | 7 ++++--- test/tc_package.rb | 31 ++++++++++++++++++++----------- test/workbook/worksheet/tc_comment.rb | 15 ++++++++------- 6 files changed, 37 insertions(+), 30 deletions(-) diff --git a/lib/axlsx/drawing/vml_shape.rb b/lib/axlsx/drawing/vml_shape.rb index c4b56237..c915d7e5 100644 --- a/lib/axlsx/drawing/vml_shape.rb +++ b/lib/axlsx/drawing/vml_shape.rb @@ -100,14 +100,10 @@ module Axlsx def to_xml_string(str ='') str << < - + -
diff --git a/lib/axlsx/rels/relationships.rb b/lib/axlsx/rels/relationships.rb index dbc5b209..521d7689 100644 --- a/lib/axlsx/rels/relationships.rb +++ b/lib/axlsx/rels/relationships.rb @@ -10,7 +10,7 @@ require 'axlsx/rels/relationship.rb' def initialize super Relationship end - + def to_xml_string(str = '') str << '' str << '' diff --git a/lib/axlsx/workbook/worksheet/comment.rb b/lib/axlsx/workbook/worksheet/comment.rb index 0394d7c8..bd7a88aa 100644 --- a/lib/axlsx/workbook/worksheet/comment.rb +++ b/lib/axlsx/workbook/worksheet/comment.rb @@ -90,10 +90,10 @@ module Axlsx def initialize_vml_shape pos = Axlsx::name_to_indices(ref) @vml_shape = VmlShape.new(:row => pos[1], :column => pos[0]) do |vml| - vml.left_column = vml.row + 1 - vml.right_column = vml.column + 4 + vml.left_column = vml.column + vml.right_column = vml.column + 2 vml.top_row = vml.row - vml.bottom_row = vml.row + 4 + vml.bottom_row = vml.row + 4 end end diff --git a/lib/axlsx/workbook/worksheet/worksheet.rb b/lib/axlsx/workbook/worksheet/worksheet.rb index b104b054..57d96861 100644 --- a/lib/axlsx/workbook/worksheet/worksheet.rb +++ b/lib/axlsx/workbook/worksheet/worksheet.rb @@ -241,7 +241,7 @@ module Axlsx # (see #fit_to_page) # @return [Boolean] def fit_to_page=(v) - warn('DEPRECIATED: fit_to_page has been depreciated. This value will automatically be set for you when page_setup.fit_to_width or page_setup.fit_to_height are specified.') + warn('axlsx::DEPRECIATED: Worksheet#fit_to_page has been depreciated. This value will automatically be set for you when you use PageSetup#fit_to.') fit_to_page end @@ -466,6 +466,7 @@ module Axlsx # @param [String] str # @return [String] def to_xml_string + rels = relationships str = '' str.concat "" % [XML_NS, XML_NS_R] str.concat "" % fit_to_page if fit_to_page @@ -485,8 +486,8 @@ module Axlsx print_options.to_xml_string(str) if @print_options page_margins.to_xml_string(str) if @page_margins page_setup.to_xml_string(str) if @page_setup - str.concat "" if @drawing - str << '' if @comments.size > 0 + str << "" if @drawing + str << "" if @comments.size > 0 unless @tables.empty? str.concat "%s" % [@tables.size, @tables.reduce('') { |memo, obj| memo += "" % obj.rId }] end diff --git a/test/tc_package.rb b/test/tc_package.rb index d51f0f5f..47c61dbb 100644 --- a/test/tc_package.rb +++ b/test/tc_package.rb @@ -1,12 +1,16 @@ +# encoding: UTF-8 require 'tc_helper.rb' class TestPackage < Test::Unit::TestCase def setup @package = Axlsx::Package.new ws = @package.workbook.add_worksheet - ws.add_row ['yes', 'we', 'can'] - ws.add_comment :author => 'bob', :text => 'penny!', :ref => 'A1' - chart = ws.add_chart Axlsx::Pie3DChart + ws.add_row ['Can', 'we', 'build it?'] + ws.add_row ['Yes!', 'We', 'can!'] + ws.add_comment :author => 'alice', :text => 'Hi Bob', :ref => 'A12' + ws.add_comment :author => 'bob', :text => 'Hi Alice', :ref => 'F19' + + chart = ws.add_chart Axlsx::Pie3DChart, :title => "これは?", :start_at => [0,3] chart.add_series :data=>[1,2,3], :labels=>["a", "b", "c"] @fname = 'axlsx_test_serialization.xlsx' img = File.expand_path('../../examples/image1.jpeg', __FILE__) @@ -14,10 +18,18 @@ class TestPackage < Test::Unit::TestCase image.width=720 image.height=666 image.hyperlink.tooltip = "Labeled Link" - image.start_at 2, 2 + image.start_at 5, 5 + end + ws.add_image :image_src => File.expand_path('../../examples/image1.gif', __FILE__) do |image| + image.start_at 0, 20 + image.width=360 + image.height=333 + end + ws.add_image :image_src => File.expand_path('../../examples/image1.png', __FILE__) do |image| + image.start_at 9, 20 + image.width = 180 + image.height = 167 end - ws.add_image :image_src => File.expand_path('../../examples/image1.gif', __FILE__) - ws.add_image :image_src => File.expand_path('../../examples/image1.png', __FILE__) ws.add_table 'A1:C1' end @@ -65,11 +77,8 @@ class TestPackage < Test::Unit::TestCase def test_validation assert_equal(@package.validate.size, 0, @package.validate) - parts = @package.send(:parts) - workbook = parts.select { |part| part[:entry] =~ /xl\/workbook\.xml/ }.first - workbook[:doc] = workbook[:doc].gsub('definedNames', 'defineNames') - errors = @package.send(:validate_single_doc, workbook[:schema], workbook[:doc] ) - assert_equal(errors.size, 1) + Axlsx::Workbook.class_variable_set(:@@date1904, 9900) + assert_equal(@package.validate.size, 2, @package.validate) end def test_parts diff --git a/test/workbook/worksheet/tc_comment.rb b/test/workbook/worksheet/tc_comment.rb index 352f30a0..0cb79bcc 100644 --- a/test/workbook/worksheet/tc_comment.rb +++ b/test/workbook/worksheet/tc_comment.rb @@ -34,14 +34,15 @@ class TestComment < Test::Unit::TestCase end def test_vml_shape + pos = Axlsx::name_to_indices(@c1.ref) assert(@c1.vml_shape.is_a?(Axlsx::VmlShape)) - assert(@c1.vml_shape.column == Axlsx::name_to_indices(@c1.ref)[0]) - assert(@c1.vml_shape.row == Axlsx::name_to_indices(@c1.ref)[1]) - assert(@c1.vml_shape.row == Axlsx::name_to_indices(@c1.ref)[1]) - assert(@c1.vml_shape.left_column == Axlsx::name_to_indices(@c1.ref)[1]+1) - assert(@c1.vml_shape.top_row == Axlsx::name_to_indices(@c1.ref)[1]) - assert(@c1.vml_shape.right_column == Axlsx::name_to_indices(@c1.ref)[0]+4) - assert(@c1.vml_shape.bottom_row == Axlsx::name_to_indices(@c1.ref)[1]+4) + assert(@c1.vml_shape.column == pos[0]) + assert(@c1.vml_shape.row == pos[1]) + assert(@c1.vml_shape.row == pos[1]) + assert_equal(pos[0], @c1.vml_shape.left_column) + assert(@c1.vml_shape.top_row == pos[1]) + assert_equal(pos[0] + 2 , @c1.vml_shape.right_column) + assert(@c1.vml_shape.bottom_row == pos[1]+4) end def to_xml_string -- cgit v1.2.3