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,47 @@
|
|
1
|
+
=begin
|
2
|
+
= test for WebUnit::Form
|
3
|
+
Copyright(C) 2001 yuichi TAKAHASHI
|
4
|
+
$Id: test_form.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 TestForm < WebUnit::TestCase
|
13
|
+
|
14
|
+
def test_accessor
|
15
|
+
end
|
16
|
+
|
17
|
+
# this test is strange, and I don't see
|
18
|
+
# how this is a problem with ruby-web
|
19
|
+
# ~ patrick
|
20
|
+
def hide_test_Form__store_test_data
|
21
|
+
|
22
|
+
url = '?test=stock'
|
23
|
+
url_clear = url + '&clear=yes'
|
24
|
+
|
25
|
+
form = Response::get( url_clear ).form
|
26
|
+
#assert_urls( 'test_install.cgi', form.action )
|
27
|
+
|
28
|
+
form = Response::get( url ).form
|
29
|
+
form.store_test_data( %w( name title ), <<-EOF )
|
30
|
+
yuichi,leader
|
31
|
+
tadaya,member
|
32
|
+
EOF
|
33
|
+
|
34
|
+
parameters = Response::get( url ).form.parameters
|
35
|
+
|
36
|
+
assert_equals( 'yuichi', parameters[4].value )
|
37
|
+
assert_equals( 'leader', parameters[5].value )
|
38
|
+
assert_equals( 'tadaya', parameters[6].value )
|
39
|
+
assert_equals( 'member', parameters[7].value )
|
40
|
+
|
41
|
+
Response::get( url_clear )
|
42
|
+
|
43
|
+
end
|
44
|
+
|
45
|
+
end
|
46
|
+
|
47
|
+
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 + "?test=multipart.html"
|
16
|
+
response = Response::get( url )
|
17
|
+
assert_title( 'test for multipart/formdata', response )
|
18
|
+
|
19
|
+
res = response.form.set_params( {
|
20
|
+
'file1' => 'uploadfile1.txt',
|
21
|
+
'file2' => '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(2, 2).data)
|
27
|
+
assert_equals( 'text/plain', table.at(3, 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(2, 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,24 @@
|
|
1
|
+
require 'webunit/webunit'
|
2
|
+
require 'runit/cui/testrunner'
|
3
|
+
|
4
|
+
module WebUnit
|
5
|
+
|
6
|
+
class TestRequest < WebUnit::TestCase
|
7
|
+
|
8
|
+
def test_request_should_have_independent_namespace
|
9
|
+
url = @urlbase + "?test=counter.rb"
|
10
|
+
|
11
|
+
Response::get( url + "&count=0")
|
12
|
+
|
13
|
+
response = Response::get( url )
|
14
|
+
assert_title( "Count: 1", response )
|
15
|
+
|
16
|
+
### TODO: de-couple requests from each other
|
17
|
+
#response = Response::get( url )
|
18
|
+
#assert_title( "Count: 1", response )
|
19
|
+
#
|
20
|
+
#response = Response::get( url )
|
21
|
+
#assert_title( "Count: 1", response )
|
22
|
+
end
|
23
|
+
end
|
24
|
+
end
|
@@ -0,0 +1,35 @@
|
|
1
|
+
=begin
|
2
|
+
= test for WebUnit::Response
|
3
|
+
Copyright(C) 2001 yuichi TAKAHASHI
|
4
|
+
$Id: test_response.rb,v 1.3 2004/02/11 04:41:53 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
|
+
# test_click => test_link.rb
|
15
|
+
|
16
|
+
# def todo_test_redirect
|
17
|
+
# url = @urlbase + "redirect.cgi"
|
18
|
+
# to = @urlbase + "response.html"
|
19
|
+
|
20
|
+
# response = Response::post( url, "test=redirect&redirect=#{to}" )
|
21
|
+
|
22
|
+
# assert_equals( 'POST', response.method )
|
23
|
+
# assert_equals( '302', response.code )
|
24
|
+
# p response
|
25
|
+
# assert_equals( to, response.link.href )
|
26
|
+
|
27
|
+
# response = response.redirect
|
28
|
+
# assert_equals( 'WebUnit::response', response.title )
|
29
|
+
# assert_exception( Web::Unit::BadOperation ){
|
30
|
+
# response = response.redirect
|
31
|
+
# }
|
32
|
+
#
|
33
|
+
# end
|
34
|
+
# end
|
35
|
+
#end
|
@@ -0,0 +1,32 @@
|
|
1
|
+
require 'web/shim/cgi'
|
2
|
+
cgi = CGI::new( "html3" )
|
3
|
+
|
4
|
+
cookie = nil
|
5
|
+
if cgi.key?( 'key' ) && cgi.params['key'][0] != '' && cgi.key?( 'value' )
|
6
|
+
cookie = CGI::Cookie::new( cgi.params['key'][0], cgi.params['value'][0] )
|
7
|
+
cookie.path = '/'
|
8
|
+
end
|
9
|
+
|
10
|
+
cgi.out( "cookie" => [cookie] ){
|
11
|
+
'<html><head><title>WebUnit::Cookies</title></head>' +
|
12
|
+
'<body><h1>WebUnit::Cookies</h1><table border=1>' +
|
13
|
+
cgi.cookies.keys.collect{|key|
|
14
|
+
if key == ''
|
15
|
+
nil
|
16
|
+
else
|
17
|
+
"<tr><td>#{key}</td><td>#{cgi.cookies[key].value[0]}</td></tr>"
|
18
|
+
end
|
19
|
+
}.compact.to_s +
|
20
|
+
'</table><br>' +
|
21
|
+
'Params<table border=1>' +
|
22
|
+
cgi.keys.collect{|key|
|
23
|
+
"<tr><td>#{key}</td><td>#{cgi.params[key][0]}</td></tr>"
|
24
|
+
}.to_s +
|
25
|
+
'</table>' +
|
26
|
+
cgi.form(){
|
27
|
+
'key = ' + cgi.text_field( 'key','',20 ) + '<br>' +
|
28
|
+
'value = ' + cgi.text_field( 'value','',20 ) + '<br>' +
|
29
|
+
cgi.submit
|
30
|
+
} +
|
31
|
+
'</body></html>'
|
32
|
+
}
|
@@ -0,0 +1,28 @@
|
|
1
|
+
#!/usr/bin/env ruby
|
2
|
+
|
3
|
+
require 'web/shim/cgi'
|
4
|
+
|
5
|
+
print "Content-Type: text/html\n\n<body>"
|
6
|
+
|
7
|
+
def fileinfo( file)
|
8
|
+
lines = '<table border>'
|
9
|
+
%w!original_filename local_path read content_type!.each { |m|
|
10
|
+
lines << "<tr><td>#{m}</td><td>#{file.send(m)}</td></tr>"
|
11
|
+
}
|
12
|
+
lines << '</table>'
|
13
|
+
end
|
14
|
+
|
15
|
+
begin
|
16
|
+
cgi = CGI.new( "html3" )
|
17
|
+
print '<h1>result</h1>'
|
18
|
+
print fileinfo( cgi.params['file1'][0]) + '<hr>'
|
19
|
+
print fileinfo( cgi.params['file2'][0]) + '<hr>'
|
20
|
+
print '<table border>'
|
21
|
+
%w!text1 text2 checkbox1 radio1 radio2 textarea1 textarea2 select1 select2!.each { |k|
|
22
|
+
print "<tr><td>#{k}</td><td>#{cgi.params[k][0].read}</td></tr>"
|
23
|
+
}
|
24
|
+
print '</table>'
|
25
|
+
rescue Exception
|
26
|
+
print 'error:'
|
27
|
+
print $!.to_s
|
28
|
+
end
|
@@ -0,0 +1,12 @@
|
|
1
|
+
require 'web/shim/cgi'
|
2
|
+
cgi = CGI::new( "html3" )
|
3
|
+
if cgi.key?( 'redirect' )
|
4
|
+
puts "Location: #{cgi.params['redirect'][0]}\n\n"
|
5
|
+
else
|
6
|
+
cgi.out(){
|
7
|
+
"<html><body>" +
|
8
|
+
"Use redirect=http://... <br>" +
|
9
|
+
"<b>" + CGI::escapeHTML( cgi.env_table['QUERY_STRING'] ) + "</b>" +
|
10
|
+
"</body></html>"
|
11
|
+
}
|
12
|
+
end
|
@@ -0,0 +1,13 @@
|
|
1
|
+
require 'web/shim/cgi'
|
2
|
+
cgi = CGI::new( "html3" )
|
3
|
+
cgi.out(){
|
4
|
+
html = "<html><head><title>simple.cgi</title></head><body>"
|
5
|
+
html << "<b>" + CGI::escapeHTML( cgi.env_table['QUERY_STRING'] ) + "</b><br>"
|
6
|
+
ENV.each do |k,v|
|
7
|
+
html << "<b>#{k}:#{v}</b><br>"
|
8
|
+
end
|
9
|
+
cgi.keys.each do |key|
|
10
|
+
html << "<b>#{key}:#{cgi.params[key][0]}</b><br>"
|
11
|
+
end
|
12
|
+
html + "</body></html>"
|
13
|
+
}
|
@@ -0,0 +1,33 @@
|
|
1
|
+
require 'web/shim/cgi'
|
2
|
+
cgi = CGI::new( "html3" )
|
3
|
+
|
4
|
+
stock = ''
|
5
|
+
|
6
|
+
TMPFILE = "/tmp/stock.cgi"
|
7
|
+
|
8
|
+
if cgi.key?( 'clear' )
|
9
|
+
File::delete( TMPFILE ) if File::exist?( TMPFILE )
|
10
|
+
else
|
11
|
+
if cgi.key?( 'name' ) && cgi.key?( 'title' )
|
12
|
+
open( TMPFILE, "a" ){ |f|
|
13
|
+
f.puts "#{cgi.params['name'][0]},#{cgi.params['title'][0]}"
|
14
|
+
}
|
15
|
+
end
|
16
|
+
if File::exist?( TMPFILE )
|
17
|
+
open( TMPFILE ).each do |line|
|
18
|
+
line.chop!
|
19
|
+
stock << cgi.text_field( 'name', line.split( ',' )[0] )
|
20
|
+
stock << cgi.text_field( 'title', line.split( ',' )[1] )
|
21
|
+
stock << "<br>\n"
|
22
|
+
end
|
23
|
+
end
|
24
|
+
end
|
25
|
+
|
26
|
+
cgi.out(){
|
27
|
+
"<html><head><title>stock.cgi</title></head><body>" +
|
28
|
+
"<form method='POST'>" +
|
29
|
+
cgi.text_field( 'name' ) + cgi.text_field( 'title' ) +
|
30
|
+
cgi.submit( 'add' ) + "<br>\n" +
|
31
|
+
stock +
|
32
|
+
"</form></body></html>"
|
33
|
+
}
|
@@ -0,0 +1,162 @@
|
|
1
|
+
=begin
|
2
|
+
= test for WebUnit::assert
|
3
|
+
Copyright(C) 2001 yuichi TAKAHASHI
|
4
|
+
$Id: test_assert.rb,v 1.2 2004/02/11 04:26:40 yuichi Exp $
|
5
|
+
=end
|
6
|
+
|
7
|
+
class TestAssert < Test::Unit::TestCase
|
8
|
+
include Web::Unit
|
9
|
+
|
10
|
+
def setup
|
11
|
+
setup_webunit
|
12
|
+
url = @urlbase + "webunit/assert.html"
|
13
|
+
do_request( url )
|
14
|
+
assert_title( 'WebUnit:assert' )
|
15
|
+
end
|
16
|
+
|
17
|
+
def test_assert_urls
|
18
|
+
assert_exception( WebUnit::AssertionFailedError ){
|
19
|
+
assert_urls( nil, "webunit/xxxxx.html" )
|
20
|
+
}
|
21
|
+
assert_exception( WebUnit::AssertionFailedError ){
|
22
|
+
assert_urls( "webunit/xxxxx.html", nil )
|
23
|
+
}
|
24
|
+
url = @urlbase + "webunit/test_assert.html"
|
25
|
+
assert_urls( @urlbase + "webunit/test_assert.html", url )
|
26
|
+
assert_urls( "webunit/test_assert.html", url )
|
27
|
+
assert_exception( WebUnit::AssertionFailedError ){
|
28
|
+
assert_urls( "webunit/xxxxx.html", url )
|
29
|
+
}
|
30
|
+
assert_exception( WebUnit::AssertionFailedError ){
|
31
|
+
assert_urls( @urlbase + "webunit/xxxxx.html", url )
|
32
|
+
}
|
33
|
+
url = 'http://test/webunit/test_assert.html'
|
34
|
+
assert_urls( 'http://test:80/webunit/test_assert.html', url )
|
35
|
+
assert_urls( url, 'http://test:80/webunit/test_assert.html' )
|
36
|
+
end
|
37
|
+
|
38
|
+
def test_assert_title
|
39
|
+
assert_title( 'WebUnit:assert' )
|
40
|
+
assert_exception( WebUnit::AssertionFailedError ){
|
41
|
+
assert_title( 'xxxxx' )
|
42
|
+
}
|
43
|
+
end
|
44
|
+
|
45
|
+
def test_assert_input
|
46
|
+
|
47
|
+
# text, password, file, textarea, hidden
|
48
|
+
# submit, reset
|
49
|
+
form = @response.forms[0]
|
50
|
+
i = -1
|
51
|
+
assert_input( 'name_text', 'text', 'TEXT', form.parameters[i+=1] )
|
52
|
+
assert_exception( WebUnit::AssertionFailedError ){
|
53
|
+
assert_input( 'xname_text', 'text', 'TEXT', form.parameters[i] )
|
54
|
+
}
|
55
|
+
assert_exception( WebUnit::AssertionFailedError ){
|
56
|
+
assert_input( 'name_text', 'xtext', 'TEXT', form.parameters[i] )
|
57
|
+
}
|
58
|
+
assert_exception( WebUnit::AssertionFailedError ){
|
59
|
+
assert_input( 'name_text', 'text', 'xTEXT', form.parameters[i] )
|
60
|
+
}
|
61
|
+
|
62
|
+
assert_input( 'name_pass', 'password', 'PASS', form.parameters[i+=1] )
|
63
|
+
assert_input( 'name_file', 'file', nil, form.parameters[i+=1] )
|
64
|
+
assert_input( 'name_hidden', 'hidden', 'HIDDEN', form.parameters[i+=1] )
|
65
|
+
assert_input( 'name_area', 'textarea', "T\nA", form.parameters[i+=1] )
|
66
|
+
|
67
|
+
assert_input( 'name_submit', 'submit', nil, form.parameters[i+=1] )
|
68
|
+
assert_input( 'name_reset', 'reset', nil, form.parameters[i+=1] )
|
69
|
+
|
70
|
+
# checkbox, radio
|
71
|
+
# submit, reset
|
72
|
+
form = @response.forms[1]
|
73
|
+
i = -1
|
74
|
+
assert_input( 'name_check', 'checkbox', "a", form.parameters[i+=1] )
|
75
|
+
assert_equals( 'off', form.parameters[i].stat )
|
76
|
+
assert_input( 'name_check', 'checkbox', "b", form.parameters[i+=1] )
|
77
|
+
assert_equals( 'on', form.parameters[i].stat )
|
78
|
+
|
79
|
+
assert_input( 'name_radio', 'radio', "a", form.parameters[i+=1] )
|
80
|
+
assert_equals( 'off', form.parameters[i].stat )
|
81
|
+
assert_input( 'name_radio', 'radio', "b", form.parameters[i+=1] )
|
82
|
+
assert_equals( 'on', form.parameters[i].stat )
|
83
|
+
|
84
|
+
assert_input( 'name_submit', 'submit', 'SUBMIT', form.parameters[i+=1] )
|
85
|
+
assert_input( 'name_reset', 'reset', 'RESET', form.parameters[i+=1] )
|
86
|
+
|
87
|
+
end
|
88
|
+
|
89
|
+
def test_assert_select_option
|
90
|
+
|
91
|
+
form = @response.forms[2]
|
92
|
+
i = -1
|
93
|
+
assert_input( 'name_select', 'select', 'bbb', form.parameters[i+=1] )
|
94
|
+
|
95
|
+
options = form.params['name_select'].options
|
96
|
+
|
97
|
+
assert_select_option( 'aaa', 'AAA', false, options[0] )
|
98
|
+
assert_exception( WebUnit::AssertionFailedError ){
|
99
|
+
assert_select_option( 'aaa', 'AAA', true, options[0] )
|
100
|
+
}
|
101
|
+
|
102
|
+
assert_select_option( 'bbb', 'BBB', true, options[1] )
|
103
|
+
assert_exception( WebUnit::AssertionFailedError ){
|
104
|
+
assert_select_option( 'aaa', 'BBB', true, options[1] )
|
105
|
+
}
|
106
|
+
assert_exception( WebUnit::AssertionFailedError ){
|
107
|
+
assert_select_option( 'bbb', 'AAA', true, options[1] )
|
108
|
+
}
|
109
|
+
assert_exception( WebUnit::AssertionFailedError ){
|
110
|
+
assert_select_option( 'bbb', 'BBB', false, options[1] )
|
111
|
+
}
|
112
|
+
|
113
|
+
assert_select_option( 'CCC', 'CCC', false, options[2] )
|
114
|
+
assert_select_option( 'CCC', nil, false, options[2] )
|
115
|
+
|
116
|
+
options = form.params['no_selection'].options
|
117
|
+
assert_select_option( 'aaa', 'AAA', true, options[0] )
|
118
|
+
|
119
|
+
end
|
120
|
+
|
121
|
+
def test_assert_include
|
122
|
+
|
123
|
+
elem = HtmlElem::new 'tag'
|
124
|
+
elem.append 'xxxxx'
|
125
|
+
assert_equals( 'xxxxx', elem.data )
|
126
|
+
assert_include( 'xxxxx', elem )
|
127
|
+
|
128
|
+
table = @response.tables[3]
|
129
|
+
|
130
|
+
assert_equals( 'aaaaa', table.at(1,1).data )
|
131
|
+
assert_include( 'aaaaa', table.at(1,1) )
|
132
|
+
assert_exception( WebUnit::AssertionFailedError ){
|
133
|
+
assert_include( 'aaaa', table.at(1,1) )
|
134
|
+
}
|
135
|
+
assert_exception( WebUnit::AssertionFailedError ){
|
136
|
+
assert_include( 'aaaaa', table.at(1,2) )
|
137
|
+
}
|
138
|
+
|
139
|
+
assert_exception( WebUnit::AssertionFailedError ){
|
140
|
+
assert_equals( 'bbbbb', table.at(1,2).data )
|
141
|
+
}
|
142
|
+
assert_include( 'bbbbb', table.at(1,2) )
|
143
|
+
assert_exception( WebUnit::AssertionFailedError ){
|
144
|
+
assert_equals( 'bbbb', table.at(1,2) )
|
145
|
+
}
|
146
|
+
|
147
|
+
end
|
148
|
+
|
149
|
+
def test_assert_attrs
|
150
|
+
|
151
|
+
hash = { 'name'=>'name1', 'size'=>'30' }
|
152
|
+
elem = HtmlElem::new( 'tag', hash )
|
153
|
+
assert_attrs( hash, elem )
|
154
|
+
|
155
|
+
hash = { 'size'=>'25' }
|
156
|
+
assert_exception( WebUnit::AssertionFailedError ){
|
157
|
+
assert_attrs( hash, elem )
|
158
|
+
}
|
159
|
+
|
160
|
+
end
|
161
|
+
|
162
|
+
end
|