summaryrefslogtreecommitdiffhomepage
path: root/test/workbook/worksheet/tc_page_setup.rb
diff options
context:
space:
mode:
authorStefan Daschek <[email protected]>2012-05-03 19:46:50 +0200
committerStefan Daschek <[email protected]>2012-05-03 19:46:50 +0200
commit58effe424218aa8ba6aa8157b49233df05646308 (patch)
treeb61306ee59d2d2d52b7a25faa5b1b5105b7e8556 /test/workbook/worksheet/tc_page_setup.rb
parentc87151a4bd740391b13d3fcf564e9fa7b0f21b29 (diff)
downloadcaxlsx-58effe424218aa8ba6aa8157b49233df05646308.tar.gz
caxlsx-58effe424218aa8ba6aa8157b49233df05646308.zip
Add support for pageSetup.
Diffstat (limited to 'test/workbook/worksheet/tc_page_setup.rb')
-rw-r--r--test/workbook/worksheet/tc_page_setup.rb103
1 files changed, 103 insertions, 0 deletions
diff --git a/test/workbook/worksheet/tc_page_setup.rb b/test/workbook/worksheet/tc_page_setup.rb
new file mode 100644
index 00000000..ff323c75
--- /dev/null
+++ b/test/workbook/worksheet/tc_page_setup.rb
@@ -0,0 +1,103 @@
+require 'tc_helper.rb'
+
+class TestPageSetup < Test::Unit::TestCase
+
+ def setup
+ p = Axlsx::Package.new
+ ws = p.workbook.add_worksheet :name => "hmmm"
+ @ps = ws.page_setup
+ end
+
+ def test_initialize
+ assert_equal(nil, @ps.fit_to_height)
+ assert_equal(nil, @ps.fit_to_width)
+ assert_equal(nil, @ps.orientation)
+ assert_equal(nil, @ps.paper_height)
+ assert_equal(nil, @ps.paper_width)
+ assert_equal(nil, @ps.scale)
+ end
+
+ def test_initialize_with_options
+ optioned = Axlsx::PageSetup.new(:fit_to_height => 1, :fit_to_width => 2, :orientation => :landscape, :paper_height => "297mm", :paper_width => "210mm", :scale => 50)
+ assert_equal(1, optioned.fit_to_height)
+ assert_equal(2, optioned.fit_to_width)
+ assert_equal(:landscape, optioned.orientation)
+ assert_equal("297mm", optioned.paper_height)
+ assert_equal("210mm", optioned.paper_width)
+ assert_equal(50, optioned.scale)
+ end
+
+ def test_set_all_values
+ @ps.set(:fit_to_height => 1, :fit_to_width => 2, :orientation => :landscape, :paper_height => "297mm", :paper_width => "210mm", :scale => 50)
+ assert_equal(1, @ps.fit_to_height)
+ assert_equal(2, @ps.fit_to_width)
+ assert_equal(:landscape, @ps.orientation)
+ assert_equal("297mm", @ps.paper_height)
+ assert_equal("210mm", @ps.paper_width)
+ assert_equal(50, @ps.scale)
+ end
+
+ def test_set_some_values
+ @ps.set(:fit_to_width => 2, :orientation => :portrait)
+ assert_equal(2, @ps.fit_to_width)
+ assert_equal(:portrait, @ps.orientation)
+ assert_equal(nil, @ps.fit_to_height)
+ assert_equal(nil, @ps.paper_height)
+ assert_equal(nil, @ps.paper_width)
+ assert_equal(nil, @ps.scale)
+ end
+
+ def test_to_xml_all_values
+ @ps.set(:fit_to_height => 1, :fit_to_width => 2, :orientation => :landscape, :paper_height => "297mm", :paper_width => "210mm", :scale => 50)
+ doc = Nokogiri::XML.parse(@ps.to_xml_string)
+ assert_equal(1, doc.xpath(".//pageSetup[@fitToHeight='1'][@fitToWidth='2'][@orientation='landscape'][@paperHeight='297mm'][@paperWidth='210mm'][@scale='50']").size)
+ end
+
+ def test_to_xml_some_values
+ @ps.set(:orientation => :portrait)
+ doc = Nokogiri::XML.parse(@ps.to_xml_string)
+ assert_equal(1, doc.xpath(".//pageSetup[@orientation='portrait']").size)
+ assert_equal(0, doc.xpath(".//pageSetup[@fitToHeight]").size)
+ assert_equal(0, doc.xpath(".//pageSetup[@fitToWidth]").size)
+ assert_equal(0, doc.xpath(".//pageSetup[@paperHeight]").size)
+ assert_equal(0, doc.xpath(".//pageSetup[@paperWidth]").size)
+ assert_equal(0, doc.xpath(".//pageSetup[@scale]").size)
+ end
+
+ def test_fit_to_height
+ assert_raise(ArgumentError) { @ps.fit_to_height = 1.5 }
+ assert_nothing_raised { @ps.fit_to_height = 2 }
+ assert_equal(2, @ps.fit_to_height)
+ end
+
+ def test_fit_to_width
+ assert_raise(ArgumentError) { @ps.fit_to_width = false }
+ assert_nothing_raised { @ps.fit_to_width = 1 }
+ assert_equal(1, @ps.fit_to_width)
+ end
+
+ def test_orientation
+ assert_raise(ArgumentError) { @ps.orientation = "" }
+ assert_nothing_raised { @ps.orientation = :default }
+ assert_equal(:default, @ps.orientation)
+ end
+
+ def test_paper_height
+ assert_raise(ArgumentError) { @ps.paper_height = 99 }
+ assert_nothing_raised { @ps.paper_height = "11in" }
+ assert_equal("11in", @ps.paper_height)
+ end
+
+ def test_paper_width
+ assert_raise(ArgumentError) { @ps.paper_width = "22" }
+ assert_nothing_raised { @ps.paper_width = "29.7cm" }
+ assert_equal("29.7cm", @ps.paper_width)
+ end
+
+ def test_scale
+ assert_raise(ArgumentError) { @ps.scale = 50.5 }
+ assert_nothing_raised { @ps.scale = 99 }
+ assert_equal(99, @ps.scale)
+ end
+
+end