keeguon-spreadsheet 0.9.3
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +7 -0
- data/LICENSE.txt +619 -0
- data/Manifest.txt +85 -0
- data/bin/xlsopcodes +18 -0
- data/lib/parseexcel.rb +27 -0
- data/lib/parseexcel/parseexcel.rb +75 -0
- data/lib/parseexcel/parser.rb +11 -0
- data/lib/spreadsheet.rb +80 -0
- data/lib/spreadsheet/column.rb +71 -0
- data/lib/spreadsheet/compatibility.rb +23 -0
- data/lib/spreadsheet/datatypes.rb +161 -0
- data/lib/spreadsheet/encodings.rb +57 -0
- data/lib/spreadsheet/excel.rb +88 -0
- data/lib/spreadsheet/excel/error.rb +26 -0
- data/lib/spreadsheet/excel/internals.rb +458 -0
- data/lib/spreadsheet/excel/internals/biff5.rb +17 -0
- data/lib/spreadsheet/excel/internals/biff8.rb +19 -0
- data/lib/spreadsheet/excel/offset.rb +41 -0
- data/lib/spreadsheet/excel/password_hash.rb +24 -0
- data/lib/spreadsheet/excel/reader.rb +1302 -0
- data/lib/spreadsheet/excel/reader/biff5.rb +42 -0
- data/lib/spreadsheet/excel/reader/biff8.rb +231 -0
- data/lib/spreadsheet/excel/rgb.rb +122 -0
- data/lib/spreadsheet/excel/row.rb +98 -0
- data/lib/spreadsheet/excel/sst_entry.rb +46 -0
- data/lib/spreadsheet/excel/workbook.rb +80 -0
- data/lib/spreadsheet/excel/worksheet.rb +115 -0
- data/lib/spreadsheet/excel/writer.rb +1 -0
- data/lib/spreadsheet/excel/writer/biff8.rb +75 -0
- data/lib/spreadsheet/excel/writer/format.rb +264 -0
- data/lib/spreadsheet/excel/writer/n_worksheet.rb +888 -0
- data/lib/spreadsheet/excel/writer/workbook.rb +735 -0
- data/lib/spreadsheet/excel/writer/worksheet.rb +940 -0
- data/lib/spreadsheet/font.rb +115 -0
- data/lib/spreadsheet/format.rb +209 -0
- data/lib/spreadsheet/formula.rb +9 -0
- data/lib/spreadsheet/helpers.rb +11 -0
- data/lib/spreadsheet/link.rb +43 -0
- data/lib/spreadsheet/note.rb +23 -0
- data/lib/spreadsheet/noteObject.rb +17 -0
- data/lib/spreadsheet/row.rb +151 -0
- data/lib/spreadsheet/workbook.rb +143 -0
- data/lib/spreadsheet/worksheet.rb +326 -0
- data/lib/spreadsheet/writer.rb +30 -0
- data/test/data/test_adding_data_to_existing_file.xls +0 -0
- data/test/data/test_borders.xls +0 -0
- data/test/data/test_changes.xls +0 -0
- data/test/data/test_comment.xls +0 -0
- data/test/data/test_copy.xls +0 -0
- data/test/data/test_datetime.xls +0 -0
- data/test/data/test_empty.xls +0 -0
- data/test/data/test_formula.xls +0 -0
- data/test/data/test_long_sst_record.xls +0 -0
- data/test/data/test_margin.xls +0 -0
- data/test/data/test_merged_and_protected.xls +0 -0
- data/test/data/test_merged_cells.xls +0 -0
- data/test/data/test_missing_row.xls +0 -0
- data/test/data/test_pagesetup.xls +0 -0
- data/test/data/test_version_excel5.xls +0 -0
- data/test/data/test_version_excel95.xls +0 -0
- data/test/data/test_version_excel97.xls +0 -0
- data/test/data/test_version_excel97_2010.xls +0 -0
- data/test/data/test_worksheet_visibility.xls +0 -0
- data/test/excel/reader.rb +30 -0
- data/test/excel/row.rb +40 -0
- data/test/excel/writer/workbook.rb +95 -0
- data/test/excel/writer/worksheet.rb +81 -0
- data/test/font.rb +163 -0
- data/test/format.rb +95 -0
- data/test/integration.rb +1390 -0
- data/test/row.rb +33 -0
- data/test/suite.rb +18 -0
- data/test/workbook.rb +55 -0
- data/test/workbook_protection.rb +19 -0
- data/test/worksheet.rb +112 -0
- metadata +148 -0
@@ -0,0 +1,30 @@
|
|
1
|
+
module Spreadsheet
|
2
|
+
##
|
3
|
+
# Parent Class for all Writers. Implements the copying of unmodified
|
4
|
+
# Spreadsheet documents.
|
5
|
+
class Writer
|
6
|
+
def initialize io_or_path
|
7
|
+
@io_or_path = io_or_path
|
8
|
+
end
|
9
|
+
def write workbook
|
10
|
+
if @io_or_path.respond_to? :seek
|
11
|
+
@io_or_path.binmode
|
12
|
+
write_workbook workbook, @io_or_path
|
13
|
+
else
|
14
|
+
File.open(@io_or_path, "wb+") do |fh|
|
15
|
+
write_workbook workbook, fh
|
16
|
+
end
|
17
|
+
end
|
18
|
+
end
|
19
|
+
private
|
20
|
+
def write_workbook workbook, io
|
21
|
+
reader = workbook.io
|
22
|
+
unless io == reader
|
23
|
+
reader.rewind
|
24
|
+
data = reader.read
|
25
|
+
io.rewind
|
26
|
+
io.write data
|
27
|
+
end
|
28
|
+
end
|
29
|
+
end
|
30
|
+
end
|
Binary file
|
Binary file
|
Binary file
|
Binary file
|
Binary file
|
Binary file
|
Binary file
|
Binary file
|
Binary file
|
Binary file
|
Binary file
|
Binary file
|
Binary file
|
Binary file
|
Binary file
|
Binary file
|
Binary file
|
Binary file
|
Binary file
|
@@ -0,0 +1,30 @@
|
|
1
|
+
#!/usr/bin/env ruby
|
2
|
+
# Excel::TestReader -- Spreadsheet -- 22.01.2013
|
3
|
+
|
4
|
+
$: << File.expand_path('../../../lib', File.dirname(__FILE__))
|
5
|
+
|
6
|
+
require 'test/unit'
|
7
|
+
|
8
|
+
module Spreadsheet
|
9
|
+
module Excel
|
10
|
+
class TestReader < Test::Unit::TestCase
|
11
|
+
def test_empty_file_error_on_setup
|
12
|
+
reader = Spreadsheet::Excel::Reader.new
|
13
|
+
empty_io = StringIO.new
|
14
|
+
assert_raise RuntimeError do
|
15
|
+
reader.setup empty_io
|
16
|
+
end
|
17
|
+
end
|
18
|
+
|
19
|
+
def test_not_empty_file_error_on_setup
|
20
|
+
reader = Spreadsheet::Excel::Reader.new
|
21
|
+
data = File.expand_path File.join('test', 'data')
|
22
|
+
path = File.join data, 'test_empty.xls'
|
23
|
+
not_empty_io = File.open(path, "rb")
|
24
|
+
assert_nothing_thrown do
|
25
|
+
reader.setup not_empty_io
|
26
|
+
end
|
27
|
+
end
|
28
|
+
end
|
29
|
+
end
|
30
|
+
end
|
data/test/excel/row.rb
ADDED
@@ -0,0 +1,40 @@
|
|
1
|
+
#!/usr/bin/env ruby
|
2
|
+
# Excel::TestRow -- Spreadsheet -- 12.10.2008 -- hwyss@ywesee.com
|
3
|
+
|
4
|
+
$: << File.expand_path('../../lib', File.dirname(__FILE__))
|
5
|
+
|
6
|
+
require 'test/unit'
|
7
|
+
require 'spreadsheet'
|
8
|
+
|
9
|
+
module Spreadsheet
|
10
|
+
module Excel
|
11
|
+
class TestRow < Test::Unit::TestCase
|
12
|
+
def setup
|
13
|
+
@workbook = Excel::Workbook.new
|
14
|
+
@worksheet = Excel::Worksheet.new
|
15
|
+
@workbook.add_worksheet @worksheet
|
16
|
+
end
|
17
|
+
def test_date
|
18
|
+
row = Row.new @worksheet, 0, [nil, 27627.6789]
|
19
|
+
assert_equal Date.new(1975,8,21), row.date(1)
|
20
|
+
end
|
21
|
+
def test_to_a
|
22
|
+
row = Row.new @worksheet, 0, [nil, 1, 27627.6789]
|
23
|
+
row.set_format(2, Format.new(:number_format => 'DD.MM.YYYY'))
|
24
|
+
assert_equal [nil, 1, Date.new(1975, 8, 21)], row.to_a
|
25
|
+
end
|
26
|
+
def test_datetime
|
27
|
+
row = Row.new @worksheet, 0, [nil, 27627.765]
|
28
|
+
d1 = DateTime.new(1975,8,21) + 0.765
|
29
|
+
d2 = row.datetime 1
|
30
|
+
assert_equal d1, d2
|
31
|
+
end
|
32
|
+
def test_datetime_overflow
|
33
|
+
row = Row.new @worksheet, 0, [nil, 40010.6666666666]
|
34
|
+
d1 = DateTime.new(2009,07,16,16)
|
35
|
+
d2 = row.datetime 1
|
36
|
+
assert_equal d1, d2
|
37
|
+
end
|
38
|
+
end
|
39
|
+
end
|
40
|
+
end
|
@@ -0,0 +1,95 @@
|
|
1
|
+
#!/usr/bin/env ruby
|
2
|
+
# Excel::Writer::TestWorkbook -- Spreadsheet -- 20.07.2011 -- vanderhoorn@gmail.com
|
3
|
+
|
4
|
+
$: << File.expand_path('../../../lib', File.dirname(__FILE__))
|
5
|
+
|
6
|
+
require 'test/unit'
|
7
|
+
require 'spreadsheet'
|
8
|
+
|
9
|
+
module Spreadsheet
|
10
|
+
module Excel
|
11
|
+
module Writer
|
12
|
+
class TestWorkbook < Test::Unit::TestCase
|
13
|
+
def setup
|
14
|
+
@book = Spreadsheet::Excel::Workbook.new
|
15
|
+
assert_instance_of Excel::Workbook, @book
|
16
|
+
assert_equal @book.worksheets.size, 0
|
17
|
+
@workbook_writer = Excel::Writer::Workbook.new @book
|
18
|
+
end
|
19
|
+
def test_sanitize_worksheets
|
20
|
+
assert_nothing_raised { @workbook_writer.sanitize_worksheets @book.worksheets }
|
21
|
+
end
|
22
|
+
def test_collect_formats
|
23
|
+
assert_equal 17, @workbook_writer.collect_formats(@book).length # Expected for vanilla
|
24
|
+
sheet = @book.create_worksheet
|
25
|
+
rowi=-1
|
26
|
+
|
27
|
+
f1 = Spreadsheet::Format.new
|
28
|
+
sheet.row(rowi+=1).default_format = f1
|
29
|
+
assert_equal 18, @workbook_writer.collect_formats(@book).length
|
30
|
+
|
31
|
+
f2 = Spreadsheet::Format.new
|
32
|
+
sheet.row(rowi+=1).default_format = f2
|
33
|
+
assert_equal 19, @workbook_writer.collect_formats(@book).length
|
34
|
+
|
35
|
+
sheet.row(rowi+=1).default_format = f2
|
36
|
+
assert_equal 19, @workbook_writer.collect_formats(@book).length # Ignores duplicates
|
37
|
+
end
|
38
|
+
def test_xf_index
|
39
|
+
sheet = @book.create_worksheet
|
40
|
+
rowi=-1
|
41
|
+
|
42
|
+
f1 = Spreadsheet::Format.new
|
43
|
+
sheet.row(rowi+=1).default_format = f1
|
44
|
+
@workbook_writer.collect_formats(@book)
|
45
|
+
assert_equal 17, @workbook_writer.xf_index(@book, f1)
|
46
|
+
|
47
|
+
f2 = Spreadsheet::Format.new
|
48
|
+
sheet.row(rowi+=1).default_format = f2
|
49
|
+
@workbook_writer.collect_formats(@book)
|
50
|
+
assert_equal 18, @workbook_writer.xf_index(@book, f2)
|
51
|
+
|
52
|
+
end
|
53
|
+
def test_write_fonts
|
54
|
+
num_written = 0
|
55
|
+
sheet = @book.create_worksheet
|
56
|
+
rowi=-1
|
57
|
+
# Stub inner #write_font as a counter:
|
58
|
+
(class << @workbook_writer; self; end).send(:define_method, :write_font) do |*args|
|
59
|
+
num_written += 1
|
60
|
+
end
|
61
|
+
io = StringIO.new("")
|
62
|
+
|
63
|
+
num_written = 0
|
64
|
+
@workbook_writer.collect_formats(@book)
|
65
|
+
@workbook_writer.write_fonts(@book, io)
|
66
|
+
assert_equal 1, num_written # Default format's font
|
67
|
+
|
68
|
+
f1 = Spreadsheet::Format.new
|
69
|
+
sheet.row(rowi+=1).default_format = f1
|
70
|
+
num_written = 0
|
71
|
+
@workbook_writer.collect_formats(@book)
|
72
|
+
@workbook_writer.write_fonts(@book, io)
|
73
|
+
assert_equal 1, num_written # No new fonts
|
74
|
+
|
75
|
+
f2 = Spreadsheet::Format.new
|
76
|
+
f2.font = Spreadsheet::Font.new("Foo")
|
77
|
+
sheet.row(rowi+=1).default_format = f2
|
78
|
+
num_written = 0
|
79
|
+
@workbook_writer.collect_formats(@book)
|
80
|
+
@workbook_writer.write_fonts(@book, io)
|
81
|
+
assert_equal 2, num_written # 2 distinct fonts total
|
82
|
+
|
83
|
+
f3 = Spreadsheet::Format.new
|
84
|
+
f3.font = f2.font # Re-use previous font
|
85
|
+
sheet.row(rowi+=1).default_format = f3
|
86
|
+
num_written = 0
|
87
|
+
@workbook_writer.collect_formats(@book)
|
88
|
+
@workbook_writer.write_fonts(@book, io)
|
89
|
+
assert_equal 2, num_written # 2 distinct fonts total still
|
90
|
+
|
91
|
+
end
|
92
|
+
end
|
93
|
+
end
|
94
|
+
end
|
95
|
+
end
|
@@ -0,0 +1,81 @@
|
|
1
|
+
#!/usr/bin/env ruby
|
2
|
+
# Excel::Writer::TestWorksheet -- Spreadheet -- 21.11.2007 -- hwyss@ywesee.com
|
3
|
+
|
4
|
+
require 'test/unit'
|
5
|
+
require 'spreadsheet/excel/writer/worksheet'
|
6
|
+
|
7
|
+
module Spreadsheet
|
8
|
+
module Excel
|
9
|
+
module Writer
|
10
|
+
class TestWorksheet < Test::Unit::TestCase
|
11
|
+
def test_need_number
|
12
|
+
sheet = Worksheet.new nil, nil
|
13
|
+
assert_equal false, sheet.need_number?(10)
|
14
|
+
assert_equal false, sheet.need_number?(114.55)
|
15
|
+
assert_equal false, sheet.need_number?(0.1)
|
16
|
+
assert_equal false, sheet.need_number?(0.01)
|
17
|
+
assert_equal false, sheet.need_number?(0 / 0.0) # NaN
|
18
|
+
assert_equal true, sheet.need_number?(0.001)
|
19
|
+
assert_equal true, sheet.need_number?(10000000.0)
|
20
|
+
end
|
21
|
+
|
22
|
+
class RowMock
|
23
|
+
attr_accessor :idx, :first_used, :first_unused, :height, :outline_level
|
24
|
+
|
25
|
+
def initialize
|
26
|
+
@idx, @first_used, @first_unused, @height, @outline_level = 0,0,0,0,1
|
27
|
+
end
|
28
|
+
|
29
|
+
def method_missing name, *args
|
30
|
+
nil
|
31
|
+
end
|
32
|
+
end
|
33
|
+
|
34
|
+
def test_write_row_should_not_write_if_the_row_has_no_used_columns
|
35
|
+
sheet = Worksheet.new nil, nil
|
36
|
+
row = RowMock.new
|
37
|
+
row.first_used = nil
|
38
|
+
|
39
|
+
sheet.write_row row
|
40
|
+
|
41
|
+
assert_equal '', sheet.data
|
42
|
+
end
|
43
|
+
|
44
|
+
def test_write_row_should_write_if_any_column_is_used
|
45
|
+
sheet = Worksheet.new nil, nil
|
46
|
+
row = RowMock.new
|
47
|
+
|
48
|
+
sheet.write_row row
|
49
|
+
|
50
|
+
assert_equal false, sheet.data.empty?
|
51
|
+
end
|
52
|
+
|
53
|
+
def test_strings
|
54
|
+
book = Spreadsheet::Excel::Workbook.new
|
55
|
+
sheet = book.create_worksheet
|
56
|
+
writer = Worksheet.new book, sheet
|
57
|
+
rowi = -1
|
58
|
+
|
59
|
+
assert_equal(
|
60
|
+
{},
|
61
|
+
writer.strings
|
62
|
+
)
|
63
|
+
|
64
|
+
sheet.row(rowi+=1).concat(["Hello", "World"])
|
65
|
+
assert_equal(
|
66
|
+
{"Hello" => 1, "World" => 1},
|
67
|
+
writer.strings
|
68
|
+
)
|
69
|
+
|
70
|
+
sheet.row(rowi+=1).concat(["Goodbye", "Cruel", "World", 2012])
|
71
|
+
assert_equal(
|
72
|
+
{"Hello" => 1, "Goodbye" => 1, "Cruel" => 1, "World" => 2},
|
73
|
+
writer.strings
|
74
|
+
)
|
75
|
+
|
76
|
+
end
|
77
|
+
|
78
|
+
end
|
79
|
+
end
|
80
|
+
end
|
81
|
+
end
|
data/test/font.rb
ADDED
@@ -0,0 +1,163 @@
|
|
1
|
+
#!/usr/bin/env ruby
|
2
|
+
# TestFont -- Spreadsheet -- 09.10.2008 -- hwyss@ywesee.com
|
3
|
+
|
4
|
+
$: << File.expand_path('../lib', File.dirname(__FILE__))
|
5
|
+
|
6
|
+
require 'test/unit'
|
7
|
+
require 'spreadsheet'
|
8
|
+
|
9
|
+
module Spreadsheet
|
10
|
+
class TestFont < Test::Unit::TestCase
|
11
|
+
def setup
|
12
|
+
@font = Font.new 'Arial'
|
13
|
+
end
|
14
|
+
def test_italic
|
15
|
+
assert_equal false, @font.italic
|
16
|
+
@font.italic!
|
17
|
+
assert_equal true, @font.italic
|
18
|
+
@font.italic = nil
|
19
|
+
assert_equal false, @font.italic
|
20
|
+
@font.italic = 1
|
21
|
+
assert_equal true, @font.italic
|
22
|
+
end
|
23
|
+
def test_encoding
|
24
|
+
assert_equal :default, @font.encoding
|
25
|
+
@font.encoding = :apple_roman
|
26
|
+
assert_equal :apple_roman, @font.encoding
|
27
|
+
@font.encoding = 'Chinese Simplified'
|
28
|
+
assert_equal :chinese_simplified, @font.encoding
|
29
|
+
assert_raises ArgumentError do @font.size = 'ascii' end
|
30
|
+
assert_equal :chinese_simplified, @font.encoding
|
31
|
+
@font.encoding = nil
|
32
|
+
assert_equal :default, @font.encoding
|
33
|
+
end
|
34
|
+
def test_family
|
35
|
+
assert_equal :none, @font.family
|
36
|
+
@font.family = :roman
|
37
|
+
assert_equal :roman, @font.family
|
38
|
+
@font.family = 'Swiss'
|
39
|
+
assert_equal :swiss, @font.family
|
40
|
+
assert_raises ArgumentError do @font.size = :greek end
|
41
|
+
assert_equal :swiss, @font.family
|
42
|
+
@font.family = nil
|
43
|
+
assert_equal :none, @font.family
|
44
|
+
end
|
45
|
+
def test_name
|
46
|
+
assert_equal 'Arial', @font.name
|
47
|
+
@font.name = 'Helvetica'
|
48
|
+
assert_equal 'Helvetica', @font.name
|
49
|
+
end
|
50
|
+
def test_outline
|
51
|
+
assert_equal false, @font.outline
|
52
|
+
@font.outline!
|
53
|
+
assert_equal true, @font.outline
|
54
|
+
@font.outline = nil
|
55
|
+
assert_equal false, @font.outline
|
56
|
+
@font.outline = 1
|
57
|
+
assert_equal true, @font.outline
|
58
|
+
end
|
59
|
+
def test_escapement
|
60
|
+
assert_equal :normal, @font.escapement
|
61
|
+
@font.escapement = :superscript
|
62
|
+
assert_equal :superscript, @font.escapement
|
63
|
+
@font.escapement = 'sub'
|
64
|
+
assert_equal :subscript, @font.escapement
|
65
|
+
assert_raises ArgumentError do @font.size = "upwards" end
|
66
|
+
assert_equal :subscript, @font.escapement
|
67
|
+
@font.escapement = nil
|
68
|
+
assert_equal :normal, @font.escapement
|
69
|
+
end
|
70
|
+
def test_shadow
|
71
|
+
assert_equal false, @font.shadow
|
72
|
+
@font.shadow!
|
73
|
+
assert_equal true, @font.shadow
|
74
|
+
@font.shadow = nil
|
75
|
+
assert_equal false, @font.shadow
|
76
|
+
@font.shadow = 1
|
77
|
+
assert_equal true, @font.shadow
|
78
|
+
end
|
79
|
+
def test_size
|
80
|
+
assert_equal 10, @font.size
|
81
|
+
@font.size = 12
|
82
|
+
assert_equal 12, @font.size
|
83
|
+
@font.size = 11.2
|
84
|
+
assert_equal 11.2, @font.size
|
85
|
+
assert_raises ArgumentError do @font.size = "123" end
|
86
|
+
end
|
87
|
+
def test_strikeout
|
88
|
+
assert_equal false, @font.strikeout
|
89
|
+
@font.strikeout!
|
90
|
+
assert_equal true, @font.strikeout
|
91
|
+
@font.strikeout = nil
|
92
|
+
assert_equal false, @font.strikeout
|
93
|
+
@font.strikeout = 1
|
94
|
+
assert_equal true, @font.strikeout
|
95
|
+
end
|
96
|
+
def test_underline
|
97
|
+
assert_equal :none, @font.underline
|
98
|
+
@font.underline = :single
|
99
|
+
assert_equal :single, @font.underline
|
100
|
+
@font.underline = 'double accounting'
|
101
|
+
assert_equal :double_accounting, @font.underline
|
102
|
+
assert_raises ArgumentError do @font.size = :triple end
|
103
|
+
assert_equal :double_accounting, @font.underline
|
104
|
+
@font.underline = nil
|
105
|
+
assert_equal :none, @font.underline
|
106
|
+
@font.underline = true
|
107
|
+
assert_equal :single, @font.underline
|
108
|
+
end
|
109
|
+
def test_weight
|
110
|
+
assert_equal :normal, @font.weight
|
111
|
+
@font.weight = :bold
|
112
|
+
assert_equal :bold, @font.weight
|
113
|
+
@font.weight = 100
|
114
|
+
assert_equal 100, @font.weight
|
115
|
+
assert_raises ArgumentError do @font.weight = Object.new end
|
116
|
+
assert_equal 100, @font.weight
|
117
|
+
@font.weight = 'bold'
|
118
|
+
assert_equal :bold, @font.weight
|
119
|
+
@font.weight = nil
|
120
|
+
assert_equal :normal, @font.weight
|
121
|
+
end
|
122
|
+
def test_key
|
123
|
+
expected = 'Arial_10_normal_normal_none_text_none_default'
|
124
|
+
assert_equal expected, @font.key
|
125
|
+
@font.name = 'Helvetica'
|
126
|
+
expected = 'Helvetica_10_normal_normal_none_text_none_default'
|
127
|
+
assert_equal expected, @font.key
|
128
|
+
@font.size = 12
|
129
|
+
expected = 'Helvetica_12_normal_normal_none_text_none_default'
|
130
|
+
assert_equal expected, @font.key
|
131
|
+
@font.weight = :bold
|
132
|
+
expected = 'Helvetica_12_bold_normal_none_text_none_default'
|
133
|
+
assert_equal expected, @font.key
|
134
|
+
@font.italic!
|
135
|
+
expected = 'Helvetica_12_bold_italic_normal_none_text_none_default'
|
136
|
+
assert_equal expected, @font.key
|
137
|
+
@font.strikeout!
|
138
|
+
expected = 'Helvetica_12_bold_italic_strikeout_normal_none_text_none_default'
|
139
|
+
assert_equal expected, @font.key
|
140
|
+
@font.outline!
|
141
|
+
expected = 'Helvetica_12_bold_italic_strikeout_outline_normal_none_text_none_default'
|
142
|
+
assert_equal expected, @font.key
|
143
|
+
@font.shadow!
|
144
|
+
expected = 'Helvetica_12_bold_italic_strikeout_outline_shadow_normal_none_text_none_default'
|
145
|
+
assert_equal expected, @font.key
|
146
|
+
@font.escapement = :super
|
147
|
+
expected = 'Helvetica_12_bold_italic_strikeout_outline_shadow_superscript_none_text_none_default'
|
148
|
+
assert_equal expected, @font.key
|
149
|
+
@font.underline = :double
|
150
|
+
expected = 'Helvetica_12_bold_italic_strikeout_outline_shadow_superscript_double_text_none_default'
|
151
|
+
assert_equal expected, @font.key
|
152
|
+
@font.color = :blue
|
153
|
+
expected = 'Helvetica_12_bold_italic_strikeout_outline_shadow_superscript_double_blue_none_default'
|
154
|
+
assert_equal expected, @font.key
|
155
|
+
@font.family = :swiss
|
156
|
+
expected = 'Helvetica_12_bold_italic_strikeout_outline_shadow_superscript_double_blue_swiss_default'
|
157
|
+
assert_equal expected, @font.key
|
158
|
+
@font.encoding = :iso_latin1
|
159
|
+
expected = 'Helvetica_12_bold_italic_strikeout_outline_shadow_superscript_double_blue_swiss_iso_latin1'
|
160
|
+
assert_equal expected, @font.key
|
161
|
+
end
|
162
|
+
end
|
163
|
+
end
|