ruby-web 1.1.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 (190) hide show
  1. data/ChangeLog +474 -0
  2. data/INSTALL.txt +9 -0
  3. data/InstalledFiles +180 -0
  4. data/LICENSE.txt +74 -0
  5. data/Rakefile +529 -0
  6. data/TODO +65 -0
  7. data/doc/additional.xml +149 -0
  8. data/doc/core.xml +652 -0
  9. data/doc/credits/index.xml +52 -0
  10. data/doc/credits/php.contributors.xml +118 -0
  11. data/doc/credits/php.language-snippets.ent +622 -0
  12. data/doc/install/index.xml +136 -0
  13. data/doc/install/mac/index.xml +21 -0
  14. data/doc/install/ruby-web.install.rb.instructions.xml +7 -0
  15. data/doc/install/unix/index.xml +46 -0
  16. data/doc/install/win/apache1.xml +166 -0
  17. data/doc/install/win/apache2.xml +141 -0
  18. data/doc/install/win/iis.xml +162 -0
  19. data/doc/install/win/index.xml +24 -0
  20. data/doc/install/win/installer.xml +31 -0
  21. data/doc/install/win/manual.xml +43 -0
  22. data/doc/manual.xml +69 -0
  23. data/doc/old/apache_cgi.txt +23 -0
  24. data/doc/old/fastcgi.txt +23 -0
  25. data/doc/old/mod_ruby.txt +21 -0
  26. data/doc/old/snippets.rdoc +183 -0
  27. data/doc/old/webrick.txt +23 -0
  28. data/doc/old/windows_cgi.txt +9 -0
  29. data/doc/tutorial.xml +14 -0
  30. data/doc/xsl/manual-multi.xsl +10 -0
  31. data/doc/xsl/manual-pdf.xsl +6 -0
  32. data/doc/xsl/manual-single.xsl +6 -0
  33. data/doc/xsl/manual.css +22 -0
  34. data/install.rb +1022 -0
  35. data/lib/formatter.rb +314 -0
  36. data/lib/html-parser.rb +429 -0
  37. data/lib/htmlrepair.rb +113 -0
  38. data/lib/htmlsplit.rb +842 -0
  39. data/lib/sgml-parser.rb +332 -0
  40. data/lib/web.rb +68 -0
  41. data/lib/web/assertinclude.rb +129 -0
  42. data/lib/web/config.rb +50 -0
  43. data/lib/web/connection.rb +1070 -0
  44. data/lib/web/convenience.rb +154 -0
  45. data/lib/web/formreader.rb +318 -0
  46. data/lib/web/htmlparser/html-parser.rb +429 -0
  47. data/lib/web/htmlparser/sgml-parser.rb +332 -0
  48. data/lib/web/htmltools/element.rb +296 -0
  49. data/lib/web/htmltools/stparser.rb +276 -0
  50. data/lib/web/htmltools/tags.rb +286 -0
  51. data/lib/web/htmltools/tree.rb +139 -0
  52. data/lib/web/htmltools/xmltree.rb +160 -0
  53. data/lib/web/htmltools/xpath.rb +71 -0
  54. data/lib/web/info.rb +63 -0
  55. data/lib/web/load.rb +210 -0
  56. data/lib/web/mime.rb +87 -0
  57. data/lib/web/phprb.rb +340 -0
  58. data/lib/web/resources/test/cookie.rb +33 -0
  59. data/lib/web/resources/test/counter.rb +20 -0
  60. data/lib/web/resources/test/multipart.rb +14 -0
  61. data/lib/web/resources/test/redirect.rb +8 -0
  62. data/lib/web/resources/test/stock.rb +33 -0
  63. data/lib/web/sapi/apache.rb +129 -0
  64. data/lib/web/sapi/fastcgi.rb +22 -0
  65. data/lib/web/sapi/install/apache.rb +180 -0
  66. data/lib/web/sapi/install/iis.rb +93 -0
  67. data/lib/web/sapi/install/macosx.rb +90 -0
  68. data/lib/web/sapi/webrick.rb +86 -0
  69. data/lib/web/session.rb +83 -0
  70. data/lib/web/shim/cgi.rb +129 -0
  71. data/lib/web/shim/rails.rb +175 -0
  72. data/lib/web/stringio.rb +78 -0
  73. data/lib/web/strscanparser.rb +24 -0
  74. data/lib/web/tagparser.rb +96 -0
  75. data/lib/web/testing.rb +666 -0
  76. data/lib/web/traceoutput.rb +75 -0
  77. data/lib/web/unit.rb +56 -0
  78. data/lib/web/upload.rb +59 -0
  79. data/lib/web/validate.rb +52 -0
  80. data/lib/web/wiki.rb +557 -0
  81. data/lib/web/wiki/linker.rb +72 -0
  82. data/lib/web/wiki/page.rb +201 -0
  83. data/lib/webunit.rb +27 -0
  84. data/lib/webunit/assert.rb +152 -0
  85. data/lib/webunit/converter.rb +154 -0
  86. data/lib/webunit/cookie.rb +118 -0
  87. data/lib/webunit/domwalker.rb +185 -0
  88. data/lib/webunit/exception.rb +14 -0
  89. data/lib/webunit/form.rb +116 -0
  90. data/lib/webunit/frame.rb +37 -0
  91. data/lib/webunit/htmlelem.rb +122 -0
  92. data/lib/webunit/image.rb +26 -0
  93. data/lib/webunit/jscript.rb +31 -0
  94. data/lib/webunit/link.rb +33 -0
  95. data/lib/webunit/params.rb +321 -0
  96. data/lib/webunit/parser.rb +229 -0
  97. data/lib/webunit/response.rb +464 -0
  98. data/lib/webunit/runtest.rb +41 -0
  99. data/lib/webunit/table.rb +148 -0
  100. data/lib/webunit/testcase.rb +45 -0
  101. data/lib/webunit/ui/cui/testrunner.rb +50 -0
  102. data/lib/webunit/utils.rb +68 -0
  103. data/lib/webunit/webunit.rb +28 -0
  104. data/test/dev/action.rb +83 -0
  105. data/test/dev/forms.rb +104 -0
  106. data/test/dev/forms2.rb +104 -0
  107. data/test/dev/parser.rb +17 -0
  108. data/test/dev/scripts/dump.rb +24 -0
  109. data/test/dev/scripts/makedist.rb +62 -0
  110. data/test/dev/scripts/uri.rb +41 -0
  111. data/test/dev/scripts/uri/common.rb +432 -0
  112. data/test/dev/scripts/uri/ftp.rb +149 -0
  113. data/test/dev/scripts/uri/generic.rb +1106 -0
  114. data/test/dev/scripts/uri/http.rb +76 -0
  115. data/test/dev/scripts/uri/https.rb +26 -0
  116. data/test/dev/scripts/uri/ldap.rb +238 -0
  117. data/test/dev/scripts/uri/mailto.rb +260 -0
  118. data/test/dev/scripts/urireg.rb +174 -0
  119. data/test/dev/simpledispatcher.rb +156 -0
  120. data/test/dev/test.action.rb +146 -0
  121. data/test/dev/test.formreader.rb +463 -0
  122. data/test/dev/test.simpledispatcher.rb +186 -0
  123. data/test/dev/webunit/conv/digit-0.rb +21 -0
  124. data/test/dev/webunit/conv/digit-1.rb +17 -0
  125. data/test/dev/webunit/conv/digit.rb +23 -0
  126. data/test/dev/webunit/conv/test_digit-0.rb +16 -0
  127. data/test/dev/webunit/conv/test_digit-1.rb +19 -0
  128. data/test/dev/webunit/conv/test_digit.rb +26 -0
  129. data/test/dev/webunit/conv/test_digit_view-0.rb +76 -0
  130. data/test/dev/webunit/conv/test_digit_view-1.rb +102 -0
  131. data/test/dev/webunit/conv/test_digit_view.rb +134 -0
  132. data/test/installation/htdocs/cgi_test.rb +296 -0
  133. data/test/installation/htdocs/test_install.rb +4 -0
  134. data/test/installation/runwebtest.rb +5 -0
  135. data/test/installation/test_cookie.rb +128 -0
  136. data/test/installation/test_form.rb +47 -0
  137. data/test/installation/test_multipart.rb +51 -0
  138. data/test/installation/test_request.rb +24 -0
  139. data/test/installation/test_response.rb +35 -0
  140. data/test/unit/htdocs/cookie.rb +32 -0
  141. data/test/unit/htdocs/multipart.rb +28 -0
  142. data/test/unit/htdocs/redirect.rb +12 -0
  143. data/test/unit/htdocs/simple.rb +13 -0
  144. data/test/unit/htdocs/stock.rb +33 -0
  145. data/test/unit/test_assert.rb +162 -0
  146. data/test/unit/test_cookie.rb +114 -0
  147. data/test/unit/test_domwalker.rb +77 -0
  148. data/test/unit/test_form.rb +42 -0
  149. data/test/unit/test_frame.rb +40 -0
  150. data/test/unit/test_htmlelem.rb +74 -0
  151. data/test/unit/test_image.rb +45 -0
  152. data/test/unit/test_jscript.rb +57 -0
  153. data/test/unit/test_link.rb +85 -0
  154. data/test/unit/test_multipart.rb +51 -0
  155. data/test/unit/test_params.rb +210 -0
  156. data/test/unit/test_parser.rb +53 -0
  157. data/test/unit/test_response.rb +150 -0
  158. data/test/unit/test_table.rb +70 -0
  159. data/test/unit/test_utils.rb +106 -0
  160. data/test/unit/test_webunit.rb +28 -0
  161. data/test/web/mod_ruby_stub.rb +39 -0
  162. data/test/web/test.assertinclude.rb +109 -0
  163. data/test/web/test.buffer.rb +182 -0
  164. data/test/web/test.code.loader.rb +78 -0
  165. data/test/web/test.config.rb +31 -0
  166. data/test/web/test.error.handling.rb +91 -0
  167. data/test/web/test.formreader-2.0.rb +352 -0
  168. data/test/web/test.load.rb +125 -0
  169. data/test/web/test.mime-type.rb +23 -0
  170. data/test/web/test.narf.cgi.rb +106 -0
  171. data/test/web/test.phprb.rb +239 -0
  172. data/test/web/test.request.rb +368 -0
  173. data/test/web/test.response.rb +637 -0
  174. data/test/web/test.ruby-web.rb +10 -0
  175. data/test/web/test.session.rb +50 -0
  176. data/test/web/test.shim.cgi.rb +96 -0
  177. data/test/web/test.tagparser.rb +65 -0
  178. data/test/web/test.template2.rb +297 -0
  179. data/test/web/test.testing2.rb +318 -0
  180. data/test/web/test.upload.rb +45 -0
  181. data/test/web/test.validate.rb +46 -0
  182. data/test/web/test.web.test.rb +495 -0
  183. data/test/wiki/test.history.rb +297 -0
  184. data/test/wiki/test.illustration_page.rb +287 -0
  185. data/test/wiki/test.linker.rb +197 -0
  186. data/test/wiki/test.tarpit.rb +56 -0
  187. data/test/wiki/test.wiki.rb +300 -0
  188. data/test/wikitestroot/admin.rb +7 -0
  189. data/test/wikitestroot/wiki.rb +6 -0
  190. metadata +234 -0
