roo 0.7.0 → 0.8.0
Sign up to get free protection for your applications and to get access to all the features.
- data/History.txt +4 -0
- data/Manifest.txt +2 -0
- data/README.txt +0 -1
- data/Rakefile +12 -2
- data/examples/write_me.rb +33 -0
- data/lib/roo.rb +1 -0
- data/lib/roo/excel.rb +53 -94
- data/lib/roo/generic_spreadsheet.rb +303 -0
- data/lib/roo/google.rb +667 -152
- data/lib/roo/openoffice.rb +13 -259
- data/lib/roo/version.rb +1 -1
- data/test/test_roo.rb +898 -453
- data/website/index.html +74 -11
- data/website/index.txt +52 -9
- metadata +6 -4
data/lib/roo/openoffice.rb
CHANGED
@@ -6,11 +6,7 @@ require 'zip/zipfilesystem'
|
|
6
6
|
require 'date'
|
7
7
|
require 'base64'
|
8
8
|
|
9
|
-
|
10
|
-
# spreadsheet documents. Other classes like _Excel_ are defined as subclasses
|
11
|
-
# of this class.
|
12
|
-
|
13
|
-
class Openoffice
|
9
|
+
class Openoffice < GenericSpreadsheet
|
14
10
|
|
15
11
|
@@nr = 0
|
16
12
|
|
@@ -26,7 +22,7 @@ class Openoffice
|
|
26
22
|
end
|
27
23
|
filename = open_from_uri(filename) if filename[0,7] == "http://"
|
28
24
|
filename = unzip(filename) if packed and packed == :zip
|
29
|
-
if filename
|
25
|
+
if File.extname(filename) != ".ods"
|
30
26
|
warn "are you sure, this is an openoffice file?"
|
31
27
|
end
|
32
28
|
#if create and ! File.exists?(filename)
|
@@ -45,7 +41,7 @@ class Openoffice
|
|
45
41
|
@doc = REXML::Document.new file
|
46
42
|
file.close
|
47
43
|
#if ENV["roo_local"] != "thomas-p"
|
48
|
-
|
44
|
+
FileUtils::rm_r(@tmpdir)
|
49
45
|
#end
|
50
46
|
@default_sheet = nil
|
51
47
|
# no need to set default_sheet if there is only one sheet in the document
|
@@ -74,14 +70,6 @@ class Openoffice
|
|
74
70
|
f.close
|
75
71
|
end
|
76
72
|
|
77
|
-
# reopens and read a spreadsheet document
|
78
|
-
def reload
|
79
|
-
ds = @default_sheet
|
80
|
-
initialize(@filename)
|
81
|
-
self.default_sheet = ds
|
82
|
-
#@first_row = @last_row = @first_column = @last_column = nil
|
83
|
-
end
|
84
|
-
|
85
73
|
# Returns the content of a spreadsheet-cell.
|
86
74
|
# (1,1) is the upper left corner.
|
87
75
|
# (1,1), (1,'A'), ('A',1), ('a',1) all refers to the
|
@@ -99,7 +87,7 @@ class Openoffice
|
|
99
87
|
|
100
88
|
# Returns the formula at (row,col).
|
101
89
|
# Returns nil if there is no formula.
|
102
|
-
# The method
|
90
|
+
# The method #formula? checks if there is a formula.
|
103
91
|
def formula(row,col,sheet=nil)
|
104
92
|
sheet = @default_sheet unless sheet
|
105
93
|
read_cells(sheet) unless @cells_read[sheet]
|
@@ -153,14 +141,6 @@ class Openoffice
|
|
153
141
|
end
|
154
142
|
end
|
155
143
|
|
156
|
-
# recursively removes the current temporary directory
|
157
|
-
# this is only needed if you work with zipped files or files via the web
|
158
|
-
def remove_tmp
|
159
|
-
if File.exists?(@tmpdir)
|
160
|
-
FileUtils::rm_r(@tmpdir)
|
161
|
-
end
|
162
|
-
end
|
163
|
-
|
164
144
|
# returns an array of sheet names in the spreadsheet
|
165
145
|
def sheets
|
166
146
|
return_sheets = []
|
@@ -252,105 +232,6 @@ class Openoffice
|
|
252
232
|
result
|
253
233
|
end
|
254
234
|
|
255
|
-
# returns the number of the last non-empty row
|
256
|
-
def last_row(sheet=nil)
|
257
|
-
sheet = @default_sheet unless sheet
|
258
|
-
read_cells(sheet) unless @cells_read[sheet]
|
259
|
-
if @last_row[sheet]
|
260
|
-
return @last_row[sheet]
|
261
|
-
end
|
262
|
-
impossible_value = 0
|
263
|
-
result = impossible_value
|
264
|
-
@cell[sheet].each_pair {|key,value|
|
265
|
-
y,x = key.split(',')
|
266
|
-
y = y.to_i
|
267
|
-
result = [result, y].max if value
|
268
|
-
}
|
269
|
-
result = nil if result == impossible_value
|
270
|
-
@last_row[sheet] = result
|
271
|
-
result
|
272
|
-
end
|
273
|
-
|
274
|
-
# returns the number of the last non-empty column
|
275
|
-
def last_column(sheet=nil)
|
276
|
-
sheet = @default_sheet unless sheet
|
277
|
-
read_cells(sheet) unless @cells_read[sheet]
|
278
|
-
if @last_column[sheet]
|
279
|
-
return @last_column[sheet]
|
280
|
-
end
|
281
|
-
impossible_value = 0
|
282
|
-
result = impossible_value
|
283
|
-
@cell[sheet].each_pair {|key,value|
|
284
|
-
y,x = key.split(',')
|
285
|
-
x = x.to_i
|
286
|
-
result = [result, x].max if value
|
287
|
-
}
|
288
|
-
result = nil if result == impossible_value
|
289
|
-
@last_column[sheet] = result
|
290
|
-
result
|
291
|
-
end
|
292
|
-
|
293
|
-
# returns the number of the first non-empty row
|
294
|
-
def first_row(sheet=nil)
|
295
|
-
if sheet == nil
|
296
|
-
sheet = @default_sheet
|
297
|
-
end
|
298
|
-
read_cells(sheet) unless @cells_read[sheet]
|
299
|
-
if @first_row[sheet]
|
300
|
-
return @first_row[sheet]
|
301
|
-
end
|
302
|
-
impossible_value = 999_999 # more than a spreadsheet can hold
|
303
|
-
result = impossible_value
|
304
|
-
@cell[sheet].each_pair {|key,value|
|
305
|
-
y,x = key.split(',')
|
306
|
-
y = y.to_i
|
307
|
-
result = [result, y].min if value
|
308
|
-
}
|
309
|
-
result = nil if result == impossible_value
|
310
|
-
@first_row[sheet] = result
|
311
|
-
result
|
312
|
-
end
|
313
|
-
|
314
|
-
# returns the number of the first non-empty column
|
315
|
-
def first_column(sheet=nil)
|
316
|
-
if sheet == nil
|
317
|
-
sheet = @default_sheet
|
318
|
-
end
|
319
|
-
read_cells(sheet) unless @cells_read[sheet]
|
320
|
-
if @first_column[sheet]
|
321
|
-
return @first_column[sheet]
|
322
|
-
end
|
323
|
-
impossible_value = 999_999 # more than a spreadsheet can hold
|
324
|
-
result = impossible_value
|
325
|
-
@cell[sheet].each_pair {|key,value|
|
326
|
-
y,x = key.split(',')
|
327
|
-
x = x.to_i
|
328
|
-
result = [result, x].min if value
|
329
|
-
}
|
330
|
-
result = nil if result == impossible_value
|
331
|
-
@first_column[sheet] = result
|
332
|
-
result
|
333
|
-
end
|
334
|
-
|
335
|
-
# first non-empty column as a letter
|
336
|
-
def first_column_as_letter(sheet=nil)
|
337
|
-
Openoffice.number_to_letter(first_column(sheet))
|
338
|
-
end
|
339
|
-
|
340
|
-
# last non-empty column as a letter
|
341
|
-
def last_column_as_letter(sheet=nil)
|
342
|
-
Openoffice.number_to_letter(last_column(sheet))
|
343
|
-
end
|
344
|
-
|
345
|
-
# true if cell is empty
|
346
|
-
def empty?(row, col, sheet=nil)
|
347
|
-
sheet = @default_sheet unless sheet
|
348
|
-
read_cells(sheet) unless @cells_read[sheet]
|
349
|
-
return true unless cell(row, col, sheet)
|
350
|
-
return true if celltype(row, col, sheet) == :string && cell(row, col, sheet).empty?
|
351
|
-
false
|
352
|
-
end
|
353
|
-
|
354
235
|
# save spreadsheet
|
355
236
|
def save #:nodoc:
|
356
237
|
42
|
@@ -387,30 +268,9 @@ class Openoffice
|
|
387
268
|
theformulas
|
388
269
|
end
|
389
270
|
|
390
|
-
# returns a rectangular area (default: all cells) as yaml-output
|
391
|
-
# you can add additional attributes with the prefix parameter like:
|
392
|
-
# oo.to_yaml({"file"=>"flightdata_2007-06-26", "sheet" => "1"})
|
393
|
-
def to_yaml(prefix={}, from_row=nil, from_column=nil, to_row=nil, to_column=nil,sheet=nil)
|
394
|
-
sheet = @default_sheet unless sheet
|
395
|
-
result = "--- \n"
|
396
|
-
(from_row||first_row(sheet)).upto(to_row||last_row(sheet)) do |row|
|
397
|
-
(from_column||first_column(sheet)).upto(to_column||last_column(sheet)) do |col|
|
398
|
-
unless empty?(row,col,sheet)
|
399
|
-
result << "cell_#{row}_#{col}: \n"
|
400
|
-
prefix.each {|k,v|
|
401
|
-
result << " #{k}: #{v} \n"
|
402
|
-
}
|
403
|
-
result << " row: #{row} \n"
|
404
|
-
result << " col: #{col} \n"
|
405
|
-
result << " celltype: #{self.celltype(row,col,sheet)} \n"
|
406
|
-
result << " value: #{self.cell(row,col,sheet)} \n"
|
407
|
-
end
|
408
|
-
end
|
409
|
-
end
|
410
|
-
result
|
411
|
-
end
|
412
|
-
|
413
271
|
# write the current spreadsheet to stdout or into a file
|
272
|
+
#TODO: refactoring --> GenericSpreadsheet
|
273
|
+
|
414
274
|
def to_csv(filename=nil,sheet=nil)
|
415
275
|
sheet = @default_sheet unless sheet
|
416
276
|
if filename
|
@@ -456,7 +316,7 @@ class Openoffice
|
|
456
316
|
tmp[x] = cell(rownum,j)
|
457
317
|
}
|
458
318
|
result = [ tmp ] # row(rownum)
|
459
|
-
|
319
|
+
#-- :all
|
460
320
|
elsif args[0] == :all
|
461
321
|
if args[1].class == Hash
|
462
322
|
args[1].each {|key,val|
|
@@ -502,58 +362,8 @@ class Openoffice
|
|
502
362
|
result
|
503
363
|
end
|
504
364
|
|
505
|
-
|
506
|
-
|
507
|
-
def info
|
508
|
-
result = "File: #{@filename}\n"+
|
509
|
-
"Number of sheets: #{sheets.size}\n"+
|
510
|
-
"Sheets: #{sheets.map{|sheet| sheet+", "}.to_s[0..-3]}\n"
|
511
|
-
n = 1
|
512
|
-
sheets.each {|sheet|
|
513
|
-
self.default_sheet = sheet
|
514
|
-
result << "Sheet " + n.to_s + ":\n"
|
515
|
-
result << " First row: #{first_row}\n"
|
516
|
-
result << " Last row: #{last_row}\n"
|
517
|
-
result << " First column: #{Openoffice.number_to_letter(first_column)}\n"
|
518
|
-
result << " Last column: #{Openoffice.number_to_letter(last_column)}"
|
519
|
-
result << "\n" if sheet != sheets.last
|
520
|
-
n += 1
|
521
|
-
}
|
522
|
-
result
|
523
|
-
end
|
524
|
-
|
525
|
-
private
|
526
|
-
|
527
|
-
def process_zipfile_packed(zip, path='')
|
528
|
-
ret=nil
|
529
|
-
if zip.file.file? path
|
530
|
-
# extract and return filename
|
531
|
-
@tmpdir = "oo_"+$$.to_s
|
532
|
-
unless File.exists?(@tmpdir)
|
533
|
-
FileUtils::mkdir(@tmpdir)
|
534
|
-
end
|
535
|
-
file = File.open(File.join(@tmpdir, path),"wb")
|
536
|
-
file.write(zip.read(path))
|
537
|
-
file.close
|
538
|
-
return File.join(@tmpdir, path)
|
539
|
-
else
|
540
|
-
unless path.empty?
|
541
|
-
path += '/'
|
542
|
-
end
|
543
|
-
zip.dir.foreach(path) do |filename|
|
544
|
-
ret = process_zipfile_packed(zip, path + filename)
|
545
|
-
end
|
546
|
-
end
|
547
|
-
ret
|
548
|
-
end
|
549
|
-
|
550
|
-
def unzip(filename)
|
551
|
-
ret = nil
|
552
|
-
Zip::ZipFile.open(filename) do |zip|
|
553
|
-
ret = process_zipfile_packed zip
|
554
|
-
end
|
555
|
-
ret
|
556
|
-
end
|
365
|
+
|
366
|
+
private
|
557
367
|
|
558
368
|
# read the version of the OO-Version
|
559
369
|
def oo_version
|
@@ -563,6 +373,7 @@ private
|
|
563
373
|
end
|
564
374
|
end
|
565
375
|
|
376
|
+
# helper function to set the internal representation of cells
|
566
377
|
def set_cell_values(sheet,x,y,i,v,vt,formula,tr,str_v)
|
567
378
|
key = "#{y},#{x+i}"
|
568
379
|
@cell_type[sheet] = {} unless @cell_type[sheet]
|
@@ -721,56 +532,12 @@ private
|
|
721
532
|
end
|
722
533
|
end
|
723
534
|
|
724
|
-
|
725
535
|
def extract_content
|
726
536
|
Zip::ZipFile.open(@filename) do |zip|
|
727
537
|
process_zipfile(zip)
|
728
538
|
end
|
729
539
|
end
|
730
540
|
|
731
|
-
# converts cell coordinate to numeric values of row,col
|
732
|
-
def normalize(row,col)
|
733
|
-
if row.class == String
|
734
|
-
if col.class == Fixnum
|
735
|
-
# ('A',1):
|
736
|
-
# ('B', 5) -> (5, 2)
|
737
|
-
row, col = col, row
|
738
|
-
else
|
739
|
-
raise ArgumentError
|
740
|
-
end
|
741
|
-
end
|
742
|
-
if col.class == String
|
743
|
-
col = Openoffice.letter_to_number(col)
|
744
|
-
end
|
745
|
-
return row,col
|
746
|
-
end
|
747
|
-
|
748
|
-
# convert a number to something like this: 'AB'
|
749
|
-
def Openoffice.number_to_letter(n)
|
750
|
-
letters=""
|
751
|
-
while n > 0
|
752
|
-
num = n%26
|
753
|
-
letters = "ABCDEFGHIJKLMNOPQRSTUVWXYZ"[num-1,1] + letters
|
754
|
-
n = n.div(26)
|
755
|
-
end
|
756
|
-
letters
|
757
|
-
end
|
758
|
-
|
759
|
-
# convert letters like 'AB' to a number
|
760
|
-
def Openoffice.letter_to_number(letters)
|
761
|
-
result = 0
|
762
|
-
while letters && letters.length > 0
|
763
|
-
character = letters[0,1].upcase
|
764
|
-
num = "ABCDEFGHIJKLMNOPQRSTUVWXYZ".index(character)
|
765
|
-
raise ArgumentError, "invalid column character '#{letters[0,1]}'" if num == nil
|
766
|
-
num += 1
|
767
|
-
result = result * 26 + num
|
768
|
-
letters = letters[1..-1]
|
769
|
-
end
|
770
|
-
result
|
771
|
-
end
|
772
|
-
|
773
|
-
|
774
541
|
def set_value(row,col,value,sheet=nil)
|
775
542
|
sheet = @default_value unless sheet
|
776
543
|
@cell[sheet]["#{row},#{col}"] = value
|
@@ -792,22 +559,8 @@ private
|
|
792
559
|
return A_ROO_TYPE[ootype]
|
793
560
|
end
|
794
561
|
|
795
|
-
|
796
|
-
|
797
|
-
require 'open-uri' ;
|
798
|
-
tempfilename = File.join(@tmpdir, File.basename(uri))
|
799
|
-
f = File.open(tempfilename,"wb")
|
800
|
-
begin
|
801
|
-
open(uri) do |net|
|
802
|
-
f.write(net.read)
|
803
|
-
end
|
804
|
-
rescue
|
805
|
-
raise "could not open #{uri}"
|
806
|
-
end
|
807
|
-
f.close
|
808
|
-
File.join(@tmpdir, File.basename(uri))
|
809
|
-
end
|
810
|
-
|
562
|
+
|
563
|
+
#TODO: refactoring to GenericSpreadsheet?
|
811
564
|
def write_csv_content(file=nil,sheet=nil)
|
812
565
|
file = STDOUT unless file
|
813
566
|
if first_row # sheet is not empty
|
@@ -823,6 +576,7 @@ private
|
|
823
576
|
end
|
824
577
|
end
|
825
578
|
|
579
|
+
#TODO: refactor to Generic...
|
826
580
|
def one_cell_output(onecelltype,onecell,empty)
|
827
581
|
str = ""
|
828
582
|
if empty
|
data/lib/roo/version.rb
CHANGED
data/test/test_roo.rb
CHANGED
@@ -20,10 +20,13 @@ def local_only
|
|
20
20
|
end
|
21
21
|
|
22
22
|
DISPLAY_LOG = false
|
23
|
-
DB_LOG =
|
23
|
+
DB_LOG = true
|
24
24
|
|
25
25
|
if DB_LOG
|
26
|
-
|
26
|
+
# gem 'activerecord', '< 2.0.0'
|
27
|
+
# require 'activerecord'
|
28
|
+
require_gem 'activerecord', '< 2.0.0'
|
29
|
+
#require 'activerecord'
|
27
30
|
end
|
28
31
|
|
29
32
|
include FileUtils
|
@@ -31,10 +34,10 @@ include FileUtils
|
|
31
34
|
if DB_LOG
|
32
35
|
def activerecord_connect
|
33
36
|
ActiveRecord::Base.establish_connection(:adapter => "mysql",
|
34
|
-
|
35
|
-
|
36
|
-
|
37
|
-
|
37
|
+
:database => "test_runs",
|
38
|
+
:host => "localhost",
|
39
|
+
:username => "root",
|
40
|
+
:socket => "/var/run/mysqld/mysqld.sock")
|
38
41
|
end
|
39
42
|
|
40
43
|
class Testrun < ActiveRecord::Base
|
@@ -42,6 +45,39 @@ if DB_LOG
|
|
42
45
|
end
|
43
46
|
|
44
47
|
class Test::Unit::TestCase
|
48
|
+
def key_of(spreadsheetname)
|
49
|
+
begin
|
50
|
+
return {
|
51
|
+
'numbers1' => "o10837434939102457526.4784396906364855777",
|
52
|
+
'borders' => "o10837434939102457526.664868920231926255",
|
53
|
+
'simple_spreadsheet' => "ptu6bbahNZpYe-L1vEBmgGA",
|
54
|
+
'testnichtvorhandenBibelbund.ods' => "invalidkeyforanyspreadsheet", # !!! intentionally false key
|
55
|
+
"only_one_sheet" => "o10837434939102457526.762705759906130135",
|
56
|
+
"write.me" => 'ptu6bbahNZpY0N0RrxQbWdw&hl',
|
57
|
+
'formula' => 'o10837434939102457526.3022866619437760118',
|
58
|
+
}[spreadsheetname]
|
59
|
+
rescue
|
60
|
+
raise "unknown spreadsheetname: #{spreadsheetname}"
|
61
|
+
end
|
62
|
+
|
63
|
+
if false
|
64
|
+
case spreadsheetname
|
65
|
+
when 'numbers1'
|
66
|
+
return "o10837434939102457526.4784396906364855777"
|
67
|
+
when 'borders'
|
68
|
+
return "o10837434939102457526.664868920231926255"
|
69
|
+
when 'simple_spreadsheet'
|
70
|
+
return "o1087434939102457526.1774445811568867358"
|
71
|
+
when 'testnichtvorhandenBibelbund.ods'
|
72
|
+
return "invalidkeyforanyspreadsheet" # !!! intentionally false key
|
73
|
+
when "only_one_sheet"
|
74
|
+
return "o10837434939102457526.762705759906130135"
|
75
|
+
else
|
76
|
+
raise "unknown spreadsheetname: #{spreadsheetname}"
|
77
|
+
end
|
78
|
+
end # false
|
79
|
+
end
|
80
|
+
|
45
81
|
if DB_LOG
|
46
82
|
if ! (defined?(@connected) and @connected)
|
47
83
|
activerecord_connect
|
@@ -68,10 +104,15 @@ class Test::Unit::TestCase
|
|
68
104
|
# open('test_runs.yml','a') { |f| YAML.dump(record, f) }
|
69
105
|
# #--
|
70
106
|
if DB_LOG
|
71
|
-
|
72
|
-
|
73
|
-
|
74
|
-
|
107
|
+
# p self.class.to_s
|
108
|
+
#p @method_name
|
109
|
+
#p t1
|
110
|
+
#p t2-t1
|
111
|
+
domain = Testrun.create(
|
112
|
+
:class => self.class.to_s,
|
113
|
+
:test => @method_name,
|
114
|
+
:start => t1,
|
115
|
+
:duration => t2-t1
|
75
116
|
)
|
76
117
|
end
|
77
118
|
end
|
@@ -79,14 +120,14 @@ end
|
|
79
120
|
|
80
121
|
class TestRoo < Test::Unit::TestCase
|
81
122
|
|
82
|
-
OPENOFFICE = true
|
83
|
-
EXCEL = true
|
84
|
-
GOOGLE =
|
123
|
+
OPENOFFICE = true # do Openoffice-Spreadsheet Tests?
|
124
|
+
EXCEL = true # do Excel Tests?
|
125
|
+
GOOGLE = true # do Google-Spreadsheet Tests?
|
85
126
|
|
86
127
|
OPENOFFICEWRITE = false # experimental: write access with OO-Documents
|
87
128
|
ONLINE = false
|
88
129
|
LONG_RUN = false
|
89
|
-
GLOBAL_TIMEOUT =
|
130
|
+
GLOBAL_TIMEOUT = 2*12*60 # seconds
|
90
131
|
|
91
132
|
|
92
133
|
# helper method
|
@@ -104,30 +145,59 @@ class TestRoo < Test::Unit::TestCase
|
|
104
145
|
end
|
105
146
|
|
106
147
|
def setup
|
107
|
-
if GOOGLE
|
108
|
-
after Date.new(2007,8,15) do
|
109
|
-
@goo = Google.new(ENV['GOOGLE_MAIL'],
|
110
|
-
ENV['GOOGLE_PASSWORD'],
|
111
|
-
ENV['GOOGLE_KEY'],"Roo Testspreadheet")
|
112
|
-
end
|
113
|
-
end
|
114
148
|
if DISPLAY_LOG
|
115
149
|
puts "GLOBAL_TIMEOUT = #{GLOBAL_TIMEOUT}"
|
116
150
|
end
|
117
151
|
end
|
118
152
|
|
153
|
+
def test_date
|
154
|
+
assert Google.date?("21/11/1962")
|
155
|
+
assert_equal Date.new(1962,11,21), Google.to_date("21/11/1962")
|
156
|
+
|
157
|
+
assert !Google.date?("21")
|
158
|
+
assert_nil Google.to_date("21")
|
159
|
+
|
160
|
+
assert !Google.date?("21/11")
|
161
|
+
assert_nil Google.to_date("21/11")
|
162
|
+
|
163
|
+
assert !Google.date?("Mittwoch/21/1961")
|
164
|
+
assert_nil Google.to_date("Mittwoch/21/1961")
|
165
|
+
end
|
166
|
+
|
167
|
+
def test_classes
|
168
|
+
if OPENOFFICE
|
169
|
+
oo = Openoffice.new(File.join("test","numbers1.ods"))
|
170
|
+
assert_kind_of Openoffice, oo
|
171
|
+
end
|
172
|
+
if EXCEL
|
173
|
+
oo = Excel.new(File.join("test","numbers1.xls"))
|
174
|
+
assert_kind_of Excel, oo
|
175
|
+
end
|
176
|
+
if GOOGLE
|
177
|
+
oo = Google.new(key_of("numbers1"))
|
178
|
+
assert_kind_of Google, oo
|
179
|
+
end
|
180
|
+
end
|
181
|
+
|
119
182
|
def test_letters
|
120
|
-
assert_equal 1,
|
121
|
-
assert_equal 1,
|
122
|
-
assert_equal 2,
|
123
|
-
assert_equal 26,
|
124
|
-
assert_equal 27,
|
125
|
-
assert_equal 27,
|
126
|
-
assert_equal 27,
|
127
|
-
assert_equal 27,
|
183
|
+
assert_equal 1, GenericSpreadsheet.letter_to_number('A')
|
184
|
+
assert_equal 1, GenericSpreadsheet.letter_to_number('a')
|
185
|
+
assert_equal 2, GenericSpreadsheet.letter_to_number('B')
|
186
|
+
assert_equal 26, GenericSpreadsheet.letter_to_number('Z')
|
187
|
+
assert_equal 27, GenericSpreadsheet.letter_to_number('AA')
|
188
|
+
assert_equal 27, GenericSpreadsheet.letter_to_number('aA')
|
189
|
+
assert_equal 27, GenericSpreadsheet.letter_to_number('Aa')
|
190
|
+
assert_equal 27, GenericSpreadsheet.letter_to_number('aa')
|
191
|
+
end
|
192
|
+
|
193
|
+
def DONT_test_simple_google
|
194
|
+
if GOOGLE
|
195
|
+
go = Google.new("egal")
|
196
|
+
assert_equal "42", go.cell(1,1)
|
197
|
+
end
|
128
198
|
end
|
129
199
|
|
130
|
-
def
|
200
|
+
def test_sheets_openoffice
|
131
201
|
if OPENOFFICE
|
132
202
|
oo = Openoffice.new(File.join("test","numbers1.ods"))
|
133
203
|
assert_equal ["Tabelle1","Name of Sheet 2","Sheet3","Sheet4","Sheet5"], oo.sheets
|
@@ -137,7 +207,15 @@ class TestRoo < Test::Unit::TestCase
|
|
137
207
|
assert_raise(TypeError) {
|
138
208
|
oo.default_sheet = [1,2,3]
|
139
209
|
}
|
210
|
+
|
211
|
+
oo.sheets.each { |sh|
|
212
|
+
oo.default_sheet = sh
|
213
|
+
assert_equal sh, oo.default_sheet
|
214
|
+
}
|
140
215
|
end
|
216
|
+
end
|
217
|
+
|
218
|
+
def test_sheets_excel
|
141
219
|
if EXCEL
|
142
220
|
oo = Excel.new(File.join("test","numbers1.xls"))
|
143
221
|
assert_equal ["Tabelle1","Name of Sheet 2","Sheet3","Sheet4","Sheet5"], oo.sheets
|
@@ -147,22 +225,33 @@ class TestRoo < Test::Unit::TestCase
|
|
147
225
|
assert_raise(TypeError) {
|
148
226
|
oo.default_sheet = [1,2,3]
|
149
227
|
}
|
228
|
+
oo.sheets.each { |sh|
|
229
|
+
oo.default_sheet = sh
|
230
|
+
assert_equal sh, oo.default_sheet
|
231
|
+
}
|
150
232
|
end
|
233
|
+
end
|
234
|
+
|
235
|
+
def test_sheets_google
|
151
236
|
if GOOGLE
|
152
|
-
|
153
|
-
|
237
|
+
oo = Google.new(key_of("numbers1"))
|
238
|
+
assert_equal ["Tabelle1","Name of Sheet 2","Sheet3","Sheet4","Sheet5"], oo.sheets
|
239
|
+
after Date.new(2007,12,15) do
|
240
|
+
assert_raise(RangeError) {
|
241
|
+
oo.default_sheet = "no_sheet"
|
242
|
+
}
|
243
|
+
assert_raise(TypeError) {
|
244
|
+
oo.default_sheet = [1,2,3]
|
245
|
+
}
|
154
246
|
end
|
155
|
-
|
156
|
-
|
157
|
-
oo.default_sheet
|
158
|
-
}
|
159
|
-
assert_raise(TypeError) {
|
160
|
-
oo.default_sheet = [1,2,3]
|
247
|
+
oo.sheets.each { |sh|
|
248
|
+
oo.default_sheet = sh
|
249
|
+
assert_equal sh, oo.default_sheet
|
161
250
|
}
|
162
251
|
end
|
163
252
|
end
|
164
253
|
|
165
|
-
def
|
254
|
+
def test_cell_openoffice
|
166
255
|
if OPENOFFICE
|
167
256
|
oo = Openoffice.new(File.join("test","numbers1.ods"))
|
168
257
|
oo.default_sheet = oo.sheets.first
|
@@ -199,7 +288,9 @@ class TestRoo < Test::Unit::TestCase
|
|
199
288
|
assert_equal Date.new(1961,11,21), oo.cell(5,1)
|
200
289
|
assert_equal "1961-11-21", oo.cell(5,1).to_s
|
201
290
|
end
|
291
|
+
end
|
202
292
|
|
293
|
+
def test_cell_excel
|
203
294
|
if EXCEL
|
204
295
|
oo = Excel.new(File.join("test","numbers1.xls"))
|
205
296
|
oo.default_sheet = oo.sheets.first
|
@@ -236,50 +327,44 @@ class TestRoo < Test::Unit::TestCase
|
|
236
327
|
assert_equal Date.new(1961,11,21), oo.cell(5,1)
|
237
328
|
assert_equal "1961-11-21", oo.cell(5,1).to_s
|
238
329
|
end
|
330
|
+
end
|
239
331
|
|
332
|
+
def test_cell_google
|
240
333
|
if GOOGLE
|
241
|
-
|
242
|
-
|
243
|
-
assert_equal
|
244
|
-
assert_equal
|
245
|
-
assert_equal
|
246
|
-
assert_equal
|
247
|
-
assert_equal
|
248
|
-
assert_equal
|
249
|
-
assert_equal
|
250
|
-
assert_equal
|
251
|
-
assert_equal
|
252
|
-
|
253
|
-
assert_equal
|
254
|
-
assert_equal
|
255
|
-
|
256
|
-
|
257
|
-
|
258
|
-
end
|
334
|
+
oo = Google.new(key_of("numbers1"))
|
335
|
+
oo.default_sheet = oo.sheets.first
|
336
|
+
assert_equal 1, oo.cell(1,1)
|
337
|
+
assert_equal 2, oo.cell(1,2)
|
338
|
+
assert_equal 3, oo.cell(1,3)
|
339
|
+
assert_equal 4, oo.cell(1,4)
|
340
|
+
assert_equal 5, oo.cell(2,1)
|
341
|
+
assert_equal 6, oo.cell(2,2)
|
342
|
+
assert_equal 7, oo.cell(2,3)
|
343
|
+
assert_equal 8, oo.cell(2,4)
|
344
|
+
assert_equal 9, oo.cell(2,5)
|
345
|
+
assert_equal "test", oo.cell(2,6)
|
346
|
+
# assert_equal "string", oo.celltype(2,6)
|
347
|
+
assert_equal :string, oo.celltype(2,6)
|
348
|
+
assert_equal 11, oo.cell(2,7)
|
349
|
+
# assert_equal "float", oo.celltype(2,7)
|
350
|
+
assert_equal :float, oo.celltype(2,7), "Inhalt: --#{oo.cell(2,7)}--"
|
259
351
|
|
260
|
-
assert_equal 10,
|
261
|
-
assert_equal 11,
|
262
|
-
assert_equal 12,
|
263
|
-
assert_equal 13,
|
264
|
-
assert_equal 14,
|
265
|
-
|
266
|
-
assert_equal 10,
|
267
|
-
assert_equal 11,
|
268
|
-
assert_equal 12,
|
269
|
-
assert_equal 13,
|
270
|
-
assert_equal 14,
|
271
|
-
|
272
|
-
|
273
|
-
|
274
|
-
|
275
|
-
|
276
|
-
after Date.new(2007,6,15) do
|
277
|
-
assert_equal Date.new(1961,11,21), @goo.cell(5,1)
|
278
|
-
assert_equal "1961-11-21", @goo.cell(5,1).to_s
|
279
|
-
end
|
280
|
-
before Date.new(2007,6,15) do
|
281
|
-
assert_equal "21/11/1961", @goo.cell(5,1)
|
282
|
-
end
|
352
|
+
assert_equal 10, oo.cell(4,1)
|
353
|
+
assert_equal 11, oo.cell(4,2)
|
354
|
+
assert_equal 12, oo.cell(4,3)
|
355
|
+
assert_equal 13, oo.cell(4,4)
|
356
|
+
assert_equal 14, oo.cell(4,5)
|
357
|
+
|
358
|
+
assert_equal 10, oo.cell(4,'A')
|
359
|
+
assert_equal 11, oo.cell(4,'B')
|
360
|
+
assert_equal 12, oo.cell(4,'C')
|
361
|
+
assert_equal 13, oo.cell(4,'D')
|
362
|
+
assert_equal 14, oo.cell(4,'E')
|
363
|
+
|
364
|
+
# assert_equal "date", oo.celltype(5,1)
|
365
|
+
assert_equal :date, oo.celltype(5,1)
|
366
|
+
assert_equal Date.new(1961,11,21), oo.cell(5,1)
|
367
|
+
assert_equal "1961-11-21", oo.cell(5,1).to_s
|
283
368
|
end # GOOGLE
|
284
369
|
end
|
285
370
|
|
@@ -296,7 +381,7 @@ class TestRoo < Test::Unit::TestCase
|
|
296
381
|
assert_equal :string, oo.celltype(2,6)
|
297
382
|
end
|
298
383
|
if GOOGLE
|
299
|
-
oo = Google.new(
|
384
|
+
oo = Google.new(key_of("numbers1"))
|
300
385
|
oo.default_sheet = oo.sheets.first
|
301
386
|
assert_equal :string, oo.celltype(2,6)
|
302
387
|
end
|
@@ -356,21 +441,28 @@ class TestRoo < Test::Unit::TestCase
|
|
356
441
|
end
|
357
442
|
|
358
443
|
if GOOGLE
|
359
|
-
|
360
|
-
|
361
|
-
assert_equal "tata",
|
362
|
-
assert_equal "tata",
|
363
|
-
assert_equal "tata",
|
364
|
-
assert_equal "tata",
|
444
|
+
oo = Google.new(key_of("numbers1"))
|
445
|
+
oo.default_sheet = oo.sheets.first
|
446
|
+
assert_equal "tata", oo.cell(6,1)
|
447
|
+
assert_equal "tata", oo.cell(6,'A')
|
448
|
+
assert_equal "tata", oo.cell('A',6)
|
449
|
+
assert_equal "tata", oo.cell(6,'a')
|
450
|
+
assert_equal "tata", oo.cell('a',6)
|
365
451
|
|
366
|
-
|
367
|
-
|
368
|
-
|
369
|
-
|
370
|
-
|
452
|
+
assert_raise(ArgumentError) {
|
453
|
+
assert_equal "tata", oo.cell('a','f')
|
454
|
+
}
|
455
|
+
assert_raise(ArgumentError) {
|
456
|
+
assert_equal "tata", oo.cell('f','a')
|
457
|
+
}
|
458
|
+
assert_equal "thisisc8", oo.cell(8,3)
|
459
|
+
assert_equal "thisisc8", oo.cell(8,'C')
|
460
|
+
assert_equal "thisisc8", oo.cell('C',8)
|
461
|
+
assert_equal "thisisc8", oo.cell(8,'c')
|
462
|
+
assert_equal "thisisc8", oo.cell('c',8)
|
371
463
|
|
372
|
-
assert_equal "thisisd9",
|
373
|
-
assert_equal "thisisa11",
|
464
|
+
assert_equal "thisisd9", oo.cell('d',9)
|
465
|
+
assert_equal "thisisa11", oo.cell('a',11)
|
374
466
|
end
|
375
467
|
end
|
376
468
|
|
@@ -383,17 +475,14 @@ class TestRoo < Test::Unit::TestCase
|
|
383
475
|
if EXCEL
|
384
476
|
# excel does not have a officeversion
|
385
477
|
end
|
386
|
-
#-- Google
|
387
478
|
if GOOGLE
|
388
|
-
|
389
|
-
assert_equal "1.0", @goo.officeversion
|
390
|
-
end
|
479
|
+
# google does not have a officeversion
|
391
480
|
end
|
392
481
|
end
|
393
482
|
|
483
|
+
#TODO: inkonsequente Lieferung Fixnum/Float
|
394
484
|
def test_rows
|
395
485
|
if OPENOFFICE
|
396
|
-
#-- OpenOffice
|
397
486
|
oo = Openoffice.new(File.join("test","numbers1.ods"))
|
398
487
|
oo.default_sheet = oo.sheets.first
|
399
488
|
assert_equal 41, oo.cell('a',12)
|
@@ -425,34 +514,30 @@ class TestRoo < Test::Unit::TestCase
|
|
425
514
|
assert_equal "vierundvierzig", oo.cell('d',16)
|
426
515
|
assert_equal "fuenfundvierzig", oo.cell('e',16)
|
427
516
|
assert_equal ["einundvierzig",
|
428
|
-
|
429
|
-
|
430
|
-
|
431
|
-
|
517
|
+
"zweiundvierzig",
|
518
|
+
"dreiundvierzig",
|
519
|
+
"vierundvierzig",
|
520
|
+
"fuenfundvierzig"], oo.row(16)
|
432
521
|
end
|
433
|
-
|
434
|
-
|
435
|
-
|
436
|
-
|
437
|
-
|
438
|
-
|
439
|
-
|
440
|
-
|
441
|
-
|
442
|
-
|
443
|
-
|
444
|
-
|
445
|
-
|
446
|
-
|
447
|
-
|
448
|
-
assert_equal "fuenfundvierzig", oo.cell('e',16)
|
449
|
-
assert_equal "xxxfuenfundvierzig", oo.cell('e',16)
|
450
|
-
assert_equal ["einundvierzig",
|
522
|
+
if GOOGLE
|
523
|
+
oo = Google.new(key_of("numbers1"))
|
524
|
+
oo.default_sheet = oo.sheets.first
|
525
|
+
assert_equal 41, oo.cell('a',12)
|
526
|
+
assert_equal 42, oo.cell('b',12)
|
527
|
+
assert_equal 43, oo.cell('c',12)
|
528
|
+
assert_equal 44, oo.cell('d',12)
|
529
|
+
assert_equal 45, oo.cell('e',12)
|
530
|
+
assert_equal [41,42,43,44,45], oo.row(12)
|
531
|
+
assert_equal "einundvierzig", oo.cell('a',16)
|
532
|
+
assert_equal "zweiundvierzig", oo.cell('b',16)
|
533
|
+
assert_equal "dreiundvierzig", oo.cell('c',16)
|
534
|
+
assert_equal "vierundvierzig", oo.cell('d',16)
|
535
|
+
assert_equal "fuenfundvierzig", oo.cell('e',16)
|
536
|
+
assert_equal ["einundvierzig",
|
451
537
|
"zweiundvierzig",
|
452
538
|
"dreiundvierzig",
|
453
539
|
"vierundvierzig",
|
454
540
|
"fuenfundvierzig"], oo.row(16)
|
455
|
-
end
|
456
541
|
end
|
457
542
|
end
|
458
543
|
|
@@ -468,9 +553,9 @@ class TestRoo < Test::Unit::TestCase
|
|
468
553
|
assert_equal 18, oo.last_row
|
469
554
|
end
|
470
555
|
if GOOGLE
|
471
|
-
|
472
|
-
|
473
|
-
assert_equal
|
556
|
+
oo = Google.new(key_of("numbers1"))
|
557
|
+
oo.default_sheet = oo.sheets.first
|
558
|
+
assert_equal 18, oo.last_row
|
474
559
|
end
|
475
560
|
end
|
476
561
|
|
@@ -487,17 +572,18 @@ class TestRoo < Test::Unit::TestCase
|
|
487
572
|
assert_equal 7, oo.last_column
|
488
573
|
end
|
489
574
|
if GOOGLE
|
490
|
-
|
491
|
-
|
492
|
-
assert_equal 7,
|
575
|
+
oo = Google.new(key_of("numbers1"))
|
576
|
+
oo.default_sheet = oo.sheets.first
|
577
|
+
assert_equal 7, oo.last_column
|
493
578
|
end
|
494
579
|
end
|
495
580
|
|
496
581
|
def test_last_column_as_letter
|
497
|
-
|
498
|
-
|
499
|
-
|
500
|
-
|
582
|
+
if OPENOFFICE
|
583
|
+
oo = Openoffice.new(File.join("test","numbers1.ods"))
|
584
|
+
oo.default_sheet = oo.sheets.first
|
585
|
+
assert_equal 'G', oo.last_column_as_letter
|
586
|
+
end
|
501
587
|
if EXCEL
|
502
588
|
#-- Excel
|
503
589
|
oo = Excel.new(File.join("test","numbers1.xls"))
|
@@ -505,17 +591,18 @@ class TestRoo < Test::Unit::TestCase
|
|
505
591
|
assert_equal 'G', oo.last_column_as_letter
|
506
592
|
end
|
507
593
|
if GOOGLE
|
508
|
-
|
509
|
-
|
510
|
-
assert_equal 'G',
|
594
|
+
oo = Google.new(key_of("numbers1"))
|
595
|
+
oo.default_sheet = oo.sheets.first
|
596
|
+
assert_equal 'G', oo.last_column_as_letter
|
511
597
|
end
|
512
598
|
end
|
513
599
|
|
514
600
|
def test_first_row
|
515
|
-
|
516
|
-
|
517
|
-
|
518
|
-
|
601
|
+
if OPENOFFICE
|
602
|
+
oo = Openoffice.new(File.join("test","numbers1.ods"))
|
603
|
+
oo.default_sheet = oo.sheets.first
|
604
|
+
assert_equal 1, oo.first_row
|
605
|
+
end
|
519
606
|
if EXCEL
|
520
607
|
#-- Excel
|
521
608
|
oo = Excel.new(File.join("test","numbers1.xls"))
|
@@ -523,17 +610,18 @@ class TestRoo < Test::Unit::TestCase
|
|
523
610
|
assert_equal 1, oo.first_row
|
524
611
|
end
|
525
612
|
if GOOGLE
|
526
|
-
|
527
|
-
|
528
|
-
assert_equal 1,
|
613
|
+
oo = Google.new(key_of("numbers1"))
|
614
|
+
oo.default_sheet = oo.sheets.first
|
615
|
+
assert_equal 1, oo.first_row
|
529
616
|
end
|
530
617
|
end
|
531
618
|
|
532
619
|
def test_first_column
|
533
|
-
|
534
|
-
|
535
|
-
|
536
|
-
|
620
|
+
if OPENOFFICE
|
621
|
+
oo = Openoffice.new(File.join("test","numbers1.ods"))
|
622
|
+
oo.default_sheet = oo.sheets.first
|
623
|
+
assert_equal 1, oo.first_column
|
624
|
+
end
|
537
625
|
if EXCEL
|
538
626
|
#-- Excel
|
539
627
|
oo = Excel.new(File.join("test","numbers1.xls"))
|
@@ -541,37 +629,43 @@ class TestRoo < Test::Unit::TestCase
|
|
541
629
|
assert_equal 1, oo.first_column
|
542
630
|
end
|
543
631
|
if GOOGLE
|
544
|
-
|
545
|
-
|
546
|
-
|
632
|
+
assert_nothing_raised(Timeout::Error) {
|
633
|
+
Timeout::timeout(GLOBAL_TIMEOUT) do |timeout_length|
|
634
|
+
oo = Google.new(key_of("numbers1"))
|
635
|
+
oo.default_sheet = oo.sheets.first
|
636
|
+
assert_equal 1, oo.first_column
|
637
|
+
end
|
638
|
+
}
|
547
639
|
end
|
548
640
|
end
|
549
641
|
|
550
642
|
def test_first_column_as_letter_openoffice
|
551
|
-
if OPENOFFICE
|
643
|
+
if OPENOFFICE
|
552
644
|
oo = Openoffice.new(File.join("test","numbers1.ods"))
|
553
645
|
oo.default_sheet = oo.sheets.first
|
554
646
|
assert_equal 'A', oo.first_column_as_letter
|
555
647
|
end
|
556
648
|
end
|
557
649
|
|
558
|
-
def
|
650
|
+
def test_first_column_as_letter_excel
|
559
651
|
if EXCEL
|
560
652
|
#-- Excel
|
561
653
|
oo = Excel.new(File.join("test","numbers1.xls"))
|
562
654
|
oo.default_sheet = 1 # oo.sheets.first
|
563
655
|
assert_equal 'A', oo.first_column_as_letter
|
564
656
|
end
|
657
|
+
end
|
658
|
+
|
659
|
+
def test_first_column_as_letter_google
|
565
660
|
if GOOGLE
|
566
|
-
|
567
|
-
|
568
|
-
assert_equal 'A',
|
661
|
+
oo = Google.new(key_of("numbers1"))
|
662
|
+
oo.default_sheet = oo.sheets.first
|
663
|
+
assert_equal 'A', oo.first_column_as_letter
|
569
664
|
end
|
570
665
|
end
|
571
666
|
|
572
667
|
def test_sheetname
|
573
668
|
if OPENOFFICE
|
574
|
-
#-- OpenOffice
|
575
669
|
oo = Openoffice.new(File.join("test","numbers1.ods"))
|
576
670
|
oo.default_sheet = "Name of Sheet 2"
|
577
671
|
assert_equal 'I am sheet 2', oo.cell('C',5)
|
@@ -581,6 +675,11 @@ class TestRoo < Test::Unit::TestCase
|
|
581
675
|
oo.default_sheet = "Name of Sheet 2"
|
582
676
|
assert_equal 'I am sheet 2', oo.cell('C',5)
|
583
677
|
end
|
678
|
+
if GOOGLE
|
679
|
+
oo = Google.new(key_of("numbers1"))
|
680
|
+
oo.default_sheet = "Name of Sheet 2"
|
681
|
+
assert_equal 'I am sheet 2', oo.cell('C',5)
|
682
|
+
end
|
584
683
|
end
|
585
684
|
|
586
685
|
def test_boundaries
|
@@ -640,13 +739,11 @@ class TestRoo < Test::Unit::TestCase
|
|
640
739
|
oo.default_sheet = "Tabelle1"
|
641
740
|
}
|
642
741
|
end
|
643
|
-
after Date.new(2007,7,20) do
|
644
742
|
assert_nothing_raised(ArgumentError) {
|
645
743
|
# oo.default_sheet = 1
|
646
744
|
#oo.default_sheet = "first sheet"
|
647
745
|
oo.default_sheet = "Tabelle1"
|
648
746
|
}
|
649
|
-
end
|
650
747
|
end
|
651
748
|
end
|
652
749
|
|
@@ -671,9 +768,9 @@ class TestRoo < Test::Unit::TestCase
|
|
671
768
|
def test_writeopenoffice
|
672
769
|
if OPENOFFICEWRITE
|
673
770
|
File.cp(File.join("test","numbers1.ods"),
|
674
|
-
|
771
|
+
File.join("test","numbers2.ods"))
|
675
772
|
File.cp(File.join("test","numbers2.ods"),
|
676
|
-
|
773
|
+
File.join("test","bak_numbers2.ods"))
|
677
774
|
oo = Openoffice.new(File.join("test","numbers2.ods"))
|
678
775
|
oo.default_sheet = oo.sheets.first
|
679
776
|
oo.first_row.upto(oo.last_row) {|y|
|
@@ -701,7 +798,7 @@ class TestRoo < Test::Unit::TestCase
|
|
701
798
|
assert_equal oo2.cell('e',2)+7, oo1.cell('e',2)
|
702
799
|
|
703
800
|
File.cp(File.join("test","bak_numbers2.ods"),
|
704
|
-
|
801
|
+
File.join("test","numbers2.ods"))
|
705
802
|
end
|
706
803
|
end
|
707
804
|
|
@@ -734,23 +831,29 @@ class TestRoo < Test::Unit::TestCase
|
|
734
831
|
assert_equal 10, oo.cell('d',1)
|
735
832
|
assert_equal 10, oo.cell('e',1)
|
736
833
|
end
|
737
|
-
if EXCEL
|
738
|
-
|
739
|
-
|
740
|
-
|
741
|
-
|
742
|
-
|
743
|
-
|
744
|
-
|
745
|
-
|
746
|
-
|
747
|
-
|
748
|
-
|
749
|
-
|
750
|
-
|
751
|
-
|
752
|
-
|
753
|
-
|
834
|
+
#if EXCEL
|
835
|
+
# # dieser Test ist fuer Excel sheets eigentlich nicht noetig,
|
836
|
+
# # da der Bug nur bei OO-Dokumenten auftrat
|
837
|
+
# oo = Excel.new(File.join("test","numbers1.xls"))
|
838
|
+
# oo.default_sheet = 4
|
839
|
+
# assert_equal Date.new(2007,06,16), oo.cell('a',1)
|
840
|
+
# assert_equal 10, oo.cell('b',1)
|
841
|
+
# assert_equal 10, oo.cell('c',1)
|
842
|
+
# assert_equal 10, oo.cell('d',1)
|
843
|
+
# assert_equal 10, oo.cell('e',1)
|
844
|
+
#end
|
845
|
+
#if GOOGLE
|
846
|
+
# # dieser Test ist fuer Google sheets eigentlich nicht noetig,
|
847
|
+
# # da der Bug nur bei OO-Dokumenten auftrat
|
848
|
+
# oo = Google.new(key_of("numbers1"))
|
849
|
+
# #oo.sheetlist # TODO: refactor me!
|
850
|
+
# oo.default_sheet = "Sheet4"
|
851
|
+
# assert_equal Date.new(2007,06,16), oo.cell('a',1)
|
852
|
+
# assert_equal 10, oo.cell('b',1)
|
853
|
+
# assert_equal 10, oo.cell('c',1)
|
854
|
+
# assert_equal 10, oo.cell('d',1)
|
855
|
+
# assert_equal 10, oo.cell('e',1)
|
856
|
+
#end
|
754
857
|
end
|
755
858
|
|
756
859
|
def test_bug_italo_ve
|
@@ -772,26 +875,15 @@ class TestRoo < Test::Unit::TestCase
|
|
772
875
|
assert_equal 2, oo.cell('a',2)
|
773
876
|
assert_equal 3, oo.cell('a',3)
|
774
877
|
end
|
775
|
-
|
776
|
-
|
777
|
-
|
778
|
-
|
779
|
-
|
780
|
-
|
781
|
-
|
782
|
-
|
783
|
-
|
784
|
-
unless oo.empty?(row,col)
|
785
|
-
count += 1
|
786
|
-
a = oo.cell(row,col)
|
787
|
-
# puts a
|
788
|
-
# b = gets
|
789
|
-
end
|
790
|
-
end
|
791
|
-
end
|
792
|
-
puts count.to_s+" cells with content"
|
793
|
-
end
|
794
|
-
|
878
|
+
#if GOOGLE
|
879
|
+
# oo = Google.new(key_of("numbers1"))
|
880
|
+
# oo.default_sheet = "Sheet5"
|
881
|
+
# assert_equal 1, oo.cell('A',1)
|
882
|
+
# assert_equal 5, oo.cell('b',1)
|
883
|
+
# assert_equal 5, oo.cell('c',1)
|
884
|
+
# assert_equal 2, oo.cell('a',2)
|
885
|
+
# assert_equal 3, oo.cell('a',3)
|
886
|
+
#end
|
795
887
|
end
|
796
888
|
|
797
889
|
def test_italo_table
|
@@ -946,9 +1038,9 @@ class TestRoo < Test::Unit::TestCase
|
|
946
1038
|
assert_equal "=[Sheet2.A1]", oo.formula('C',7)
|
947
1039
|
assert_nil oo.formula('A',6)
|
948
1040
|
assert_equal [[7, 1, "=SUM([.A1:.A6])"],
|
949
|
-
|
950
|
-
|
951
|
-
|
1041
|
+
[7, 2, "=SUM([.$A$1:.B6])"],
|
1042
|
+
[7, 3, "=[Sheet2.A1]"],
|
1043
|
+
[8, 2, "=SUM([.$A$1:.B7])"],
|
952
1044
|
], oo.formulas(oo.sheets.first)
|
953
1045
|
|
954
1046
|
after Date.new(2007,6,25) do
|
@@ -960,9 +1052,6 @@ class TestRoo < Test::Unit::TestCase
|
|
960
1052
|
oo.set('A',17, 42.5)
|
961
1053
|
assert_equal 42.5, oo.cell('A',17)
|
962
1054
|
end
|
963
|
-
#after Date.new(2007,7,30) do
|
964
|
-
# assert_equal 21, oo.solve('a',7)
|
965
|
-
#end
|
966
1055
|
end
|
967
1056
|
if defined? excel_supports_formulas
|
968
1057
|
if EXCEL
|
@@ -979,9 +1068,9 @@ class TestRoo < Test::Unit::TestCase
|
|
979
1068
|
assert_equal " = [Sheet2.A1]", oo.formula('C',7)
|
980
1069
|
assert_nil oo.formula('A',6)
|
981
1070
|
assert_equal [[7, 1, " = SUM([.A1:.A6])"],
|
982
|
-
|
983
|
-
|
984
|
-
|
1071
|
+
[7, 2, " = SUM([.$A$1:.B6])"],
|
1072
|
+
[7, 3, " = [Sheet2.A1]"],
|
1073
|
+
[8, 2, " = SUM([.$A$1:.B7])"],
|
985
1074
|
], oo.formulas
|
986
1075
|
|
987
1076
|
after Date.new(2007,6,25) do
|
@@ -993,16 +1082,41 @@ class TestRoo < Test::Unit::TestCase
|
|
993
1082
|
oo.set('A',17, 42.5)
|
994
1083
|
assert_equal 42.5, oo.cell('A',17)
|
995
1084
|
end
|
996
|
-
#after Date.new(2007,7,30) do
|
997
|
-
# assert_equal 21, oo.solve('a',7)
|
998
|
-
#end
|
999
1085
|
|
1000
1086
|
end
|
1001
1087
|
end
|
1088
|
+
if GOOGLE
|
1089
|
+
oo = Google.new(key_of("formula"))
|
1090
|
+
oo.default_sheet = oo.sheets.first
|
1091
|
+
assert_equal 1, oo.cell('A',1)
|
1092
|
+
assert_equal 2, oo.cell('A',2)
|
1093
|
+
assert_equal 3, oo.cell('A',3)
|
1094
|
+
assert_equal 4, oo.cell('A',4)
|
1095
|
+
assert_equal 5, oo.cell('A',5)
|
1096
|
+
assert_equal 6, oo.cell('A',6)
|
1097
|
+
# assert_equal 21, oo.cell('A',7)
|
1098
|
+
assert_equal 21.0, oo.cell('A',7) #TODO: better solution Fixnum/Float
|
1099
|
+
assert_equal :formula, oo.celltype('A',7)
|
1100
|
+
# assert_equal "=[Sheet2.A1]", oo.formula('C',7)
|
1101
|
+
# !!! different from formulas in Openoffice
|
1102
|
+
assert_equal "=sheet2!R[-6]C[-2]", oo.formula('C',7)
|
1103
|
+
assert_nil oo.formula('A',6)
|
1104
|
+
# assert_equal [[7, 1, "=SUM([.A1:.A6])"],
|
1105
|
+
# [7, 2, "=SUM([.$A$1:.B6])"],
|
1106
|
+
# [7, 3, "=[Sheet2.A1]"],
|
1107
|
+
# [8, 2, "=SUM([.$A$1:.B7])"],
|
1108
|
+
# ], oo.formulas(oo.sheets.first)
|
1109
|
+
# different format than in openoffice spreadsheets:
|
1110
|
+
assert_equal [[7, 1, "=SUM(R[-6]C[0]:R[-1]C[0])"],
|
1111
|
+
[7, 2, "=SUM(R1C1:R[-1]C[0])"],
|
1112
|
+
[7, 3, "=sheet2!R[-6]C[-2]"],
|
1113
|
+
[8, 2, "=SUM(R1C1:R[-1]C[0])"]],
|
1114
|
+
oo.formulas(oo.sheets.first)
|
1115
|
+
end # GOOGLE
|
1002
1116
|
end
|
1003
1117
|
|
1004
1118
|
|
1005
|
-
def
|
1119
|
+
def test_borders_sheets_openoffice
|
1006
1120
|
if OPENOFFICE
|
1007
1121
|
oo = Openoffice.new(File.join("test","borders.ods"))
|
1008
1122
|
oo.default_sheet = oo.sheets[1]
|
@@ -1023,6 +1137,8 @@ class TestRoo < Test::Unit::TestCase
|
|
1023
1137
|
assert_equal 5, oo.first_column
|
1024
1138
|
assert_equal 9, oo.last_column
|
1025
1139
|
end
|
1140
|
+
end
|
1141
|
+
def test_borders_sheets_excel
|
1026
1142
|
if EXCEL
|
1027
1143
|
oo = Excel.new(File.join("test","borders.xls"))
|
1028
1144
|
oo.default_sheet = oo.sheets[1]
|
@@ -1043,7 +1159,37 @@ class TestRoo < Test::Unit::TestCase
|
|
1043
1159
|
assert_equal 5, oo.first_column
|
1044
1160
|
assert_equal 9, oo.last_column
|
1045
1161
|
end
|
1162
|
+
end
|
1046
1163
|
|
1164
|
+
def test_borders_sheets_google
|
1165
|
+
if GOOGLE
|
1166
|
+
assert_nothing_raised(Timeout::Error) {
|
1167
|
+
Timeout::timeout(GLOBAL_TIMEOUT) do |timeout_length|
|
1168
|
+
oo = Google.new(key_of("borders"))
|
1169
|
+
oo.default_sheet = oo.sheets[0]
|
1170
|
+
assert_equal oo.sheets.first, oo.default_sheet
|
1171
|
+
assert_equal 5, oo.first_row
|
1172
|
+
oo.default_sheet = oo.sheets[1]
|
1173
|
+
assert_equal 'Sheet2', oo.default_sheet
|
1174
|
+
assert_equal 6, oo.first_row
|
1175
|
+
assert_equal 11, oo.last_row
|
1176
|
+
assert_equal 4, oo.first_column
|
1177
|
+
assert_equal 8, oo.last_column
|
1178
|
+
|
1179
|
+
oo.default_sheet = oo.sheets.first
|
1180
|
+
assert_equal 5, oo.first_row
|
1181
|
+
assert_equal 10, oo.last_row
|
1182
|
+
assert_equal 3, oo.first_column
|
1183
|
+
assert_equal 7, oo.last_column
|
1184
|
+
|
1185
|
+
oo.default_sheet = oo.sheets[2]
|
1186
|
+
assert_equal 7, oo.first_row
|
1187
|
+
assert_equal 12, oo.last_row
|
1188
|
+
assert_equal 5, oo.first_column
|
1189
|
+
assert_equal 9, oo.last_column
|
1190
|
+
end
|
1191
|
+
}
|
1192
|
+
end
|
1047
1193
|
end
|
1048
1194
|
|
1049
1195
|
def yaml_entry(row,col,type,value)
|
@@ -1058,19 +1204,19 @@ class TestRoo < Test::Unit::TestCase
|
|
1058
1204
|
assert_equal "--- \n"+yaml_entry(8,3,"string","thisisc8"), oo.to_yaml({}, 8,3,8,3)
|
1059
1205
|
assert_equal "--- \n"+yaml_entry(12,3,"float",43.0), oo.to_yaml({}, 12,3,12,3)
|
1060
1206
|
assert_equal \
|
1061
|
-
|
1062
|
-
|
1063
|
-
|
1207
|
+
"--- \n"+yaml_entry(12,3,"float",43.0) +
|
1208
|
+
yaml_entry(12,4,"float",44.0) +
|
1209
|
+
yaml_entry(12,5,"float",45.0), oo.to_yaml({}, 12,3,12)
|
1064
1210
|
assert_equal \
|
1065
|
-
|
1066
|
-
|
1067
|
-
|
1068
|
-
|
1069
|
-
|
1070
|
-
|
1071
|
-
|
1072
|
-
|
1073
|
-
|
1211
|
+
"--- \n"+yaml_entry(12,3,"float",43.0)+
|
1212
|
+
yaml_entry(12,4,"float",44.0)+
|
1213
|
+
yaml_entry(12,5,"float",45.0)+
|
1214
|
+
yaml_entry(15,3,"float",43.0)+
|
1215
|
+
yaml_entry(15,4,"float",44.0)+
|
1216
|
+
yaml_entry(15,5,"float",45.0)+
|
1217
|
+
yaml_entry(16,3,"string","dreiundvierzig")+
|
1218
|
+
yaml_entry(16,4,"string","vierundvierzig")+
|
1219
|
+
yaml_entry(16,5,"string","fuenfundvierzig"), oo.to_yaml({}, 12,3)
|
1074
1220
|
#example: puts oo.to_yaml({}, 12,3)
|
1075
1221
|
#example: puts oo.to_yaml({"probe" => "bodenproben_2007-06-30"}, 12,3)
|
1076
1222
|
end
|
@@ -1081,19 +1227,42 @@ class TestRoo < Test::Unit::TestCase
|
|
1081
1227
|
assert_equal "--- \n"+yaml_entry(8,3,"string","thisisc8"), oo.to_yaml({}, 8,3,8,3)
|
1082
1228
|
assert_equal "--- \n"+yaml_entry(12,3,"float",43.0), oo.to_yaml({}, 12,3,12,3)
|
1083
1229
|
assert_equal \
|
1084
|
-
|
1085
|
-
|
1086
|
-
|
1230
|
+
"--- \n"+yaml_entry(12,3,"float",43.0) +
|
1231
|
+
yaml_entry(12,4,"float",44.0) +
|
1232
|
+
yaml_entry(12,5,"float",45.0), oo.to_yaml({}, 12,3,12)
|
1233
|
+
assert_equal \
|
1234
|
+
"--- \n"+yaml_entry(12,3,"float",43.0)+
|
1235
|
+
yaml_entry(12,4,"float",44.0)+
|
1236
|
+
yaml_entry(12,5,"float",45.0)+
|
1237
|
+
yaml_entry(15,3,"float",43.0)+
|
1238
|
+
yaml_entry(15,4,"float",44.0)+
|
1239
|
+
yaml_entry(15,5,"float",45.0)+
|
1240
|
+
yaml_entry(16,3,"string","dreiundvierzig")+
|
1241
|
+
yaml_entry(16,4,"string","vierundvierzig")+
|
1242
|
+
yaml_entry(16,5,"string","fuenfundvierzig"), oo.to_yaml({}, 12,3)
|
1243
|
+
end
|
1244
|
+
if GOOGLE
|
1245
|
+
oo = Google.new(key_of("numbers1"))
|
1246
|
+
oo.default_sheet = oo.sheets.first
|
1247
|
+
assert_equal "--- \n"+yaml_entry(5,1,"date","1961-11-21"), oo.to_yaml({}, 5,1,5,1)
|
1248
|
+
assert_equal "--- \n"+yaml_entry(8,3,"string","thisisc8"), oo.to_yaml({}, 8,3,8,3)
|
1249
|
+
assert_equal "--- \n"+yaml_entry(12,3,"float",43.0), oo.to_yaml({}, 12,3,12,3)
|
1250
|
+
assert_equal \
|
1251
|
+
"--- \n"+yaml_entry(12,3,"float",43.0) +
|
1252
|
+
yaml_entry(12,4,"float",44.0) +
|
1253
|
+
yaml_entry(12,5,"float",45.0), oo.to_yaml({}, 12,3,12)
|
1087
1254
|
assert_equal \
|
1088
|
-
|
1089
|
-
|
1090
|
-
|
1091
|
-
|
1092
|
-
|
1093
|
-
|
1094
|
-
|
1095
|
-
|
1096
|
-
|
1255
|
+
"--- \n"+yaml_entry(12,3,"float",43.0)+
|
1256
|
+
yaml_entry(12,4,"float",44.0)+
|
1257
|
+
yaml_entry(12,5,"float",45.0)+
|
1258
|
+
yaml_entry(15,3,"float",43.0)+
|
1259
|
+
yaml_entry(15,4,"float",44.0)+
|
1260
|
+
yaml_entry(15,5,"float",45.0)+
|
1261
|
+
yaml_entry(16,3,"string","dreiundvierzig")+
|
1262
|
+
yaml_entry(16,4,"string","vierundvierzig")+
|
1263
|
+
yaml_entry(16,5,"string","fuenfundvierzig"), oo.to_yaml({}, 12,3)
|
1264
|
+
#example: puts oo.to_yaml({}, 12,3)
|
1265
|
+
#example: puts oo.to_yaml({"probe" => "bodenproben_2007-06-30"}, 12,3)
|
1097
1266
|
end
|
1098
1267
|
end
|
1099
1268
|
|
@@ -1238,111 +1407,127 @@ class TestRoo < Test::Unit::TestCase
|
|
1238
1407
|
assert_equal 44, oo.cell('D',4)
|
1239
1408
|
end
|
1240
1409
|
if GOOGLE
|
1241
|
-
|
1242
|
-
|
1243
|
-
|
1410
|
+
oo = Google.new(key_of("only_one_sheet"))
|
1411
|
+
# oo.default_sheet = oo.sheets.first
|
1412
|
+
assert_equal 42, oo.cell('B',4)
|
1413
|
+
assert_equal 43, oo.cell('C',4)
|
1414
|
+
assert_equal 44, oo.cell('D',4)
|
1415
|
+
oo.default_sheet = oo.sheets.first
|
1416
|
+
assert_equal 42, oo.cell('B',4)
|
1417
|
+
assert_equal 43, oo.cell('C',4)
|
1418
|
+
assert_equal 44, oo.cell('D',4)
|
1244
1419
|
end
|
1245
1420
|
|
1246
1421
|
end
|
1247
1422
|
|
1248
1423
|
def test_excel_open_from_uri_and_zipped
|
1249
|
-
if
|
1250
|
-
|
1251
|
-
|
1252
|
-
|
1253
|
-
|
1424
|
+
if EXCEL
|
1425
|
+
if ONLINE
|
1426
|
+
url = 'http://stiny-leonhard.de/bode-v1.xls.zip'
|
1427
|
+
excel = Excel.new(url, :zip)
|
1428
|
+
assert_equal 'ist "e" im Nenner von H(s)', excel.cell('b', 5)
|
1429
|
+
excel.remove_tmp # don't forget to remove the temporary files
|
1430
|
+
end
|
1254
1431
|
end
|
1255
1432
|
end
|
1256
1433
|
|
1257
1434
|
def test_openoffice_open_from_uri_and_zipped
|
1258
|
-
if
|
1259
|
-
|
1260
|
-
|
1261
|
-
|
1262
|
-
|
1263
|
-
|
1435
|
+
if OPENOFFICE
|
1436
|
+
if ONLINE
|
1437
|
+
url = 'http://spazioinwind.libero.it/s2/rata.ods.zip'
|
1438
|
+
sheet = Openoffice.new(url, :zip)
|
1439
|
+
#has been changed: assert_equal 'ist "e" im Nenner von H(s)', sheet.cell('b', 5)
|
1440
|
+
assert_in_delta 0.001, 505.14, sheet.cell('c', 33).to_f
|
1441
|
+
sheet.remove_tmp # don't forget to remove the temporary files
|
1442
|
+
end
|
1264
1443
|
end
|
1265
1444
|
end
|
1266
1445
|
|
1267
1446
|
def test_excel_zipped
|
1268
|
-
|
1269
|
-
|
1270
|
-
|
1271
|
-
|
1447
|
+
if EXCEL
|
1448
|
+
excel = Excel.new(File.join("test","bode-v1.xls.zip"), :zip)
|
1449
|
+
assert excel
|
1450
|
+
assert_equal 'ist "e" im Nenner von H(s)', excel.cell('b', 5)
|
1451
|
+
excel.remove_tmp # don't forget to remove the temporary files
|
1452
|
+
end
|
1272
1453
|
end
|
1273
1454
|
|
1274
1455
|
def test_openoffice_zipped
|
1275
|
-
|
1276
|
-
|
1277
|
-
|
1278
|
-
|
1279
|
-
|
1456
|
+
if OPENOFFICE
|
1457
|
+
oo = Openoffice.new(File.join("test","bode-v1.ods.zip"), :zip)
|
1458
|
+
assert oo
|
1459
|
+
oo.default_sheet = oo.sheets.first
|
1460
|
+
assert_equal 'ist "e" im Nenner von H(s)', oo.cell('b', 5)
|
1461
|
+
oo.remove_tmp # don't forget to remove the temporary files
|
1462
|
+
end
|
1280
1463
|
end
|
1281
1464
|
|
1282
1465
|
def test_bug_ric
|
1283
|
-
|
1284
|
-
|
1285
|
-
|
1286
|
-
|
1287
|
-
|
1288
|
-
|
1289
|
-
|
1290
|
-
|
1291
|
-
|
1292
|
-
|
1293
|
-
|
1294
|
-
|
1295
|
-
|
1296
|
-
|
1297
|
-
|
1298
|
-
|
1299
|
-
|
1300
|
-
|
1301
|
-
|
1302
|
-
|
1303
|
-
|
1304
|
-
|
1305
|
-
|
1306
|
-
|
1307
|
-
|
1308
|
-
|
1309
|
-
|
1310
|
-
|
1311
|
-
|
1312
|
-
|
1313
|
-
|
1314
|
-
|
1315
|
-
|
1316
|
-
|
1317
|
-
|
1318
|
-
|
1319
|
-
|
1320
|
-
|
1321
|
-
|
1322
|
-
|
1323
|
-
|
1324
|
-
|
1325
|
-
|
1326
|
-
|
1327
|
-
|
1328
|
-
|
1329
|
-
|
1330
|
-
|
1331
|
-
|
1332
|
-
|
1333
|
-
|
1334
|
-
|
1335
|
-
|
1336
|
-
|
1337
|
-
|
1338
|
-
|
1339
|
-
|
1340
|
-
|
1341
|
-
|
1342
|
-
|
1343
|
-
|
1344
|
-
|
1345
|
-
|
1466
|
+
if OPENOFFICE
|
1467
|
+
oo = Openoffice.new(File.join("test","ric.ods"))
|
1468
|
+
oo.default_sheet = oo.sheets.first
|
1469
|
+
assert oo.empty?('A',1)
|
1470
|
+
assert oo.empty?('B',1)
|
1471
|
+
assert oo.empty?('C',1)
|
1472
|
+
assert oo.empty?('D',1)
|
1473
|
+
expected = 1
|
1474
|
+
letter = 'e'
|
1475
|
+
while letter <= 'u'
|
1476
|
+
assert_equal expected, oo.cell(letter,1)
|
1477
|
+
letter.succ!
|
1478
|
+
expected += 1
|
1479
|
+
end
|
1480
|
+
#assert_equal 2, oo.cell('f',1)
|
1481
|
+
#assert_equal 3, oo.cell('g',1)
|
1482
|
+
#assert_equal 4, oo.cell('h',1)
|
1483
|
+
#assert_equal 5, oo.cell('i',1)
|
1484
|
+
#assert_equal 6, oo.cell('j',1)
|
1485
|
+
#assert_equal 7, oo.cell('k',1)
|
1486
|
+
#assert_equal 8, oo.cell('l',1)
|
1487
|
+
#assert_equal 9, oo.cell('m',1)
|
1488
|
+
#assert_equal 10, oo.cell('n',1)
|
1489
|
+
#assert_equal 11, oo.cell('o',1)
|
1490
|
+
#assert_equal 12, oo.cell('p',1)
|
1491
|
+
#assert_equal 13, oo.cell('q',1)
|
1492
|
+
#assert_equal 14, oo.cell('r',1)
|
1493
|
+
#assert_equal 15, oo.cell('s',1)
|
1494
|
+
#assert_equal 16, oo.cell('t',1)
|
1495
|
+
#assert_equal 17, oo.cell('u',1)
|
1496
|
+
assert_equal 'J', oo.cell('v',1)
|
1497
|
+
assert_equal 'P', oo.cell('w',1)
|
1498
|
+
assert_equal 'B', oo.cell('x',1)
|
1499
|
+
assert_equal 'All', oo.cell('y',1)
|
1500
|
+
assert_equal 0, oo.cell('a',2)
|
1501
|
+
assert oo.empty?('b',2)
|
1502
|
+
assert oo.empty?('c',2)
|
1503
|
+
assert oo.empty?('d',2)
|
1504
|
+
|
1505
|
+
#'e'.upto('s') {|letter|
|
1506
|
+
# assert_equal 'B', oo.cell(letter,2)
|
1507
|
+
#}
|
1508
|
+
assert_equal 'B', oo.cell('e',2)
|
1509
|
+
assert_equal 'B', oo.cell('f',2)
|
1510
|
+
assert_equal 'B', oo.cell('g',2)
|
1511
|
+
assert_equal 'B', oo.cell('h',2)
|
1512
|
+
assert_equal 'B', oo.cell('i',2)
|
1513
|
+
assert_equal 'B', oo.cell('j',2)
|
1514
|
+
assert_equal 'B', oo.cell('k',2)
|
1515
|
+
assert_equal 'B', oo.cell('l',2)
|
1516
|
+
assert_equal 'B', oo.cell('m',2)
|
1517
|
+
assert_equal 'B', oo.cell('n',2)
|
1518
|
+
assert_equal 'B', oo.cell('o',2)
|
1519
|
+
assert_equal 'B', oo.cell('p',2)
|
1520
|
+
assert_equal 'B', oo.cell('q',2)
|
1521
|
+
assert_equal 'B', oo.cell('r',2)
|
1522
|
+
assert_equal 'B', oo.cell('s',2)
|
1523
|
+
|
1524
|
+
assert oo.empty?('t',2)
|
1525
|
+
assert oo.empty?('u',2)
|
1526
|
+
assert_equal 0 , oo.cell('v',2)
|
1527
|
+
assert_equal 0 , oo.cell('w',2)
|
1528
|
+
assert_equal 15 , oo.cell('x',2)
|
1529
|
+
assert_equal 15 , oo.cell('y',2)
|
1530
|
+
end
|
1346
1531
|
end
|
1347
1532
|
|
1348
1533
|
def test_mehrteilig
|
@@ -1358,7 +1543,8 @@ class TestRoo < Test::Unit::TestCase
|
|
1358
1543
|
if OPENOFFICE
|
1359
1544
|
assert_nothing_raised(Timeout::Error) {
|
1360
1545
|
Timeout::timeout(GLOBAL_TIMEOUT) do |timeout_length|
|
1361
|
-
|
1546
|
+
File.delete("/tmp/Bibelbund.csv")
|
1547
|
+
oo = Openoffice.new(File.join("test","Bibelbund.ods"))
|
1362
1548
|
oo.default_sheet = oo.sheets.first
|
1363
1549
|
assert_equal "Tagebuch des Sekret\303\244rs. Letzte Tagung 15./16.11.75 Schweiz", oo.cell(45,'A')
|
1364
1550
|
assert_equal "Tagebuch des Sekret\303\244rs. Nachrichten aus Chile", oo.cell(46,'A')
|
@@ -1377,7 +1563,8 @@ class TestRoo < Test::Unit::TestCase
|
|
1377
1563
|
if EXCEL
|
1378
1564
|
assert_nothing_raised(Timeout::Error) {
|
1379
1565
|
Timeout::timeout(GLOBAL_TIMEOUT) do |timeout_length|
|
1380
|
-
|
1566
|
+
File.delete("/tmp/Bibelbund.csv")
|
1567
|
+
oo = Excel.new(File.join("test","Bibelbund.xls"))
|
1381
1568
|
oo.default_sheet = oo.sheets.first
|
1382
1569
|
assert oo.to_csv("/tmp/Bibelbund.csv")
|
1383
1570
|
assert File.exists?("/tmp/Bibelbund.csv")
|
@@ -1388,6 +1575,27 @@ class TestRoo < Test::Unit::TestCase
|
|
1388
1575
|
end # LONG_RUN
|
1389
1576
|
end # def to_csv
|
1390
1577
|
|
1578
|
+
def test_to_csv_google
|
1579
|
+
# maybe a better example... TODO:
|
1580
|
+
after Date.new(2008,1,30) do
|
1581
|
+
if GOOGLE
|
1582
|
+
assert_nothing_raised(Timeout::Error) {
|
1583
|
+
Timeout::timeout(GLOBAL_TIMEOUT) do |timeout_length|
|
1584
|
+
File.delete("/tmp/numbers1.csv") if File.exists?("/tmp/numbers1.csv")
|
1585
|
+
oo = Google.new(key_of('numbers1'))
|
1586
|
+
oo.default_sheet = oo.sheets.first
|
1587
|
+
#?? assert_equal "Tagebuch des Sekret\303\244rs. Letzte Tagung 15./16.11.75 Schweiz", oo.cell(45,'A')
|
1588
|
+
#?? assert_equal "Tagebuch des Sekret\303\244rs. Nachrichten aus Chile", oo.cell(46,'A')
|
1589
|
+
#?? assert_equal "Tagebuch aus Chile Juli 1977", oo.cell(55,'A')
|
1590
|
+
assert oo.to_csv("/tmp/numbers1.csv")
|
1591
|
+
assert File.exists?("/tmp/numbers1.csv")
|
1592
|
+
assert_equal "", `diff test/numbers1.csv /tmp/numbers1.csv`
|
1593
|
+
end # Timeout
|
1594
|
+
} # nothing_raised
|
1595
|
+
end # GOOGLE
|
1596
|
+
end # after
|
1597
|
+
end
|
1598
|
+
|
1391
1599
|
def test_bug_mehrere_datum
|
1392
1600
|
if OPENOFFICE
|
1393
1601
|
oo = Openoffice.new(File.join("test","numbers1.ods"))
|
@@ -1543,6 +1751,47 @@ class TestRoo < Test::Unit::TestCase
|
|
1543
1751
|
oo.reload
|
1544
1752
|
end
|
1545
1753
|
end
|
1754
|
+
if GOOGLE
|
1755
|
+
oo = Google.new(key_of("numbers1"))
|
1756
|
+
2.times do
|
1757
|
+
oo.default_sheet = "Tabelle1"
|
1758
|
+
assert_equal 1, oo.cell(1,1)
|
1759
|
+
assert_equal 1, oo.cell(1,1,"Tabelle1")
|
1760
|
+
assert_equal "I am sheet 2", oo.cell('C',5,"Name of Sheet 2")
|
1761
|
+
sheetname = 'Sheet5'
|
1762
|
+
assert_equal :date, oo.celltype('A',4,sheetname)
|
1763
|
+
assert_equal :date, oo.celltype('B',4,sheetname)
|
1764
|
+
assert_equal :date, oo.celltype('C',4,sheetname)
|
1765
|
+
assert_equal :date, oo.celltype('D',4,sheetname)
|
1766
|
+
assert_equal :date, oo.celltype('E',4,sheetname)
|
1767
|
+
assert_equal Date.new(2007,11,21), oo.cell('A',4,sheetname)
|
1768
|
+
assert_equal Date.new(2007,11,21), oo.cell('B',4,sheetname)
|
1769
|
+
assert_equal Date.new(2007,11,21), oo.cell('C',4,sheetname)
|
1770
|
+
assert_equal Date.new(2007,11,21), oo.cell('D',4,sheetname)
|
1771
|
+
assert_equal Date.new(2007,11,21), oo.cell('E',4,sheetname)
|
1772
|
+
assert_equal :float, oo.celltype('A',5,sheetname)
|
1773
|
+
assert_equal :float, oo.celltype('B',5,sheetname)
|
1774
|
+
assert_equal :float, oo.celltype('C',5,sheetname)
|
1775
|
+
assert_equal :float, oo.celltype('D',5,sheetname)
|
1776
|
+
assert_equal :float, oo.celltype('E',5,sheetname)
|
1777
|
+
assert_equal 42, oo.cell('A',5,sheetname)
|
1778
|
+
assert_equal 42, oo.cell('B',5,sheetname)
|
1779
|
+
assert_equal 42, oo.cell('C',5,sheetname)
|
1780
|
+
assert_equal 42, oo.cell('D',5,sheetname)
|
1781
|
+
assert_equal 42, oo.cell('E',5,sheetname)
|
1782
|
+
assert_equal :string, oo.celltype('A',6,sheetname)
|
1783
|
+
assert_equal :string, oo.celltype('B',6,sheetname)
|
1784
|
+
assert_equal :string, oo.celltype('C',6,sheetname)
|
1785
|
+
assert_equal :string, oo.celltype('D',6,sheetname)
|
1786
|
+
assert_equal :string, oo.celltype('E',6,sheetname)
|
1787
|
+
assert_equal "ABC", oo.cell('A',6,sheetname)
|
1788
|
+
assert_equal "ABC", oo.cell('B',6,sheetname)
|
1789
|
+
assert_equal "ABC", oo.cell('C',6,sheetname)
|
1790
|
+
assert_equal "ABC", oo.cell('D',6,sheetname)
|
1791
|
+
assert_equal "ABC", oo.cell('E',6,sheetname)
|
1792
|
+
oo.reload
|
1793
|
+
end
|
1794
|
+
end
|
1546
1795
|
end
|
1547
1796
|
|
1548
1797
|
def test_bug_empty_sheet
|
@@ -1554,11 +1803,11 @@ class TestRoo < Test::Unit::TestCase
|
|
1554
1803
|
assert_equal "", `cat /tmp/emptysheet.csv`
|
1555
1804
|
end
|
1556
1805
|
|
1557
|
-
def
|
1806
|
+
def test_find_by_row_huge_document_openoffice
|
1558
1807
|
if LONG_RUN
|
1559
1808
|
if OPENOFFICE
|
1560
1809
|
Timeout::timeout(GLOBAL_TIMEOUT) do |timeout_length|
|
1561
|
-
oo = Openoffice.new(File.join("test","
|
1810
|
+
oo = Openoffice.new(File.join("test","Bibelbund.ods"))
|
1562
1811
|
oo.default_sheet = oo.sheets.first
|
1563
1812
|
rec = oo.find 20
|
1564
1813
|
assert rec
|
@@ -1575,11 +1824,29 @@ class TestRoo < Test::Unit::TestCase
|
|
1575
1824
|
end
|
1576
1825
|
end
|
1577
1826
|
|
1578
|
-
def
|
1827
|
+
def test_find_by_row_huge_document_excel
|
1579
1828
|
if LONG_RUN
|
1580
1829
|
if EXCEL
|
1581
1830
|
Timeout::timeout(GLOBAL_TIMEOUT) do |timeout_length|
|
1582
|
-
oo = Excel.new(File.join("test","
|
1831
|
+
oo = Excel.new(File.join("test","Bibelbund.xls"))
|
1832
|
+
oo.default_sheet = oo.sheets.first
|
1833
|
+
rec = oo.find 20
|
1834
|
+
assert rec
|
1835
|
+
assert_equal "Brief aus dem Sekretariat", rec[0]
|
1836
|
+
|
1837
|
+
rec = oo.find 22
|
1838
|
+
assert rec
|
1839
|
+
assert_equal "Brief aus dem Skretariat. Tagung in Amberg/Opf.",rec[0]
|
1840
|
+
end
|
1841
|
+
end
|
1842
|
+
end
|
1843
|
+
end
|
1844
|
+
|
1845
|
+
def test_find_by_row_huge_document_google
|
1846
|
+
if LONG_RUN
|
1847
|
+
if GOOGLE
|
1848
|
+
Timeout::timeout(GLOBAL_TIMEOUT) do |timeout_length|
|
1849
|
+
oo = Google.new(key_of("Bibelbund"))
|
1583
1850
|
oo.default_sheet = oo.sheets.first
|
1584
1851
|
rec = oo.find 20
|
1585
1852
|
assert rec
|
@@ -1598,88 +1865,88 @@ class TestRoo < Test::Unit::TestCase
|
|
1598
1865
|
if OPENOFFICE
|
1599
1866
|
assert_nothing_raised(Timeout::Error) {
|
1600
1867
|
Timeout::timeout(GLOBAL_TIMEOUT) do |timeout_length|
|
1601
|
-
oo = Openoffice.new(File.join("test","
|
1868
|
+
oo = Openoffice.new(File.join("test","Bibelbund.ods"))
|
1602
1869
|
oo.default_sheet = oo.sheets.first
|
1603
1870
|
#-----------------------------------------------------------------
|
1604
1871
|
zeilen = oo.find(:all, :conditions => {
|
1605
|
-
|
1606
|
-
|
1872
|
+
'TITEL' => 'Brief aus dem Sekretariat'
|
1873
|
+
}
|
1607
1874
|
)
|
1608
1875
|
assert_equal 2, zeilen.size
|
1609
1876
|
assert_equal [{"VERFASSER"=>"Almassy, Annelene von",
|
1610
|
-
|
1611
|
-
|
1612
|
-
|
1613
|
-
|
1614
|
-
|
1615
|
-
|
1616
|
-
|
1617
|
-
|
1618
|
-
|
1619
|
-
|
1620
|
-
|
1621
|
-
|
1622
|
-
|
1623
|
-
|
1624
|
-
|
1877
|
+
"INTERNET"=>nil,
|
1878
|
+
"SEITE"=>316.0,
|
1879
|
+
"KENNUNG"=>"Aus dem Bibelbund",
|
1880
|
+
"OBJEKT"=>"Bibel+Gem",
|
1881
|
+
"PC"=>"#C:\\Bibelbund\\reprint\\BuG1982-3.pdf#",
|
1882
|
+
"NUMMER"=>"1982-3",
|
1883
|
+
"TITEL"=>"Brief aus dem Sekretariat"},
|
1884
|
+
{"VERFASSER"=>"Almassy, Annelene von",
|
1885
|
+
"INTERNET"=>nil,
|
1886
|
+
"SEITE"=>222.0,
|
1887
|
+
"KENNUNG"=>"Aus dem Bibelbund",
|
1888
|
+
"OBJEKT"=>"Bibel+Gem",
|
1889
|
+
"PC"=>"#C:\\Bibelbund\\reprint\\BuG1983-2.pdf#",
|
1890
|
+
"NUMMER"=>"1983-2",
|
1891
|
+
"TITEL"=>"Brief aus dem Sekretariat"}] , zeilen
|
1625
1892
|
|
1626
1893
|
#----------------------------------------------------------
|
1627
1894
|
zeilen = oo.find(:all,
|
1628
|
-
|
1895
|
+
:conditions => { 'VERFASSER' => 'Almassy, Annelene von' }
|
1629
1896
|
)
|
1630
1897
|
assert_equal 13, zeilen.size
|
1631
1898
|
#----------------------------------------------------------
|
1632
1899
|
zeilen = oo.find(:all, :conditions => {
|
1633
|
-
|
1634
|
-
|
1635
|
-
|
1900
|
+
'TITEL' => 'Brief aus dem Sekretariat',
|
1901
|
+
'VERFASSER' => 'Almassy, Annelene von',
|
1902
|
+
}
|
1636
1903
|
)
|
1637
1904
|
assert_equal 2, zeilen.size
|
1638
1905
|
assert_equal [{"VERFASSER"=>"Almassy, Annelene von",
|
1639
|
-
|
1640
|
-
|
1641
|
-
|
1642
|
-
|
1643
|
-
|
1644
|
-
|
1645
|
-
|
1646
|
-
|
1647
|
-
|
1648
|
-
|
1649
|
-
|
1650
|
-
|
1651
|
-
|
1652
|
-
|
1653
|
-
|
1906
|
+
"INTERNET"=>nil,
|
1907
|
+
"SEITE"=>316.0,
|
1908
|
+
"KENNUNG"=>"Aus dem Bibelbund",
|
1909
|
+
"OBJEKT"=>"Bibel+Gem",
|
1910
|
+
"PC"=>"#C:\\Bibelbund\\reprint\\BuG1982-3.pdf#",
|
1911
|
+
"NUMMER"=>"1982-3",
|
1912
|
+
"TITEL"=>"Brief aus dem Sekretariat"},
|
1913
|
+
{"VERFASSER"=>"Almassy, Annelene von",
|
1914
|
+
"INTERNET"=>nil,
|
1915
|
+
"SEITE"=>222.0,
|
1916
|
+
"KENNUNG"=>"Aus dem Bibelbund",
|
1917
|
+
"OBJEKT"=>"Bibel+Gem",
|
1918
|
+
"PC"=>"#C:\\Bibelbund\\reprint\\BuG1983-2.pdf#",
|
1919
|
+
"NUMMER"=>"1983-2",
|
1920
|
+
"TITEL"=>"Brief aus dem Sekretariat"}] , zeilen
|
1654
1921
|
|
1655
1922
|
# Result as an array
|
1656
1923
|
zeilen = oo.find(:all,
|
1657
|
-
|
1658
|
-
|
1659
|
-
|
1660
|
-
|
1924
|
+
:conditions => {
|
1925
|
+
'TITEL' => 'Brief aus dem Sekretariat',
|
1926
|
+
'VERFASSER' => 'Almassy, Annelene von',
|
1927
|
+
}, :array => true)
|
1661
1928
|
assert_equal 2, zeilen.size
|
1662
1929
|
assert_equal [
|
1663
|
-
|
1664
|
-
|
1665
|
-
|
1666
|
-
|
1667
|
-
|
1668
|
-
|
1669
|
-
|
1670
|
-
|
1671
|
-
|
1672
|
-
|
1673
|
-
|
1674
|
-
|
1675
|
-
|
1676
|
-
|
1677
|
-
|
1678
|
-
|
1679
|
-
|
1680
|
-
|
1681
|
-
|
1682
|
-
|
1930
|
+
[
|
1931
|
+
"Brief aus dem Sekretariat",
|
1932
|
+
"Almassy, Annelene von",
|
1933
|
+
"Bibel+Gem",
|
1934
|
+
"1982-3",
|
1935
|
+
316.0,
|
1936
|
+
nil,
|
1937
|
+
"#C:\\Bibelbund\\reprint\\BuG1982-3.pdf#",
|
1938
|
+
"Aus dem Bibelbund",
|
1939
|
+
],
|
1940
|
+
[
|
1941
|
+
"Brief aus dem Sekretariat",
|
1942
|
+
"Almassy, Annelene von",
|
1943
|
+
"Bibel+Gem",
|
1944
|
+
"1983-2",
|
1945
|
+
222.0,
|
1946
|
+
nil,
|
1947
|
+
"#C:\\Bibelbund\\reprint\\BuG1983-2.pdf#",
|
1948
|
+
"Aus dem Bibelbund",
|
1949
|
+
]] , zeilen
|
1683
1950
|
end # Timeout
|
1684
1951
|
} # nothing_raised
|
1685
1952
|
end
|
@@ -1691,59 +1958,152 @@ class TestRoo < Test::Unit::TestCase
|
|
1691
1958
|
if EXCEL
|
1692
1959
|
assert_nothing_raised(Timeout::Error) {
|
1693
1960
|
Timeout::timeout(GLOBAL_TIMEOUT) do |timeout_length|
|
1694
|
-
oo = Excel.new(File.join("test","
|
1961
|
+
oo = Excel.new(File.join("test","Bibelbund.xls"))
|
1962
|
+
oo.default_sheet = oo.sheets.first
|
1963
|
+
#-----------------------------------------------------------------
|
1964
|
+
zeilen = oo.find(:all, :conditions => {
|
1965
|
+
'TITEL' => 'Brief aus dem Sekretariat'
|
1966
|
+
}
|
1967
|
+
)
|
1968
|
+
assert_equal 2, zeilen.size
|
1969
|
+
assert_equal [{"VERFASSER"=>"Almassy, Annelene von",
|
1970
|
+
"INTERNET"=>nil,
|
1971
|
+
"SEITE"=>316.0,
|
1972
|
+
"KENNUNG"=>"Aus dem Bibelbund",
|
1973
|
+
"OBJEKT"=>"Bibel+Gem",
|
1974
|
+
"PC"=>"#C:\\Bibelbund\\reprint\\BuG1982-3.pdf#",
|
1975
|
+
"NUMMER"=>"1982-3",
|
1976
|
+
"TITEL"=>"Brief aus dem Sekretariat"},
|
1977
|
+
{"VERFASSER"=>"Almassy, Annelene von",
|
1978
|
+
"INTERNET"=>nil,
|
1979
|
+
"SEITE"=>222.0,
|
1980
|
+
"KENNUNG"=>"Aus dem Bibelbund",
|
1981
|
+
"OBJEKT"=>"Bibel+Gem",
|
1982
|
+
"PC"=>"#C:\\Bibelbund\\reprint\\BuG1983-2.pdf#",
|
1983
|
+
"NUMMER"=>"1983-2",
|
1984
|
+
"TITEL"=>"Brief aus dem Sekretariat"}] , zeilen
|
1985
|
+
|
1986
|
+
#----------------------------------------------------------
|
1987
|
+
zeilen = oo.find(:all,
|
1988
|
+
:conditions => { 'VERFASSER' => 'Almassy, Annelene von' }
|
1989
|
+
)
|
1990
|
+
assert_equal 13, zeilen.size
|
1991
|
+
#----------------------------------------------------------
|
1992
|
+
zeilen = oo.find(:all, :conditions => {
|
1993
|
+
'TITEL' => 'Brief aus dem Sekretariat',
|
1994
|
+
'VERFASSER' => 'Almassy, Annelene von',
|
1995
|
+
}
|
1996
|
+
)
|
1997
|
+
assert_equal 2, zeilen.size
|
1998
|
+
assert_equal [{"VERFASSER"=>"Almassy, Annelene von",
|
1999
|
+
"INTERNET"=>nil,
|
2000
|
+
"SEITE"=>316.0,
|
2001
|
+
"KENNUNG"=>"Aus dem Bibelbund",
|
2002
|
+
"OBJEKT"=>"Bibel+Gem",
|
2003
|
+
"PC"=>"#C:\\Bibelbund\\reprint\\BuG1982-3.pdf#",
|
2004
|
+
"NUMMER"=>"1982-3",
|
2005
|
+
"TITEL"=>"Brief aus dem Sekretariat"},
|
2006
|
+
{"VERFASSER"=>"Almassy, Annelene von",
|
2007
|
+
"INTERNET"=>nil,
|
2008
|
+
"SEITE"=>222.0,
|
2009
|
+
"KENNUNG"=>"Aus dem Bibelbund",
|
2010
|
+
"OBJEKT"=>"Bibel+Gem",
|
2011
|
+
"PC"=>"#C:\\Bibelbund\\reprint\\BuG1983-2.pdf#",
|
2012
|
+
"NUMMER"=>"1983-2",
|
2013
|
+
"TITEL"=>"Brief aus dem Sekretariat"}] , zeilen
|
2014
|
+
end # Timeout
|
2015
|
+
} # nothing_raised
|
2016
|
+
end
|
2017
|
+
end
|
2018
|
+
end
|
2019
|
+
|
2020
|
+
def test_find_by_conditions_google
|
2021
|
+
if LONG_RUN
|
2022
|
+
if GOOGLE
|
2023
|
+
assert_nothing_raised(Timeout::Error) {
|
2024
|
+
Timeout::timeout(GLOBAL_TIMEOUT) do |timeout_length|
|
2025
|
+
oo = Google.new(key_of("Bibelbund"))
|
1695
2026
|
oo.default_sheet = oo.sheets.first
|
1696
2027
|
#-----------------------------------------------------------------
|
1697
2028
|
zeilen = oo.find(:all, :conditions => {
|
1698
|
-
|
1699
|
-
|
2029
|
+
'TITEL' => 'Brief aus dem Sekretariat'
|
2030
|
+
}
|
1700
2031
|
)
|
1701
2032
|
assert_equal 2, zeilen.size
|
1702
2033
|
assert_equal [{"VERFASSER"=>"Almassy, Annelene von",
|
1703
|
-
|
1704
|
-
|
1705
|
-
|
1706
|
-
|
1707
|
-
|
1708
|
-
|
1709
|
-
|
1710
|
-
|
1711
|
-
|
1712
|
-
|
1713
|
-
|
1714
|
-
|
1715
|
-
|
1716
|
-
|
1717
|
-
|
2034
|
+
"INTERNET"=>nil,
|
2035
|
+
"SEITE"=>316.0,
|
2036
|
+
"KENNUNG"=>"Aus dem Bibelbund",
|
2037
|
+
"OBJEKT"=>"Bibel+Gem",
|
2038
|
+
"PC"=>"#C:\\Bibelbund\\reprint\\BuG1982-3.pdf#",
|
2039
|
+
"NUMMER"=>"1982-3",
|
2040
|
+
"TITEL"=>"Brief aus dem Sekretariat"},
|
2041
|
+
{"VERFASSER"=>"Almassy, Annelene von",
|
2042
|
+
"INTERNET"=>nil,
|
2043
|
+
"SEITE"=>222.0,
|
2044
|
+
"KENNUNG"=>"Aus dem Bibelbund",
|
2045
|
+
"OBJEKT"=>"Bibel+Gem",
|
2046
|
+
"PC"=>"#C:\\Bibelbund\\reprint\\BuG1983-2.pdf#",
|
2047
|
+
"NUMMER"=>"1983-2",
|
2048
|
+
"TITEL"=>"Brief aus dem Sekretariat"}] , zeilen
|
1718
2049
|
|
1719
2050
|
#----------------------------------------------------------
|
1720
2051
|
zeilen = oo.find(:all,
|
1721
|
-
|
2052
|
+
:conditions => { 'VERFASSER' => 'Almassy, Annelene von' }
|
1722
2053
|
)
|
1723
2054
|
assert_equal 13, zeilen.size
|
1724
2055
|
#----------------------------------------------------------
|
1725
2056
|
zeilen = oo.find(:all, :conditions => {
|
1726
|
-
|
1727
|
-
|
1728
|
-
|
2057
|
+
'TITEL' => 'Brief aus dem Sekretariat',
|
2058
|
+
'VERFASSER' => 'Almassy, Annelene von',
|
2059
|
+
}
|
1729
2060
|
)
|
1730
2061
|
assert_equal 2, zeilen.size
|
1731
2062
|
assert_equal [{"VERFASSER"=>"Almassy, Annelene von",
|
1732
|
-
|
1733
|
-
|
1734
|
-
|
1735
|
-
|
1736
|
-
|
1737
|
-
|
1738
|
-
|
1739
|
-
|
1740
|
-
|
1741
|
-
|
1742
|
-
|
1743
|
-
|
1744
|
-
|
1745
|
-
|
1746
|
-
|
2063
|
+
"INTERNET"=>nil,
|
2064
|
+
"SEITE"=>316.0,
|
2065
|
+
"KENNUNG"=>"Aus dem Bibelbund",
|
2066
|
+
"OBJEKT"=>"Bibel+Gem",
|
2067
|
+
"PC"=>"#C:\\Bibelbund\\reprint\\BuG1982-3.pdf#",
|
2068
|
+
"NUMMER"=>"1982-3",
|
2069
|
+
"TITEL"=>"Brief aus dem Sekretariat"},
|
2070
|
+
{"VERFASSER"=>"Almassy, Annelene von",
|
2071
|
+
"INTERNET"=>nil,
|
2072
|
+
"SEITE"=>222.0,
|
2073
|
+
"KENNUNG"=>"Aus dem Bibelbund",
|
2074
|
+
"OBJEKT"=>"Bibel+Gem",
|
2075
|
+
"PC"=>"#C:\\Bibelbund\\reprint\\BuG1983-2.pdf#",
|
2076
|
+
"NUMMER"=>"1983-2",
|
2077
|
+
"TITEL"=>"Brief aus dem Sekretariat"}] , zeilen
|
2078
|
+
|
2079
|
+
# Result as an array
|
2080
|
+
zeilen = oo.find(:all,
|
2081
|
+
:conditions => {
|
2082
|
+
'TITEL' => 'Brief aus dem Sekretariat',
|
2083
|
+
'VERFASSER' => 'Almassy, Annelene von',
|
2084
|
+
}, :array => true)
|
2085
|
+
assert_equal 2, zeilen.size
|
2086
|
+
assert_equal [
|
2087
|
+
[
|
2088
|
+
"Brief aus dem Sekretariat",
|
2089
|
+
"Almassy, Annelene von",
|
2090
|
+
"Bibel+Gem",
|
2091
|
+
"1982-3",
|
2092
|
+
316.0,
|
2093
|
+
nil,
|
2094
|
+
"#C:\\Bibelbund\\reprint\\BuG1982-3.pdf#",
|
2095
|
+
"Aus dem Bibelbund",
|
2096
|
+
],
|
2097
|
+
[
|
2098
|
+
"Brief aus dem Sekretariat",
|
2099
|
+
"Almassy, Annelene von",
|
2100
|
+
"Bibel+Gem",
|
2101
|
+
"1983-2",
|
2102
|
+
222.0,
|
2103
|
+
nil,
|
2104
|
+
"#C:\\Bibelbund\\reprint\\BuG1983-2.pdf#",
|
2105
|
+
"Aus dem Bibelbund",
|
2106
|
+
]] , zeilen
|
1747
2107
|
end # Timeout
|
1748
2108
|
} # nothing_raised
|
1749
2109
|
end
|
@@ -1774,13 +2134,25 @@ class TestRoo < Test::Unit::TestCase
|
|
1774
2134
|
end
|
1775
2135
|
end
|
1776
2136
|
|
2137
|
+
def test_columns_google
|
2138
|
+
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)]
|
2139
|
+
if GOOGLE
|
2140
|
+
Timeout::timeout(GLOBAL_TIMEOUT) do |timeout_length|
|
2141
|
+
oo = Google.new(key_of('numbers1'))
|
2142
|
+
oo.default_sheet = oo.sheets.first
|
2143
|
+
assert_equal expected, oo.column(1)
|
2144
|
+
assert_equal expected, oo.column('a')
|
2145
|
+
end
|
2146
|
+
end
|
2147
|
+
end
|
2148
|
+
|
1777
2149
|
def test_column_huge_document_openoffice
|
1778
2150
|
if LONG_RUN
|
1779
2151
|
if OPENOFFICE
|
1780
2152
|
assert_nothing_raised(Timeout::Error) {
|
1781
2153
|
Timeout::timeout(GLOBAL_TIMEOUT) do |timeout_length|
|
1782
2154
|
#puts Time.now.to_s + "column Openoffice gestartet"
|
1783
|
-
oo = Openoffice.new(File.join('test','
|
2155
|
+
oo = Openoffice.new(File.join('test','Bibelbund.ods'))
|
1784
2156
|
oo.default_sheet = oo.sheets.first
|
1785
2157
|
#assert_equal 3735, oo.column('a').size
|
1786
2158
|
assert_equal 499, oo.column('a').size
|
@@ -1797,7 +2169,7 @@ class TestRoo < Test::Unit::TestCase
|
|
1797
2169
|
assert_nothing_raised(Timeout::Error) {
|
1798
2170
|
Timeout::timeout(GLOBAL_TIMEOUT) do |timeout_length|
|
1799
2171
|
#puts Time.now.to_s + "column Excel gestartet"
|
1800
|
-
oo = Excel.new(File.join('test','
|
2172
|
+
oo = Excel.new(File.join('test','Bibelbund.xls'))
|
1801
2173
|
oo.default_sheet = oo.sheets.first
|
1802
2174
|
#assert_equal 3735, oo.column('a').size
|
1803
2175
|
assert_equal 499, oo.column('a').size
|
@@ -1808,6 +2180,23 @@ class TestRoo < Test::Unit::TestCase
|
|
1808
2180
|
end
|
1809
2181
|
end
|
1810
2182
|
|
2183
|
+
def test_column_huge_document_google
|
2184
|
+
if LONG_RUN
|
2185
|
+
if GOOGLE_NEW
|
2186
|
+
assert_nothing_raised(Timeout::Error) {
|
2187
|
+
Timeout::timeout(GLOBAL_TIMEOUT) do |timeout_length|
|
2188
|
+
#puts Time.now.to_s + "column Openoffice gestartet"
|
2189
|
+
oo = Google.new(key_of('Bibelbund'))
|
2190
|
+
oo.default_sheet = oo.sheets.first
|
2191
|
+
#assert_equal 3735, oo.column('a').size
|
2192
|
+
assert_equal 499, oo.column('a').size
|
2193
|
+
#puts Time.now.to_s + "column Openoffice beendet"
|
2194
|
+
end
|
2195
|
+
}
|
2196
|
+
end
|
2197
|
+
end
|
2198
|
+
end
|
2199
|
+
|
1811
2200
|
def test_simple_spreadsheet_find_by_condition_openoffice
|
1812
2201
|
oo = Openoffice.new(File.join("test","simple_spreadsheet.ods"))
|
1813
2202
|
oo.default_sheet = oo.sheets.first
|
@@ -1821,6 +2210,24 @@ class TestRoo < Test::Unit::TestCase
|
|
1821
2210
|
assert_equal "Task 1" , erg[1]['Comment']
|
1822
2211
|
end
|
1823
2212
|
|
2213
|
+
def test_simple_spreadsheet_find_by_condition_google
|
2214
|
+
if GOOGLE
|
2215
|
+
after Date.new(2007,12,15) do
|
2216
|
+
oo = Google.new(key_of("simple_spreadsheet"))
|
2217
|
+
oo.default_sheet = oo.sheets.first
|
2218
|
+
oo.header_line = 3
|
2219
|
+
erg = oo.find(:all, :conditions => {'Comment' => 'Task 1'})
|
2220
|
+
assert_equal Date.new(2007,05,07), erg[1]['Date']
|
2221
|
+
assert_equal 10.75 , erg[1]['Start time']
|
2222
|
+
assert_equal 12.50 , erg[1]['End time']
|
2223
|
+
assert_equal 0 , erg[1]['Pause']
|
2224
|
+
assert_kind_of Float, erg[1]['Sum']
|
2225
|
+
assert_equal 1.75 , erg[1]['Sum']
|
2226
|
+
assert_equal "Task 1" , erg[1]['Comment']
|
2227
|
+
end
|
2228
|
+
end
|
2229
|
+
end
|
2230
|
+
|
1824
2231
|
def DONT_test_false_encoding
|
1825
2232
|
ex = Excel.new(File.join('test','false_encoding.xls'))
|
1826
2233
|
ex.default_sheet = ex.sheets.first
|
@@ -1889,33 +2296,33 @@ class TestRoo < Test::Unit::TestCase
|
|
1889
2296
|
|
1890
2297
|
def test_info
|
1891
2298
|
expected_templ = "File: test/numbers1%s\n"+
|
1892
|
-
|
1893
|
-
|
1894
|
-
|
1895
|
-
|
1896
|
-
|
1897
|
-
|
1898
|
-
|
1899
|
-
|
1900
|
-
|
1901
|
-
|
1902
|
-
|
1903
|
-
|
1904
|
-
|
1905
|
-
|
1906
|
-
|
1907
|
-
|
1908
|
-
|
1909
|
-
|
1910
|
-
|
1911
|
-
|
1912
|
-
|
1913
|
-
|
1914
|
-
|
1915
|
-
|
1916
|
-
|
1917
|
-
|
1918
|
-
|
2299
|
+
"Number of sheets: 5\n"+
|
2300
|
+
"Sheets: Tabelle1, Name of Sheet 2, Sheet3, Sheet4, Sheet5\n"+
|
2301
|
+
"Sheet 1:\n"+
|
2302
|
+
" First row: 1\n"+
|
2303
|
+
" Last row: 18\n"+
|
2304
|
+
" First column: A\n"+
|
2305
|
+
" Last column: G\n"+
|
2306
|
+
"Sheet 2:\n"+
|
2307
|
+
" First row: 5\n"+
|
2308
|
+
" Last row: 14\n"+
|
2309
|
+
" First column: B\n"+
|
2310
|
+
" Last column: E\n"+
|
2311
|
+
"Sheet 3:\n"+
|
2312
|
+
" First row: 1\n"+
|
2313
|
+
" Last row: 1\n"+
|
2314
|
+
" First column: A\n"+
|
2315
|
+
" Last column: BA\n"+
|
2316
|
+
"Sheet 4:\n"+
|
2317
|
+
" First row: 1\n"+
|
2318
|
+
" Last row: 1\n"+
|
2319
|
+
" First column: A\n"+
|
2320
|
+
" Last column: E\n"+
|
2321
|
+
"Sheet 5:\n"+
|
2322
|
+
" First row: 1\n"+
|
2323
|
+
" Last row: 6\n"+
|
2324
|
+
" First column: A\n"+
|
2325
|
+
" Last column: E"
|
1919
2326
|
if OPENOFFICE
|
1920
2327
|
ext = ".ods"
|
1921
2328
|
expected = sprintf(expected_templ,ext)
|
@@ -1928,6 +2335,14 @@ class TestRoo < Test::Unit::TestCase
|
|
1928
2335
|
oo = Excel.new(File.join("test","numbers1.xls"))
|
1929
2336
|
assert_equal expected, oo.info
|
1930
2337
|
end
|
2338
|
+
if GOOGLE
|
2339
|
+
ext = ""
|
2340
|
+
expected = sprintf(expected_templ,ext)
|
2341
|
+
oo = Google.new(key_of("numbers1"))
|
2342
|
+
#$log.debug(expected)
|
2343
|
+
#$log.debug expected.gsub(/test\/numbers1/,key_of("numbers1"))
|
2344
|
+
assert_equal expected.gsub(/test\/numbers1/,key_of("numbers1")), oo.info
|
2345
|
+
end
|
1931
2346
|
end
|
1932
2347
|
|
1933
2348
|
def test_bug_excel_numbers1_sheet5_last_row
|
@@ -1970,5 +2385,35 @@ class TestRoo < Test::Unit::TestCase
|
|
1970
2385
|
oo = Excel.new(File.join('testnichtvorhanden','Bibelbund.xls'))
|
1971
2386
|
}
|
1972
2387
|
end
|
2388
|
+
if GOOGLE
|
2389
|
+
after Date.new(2008,1,1) do
|
2390
|
+
assert_raise(IOError) {
|
2391
|
+
oo = Google.new(key_of('testnichtvorhanden'+'Bibelbund.ods'))
|
2392
|
+
}
|
2393
|
+
end
|
2394
|
+
end
|
2395
|
+
end
|
2396
|
+
|
2397
|
+
def test_bug_cell_no_default_sheet
|
2398
|
+
if GOOGLE
|
2399
|
+
oo = Google.new(key_of("numbers1"))
|
2400
|
+
assert_raise(ArgumentError) {
|
2401
|
+
# should complain about not set default-sheet
|
2402
|
+
#assert_equal 1.0, oo.cell('A',1)
|
2403
|
+
value = oo.cell('A',1)
|
2404
|
+
assert_equal "ganz rechts gehts noch wetier", oo.cell('A',1,"Sheet3")
|
2405
|
+
}
|
2406
|
+
end
|
2407
|
+
end
|
2408
|
+
|
2409
|
+
def test_write_google
|
2410
|
+
# write.me: http://spreadsheets.google.com/ccc?key=ptu6bbahNZpY0N0RrxQbWdw&hl=en_GB
|
2411
|
+
if GOOGLE
|
2412
|
+
oo = Google.new('ptu6bbahNZpY0N0RrxQbWdw')
|
2413
|
+
oo.default_sheet = oo.sheets.first
|
2414
|
+
oo.set_value(1,1,"hello from the tests")
|
2415
|
+
#oo.set_value(1,1,"sin(1)")
|
2416
|
+
assert_equal "hello from the tests", oo.cell(1,1)
|
2417
|
+
end
|
1973
2418
|
end
|
1974
2419
|
end # class
|