ruby-web 1.1.1

Sign up to get free protection for your applications and to get access to all the features.
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,85 @@
1
+ =begin
2
+ = test for WebUnit::Link
3
+ Copyright(C) 2001 yuichi TAKAHASHI
4
+ $Id: test_link.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 TestLink < WebUnit::TestCase
13
+
14
+ def test_Link
15
+
16
+ url = @urlbase + "webunit/link.html"
17
+ response = Response::get( url )
18
+ assert_title( 'WebUnit::link', response )
19
+
20
+ links = response.links
21
+ i = -1
22
+
23
+ link_self = links[i+=1]
24
+ assert_equals( 'self', link_self.data )
25
+ assert_urls( 'webunit/link.html', link_self.href )
26
+ assert_equals( nil, link_self.target )
27
+
28
+ link_other = links[i+=1]
29
+ assert_equals( 'other', link_other.data )
30
+ assert_urls( 'webunit/link-0.html', link_other.href ) # not exist
31
+ assert_equals( 'top', link_other.target )
32
+
33
+ link_x = links[i+=1]
34
+ assert_equals( 'x', link_x.data )
35
+ assert_urls( 'webunit/x.cgi?aaa=AAA&bbb=BBB', link_x.href )
36
+ assert_equals( nil, link_x.target )
37
+
38
+ link_y = links[i+=1]
39
+ assert_equals( 'y', link_y.data )
40
+ assert_equals( '#', link_y.href )
41
+ assert_equals( nil, link_y.target )
42
+ assert_equals( 'test', link_y.onClick )
43
+
44
+ assert_title( 'WebUnit::link', link_self.read )
45
+
46
+ response = response.click( 'self' )
47
+ assert_title( 'WebUnit::link', response )
48
+ assert_exception( WebUnit::ElemNotFound ){
49
+ response = response.click( 'xxxxx' )
50
+ }
51
+ assert_exception( WebUnit::HttpNotFound ){
52
+ response = response.click( 'other' )
53
+ }
54
+
55
+ response = response.readlink( 'self' )
56
+ assert_title( 'WebUnit::link', response )
57
+ assert_exception( WebUnit::ElemNotFound ){
58
+ response = response.readlink( 'xxxxx' )
59
+ }
60
+ assert_exception( WebUnit::HttpNotFound ){
61
+ response = response.readlink( 'other' )
62
+ }
63
+
64
+ end
65
+
66
+ def test_accessor
67
+
68
+ link = Link::new( 'href'=>@urlbase+'xxx.html', 'target'=>'top' )
69
+ assert_urls( 'xxx.html', link.href )
70
+ assert_equals( 'top', link.target )
71
+
72
+ link = Link::new( 'href'=>@urlbase+'xxx.html' )
73
+ assert_equals( nil, link.target )
74
+
75
+ end
76
+
77
+ def test_read
78
+ url = @urlbase + 'webunit/link.html'
79
+ link = Link::new( 'href'=>url, 'target'=>'fx' )
80
+ assert_title( 'WebUnit::link', link.read )
81
+ end
82
+
83
+ end
84
+
85
+ end
@@ -0,0 +1,51 @@
1
+ =begin
2
+ = test for data transfer by post multipart.
3
+ Copyright(C), Narushima Hironori
4
+ $Id: test_multipart.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 TestMultipart < WebUnit::TestCase
13
+
14
+ def test_multipart
15
+ url = @urlbase + "webunit/multipart.html"
16
+ response = Response::get( url )
17
+ assert_title( 'test for multipart/formdata', response )
18
+
19
+ res = response.form.set_params( {
20
+ 'file1' => 'test/unit/test_resources/uploadfile1.txt',
21
+ 'file2' => 'test/unit/test_resources/uploadfile2.txt',
22
+ } ).submit
23
+
24
+ table = res.tables[0]
25
+ assert_equals( 'uploadfile1.txt', table.at(1, 2).data)
26
+ assert_equals( '### Upload File 1', table.at(3, 2).data)
27
+ assert_equals( 'text/plain', table.at(4, 2).data)
28
+
29
+ table = res.tables[1]
30
+ assert_equals( 'uploadfile2.txt', table.at(1, 2).data)
31
+ assert_equals( '### Upload File 2', table.at(3, 2).data)
32
+
33
+ list = {}
34
+ res.tables[2].rows.each { |r|
35
+ list[r.at(1).data] = r.at(2).data
36
+ }
37
+
38
+ assert_equals( 'Text 1', list['text1'])
39
+ assert_equals( 'Text 2', list['text2'])
40
+ assert_equals( 'Checkbox 3', list['checkbox1'])
41
+ assert_equals( 'Radio 1-2', list['radio1'])
42
+ assert_equals( 'Radio 2-3', list['radio2'])
43
+ assert_equals( 'Text Area 1', list['textarea1'])
44
+ assert_equals( 'Text Area 2', list['textarea2'])
45
+ assert_equals( 'a', list['select1'])
46
+ assert_equals( 'BB', list['select2'])
47
+ end
48
+
49
+ end
50
+
51
+ end
@@ -0,0 +1,210 @@
1
+ =begin
2
+ = test for WebUnit::Params
3
+ Copyright(C) 2001 yuichi TAKAHASHI
4
+ $Id: test_params.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 TestParams < WebUnit::TestCase
13
+
14
+ def test_accessor
15
+ end
16
+
17
+ def test_InputImage
18
+
19
+ url = @urlbase + "webunit/form.html"
20
+ response = Response::get( url )
21
+
22
+ form = response.forms[4]
23
+ response = form.submit( 'AAA', 10, 5 )
24
+
25
+ qs = 'AAA.x=10&AAA.y=5'
26
+ assert_equals( qs, response.tree.find( 'b' )[0].data )
27
+
28
+ end
29
+
30
+ def test_Form
31
+
32
+ url = @urlbase + "webunit/form.html"
33
+ #Parser::ignore %w( br hr )
34
+ test_form = Response::get( url )
35
+
36
+ assert_equals( 'WebUnit Test 1', test_form.title )
37
+ assert_equals( 5, test_form.forms.size )
38
+
39
+ # hidden
40
+ form = test_form.forms[0]
41
+ assert_equals( 3, form.parameters.size )
42
+
43
+ assert_input( 'nhidden', 'hidden', 'HIDDEN', form.parameters[0] )
44
+
45
+ spec = { 'name'=>'nhidden', 'type'=>'hidden', 'value'=>'HIDDEN' }
46
+ assert_attrs( spec, form.parameters[0] )
47
+
48
+ assert_equals( 'nhidden', form.parameters[0].name )
49
+ assert_equals( 'hidden', form.parameters[0].type )
50
+ assert_equals( 'HIDDEN', form.parameters[0].value )
51
+ #response = form.submit
52
+ response = test_form.submit
53
+ qs = 'nhidden=HIDDEN'
54
+ assert_equals( qs, response.tree.find( 'b' )[0].data )
55
+
56
+ # textfields
57
+ form = test_form.forms[1]
58
+ assert_equals( 5, form.parameters.size )
59
+
60
+ assert_equals( 'ntext', form.parameters[0].name )
61
+ assert_equals( 'npassword', form.parameters[1].name )
62
+ assert_equals( 'ntextarea', form.parameters[2].name )
63
+
64
+ assert_equals( 'text', form.parameters[0].type )
65
+ assert_equals( 'password', form.parameters[1].type )
66
+ assert_equals( 'textarea', form.parameters[2].type )
67
+
68
+ assert_equals( 'TEXT', form.parameters[0].value )
69
+ assert_equals( 'PASSWORD', form.parameters[1].value )
70
+ assert_equals( "TEXTAREA\nTEXTAREA", form.parameters[2].value )
71
+
72
+ assert_exception( TypeError ){ form.parameters[0] = "this is test" }
73
+ form.parameters[0].value = "this is test"
74
+ form.parameters[1].value = '!@#$%'
75
+ form.parameters[2].value = "aaaa\r\nbbbb"
76
+ response = form.submit( 'nsubmit' )
77
+
78
+ qs = 'ntext=this+is+test&'
79
+ qs << 'npassword=%21%40%23%24%25&'
80
+ qs << 'ntextarea=aaaa%0D%0Abbbb&'
81
+ qs << 'nsubmit=Submit+Query'
82
+ assert_equals( qs, response.tree.find( 'b' )[0].data )
83
+
84
+ # buttons
85
+ form = test_form.forms[2]
86
+
87
+ assert_equals( 6, form.params.size )
88
+ assert_equals( 10, form.parameters.size )
89
+
90
+ assert_equals( 'ncheckbox', form.parameters[0].name )
91
+ assert_equals( 'ncheckbox1', form.parameters[1].name )
92
+ assert_equals( 'nradio', form.parameters[2].name )
93
+ assert_equals( 'nradio', form.parameters[3].name )
94
+ assert_equals( 'nradio', form.parameters[4].name )
95
+ assert_equals( 'nradio1', form.parameters[5].name )
96
+ assert_equals( 'nradio1', form.parameters[6].name )
97
+ assert_equals( 'nradio1', form.parameters[7].name )
98
+ assert_equals( 'nsubmit', form.parameters[8].name )
99
+ assert_equals( 'nreset', form.parameters[9].name )
100
+
101
+ form.params['ncheckbox'].on
102
+ form.params['ncheckbox1'].off
103
+ response = form.submit( 'nsubmit' )
104
+ qs = 'ncheckbox=on&'
105
+ qs << 'nradio1=c&'
106
+ qs << 'nsubmit=SUBMIT'
107
+ assert_equals( qs, response.tree.find( 'b' )[0].data )
108
+
109
+ form.params['ncheckbox'].off
110
+ form.params['nradio1'].on
111
+ response = form.submit( 'nsubmit' )
112
+ qs = 'nradio1=a&'
113
+ qs << 'nsubmit=SUBMIT'
114
+ assert_equals( qs, response.tree.find( 'b' )[0].data )
115
+
116
+ form.params['ncheckbox'].off
117
+ form.params['nradio1'].value='a'
118
+ form.params['nradio1'].value='b'
119
+ response = form.submit( 'nsubmit' )
120
+ qs = 'nradio1=b&'
121
+ qs << 'nsubmit=SUBMIT'
122
+ assert_equals( qs, response.tree.find( 'b' )[0].data )
123
+
124
+ # select
125
+ form = test_form.forms[3]
126
+ table = test_form.tables[3]
127
+ assert( table.at(1,2).has?( form.parameters[0] ) )
128
+ #p table.find( 'td' )[1].array
129
+
130
+ assert_equals( 5, form.parameters.size )
131
+ assert_equals( 'nselect', form.parameters[0].name )
132
+ assert_equals( 'select', form.parameters[0].type )
133
+ assert_input( 'nselect', 'select', 'aaa', form.parameters[0] )
134
+ assert_equals( 'nselect1', form.parameters[1].name )
135
+ assert_equals( 'nselect2', form.parameters[2].name )
136
+
137
+ response = form.submit
138
+
139
+ qs = 'nselect=aaa&nselect2=b&nselect2=d'
140
+ #p response.tree.find( 'b' )[0].array
141
+ assert_equals( qs, response.find( 'b' )[0].data )
142
+
143
+ form.params['nselect1'].value = 'c'
144
+ response = form.submit
145
+ qs = 'nselect=aaa&nselect1=c&nselect2=b&nselect2=d'
146
+ assert_equals( qs, response.find( 'b' )[0].data )
147
+
148
+ form.params['nselect1'].select( [ 0, 2 ] )
149
+ response = form.submit
150
+ qs = 'nselect=aaa&nselect1=aaa&nselect1=c&nselect2=b&nselect2=d'
151
+ assert_equals( qs, response.find( 'b' )[0].data )
152
+
153
+ form.params['nselect1'].select( [ 'aaa', 'c' ] )
154
+ response = form.submit
155
+ qs = 'nselect=aaa&nselect1=aaa&nselect1=c&nselect2=b&nselect2=d'
156
+ assert_equals( qs, response.find( 'b' )[0].data )
157
+
158
+ form.params['nselect1'].select( [ 'b', 'c' ] )
159
+ response = form.submit
160
+ qs = 'nselect=aaa&nselect1=b&nselect1=c&nselect2=b&nselect2=d'
161
+ assert_equals( qs, response.find( 'b' )[0].data )
162
+
163
+ assert_equals( %w( b d ), form.params['nselect2'].value )
164
+ form.params['nselect2'].select( [ 'c' ] )
165
+ assert_equals( 'c', form.params['nselect2'].value )
166
+
167
+ end
168
+
169
+ def test_params
170
+
171
+ url = @urlbase + "webunit/params.html"
172
+ #Parser::ignore %w( br hr )
173
+ response = Response::get( url )
174
+ assert_equals( 'WebUnit Test Params', response.title )
175
+ assert_equals( 1, response.forms.size )
176
+ form = response.forms[0]
177
+ assert_equals( 10, form.params.size )
178
+ assert_equals( 13, form.parameters.size )
179
+
180
+ hash = {
181
+ "nhidden" => "aaaaa",
182
+ "ntext" => "bbbbb",
183
+ "npassword" => "ccccc",
184
+ "ntextarea" => "ddddd",
185
+ }
186
+
187
+ form.set_params( hash )
188
+ response = form.submit
189
+
190
+ qs = 'nhidden=aaaaa&ntext=bbbbb&npassword=ccccc&ntextarea=ddddd&ncheckbox1=1&nselect=aaa'
191
+ assert_equals( qs, response.tree.find( 'b' )[0].data )
192
+
193
+ array = [
194
+ "wwwww",
195
+ "xxxxx",
196
+ "yyyyy",
197
+ "zzzzz",
198
+ ]
199
+
200
+ form.set_parameters( array )
201
+ response = form.submit
202
+
203
+ qs = 'nhidden=wwwww&ntext=xxxxx&npassword=yyyyy&ntextarea=zzzzz&ncheckbox1=1&nselect=aaa'
204
+ assert_equals( qs, response.tree.find( 'b' )[0].data )
205
+
206
+ end
207
+
208
+ end
209
+
210
+ end
@@ -0,0 +1,53 @@
1
+ =begin
2
+ = test for WebUnit::Parser
3
+ Copyright(C) 2001 yuichi TAKAHASHI
4
+ $Id: test_parser.rb,v 1.6 2004/04/29 12:34:06 yuichi Exp $
5
+ =end
6
+
7
+ require 'webunit/webunit'
8
+ require 'runit/cui/testrunner'
9
+
10
+ module WebUnit
11
+
12
+ class TestParser < WebUnit::TestCase
13
+
14
+ def test_xhtml
15
+ html = <<-EOS
16
+ <meta value=""/>
17
+ <meta value="">
18
+ <link value=""/>
19
+ <link value="">
20
+ <p class="a"/>
21
+ <p class="b" />
22
+ <p class="c">
23
+ <p/>
24
+ <p>
25
+ <hr/>
26
+ <hr>
27
+ <area/>
28
+ <area>
29
+ <img src="a"/>
30
+ <img src="a">
31
+ <input type="a"/>
32
+ <input type="a">
33
+ EOS
34
+ response = Response::html( html )
35
+ end
36
+
37
+ def test_nest_tables
38
+ html = <<-EOS
39
+ <table border=1>
40
+ <tr><td>
41
+ <table border=2>
42
+ <tr><td>
43
+ </td></tr>
44
+ </table>
45
+ </td></tr>
46
+ </table>
47
+ EOS
48
+ response = Response::html( html )
49
+ end
50
+
51
+ end
52
+
53
+ end
@@ -0,0 +1,150 @@
1
+ =begin
2
+ = test for WebUnit::Response
3
+ Copyright(C) 2001 yuichi TAKAHASHI
4
+ $Id: test_response.rb,v 1.4 2004/04/29 12:34:06 yuichi Exp $
5
+ =end
6
+
7
+ require 'webunit/webunit'
8
+ require 'runit/cui/testrunner'
9
+
10
+ module WebUnit
11
+
12
+ class TestResponse < WebUnit::TestCase
13
+
14
+ def test_s_new # get and post
15
+
16
+ url = @urlbase + "webunit/xxxxx.html" # not exist
17
+ assert_exception( WebUnit::HttpNotFound ){
18
+ response = Response::get( url )
19
+ }
20
+
21
+ url = @urlbase + "webunit/badtags.html"
22
+ assert_exception( WebUnit::BadHtmlTags ){
23
+ response = Response::get( url )
24
+ }
25
+
26
+ url = "webunit/response.html"
27
+ response = Response::get( url )
28
+ url = @urlbase + "webunit/response.html"
29
+ assert_equals( url, response.url )
30
+
31
+ url = "webunit/auth/index.html"
32
+ response = Response::get( url, nil, %w( user badpass ) )
33
+ assert_title( "401 Authorization Required", response );
34
+ response = Response::get( url, nil, %w( user pass ) )
35
+ assert_title( "Success", response );
36
+
37
+ url = "webunit/document.xml"
38
+ response = Response::get( url )
39
+ assert_instance_of( DomWalker, response );
40
+
41
+ # url = "webunit/WikiName.html"
42
+ # response = Response::get( url )
43
+
44
+ end
45
+
46
+ def test_s_html
47
+
48
+ html = <<-EOS
49
+ <html>
50
+ <head>
51
+ <title>test title</title>
52
+ </head>
53
+ <body>
54
+ <a href='xxx.html'>XXX</a>
55
+ </body>
56
+ </html>
57
+ EOS
58
+ response = Response::html( html )
59
+ assert_title( 'test title', response )
60
+ assert_equals( 1, response.links.size )
61
+ assert_equals( 'XXX', response.link.data )
62
+ assert_urls( 'xxx.html', response.link.href )
63
+
64
+ response = Response::html( html, 'http://x.y.z/yyy.html' )
65
+ assert_title( 'test title', response )
66
+ assert_equals( 1, response.links.size )
67
+ assert_equals( 'XXX', response.link.data )
68
+ assert_urls( 'http://x.y.z/xxx.html', response.link.href )
69
+
70
+ html = <<-EOS
71
+ <body>
72
+ <a href='xxx.html'>XXX</a>
73
+ </body>
74
+ EOS
75
+ response = Response::html( html )
76
+ assert_equals( 'html', response.tree.tag )
77
+
78
+ end
79
+
80
+ def test_accessor
81
+
82
+ url = @urlbase + "webunit/response.html"
83
+ response = Response::get( url )
84
+ assert_title( 'WebUnit::response', response )
85
+
86
+ assert_equals( url, response.url )
87
+ assert_equals( 'GET', response.method )
88
+ if RUBY_VERSION[0..2] == "1.6"
89
+ assert_instance_of( Net::HTTPResponse, response.response )
90
+ else
91
+ assert_instance_of( Net::HTTPOK, response.response )
92
+ end
93
+ assert_instance_of( String, response.body )
94
+ assert_equals( '200', response.code )
95
+
96
+ assert_instance_of( HtmlElem, response.tree )
97
+
98
+ # response.links[0], response.link => test_link.rb
99
+ # response.forms[0], response.form => test_form.rb
100
+ # response.tables[0], response.table => test_table.rb
101
+ # response.frames[0], response.frame => test_frame.rb
102
+
103
+ assert_instance_of( Array, response.links )
104
+ assert_instance_of( Array, response.forms )
105
+ assert_instance_of( Array, response.tables )
106
+ assert_instance_of( Array, response.frames )
107
+
108
+ end
109
+
110
+ # test_click => test_link.rb
111
+
112
+ def test_redirect
113
+
114
+ url = @urlbase + "webunit/redirect.rb"
115
+ to = @urlbase + "webunit/response.html"
116
+
117
+ response = Response::post( url, "redirect=#{to}" )
118
+ assert_equals( 'POST', response.method )
119
+ assert_equals( '302', response.code )
120
+ assert_equals( to, response.link.href )
121
+
122
+ response = response.redirect
123
+ assert_equals( 'WebUnit::response', response.title )
124
+ assert_exception( WebUnit::BadOperation ){
125
+ response = response.redirect
126
+ }
127
+
128
+ end
129
+
130
+ def test_search
131
+
132
+ url = @urlbase + "webunit/link.html"
133
+ response = Response::get( url )
134
+ link = response.tree.search( 'self' )[0]
135
+
136
+ assert_equals( 'a', link.tag )
137
+ assert_equals( @urlbase + 'webunit/link.html', link.href )
138
+ assert_equals( 'self', link.data )
139
+
140
+ link = response.search( 'other' )[0]
141
+
142
+ assert_equals( 'a', link.tag )
143
+ assert_equals( @urlbase + 'webunit/link-0.html', link.href )
144
+ assert_equals( 'other', link.data )
145
+
146
+ end
147
+
148
+ end
149
+
150
+ end