@@ -0,0 +1,70 @@
1
+ =begin
2
+ = test for WebUnit::Table
3
+ Copyright(C) 2001 yuichi TAKAHASHI
4
+ $Id: test_table.rb,v 1.1.1.1 2003/01/21 11:50:40 yuichi Exp $
5
+ =end
6
+
7
+ require 'webunit/webunit'
8
+ require 'runit/cui/testrunner'
9
+
10
+ module WebUnit
11
+
12
+ class TestTable < WebUnit::TestCase
13
+
14
+ def test_accessor
15
+ end
16
+
17
+ def test_Table
18
+
19
+ url = @urlbase + "webunit/table.html"
20
+ response = Response::get( url )
21
+
22
+ table = response.tables[0]
23
+
24
+ assert_instance_of( Array, table.rows )
25
+ assert_equals( 4, table.rows.size )
26
+
27
+ assert_exception( ArgumentError ){ table.at(0) }
28
+ assert_instance_of( TableRow, table.at(1) )
29
+ assert_instance_of( TableRow, table.at(4) )
30
+ assert_exception( RuntimeError ){ table.at(5) }
31
+
32
+ assert_exception( ArgumentError ){ table.at(0,1) }
33
+ assert_exception( ArgumentError ){ table.at(1,0) }
34
+ assert_instance_of( TableCell, table.at(1,1) )
35
+ assert_instance_of( TableCell, table.at(4,3) )
36
+ assert_instance_of( NilTableCell, table.at(5,1) )
37
+ assert_instance_of( NilTableCell, table.at(1,4) )
38
+
39
+ assert_equals( "this 11", table.at(1,1).data )
40
+ assert_equals( "test 23", table.at(2,3).data )
41
+ assert_equals( "this 21", table.at(3,1).data )
42
+ assert_equals( "test 32", table.at(3,2).data )
43
+ assert_equals( "test 32", table.at(3,3).data )
44
+ assert_equals( "this 21", table.at(4,1).data )
45
+
46
+ table = response.tables[1]
47
+
48
+ assert_equals( "green", table.at(1).attrs['bgcolor'] )
49
+ assert_equals( "blue", table.at(2).attrs['bgcolor'] )
50
+ assert_equals( "red", table.at(3).attrs['bgcolor'] )
51
+
52
+ table = response.tables[2]
53
+
54
+ assert_equals( "", table.at(3,1).data )
55
+ assert_equals( "ggg", table.at(3,1).find("a")[0].data )
56
+
57
+ assert_include( "ggg", table.at(3,1) )
58
+ assert( table.at(3,1).has?( response.link ) )
59
+
60
+ assert_equals( 3, table.row_index( "ggg" ) )
61
+ assert_equals( 4, table.row_index( "kkk", 2 ) )
62
+
63
+ assert_equals( 2, table.col_index( "bbb" ) )
64
+ assert_equals( 1, table.col_index( "ggg", 3 ) )
65
+
66
+ end
67
+
68
+ end
69
+
70
+ end
@@ -0,0 +1,106 @@
1
+ =begin
2
+ = test for WebUnit::Utils
3
+ Copyright(C) 2001 yuichi TAKAHASHI
4
+ $Id: test_utils.rb,v 1.1.1.1 2003/01/21 11:50:40 yuichi Exp $
5
+ =end
6
+
7
+ require 'webunit/webunit'
8
+ require 'runit/cui/testrunner'
9
+
10
+ module WebUnit
11
+
12
+ class TestUtils < WebUnit::TestCase
13
+
14
+ def test_parse_url
15
+
16
+ url = "http://localhost/xxxx.html"
17
+ prot, host, port, path = parse_url( url )
18
+
19
+ assert_equals( 'http', prot )
20
+ assert_equals( 'localhost', host )
21
+ assert_equals( 80, port )
22
+ assert_equals( '/xxxx.html', path )
23
+
24
+ url = "http://localhost/"
25
+ prot, host, port, path = parse_url( url )
26
+
27
+ assert_equals( 'http', prot )
28
+ assert_equals( 'localhost', host )
29
+ assert_equals( 80, port )
30
+ assert_equals( '/', path )
31
+
32
+ url = "http://localhost"
33
+ prot, host, port, path = parse_url( url )
34
+
35
+ assert_equals( 'http', prot )
36
+ assert_equals( 'localhost', host )
37
+ assert_equals( 80, port )
38
+ assert_equals( '', path )
39
+
40
+ url = "file:/home/yyyy/xxxx.html"
41
+ prot, host, port, path = parse_url( url )
42
+
43
+ assert_equals( 'file', prot )
44
+ assert_equals( nil, host )
45
+ assert_equals( nil, port )
46
+ assert_equals( '/home/yyyy/xxxx.html', path )
47
+
48
+ url = "yyyy/xxxx.html"
49
+ prot, host, port, path = parse_url( url )
50
+
51
+ assert_equals( nil, prot )
52
+ assert_equals( nil, host )
53
+ assert_equals( nil, port )
54
+ assert_equals( 'yyyy/xxxx.html', path )
55
+
56
+ end
57
+
58
+ def test_orthop_url
59
+
60
+ url = "http://localhost/xxxx.html"
61
+ assert_equals( 'http://localhost:80/xxxx.html', orthop_url( url ) )
62
+
63
+ url = "http://local-host/"
64
+ assert_equals( 'http://local-host:80/', orthop_url( url ) )
65
+
66
+ url = "http://localhost"
67
+ assert_equals( 'http://localhost:80', orthop_url( url ) )
68
+
69
+ url = "http://localhost/a/./xxxx.html"
70
+ assert_equals( 'http://localhost:80/a/xxxx.html', orthop_url( url ) )
71
+
72
+ url = "http://localhost/a/../xxxx.html"
73
+ assert_equals( 'http://localhost:80/xxxx.html', orthop_url( url ) )
74
+
75
+ end
76
+
77
+ def test_complete_url
78
+
79
+ base = "http://localhost:80/a/xxxx.html"
80
+
81
+ url = 'http://localhost:80/a/yyyy.html'
82
+ assert_equals( url, complete_url( url, base ) )
83
+
84
+ url = 'http://localhost:80/yyyy.html'
85
+ assert_equals( url, complete_url( '/yyyy.html', base ) )
86
+
87
+ url = 'http://localhost:80/a/yyyy.html'
88
+ assert_equals( url, complete_url( 'yyyy.html', base ) )
89
+
90
+ assert_equals( base, complete_url( nil, base ) )
91
+
92
+ base = "http://localhost:80/a/xxxx.html?args..."
93
+ url = 'http://localhost:80/a/xxxx.html'
94
+ assert_equals( url, complete_url( nil, base ) )
95
+
96
+ url = 'xxxx.html'
97
+ assert_equals( url, complete_url( url, nil ) )
98
+
99
+ url = 'http://localhost:80/a/xxxx.html'
100
+ assert_equals( url, complete_url( url, nil ) )
101
+
102
+ end
103
+
104
+ end
105
+
106
+ end
@@ -0,0 +1,28 @@
1
+ =begin
2
+ = test for WebUnit
3
+ Copyright(C) 2001 yuichi TAKAHASHI
4
+ $Id: test_webunit.rb,v 1.2 2004/02/11 04:26:40 yuichi Exp $
5
+ =end
6
+
7
+ require 'webunit/webunit'
8
+ require 'runit/cui/testrunner'
9
+
10
+ if $0 == __FILE__
11
+
12
+ module WebUnit
13
+
14
+ class TestWebUnit < WebUnit::TestCase
15
+ end
16
+
17
+ end
18
+
19
+ if ARGV.size == 0
20
+ suite = WebUnit::TestWebUnit::suite
21
+ else
22
+ suite = RUNIT::TestSuite.new
23
+ ARGV.each do |testmethod|
24
+ suite.add_test( WebUnit::TestWebUnit::new( testmethod ) )
25
+ end
26
+ end
27
+ RUNIT::CUI::TestRunner.run( suite )
28
+ end
@@ -0,0 +1,39 @@
1
+ class Apache
2
+ class Request
3
+ attr_reader :status_line, :content_type, :content_encoding, :headers_out, :headers_in
4
+ attr_writer :status_line, :content_type, :content_encoding
5
+
6
+ def initialize
7
+ @headers_out = {}
8
+ eval <<-EVAL
9
+ def @headers_out.add( k, v )
10
+ self[k] ||= []
11
+ self[k].push v
12
+ end
13
+ EVAL
14
+ @headers_in = {}
15
+ end
16
+
17
+ def sent?
18
+ @sent
19
+ end
20
+
21
+ def send_http_header
22
+ @sent = true
23
+ end
24
+
25
+ def args
26
+ "key=some%20value&anotherKey=someother%20value"
27
+ end
28
+ end
29
+
30
+ def Apache.reset
31
+ @@request = nil
32
+ end
33
+
34
+ @@request = nil
35
+ def Apache::request
36
+ @@request ||= Request.new
37
+ @@request
38
+ end
39
+ end
@@ -0,0 +1,109 @@
1
+ class TestHashCompare < Test::Unit::TestCase
2
+ def test_includes_same
3
+ assert_includes( {"a" => "aa"} , {"a" => "aa"} )
4
+ end
5
+
6
+ def test_includes_missing
7
+ e = assert_raises( Test::Unit::AssertionFailedError ) {
8
+ assert_includes( { "a" => "aa", "b" => "bb" } , {"a" => "aa"} )
9
+ }
10
+ assert e.to_s.index( "Missing from actual: b => \"bb\"" )
11
+ end
12
+
13
+ def test_includes_different
14
+ e = assert_raises( Test::Unit::AssertionFailedError ) {
15
+ assert_includes( {"a" => "aa"} , { "a" => "bb" } )
16
+ }
17
+ assert e.to_s.index("Difference: required <a => \"aa\"> was <a => \"bb\">" )
18
+ end
19
+
20
+ def test_includes_multi_level
21
+ e = assert_raises( Test::Unit::AssertionFailedError ) {
22
+ assert_includes( {"a" => { "a" => "aa", "b" => "bb" }} , { "a" => { "a" => "aa", "b" => "cc"}} )
23
+ }
24
+ assert e.to_s.index("Difference: required <a.b => \"bb\"> was <a.b => \"cc\">")
25
+ end
26
+
27
+ def test_includes_array_with_difference
28
+ e = assert_raises( Test::Unit::AssertionFailedError ) {
29
+ assert_includes( {"a" => [{ "a" => "aa" }, {"b" => "bb" }]},{ "a" => [ {"a" => "aa"}, {"b" => "cc"}]})
30
+ }
31
+ assert e.to_s.index("Difference: required <a[1].b => \"bb\"> was <a[1].b => \"cc\">")
32
+ end
33
+
34
+ def test_includes_array_with_items_missing
35
+ e = assert_raises( Test::Unit::AssertionFailedError ) {
36
+ assert_includes( { "a" => [ {"a" => "aa"}, {"b" => "cc"}]} , {"a" => [{ "a" => "aa" }]} )
37
+ }
38
+ assert e.to_s.index("Missing from actual: a[1] => {\"b\"=>\"cc\"}")
39
+ end
40
+
41
+ def test_includes_hash_when_should_not
42
+ e = assert_raises( Test::Unit::AssertionFailedError ) {
43
+ assert_includes( {"a" => "b"} , { "a" => { "a" => "aa", "b" => "cc"}} )
44
+ }
45
+ assert e.to_s.index("Difference: required <a => \"b\"> was <a => {\"a\"=>\"aa\", \"b\"=>\"cc\"}>")
46
+ end
47
+
48
+ def test_does_not_include_hash_when_it_should
49
+ e = assert_raises( Test::Unit::AssertionFailedError ) {
50
+ assert_includes( { "a" => { "a" => "aa" , "b" => "cc"}}, {"a" => "b"} )
51
+ }
52
+ assert e.to_s.index("Difference: required <a => {\"a\"=>\"aa\", \"b\"=>\"cc\"}> was <a => \"b\">")
53
+ end
54
+
55
+ def test_includes_array_when_should_not
56
+ e = assert_raises( Test::Unit::AssertionFailedError ) {
57
+ assert_includes( {"a" => "a"}, { "a" => [ {"a" => "aa"}, {"b" => "cc"}]} )
58
+ }
59
+ assert e.to_s.index("Difference: required <a => \"a\"> was <a => [{\"a\"=>\"aa\"}, {\"b\"=>\"cc\"}]>")
60
+ end
61
+
62
+ def test_does_not_include_array_when_it_should
63
+ e = assert_raises( Test::Unit::AssertionFailedError ) {
64
+ assert_includes( {"a" => "b"} , { "a" => { "a" => "aa" , "b" => "cc"}} )
65
+ }
66
+ assert e.to_s.index("Difference: required <a => \"b\"> was <a => {\"a\"=>\"aa\", \"b\"=>\"cc\"}>" )
67
+ end
68
+
69
+ def test_assert_includes
70
+ assert_includes( {"a" => { "a" => "aa" }}, { "a" => { "a" => "aa" , "b" => "aa"}} )
71
+ end
72
+
73
+ def test_assert_includes2
74
+ assert_raises(Test::Unit::AssertionFailedError) {
75
+ assert_includes( { "a" => { "a" => "aa" , "b" => "cc"}}, {"a" => { "c" => "bb" },"b" => { "c" => "bb" }})
76
+ }
77
+ end
78
+
79
+ def test_assert_includes_array
80
+ assert_includes( ["a"],[ "a","b"] )
81
+ end
82
+
83
+ def test_demonstrate_failure
84
+ assert_raises(Test::Unit::AssertionFailedError) {
85
+ assert_includes(["a","b"],[ "a"])
86
+ }
87
+ end
88
+
89
+ class Trivial
90
+ attr_accessor :name
91
+ def initialize( name )
92
+ @name = name
93
+ end
94
+ end
95
+
96
+ def test_compare_object_tree_to_hash1
97
+ assert_includes({"name" => "patrick"}, Trivial.new("patrick"))
98
+ end
99
+
100
+ def test_compare_object_tree_to_hash2
101
+ assert_includes({"name" => { "name" => "patrick" }}, Trivial.new(Trivial.new("patrick")))
102
+ end
103
+
104
+
105
+ # TODO:
106
+ # reports an error if either item is not a hash
107
+ # improve error reporting when comparing a hash to an array and vice versa
108
+ # add an enhanced version of assert equals
109
+ end
@@ -0,0 +1,182 @@
1
+ class TestBuffer < Test::Unit::TestCase
2
+ include Web::Testing
3
+ def setup
4
+ Web::setup
5
+ end
6
+
7
+ def teardown
8
+ Web::teardown
9
+ end
10
+
11
+ # Web::filter is an alias to ob_start
12
+ def test_filter
13
+ Web::open( :out=>'' ) do
14
+ Web::filter do |content|
15
+ [ "start", content, "end" ].join(",")
16
+ end
17
+
18
+ Web::write "middle"
19
+ end
20
+
21
+ assert_equal( "start,middle,end", Web::get_content )
22
+ end
23
+
24
+
25
+ # ob_start -- Turn on output buffering
26
+ def test_ob_start
27
+ Web::open( :out=>'' ) do
28
+ Web::ob_start do |content|
29
+ [ "start", content, "end" ].join(",")
30
+ end
31
+
32
+ Web::write "middle"
33
+ end
34
+
35
+ assert_equal( "start,middle,end", Web::get_content )
36
+ end
37
+
38
+ # ob_flush -- Flush (send) the output buffer
39
+ def test_ob_flush
40
+ Web::open( :out=>'' ) do
41
+ Web::ob_start do |content|
42
+ "[" + content +"]"
43
+ end
44
+
45
+ Web::write "write 1"
46
+
47
+ Web::ob_flush
48
+
49
+ Web::write "write 2"
50
+ end
51
+
52
+ assert_equal( '[write 1][write 2]', Web::get_content )
53
+ end
54
+
55
+ # ob_clean -- erase the output buffer
56
+ def test_ob_clean
57
+ Web::open( :out=>'' ) do
58
+ Web::write "this text will be erased"
59
+ Web::ob_clean
60
+ Web::write "expected content"
61
+ end
62
+
63
+ assert_equal( 'expected content', Web::get_content )
64
+ end
65
+
66
+ # ob_end_clean -- Clean (erase) the output buffer and turn off output buffering
67
+ def test_ob_end_clean
68
+ Web::open( :out=>'' ) do
69
+ Web::ob_start do |content|
70
+ "[" + content + "]"
71
+ end
72
+
73
+ Web::ob_start do |content|
74
+ "{" + content + "}"
75
+ end
76
+
77
+ Web::write "this content will not be seen"
78
+
79
+ assert( Web::ob_end_clean )
80
+
81
+ Web::write "expected content"
82
+ end
83
+
84
+ assert_equal( '[expected content]', Web::get_content )
85
+ end
86
+
87
+ # ob_end_flush -- Flush (send) the output buffer and turn off output buffering
88
+ def test_ob_end_flush
89
+ Web::open( :out=>'' ) do
90
+ Web::ob_start do |content|
91
+ "[" + content + "]"
92
+ end
93
+
94
+ Web << "expected content"
95
+
96
+ Web::ob_end_flush
97
+
98
+ Web << "a little more"
99
+ end
100
+
101
+ assert_equal( '[expected content]a little more', Web::get_content )
102
+ end
103
+
104
+ # ob_get_clean -- Get current buffer contents and delete current output buffer
105
+ def test_ob_get_clean
106
+ Web::open( :out=>'' ) do
107
+ Web::ob_start do |content|
108
+ "[" + content + "]"
109
+ end
110
+
111
+ Web << 'expected content'
112
+ assert_equal( 'expected content', Web::ob_get_clean )
113
+ Web << 'more content'
114
+ end
115
+
116
+ assert_equal( 'more content', Web::get_content )
117
+ end
118
+
119
+ # ob_get_contents -- Return the contents of the output buffer
120
+ def test_ob_get_contents
121
+ Web::open( :out=>'' ) do
122
+ Web << 'expected'
123
+ assert_equal( 'expected', Web::ob_get_contents )
124
+ end
125
+ assert_equal( 'expected', Web::get_content )
126
+ end
127
+
128
+ # ob_get_flush -- Flush the output buffer, return it as a string and turn off output buffering
129
+ def test_ob_get_flush
130
+ Web::open( :out=>'' ) do
131
+ Web::ob_start do |content|
132
+ "[" + content + "]"
133
+ end
134
+ Web << 'expected'
135
+ assert_equal( 'expected', Web::ob_get_flush )
136
+ Web::ob_end_clean
137
+ end
138
+ assert_equal( '[expected]', Web::get_content )
139
+ end
140
+
141
+ # ob_get_length -- Return the length of the output buffer
142
+ # ob_get_contents -- Return the contents of the output buffer
143
+ def test_ob_get_length
144
+ Web::open( :out=>'' ) do
145
+ Web << 'expected'
146
+ assert_equal( 8, Web::ob_get_length )
147
+ end
148
+ end
149
+
150
+ # ob_get_level -- Return the nesting level of the output buffering mechanism
151
+ def test_ob_get_level
152
+ Web::open( :out=>'' ) do
153
+ assert_equal( 1, Web::ob_get_level )
154
+ Web::ob_start
155
+ assert_equal( 2, Web::ob_get_level )
156
+ Web::ob_start
157
+ assert_equal( 3, Web::ob_get_level )
158
+ Web::ob_end_clean
159
+ assert_equal( 2, Web::ob_get_level )
160
+ end
161
+ end
162
+
163
+ # ob_list_handlers -- List all output handlers in use
164
+ def test_ob_list_handlers
165
+ Web::open( :out=>'' ) do
166
+ Web::ob_start do |content|
167
+ "[" + content + "]"
168
+ end
169
+
170
+ assert_equal( "[expected]",
171
+ Web::ob_list_handlers.last.callback.call('expected') )
172
+ end
173
+ end
174
+
175
+ # ob_get_status -- Get status of output buffers
176
+ # ob_implicit_flush -- Turn implicit flush on/off
177
+ # ob_gzhandler -- ob_start callback function to gzip output buffer
178
+ # output_add_rewrite_var -- Add URL rewriter values
179
+ # output_reset_rewrite_vars
180
+
181
+
182
+ end