Spreadsheet-HTML 0.0.1

Sign up to get free protection for your applications and to get access to all the features.
data/t/06-aliases.rb ADDED
@@ -0,0 +1,278 @@
1
+ require "test/unit"
2
+ require "Spreadsheet/HTML"
3
+
4
+ class Test_Aliases < Test::Unit::TestCase
5
+
6
+ def test_portrait
7
+
8
+ data = Array[
9
+ %w(header1 header2 header3 header4),
10
+ %w(foo1 bar1 baz1 qux1),
11
+ %w(foo2 bar2 baz2 qux2),
12
+ %w(foo3 bar3 baz3 qux3),
13
+ %w(foo4 bar4 baz4 qux4)
14
+ ]
15
+
16
+ html = '<table><tr><th>header1</th><th>header2</th><th>header3</th><th>header4</th></tr><tr><td>foo1</td><td>bar1</td><td>baz1</td><td>qux1</td></tr><tr><td>foo2</td><td>bar2</td><td>baz2</td><td>qux2</td></tr><tr><td>foo3</td><td>bar3</td><td>baz3</td><td>qux3</td></tr><tr><td>foo4</td><td>bar4</td><td>baz4</td><td>qux4</td></tr></table>'
17
+
18
+ assert_equal(
19
+ html,
20
+ Spreadsheet::HTML.new( 'data' => data ).portrait(),
21
+ "via constructor and method"
22
+ )
23
+ assert_equal(
24
+ html,
25
+ Spreadsheet::HTML.new.portrait( data ),
26
+ "with array ref"
27
+ )
28
+ assert_equal(
29
+ html,
30
+ Spreadsheet::HTML.new.portrait( 'data' => data ),
31
+ "named args only"
32
+ )
33
+
34
+ assert_equal(
35
+ html,
36
+ Spreadsheet::HTML.new( 'data' => data, 'theta' => 90 ).portrait(),
37
+ "theta disabled via constructor and method"
38
+ )
39
+ assert_equal(
40
+ html,
41
+ Spreadsheet::HTML.new.portrait( data, 'theta' => 180 ),
42
+ "theta disabled with array ref"
43
+ )
44
+ assert_equal(
45
+ html,
46
+ Spreadsheet::HTML.new.portrait( 'data' => data, 'theta' => 270 ),
47
+ "theta disabled named args only"
48
+ )
49
+
50
+ html = '<table><tr><td>header1</td><td>header2</td><td>header3</td><td>header4</td></tr><tr><td>foo1</td><td>bar1</td><td>baz1</td><td>qux1</td></tr><tr><td>foo2</td><td>bar2</td><td>baz2</td><td>qux2</td></tr><tr><td>foo3</td><td>bar3</td><td>baz3</td><td>qux3</td></tr><tr><td>foo4</td><td>bar4</td><td>baz4</td><td>qux4</td></tr></table>'
51
+
52
+ assert_equal(
53
+ html,
54
+ Spreadsheet::HTML.new( 'data' => data, 'matrix' => 1 ).portrait(),
55
+ "matrix via constructor and method"
56
+ )
57
+ assert_equal(
58
+ html,
59
+ Spreadsheet::HTML.new.portrait( data, 'matrix' => 1 ),
60
+ "matrix with array ref"
61
+ )
62
+ assert_equal(
63
+ html,
64
+ Spreadsheet::HTML.new.portrait( 'data' => data, 'matrix' => 1 ),
65
+ "matrix named args only"
66
+ )
67
+
68
+ html = '<table><tr><td>foo1</td><td>bar1</td><td>baz1</td><td>qux1</td></tr><tr><td>foo2</td><td>bar2</td><td>baz2</td><td>qux2</td></tr><tr><td>foo3</td><td>bar3</td><td>baz3</td><td>qux3</td></tr><tr><td>foo4</td><td>bar4</td><td>baz4</td><td>qux4</td></tr></table>'
69
+
70
+ assert_equal(
71
+ html,
72
+ Spreadsheet::HTML.new( 'data' => data, 'headless' => 1 ).portrait(),
73
+ "headless via constructor and method"
74
+ )
75
+ assert_equal(
76
+ html,
77
+ Spreadsheet::HTML.new.portrait( data, 'headless' => 1 ),
78
+ "headless with array ref"
79
+ )
80
+ assert_equal(
81
+ html,
82
+ Spreadsheet::HTML.new.portrait( 'data' => data, 'headless' => 1 ),
83
+ "headless named args only"
84
+ )
85
+
86
+ end
87
+
88
+ def test_landscape
89
+
90
+ data = Array[
91
+ %w(header1 header2 header3 header4),
92
+ %w(foo1 bar1 baz1 qux1),
93
+ %w(foo2 bar2 baz2 qux2),
94
+ %w(foo3 bar3 baz3 qux3),
95
+ %w(foo4 bar4 baz4 qux4)
96
+ ]
97
+
98
+ html = '<table><tr><th>header1</th><td>foo1</td><td>foo2</td><td>foo3</td><td>foo4</td></tr><tr><th>header2</th><td>bar1</td><td>bar2</td><td>bar3</td><td>bar4</td></tr><tr><th>header3</th><td>baz1</td><td>baz2</td><td>baz3</td><td>baz4</td></tr><tr><th>header4</th><td>qux1</td><td>qux2</td><td>qux3</td><td>qux4</td></tr></table>'
99
+
100
+ assert_equal(
101
+ html,
102
+ Spreadsheet::HTML.new( 'data' => data ).landscape(),
103
+ "via constructor and method"
104
+ )
105
+ assert_equal(
106
+ html,
107
+ Spreadsheet::HTML.new.landscape( data ),
108
+ "with array ref"
109
+ )
110
+ assert_equal(
111
+ html,
112
+ Spreadsheet::HTML.new.landscape( 'data' => data ),
113
+ "named args only"
114
+ )
115
+
116
+ assert_equal(
117
+ html,
118
+ Spreadsheet::HTML.new( 'data' => data, 'theta' => 90 ).landscape(),
119
+ "theta disabled via constructor and method"
120
+ )
121
+ assert_equal(
122
+ html,
123
+ Spreadsheet::HTML.new.landscape( data, 'theta' => 180 ),
124
+ "theta disabled with array ref"
125
+ )
126
+ assert_equal(
127
+ html,
128
+ Spreadsheet::HTML.new.landscape( 'data' => data, 'theta' => 270 ),
129
+ "theta disabled named args only"
130
+ )
131
+
132
+ html = '<table><tr><td>header1</td><td>foo1</td><td>foo2</td><td>foo3</td><td>foo4</td></tr><tr><td>header2</td><td>bar1</td><td>bar2</td><td>bar3</td><td>bar4</td></tr><tr><td>header3</td><td>baz1</td><td>baz2</td><td>baz3</td><td>baz4</td></tr><tr><td>header4</td><td>qux1</td><td>qux2</td><td>qux3</td><td>qux4</td></tr></table>'
133
+
134
+ assert_equal(
135
+ html,
136
+ Spreadsheet::HTML.new( 'data' => data, 'matrix' => 1 ).landscape(),
137
+ "matrix via constructor and method"
138
+ )
139
+ assert_equal(
140
+ html,
141
+ Spreadsheet::HTML.new.landscape( data, 'matrix' => 1 ),
142
+ "matrix with array ref"
143
+ )
144
+ assert_equal(
145
+ html,
146
+ Spreadsheet::HTML.new.landscape( 'data' => data, 'matrix' => 1 ),
147
+ "matrix named args only"
148
+ )
149
+
150
+ html = '<table><tr><td>foo1</td><td>foo2</td><td>foo3</td><td>foo4</td></tr><tr><td>bar1</td><td>bar2</td><td>bar3</td><td>bar4</td></tr><tr><td>baz1</td><td>baz2</td><td>baz3</td><td>baz4</td></tr><tr><td>qux1</td><td>qux2</td><td>qux3</td><td>qux4</td></tr></table>'
151
+
152
+ assert_equal(
153
+ html,
154
+ Spreadsheet::HTML.new( 'data' => data, 'headless' => 1 ).landscape(),
155
+ "headless via constructor and method"
156
+ )
157
+ assert_equal(
158
+ html,
159
+ Spreadsheet::HTML.new.landscape( data, 'headless' => 1 ),
160
+ "headless with array ref"
161
+ )
162
+ assert_equal(
163
+ html,
164
+ Spreadsheet::HTML.new.landscape( 'data' => data, 'headless' => 1 ),
165
+ "headless named args only"
166
+ )
167
+
168
+ end
169
+
170
+ def test_aliases
171
+
172
+ data = Array[
173
+ %w(header1 header2 header3 header4),
174
+ %w(foo1 bar1 baz1 qux1),
175
+ %w(foo2 bar2 baz2 qux2),
176
+ %w(foo3 bar3 baz3 qux3),
177
+ %w(foo4 bar4 baz4 qux4)
178
+ ]
179
+
180
+ assert_equal(
181
+ Spreadsheet::HTML.new( 'data' => data ).generate(),
182
+ Spreadsheet::HTML.new( 'data' => data ).portrait(),
183
+ "portrait is generate via constructor and method"
184
+ )
185
+ assert_equal(
186
+ Spreadsheet::HTML.new.generate( data ),
187
+ Spreadsheet::HTML.new.portrait( data ),
188
+ "portrait is generate with array ref"
189
+ )
190
+ assert_equal(
191
+ Spreadsheet::HTML.new.generate( 'data' => data ),
192
+ Spreadsheet::HTML.new.portrait( 'data' => data ),
193
+ "portrait is generate named args only"
194
+ )
195
+
196
+ assert_equal(
197
+ Spreadsheet::HTML.new( 'data' => data ).generate(),
198
+ Spreadsheet::HTML.new( 'data' => data ).north(),
199
+ "north is generate via constructor and method"
200
+ )
201
+ assert_equal(
202
+ Spreadsheet::HTML.new.generate( data ),
203
+ Spreadsheet::HTML.new.north( data ),
204
+ "north is generate with array ref"
205
+ )
206
+ assert_equal(
207
+ Spreadsheet::HTML.new.generate( 'data' => data ),
208
+ Spreadsheet::HTML.new.north( 'data' => data ),
209
+ "north is generate named args only"
210
+ )
211
+
212
+ assert_equal(
213
+ Spreadsheet::HTML.new( 'data' => data ).west(),
214
+ Spreadsheet::HTML.new( 'data' => data ).landscape(),
215
+ "west is landscape via constructor and method"
216
+ )
217
+ assert_equal(
218
+ Spreadsheet::HTML.new.west( data ),
219
+ Spreadsheet::HTML.new.landscape( data ),
220
+ "west is landscape with array ref"
221
+ )
222
+ assert_equal(
223
+ Spreadsheet::HTML.new.west( 'data' => data ),
224
+ Spreadsheet::HTML.new.landscape( 'data' => data ),
225
+ "west is landscape named args only"
226
+ )
227
+
228
+ assert_equal(
229
+ Spreadsheet::HTML.new( 'data' => data ).west(),
230
+ Spreadsheet::HTML.new( 'data' => data, 'theta' => -270 ).generate(),
231
+ "west is theta -270 via constructor and method"
232
+ )
233
+ assert_equal(
234
+ Spreadsheet::HTML.new.west( data ),
235
+ Spreadsheet::HTML.new.generate( data, 'theta' => -270 ),
236
+ "west is theta -270 with array ref"
237
+ )
238
+ assert_equal(
239
+ Spreadsheet::HTML.new.west( 'data' => data ),
240
+ Spreadsheet::HTML.new.generate( 'data' => data, 'theta' => -270 ),
241
+ "west is theta -270 named args only"
242
+ )
243
+
244
+ assert_equal(
245
+ Spreadsheet::HTML.new( 'data' => data ).east(),
246
+ Spreadsheet::HTML.new( 'data' => data, 'theta' => 90, 'pinhead' => 1 ).generate(),
247
+ "east is theta 90 via constructor and method"
248
+ )
249
+ assert_equal(
250
+ Spreadsheet::HTML.new.east( data ),
251
+ Spreadsheet::HTML.new.generate( data, 'theta' => 90, 'pinhead' => 1 ),
252
+ "east is theta 90 with array ref"
253
+ )
254
+ assert_equal(
255
+ Spreadsheet::HTML.new.east( 'data' => data ),
256
+ Spreadsheet::HTML.new.generate( 'data' => data, 'theta' => 90, 'pinhead' => 1 ),
257
+ "east is theta 90 named args only"
258
+ )
259
+
260
+ assert_equal(
261
+ Spreadsheet::HTML.new( 'data' => data ).south(),
262
+ Spreadsheet::HTML.new( 'data' => data, 'theta' => -180, 'pinhead' => 1 ).generate(),
263
+ "south is theta -180 via constructor and method"
264
+ )
265
+ assert_equal(
266
+ Spreadsheet::HTML.new.south( data ),
267
+ Spreadsheet::HTML.new.generate( data, 'theta' => -180, 'pinhead' => 1 ),
268
+ "south is theta -180 with array ref"
269
+ )
270
+ assert_equal(
271
+ Spreadsheet::HTML.new.south( 'data' => data ),
272
+ Spreadsheet::HTML.new.generate( 'data' => data, 'theta' => -180, 'pinhead' => 1 ),
273
+ "south is theta -180 named args only"
274
+ )
275
+
276
+ end
277
+
278
+ end
data/t/07-attrs.rb ADDED
@@ -0,0 +1,184 @@
1
+ require "test/unit"
2
+ require "Spreadsheet/HTML"
3
+
4
+ class Test_Attributes < Test::Unit::TestCase
5
+
6
+ def test_table
7
+
8
+ data = Array[
9
+ %w(header1 header2 header3 header4),
10
+ %w(foo1 bar1 baz1 qux1),
11
+ %w(foo2 bar2 baz2 qux2),
12
+ %w(foo3 bar3 baz3 qux3),
13
+ %w(foo4 bar4 baz4 qux4)
14
+ ]
15
+
16
+ html = '<table class="spreadsheet"><tr><th>header1</th><th>header2</th><th>header3</th><th>header4</th></tr><tr><td>foo1</td><td>bar1</td><td>baz1</td><td>qux1</td></tr><tr><td>foo2</td><td>bar2</td><td>baz2</td><td>qux2</td></tr><tr><td>foo3</td><td>bar3</td><td>baz3</td><td>qux3</td></tr><tr><td>foo4</td><td>bar4</td><td>baz4</td><td>qux4</td></tr></table>'
17
+
18
+ assert_equal(
19
+ html,
20
+ Spreadsheet::HTML.new( 'data' => data, 'table' => { 'class' => 'spreadsheet' } ).generate(),
21
+ "via constructor only"
22
+ )
23
+ assert_equal(
24
+ html,
25
+ Spreadsheet::HTML.new().generate( 'data' => data, 'table' => { 'class' => 'spreadsheet' } ),
26
+ "via method only"
27
+ )
28
+ assert_equal(
29
+ html,
30
+ Spreadsheet::HTML.new( 'data' => data ).generate( 'table' => { 'class' => 'spreadsheet' } ),
31
+ "via constructor and method"
32
+ )
33
+
34
+ end
35
+
36
+ def test_tr
37
+
38
+ data = Array[
39
+ %w(header1 header2 header3 header4),
40
+ %w(foo1 bar1 baz1 qux1),
41
+ %w(foo2 bar2 baz2 qux2),
42
+ %w(foo3 bar3 baz3 qux3),
43
+ %w(foo4 bar4 baz4 qux4)
44
+ ]
45
+
46
+ html = '<table><tr class="row"><th>header1</th><th>header2</th><th>header3</th><th>header4</th></tr><tr class="row"><td>foo1</td><td>bar1</td><td>baz1</td><td>qux1</td></tr><tr class="row"><td>foo2</td><td>bar2</td><td>baz2</td><td>qux2</td></tr><tr class="row"><td>foo3</td><td>bar3</td><td>baz3</td><td>qux3</td></tr><tr class="row"><td>foo4</td><td>bar4</td><td>baz4</td><td>qux4</td></tr></table>'
47
+
48
+ assert_equal(
49
+ html,
50
+ Spreadsheet::HTML.new( 'data' => data, 'tr' => { 'class' => 'row' } ).generate(),
51
+ "via constructor only"
52
+ )
53
+ assert_equal(
54
+ html,
55
+ Spreadsheet::HTML.new().generate( 'data' => data, 'tr' => { 'class' => 'row' } ),
56
+ "via method only"
57
+ )
58
+ assert_equal(
59
+ html,
60
+ Spreadsheet::HTML.new( 'data' => data ).generate( 'tr' => { 'class' => 'row' } ),
61
+ "via constructor and method"
62
+ )
63
+
64
+ end
65
+
66
+ def test_tr_rotate
67
+
68
+ data = Array[
69
+ %w(header1 header2 header3 header4),
70
+ %w(foo1 bar1 baz1 qux1),
71
+ %w(foo2 bar2 baz2 qux2),
72
+ %w(foo3 bar3 baz3 qux3),
73
+ %w(foo4 bar4 baz4 qux4)
74
+ ]
75
+
76
+ html = '<table><tr class="odd"><th>header1</th><th>header2</th><th>header3</th><th>header4</th></tr><tr class="even"><td>foo1</td><td>bar1</td><td>baz1</td><td>qux1</td></tr><tr class="odd"><td>foo2</td><td>bar2</td><td>baz2</td><td>qux2</td></tr><tr class="even"><td>foo3</td><td>bar3</td><td>baz3</td><td>qux3</td></tr><tr class="odd"><td>foo4</td><td>bar4</td><td>baz4</td><td>qux4</td></tr></table>'
77
+
78
+ assert_equal(
79
+ html,
80
+ Spreadsheet::HTML.new( 'data' => data, 'tr' => { 'class' => %w{ odd even } } ).generate(),
81
+ "via constructor only"
82
+ )
83
+ assert_equal(
84
+ html,
85
+ Spreadsheet::HTML.new().generate( 'data' => data, 'tr' => { 'class' => %w{ odd even } } ),
86
+ "via method only"
87
+ )
88
+ assert_equal(
89
+ html,
90
+ Spreadsheet::HTML.new( 'data' => data ).generate( 'tr' => { 'class' => %w{ odd even } } ),
91
+ "via constructor and method"
92
+ )
93
+
94
+ end
95
+ def test_th
96
+
97
+ data = Array[
98
+ %w(header1 header2 header3 header4),
99
+ %w(foo1 bar1 baz1 qux1),
100
+ %w(foo2 bar2 baz2 qux2),
101
+ %w(foo3 bar3 baz3 qux3),
102
+ %w(foo4 bar4 baz4 qux4)
103
+ ]
104
+
105
+ html = '<table><tr><th class="heading">header1</th><th class="heading">header2</th><th class="heading">header3</th><th class="heading">header4</th></tr><tr><td>foo1</td><td>bar1</td><td>baz1</td><td>qux1</td></tr><tr><td>foo2</td><td>bar2</td><td>baz2</td><td>qux2</td></tr><tr><td>foo3</td><td>bar3</td><td>baz3</td><td>qux3</td></tr><tr><td>foo4</td><td>bar4</td><td>baz4</td><td>qux4</td></tr></table>'
106
+
107
+ assert_equal(
108
+ html,
109
+ Spreadsheet::HTML.new( 'data' => data, 'th' => { 'class' => 'heading' } ).generate(),
110
+ "via constructor only"
111
+ )
112
+ assert_equal(
113
+ html,
114
+ Spreadsheet::HTML.new().generate( 'data' => data, 'th' => { 'class' => 'heading' } ),
115
+ "via method only"
116
+ )
117
+ assert_equal(
118
+ html,
119
+ Spreadsheet::HTML.new( 'data' => data ).generate( 'th' => { 'class' => 'heading' } ),
120
+ "via constructor and method"
121
+ )
122
+
123
+ end
124
+
125
+ def test_td
126
+
127
+ data = Array[
128
+ %w(header1 header2 header3 header4),
129
+ %w(foo1 bar1 baz1 qux1),
130
+ %w(foo2 bar2 baz2 qux2),
131
+ %w(foo3 bar3 baz3 qux3),
132
+ %w(foo4 bar4 baz4 qux4)
133
+ ]
134
+
135
+ html = '<table><tr><th>header1</th><th>header2</th><th>header3</th><th>header4</th></tr><tr><td class="cell">foo1</td><td class="cell">bar1</td><td class="cell">baz1</td><td class="cell">qux1</td></tr><tr><td class="cell">foo2</td><td class="cell">bar2</td><td class="cell">baz2</td><td class="cell">qux2</td></tr><tr><td class="cell">foo3</td><td class="cell">bar3</td><td class="cell">baz3</td><td class="cell">qux3</td></tr><tr><td class="cell">foo4</td><td class="cell">bar4</td><td class="cell">baz4</td><td class="cell">qux4</td></tr></table>'
136
+
137
+ assert_equal(
138
+ html,
139
+ Spreadsheet::HTML.new( 'data' => data, 'td' => { 'class' => 'cell' } ).generate(),
140
+ "via constructor only"
141
+ )
142
+ assert_equal(
143
+ html,
144
+ Spreadsheet::HTML.new().generate( 'data' => data, 'td' => { 'class' => 'cell' } ),
145
+ "via method only"
146
+ )
147
+ assert_equal(
148
+ html,
149
+ Spreadsheet::HTML.new( 'data' => data ).generate( 'td' => { 'class' => 'cell' } ),
150
+ "via constructor and method"
151
+ )
152
+
153
+ end
154
+
155
+ def test_td_rotate
156
+
157
+ data = Array[
158
+ %w(header1 header2 header3 header4),
159
+ %w(foo1 bar1 baz1 qux1),
160
+ %w(foo2 bar2 baz2 qux2),
161
+ %w(foo3 bar3 baz3 qux3),
162
+ %w(foo4 bar4 baz4 qux4)
163
+ ]
164
+
165
+ html = '<table><tr><th>header1</th><th>header2</th><th>header3</th><th>header4</th></tr><tr><td style="color: red;">foo1</td><td style="color: green;">bar1</td><td style="color: blue;">baz1</td><td style="color: red;">qux1</td></tr><tr><td style="color: green;">foo2</td><td style="color: blue;">bar2</td><td style="color: red;">baz2</td><td style="color: green;">qux2</td></tr><tr><td style="color: blue;">foo3</td><td style="color: red;">bar3</td><td style="color: green;">baz3</td><td style="color: blue;">qux3</td></tr><tr><td style="color: red;">foo4</td><td style="color: green;">bar4</td><td style="color: blue;">baz4</td><td style="color: red;">qux4</td></tr></table>'
166
+
167
+ assert_equal(
168
+ html,
169
+ Spreadsheet::HTML.new( 'data' => data, 'td' => { 'style' => { 'color' => %w{ red green blue } } } ).generate(),
170
+ "via constructor only"
171
+ )
172
+ assert_equal(
173
+ html,
174
+ Spreadsheet::HTML.new().generate( 'data' => data, 'td' => { 'style' => { 'color' => %w{ red green blue } } } ),
175
+ "via method only"
176
+ )
177
+ assert_equal(
178
+ html,
179
+ Spreadsheet::HTML.new( 'data' => data ).generate( 'td' => { 'style' => { 'color' => %w{ red green blue } } } ),
180
+ "via constructor and method"
181
+ )
182
+
183
+ end
184
+ end