html-table 1.5.0 → 1.5.1

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.
Files changed (59) hide show
  1. checksums.yaml +5 -5
  2. checksums.yaml.gz.sig +3 -1
  3. data.tar.gz.sig +0 -0
  4. data/CHANGES +159 -155
  5. data/MANIFEST +59 -59
  6. data/README +132 -132
  7. data/certs/djberg96_pub.pem +22 -17
  8. data/doc/attributes.rdoc +143 -143
  9. data/doc/table.rdoc +158 -158
  10. data/doc/table_body.rdoc +9 -9
  11. data/doc/table_caption.rdoc +9 -9
  12. data/doc/table_colgroup.rdoc +8 -8
  13. data/doc/table_colgroup_col.rdoc +9 -9
  14. data/doc/table_content.rdoc +15 -15
  15. data/doc/table_foot.rdoc +8 -8
  16. data/doc/table_head.rdoc +11 -11
  17. data/doc/table_row.rdoc +105 -105
  18. data/doc/table_row_data.rdoc +92 -92
  19. data/doc/table_row_header.rdoc +7 -7
  20. data/examples/advanced.rb +128 -128
  21. data/examples/intermediate1.rb +72 -72
  22. data/examples/intermediate2.rb +62 -62
  23. data/examples/intermediate3.rb +46 -46
  24. data/examples/simple1.rb +39 -39
  25. data/examples/simple2.rb +47 -47
  26. data/examples/simple3.rb +41 -41
  27. data/html-table.gemspec +28 -28
  28. data/lib/html-table.rb +1 -1
  29. data/lib/html/attribute_handler.rb +403 -403
  30. data/lib/html/body.rb +37 -37
  31. data/lib/html/caption.rb +49 -49
  32. data/lib/html/col.rb +41 -41
  33. data/lib/html/colgroup.rb +113 -113
  34. data/lib/html/content.rb +18 -18
  35. data/lib/html/data.rb +69 -69
  36. data/lib/html/foot.rb +49 -49
  37. data/lib/html/head.rb +49 -49
  38. data/lib/html/header.rb +65 -65
  39. data/lib/html/html_handler.rb +120 -120
  40. data/lib/html/row.rb +188 -188
  41. data/lib/html/table.rb +323 -323
  42. data/lib/html/tablesection.rb +48 -48
  43. data/lib/html/tag_handler.rb +121 -121
  44. data/test/test_attribute_handler.rb +361 -361
  45. data/test/test_body.rb +87 -87
  46. data/test/test_caption.rb +80 -80
  47. data/test/test_col.rb +40 -40
  48. data/test/test_colgroup.rb +89 -89
  49. data/test/test_data.rb +77 -77
  50. data/test/test_foot.rb +111 -111
  51. data/test/test_head.rb +104 -104
  52. data/test/test_header.rb +77 -77
  53. data/test/test_html_handler.rb +37 -37
  54. data/test/test_row.rb +141 -141
  55. data/test/test_table.rb +159 -158
  56. data/test/test_tablesection.rb +42 -42
  57. data/test/test_tag_handler.rb +90 -90
  58. metadata +25 -20
  59. metadata.gz.sig +0 -0
