html-table 1.2.2

Sign up to get free protection for your applications and to get access to all the features.
@@ -0,0 +1,259 @@
1
+ ############################################################################
2
+ # tc_attribute_handler.rb
3
+ #
4
+ # Test suite for the AttributeHandler module. For these tests, we'll use an
5
+ # instance of the Table class where the module has been mixed in.
6
+ ############################################################################
7
+ base = File.basename(Dir.pwd)
8
+
9
+ if base == "test" || base =~ /html-table/
10
+ Dir.chdir("..") if base == "test"
11
+ $LOAD_PATH.unshift(Dir.pwd)
12
+ $LOAD_PATH.unshift(Dir.pwd + "/lib")
13
+ $LOAD_PATH.unshift(Dir.pwd + "/lib/html")
14
+ Dir.chdir("test") rescue nil
15
+ end
16
+
17
+ require "test/unit"
18
+ require "html/table"
19
+ include HTML
20
+
21
+ class TC_AttributeHandler < Test::Unit::TestCase
22
+ def setup
23
+ @t = Table.new(["foo",1,"bar"])
24
+ end
25
+
26
+ def test_abbr
27
+ assert_respond_to(@t,:abbr)
28
+ assert_respond_to(@t,:abbr=)
29
+ assert_nothing_raised{ @t.abbr }
30
+ assert_nothing_raised{ @t.abbr="foo" }
31
+ end
32
+
33
+ def test_align
34
+ assert_respond_to(@t,:align)
35
+ assert_respond_to(@t,:align=)
36
+ assert_nothing_raised{ @t.align }
37
+ assert_nothing_raised{ @t.align = "center" }
38
+ assert_raises(ArgumentError){ @t.align = "foo" }
39
+ end
40
+
41
+ def test_axis
42
+ assert_respond_to(@t,:axis)
43
+ assert_respond_to(@t,:axis=)
44
+ assert_nothing_raised{ @t.axis }
45
+ assert_nothing_raised{ @t.axis="foo" }
46
+ end
47
+
48
+ def test_background
49
+ assert_respond_to(@t,:background)
50
+ assert_respond_to(@t,:background=)
51
+ assert_nothing_raised{ @t.background }
52
+ assert_nothing_raised{ @t.background="foo" }
53
+ assert_raises(TypeError){ @t.background = 1 }
54
+ end
55
+
56
+ def test_bgcolor
57
+ assert_respond_to(@t,:bgcolor)
58
+ assert_respond_to(@t,:bgcolor=)
59
+ assert_nothing_raised{ @t.bgcolor }
60
+ assert_nothing_raised{ @t.bgcolor="foo" }
61
+ end
62
+
63
+ def test_border
64
+ assert_respond_to(@t,:border)
65
+ assert_respond_to(@t,:border=)
66
+ assert_nothing_raised{ @t.border }
67
+ assert_nothing_raised{ @t.border = 2 }
68
+ assert_nothing_raised{ @t.border = true }
69
+ assert_nothing_raised{ @t.border = false }
70
+ end
71
+
72
+ def test_bordercolor
73
+ assert_respond_to(@t,:bordercolor)
74
+ assert_respond_to(@t,:bordercolor=)
75
+ assert_nothing_raised{ @t.bordercolor }
76
+ assert_nothing_raised{ @t.bordercolor="foo" }
77
+ end
78
+
79
+ def test_bordercolordark
80
+ assert_respond_to(@t,:bordercolordark)
81
+ assert_respond_to(@t,:bordercolordark=)
82
+ assert_nothing_raised{ @t.bordercolordark }
83
+ assert_nothing_raised{ @t.bordercolordark="foo" }
84
+ end
85
+
86
+ def test_bordercolorlight
87
+ assert_respond_to(@t,:bordercolorlight)
88
+ assert_respond_to(@t,:bordercolorlight=)
89
+ assert_nothing_raised{ @t.bordercolorlight }
90
+ assert_nothing_raised{ @t.bordercolorlight="foo" }
91
+ end
92
+
93
+ def test_cellpadding
94
+ assert_respond_to(@t,:cellpadding)
95
+ assert_respond_to(@t,:cellpadding=)
96
+ assert_nothing_raised{ @t.cellpadding }
97
+ assert_nothing_raised{ @t.cellpadding=1 }
98
+ assert_raises(ArgumentError){ @t.cellpadding = -1 }
99
+ end
100
+
101
+ def test_cellspacing
102
+ assert_respond_to(@t,:cellspacing)
103
+ assert_respond_to(@t,:cellspacing=)
104
+ assert_nothing_raised{ @t.cellspacing }
105
+ assert_nothing_raised{ @t.cellspacing=1 }
106
+ assert_raises(ArgumentError){ @t.cellspacing = -1 }
107
+ end
108
+
109
+ def test_char
110
+ assert_respond_to(@t,:char)
111
+ assert_respond_to(@t,:char=)
112
+ assert_nothing_raised{ @t.char }
113
+ assert_nothing_raised{ @t.char="x" }
114
+ assert_raises(ArgumentError){ @t.char = "xx" }
115
+ end
116
+
117
+ def test_charoff
118
+ assert_respond_to(@t,:charoff)
119
+ assert_respond_to(@t,:charoff=)
120
+ assert_nothing_raised{ @t.charoff }
121
+ assert_nothing_raised{ @t.charoff=1 }
122
+ assert_raises(ArgumentError){ @t.charoff = -1 }
123
+ end
124
+
125
+ def test_col
126
+ assert_respond_to(@t,:col)
127
+ assert_respond_to(@t,:col=)
128
+ assert_nothing_raised{ @t.col }
129
+ assert_nothing_raised{ @t.col=1 }
130
+ assert_raises(ArgumentError){ @t.col = -1 }
131
+ end
132
+
133
+ def test_colspan
134
+ assert_respond_to(@t,:colspan)
135
+ assert_respond_to(@t,:colspan=)
136
+ assert_nothing_raised{ @t.colspan }
137
+ assert_nothing_raised{ @t.colspan=1 }
138
+ assert_raises(ArgumentError){ @t.colspan = -1 }
139
+ end
140
+
141
+ def test_configure
142
+ assert_respond_to(@t,:configure)
143
+ assert_nothing_raised{ @t.configure(0){} }
144
+ assert_nothing_raised{ @t.configure(0,0){} }
145
+ assert_raises(ArgumentError){ @t.configure(0,0,0){} }
146
+ end
147
+
148
+ ########################################################################
149
+ # This test could probably be broken out into separate tests for each
150
+ # type that we want to add as content.
151
+ ########################################################################
152
+ def test_content
153
+ assert_respond_to(@t,:content)
154
+ assert_respond_to(@t,:content=)
155
+ assert_nothing_raised{ @t.content = "foo" }
156
+ assert_nothing_raised{ @t.content = 123 }
157
+ assert_nothing_raised{ @t.content = ["one",2,"three"] }
158
+ assert_nothing_raised{ @t.content = [["foo","bar"],[1,2,3]] }
159
+ assert_nothing_raised{ @t.content = Table::Row.new }
160
+ assert_nothing_raised{ @t.content = Table::Row::Data.new }
161
+ assert_nothing_raised{ @t.content = Table::Row::Header.new }
162
+ assert_nothing_raised{ @t.content = Table::Head.create }
163
+ assert_nothing_raised{ @t.content = Table::Foot.create }
164
+ assert_nothing_raised{ @t.content = Table::Body.new }
165
+ end
166
+
167
+ def test_frame
168
+ assert_respond_to(@t,:frame)
169
+ assert_respond_to(@t,:frame=)
170
+ assert_nothing_raised{ @t.frame }
171
+ assert_nothing_raised{ @t.frame="below" }
172
+ assert_raises(ArgumentError){ @t.frame = "foo" }
173
+ end
174
+
175
+ def test_height
176
+ assert_respond_to(@t,:height)
177
+ assert_respond_to(@t,:height=)
178
+ assert_nothing_raised{ @t.height }
179
+ assert_nothing_raised{ @t.height=1 }
180
+ assert_raises(ArgumentError){ @t.height = -1 }
181
+ end
182
+
183
+ def test_hspace
184
+ assert_respond_to(@t,:hspace)
185
+ assert_respond_to(@t,:hspace=)
186
+ assert_nothing_raised{ @t.hspace }
187
+ assert_nothing_raised{ @t.hspace=1 }
188
+ assert_raises(ArgumentError){ @t.hspace = -1 }
189
+ end
190
+
191
+ def test_nowrap
192
+ assert_respond_to(@t,:nowrap)
193
+ assert_respond_to(@t,:nowrap=)
194
+ assert_nothing_raised{ @t.nowrap }
195
+ assert_nothing_raised{ @t.nowrap=false }
196
+ assert_raises(TypeError){ @t.nowrap = "foo" }
197
+ end
198
+
199
+ def test_rowspan
200
+ assert_respond_to(@t,:rowspan)
201
+ assert_respond_to(@t,:rowspan=)
202
+ assert_nothing_raised{ @t.rowspan }
203
+ assert_nothing_raised{ @t.rowspan=1 }
204
+ assert_raises(ArgumentError){ @t.rowspan = -1 }
205
+ end
206
+
207
+ def test_rules
208
+ assert_respond_to(@t,:rules)
209
+ assert_respond_to(@t,:rules=)
210
+ assert_nothing_raised{ @t.rules}
211
+ assert_nothing_raised{ @t.rules="all" }
212
+ assert_raises(ArgumentError){ @t.rules = "foo" }
213
+ end
214
+
215
+ def test_span
216
+ assert_respond_to(@t,:span)
217
+ assert_respond_to(@t,:span=)
218
+ assert_nothing_raised{ @t.span }
219
+ assert_nothing_raised{ @t.span=1 }
220
+ assert_raises(ArgumentError){ @t.span = -1 }
221
+ end
222
+
223
+ def test_summary
224
+ assert_respond_to(@t,:summary)
225
+ assert_respond_to(@t,:summary=)
226
+ assert_nothing_raised{ @t.summary }
227
+ assert_nothing_raised{ @t.summary="foo" }
228
+ assert_nothing_raised{ @t.summary=1 }
229
+ end
230
+
231
+ def test_valign
232
+ assert_respond_to(@t,:valign)
233
+ assert_respond_to(@t,:valign=)
234
+ assert_nothing_raised{ @t.valign }
235
+ assert_nothing_raised{ @t.valign="center" }
236
+ assert_raises(ArgumentError){ @t.valign="foo" }
237
+ end
238
+
239
+ def test_vspace
240
+ assert_respond_to(@t,:vspace)
241
+ assert_respond_to(@t,:vspace=)
242
+ assert_nothing_raised{ @t.vspace }
243
+ assert_nothing_raised{ @t.vspace=1 }
244
+ assert_raises(ArgumentError){ @t.vspace = -1 }
245
+ end
246
+
247
+ def test_width
248
+ assert_respond_to(@t,:width)
249
+ assert_respond_to(@t,:width=)
250
+ assert_nothing_raised{ @t.width}
251
+ assert_nothing_raised{ @t.width = 10 }
252
+ assert_nothing_raised{ @t.width = "5%" }
253
+ assert_raises(ArgumentError){ @t.width = -1 }
254
+ end
255
+
256
+ def teardown
257
+ @t = nil
258
+ end
259
+ end
@@ -0,0 +1,97 @@
1
+ ############################################
2
+ # tc_body.rb
3
+ #
4
+ # Test suite for the Table::Body class
5
+ ############################################
6
+ base = File.basename(Dir.pwd)
7
+
8
+ if base == "test" || base =~ /html-table/
9
+ Dir.chdir("..") if base == "test"
10
+ $LOAD_PATH.unshift(Dir.pwd)
11
+ $LOAD_PATH.unshift(Dir.pwd + "/lib")
12
+ $LOAD_PATH.unshift(Dir.pwd + "/lib/html")
13
+ Dir.chdir("test") rescue nil
14
+ end
15
+
16
+ require "test/unit"
17
+ require "html/table"
18
+ include HTML
19
+
20
+ class TC_HTML_Table_Body < Test::Unit::TestCase
21
+ def setup
22
+ @t = Table.new
23
+ @tb = Table::Body.new
24
+ end
25
+
26
+ def test_constructor
27
+ assert_nothing_raised{ Table::Body.new }
28
+ assert_nothing_raised{ Table::Body.new("foo") }
29
+ assert_nothing_raised{ Table::Body.new(1) }
30
+ assert_nothing_raised{ Table::Body.new(%w/foo bar baz/) }
31
+ assert_nothing_raised{ Table::Body.new([1,2,3]) }
32
+ assert_nothing_raised{ Table::Body.new([[1,2,3],["foo","bar"]]) }
33
+ end
34
+
35
+ def test_basic
36
+ html = "<tbody></tbody>"
37
+ assert_equal(html,@tb.html.gsub(/\s{2,}|\n/,''))
38
+ end
39
+
40
+ def test_with_attributes
41
+ html = "<tbody align='left' char='x'></tbody>"
42
+ @tb.align = "left"
43
+ @tb.char = 'x'
44
+ assert_equal(html,@tb.html.gsub(/\s{2,}|\n/,''))
45
+ end
46
+
47
+ def test_push_single_row
48
+ html = "<tbody><tr><td>test</td></tr></tbody>"
49
+ @tb.push Table::Row.new{|r| r.content = "test"}
50
+ assert_equal(html,@tb.html.gsub(/\s{2,}|\n/,''))
51
+ end
52
+
53
+ def test_push_multiple_rows
54
+ html = "<tbody><tr><td>test</td></tr><tr><td>foo</td></tr></tbody>"
55
+ r1 = Table::Row.new{|r| r.content = "test"}
56
+ r2 = Table::Row.new{|r| r.content = "foo"}
57
+ @tb.push r1, r2
58
+ assert_equal(html,@tb.html.gsub(/\s{2,}|\n/,''))
59
+ end
60
+
61
+ def test_add_content_directly
62
+ html = "<tbody><tr><td>hello</td><td>world</td></tr></tbody>"
63
+ @tb.content = "hello","world"
64
+ assert_equal(html,@tb.html.gsub(/\s{2,}|\n+/,''))
65
+ end
66
+
67
+ def test_add_content_in_constructor
68
+ html = "<tbody><tr><td>hello</td><td>world</td></tr></tbody>"
69
+ tb = Table::Body.new(%w/hello world/)
70
+ assert_equal(html,tb.html.gsub(/\s{2,}|\n+/,''))
71
+ end
72
+
73
+ def test_configure_column
74
+ html = "<tbody><tr><td>hello</td><td abbr='test' width=3 nowrap>world"
75
+ html += "</td></tr></tbody>"
76
+ @tb.content = "hello","world"
77
+ @tb.configure(0,1){ |d|
78
+ d.abbr = 'test'
79
+ d.width = 3
80
+ d.nowrap = true
81
+ }
82
+ assert_equal(html,@tb.html.gsub(/\s{2,}|\n+/,''))
83
+ end
84
+
85
+ def test_end_tags
86
+ assert_respond_to(Table::Body,:end_tags?)
87
+ assert_respond_to(Table::Body,:end_tags=)
88
+ assert_raises(ArgumentTypeError){ Table::Body.end_tags = "foo" }
89
+ assert_raises(ArgumentTypeError){ Table::Body.end_tags = 1 }
90
+ assert_nothing_raised{ Table::Body.end_tags = true }
91
+ end
92
+
93
+ def teardown
94
+ @t = nil
95
+ @tb = nil
96
+ end
97
+ end
@@ -0,0 +1,90 @@
1
+ ################################################
2
+ # tc_caption.rb
3
+ #
4
+ # Test suite for the Table::Caption class
5
+ ################################################
6
+ base = File.basename(Dir.pwd)
7
+
8
+ if base == "test" || base =~ /html-table/
9
+ Dir.chdir("..") if base == "test"
10
+ $LOAD_PATH.unshift(Dir.pwd)
11
+ $LOAD_PATH.unshift(Dir.pwd + "/lib")
12
+ $LOAD_PATH.unshift(Dir.pwd + "/lib/html")
13
+ Dir.chdir("test") rescue nil
14
+ end
15
+
16
+ require "test/unit"
17
+ require "html/table"
18
+ include HTML
19
+
20
+ class TC_HTML_Table_Caption < Test::Unit::TestCase
21
+ def setup
22
+ @t = Table.new
23
+ @tc = Table::Caption.new
24
+ end
25
+
26
+ def test_constructor
27
+ assert_nothing_raised{ Table::Caption.new }
28
+ assert_nothing_raised{ Table::Caption.new("foo") }
29
+ assert_nothing_raised{ Table::Caption.new(1) }
30
+ assert_nothing_raised{ Table::Caption.new(%w/foo bar baz/) }
31
+ assert_nothing_raised{ Table::Caption.new([1,2,3]) }
32
+ assert_nothing_raised{ Table::Caption.new([[1,2,3],["foo","bar"]]) }
33
+ end
34
+
35
+ def test_basic
36
+ html = "<caption></caption>"
37
+ assert_equal(html,@tc.html.gsub(/\s+/,''))
38
+ end
39
+
40
+ def test_with_attributes
41
+ html = "<caption align='left' valign='top'></caption>"
42
+ @tc.align = "left"
43
+ @tc.valign = "top"
44
+ assert_equal(html,@tc.html.gsub(/\s{2,}|\n+/,''))
45
+ end
46
+
47
+ def test_configure_not_allowed
48
+ assert_raises(NoMethodError){ @tc.configure }
49
+ end
50
+
51
+ def test_add_content
52
+ html = "<caption>hello world</caption>"
53
+ @tc.content = "hello world"
54
+ assert_equal(html,@tc.html.gsub(/\s{2,}/,''))
55
+ end
56
+
57
+ def test_add_multiple_content_items
58
+ html = "<caption>hello world</caption>"
59
+ @tc.content = "hello"," world"
60
+ assert_equal(html,@tc.html.gsub(/\s{2,}/,''))
61
+ end
62
+
63
+ def test_add_content_in_constructor
64
+ html = "<caption>hello world</caption>"
65
+ tc = Table::Caption.new("hello world")
66
+ assert_equal(html,tc.html.gsub(/\s{2,}/,''))
67
+ end
68
+
69
+ def test_indent_level
70
+ assert_respond_to(Table::Caption,:indent_level)
71
+ assert_respond_to(Table::Caption,:indent_level=)
72
+ assert_raises(ArgumentTypeError){ Table::Caption.indent_level = "foo" }
73
+ assert_nothing_raised{ Table::Caption.indent_level = 3 }
74
+ end
75
+
76
+ def test_only_row_zero
77
+ assert_raises(ArgumentError){ @t[1] = @tc }
78
+ end
79
+
80
+ def test_automatically_set_to_row_zero
81
+ @t.content = "hello","world"
82
+ @t.push(@tc)
83
+ assert_equal(true,@t[0].kind_of?(Table::Caption))
84
+ end
85
+
86
+ def teardown
87
+ @t = nil
88
+ @tc = nil
89
+ end
90
+ end
@@ -0,0 +1,50 @@
1
+ ##################################################
2
+ # tc_col.rb
3
+ #
4
+ # Test suite for the Table::ColGroup::Col class
5
+ ##################################################
6
+ base = File.basename(Dir.pwd)
7
+
8
+ if base == "test" || base =~ /html-table/
9
+ Dir.chdir("..") if base == "test"
10
+ $LOAD_PATH.unshift(Dir.pwd)
11
+ $LOAD_PATH.unshift(Dir.pwd + "/lib")
12
+ $LOAD_PATH.unshift(Dir.pwd + "/lib/html")
13
+ Dir.chdir("test") rescue nil
14
+ end
15
+
16
+ require "test/unit"
17
+ require "html/table"
18
+ include HTML
19
+
20
+ class TC_HTML_Table_Col < Test::Unit::TestCase
21
+ def setup
22
+ @c = Table::ColGroup::Col.new
23
+ @cg = Table::ColGroup.new
24
+ end
25
+
26
+ def test_basic
27
+ html = "<col>"
28
+ assert_equal(html,@c.html.gsub(/\s{2,}|\n+/,''))
29
+ end
30
+
31
+ def test_no_configure
32
+ assert_raises(NoMethodError){ @c.configure }
33
+ end
34
+
35
+ def test_no_content_allowed
36
+ assert_raises(NoMethodError){ @c.content }
37
+ assert_raises(NoMethodError){ @c.content = "foo" }
38
+ end
39
+
40
+ def test_indent_level
41
+ assert_respond_to(Table::ColGroup::Col,:indent_level)
42
+ assert_respond_to(Table::ColGroup::Col,:indent_level=)
43
+ assert_raises(ArgumentTypeError){ Table::ColGroup::Col.indent_level = "foo" }
44
+ assert_nothing_raised{ Table::ColGroup::Col.indent_level = 6 }
45
+ end
46
+
47
+ def teardown
48
+ @c = nil
49
+ end
50
+ end