ruby-web 1.1.1
Sign up to get free protection for your applications and to get access to all the features.
- data/ChangeLog +474 -0
- data/INSTALL.txt +9 -0
- data/InstalledFiles +180 -0
- data/LICENSE.txt +74 -0
- data/Rakefile +529 -0
- data/TODO +65 -0
- data/doc/additional.xml +149 -0
- data/doc/core.xml +652 -0
- data/doc/credits/index.xml +52 -0
- data/doc/credits/php.contributors.xml +118 -0
- data/doc/credits/php.language-snippets.ent +622 -0
- data/doc/install/index.xml +136 -0
- data/doc/install/mac/index.xml +21 -0
- data/doc/install/ruby-web.install.rb.instructions.xml +7 -0
- data/doc/install/unix/index.xml +46 -0
- data/doc/install/win/apache1.xml +166 -0
- data/doc/install/win/apache2.xml +141 -0
- data/doc/install/win/iis.xml +162 -0
- data/doc/install/win/index.xml +24 -0
- data/doc/install/win/installer.xml +31 -0
- data/doc/install/win/manual.xml +43 -0
- data/doc/manual.xml +69 -0
- data/doc/old/apache_cgi.txt +23 -0
- data/doc/old/fastcgi.txt +23 -0
- data/doc/old/mod_ruby.txt +21 -0
- data/doc/old/snippets.rdoc +183 -0
- data/doc/old/webrick.txt +23 -0
- data/doc/old/windows_cgi.txt +9 -0
- data/doc/tutorial.xml +14 -0
- data/doc/xsl/manual-multi.xsl +10 -0
- data/doc/xsl/manual-pdf.xsl +6 -0
- data/doc/xsl/manual-single.xsl +6 -0
- data/doc/xsl/manual.css +22 -0
- data/install.rb +1022 -0
- data/lib/formatter.rb +314 -0
- data/lib/html-parser.rb +429 -0
- data/lib/htmlrepair.rb +113 -0
- data/lib/htmlsplit.rb +842 -0
- data/lib/sgml-parser.rb +332 -0
- data/lib/web.rb +68 -0
- data/lib/web/assertinclude.rb +129 -0
- data/lib/web/config.rb +50 -0
- data/lib/web/connection.rb +1070 -0
- data/lib/web/convenience.rb +154 -0
- data/lib/web/formreader.rb +318 -0
- data/lib/web/htmlparser/html-parser.rb +429 -0
- data/lib/web/htmlparser/sgml-parser.rb +332 -0
- data/lib/web/htmltools/element.rb +296 -0
- data/lib/web/htmltools/stparser.rb +276 -0
- data/lib/web/htmltools/tags.rb +286 -0
- data/lib/web/htmltools/tree.rb +139 -0
- data/lib/web/htmltools/xmltree.rb +160 -0
- data/lib/web/htmltools/xpath.rb +71 -0
- data/lib/web/info.rb +63 -0
- data/lib/web/load.rb +210 -0
- data/lib/web/mime.rb +87 -0
- data/lib/web/phprb.rb +340 -0
- data/lib/web/resources/test/cookie.rb +33 -0
- data/lib/web/resources/test/counter.rb +20 -0
- data/lib/web/resources/test/multipart.rb +14 -0
- data/lib/web/resources/test/redirect.rb +8 -0
- data/lib/web/resources/test/stock.rb +33 -0
- data/lib/web/sapi/apache.rb +129 -0
- data/lib/web/sapi/fastcgi.rb +22 -0
- data/lib/web/sapi/install/apache.rb +180 -0
- data/lib/web/sapi/install/iis.rb +93 -0
- data/lib/web/sapi/install/macosx.rb +90 -0
- data/lib/web/sapi/webrick.rb +86 -0
- data/lib/web/session.rb +83 -0
- data/lib/web/shim/cgi.rb +129 -0
- data/lib/web/shim/rails.rb +175 -0
- data/lib/web/stringio.rb +78 -0
- data/lib/web/strscanparser.rb +24 -0
- data/lib/web/tagparser.rb +96 -0
- data/lib/web/testing.rb +666 -0
- data/lib/web/traceoutput.rb +75 -0
- data/lib/web/unit.rb +56 -0
- data/lib/web/upload.rb +59 -0
- data/lib/web/validate.rb +52 -0
- data/lib/web/wiki.rb +557 -0
- data/lib/web/wiki/linker.rb +72 -0
- data/lib/web/wiki/page.rb +201 -0
- data/lib/webunit.rb +27 -0
- data/lib/webunit/assert.rb +152 -0
- data/lib/webunit/converter.rb +154 -0
- data/lib/webunit/cookie.rb +118 -0
- data/lib/webunit/domwalker.rb +185 -0
- data/lib/webunit/exception.rb +14 -0
- data/lib/webunit/form.rb +116 -0
- data/lib/webunit/frame.rb +37 -0
- data/lib/webunit/htmlelem.rb +122 -0
- data/lib/webunit/image.rb +26 -0
- data/lib/webunit/jscript.rb +31 -0
- data/lib/webunit/link.rb +33 -0
- data/lib/webunit/params.rb +321 -0
- data/lib/webunit/parser.rb +229 -0
- data/lib/webunit/response.rb +464 -0
- data/lib/webunit/runtest.rb +41 -0
- data/lib/webunit/table.rb +148 -0
- data/lib/webunit/testcase.rb +45 -0
- data/lib/webunit/ui/cui/testrunner.rb +50 -0
- data/lib/webunit/utils.rb +68 -0
- data/lib/webunit/webunit.rb +28 -0
- data/test/dev/action.rb +83 -0
- data/test/dev/forms.rb +104 -0
- data/test/dev/forms2.rb +104 -0
- data/test/dev/parser.rb +17 -0
- data/test/dev/scripts/dump.rb +24 -0
- data/test/dev/scripts/makedist.rb +62 -0
- data/test/dev/scripts/uri.rb +41 -0
- data/test/dev/scripts/uri/common.rb +432 -0
- data/test/dev/scripts/uri/ftp.rb +149 -0
- data/test/dev/scripts/uri/generic.rb +1106 -0
- data/test/dev/scripts/uri/http.rb +76 -0
- data/test/dev/scripts/uri/https.rb +26 -0
- data/test/dev/scripts/uri/ldap.rb +238 -0
- data/test/dev/scripts/uri/mailto.rb +260 -0
- data/test/dev/scripts/urireg.rb +174 -0
- data/test/dev/simpledispatcher.rb +156 -0
- data/test/dev/test.action.rb +146 -0
- data/test/dev/test.formreader.rb +463 -0
- data/test/dev/test.simpledispatcher.rb +186 -0
- data/test/dev/webunit/conv/digit-0.rb +21 -0
- data/test/dev/webunit/conv/digit-1.rb +17 -0
- data/test/dev/webunit/conv/digit.rb +23 -0
- data/test/dev/webunit/conv/test_digit-0.rb +16 -0
- data/test/dev/webunit/conv/test_digit-1.rb +19 -0
- data/test/dev/webunit/conv/test_digit.rb +26 -0
- data/test/dev/webunit/conv/test_digit_view-0.rb +76 -0
- data/test/dev/webunit/conv/test_digit_view-1.rb +102 -0
- data/test/dev/webunit/conv/test_digit_view.rb +134 -0
- data/test/installation/htdocs/cgi_test.rb +296 -0
- data/test/installation/htdocs/test_install.rb +4 -0
- data/test/installation/runwebtest.rb +5 -0
- data/test/installation/test_cookie.rb +128 -0
- data/test/installation/test_form.rb +47 -0
- data/test/installation/test_multipart.rb +51 -0
- data/test/installation/test_request.rb +24 -0
- data/test/installation/test_response.rb +35 -0
- data/test/unit/htdocs/cookie.rb +32 -0
- data/test/unit/htdocs/multipart.rb +28 -0
- data/test/unit/htdocs/redirect.rb +12 -0
- data/test/unit/htdocs/simple.rb +13 -0
- data/test/unit/htdocs/stock.rb +33 -0
- data/test/unit/test_assert.rb +162 -0
- data/test/unit/test_cookie.rb +114 -0
- data/test/unit/test_domwalker.rb +77 -0
- data/test/unit/test_form.rb +42 -0
- data/test/unit/test_frame.rb +40 -0
- data/test/unit/test_htmlelem.rb +74 -0
- data/test/unit/test_image.rb +45 -0
- data/test/unit/test_jscript.rb +57 -0
- data/test/unit/test_link.rb +85 -0
- data/test/unit/test_multipart.rb +51 -0
- data/test/unit/test_params.rb +210 -0
- data/test/unit/test_parser.rb +53 -0
- data/test/unit/test_response.rb +150 -0
- data/test/unit/test_table.rb +70 -0
- data/test/unit/test_utils.rb +106 -0
- data/test/unit/test_webunit.rb +28 -0
- data/test/web/mod_ruby_stub.rb +39 -0
- data/test/web/test.assertinclude.rb +109 -0
- data/test/web/test.buffer.rb +182 -0
- data/test/web/test.code.loader.rb +78 -0
- data/test/web/test.config.rb +31 -0
- data/test/web/test.error.handling.rb +91 -0
- data/test/web/test.formreader-2.0.rb +352 -0
- data/test/web/test.load.rb +125 -0
- data/test/web/test.mime-type.rb +23 -0
- data/test/web/test.narf.cgi.rb +106 -0
- data/test/web/test.phprb.rb +239 -0
- data/test/web/test.request.rb +368 -0
- data/test/web/test.response.rb +637 -0
- data/test/web/test.ruby-web.rb +10 -0
- data/test/web/test.session.rb +50 -0
- data/test/web/test.shim.cgi.rb +96 -0
- data/test/web/test.tagparser.rb +65 -0
- data/test/web/test.template2.rb +297 -0
- data/test/web/test.testing2.rb +318 -0
- data/test/web/test.upload.rb +45 -0
- data/test/web/test.validate.rb +46 -0
- data/test/web/test.web.test.rb +495 -0
- data/test/wiki/test.history.rb +297 -0
- data/test/wiki/test.illustration_page.rb +287 -0
- data/test/wiki/test.linker.rb +197 -0
- data/test/wiki/test.tarpit.rb +56 -0
- data/test/wiki/test.wiki.rb +300 -0
- data/test/wikitestroot/admin.rb +7 -0
- data/test/wikitestroot/wiki.rb +6 -0
- 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
|