html-table 1.4.2 → 1.5.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.
- checksums.yaml +4 -4
- checksums.yaml.gz.sig +0 -0
- data.tar.gz.sig +0 -0
- data/CHANGES +155 -149
- data/MANIFEST +59 -59
- data/README +132 -132
- data/certs/djberg96_pub.pem +15 -15
- data/doc/attributes.rdoc +143 -143
- data/doc/table.rdoc +158 -158
- data/doc/table_body.rdoc +9 -9
- data/doc/table_caption.rdoc +9 -9
- data/doc/table_colgroup.rdoc +8 -8
- data/doc/table_colgroup_col.rdoc +9 -9
- data/doc/table_content.rdoc +15 -15
- data/doc/table_foot.rdoc +8 -8
- data/doc/table_head.rdoc +11 -11
- data/doc/table_row.rdoc +105 -105
- data/doc/table_row_data.rdoc +92 -92
- data/doc/table_row_header.rdoc +7 -7
- data/examples/advanced.rb +128 -128
- data/examples/intermediate1.rb +72 -72
- data/examples/intermediate2.rb +62 -62
- data/examples/intermediate3.rb +46 -46
- data/examples/simple1.rb +39 -39
- data/examples/simple2.rb +47 -47
- data/examples/simple3.rb +41 -41
- data/html-table.gemspec +28 -28
- data/lib/html-table.rb +1 -1
- data/lib/html/attribute_handler.rb +403 -403
- data/lib/html/body.rb +37 -37
- data/lib/html/caption.rb +49 -49
- data/lib/html/col.rb +41 -41
- data/lib/html/colgroup.rb +113 -113
- data/lib/html/content.rb +18 -18
- data/lib/html/data.rb +69 -69
- data/lib/html/foot.rb +49 -49
- data/lib/html/head.rb +49 -49
- data/lib/html/header.rb +65 -65
- data/lib/html/html_handler.rb +120 -120
- data/lib/html/row.rb +188 -188
- data/lib/html/table.rb +323 -323
- data/lib/html/tablesection.rb +48 -48
- data/lib/html/tag_handler.rb +121 -121
- data/test/test_attribute_handler.rb +361 -361
- data/test/test_body.rb +87 -87
- data/test/test_caption.rb +80 -80
- data/test/test_col.rb +40 -40
- data/test/test_colgroup.rb +89 -89
- data/test/test_data.rb +77 -77
- data/test/test_foot.rb +111 -111
- data/test/test_head.rb +104 -104
- data/test/test_header.rb +77 -77
- data/test/test_html_handler.rb +37 -37
- data/test/test_row.rb +141 -141
- data/test/test_table.rb +158 -158
- data/test/test_tablesection.rb +42 -42
- data/test/test_tag_handler.rb +90 -90
- metadata +22 -22
- metadata.gz.sig +0 -0
data/test/test_header.rb
CHANGED
@@ -1,77 +1,77 @@
|
|
1
|
-
################################################
|
2
|
-
# test_header.rb
|
3
|
-
#
|
4
|
-
# Test suite for the Table::Row::Header class
|
5
|
-
################################################
|
6
|
-
require 'test-unit'
|
7
|
-
require 'html/table'
|
8
|
-
include HTML
|
9
|
-
|
10
|
-
class TC_HTML_Table_Row_Header < Test::Unit::TestCase
|
11
|
-
def setup
|
12
|
-
@theader = Table::Row::Header.new
|
13
|
-
end
|
14
|
-
|
15
|
-
def test_basic
|
16
|
-
html = "<th></th>"
|
17
|
-
assert_equal(html, @theader.html.gsub(/\s+/,''))
|
18
|
-
end
|
19
|
-
|
20
|
-
def test_constructor
|
21
|
-
assert_nothing_raised{ Table::Row::Header.new }
|
22
|
-
assert_nothing_raised{ Table::Row::Header.new("foo") }
|
23
|
-
assert_nothing_raised{ Table::Row::Header.new(1) }
|
24
|
-
assert_nothing_raised{ Table::Row::Header.new(%w/foo bar baz/) }
|
25
|
-
assert_nothing_raised{ Table::Row::Header.new([1,2,3]) }
|
26
|
-
assert_nothing_raised{ Table::Row::Header.new([[1,2,3],["foo","bar"]]) }
|
27
|
-
end
|
28
|
-
|
29
|
-
def test_with_attributes
|
30
|
-
html = "<th align='left' colspan=3 nowrap></th>"
|
31
|
-
@theader.align = 'left'
|
32
|
-
@theader.colspan = 3
|
33
|
-
@theader.nowrap = true
|
34
|
-
assert_equal(html, @theader.html.gsub(/\s{2,}|\n+/,''))
|
35
|
-
end
|
36
|
-
|
37
|
-
def test_configure_not_allowed
|
38
|
-
assert_raises(NoMethodError){ @theader.configure }
|
39
|
-
end
|
40
|
-
|
41
|
-
def test_add_content
|
42
|
-
html = "<th>hello world</th>"
|
43
|
-
@theader.content = "hello world"
|
44
|
-
assert_equal(html, @theader.html.gsub(/\s{2,}/,''))
|
45
|
-
end
|
46
|
-
|
47
|
-
def test_add_multiple_content_items
|
48
|
-
html = "<th>hello world</th>"
|
49
|
-
@theader.content = "hello"," world"
|
50
|
-
assert_equal(html, @theader.html.gsub(/\s{2,}/,''))
|
51
|
-
end
|
52
|
-
|
53
|
-
def test_add_content_in_constructor
|
54
|
-
html = "<th>hello world</th>"
|
55
|
-
@theader = Table::Row::Header.new("hello world")
|
56
|
-
assert_equal(html, @theader.html.gsub(/\s{2,}/,''))
|
57
|
-
end
|
58
|
-
|
59
|
-
def test_indent_level
|
60
|
-
assert_respond_to(Table::Row::Header,:indent_level)
|
61
|
-
assert_respond_to(Table::Row::Header,:indent_level=)
|
62
|
-
assert_raises(ArgumentTypeError){ Table::Row::Header.indent_level = "foo" }
|
63
|
-
assert_nothing_raised{ Table::Row::Header.indent_level = 6 }
|
64
|
-
end
|
65
|
-
|
66
|
-
def test_end_tags
|
67
|
-
assert_respond_to(Table::Row::Header,:end_tags?)
|
68
|
-
assert_respond_to(Table::Row::Header,:end_tags=)
|
69
|
-
assert_raises(ArgumentTypeError){ Table::Row::Header.end_tags = "foo" }
|
70
|
-
assert_raises(ArgumentTypeError){ Table::Row::Header.end_tags = 1 }
|
71
|
-
assert_nothing_raised{ Table::Row::Header.end_tags = true }
|
72
|
-
end
|
73
|
-
|
74
|
-
def teardown
|
75
|
-
@theader = nil
|
76
|
-
end
|
77
|
-
end
|
1
|
+
################################################
|
2
|
+
# test_header.rb
|
3
|
+
#
|
4
|
+
# Test suite for the Table::Row::Header class
|
5
|
+
################################################
|
6
|
+
require 'test-unit'
|
7
|
+
require 'html/table'
|
8
|
+
include HTML
|
9
|
+
|
10
|
+
class TC_HTML_Table_Row_Header < Test::Unit::TestCase
|
11
|
+
def setup
|
12
|
+
@theader = Table::Row::Header.new
|
13
|
+
end
|
14
|
+
|
15
|
+
def test_basic
|
16
|
+
html = "<th></th>"
|
17
|
+
assert_equal(html, @theader.html.gsub(/\s+/,''))
|
18
|
+
end
|
19
|
+
|
20
|
+
def test_constructor
|
21
|
+
assert_nothing_raised{ Table::Row::Header.new }
|
22
|
+
assert_nothing_raised{ Table::Row::Header.new("foo") }
|
23
|
+
assert_nothing_raised{ Table::Row::Header.new(1) }
|
24
|
+
assert_nothing_raised{ Table::Row::Header.new(%w/foo bar baz/) }
|
25
|
+
assert_nothing_raised{ Table::Row::Header.new([1,2,3]) }
|
26
|
+
assert_nothing_raised{ Table::Row::Header.new([[1,2,3],["foo","bar"]]) }
|
27
|
+
end
|
28
|
+
|
29
|
+
def test_with_attributes
|
30
|
+
html = "<th align='left' colspan=3 nowrap></th>"
|
31
|
+
@theader.align = 'left'
|
32
|
+
@theader.colspan = 3
|
33
|
+
@theader.nowrap = true
|
34
|
+
assert_equal(html, @theader.html.gsub(/\s{2,}|\n+/,''))
|
35
|
+
end
|
36
|
+
|
37
|
+
def test_configure_not_allowed
|
38
|
+
assert_raises(NoMethodError){ @theader.configure }
|
39
|
+
end
|
40
|
+
|
41
|
+
def test_add_content
|
42
|
+
html = "<th>hello world</th>"
|
43
|
+
@theader.content = "hello world"
|
44
|
+
assert_equal(html, @theader.html.gsub(/\s{2,}/,''))
|
45
|
+
end
|
46
|
+
|
47
|
+
def test_add_multiple_content_items
|
48
|
+
html = "<th>hello world</th>"
|
49
|
+
@theader.content = "hello"," world"
|
50
|
+
assert_equal(html, @theader.html.gsub(/\s{2,}/,''))
|
51
|
+
end
|
52
|
+
|
53
|
+
def test_add_content_in_constructor
|
54
|
+
html = "<th>hello world</th>"
|
55
|
+
@theader = Table::Row::Header.new("hello world")
|
56
|
+
assert_equal(html, @theader.html.gsub(/\s{2,}/,''))
|
57
|
+
end
|
58
|
+
|
59
|
+
def test_indent_level
|
60
|
+
assert_respond_to(Table::Row::Header,:indent_level)
|
61
|
+
assert_respond_to(Table::Row::Header,:indent_level=)
|
62
|
+
assert_raises(ArgumentTypeError){ Table::Row::Header.indent_level = "foo" }
|
63
|
+
assert_nothing_raised{ Table::Row::Header.indent_level = 6 }
|
64
|
+
end
|
65
|
+
|
66
|
+
def test_end_tags
|
67
|
+
assert_respond_to(Table::Row::Header,:end_tags?)
|
68
|
+
assert_respond_to(Table::Row::Header,:end_tags=)
|
69
|
+
assert_raises(ArgumentTypeError){ Table::Row::Header.end_tags = "foo" }
|
70
|
+
assert_raises(ArgumentTypeError){ Table::Row::Header.end_tags = 1 }
|
71
|
+
assert_nothing_raised{ Table::Row::Header.end_tags = true }
|
72
|
+
end
|
73
|
+
|
74
|
+
def teardown
|
75
|
+
@theader = nil
|
76
|
+
end
|
77
|
+
end
|
data/test/test_html_handler.rb
CHANGED
@@ -1,37 +1,37 @@
|
|
1
|
-
############################################################################
|
2
|
-
# test_html_handler.rb
|
3
|
-
#
|
4
|
-
# Test suite for the HtmlHandler module. For these tests, we'll use an
|
5
|
-
# instance of the Table class where the module has been mixed in.
|
6
|
-
############################################################################
|
7
|
-
require 'test-unit'
|
8
|
-
require 'html/table'
|
9
|
-
include HTML
|
10
|
-
|
11
|
-
class TC_HtmlHandler < Test::Unit::TestCase
|
12
|
-
def setup
|
13
|
-
@table = Table.new(["foo",1,"bar"])
|
14
|
-
end
|
15
|
-
|
16
|
-
def test_html
|
17
|
-
assert_respond_to(@table, :html)
|
18
|
-
assert_nothing_raised{ @table.html }
|
19
|
-
assert_raises(NoMethodError){ @table.html = "foo" }
|
20
|
-
assert_kind_of(String, @table.html)
|
21
|
-
assert_equal(true, @table.html.length > 0)
|
22
|
-
end
|
23
|
-
|
24
|
-
def test_modify_html
|
25
|
-
assert_raises(ArgumentError){ @table.send(:modify_html) }
|
26
|
-
assert_nothing_raised{ @table.send(:modify_html,"nowrap") }
|
27
|
-
assert_nothing_raised{ @table.send(:modify_html,"align","top") }
|
28
|
-
assert_nothing_raised{
|
29
|
-
@table.send(:modify_html,"align","top")
|
30
|
-
@table.send(:modify_html,"align","top")
|
31
|
-
}
|
32
|
-
end
|
33
|
-
|
34
|
-
def teardown
|
35
|
-
@table = nil
|
36
|
-
end
|
37
|
-
end
|
1
|
+
############################################################################
|
2
|
+
# test_html_handler.rb
|
3
|
+
#
|
4
|
+
# Test suite for the HtmlHandler module. For these tests, we'll use an
|
5
|
+
# instance of the Table class where the module has been mixed in.
|
6
|
+
############################################################################
|
7
|
+
require 'test-unit'
|
8
|
+
require 'html/table'
|
9
|
+
include HTML
|
10
|
+
|
11
|
+
class TC_HtmlHandler < Test::Unit::TestCase
|
12
|
+
def setup
|
13
|
+
@table = Table.new(["foo",1,"bar"])
|
14
|
+
end
|
15
|
+
|
16
|
+
def test_html
|
17
|
+
assert_respond_to(@table, :html)
|
18
|
+
assert_nothing_raised{ @table.html }
|
19
|
+
assert_raises(NoMethodError){ @table.html = "foo" }
|
20
|
+
assert_kind_of(String, @table.html)
|
21
|
+
assert_equal(true, @table.html.length > 0)
|
22
|
+
end
|
23
|
+
|
24
|
+
def test_modify_html
|
25
|
+
assert_raises(ArgumentError){ @table.send(:modify_html) }
|
26
|
+
assert_nothing_raised{ @table.send(:modify_html,"nowrap") }
|
27
|
+
assert_nothing_raised{ @table.send(:modify_html,"align","top") }
|
28
|
+
assert_nothing_raised{
|
29
|
+
@table.send(:modify_html,"align","top")
|
30
|
+
@table.send(:modify_html,"align","top")
|
31
|
+
}
|
32
|
+
end
|
33
|
+
|
34
|
+
def teardown
|
35
|
+
@table = nil
|
36
|
+
end
|
37
|
+
end
|
data/test/test_row.rb
CHANGED
@@ -1,141 +1,141 @@
|
|
1
|
-
############################################
|
2
|
-
# test_row.rb
|
3
|
-
#
|
4
|
-
# Test suite for the Table::Row class
|
5
|
-
############################################
|
6
|
-
require 'test-unit'
|
7
|
-
require 'html/table'
|
8
|
-
include HTML
|
9
|
-
|
10
|
-
class TC_HTML_Table_Row < Test::Unit::TestCase
|
11
|
-
def setup
|
12
|
-
@trow = Table::Row.new
|
13
|
-
end
|
14
|
-
|
15
|
-
def test_constructor
|
16
|
-
assert_nothing_raised{ Table::Row.new }
|
17
|
-
assert_nothing_raised{ Table::Row.new("foo") }
|
18
|
-
assert_nothing_raised{ Table::Row.new(1) }
|
19
|
-
assert_nothing_raised{ Table::Row.new([1,2,3]) }
|
20
|
-
assert_nothing_raised{ Table::Row.new([[1,2,3],["foo","bar"]]) }
|
21
|
-
end
|
22
|
-
|
23
|
-
def test_basic
|
24
|
-
html = "<tr></tr>"
|
25
|
-
assert_equal(html,@trow.html.gsub(/\s+/,''))
|
26
|
-
end
|
27
|
-
|
28
|
-
def test_header
|
29
|
-
assert_respond_to(@trow, :header?)
|
30
|
-
assert_respond_to(@trow, :header=)
|
31
|
-
assert_nothing_raised{ @trow.header? }
|
32
|
-
assert_nothing_raised{ @trow.header = true }
|
33
|
-
end
|
34
|
-
|
35
|
-
def test_with_attributes
|
36
|
-
html = "<tr align='center'></tr>"
|
37
|
-
@trow.align = "center"
|
38
|
-
assert_equal(html, @trow.html.gsub(/\s{2,}|\n+/,''))
|
39
|
-
end
|
40
|
-
|
41
|
-
def test_index_assignment_constraints
|
42
|
-
assert_raises(ArgumentTypeError){ @trow[0] = "foo" }
|
43
|
-
assert_raises(ArgumentTypeError){ @trow[0] = 1 }
|
44
|
-
assert_raises(ArgumentTypeError){ @trow[0] = Table::Caption.new }
|
45
|
-
assert_nothing_raised{ @trow[0] = Table::Row::Data.new }
|
46
|
-
assert_nothing_raised{ @trow[0] = Table::Row::Header.new }
|
47
|
-
end
|
48
|
-
|
49
|
-
def test_push_constraints
|
50
|
-
assert_raises(ArgumentTypeError){ @trow.push(Table::Caption.new) }
|
51
|
-
assert_raises(ArgumentTypeError){ @trow.push(nil) }
|
52
|
-
assert_nothing_raised{ @trow.push("test") }
|
53
|
-
assert_nothing_raised{ @trow.push(7) }
|
54
|
-
assert_nothing_raised{ @trow.push(Table::Row::Data.new) }
|
55
|
-
assert_nothing_raised{ @trow.push(Table::Row::Header.new) }
|
56
|
-
end
|
57
|
-
|
58
|
-
# Test the '<<' method
|
59
|
-
def test_doubl_arrow_constraints
|
60
|
-
assert_raises(ArgumentTypeError){ @trow << Table::Caption.new }
|
61
|
-
assert_nothing_raised{ @trow << "test" }
|
62
|
-
assert_nothing_raised{ @trow << "test" << "foo" }
|
63
|
-
assert_nothing_raised{ @trow << Table::Row::Data.new }
|
64
|
-
assert_nothing_raised{ @trow << Table::Row::Header.new }
|
65
|
-
end
|
66
|
-
|
67
|
-
def test_header_in_constructor
|
68
|
-
assert_nothing_raised{ @trow = Table::Row.new('test', true) }
|
69
|
-
html = "<tr><th>test</th></tr>"
|
70
|
-
assert_equal(html, @trow.html.gsub(/\s+/,''))
|
71
|
-
end
|
72
|
-
|
73
|
-
def test_push_single_data_element
|
74
|
-
html = "<tr><td>hello</td></tr>"
|
75
|
-
@trow.push Table::Row::Data.new{ |d| d.content = "hello" }
|
76
|
-
assert_equal(html, @trow.html.gsub(/\s{2,}|\n+/,''))
|
77
|
-
end
|
78
|
-
|
79
|
-
def test_push_multiple_data_element
|
80
|
-
html = "<tr><td>hello</td><td>world</td></tr>"
|
81
|
-
d1 = Table::Row::Data.new{ |d| d.content = "hello" }
|
82
|
-
d2 = Table::Row::Data.new{ |d| d.content = "world" }
|
83
|
-
@trow.push d1, d2
|
84
|
-
assert_equal(html, @trow.html.gsub(/\s{2,}|\n+/,''))
|
85
|
-
end
|
86
|
-
|
87
|
-
def test_add_content_directly
|
88
|
-
html = "<tr><td>hello</td><td>world</td></tr>"
|
89
|
-
@trow.content = "hello","world"
|
90
|
-
assert_equal(html, @trow.html.gsub(/\s{2,}|\n+/,''))
|
91
|
-
end
|
92
|
-
|
93
|
-
def test_add_content_in_constructor
|
94
|
-
html = "<tr><td>hello</td><td>world</td></tr>"
|
95
|
-
@trow = Table::Row.new(%w/hello world/)
|
96
|
-
assert_equal(html, @trow.html.gsub(/\s{2,}|\n+/,''))
|
97
|
-
end
|
98
|
-
|
99
|
-
def test_configure_column
|
100
|
-
html = "<tr><td>hello</td><td abbr='test' width=3 nowrap>world</td></tr>"
|
101
|
-
@trow.content = "hello","world"
|
102
|
-
@trow.configure(1){ |d|
|
103
|
-
d.abbr = 'test'
|
104
|
-
d.width = 3
|
105
|
-
d.nowrap = true
|
106
|
-
}
|
107
|
-
assert_equal(html, @trow.html.gsub(/\s{2,}|\n+/,''))
|
108
|
-
end
|
109
|
-
|
110
|
-
def test_unshift_constraints
|
111
|
-
assert_raises(ArgumentTypeError){ @trow.unshift(Table::Caption.new) }
|
112
|
-
assert_raises(ArgumentTypeError){ @trow.unshift(nil) }
|
113
|
-
assert_nothing_raised{ @trow.unshift("test") }
|
114
|
-
assert_nothing_raised{ @trow.unshift(7) }
|
115
|
-
assert_nothing_raised{ @trow.unshift(Table::Row::Data.new) }
|
116
|
-
assert_nothing_raised{ @trow.unshift(Table::Row::Header.new) }
|
117
|
-
end
|
118
|
-
|
119
|
-
def test_configure_error
|
120
|
-
assert_raises(ArgumentError){ @trow.configure(0,0){ } }
|
121
|
-
end
|
122
|
-
|
123
|
-
def test_indent_level
|
124
|
-
assert_respond_to(Table::Row,:indent_level)
|
125
|
-
assert_respond_to(Table::Row,:indent_level=)
|
126
|
-
assert_raises(ArgumentTypeError){ Table::Row.indent_level = "foo" }
|
127
|
-
assert_nothing_raised{ Table::Row.indent_level = 3 }
|
128
|
-
end
|
129
|
-
|
130
|
-
def test_end_tags
|
131
|
-
assert_respond_to(Table::Row,:end_tags?)
|
132
|
-
assert_respond_to(Table::Row,:end_tags=)
|
133
|
-
assert_raises(ArgumentTypeError){ Table::Row.end_tags = "foo" }
|
134
|
-
assert_raises(ArgumentTypeError){ Table::Row.end_tags = 1 }
|
135
|
-
assert_nothing_raised{ Table::Row.end_tags = true }
|
136
|
-
end
|
137
|
-
|
138
|
-
def teardown
|
139
|
-
@trow = nil
|
140
|
-
end
|
141
|
-
end
|
1
|
+
############################################
|
2
|
+
# test_row.rb
|
3
|
+
#
|
4
|
+
# Test suite for the Table::Row class
|
5
|
+
############################################
|
6
|
+
require 'test-unit'
|
7
|
+
require 'html/table'
|
8
|
+
include HTML
|
9
|
+
|
10
|
+
class TC_HTML_Table_Row < Test::Unit::TestCase
|
11
|
+
def setup
|
12
|
+
@trow = Table::Row.new
|
13
|
+
end
|
14
|
+
|
15
|
+
def test_constructor
|
16
|
+
assert_nothing_raised{ Table::Row.new }
|
17
|
+
assert_nothing_raised{ Table::Row.new("foo") }
|
18
|
+
assert_nothing_raised{ Table::Row.new(1) }
|
19
|
+
assert_nothing_raised{ Table::Row.new([1,2,3]) }
|
20
|
+
assert_nothing_raised{ Table::Row.new([[1,2,3],["foo","bar"]]) }
|
21
|
+
end
|
22
|
+
|
23
|
+
def test_basic
|
24
|
+
html = "<tr></tr>"
|
25
|
+
assert_equal(html,@trow.html.gsub(/\s+/,''))
|
26
|
+
end
|
27
|
+
|
28
|
+
def test_header
|
29
|
+
assert_respond_to(@trow, :header?)
|
30
|
+
assert_respond_to(@trow, :header=)
|
31
|
+
assert_nothing_raised{ @trow.header? }
|
32
|
+
assert_nothing_raised{ @trow.header = true }
|
33
|
+
end
|
34
|
+
|
35
|
+
def test_with_attributes
|
36
|
+
html = "<tr align='center'></tr>"
|
37
|
+
@trow.align = "center"
|
38
|
+
assert_equal(html, @trow.html.gsub(/\s{2,}|\n+/,''))
|
39
|
+
end
|
40
|
+
|
41
|
+
def test_index_assignment_constraints
|
42
|
+
assert_raises(ArgumentTypeError){ @trow[0] = "foo" }
|
43
|
+
assert_raises(ArgumentTypeError){ @trow[0] = 1 }
|
44
|
+
assert_raises(ArgumentTypeError){ @trow[0] = Table::Caption.new }
|
45
|
+
assert_nothing_raised{ @trow[0] = Table::Row::Data.new }
|
46
|
+
assert_nothing_raised{ @trow[0] = Table::Row::Header.new }
|
47
|
+
end
|
48
|
+
|
49
|
+
def test_push_constraints
|
50
|
+
assert_raises(ArgumentTypeError){ @trow.push(Table::Caption.new) }
|
51
|
+
assert_raises(ArgumentTypeError){ @trow.push(nil) }
|
52
|
+
assert_nothing_raised{ @trow.push("test") }
|
53
|
+
assert_nothing_raised{ @trow.push(7) }
|
54
|
+
assert_nothing_raised{ @trow.push(Table::Row::Data.new) }
|
55
|
+
assert_nothing_raised{ @trow.push(Table::Row::Header.new) }
|
56
|
+
end
|
57
|
+
|
58
|
+
# Test the '<<' method
|
59
|
+
def test_doubl_arrow_constraints
|
60
|
+
assert_raises(ArgumentTypeError){ @trow << Table::Caption.new }
|
61
|
+
assert_nothing_raised{ @trow << "test" }
|
62
|
+
assert_nothing_raised{ @trow << "test" << "foo" }
|
63
|
+
assert_nothing_raised{ @trow << Table::Row::Data.new }
|
64
|
+
assert_nothing_raised{ @trow << Table::Row::Header.new }
|
65
|
+
end
|
66
|
+
|
67
|
+
def test_header_in_constructor
|
68
|
+
assert_nothing_raised{ @trow = Table::Row.new('test', true) }
|
69
|
+
html = "<tr><th>test</th></tr>"
|
70
|
+
assert_equal(html, @trow.html.gsub(/\s+/,''))
|
71
|
+
end
|
72
|
+
|
73
|
+
def test_push_single_data_element
|
74
|
+
html = "<tr><td>hello</td></tr>"
|
75
|
+
@trow.push Table::Row::Data.new{ |d| d.content = "hello" }
|
76
|
+
assert_equal(html, @trow.html.gsub(/\s{2,}|\n+/,''))
|
77
|
+
end
|
78
|
+
|
79
|
+
def test_push_multiple_data_element
|
80
|
+
html = "<tr><td>hello</td><td>world</td></tr>"
|
81
|
+
d1 = Table::Row::Data.new{ |d| d.content = "hello" }
|
82
|
+
d2 = Table::Row::Data.new{ |d| d.content = "world" }
|
83
|
+
@trow.push d1, d2
|
84
|
+
assert_equal(html, @trow.html.gsub(/\s{2,}|\n+/,''))
|
85
|
+
end
|
86
|
+
|
87
|
+
def test_add_content_directly
|
88
|
+
html = "<tr><td>hello</td><td>world</td></tr>"
|
89
|
+
@trow.content = "hello","world"
|
90
|
+
assert_equal(html, @trow.html.gsub(/\s{2,}|\n+/,''))
|
91
|
+
end
|
92
|
+
|
93
|
+
def test_add_content_in_constructor
|
94
|
+
html = "<tr><td>hello</td><td>world</td></tr>"
|
95
|
+
@trow = Table::Row.new(%w/hello world/)
|
96
|
+
assert_equal(html, @trow.html.gsub(/\s{2,}|\n+/,''))
|
97
|
+
end
|
98
|
+
|
99
|
+
def test_configure_column
|
100
|
+
html = "<tr><td>hello</td><td abbr='test' width=3 nowrap>world</td></tr>"
|
101
|
+
@trow.content = "hello","world"
|
102
|
+
@trow.configure(1){ |d|
|
103
|
+
d.abbr = 'test'
|
104
|
+
d.width = 3
|
105
|
+
d.nowrap = true
|
106
|
+
}
|
107
|
+
assert_equal(html, @trow.html.gsub(/\s{2,}|\n+/,''))
|
108
|
+
end
|
109
|
+
|
110
|
+
def test_unshift_constraints
|
111
|
+
assert_raises(ArgumentTypeError){ @trow.unshift(Table::Caption.new) }
|
112
|
+
assert_raises(ArgumentTypeError){ @trow.unshift(nil) }
|
113
|
+
assert_nothing_raised{ @trow.unshift("test") }
|
114
|
+
assert_nothing_raised{ @trow.unshift(7) }
|
115
|
+
assert_nothing_raised{ @trow.unshift(Table::Row::Data.new) }
|
116
|
+
assert_nothing_raised{ @trow.unshift(Table::Row::Header.new) }
|
117
|
+
end
|
118
|
+
|
119
|
+
def test_configure_error
|
120
|
+
assert_raises(ArgumentError){ @trow.configure(0,0){ } }
|
121
|
+
end
|
122
|
+
|
123
|
+
def test_indent_level
|
124
|
+
assert_respond_to(Table::Row,:indent_level)
|
125
|
+
assert_respond_to(Table::Row,:indent_level=)
|
126
|
+
assert_raises(ArgumentTypeError){ Table::Row.indent_level = "foo" }
|
127
|
+
assert_nothing_raised{ Table::Row.indent_level = 3 }
|
128
|
+
end
|
129
|
+
|
130
|
+
def test_end_tags
|
131
|
+
assert_respond_to(Table::Row,:end_tags?)
|
132
|
+
assert_respond_to(Table::Row,:end_tags=)
|
133
|
+
assert_raises(ArgumentTypeError){ Table::Row.end_tags = "foo" }
|
134
|
+
assert_raises(ArgumentTypeError){ Table::Row.end_tags = 1 }
|
135
|
+
assert_nothing_raised{ Table::Row.end_tags = true }
|
136
|
+
end
|
137
|
+
|
138
|
+
def teardown
|
139
|
+
@trow = nil
|
140
|
+
end
|
141
|
+
end
|