keeguon-spreadsheet 0.9.3
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.
- 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
|