@@ -1,87 +1,87 @@
1
- ############################################
2
- # test_body.rb
3
- #
4
- # Test suite for the Table::Body class
5
- ############################################
6
- require 'test-unit'
7
- require 'html/table'
8
- include HTML
9
-
10
- class TC_HTML_Table_Body < Test::Unit::TestCase
11
- def setup
12
- @table = Table.new
13
- @tbody = Table::Body.new
14
- end
15
-
16
- def test_constructor
17
- assert_nothing_raised{ Table::Body.new }
18
- assert_nothing_raised{ Table::Body.new("foo") }
19
- assert_nothing_raised{ Table::Body.new(1) }
20
- assert_nothing_raised{ Table::Body.new(%w/foo bar baz/) }
21
- assert_nothing_raised{ Table::Body.new([1,2,3]) }
22
- assert_nothing_raised{ Table::Body.new([[1,2,3],["foo","bar"]]) }
23
- end
24
-
25
- def test_basic
26
- html = "<tbody></tbody>"
27
- assert_equal(html, @tbody.html.gsub(/\s{2,}|\n/,''))
28
- end
29
-
30
- def test_with_attributes
31
- html = "<tbody align='left' char='x'></tbody>"
32
- @tbody.align = "left"
33
- @tbody.char = 'x'
34
- assert_equal(html, @tbody.html.gsub(/\s{2,}|\n/,''))
35
- end
36
-
37
- def test_push_single_row
38
- html = "<tbody><tr><td>test</td></tr></tbody>"
39
- @tbody.push Table::Row.new{|r| r.content = "test" }
40
- assert_equal(html, @tbody.html.gsub(/\s{2,}|\n/,''))
41
- end
42
-
43
- def test_push_multiple_rows
44
- html = "<tbody><tr><td>test</td></tr><tr><td>foo</td></tr></tbody>"
45
- r1 = Table::Row.new{|r| r.content = "test" }
46
- r2 = Table::Row.new{|r| r.content = "foo" }
47
- @tbody.push r1, r2
48
- assert_equal(html, @tbody.html.gsub(/\s{2,}|\n/,''))
49
- end
50
-
51
- def test_add_content_directly
52
- html = "<tbody><tr><td>hello</td><td>world</td></tr></tbody>"
53
- @tbody.content = "hello","world"
54
- assert_equal(html, @tbody.html.gsub(/\s{2,}|\n+/,''))
55
- end
56
-
57
- def test_add_content_in_constructor
58
- html = "<tbody><tr><td>hello</td><td>world</td></tr></tbody>"
59
- tb = Table::Body.new(%w/hello world/)
60
- assert_equal(html, tb.html.gsub(/\s{2,}|\n+/,''))
61
- end
62
-
63
- def test_configure_column
64
- html = "<tbody><tr><td>hello</td><td abbr='test' width=3 nowrap>world"
65
- html += "</td></tr></tbody>"
66
- @tbody.content = "hello","world"
67
- @tbody.configure(0,1){ |data|
68
- data.abbr = 'test'
69
- data.width = 3
70
- data.nowrap = true
71
- }
72
- assert_equal(html, @tbody.html.gsub(/\s{2,}|\n+/,''))
73
- end
74
-
75
- def test_end_tags
76
- assert_respond_to(Table::Body, :end_tags?)
77
- assert_respond_to(Table::Body, :end_tags=)
78
- assert_raises(ArgumentTypeError){ Table::Body.end_tags = "foo" }
79
- assert_raises(ArgumentTypeError){ Table::Body.end_tags = 1 }
80
- assert_nothing_raised{ Table::Body.end_tags = true }
81
- end
82
-
83
- def teardown
84
- @table = nil
85
- @tbody = nil
86
- end
87
- end
1
+ ############################################
2
+ # test_body.rb
3
+ #
4
+ # Test suite for the Table::Body class
5
+ ############################################
6
+ require 'test-unit'
7
+ require 'html/table'
8
+ include HTML
9
+
10
+ class TC_HTML_Table_Body < Test::Unit::TestCase
11
+ def setup
12
+ @table = Table.new
13
+ @tbody = Table::Body.new
14
+ end
15
+
16
+ def test_constructor
17
+ assert_nothing_raised{ Table::Body.new }
18
+ assert_nothing_raised{ Table::Body.new("foo") }
19
+ assert_nothing_raised{ Table::Body.new(1) }
20
+ assert_nothing_raised{ Table::Body.new(%w/foo bar baz/) }
21
+ assert_nothing_raised{ Table::Body.new([1,2,3]) }
22
+ assert_nothing_raised{ Table::Body.new([[1,2,3],["foo","bar"]]) }
23
+ end
24
+
25
+ def test_basic
26
+ html = "<tbody></tbody>"
27
+ assert_equal(html, @tbody.html.gsub(/\s{2,}|\n/,''))
28
+ end
29
+
30
+ def test_with_attributes
31
+ html = "<tbody align='left' char='x'></tbody>"
32
+ @tbody.align = "left"
33
+ @tbody.char = 'x'
34
+ assert_equal(html, @tbody.html.gsub(/\s{2,}|\n/,''))
35
+ end
36
+
37
+ def test_push_single_row
38
+ html = "<tbody><tr><td>test</td></tr></tbody>"
39
+ @tbody.push Table::Row.new{|r| r.content = "test" }
40
+ assert_equal(html, @tbody.html.gsub(/\s{2,}|\n/,''))
41
+ end
42
+
43
+ def test_push_multiple_rows
44
+ html = "<tbody><tr><td>test</td></tr><tr><td>foo</td></tr></tbody>"
45
+ r1 = Table::Row.new{|r| r.content = "test" }
46
+ r2 = Table::Row.new{|r| r.content = "foo" }
47
+ @tbody.push r1, r2
48
+ assert_equal(html, @tbody.html.gsub(/\s{2,}|\n/,''))
49
+ end
50
+
51
+ def test_add_content_directly
52
+ html = "<tbody><tr><td>hello</td><td>world</td></tr></tbody>"
53
+ @tbody.content = "hello","world"
54
+ assert_equal(html, @tbody.html.gsub(/\s{2,}|\n+/,''))
55
+ end
56
+
57
+ def test_add_content_in_constructor
58
+ html = "<tbody><tr><td>hello</td><td>world</td></tr></tbody>"
59
+ tb = Table::Body.new(%w/hello world/)
60
+ assert_equal(html, tb.html.gsub(/\s{2,}|\n+/,''))
61
+ end
62
+
63
+ def test_configure_column
64
+ html = "<tbody><tr><td>hello</td><td abbr='test' width=3 nowrap>world"
65
+ html += "</td></tr></tbody>"
66
+ @tbody.content = "hello","world"
67
+ @tbody.configure(0,1){ |data|
68
+ data.abbr = 'test'
69
+ data.width = 3
70
+ data.nowrap = true
71
+ }
72
+ assert_equal(html, @tbody.html.gsub(/\s{2,}|\n+/,''))
73
+ end
74
+
75
+ def test_end_tags
76
+ assert_respond_to(Table::Body, :end_tags?)
77
+ assert_respond_to(Table::Body, :end_tags=)
78
+ assert_raises(ArgumentTypeError){ Table::Body.end_tags = "foo" }
79
+ assert_raises(ArgumentTypeError){ Table::Body.end_tags = 1 }
80
+ assert_nothing_raised{ Table::Body.end_tags = true }
81
+ end
82
+
83
+ def teardown
84
+ @table = nil
85
+ @tbody = nil
86
+ end
87
+ end
@@ -1,80 +1,80 @@
1
- ################################################
2
- # test_caption.rb
3
- #
4
- # Test suite for the Table::Caption class
5
- ################################################
6
- require 'test-unit'
7
- require 'html/table'
8
- include HTML
9
-
10
- class TC_HTML_Table_Caption < Test::Unit::TestCase
11
- def setup
12
- @table = Table.new
13
- @tcaption = Table::Caption.new
14
- end
15
-
16
- def test_constructor
17
- assert_nothing_raised{ Table::Caption.new }
18
- assert_nothing_raised{ Table::Caption.new("foo") }
19
- assert_nothing_raised{ Table::Caption.new(1) }
20
- assert_nothing_raised{ Table::Caption.new(%w/foo bar baz/) }
21
- assert_nothing_raised{ Table::Caption.new([1,2,3]) }
22
- assert_nothing_raised{ Table::Caption.new([[1,2,3],["foo","bar"]]) }
23
- end
24
-
25
- def test_basic
26
- html = "<caption></caption>"
27
- assert_equal(html, @tcaption.html.gsub(/\s+/,''))
28
- end
29
-
30
- def test_with_attributes
31
- html = "<caption align='left' valign='top'></caption>"
32
- @tcaption.align = "left"
33
- @tcaption.valign = "top"
34
- assert_equal(html, @tcaption.html.gsub(/\s{2,}|\n+/,''))
35
- end
36
-
37
- def test_configure_not_allowed
38
- assert_raises(NoMethodError){ @tcaption.configure }
39
- end
40
-
41
- def test_add_content
42
- html = "<caption>hello world</caption>"
43
- @tcaption.content = "hello world"
44
- assert_equal(html,@tcaption.html.gsub(/\s{2,}/,''))
45
- end
46
-
47
- def test_add_multiple_content_items
48
- html = "<caption>hello world</caption>"
49
- @tcaption.content = "hello"," world"
50
- assert_equal(html,@tcaption.html.gsub(/\s{2,}/,''))
51
- end
52
-
53
- def test_add_content_in_constructor
54
- html = "<caption>hello world</caption>"
55
- @tcaption = Table::Caption.new("hello world")
56
- assert_equal(html, @tcaption.html.gsub(/\s{2,}/,''))
57
- end
58
-
59
- def test_indent_level
60
- assert_respond_to(Table::Caption,:indent_level)
61
- assert_respond_to(Table::Caption,:indent_level=)
62
- assert_raises(ArgumentTypeError){ Table::Caption.indent_level = "foo" }
63
- assert_nothing_raised{ Table::Caption.indent_level = 3 }
64
- end
65
-
66
- def test_only_row_zero_allowed
67
- assert_raises(ArgumentError){ @table[1] = @tcaption }
68
- end
69
-
70
- def test_automatically_set_to_row_zero
71
- @table.content = "hello","world"
72
- @table.push(@tcaption)
73
- assert_equal(true, @table[0].kind_of?(Table::Caption))
74
- end
75
-
76
- def teardown
77
- @table = nil
78
- @tcaption = nil
79
- end
80
- end
1
+ ################################################
2
+ # test_caption.rb
3
+ #
4
+ # Test suite for the Table::Caption class
5
+ ################################################
6
+ require 'test-unit'
7
+ require 'html/table'
8
+ include HTML
9
+
10
+ class TC_HTML_Table_Caption < Test::Unit::TestCase
11
+ def setup
12
+ @table = Table.new
13
+ @tcaption = Table::Caption.new
14
+ end
15
+
16
+ def test_constructor
17
+ assert_nothing_raised{ Table::Caption.new }
18
+ assert_nothing_raised{ Table::Caption.new("foo") }
19
+ assert_nothing_raised{ Table::Caption.new(1) }
20
+ assert_nothing_raised{ Table::Caption.new(%w/foo bar baz/) }
21
+ assert_nothing_raised{ Table::Caption.new([1,2,3]) }
22
+ assert_nothing_raised{ Table::Caption.new([[1,2,3],["foo","bar"]]) }
23
+ end
24
+
25
+ def test_basic
26
+ html = "<caption></caption>"
27
+ assert_equal(html, @tcaption.html.gsub(/\s+/,''))
28
+ end
29
+
30
+ def test_with_attributes
31
+ html = "<caption align='left' valign='top'></caption>"
32
+ @tcaption.align = "left"
33
+ @tcaption.valign = "top"
34
+ assert_equal(html, @tcaption.html.gsub(/\s{2,}|\n+/,''))
35
+ end
36
+
37
+ def test_configure_not_allowed
38
+ assert_raises(NoMethodError){ @tcaption.configure }
39
+ end
40
+
41
+ def test_add_content
42
+ html = "<caption>hello world</caption>"
43
+ @tcaption.content = "hello world"
44
+ assert_equal(html,@tcaption.html.gsub(/\s{2,}/,''))
45
+ end
46
+
47
+ def test_add_multiple_content_items
48
+ html = "<caption>hello world</caption>"
49
+ @tcaption.content = "hello"," world"
50
+ assert_equal(html,@tcaption.html.gsub(/\s{2,}/,''))
51
+ end
52
+
53
+ def test_add_content_in_constructor
54
+ html = "<caption>hello world</caption>"
55
+ @tcaption = Table::Caption.new("hello world")
56
+ assert_equal(html, @tcaption.html.gsub(/\s{2,}/,''))
57
+ end
58
+
59
+ def test_indent_level
60
+ assert_respond_to(Table::Caption,:indent_level)
61
+ assert_respond_to(Table::Caption,:indent_level=)
62
+ assert_raises(ArgumentTypeError){ Table::Caption.indent_level = "foo" }
63
+ assert_nothing_raised{ Table::Caption.indent_level = 3 }
64
+ end
65
+
66
+ def test_only_row_zero_allowed
67
+ assert_raises(ArgumentError){ @table[1] = @tcaption }
68
+ end
69
+
70
+ def test_automatically_set_to_row_zero
71
+ @table.content = "hello","world"
72
+ @table.push(@tcaption)
73
+ assert_equal(true, @table[0].kind_of?(Table::Caption))
74
+ end
75
+
76
+ def teardown
77
+ @table = nil
78
+ @tcaption = nil
79
+ end
80
+ end
@@ -1,40 +1,40 @@
1
- ##################################################
2
- # test_col.rb
3
- #
4
- # Test suite for the Table::ColGroup::Col class
5
- ##################################################
6
- require 'test-unit'
7
- require 'html/table'
8
- include HTML
9
-
10
- class TC_HTML_Table_Col < Test::Unit::TestCase
11
- def setup
12
- @col = Table::ColGroup::Col.new
13
- @cgroup = Table::ColGroup.new
14
- end
15
-
16
- def test_basic
17
- html = "<col>"
18
- assert_equal(html, @col.html.gsub(/\s{2,}|\n+/,''))
19
- end
20
-
21
- def test_no_configure
22
- assert_raises(NoMethodError){ @col.configure }
23
- end
24
-
25
- def test_no_content_allowed
26
- assert_raises(NoMethodError){ @col.content }
27
- assert_raises(NoMethodError){ @col.content = "foo" }
28
- end
29
-
30
- def test_indent_level
31
- assert_respond_to(Table::ColGroup::Col,:indent_level)
32
- assert_respond_to(Table::ColGroup::Col,:indent_level=)
33
- assert_raises(ArgumentTypeError){ Table::ColGroup::Col.indent_level = "foo" }
34
- assert_nothing_raised{ Table::ColGroup::Col.indent_level = 6 }
35
- end
36
-
37
- def teardown
38
- @col = nil
39
- end
40
- end
1
+ ##################################################
2
+ # test_col.rb
3
+ #
4
+ # Test suite for the Table::ColGroup::Col class
5
+ ##################################################
6
+ require 'test-unit'
7
+ require 'html/table'
8
+ include HTML
9
+
10
+ class TC_HTML_Table_Col < Test::Unit::TestCase
11
+ def setup
12
+ @col = Table::ColGroup::Col.new
13
+ @cgroup = Table::ColGroup.new
14
+ end
15
+
16
+ def test_basic
17
+ html = "<col>"
18
+ assert_equal(html, @col.html.gsub(/\s{2,}|\n+/,''))
19
+ end
20
+
21
+ def test_no_configure
22
+ assert_raises(NoMethodError){ @col.configure }
23
+ end
24
+
25
+ def test_no_content_allowed
26
+ assert_raises(NoMethodError){ @col.content }
27
+ assert_raises(NoMethodError){ @col.content = "foo" }
28
+ end
29
+
30
+ def test_indent_level
31
+ assert_respond_to(Table::ColGroup::Col,:indent_level)
32
+ assert_respond_to(Table::ColGroup::Col,:indent_level=)
33
+ assert_raises(ArgumentTypeError){ Table::ColGroup::Col.indent_level = "foo" }
34
+ assert_nothing_raised{ Table::ColGroup::Col.indent_level = 6 }
35
+ end
36
+
37
+ def teardown
38
+ @col = nil
39
+ end
40
+ end
@@ -1,89 +1,89 @@
1
- ############################################
2
- # test_colgroup.rb
3
- #
4
- # Test suite for the Table::ColGroup class
5
- ############################################
6
- require 'test-unit'
7
- require 'html/table'
8
- include HTML
9
-
10
- class TC_HTML_Table_ColGroup < Test::Unit::TestCase
11
- def setup
12
- @cgroup = Table::ColGroup.new
13
- @col = Table::ColGroup::Col.new
14
- end
15
-
16
- def test_constructor
17
- assert_nothing_raised{ Table::ColGroup.new }
18
- assert_nothing_raised{ Table::ColGroup.new(@col) }
19
- assert_raises(TypeError){ Table::ColGroup.new("foo") }
20
- end
21
-
22
- def test_basic
23
- html = "<colgroup></colgroup>"
24
- assert_equal(html,@cgroup.html.gsub(/\s+/,''))
25
- end
26
-
27
- def test_with_attributes
28
- html = "<colgroup align='center' width='20%'></colgroup>"
29
- @cgroup.align = "center"
30
- @cgroup.width = "20%"
31
- assert_equal(html,@cgroup.html.gsub(/\s{2,}|\n+/,''))
32
- end
33
-
34
- def test_push_single_col_element
35
- html = "<colgroup><col></colgroup>"
36
- @cgroup.push(@col)
37
- assert_equal(html,@cgroup.html.gsub(/\s{2,}|\n+/,''))
38
- end
39
-
40
- def test_index_assignment_constraints
41
- assert_raises(ArgumentTypeError){ @cgroup[0] = "foo" }
42
- assert_raises(ArgumentTypeError){ @cgroup[0] = 1 }
43
- assert_raises(ArgumentTypeError){ @cgroup[1] = Table::Row.new }
44
- assert_nothing_raised{ @cgroup[0] = Table::ColGroup::Col.new }
45
- end
46
-
47
- def test_push_constraints
48
- assert_raises(TypeError){ @cgroup.push(7) }
49
- assert_raises(TypeError){ @cgroup.push("hello") }
50
- assert_raises(TypeError){ @cgroup.push(Table::Row.new) }
51
- assert_nothing_raised{ @cgroup.push(Table::ColGroup::Col.new) }
52
- end
53
-
54
- # Test '<<'
55
- def test_double_arrow_constraints
56
- assert_raises(TypeError){ @cgroup << 7 }
57
- assert_raises(TypeError){ @cgroup << "hello" }
58
- assert_raises(TypeError){ @cgroup << Table::Row.new }
59
- assert_nothing_raised{ @cgroup << Table::ColGroup::Col.new }
60
- end
61
-
62
- def test_configure_error
63
- assert_raises(ArgumentError){ @cgroup.configure(0,0){ } }
64
- end
65
-
66
- def test_content_error
67
- assert_raises(NoMethodError){ @cgroup.content }
68
- assert_raises(NoMethodError){ @cgroup.content = 'blah' }
69
- end
70
-
71
- def test_indent_level
72
- assert_respond_to(Table::ColGroup,:indent_level)
73
- assert_respond_to(Table::ColGroup,:indent_level=)
74
- assert_raises(ArgumentTypeError){ Table::ColGroup.indent_level = "foo" }
75
- assert_nothing_raised{ Table::ColGroup.indent_level = 6 }
76
- end
77
-
78
- def test_end_tags
79
- assert_respond_to(Table::ColGroup,:end_tags?)
80
- assert_respond_to(Table::ColGroup,:end_tags=)
81
- assert_raises(ArgumentTypeError){ Table::ColGroup.end_tags = "foo" }
82
- assert_raises(ArgumentTypeError){ Table::ColGroup.end_tags = 1 }
83
- assert_nothing_raised{ Table::ColGroup.end_tags = true }
84
- end
85
-
86
- def teardown
87
- @cgroup = nil
88
- end
89
- end
1
+ ############################################
2
+ # test_colgroup.rb
3
+ #
4
+ # Test suite for the Table::ColGroup class
5
+ ############################################
6
+ require 'test-unit'
7
+ require 'html/table'
8
+ include HTML
9
+
10
+ class TC_HTML_Table_ColGroup < Test::Unit::TestCase
11
+ def setup
12
+ @cgroup = Table::ColGroup.new
13
+ @col = Table::ColGroup::Col.new
14
+ end
15
+
16
+ def test_constructor
17
+ assert_nothing_raised{ Table::ColGroup.new }
18
+ assert_nothing_raised{ Table::ColGroup.new(@col) }
19
+ assert_raises(TypeError){ Table::ColGroup.new("foo") }
20
+ end
21
+
22
+ def test_basic
23
+ html = "<colgroup></colgroup>"
24
+ assert_equal(html,@cgroup.html.gsub(/\s+/,''))
25
+ end
26
+
27
+ def test_with_attributes
28
+ html = "<colgroup align='center' width='20%'></colgroup>"
29
+ @cgroup.align = "center"
30
+ @cgroup.width = "20%"
31
+ assert_equal(html,@cgroup.html.gsub(/\s{2,}|\n+/,''))
32
+ end
33
+
34
+ def test_push_single_col_element
35
+ html = "<colgroup><col></colgroup>"
36
+ @cgroup.push(@col)
37
+ assert_equal(html,@cgroup.html.gsub(/\s{2,}|\n+/,''))
38
+ end
39
+
40
+ def test_index_assignment_constraints
41
+ assert_raises(ArgumentTypeError){ @cgroup[0] = "foo" }
42
+ assert_raises(ArgumentTypeError){ @cgroup[0] = 1 }
43
+ assert_raises(ArgumentTypeError){ @cgroup[1] = Table::Row.new }
44
+ assert_nothing_raised{ @cgroup[0] = Table::ColGroup::Col.new }
45
+ end
46
+
47
+ def test_push_constraints
48
+ assert_raises(TypeError){ @cgroup.push(7) }
49
+ assert_raises(TypeError){ @cgroup.push("hello") }
50
+ assert_raises(TypeError){ @cgroup.push(Table::Row.new) }
51
+ assert_nothing_raised{ @cgroup.push(Table::ColGroup::Col.new) }
52
+ end
53
+
54
+ # Test '<<'
55
+ def test_double_arrow_constraints
56
+ assert_raises(TypeError){ @cgroup << 7 }
57
+ assert_raises(TypeError){ @cgroup << "hello" }
58
+ assert_raises(TypeError){ @cgroup << Table::Row.new }
59
+ assert_nothing_raised{ @cgroup << Table::ColGroup::Col.new }
60
+ end
61
+
62
+ def test_configure_error
63
+ assert_raises(ArgumentError){ @cgroup.configure(0,0){ } }
64
+ end
65
+
66
+ def test_content_error
67
+ assert_raises(NoMethodError){ @cgroup.content }
68
+ assert_raises(NoMethodError){ @cgroup.content = 'blah' }
69
+ end
70
+
71
+ def test_indent_level
72
+ assert_respond_to(Table::ColGroup,:indent_level)
73
+ assert_respond_to(Table::ColGroup,:indent_level=)
74
+ assert_raises(ArgumentTypeError){ Table::ColGroup.indent_level = "foo" }
75
+ assert_nothing_raised{ Table::ColGroup.indent_level = 6 }
76
+ end
77
+
78
+ def test_end_tags
79
+ assert_respond_to(Table::ColGroup,:end_tags?)
80
+ assert_respond_to(Table::ColGroup,:end_tags=)
81
+ assert_raises(ArgumentTypeError){ Table::ColGroup.end_tags = "foo" }
82
+ assert_raises(ArgumentTypeError){ Table::ColGroup.end_tags = 1 }
83
+ assert_nothing_raised{ Table::ColGroup.end_tags = true }
84
+ end
85
+
86
+ def teardown
87
+ @cgroup = nil
88
+ end
89
+ end