test/test_roo.rb in roo-0.7.0 vs test/test_roo.rb in roo-0.8.0

- old
+ new

@@ -18,32 +18,68 @@ yield end end DISPLAY_LOG = false -DB_LOG = false +DB_LOG = true if DB_LOG - require 'active_record' + # gem 'activerecord', '< 2.0.0' + # require 'activerecord' + require_gem 'activerecord', '< 2.0.0' + #require 'activerecord' end include FileUtils if DB_LOG def activerecord_connect ActiveRecord::Base.establish_connection(:adapter => "mysql", - :database => "test_runs", - :host => "localhost", - :username => "root", - :socket => "/var/run/mysqld/mysqld.sock") + :database => "test_runs", + :host => "localhost", + :username => "root", + :socket => "/var/run/mysqld/mysqld.sock") end class Testrun < ActiveRecord::Base end end class Test::Unit::TestCase + def key_of(spreadsheetname) + begin + return { + 'numbers1' => "o10837434939102457526.4784396906364855777", + 'borders' => "o10837434939102457526.664868920231926255", + 'simple_spreadsheet' => "ptu6bbahNZpYe-L1vEBmgGA", + 'testnichtvorhandenBibelbund.ods' => "invalidkeyforanyspreadsheet", # !!! intentionally false key + "only_one_sheet" => "o10837434939102457526.762705759906130135", + "write.me" => 'ptu6bbahNZpY0N0RrxQbWdw&hl', + 'formula' => 'o10837434939102457526.3022866619437760118', + }[spreadsheetname] + rescue + raise "unknown spreadsheetname: #{spreadsheetname}" + end + +if false + case spreadsheetname + when 'numbers1' + return "o10837434939102457526.4784396906364855777" + when 'borders' + return "o10837434939102457526.664868920231926255" + when 'simple_spreadsheet' + return "o1087434939102457526.1774445811568867358" + when 'testnichtvorhandenBibelbund.ods' + return "invalidkeyforanyspreadsheet" # !!! intentionally false key + when "only_one_sheet" + return "o10837434939102457526.762705759906130135" + else + raise "unknown spreadsheetname: #{spreadsheetname}" + end + end # false + end + if DB_LOG if ! (defined?(@connected) and @connected) activerecord_connect else @connected = true @@ -66,29 +102,34 @@ # 'start' => t1, # 'duration' => t2-t1} # open('test_runs.yml','a') { |f| YAML.dump(record, f) } # #-- if DB_LOG - domain = Testrun.create(:class => self.class.to_s, - :test => @method_name, - :start => t1, - :duration => t2-t1 + # p self.class.to_s + #p @method_name + #p t1 + #p t2-t1 + domain = Testrun.create( + :class => self.class.to_s, + :test => @method_name, + :start => t1, + :duration => t2-t1 ) end end end class TestRoo < Test::Unit::TestCase - OPENOFFICE = true # do Openoffice-Spreadsheet Tests? - EXCEL = true # do Excel Tests? - GOOGLE = false # do Google-Spreadsheet Tests? + OPENOFFICE = true # do Openoffice-Spreadsheet Tests? + EXCEL = true # do Excel Tests? + GOOGLE = true # do Google-Spreadsheet Tests? OPENOFFICEWRITE = false # experimental: write access with OO-Documents ONLINE = false LONG_RUN = false - GLOBAL_TIMEOUT = 10*60 # seconds + GLOBAL_TIMEOUT = 2*12*60 # seconds # helper method def after(d) if DateTime.now > d @@ -102,69 +143,117 @@ yield end end def setup - if GOOGLE - after Date.new(2007,8,15) do - @goo = Google.new(ENV['GOOGLE_MAIL'], - ENV['GOOGLE_PASSWORD'], - ENV['GOOGLE_KEY'],"Roo Testspreadheet") - end - end if DISPLAY_LOG puts "GLOBAL_TIMEOUT = #{GLOBAL_TIMEOUT}" end end + def test_date + assert Google.date?("21/11/1962") + assert_equal Date.new(1962,11,21), Google.to_date("21/11/1962") + + assert !Google.date?("21") + assert_nil Google.to_date("21") + + assert !Google.date?("21/11") + assert_nil Google.to_date("21/11") + + assert !Google.date?("Mittwoch/21/1961") + assert_nil Google.to_date("Mittwoch/21/1961") + end + + def test_classes + if OPENOFFICE + oo = Openoffice.new(File.join("test","numbers1.ods")) + assert_kind_of Openoffice, oo + end + if EXCEL + oo = Excel.new(File.join("test","numbers1.xls")) + assert_kind_of Excel, oo + end + if GOOGLE + oo = Google.new(key_of("numbers1")) + assert_kind_of Google, oo + end + end + def test_letters - assert_equal 1, Openoffice.letter_to_number('A') - assert_equal 1, Openoffice.letter_to_number('a') - assert_equal 2, Openoffice.letter_to_number('B') - assert_equal 26, Openoffice.letter_to_number('Z') - assert_equal 27, Openoffice.letter_to_number('AA') - assert_equal 27, Openoffice.letter_to_number('aA') - assert_equal 27, Openoffice.letter_to_number('Aa') - assert_equal 27, Openoffice.letter_to_number('aa') + assert_equal 1, GenericSpreadsheet.letter_to_number('A') + assert_equal 1, GenericSpreadsheet.letter_to_number('a') + assert_equal 2, GenericSpreadsheet.letter_to_number('B') + assert_equal 26, GenericSpreadsheet.letter_to_number('Z') + assert_equal 27, GenericSpreadsheet.letter_to_number('AA') + assert_equal 27, GenericSpreadsheet.letter_to_number('aA') + assert_equal 27, GenericSpreadsheet.letter_to_number('Aa') + assert_equal 27, GenericSpreadsheet.letter_to_number('aa') end - def test_sheets + def DONT_test_simple_google + if GOOGLE + go = Google.new("egal") + assert_equal "42", go.cell(1,1) + end + end + + def test_sheets_openoffice if OPENOFFICE oo = Openoffice.new(File.join("test","numbers1.ods")) assert_equal ["Tabelle1","Name of Sheet 2","Sheet3","Sheet4","Sheet5"], oo.sheets assert_raise(RangeError) { oo.default_sheet = "no_sheet" } assert_raise(TypeError) { oo.default_sheet = [1,2,3] } + + oo.sheets.each { |sh| + oo.default_sheet = sh + assert_equal sh, oo.default_sheet + } end + end + + def test_sheets_excel if EXCEL oo = Excel.new(File.join("test","numbers1.xls")) assert_equal ["Tabelle1","Name of Sheet 2","Sheet3","Sheet4","Sheet5"], oo.sheets assert_raise(RangeError) { oo.default_sheet = "no_sheet" } assert_raise(TypeError) { oo.default_sheet = [1,2,3] } + oo.sheets.each { |sh| + oo.default_sheet = sh + assert_equal sh, oo.default_sheet + } end + end + + def test_sheets_google if GOOGLE - after Date.new(2007,6,10) do - assert_equal "Testspreadsheet Roo", @goo.title + oo = Google.new(key_of("numbers1")) + assert_equal ["Tabelle1","Name of Sheet 2","Sheet3","Sheet4","Sheet5"], oo.sheets + after Date.new(2007,12,15) do + assert_raise(RangeError) { + oo.default_sheet = "no_sheet" + } + assert_raise(TypeError) { + oo.default_sheet = [1,2,3] + } end - assert_equal ["Sheet eins","Sheet zwei","Sheet drei"], @goo.sheets - assert_raise(RangeError) { - oo.default_sheet = "no_sheet" + oo.sheets.each { |sh| + oo.default_sheet = sh + assert_equal sh, oo.default_sheet } - assert_raise(TypeError) { - oo.default_sheet = [1,2,3] - } end end - def test_cell + def test_cell_openoffice if OPENOFFICE oo = Openoffice.new(File.join("test","numbers1.ods")) oo.default_sheet = oo.sheets.first assert_equal 1, oo.cell(1,1) assert_equal 2, oo.cell(1,2) @@ -197,11 +286,13 @@ # assert_equal "date", oo.celltype(5,1) assert_equal :date, oo.celltype(5,1) assert_equal Date.new(1961,11,21), oo.cell(5,1) assert_equal "1961-11-21", oo.cell(5,1).to_s end + end + def test_cell_excel if EXCEL oo = Excel.new(File.join("test","numbers1.xls")) oo.default_sheet = oo.sheets.first assert_equal 1, oo.cell(1,1) assert_equal 2, oo.cell(1,2) @@ -234,54 +325,48 @@ # assert_equal "date", oo.celltype(5,1) assert_equal :date, oo.celltype(5,1) assert_equal Date.new(1961,11,21), oo.cell(5,1) assert_equal "1961-11-21", oo.cell(5,1).to_s end + end + def test_cell_google if GOOGLE - @goo.default_sheet = 1 # @goo.sheets.first - assert_equal 1, @goo.cell(1,1).to_i - assert_equal 2, @goo.cell(1,2).to_i - assert_equal 3, @goo.cell(1,3).to_i - assert_equal 4, @goo.cell(1,4).to_i - assert_equal 5, @goo.cell(2,1).to_i - assert_equal 6, @goo.cell(2,2).to_i - assert_equal 7, @goo.cell(2,3).to_i - assert_equal 8, @goo.cell(2,4).to_i - assert_equal 9, @goo.cell(2,5).to_i - assert_equal "test", @goo.cell(2,6) - # assert_equal "string", @goo.celltype(2,6) - assert_equal :string, @goo.celltype(2,6) - assert_equal 11, @goo.cell(2,7).to_i - after Date.new(2007,6,15) do - # assert_equal "float", @goo.celltype(2,7) - assert_equal :float, @goo.celltype(2,7) - end + oo = Google.new(key_of("numbers1")) + oo.default_sheet = oo.sheets.first + assert_equal 1, oo.cell(1,1) + assert_equal 2, oo.cell(1,2) + assert_equal 3, oo.cell(1,3) + assert_equal 4, oo.cell(1,4) + assert_equal 5, oo.cell(2,1) + assert_equal 6, oo.cell(2,2) + assert_equal 7, oo.cell(2,3) + assert_equal 8, oo.cell(2,4) + assert_equal 9, oo.cell(2,5) + assert_equal "test", oo.cell(2,6) + # assert_equal "string", oo.celltype(2,6) + assert_equal :string, oo.celltype(2,6) + assert_equal 11, oo.cell(2,7) + # assert_equal "float", oo.celltype(2,7) + assert_equal :float, oo.celltype(2,7), "Inhalt: --#{oo.cell(2,7)}--" - assert_equal 10, @goo.cell(4,1).to_i - assert_equal 11, @goo.cell(4,2).to_i - assert_equal 12, @goo.cell(4,3).to_i - assert_equal 13, @goo.cell(4,4).to_i - assert_equal 14, @goo.cell(4,5).to_i + assert_equal 10, oo.cell(4,1) + assert_equal 11, oo.cell(4,2) + assert_equal 12, oo.cell(4,3) + assert_equal 13, oo.cell(4,4) + assert_equal 14, oo.cell(4,5) - assert_equal 10, @goo.cell(4,'A').to_i - assert_equal 11, @goo.cell(4,'B').to_i - assert_equal 12, @goo.cell(4,'C').to_i - assert_equal 13, @goo.cell(4,'D').to_i - assert_equal 14, @goo.cell(4,'E').to_i + assert_equal 10, oo.cell(4,'A') + assert_equal 11, oo.cell(4,'B') + assert_equal 12, oo.cell(4,'C') + assert_equal 13, oo.cell(4,'D') + assert_equal 14, oo.cell(4,'E') - after Date.new(2007,6,15) do - # assert_equal "date", @goo.celltype(5,1) - assert_equal :date, @goo.celltype(5,1) - end - after Date.new(2007,6,15) do - assert_equal Date.new(1961,11,21), @goo.cell(5,1) - assert_equal "1961-11-21", @goo.cell(5,1).to_s - end - before Date.new(2007,6,15) do - assert_equal "21/11/1961", @goo.cell(5,1) - end + # assert_equal "date", oo.celltype(5,1) + assert_equal :date, oo.celltype(5,1) + assert_equal Date.new(1961,11,21), oo.cell(5,1) + assert_equal "1961-11-21", oo.cell(5,1).to_s end # GOOGLE end def test_celltype ### @@ -294,11 +379,11 @@ oo = Excel.new(File.join("test","numbers1.xls")) oo.default_sheet = oo.sheets.first assert_equal :string, oo.celltype(2,6) end if GOOGLE - oo = Google.new(File.join("test","nxxxxxxxxxxxxxumbers1.xls")) + oo = Google.new(key_of("numbers1")) oo.default_sheet = oo.sheets.first assert_equal :string, oo.celltype(2,6) end end @@ -354,25 +439,32 @@ assert_equal "thisisa11", oo.cell('a',11) #assert_equal "lulua", oo.cell('b',10) end if GOOGLE - @goo.default_sheet = 1 # @goo.sheets.first - assert_equal "tata", @goo.cell(6,1) - assert_equal "tata", @goo.cell(6,'A') - assert_equal "tata", @goo.cell('A',6) - assert_equal "tata", @goo.cell(6,'a') - assert_equal "tata", @goo.cell('a',6) + oo = Google.new(key_of("numbers1")) + oo.default_sheet = oo.sheets.first + assert_equal "tata", oo.cell(6,1) + assert_equal "tata", oo.cell(6,'A') + assert_equal "tata", oo.cell('A',6) + assert_equal "tata", oo.cell(6,'a') + assert_equal "tata", oo.cell('a',6) - assert_equal "thisisc8", @goo.cell(8,3) - assert_equal "thisisc8", @goo.cell(8,'C') - assert_equal "thisisc8", @goo.cell('C',8) - assert_equal "thisisc8", @goo.cell(8,'c') - assert_equal "thisisc8", @goo.cell('c',8) + assert_raise(ArgumentError) { + assert_equal "tata", oo.cell('a','f') + } + assert_raise(ArgumentError) { + assert_equal "tata", oo.cell('f','a') + } + assert_equal "thisisc8", oo.cell(8,3) + assert_equal "thisisc8", oo.cell(8,'C') + assert_equal "thisisc8", oo.cell('C',8) + assert_equal "thisisc8", oo.cell(8,'c') + assert_equal "thisisc8", oo.cell('c',8) - assert_equal "thisisd9", @goo.cell('d',9) - assert_equal "thisisa11", @goo.cell('a',11) + assert_equal "thisisd9", oo.cell('d',9) + assert_equal "thisisa11", oo.cell('a',11) end end # Version of the (XML) office document # please note that "1.0" is returned even if it was created with OpenOffice V. 2.0 @@ -381,21 +473,18 @@ oo = Openoffice.new(File.join("test","numbers1.ods")) assert_equal "1.0", oo.officeversion if EXCEL # excel does not have a officeversion end - #-- Google if GOOGLE - after Date.new(2007,6,15) do - assert_equal "1.0", @goo.officeversion - end + # google does not have a officeversion end end +#TODO: inkonsequente Lieferung Fixnum/Float def test_rows if OPENOFFICE - #-- OpenOffice oo = Openoffice.new(File.join("test","numbers1.ods")) oo.default_sheet = oo.sheets.first assert_equal 41, oo.cell('a',12) assert_equal 42, oo.cell('b',12) assert_equal 43, oo.cell('c',12) @@ -423,38 +512,34 @@ assert_equal "zweiundvierzig", oo.cell('b',16) assert_equal "dreiundvierzig", oo.cell('c',16) assert_equal "vierundvierzig", oo.cell('d',16) assert_equal "fuenfundvierzig", oo.cell('e',16) assert_equal ["einundvierzig", - "zweiundvierzig", - "dreiundvierzig", - "vierundvierzig", - "fuenfundvierzig"], oo.row(16) + "zweiundvierzig", + "dreiundvierzig", + "vierundvierzig", + "fuenfundvierzig"], oo.row(16) end - after Date.new(2007,6,17) do - #-- GOOGLE - if GOOGLE - oo = Google.new(File.join("test","numbers1.xls")) - oo.default_sheet = 1 # oo.sheets.first - assert_equal 41, oo.cell('a',12) - assert_equal 42, oo.cell('b',12) - assert_equal 43, oo.cell('c',12) - assert_equal 44, oo.cell('d',12) - assert_equal 45, oo.cell('e',12) - assert_equal [41.0,42.0,43.0,44.0,45.0], oo.row(12) - assert_equal "einundvierzig", oo.cell('a',16) - assert_equal "zweiundvierzig", oo.cell('b',16) - assert_equal "dreiundvierzig", oo.cell('c',16) - assert_equal "vierundvierzig", oo.cell('d',16) - assert_equal "fuenfundvierzig", oo.cell('e',16) - assert_equal "xxxfuenfundvierzig", oo.cell('e',16) - assert_equal ["einundvierzig", + if GOOGLE + oo = Google.new(key_of("numbers1")) + oo.default_sheet = oo.sheets.first + assert_equal 41, oo.cell('a',12) + assert_equal 42, oo.cell('b',12) + assert_equal 43, oo.cell('c',12) + assert_equal 44, oo.cell('d',12) + assert_equal 45, oo.cell('e',12) + assert_equal [41,42,43,44,45], oo.row(12) + assert_equal "einundvierzig", oo.cell('a',16) + assert_equal "zweiundvierzig", oo.cell('b',16) + assert_equal "dreiundvierzig", oo.cell('c',16) + assert_equal "vierundvierzig", oo.cell('d',16) + assert_equal "fuenfundvierzig", oo.cell('e',16) + assert_equal ["einundvierzig", "zweiundvierzig", "dreiundvierzig", "vierundvierzig", "fuenfundvierzig"], oo.row(16) - end end end def test_last_row if OPENOFFICE @@ -466,13 +551,13 @@ oo = Excel.new(File.join("test","numbers1.xls")) oo.default_sheet = oo.sheets.first assert_equal 18, oo.last_row end if GOOGLE - @goo.default_sheet = @goo.sheets.first - assert_equal 18, @goo.last_row - assert_equal "xxx", @goo.to_s, @goo.to_s + oo = Google.new(key_of("numbers1")) + oo.default_sheet = oo.sheets.first + assert_equal 18, oo.last_row end end def test_last_column if OPENOFFICE @@ -485,104 +570,118 @@ oo = Excel.new(File.join("test","numbers1.xls")) oo.default_sheet = oo.sheets.first assert_equal 7, oo.last_column end if GOOGLE - #-- Google - @goo.default_sheet = @goo.sheets.first - assert_equal 7, @goo.last_column + oo = Google.new(key_of("numbers1")) + oo.default_sheet = oo.sheets.first + assert_equal 7, oo.last_column end end def test_last_column_as_letter - #-- OpenOffice - oo = Openoffice.new(File.join("test","numbers1.ods")) - oo.default_sheet = oo.sheets.first - assert_equal 'G', oo.last_column_as_letter + if OPENOFFICE + oo = Openoffice.new(File.join("test","numbers1.ods")) + oo.default_sheet = oo.sheets.first + assert_equal 'G', oo.last_column_as_letter + end if EXCEL #-- Excel oo = Excel.new(File.join("test","numbers1.xls")) oo.default_sheet = 1 # oo.sheets.first assert_equal 'G', oo.last_column_as_letter end if GOOGLE - #-- Google - @goo.default_sheet = @goo.sheets.first - assert_equal 'G', @goo.last_column_as_letter + oo = Google.new(key_of("numbers1")) + oo.default_sheet = oo.sheets.first + assert_equal 'G', oo.last_column_as_letter end end def test_first_row - #-- OpenOffice - oo = Openoffice.new(File.join("test","numbers1.ods")) - oo.default_sheet = oo.sheets.first - assert_equal 1, oo.first_row + if OPENOFFICE + oo = Openoffice.new(File.join("test","numbers1.ods")) + oo.default_sheet = oo.sheets.first + assert_equal 1, oo.first_row + end if EXCEL #-- Excel oo = Excel.new(File.join("test","numbers1.xls")) oo.default_sheet = 1 # oo.sheets.first assert_equal 1, oo.first_row end if GOOGLE - #-- Google - @goo.default_sheet = @goo.sheets.first - assert_equal 1, @goo.first_row + oo = Google.new(key_of("numbers1")) + oo.default_sheet = oo.sheets.first + assert_equal 1, oo.first_row end end def test_first_column - #-- OpenOffice - oo = Openoffice.new(File.join("test","numbers1.ods")) - oo.default_sheet = oo.sheets.first - assert_equal 1, oo.first_column + if OPENOFFICE + oo = Openoffice.new(File.join("test","numbers1.ods")) + oo.default_sheet = oo.sheets.first + assert_equal 1, oo.first_column + end if EXCEL #-- Excel oo = Excel.new(File.join("test","numbers1.xls")) oo.default_sheet = 1 # oo.sheets.first assert_equal 1, oo.first_column end if GOOGLE - #-- Google - @goo.default_sheet = 1 # @goo.sheets.first - assert_equal 1, @goo.first_column + assert_nothing_raised(Timeout::Error) { + Timeout::timeout(GLOBAL_TIMEOUT) do |timeout_length| + oo = Google.new(key_of("numbers1")) + oo.default_sheet = oo.sheets.first + assert_equal 1, oo.first_column +end +} end end def test_first_column_as_letter_openoffice - if OPENOFFICE #-- OpenOffice + if OPENOFFICE oo = Openoffice.new(File.join("test","numbers1.ods")) oo.default_sheet = oo.sheets.first assert_equal 'A', oo.first_column_as_letter end end - def test_first_column_as_letter + def test_first_column_as_letter_excel if EXCEL #-- Excel oo = Excel.new(File.join("test","numbers1.xls")) oo.default_sheet = 1 # oo.sheets.first assert_equal 'A', oo.first_column_as_letter end + end + + def test_first_column_as_letter_google if GOOGLE - #-- Google - @goo.default_sheet = @goo.sheets.first - assert_equal 'A', @goo.first_column_as_letter + oo = Google.new(key_of("numbers1")) + oo.default_sheet = oo.sheets.first + assert_equal 'A', oo.first_column_as_letter end end def test_sheetname if OPENOFFICE - #-- OpenOffice oo = Openoffice.new(File.join("test","numbers1.ods")) oo.default_sheet = "Name of Sheet 2" assert_equal 'I am sheet 2', oo.cell('C',5) end if EXCEL oo = Excel.new(File.join("test","numbers1.xls")) oo.default_sheet = "Name of Sheet 2" assert_equal 'I am sheet 2', oo.cell('C',5) end + if GOOGLE + oo = Google.new(key_of("numbers1")) + oo.default_sheet = "Name of Sheet 2" + assert_equal 'I am sheet 2', oo.cell('C',5) + end end def test_boundaries #-- OpenOffice oo = Openoffice.new(File.join("test","numbers1.ods")) @@ -638,17 +737,15 @@ assert_raise(ArgumentError) { #oo.default_sheet = "first sheet" oo.default_sheet = "Tabelle1" } end - after Date.new(2007,7,20) do assert_nothing_raised(ArgumentError) { # oo.default_sheet = 1 #oo.default_sheet = "first sheet" oo.default_sheet = "Tabelle1" } - end end end def test_empty_eh if OPENOFFICE #-- OpenOffice @@ -669,13 +766,13 @@ end def test_writeopenoffice if OPENOFFICEWRITE File.cp(File.join("test","numbers1.ods"), - File.join("test","numbers2.ods")) + File.join("test","numbers2.ods")) File.cp(File.join("test","numbers2.ods"), - File.join("test","bak_numbers2.ods")) + File.join("test","bak_numbers2.ods")) oo = Openoffice.new(File.join("test","numbers2.ods")) oo.default_sheet = oo.sheets.first oo.first_row.upto(oo.last_row) {|y| oo.first_column.upto(oo.last_column) {|x| unless oo.empty?(y,x) @@ -699,11 +796,11 @@ assert_equal oo2.cell('c',2)+7, oo1.cell('c',2) assert_equal oo2.cell('d',2)+7, oo1.cell('d',2) assert_equal oo2.cell('e',2)+7, oo1.cell('e',2) File.cp(File.join("test","bak_numbers2.ods"), - File.join("test","numbers2.ods")) + File.join("test","numbers2.ods")) end end def test_reload if OPENOFFICE @@ -732,27 +829,33 @@ assert_equal 10, oo.cell('b',1) assert_equal 10, oo.cell('c',1) assert_equal 10, oo.cell('d',1) assert_equal 10, oo.cell('e',1) end - if EXCEL - oo = Excel.new(File.join("test","numbers1.xls")) - oo.default_sheet = 4 - assert_equal Date.new(2007,06,16), oo.cell('a',1) - assert_equal 10, oo.cell('b',1) - assert_equal 10, oo.cell('c',1) - assert_equal 10, oo.cell('d',1) - assert_equal 10, oo.cell('e',1) - end - if GOOGLE - @goo.default_sheet = "Sheet4" - assert_equal Date.new(2007,06,16), @goo.cell('a',1) - assert_equal 10, @goo.cell('b',1) - assert_equal 10, @goo.cell('c',1) - assert_equal 10, @goo.cell('d',1) - assert_equal 10, @goo.cell('e',1) - end + #if EXCEL + # # dieser Test ist fuer Excel sheets eigentlich nicht noetig, + # # da der Bug nur bei OO-Dokumenten auftrat + # oo = Excel.new(File.join("test","numbers1.xls")) + # oo.default_sheet = 4 + # assert_equal Date.new(2007,06,16), oo.cell('a',1) + # assert_equal 10, oo.cell('b',1) + # assert_equal 10, oo.cell('c',1) + # assert_equal 10, oo.cell('d',1) + # assert_equal 10, oo.cell('e',1) + #end + #if GOOGLE + # # dieser Test ist fuer Google sheets eigentlich nicht noetig, + # # da der Bug nur bei OO-Dokumenten auftrat + # oo = Google.new(key_of("numbers1")) + # #oo.sheetlist # TODO: refactor me! + # oo.default_sheet = "Sheet4" + # assert_equal Date.new(2007,06,16), oo.cell('a',1) + # assert_equal 10, oo.cell('b',1) + # assert_equal 10, oo.cell('c',1) + # assert_equal 10, oo.cell('d',1) + # assert_equal 10, oo.cell('e',1) + #end end def test_bug_italo_ve if OPENOFFICE oo = Openoffice.new(File.join("test","numbers1.ods")) @@ -770,32 +873,21 @@ assert_equal 5, oo.cell('b',1) assert_equal 5, oo.cell('c',1) assert_equal 2, oo.cell('a',2) assert_equal 3, oo.cell('a',3) end + #if GOOGLE + # oo = Google.new(key_of("numbers1")) + # oo.default_sheet = "Sheet5" + # assert_equal 1, oo.cell('A',1) + # assert_equal 5, oo.cell('b',1) + # assert_equal 5, oo.cell('c',1) + # assert_equal 2, oo.cell('a',2) + # assert_equal 3, oo.cell('a',3) + #end end - def DONT_test_large_file - if OPENOFFICE - count = 0 - oo = Openoffice.new(File.join("test","Bibelbund.ods")) - oo.default_sheet = oo.sheets.first - oo.first_row.upto(oo.last_row) do |row| - oo.first_column.upto(oo.last_column) do |col| - unless oo.empty?(row,col) - count += 1 - a = oo.cell(row,col) - # puts a - # b = gets - end - end - end - puts count.to_s+" cells with content" - end - - end - def test_italo_table local_only do oo = Openoffice.new(File.join("test","simple_spreadsheet_from_italo.ods")) oo.default_sheet = oo.sheets.first @@ -944,13 +1036,13 @@ assert_equal 21, oo.cell('A',7) assert_equal :formula, oo.celltype('A',7) assert_equal "=[Sheet2.A1]", oo.formula('C',7) assert_nil oo.formula('A',6) assert_equal [[7, 1, "=SUM([.A1:.A6])"], - [7, 2, "=SUM([.$A$1:.B6])"], - [7, 3, "=[Sheet2.A1]"], - [8, 2, "=SUM([.$A$1:.B7])"], + [7, 2, "=SUM([.$A$1:.B6])"], + [7, 3, "=[Sheet2.A1]"], + [8, 2, "=SUM([.$A$1:.B7])"], ], oo.formulas(oo.sheets.first) after Date.new(2007,6,25) do # setting a cell oo.set('A',15, 41) @@ -958,13 +1050,10 @@ oo.set('A',16, "41") assert_equal "41", oo.cell('A',16) oo.set('A',17, 42.5) assert_equal 42.5, oo.cell('A',17) end - #after Date.new(2007,7,30) do - # assert_equal 21, oo.solve('a',7) - #end end if defined? excel_supports_formulas if EXCEL oo = Excel.new(File.join("test","formula.xls")) oo.default_sheet = oo.sheets.first @@ -977,13 +1066,13 @@ assert_equal :formula, oo.celltype('A',7) assert_equal 21, oo.cell('A',7) assert_equal " = [Sheet2.A1]", oo.formula('C',7) assert_nil oo.formula('A',6) assert_equal [[7, 1, " = SUM([.A1:.A6])"], - [7, 2, " = SUM([.$A$1:.B6])"], - [7, 3, " = [Sheet2.A1]"], - [8, 2, " = SUM([.$A$1:.B7])"], + [7, 2, " = SUM([.$A$1:.B6])"], + [7, 3, " = [Sheet2.A1]"], + [8, 2, " = SUM([.$A$1:.B7])"], ], oo.formulas after Date.new(2007,6,25) do # setting a cell oo.set('A',15, 41) @@ -991,20 +1080,45 @@ oo.set('A',16, "41") assert_equal "41", oo.cell('A',16) oo.set('A',17, 42.5) assert_equal 42.5, oo.cell('A',17) end - #after Date.new(2007,7,30) do - # assert_equal 21, oo.solve('a',7) - #end end end + if GOOGLE + oo = Google.new(key_of("formula")) + oo.default_sheet = oo.sheets.first + assert_equal 1, oo.cell('A',1) + assert_equal 2, oo.cell('A',2) + assert_equal 3, oo.cell('A',3) + assert_equal 4, oo.cell('A',4) + assert_equal 5, oo.cell('A',5) + assert_equal 6, oo.cell('A',6) + # assert_equal 21, oo.cell('A',7) + assert_equal 21.0, oo.cell('A',7) #TODO: better solution Fixnum/Float + assert_equal :formula, oo.celltype('A',7) + # assert_equal "=[Sheet2.A1]", oo.formula('C',7) + # !!! different from formulas in Openoffice + assert_equal "=sheet2!R[-6]C[-2]", oo.formula('C',7) + assert_nil oo.formula('A',6) + # assert_equal [[7, 1, "=SUM([.A1:.A6])"], + # [7, 2, "=SUM([.$A$1:.B6])"], + # [7, 3, "=[Sheet2.A1]"], + # [8, 2, "=SUM([.$A$1:.B7])"], + # ], oo.formulas(oo.sheets.first) + # different format than in openoffice spreadsheets: + assert_equal [[7, 1, "=SUM(R[-6]C[0]:R[-1]C[0])"], + [7, 2, "=SUM(R1C1:R[-1]C[0])"], + [7, 3, "=sheet2!R[-6]C[-2]"], + [8, 2, "=SUM(R1C1:R[-1]C[0])"]], + oo.formulas(oo.sheets.first) + end # GOOGLE end - def test_borders_sheets + def test_borders_sheets_openoffice if OPENOFFICE oo = Openoffice.new(File.join("test","borders.ods")) oo.default_sheet = oo.sheets[1] assert_equal 6, oo.first_row assert_equal 11, oo.last_row @@ -1021,10 +1135,12 @@ assert_equal 7, oo.first_row assert_equal 12, oo.last_row assert_equal 5, oo.first_column assert_equal 9, oo.last_column end + end + def test_borders_sheets_excel if EXCEL oo = Excel.new(File.join("test","borders.xls")) oo.default_sheet = oo.sheets[1] assert_equal 6, oo.first_row assert_equal 11, oo.last_row @@ -1041,11 +1157,41 @@ assert_equal 7, oo.first_row assert_equal 12, oo.last_row assert_equal 5, oo.first_column assert_equal 9, oo.last_column end + end + def test_borders_sheets_google + if GOOGLE + assert_nothing_raised(Timeout::Error) { + Timeout::timeout(GLOBAL_TIMEOUT) do |timeout_length| + oo = Google.new(key_of("borders")) + oo.default_sheet = oo.sheets[0] + assert_equal oo.sheets.first, oo.default_sheet + assert_equal 5, oo.first_row + oo.default_sheet = oo.sheets[1] + assert_equal 'Sheet2', oo.default_sheet + assert_equal 6, oo.first_row + assert_equal 11, oo.last_row + assert_equal 4, oo.first_column + assert_equal 8, oo.last_column + + oo.default_sheet = oo.sheets.first + assert_equal 5, oo.first_row + assert_equal 10, oo.last_row + assert_equal 3, oo.first_column + assert_equal 7, oo.last_column + + oo.default_sheet = oo.sheets[2] + assert_equal 7, oo.first_row + assert_equal 12, oo.last_row + assert_equal 5, oo.first_column + assert_equal 9, oo.last_column +end +} + end end def yaml_entry(row,col,type,value) "cell_#{row}_#{col}: \n row: #{row} \n col: #{col} \n celltype: #{type} \n value: #{value} \n" end @@ -1056,47 +1202,70 @@ oo.default_sheet = oo.sheets.first assert_equal "--- \n"+yaml_entry(5,1,"date","1961-11-21"), oo.to_yaml({}, 5,1,5,1) assert_equal "--- \n"+yaml_entry(8,3,"string","thisisc8"), oo.to_yaml({}, 8,3,8,3) assert_equal "--- \n"+yaml_entry(12,3,"float",43.0), oo.to_yaml({}, 12,3,12,3) assert_equal \ - "--- \n"+yaml_entry(12,3,"float",43.0) + - yaml_entry(12,4,"float",44.0) + - yaml_entry(12,5,"float",45.0), oo.to_yaml({}, 12,3,12) + "--- \n"+yaml_entry(12,3,"float",43.0) + + yaml_entry(12,4,"float",44.0) + + yaml_entry(12,5,"float",45.0), oo.to_yaml({}, 12,3,12) assert_equal \ - "--- \n"+yaml_entry(12,3,"float",43.0)+ - yaml_entry(12,4,"float",44.0)+ - yaml_entry(12,5,"float",45.0)+ - yaml_entry(15,3,"float",43.0)+ - yaml_entry(15,4,"float",44.0)+ - yaml_entry(15,5,"float",45.0)+ - yaml_entry(16,3,"string","dreiundvierzig")+ - yaml_entry(16,4,"string","vierundvierzig")+ - yaml_entry(16,5,"string","fuenfundvierzig"), oo.to_yaml({}, 12,3) + "--- \n"+yaml_entry(12,3,"float",43.0)+ + yaml_entry(12,4,"float",44.0)+ + yaml_entry(12,5,"float",45.0)+ + yaml_entry(15,3,"float",43.0)+ + yaml_entry(15,4,"float",44.0)+ + yaml_entry(15,5,"float",45.0)+ + yaml_entry(16,3,"string","dreiundvierzig")+ + yaml_entry(16,4,"string","vierundvierzig")+ + yaml_entry(16,5,"string","fuenfundvierzig"), oo.to_yaml({}, 12,3) #example: puts oo.to_yaml({}, 12,3) #example: puts oo.to_yaml({"probe" => "bodenproben_2007-06-30"}, 12,3) end if EXCEL oo = Excel.new(File.join("test","numbers1.xls")) oo.default_sheet = 1 assert_equal "--- \n"+yaml_entry(5,1,"date","1961-11-21"), oo.to_yaml({}, 5,1,5,1) assert_equal "--- \n"+yaml_entry(8,3,"string","thisisc8"), oo.to_yaml({}, 8,3,8,3) assert_equal "--- \n"+yaml_entry(12,3,"float",43.0), oo.to_yaml({}, 12,3,12,3) assert_equal \ - "--- \n"+yaml_entry(12,3,"float",43.0) + - yaml_entry(12,4,"float",44.0) + - yaml_entry(12,5,"float",45.0), oo.to_yaml({}, 12,3,12) + "--- \n"+yaml_entry(12,3,"float",43.0) + + yaml_entry(12,4,"float",44.0) + + yaml_entry(12,5,"float",45.0), oo.to_yaml({}, 12,3,12) assert_equal \ - "--- \n"+yaml_entry(12,3,"float",43.0)+ - yaml_entry(12,4,"float",44.0)+ - yaml_entry(12,5,"float",45.0)+ - yaml_entry(15,3,"float",43.0)+ - yaml_entry(15,4,"float",44.0)+ - yaml_entry(15,5,"float",45.0)+ - yaml_entry(16,3,"string","dreiundvierzig")+ - yaml_entry(16,4,"string","vierundvierzig")+ - yaml_entry(16,5,"string","fuenfundvierzig"), oo.to_yaml({}, 12,3) + "--- \n"+yaml_entry(12,3,"float",43.0)+ + yaml_entry(12,4,"float",44.0)+ + yaml_entry(12,5,"float",45.0)+ + yaml_entry(15,3,"float",43.0)+ + yaml_entry(15,4,"float",44.0)+ + yaml_entry(15,5,"float",45.0)+ + yaml_entry(16,3,"string","dreiundvierzig")+ + yaml_entry(16,4,"string","vierundvierzig")+ + yaml_entry(16,5,"string","fuenfundvierzig"), oo.to_yaml({}, 12,3) end + if GOOGLE + oo = Google.new(key_of("numbers1")) + oo.default_sheet = oo.sheets.first + assert_equal "--- \n"+yaml_entry(5,1,"date","1961-11-21"), oo.to_yaml({}, 5,1,5,1) + assert_equal "--- \n"+yaml_entry(8,3,"string","thisisc8"), oo.to_yaml({}, 8,3,8,3) + assert_equal "--- \n"+yaml_entry(12,3,"float",43.0), oo.to_yaml({}, 12,3,12,3) + assert_equal \ + "--- \n"+yaml_entry(12,3,"float",43.0) + + yaml_entry(12,4,"float",44.0) + + yaml_entry(12,5,"float",45.0), oo.to_yaml({}, 12,3,12) + assert_equal \ + "--- \n"+yaml_entry(12,3,"float",43.0)+ + yaml_entry(12,4,"float",44.0)+ + yaml_entry(12,5,"float",45.0)+ + yaml_entry(15,3,"float",43.0)+ + yaml_entry(15,4,"float",44.0)+ + yaml_entry(15,5,"float",45.0)+ + yaml_entry(16,3,"string","dreiundvierzig")+ + yaml_entry(16,4,"string","vierundvierzig")+ + yaml_entry(16,5,"string","fuenfundvierzig"), oo.to_yaml({}, 12,3) + #example: puts oo.to_yaml({}, 12,3) + #example: puts oo.to_yaml({"probe" => "bodenproben_2007-06-30"}, 12,3) + end end if false def test_soap_server #threads = [] @@ -1236,115 +1405,131 @@ assert_equal 42, oo.cell('B',4) assert_equal 43, oo.cell('C',4) assert_equal 44, oo.cell('D',4) end if GOOGLE - after Date.new(2007,8,30) do - raise "need to write test for GOOGLE" - end + oo = Google.new(key_of("only_one_sheet")) + # oo.default_sheet = oo.sheets.first + assert_equal 42, oo.cell('B',4) + assert_equal 43, oo.cell('C',4) + assert_equal 44, oo.cell('D',4) + oo.default_sheet = oo.sheets.first + assert_equal 42, oo.cell('B',4) + assert_equal 43, oo.cell('C',4) + assert_equal 44, oo.cell('D',4) end end def test_excel_open_from_uri_and_zipped - if ONLINE - url = 'http://stiny-leonhard.de/bode-v1.xls.zip' - excel = Excel.new(url, :zip) - assert_equal 'ist "e" im Nenner von H(s)', excel.cell('b', 5) - excel.remove_tmp # don't forget to remove the temporary files + if EXCEL + if ONLINE + url = 'http://stiny-leonhard.de/bode-v1.xls.zip' + excel = Excel.new(url, :zip) + assert_equal 'ist "e" im Nenner von H(s)', excel.cell('b', 5) + excel.remove_tmp # don't forget to remove the temporary files + end end end def test_openoffice_open_from_uri_and_zipped - if ONLINE - url = 'http://spazioinwind.libero.it/s2/rata.ods.zip' - sheet = Openoffice.new(url, :zip) - #has been changed: assert_equal 'ist "e" im Nenner von H(s)', sheet.cell('b', 5) - assert_in_delta 0.001, 505.14, sheet.cell('c', 33).to_f - sheet.remove_tmp # don't forget to remove the temporary files + if OPENOFFICE + if ONLINE + url = 'http://spazioinwind.libero.it/s2/rata.ods.zip' + sheet = Openoffice.new(url, :zip) + #has been changed: assert_equal 'ist "e" im Nenner von H(s)', sheet.cell('b', 5) + assert_in_delta 0.001, 505.14, sheet.cell('c', 33).to_f + sheet.remove_tmp # don't forget to remove the temporary files + end end end def test_excel_zipped - excel = Excel.new(File.join("test","bode-v1.xls.zip"), :zip) - assert excel - assert_equal 'ist "e" im Nenner von H(s)', excel.cell('b', 5) - excel.remove_tmp # don't forget to remove the temporary files + if EXCEL + excel = Excel.new(File.join("test","bode-v1.xls.zip"), :zip) + assert excel + assert_equal 'ist "e" im Nenner von H(s)', excel.cell('b', 5) + excel.remove_tmp # don't forget to remove the temporary files + end end def test_openoffice_zipped - oo = Openoffice.new(File.join("test","bode-v1.ods.zip"), :zip) - assert oo - oo.default_sheet = oo.sheets.first - assert_equal 'ist "e" im Nenner von H(s)', oo.cell('b', 5) - oo.remove_tmp # don't forget to remove the temporary files + if OPENOFFICE + oo = Openoffice.new(File.join("test","bode-v1.ods.zip"), :zip) + assert oo + oo.default_sheet = oo.sheets.first + assert_equal 'ist "e" im Nenner von H(s)', oo.cell('b', 5) + oo.remove_tmp # don't forget to remove the temporary files + end end def test_bug_ric - oo = Openoffice.new(File.join("test","ric.ods")) - oo.default_sheet = oo.sheets.first - assert oo.empty?('A',1) - assert oo.empty?('B',1) - assert oo.empty?('C',1) - assert oo.empty?('D',1) - expected = 1 - letter = 'e' - while letter <= 'u' - assert_equal expected, oo.cell(letter,1) - letter.succ! - expected += 1 - end - #assert_equal 2, oo.cell('f',1) - #assert_equal 3, oo.cell('g',1) - #assert_equal 4, oo.cell('h',1) - #assert_equal 5, oo.cell('i',1) - #assert_equal 6, oo.cell('j',1) - #assert_equal 7, oo.cell('k',1) - #assert_equal 8, oo.cell('l',1) - #assert_equal 9, oo.cell('m',1) - #assert_equal 10, oo.cell('n',1) - #assert_equal 11, oo.cell('o',1) - #assert_equal 12, oo.cell('p',1) - #assert_equal 13, oo.cell('q',1) - #assert_equal 14, oo.cell('r',1) - #assert_equal 15, oo.cell('s',1) - #assert_equal 16, oo.cell('t',1) - #assert_equal 17, oo.cell('u',1) - assert_equal 'J', oo.cell('v',1) - assert_equal 'P', oo.cell('w',1) - assert_equal 'B', oo.cell('x',1) - assert_equal 'All', oo.cell('y',1) - assert_equal 0, oo.cell('a',2) - assert oo.empty?('b',2) - assert oo.empty?('c',2) - assert oo.empty?('d',2) + if OPENOFFICE + oo = Openoffice.new(File.join("test","ric.ods")) + oo.default_sheet = oo.sheets.first + assert oo.empty?('A',1) + assert oo.empty?('B',1) + assert oo.empty?('C',1) + assert oo.empty?('D',1) + expected = 1 + letter = 'e' + while letter <= 'u' + assert_equal expected, oo.cell(letter,1) + letter.succ! + expected += 1 + end + #assert_equal 2, oo.cell('f',1) + #assert_equal 3, oo.cell('g',1) + #assert_equal 4, oo.cell('h',1) + #assert_equal 5, oo.cell('i',1) + #assert_equal 6, oo.cell('j',1) + #assert_equal 7, oo.cell('k',1) + #assert_equal 8, oo.cell('l',1) + #assert_equal 9, oo.cell('m',1) + #assert_equal 10, oo.cell('n',1) + #assert_equal 11, oo.cell('o',1) + #assert_equal 12, oo.cell('p',1) + #assert_equal 13, oo.cell('q',1) + #assert_equal 14, oo.cell('r',1) + #assert_equal 15, oo.cell('s',1) + #assert_equal 16, oo.cell('t',1) + #assert_equal 17, oo.cell('u',1) + assert_equal 'J', oo.cell('v',1) + assert_equal 'P', oo.cell('w',1) + assert_equal 'B', oo.cell('x',1) + assert_equal 'All', oo.cell('y',1) + assert_equal 0, oo.cell('a',2) + assert oo.empty?('b',2) + assert oo.empty?('c',2) + assert oo.empty?('d',2) - #'e'.upto('s') {|letter| - # assert_equal 'B', oo.cell(letter,2) - #} - assert_equal 'B', oo.cell('e',2) - assert_equal 'B', oo.cell('f',2) - assert_equal 'B', oo.cell('g',2) - assert_equal 'B', oo.cell('h',2) - assert_equal 'B', oo.cell('i',2) - assert_equal 'B', oo.cell('j',2) - assert_equal 'B', oo.cell('k',2) - assert_equal 'B', oo.cell('l',2) - assert_equal 'B', oo.cell('m',2) - assert_equal 'B', oo.cell('n',2) - assert_equal 'B', oo.cell('o',2) - assert_equal 'B', oo.cell('p',2) - assert_equal 'B', oo.cell('q',2) - assert_equal 'B', oo.cell('r',2) - assert_equal 'B', oo.cell('s',2) + #'e'.upto('s') {|letter| + # assert_equal 'B', oo.cell(letter,2) + #} + assert_equal 'B', oo.cell('e',2) + assert_equal 'B', oo.cell('f',2) + assert_equal 'B', oo.cell('g',2) + assert_equal 'B', oo.cell('h',2) + assert_equal 'B', oo.cell('i',2) + assert_equal 'B', oo.cell('j',2) + assert_equal 'B', oo.cell('k',2) + assert_equal 'B', oo.cell('l',2) + assert_equal 'B', oo.cell('m',2) + assert_equal 'B', oo.cell('n',2) + assert_equal 'B', oo.cell('o',2) + assert_equal 'B', oo.cell('p',2) + assert_equal 'B', oo.cell('q',2) + assert_equal 'B', oo.cell('r',2) + assert_equal 'B', oo.cell('s',2) - assert oo.empty?('t',2) - assert oo.empty?('u',2) - assert_equal 0 , oo.cell('v',2) - assert_equal 0 , oo.cell('w',2) - assert_equal 15 , oo.cell('x',2) - assert_equal 15 , oo.cell('y',2) + assert oo.empty?('t',2) + assert oo.empty?('u',2) + assert_equal 0 , oo.cell('v',2) + assert_equal 0 , oo.cell('w',2) + assert_equal 15 , oo.cell('x',2) + assert_equal 15 , oo.cell('y',2) + end end def test_mehrteilig if OPENOFFICE oo = Openoffice.new(File.join("test","Bibelbund1.ods")) @@ -1356,11 +1541,12 @@ def test_to_csv_openoffice if LONG_RUN if OPENOFFICE assert_nothing_raised(Timeout::Error) { Timeout::timeout(GLOBAL_TIMEOUT) do |timeout_length| - oo = Openoffice.new(File.join("test","Bibelbund500.ods")) + File.delete("/tmp/Bibelbund.csv") + oo = Openoffice.new(File.join("test","Bibelbund.ods")) oo.default_sheet = oo.sheets.first assert_equal "Tagebuch des Sekret\303\244rs. Letzte Tagung 15./16.11.75 Schweiz", oo.cell(45,'A') assert_equal "Tagebuch des Sekret\303\244rs. Nachrichten aus Chile", oo.cell(46,'A') assert_equal "Tagebuch aus Chile Juli 1977", oo.cell(55,'A') assert oo.to_csv("/tmp/Bibelbund.csv") @@ -1375,21 +1561,43 @@ def test_to_csv_excel if LONG_RUN if EXCEL assert_nothing_raised(Timeout::Error) { Timeout::timeout(GLOBAL_TIMEOUT) do |timeout_length| - oo = Excel.new(File.join("test","Bibelbund500.xls")) + File.delete("/tmp/Bibelbund.csv") + oo = Excel.new(File.join("test","Bibelbund.xls")) oo.default_sheet = oo.sheets.first assert oo.to_csv("/tmp/Bibelbund.csv") assert File.exists?("/tmp/Bibelbund.csv") assert_equal "", `diff test/Bibelbund.csv /tmp/Bibelbund.csv` end } end end # LONG_RUN end # def to_csv + def test_to_csv_google +# maybe a better example... TODO: +after Date.new(2008,1,30) do + if GOOGLE + assert_nothing_raised(Timeout::Error) { + Timeout::timeout(GLOBAL_TIMEOUT) do |timeout_length| + File.delete("/tmp/numbers1.csv") if File.exists?("/tmp/numbers1.csv") + oo = Google.new(key_of('numbers1')) + oo.default_sheet = oo.sheets.first + #?? assert_equal "Tagebuch des Sekret\303\244rs. Letzte Tagung 15./16.11.75 Schweiz", oo.cell(45,'A') + #?? assert_equal "Tagebuch des Sekret\303\244rs. Nachrichten aus Chile", oo.cell(46,'A') + #?? assert_equal "Tagebuch aus Chile Juli 1977", oo.cell(55,'A') + assert oo.to_csv("/tmp/numbers1.csv") + assert File.exists?("/tmp/numbers1.csv") + assert_equal "", `diff test/numbers1.csv /tmp/numbers1.csv` + end # Timeout + } # nothing_raised + end # GOOGLE +end # after + end + def test_bug_mehrere_datum if OPENOFFICE oo = Openoffice.new(File.join("test","numbers1.ods")) oo.default_sheet = 'Sheet5' assert_equal :date, oo.celltype('A',4) @@ -1541,10 +1749,51 @@ assert_equal "ABC", oo.cell('D',6,sheetname) assert_equal "ABC", oo.cell('E',6,sheetname) oo.reload end end + if GOOGLE + oo = Google.new(key_of("numbers1")) + 2.times do + oo.default_sheet = "Tabelle1" + assert_equal 1, oo.cell(1,1) + assert_equal 1, oo.cell(1,1,"Tabelle1") + assert_equal "I am sheet 2", oo.cell('C',5,"Name of Sheet 2") + sheetname = 'Sheet5' + assert_equal :date, oo.celltype('A',4,sheetname) + assert_equal :date, oo.celltype('B',4,sheetname) + assert_equal :date, oo.celltype('C',4,sheetname) + assert_equal :date, oo.celltype('D',4,sheetname) + assert_equal :date, oo.celltype('E',4,sheetname) + assert_equal Date.new(2007,11,21), oo.cell('A',4,sheetname) + assert_equal Date.new(2007,11,21), oo.cell('B',4,sheetname) + assert_equal Date.new(2007,11,21), oo.cell('C',4,sheetname) + assert_equal Date.new(2007,11,21), oo.cell('D',4,sheetname) + assert_equal Date.new(2007,11,21), oo.cell('E',4,sheetname) + assert_equal :float, oo.celltype('A',5,sheetname) + assert_equal :float, oo.celltype('B',5,sheetname) + assert_equal :float, oo.celltype('C',5,sheetname) + assert_equal :float, oo.celltype('D',5,sheetname) + assert_equal :float, oo.celltype('E',5,sheetname) + assert_equal 42, oo.cell('A',5,sheetname) + assert_equal 42, oo.cell('B',5,sheetname) + assert_equal 42, oo.cell('C',5,sheetname) + assert_equal 42, oo.cell('D',5,sheetname) + assert_equal 42, oo.cell('E',5,sheetname) + assert_equal :string, oo.celltype('A',6,sheetname) + assert_equal :string, oo.celltype('B',6,sheetname) + assert_equal :string, oo.celltype('C',6,sheetname) + assert_equal :string, oo.celltype('D',6,sheetname) + assert_equal :string, oo.celltype('E',6,sheetname) + assert_equal "ABC", oo.cell('A',6,sheetname) + assert_equal "ABC", oo.cell('B',6,sheetname) + assert_equal "ABC", oo.cell('C',6,sheetname) + assert_equal "ABC", oo.cell('D',6,sheetname) + assert_equal "ABC", oo.cell('E',6,sheetname) + oo.reload + end + end end def test_bug_empty_sheet oo = Openoffice.new(File.join("test","formula.ods")) oo.default_sheet = 'Sheet3' # is an empty sheet @@ -1552,15 +1801,15 @@ oo.to_csv(File.join("/","tmp","emptysheet.csv")) } assert_equal "", `cat /tmp/emptysheet.csv` end - def test_find_by_row_openoffice + def test_find_by_row_huge_document_openoffice if LONG_RUN if OPENOFFICE Timeout::timeout(GLOBAL_TIMEOUT) do |timeout_length| - oo = Openoffice.new(File.join("test","Bibelbund500.ods")) + oo = Openoffice.new(File.join("test","Bibelbund.ods")) oo.default_sheet = oo.sheets.first rec = oo.find 20 assert rec # assert_equal "Brief aus dem Sekretariat", rec[0] #p rec @@ -1573,15 +1822,15 @@ end end end end - def test_find_by_row_excel + def test_find_by_row_huge_document_excel if LONG_RUN if EXCEL Timeout::timeout(GLOBAL_TIMEOUT) do |timeout_length| - oo = Excel.new(File.join("test","Bibelbund500.xls")) + oo = Excel.new(File.join("test","Bibelbund.xls")) oo.default_sheet = oo.sheets.first rec = oo.find 20 assert rec assert_equal "Brief aus dem Sekretariat", rec[0] @@ -1591,97 +1840,115 @@ end end end end + def test_find_by_row_huge_document_google + if LONG_RUN + if GOOGLE + Timeout::timeout(GLOBAL_TIMEOUT) do |timeout_length| + oo = Google.new(key_of("Bibelbund")) + oo.default_sheet = oo.sheets.first + rec = oo.find 20 + assert rec + assert_equal "Brief aus dem Sekretariat", rec[0] + + rec = oo.find 22 + assert rec + assert_equal "Brief aus dem Skretariat. Tagung in Amberg/Opf.",rec[0] + end + end + end + end + def test_find_by_conditions_openoffice if LONG_RUN if OPENOFFICE assert_nothing_raised(Timeout::Error) { Timeout::timeout(GLOBAL_TIMEOUT) do |timeout_length| - oo = Openoffice.new(File.join("test","Bibelbund500.ods")) + oo = Openoffice.new(File.join("test","Bibelbund.ods")) oo.default_sheet = oo.sheets.first #----------------------------------------------------------------- zeilen = oo.find(:all, :conditions => { - 'TITEL' => 'Brief aus dem Sekretariat' - } + 'TITEL' => 'Brief aus dem Sekretariat' + } ) assert_equal 2, zeilen.size assert_equal [{"VERFASSER"=>"Almassy, Annelene von", - "INTERNET"=>nil, - "SEITE"=>316.0, - "KENNUNG"=>"Aus dem Bibelbund", - "OBJEKT"=>"Bibel+Gem", - "PC"=>"#C:\\Bibelbund\\reprint\\BuG1982-3.pdf#", - "NUMMER"=>"1982-3", - "TITEL"=>"Brief aus dem Sekretariat"}, - {"VERFASSER"=>"Almassy, Annelene von", - "INTERNET"=>nil, - "SEITE"=>222.0, - "KENNUNG"=>"Aus dem Bibelbund", - "OBJEKT"=>"Bibel+Gem", - "PC"=>"#C:\\Bibelbund\\reprint\\BuG1983-2.pdf#", - "NUMMER"=>"1983-2", - "TITEL"=>"Brief aus dem Sekretariat"}] , zeilen + "INTERNET"=>nil, + "SEITE"=>316.0, + "KENNUNG"=>"Aus dem Bibelbund", + "OBJEKT"=>"Bibel+Gem", + "PC"=>"#C:\\Bibelbund\\reprint\\BuG1982-3.pdf#", + "NUMMER"=>"1982-3", + "TITEL"=>"Brief aus dem Sekretariat"}, + {"VERFASSER"=>"Almassy, Annelene von", + "INTERNET"=>nil, + "SEITE"=>222.0, + "KENNUNG"=>"Aus dem Bibelbund", + "OBJEKT"=>"Bibel+Gem", + "PC"=>"#C:\\Bibelbund\\reprint\\BuG1983-2.pdf#", + "NUMMER"=>"1983-2", + "TITEL"=>"Brief aus dem Sekretariat"}] , zeilen #---------------------------------------------------------- zeilen = oo.find(:all, - :conditions => { 'VERFASSER' => 'Almassy, Annelene von' } + :conditions => { 'VERFASSER' => 'Almassy, Annelene von' } ) assert_equal 13, zeilen.size #---------------------------------------------------------- zeilen = oo.find(:all, :conditions => { - 'TITEL' => 'Brief aus dem Sekretariat', - 'VERFASSER' => 'Almassy, Annelene von', - } + 'TITEL' => 'Brief aus dem Sekretariat', + 'VERFASSER' => 'Almassy, Annelene von', + } ) assert_equal 2, zeilen.size assert_equal [{"VERFASSER"=>"Almassy, Annelene von", - "INTERNET"=>nil, - "SEITE"=>316.0, - "KENNUNG"=>"Aus dem Bibelbund", - "OBJEKT"=>"Bibel+Gem", - "PC"=>"#C:\\Bibelbund\\reprint\\BuG1982-3.pdf#", - "NUMMER"=>"1982-3", - "TITEL"=>"Brief aus dem Sekretariat"}, - {"VERFASSER"=>"Almassy, Annelene von", - "INTERNET"=>nil, - "SEITE"=>222.0, - "KENNUNG"=>"Aus dem Bibelbund", - "OBJEKT"=>"Bibel+Gem", - "PC"=>"#C:\\Bibelbund\\reprint\\BuG1983-2.pdf#", - "NUMMER"=>"1983-2", - "TITEL"=>"Brief aus dem Sekretariat"}] , zeilen + "INTERNET"=>nil, + "SEITE"=>316.0, + "KENNUNG"=>"Aus dem Bibelbund", + "OBJEKT"=>"Bibel+Gem", + "PC"=>"#C:\\Bibelbund\\reprint\\BuG1982-3.pdf#", + "NUMMER"=>"1982-3", + "TITEL"=>"Brief aus dem Sekretariat"}, + {"VERFASSER"=>"Almassy, Annelene von", + "INTERNET"=>nil, + "SEITE"=>222.0, + "KENNUNG"=>"Aus dem Bibelbund", + "OBJEKT"=>"Bibel+Gem", + "PC"=>"#C:\\Bibelbund\\reprint\\BuG1983-2.pdf#", + "NUMMER"=>"1983-2", + "TITEL"=>"Brief aus dem Sekretariat"}] , zeilen # Result as an array zeilen = oo.find(:all, - :conditions => { - 'TITEL' => 'Brief aus dem Sekretariat', - 'VERFASSER' => 'Almassy, Annelene von', - }, :array => true) + :conditions => { + 'TITEL' => 'Brief aus dem Sekretariat', + 'VERFASSER' => 'Almassy, Annelene von', + }, :array => true) assert_equal 2, zeilen.size assert_equal [ - [ - "Brief aus dem Sekretariat", - "Almassy, Annelene von", - "Bibel+Gem", - "1982-3", - 316.0, - nil, - "#C:\\Bibelbund\\reprint\\BuG1982-3.pdf#", - "Aus dem Bibelbund", - ], - [ - "Brief aus dem Sekretariat", - "Almassy, Annelene von", - "Bibel+Gem", - "1983-2", - 222.0, - nil, - "#C:\\Bibelbund\\reprint\\BuG1983-2.pdf#", - "Aus dem Bibelbund", - ]] , zeilen + [ + "Brief aus dem Sekretariat", + "Almassy, Annelene von", + "Bibel+Gem", + "1982-3", + 316.0, + nil, + "#C:\\Bibelbund\\reprint\\BuG1982-3.pdf#", + "Aus dem Bibelbund", + ], + [ + "Brief aus dem Sekretariat", + "Almassy, Annelene von", + "Bibel+Gem", + "1983-2", + 222.0, + nil, + "#C:\\Bibelbund\\reprint\\BuG1983-2.pdf#", + "Aus dem Bibelbund", + ]] , zeilen end # Timeout } # nothing_raised end end end @@ -1689,69 +1956,162 @@ def test_find_by_conditions_excel if LONG_RUN if EXCEL assert_nothing_raised(Timeout::Error) { Timeout::timeout(GLOBAL_TIMEOUT) do |timeout_length| - oo = Excel.new(File.join("test","Bibelbund500.xls")) + oo = Excel.new(File.join("test","Bibelbund.xls")) oo.default_sheet = oo.sheets.first #----------------------------------------------------------------- zeilen = oo.find(:all, :conditions => { - 'TITEL' => 'Brief aus dem Sekretariat' - } + 'TITEL' => 'Brief aus dem Sekretariat' + } ) assert_equal 2, zeilen.size assert_equal [{"VERFASSER"=>"Almassy, Annelene von", - "INTERNET"=>nil, - "SEITE"=>316.0, - "KENNUNG"=>"Aus dem Bibelbund", - "OBJEKT"=>"Bibel+Gem", - "PC"=>"#C:\\Bibelbund\\reprint\\BuG1982-3.pdf#", - "NUMMER"=>"1982-3", - "TITEL"=>"Brief aus dem Sekretariat"}, - {"VERFASSER"=>"Almassy, Annelene von", - "INTERNET"=>nil, - "SEITE"=>222.0, - "KENNUNG"=>"Aus dem Bibelbund", - "OBJEKT"=>"Bibel+Gem", - "PC"=>"#C:\\Bibelbund\\reprint\\BuG1983-2.pdf#", - "NUMMER"=>"1983-2", - "TITEL"=>"Brief aus dem Sekretariat"}] , zeilen + "INTERNET"=>nil, + "SEITE"=>316.0, + "KENNUNG"=>"Aus dem Bibelbund", + "OBJEKT"=>"Bibel+Gem", + "PC"=>"#C:\\Bibelbund\\reprint\\BuG1982-3.pdf#", + "NUMMER"=>"1982-3", + "TITEL"=>"Brief aus dem Sekretariat"}, + {"VERFASSER"=>"Almassy, Annelene von", + "INTERNET"=>nil, + "SEITE"=>222.0, + "KENNUNG"=>"Aus dem Bibelbund", + "OBJEKT"=>"Bibel+Gem", + "PC"=>"#C:\\Bibelbund\\reprint\\BuG1983-2.pdf#", + "NUMMER"=>"1983-2", + "TITEL"=>"Brief aus dem Sekretariat"}] , zeilen #---------------------------------------------------------- zeilen = oo.find(:all, - :conditions => { 'VERFASSER' => 'Almassy, Annelene von' } + :conditions => { 'VERFASSER' => 'Almassy, Annelene von' } ) assert_equal 13, zeilen.size #---------------------------------------------------------- zeilen = oo.find(:all, :conditions => { - 'TITEL' => 'Brief aus dem Sekretariat', - 'VERFASSER' => 'Almassy, Annelene von', - } + 'TITEL' => 'Brief aus dem Sekretariat', + 'VERFASSER' => 'Almassy, Annelene von', + } ) assert_equal 2, zeilen.size assert_equal [{"VERFASSER"=>"Almassy, Annelene von", - "INTERNET"=>nil, - "SEITE"=>316.0, - "KENNUNG"=>"Aus dem Bibelbund", - "OBJEKT"=>"Bibel+Gem", - "PC"=>"#C:\\Bibelbund\\reprint\\BuG1982-3.pdf#", - "NUMMER"=>"1982-3", - "TITEL"=>"Brief aus dem Sekretariat"}, - {"VERFASSER"=>"Almassy, Annelene von", - "INTERNET"=>nil, - "SEITE"=>222.0, - "KENNUNG"=>"Aus dem Bibelbund", - "OBJEKT"=>"Bibel+Gem", - "PC"=>"#C:\\Bibelbund\\reprint\\BuG1983-2.pdf#", - "NUMMER"=>"1983-2", - "TITEL"=>"Brief aus dem Sekretariat"}] , zeilen + "INTERNET"=>nil, + "SEITE"=>316.0, + "KENNUNG"=>"Aus dem Bibelbund", + "OBJEKT"=>"Bibel+Gem", + "PC"=>"#C:\\Bibelbund\\reprint\\BuG1982-3.pdf#", + "NUMMER"=>"1982-3", + "TITEL"=>"Brief aus dem Sekretariat"}, + {"VERFASSER"=>"Almassy, Annelene von", + "INTERNET"=>nil, + "SEITE"=>222.0, + "KENNUNG"=>"Aus dem Bibelbund", + "OBJEKT"=>"Bibel+Gem", + "PC"=>"#C:\\Bibelbund\\reprint\\BuG1983-2.pdf#", + "NUMMER"=>"1983-2", + "TITEL"=>"Brief aus dem Sekretariat"}] , zeilen end # Timeout } # nothing_raised end end end + def test_find_by_conditions_google + if LONG_RUN + if GOOGLE + assert_nothing_raised(Timeout::Error) { + Timeout::timeout(GLOBAL_TIMEOUT) do |timeout_length| + oo = Google.new(key_of("Bibelbund")) + oo.default_sheet = oo.sheets.first + #----------------------------------------------------------------- + zeilen = oo.find(:all, :conditions => { + 'TITEL' => 'Brief aus dem Sekretariat' + } + ) + assert_equal 2, zeilen.size + assert_equal [{"VERFASSER"=>"Almassy, Annelene von", + "INTERNET"=>nil, + "SEITE"=>316.0, + "KENNUNG"=>"Aus dem Bibelbund", + "OBJEKT"=>"Bibel+Gem", + "PC"=>"#C:\\Bibelbund\\reprint\\BuG1982-3.pdf#", + "NUMMER"=>"1982-3", + "TITEL"=>"Brief aus dem Sekretariat"}, + {"VERFASSER"=>"Almassy, Annelene von", + "INTERNET"=>nil, + "SEITE"=>222.0, + "KENNUNG"=>"Aus dem Bibelbund", + "OBJEKT"=>"Bibel+Gem", + "PC"=>"#C:\\Bibelbund\\reprint\\BuG1983-2.pdf#", + "NUMMER"=>"1983-2", + "TITEL"=>"Brief aus dem Sekretariat"}] , zeilen + + #---------------------------------------------------------- + zeilen = oo.find(:all, + :conditions => { 'VERFASSER' => 'Almassy, Annelene von' } + ) + assert_equal 13, zeilen.size + #---------------------------------------------------------- + zeilen = oo.find(:all, :conditions => { + 'TITEL' => 'Brief aus dem Sekretariat', + 'VERFASSER' => 'Almassy, Annelene von', + } + ) + assert_equal 2, zeilen.size + assert_equal [{"VERFASSER"=>"Almassy, Annelene von", + "INTERNET"=>nil, + "SEITE"=>316.0, + "KENNUNG"=>"Aus dem Bibelbund", + "OBJEKT"=>"Bibel+Gem", + "PC"=>"#C:\\Bibelbund\\reprint\\BuG1982-3.pdf#", + "NUMMER"=>"1982-3", + "TITEL"=>"Brief aus dem Sekretariat"}, + {"VERFASSER"=>"Almassy, Annelene von", + "INTERNET"=>nil, + "SEITE"=>222.0, + "KENNUNG"=>"Aus dem Bibelbund", + "OBJEKT"=>"Bibel+Gem", + "PC"=>"#C:\\Bibelbund\\reprint\\BuG1983-2.pdf#", + "NUMMER"=>"1983-2", + "TITEL"=>"Brief aus dem Sekretariat"}] , zeilen + + # Result as an array + zeilen = oo.find(:all, + :conditions => { + 'TITEL' => 'Brief aus dem Sekretariat', + 'VERFASSER' => 'Almassy, Annelene von', + }, :array => true) + assert_equal 2, zeilen.size + assert_equal [ + [ + "Brief aus dem Sekretariat", + "Almassy, Annelene von", + "Bibel+Gem", + "1982-3", + 316.0, + nil, + "#C:\\Bibelbund\\reprint\\BuG1982-3.pdf#", + "Aus dem Bibelbund", + ], + [ + "Brief aus dem Sekretariat", + "Almassy, Annelene von", + "Bibel+Gem", + "1983-2", + 222.0, + nil, + "#C:\\Bibelbund\\reprint\\BuG1983-2.pdf#", + "Aus dem Bibelbund", + ]] , zeilen + end # Timeout + } # nothing_raised + end + end + end + def test_columns_openoffice expected = [1.0,5.0,nil,10.0,Date.new(1961,11,21),'tata',nil,nil,nil,nil,'thisisa11',41.0,nil,nil,41.0,'einundvierzig',nil,Date.new(2007,5,31)] if OPENOFFICE Timeout::timeout(GLOBAL_TIMEOUT) do |timeout_length| oo = Openoffice.new(File.join('test','numbers1.ods')) @@ -1772,17 +2132,29 @@ assert_equal expected, oo.column('a') end end end + def test_columns_google + expected = [1.0,5.0,nil,10.0,Date.new(1961,11,21),'tata',nil,nil,nil,nil,'thisisa11',41.0,nil,nil,41.0,'einundvierzig',nil,Date.new(2007,5,31)] + if GOOGLE + Timeout::timeout(GLOBAL_TIMEOUT) do |timeout_length| + oo = Google.new(key_of('numbers1')) + oo.default_sheet = oo.sheets.first + assert_equal expected, oo.column(1) + assert_equal expected, oo.column('a') + end + end + end + def test_column_huge_document_openoffice if LONG_RUN if OPENOFFICE assert_nothing_raised(Timeout::Error) { Timeout::timeout(GLOBAL_TIMEOUT) do |timeout_length| #puts Time.now.to_s + "column Openoffice gestartet" - oo = Openoffice.new(File.join('test','Bibelbund500.ods')) + oo = Openoffice.new(File.join('test','Bibelbund.ods')) oo.default_sheet = oo.sheets.first #assert_equal 3735, oo.column('a').size assert_equal 499, oo.column('a').size #puts Time.now.to_s + "column Openoffice beendet" end @@ -1795,21 +2167,38 @@ if LONG_RUN if EXCEL assert_nothing_raised(Timeout::Error) { Timeout::timeout(GLOBAL_TIMEOUT) do |timeout_length| #puts Time.now.to_s + "column Excel gestartet" - oo = Excel.new(File.join('test','Bibelbund500.xls')) + oo = Excel.new(File.join('test','Bibelbund.xls')) oo.default_sheet = oo.sheets.first #assert_equal 3735, oo.column('a').size assert_equal 499, oo.column('a').size #puts Time.now.to_s + "column Excel beendet" end } end end end + def test_column_huge_document_google + if LONG_RUN + if GOOGLE_NEW + assert_nothing_raised(Timeout::Error) { + Timeout::timeout(GLOBAL_TIMEOUT) do |timeout_length| + #puts Time.now.to_s + "column Openoffice gestartet" + oo = Google.new(key_of('Bibelbund')) + oo.default_sheet = oo.sheets.first + #assert_equal 3735, oo.column('a').size + assert_equal 499, oo.column('a').size + #puts Time.now.to_s + "column Openoffice beendet" + end + } + end + end + end + def test_simple_spreadsheet_find_by_condition_openoffice oo = Openoffice.new(File.join("test","simple_spreadsheet.ods")) oo.default_sheet = oo.sheets.first oo.header_line = 3 erg = oo.find(:all, :conditions => {'Comment' => 'Task 1'}) @@ -1819,10 +2208,28 @@ assert_equal 0 , erg[1]['Pause'] assert_equal 1.75 , erg[1]['Sum'] assert_equal "Task 1" , erg[1]['Comment'] end + def test_simple_spreadsheet_find_by_condition_google + if GOOGLE +after Date.new(2007,12,15) do + oo = Google.new(key_of("simple_spreadsheet")) + oo.default_sheet = oo.sheets.first + oo.header_line = 3 + erg = oo.find(:all, :conditions => {'Comment' => 'Task 1'}) + assert_equal Date.new(2007,05,07), erg[1]['Date'] + assert_equal 10.75 , erg[1]['Start time'] + assert_equal 12.50 , erg[1]['End time'] + assert_equal 0 , erg[1]['Pause'] + assert_kind_of Float, erg[1]['Sum'] + assert_equal 1.75 , erg[1]['Sum'] + assert_equal "Task 1" , erg[1]['Comment'] +end + end + end + def DONT_test_false_encoding ex = Excel.new(File.join('test','false_encoding.xls')) ex.default_sheet = ex.sheets.first assert_equal "Sheet1", ex.sheets.first ex.first_row.upto(ex.last_row) do |row| @@ -1887,37 +2294,37 @@ end def test_info expected_templ = "File: test/numbers1%s\n"+ - "Number of sheets: 5\n"+ - "Sheets: Tabelle1, Name of Sheet 2, Sheet3, Sheet4, Sheet5\n"+ - "Sheet 1:\n"+ - " First row: 1\n"+ - " Last row: 18\n"+ - " First column: A\n"+ - " Last column: G\n"+ - "Sheet 2:\n"+ - " First row: 5\n"+ - " Last row: 14\n"+ - " First column: B\n"+ - " Last column: E\n"+ - "Sheet 3:\n"+ - " First row: 1\n"+ - " Last row: 1\n"+ - " First column: A\n"+ - " Last column: BA\n"+ - "Sheet 4:\n"+ - " First row: 1\n"+ - " Last row: 1\n"+ - " First column: A\n"+ - " Last column: E\n"+ - "Sheet 5:\n"+ - " First row: 1\n"+ - " Last row: 6\n"+ - " First column: A\n"+ - " Last column: E" + "Number of sheets: 5\n"+ + "Sheets: Tabelle1, Name of Sheet 2, Sheet3, Sheet4, Sheet5\n"+ + "Sheet 1:\n"+ + " First row: 1\n"+ + " Last row: 18\n"+ + " First column: A\n"+ + " Last column: G\n"+ + "Sheet 2:\n"+ + " First row: 5\n"+ + " Last row: 14\n"+ + " First column: B\n"+ + " Last column: E\n"+ + "Sheet 3:\n"+ + " First row: 1\n"+ + " Last row: 1\n"+ + " First column: A\n"+ + " Last column: BA\n"+ + "Sheet 4:\n"+ + " First row: 1\n"+ + " Last row: 1\n"+ + " First column: A\n"+ + " Last column: E\n"+ + "Sheet 5:\n"+ + " First row: 1\n"+ + " Last row: 6\n"+ + " First column: A\n"+ + " Last column: E" if OPENOFFICE ext = ".ods" expected = sprintf(expected_templ,ext) oo = Openoffice.new(File.join("test","numbers1.ods")) assert_equal expected, oo.info @@ -1926,10 +2333,18 @@ ext = ".xls" expected = sprintf(expected_templ,ext) oo = Excel.new(File.join("test","numbers1.xls")) assert_equal expected, oo.info end + if GOOGLE + ext = "" + expected = sprintf(expected_templ,ext) + oo = Google.new(key_of("numbers1")) +#$log.debug(expected) + #$log.debug expected.gsub(/test\/numbers1/,key_of("numbers1")) + assert_equal expected.gsub(/test\/numbers1/,key_of("numbers1")), oo.info + end end def test_bug_excel_numbers1_sheet5_last_row oo = Excel.new(File.join("test","numbers1.xls")) oo.default_sheet = "Tabelle1" @@ -1967,8 +2382,38 @@ end if EXCEL assert_raise(IOError) { oo = Excel.new(File.join('testnichtvorhanden','Bibelbund.xls')) } + end + if GOOGLE +after Date.new(2008,1,1) do + assert_raise(IOError) { + oo = Google.new(key_of('testnichtvorhanden'+'Bibelbund.ods')) + } +end + end + end + + def test_bug_cell_no_default_sheet + if GOOGLE + oo = Google.new(key_of("numbers1")) + assert_raise(ArgumentError) { + # should complain about not set default-sheet + #assert_equal 1.0, oo.cell('A',1) + value = oo.cell('A',1) + assert_equal "ganz rechts gehts noch wetier", oo.cell('A',1,"Sheet3") + } + end + end + + def test_write_google +# write.me: http://spreadsheets.google.com/ccc?key=ptu6bbahNZpY0N0RrxQbWdw&hl=en_GB + if GOOGLE + oo = Google.new('ptu6bbahNZpY0N0RrxQbWdw') + oo.default_sheet = oo.sheets.first + oo.set_value(1,1,"hello from the tests") + #oo.set_value(1,1,"sin(1)") + assert_equal "hello from the tests", oo.cell(1,1) end end end # class