roo 0.7.0 → 0.8.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- 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
|