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,186 @@
1
+ class AForm
2
+ end
3
+
4
+ class TestLink < Test::Unit::TestCase
5
+ def test_empty_query
6
+ string = Web::SimpleDispatcher::Link.new( AForm, { "name1" => "value1", "name2" => "value2" } ).encode
7
+ assert_equal "String", string.class.name
8
+ params = Web::CGI.new(:params => {"link" => string, "link-type" => "Web::SimpleDispatcher::Link"}).typed_params
9
+ assert_equal AForm, params["link"].page
10
+ assert_equal({ "name1" => "value1", "name2" => "value2" },params["link"].query)
11
+ end
12
+ end
13
+
14
+ class MyForm1 < Web::SimpleDispatcher::Template
15
+ def initialize query
16
+ end
17
+ end
18
+
19
+ class MyForm2 < Web::SimpleDispatcher::Template
20
+ def initialize query
21
+ Web.puts "form2"
22
+ end
23
+ end
24
+
25
+ class MyForm3 < Web::SimpleDispatcher::Template
26
+ attr_accessor :var
27
+
28
+ def initialize query
29
+ @var = "hello world"
30
+ end
31
+ end
32
+
33
+ class MyForm4 < Web::SimpleDispatcher::Template
34
+ attr_accessor :var
35
+
36
+ def initialize query
37
+ @var = "hello world"
38
+ end
39
+
40
+ def on_submit form_values
41
+ @var = "goodbye world"
42
+ end
43
+ end
44
+
45
+ class MyForm5 < Web::SimpleDispatcher::Template
46
+ attr_accessor :var
47
+
48
+ def initialize query
49
+ @var = "hello world"
50
+ end
51
+
52
+ def on_submit form_values
53
+ Web.puts @var
54
+ end
55
+ end
56
+
57
+ class MyForm6 < Web::SimpleDispatcher::Template
58
+ attr_accessor :var
59
+
60
+ def initialize query
61
+ @var = "hello world"
62
+ end
63
+
64
+ def on_submit form_values
65
+ Web.puts @var
66
+
67
+ redirect_to_template MyForm7, "var" => "xxxx"
68
+ end
69
+ end
70
+
71
+ class MyForm7 < Web::SimpleDispatcher::Template
72
+ def initialize query
73
+ Web << query["var"]
74
+ end
75
+ end
76
+
77
+ class TestLinkTemplate < Web::SimpleDispatcher::Template
78
+ attr_accessor :alink
79
+
80
+ def initialize query
81
+ @alink = Web::SimpleDispatcher::Link.new( MyForm1 , { "a" => "1", "b" => "2" } )
82
+ end
83
+ end
84
+
85
+
86
+ class TestForm < Test::Unit::TestCase
87
+ include Web::Testing
88
+ require 'ftools'
89
+ def setup
90
+ if File.exists?( temp_dir + "/test_dir/" )
91
+ File.rm_rf( temp_dir + "/test_dir")
92
+ end
93
+ Dir.mkdir(temp_dir + "/test_dir/")
94
+ Dir.mkdir(temp_dir + "/test_dir/templates")
95
+ Web.set_docroot(temp_dir + "/test_dir/")
96
+ end
97
+
98
+ def teardown
99
+ File.rm_rf( temp_dir + "/test_dir")
100
+ end
101
+
102
+ def test_displays_template
103
+ # create a file system to put the files in
104
+ file = "Web::SimpleDispatcher.handle_request( :default => MyForm1 )"
105
+ File.open( temp_dir + "/test_dir/app.rb" , "w" ) { |f| f.write(file) }
106
+ file = "<html><body>{$var}</body></html>"
107
+ File.open( temp_dir + "/test_dir/templates/my_form3.html" , "w" ) { |f| f.write(file) }
108
+ do_request( "/app.rb/my_form3" )
109
+ assert_content "<html><body>hello world</body></html>"
110
+ end
111
+
112
+ def test_displays_default_template
113
+ # create a file system to put the files in
114
+ file = "Web::SimpleDispatcher.handle_request( :default => MyForm1 )"
115
+ File.open( temp_dir + "/test_dir/app.rb" , "w" ) { |f| f.write(file) }
116
+ file = "<html><body>default</body></html>"
117
+ File.open( temp_dir + "/test_dir/templates/my_form1.html" , "w" ) { |f| f.write(file) }
118
+ do_request( "/app.rb" )
119
+ assert_content "<html><body>default</body></html>"
120
+
121
+ # and with a trailing slash
122
+ do_request( "/app.rb/" )
123
+ assert_content "<html><body>default</body></html>"
124
+
125
+ # and check that we are there because of a redirect
126
+ assert_equal "/my_form1", Web.path_info
127
+ end
128
+
129
+ def test_displays_default_template_with_trailing_slash
130
+ # create a file system to put the files in
131
+ file = "Web::SimpleDispatcher.handle_request( :default => MyForm1 )"
132
+ File.open( temp_dir + "/test_dir/app.rb" , "w" ) { |f| f.write(file) }
133
+ file = "<html><body>default</body></html>"
134
+ File.open( temp_dir + "/test_dir/templates/my_form1.html" , "w" ) { |f| f.write(file) }
135
+ end
136
+
137
+ def test_handle_submit
138
+ file = "Web::SimpleDispatcher.handle_request( :default => MyForm1 )"
139
+ File.open( temp_dir + "/test_dir/app.rb" , "w" ) { |f| f.write(file) }
140
+ file = "<html><body>{$var}<narf:form name=\"f\"><input type=submit></narf:form></body></html>"
141
+ File.open( temp_dir + "/test_dir/templates/my_form4.html" , "w" ) { |f| f.write(file) }
142
+ do_request( "/app.rb/my_form4" )
143
+ do_submit( "f" , {})
144
+ assert_content "<html><body>goodbye world<form name=\"f\" method=\"\"><input type=\"hidden\" name=\"__submitted\" value=\"f\"><input type=submit></form></body></html>"
145
+ end
146
+
147
+ def test_submit_template_gets_updated
148
+ file = "Web::SimpleDispatcher.handle_request( :default => MyForm1 )"
149
+ File.open( temp_dir + "/test_dir/app.rb" , "w" ) { |f| f.write(file) }
150
+ file = "<html><body>{$var}<narf:form name=f>"+
151
+ "<narf:input type=text name=var></narf:form></body></html>"
152
+ File.open( temp_dir + "/test_dir/templates/my_form5.html" , "w" ) { |f| f.write(file) }
153
+ do_request "/app.rb/my_form5"
154
+ do_submit "f" , "var" => "newvalue"
155
+ assert_content "newvalue\n<html><body>newvalue"+
156
+ "<form name=\"f\" method=\"\"><input type=\"hidden\" name=\"__submitted\" value=\"f\">"+
157
+ "<input type=\"text\" name=\"var\" value=\"newvalue\"></form></body></html>"
158
+ end
159
+
160
+ def test_redirect_to_new_location
161
+ file = "Web::SimpleDispatcher.handle_request( :default => MyForm1 )"
162
+ File.open( temp_dir + "/test_dir/app.rb" , "w" ) { |f| f.write(file) }
163
+ file = "<html><body>{$var}<narf:form name=f>"+
164
+ "<narf:input type=text name=var></narf:form></body></html>"
165
+ File.open( temp_dir + "/test_dir/templates/my_form6.html" , "w" ) { |f| f.write(file) }
166
+
167
+ file = ""
168
+ File.open( temp_dir + "/test_dir/templates/my_form7.html" , "w" ) { |f| f.write(file) }
169
+
170
+ do_request "/app.rb/my_form6"
171
+
172
+ do_submit "f" , "var" => "newvalue"
173
+ assert_content "xxxx"
174
+ end
175
+
176
+ def test_display_link
177
+ file = "Web::SimpleDispatcher.handle_request( :default => MyForm1 )"
178
+ File.open( temp_dir + "/test_dir/app.rb" , "w" ) { |f| f.write(file) }
179
+ file = "<html><body><narf:link value=\"alink\">Link Text</narf:link></body></html>"
180
+ File.open( temp_dir + "/test_dir/templates/test_link_template.html" , "w" ) { |f| f.write(file) }
181
+
182
+ do_request( "/app.rb/test_link_template" )
183
+
184
+ assert_content "<html><body><a href=\"my_form1?a=1&b=2\">Link Text</a></body></html>"
185
+ end
186
+ end
@@ -0,0 +1,21 @@
1
+ class Digit
2
+
3
+ attr_accessor :value
4
+
5
+ def initialize( x )
6
+ if x =~ /^0x/
7
+ @value = x.oct
8
+ else
9
+ @value = x.to_i
10
+ end
11
+ end
12
+
13
+ def to_s( n=10 )
14
+ if n == 16
15
+ '0x%X' % @value
16
+ else
17
+ @value.to_s
18
+ end
19
+ end
20
+
21
+ end
@@ -0,0 +1,17 @@
1
+ class Digit
2
+
3
+ attr_accessor :value
4
+
5
+ def initialize( x )
6
+ @value = x =~ /^0/ ? x.oct : x.to_i
7
+ end
8
+
9
+ def to_s( n=10 )
10
+ case n
11
+ when 8; @value == 0 ? '0' : '0%o' % @value
12
+ when 16; '0x%X' % @value
13
+ else @value.to_s
14
+ end
15
+ end
16
+
17
+ end
@@ -0,0 +1,23 @@
1
+ =begin
2
+ = sample of WebUnit( digit.rb )
3
+ Copyright(C) 2001 yuichi TAKAHASHI
4
+ $Id: digit.rb,v 1.1.1.1 2003/01/21 11:50:40 yuichi Exp $
5
+ =end
6
+
7
+ class Digit
8
+
9
+ attr_accessor :value
10
+
11
+ def initialize( x )
12
+ @value = x =~ /^0/ ? x.oct : x.to_i
13
+ end
14
+
15
+ def to_s( n=10 )
16
+ case n
17
+ when 8; @value == 0 ? '0' : '0%o' % @value
18
+ when 16; '0x%X' % @value
19
+ else @value.to_s
20
+ end
21
+ end
22
+
23
+ end
@@ -0,0 +1,16 @@
1
+ require 'runit/testcase'
2
+ require 'digit-0'
3
+
4
+ class TestDigit < RUNIT::TestCase
5
+
6
+ def test_value
7
+ assert_equals( 10, Digit::new( '10' ).value )
8
+ assert_equals( 16, Digit::new( '0x10' ).value )
9
+ end
10
+
11
+ def test_to_s
12
+ assert_equals( '16', Digit::new( '0x10' ).to_s( 10 ) )
13
+ assert_equals( '0xA', Digit::new( '10' ).to_s( 16 ) )
14
+ end
15
+
16
+ end
@@ -0,0 +1,19 @@
1
+ require 'webunit/webunit'
2
+ require 'digit-1'
3
+
4
+ class TestDigit < RUNIT::TestCase
5
+
6
+ def test_value
7
+ assert_equals( 8, Digit::new( '010' ).value )
8
+ assert_equals( 10, Digit::new( '10' ).value )
9
+ assert_equals( 16, Digit::new( '0x10' ).value )
10
+ end
11
+
12
+ def test_to_s
13
+ assert_equals( '012', Digit::new( '10' ).to_s( 8 ) )
14
+ assert_equals( '0', Digit::new( '0' ).to_s( 8 ) )
15
+ assert_equals( '16', Digit::new( '0x10' ).to_s( 10 ) )
16
+ assert_equals( '0xA', Digit::new( '10' ).to_s( 16 ) )
17
+ end
18
+
19
+ end
@@ -0,0 +1,26 @@
1
+ =begin
2
+ = sample of WebUnit( test_digit.rb )
3
+ Copyright(C) 2001 yuichi TAKAHASHI
4
+ $Id: test_digit.rb,v 1.1.1.1 2003/01/21 11:50:40 yuichi Exp $
5
+ =end
6
+
7
+ require 'webunit/webunit'
8
+ require 'digit'
9
+
10
+ class TestDigit < RUNIT::TestCase
11
+
12
+ def test_value
13
+ assert_equals( -1, Digit::new( '-1' ).value )
14
+ assert_equals( 0, Digit::new( '0' ).value )
15
+ assert_equals( 1, Digit::new( '1' ).value )
16
+ assert_equals( 16, Digit::new( '0x10' ).value )
17
+ end
18
+
19
+ def test_to_s
20
+ assert_equals( '012', Digit::new( '10' ).to_s( 8 ) )
21
+ assert_equals( '0', Digit::new( '0' ).to_s( 8 ) )
22
+ assert_equals( '16', Digit::new( '0x10' ).to_s( 10 ) )
23
+ assert_equals( '0xA', Digit::new( '10' ).to_s( 16 ) )
24
+ end
25
+
26
+ end
@@ -0,0 +1,76 @@
1
+ require 'webunit/webunit'
2
+
3
+ class TestDigitView < WebUnit::TestCase
4
+
5
+ def setup
6
+ super
7
+ @url = "webunit/sample/conv/digit-0.cgi"
8
+ end
9
+
10
+ def test_initial
11
+
12
+ response = Response::get( @url )
13
+ assert_title( 'Digit - WebUnit Sample -', response )
14
+
15
+ assert_equals( 1, response.forms.size )
16
+ assert_equals( 1, response.tables.size )
17
+
18
+ form = response.form
19
+ assert_urls( @url, form.action )
20
+ assert_equals( 'post', form.method )
21
+
22
+ parameters = form.parameters #=> array
23
+ assert_equals( 4, parameters.size )
24
+ i = -1
25
+
26
+ assert_input( 'tdec', 'text', '0', parameters[i+=1] )
27
+ assert_input( 'thex', 'text', '0x0', parameters[i+=1] )
28
+ assert_input( 'bdec', 'submit', '10=&gt;', parameters[i+=1] )
29
+ assert_input( 'bhex', 'submit', '16=&gt;', parameters[i+=1] )
30
+
31
+ table = response.table
32
+ params = form.params #=> hash
33
+
34
+ assert_include( params['tdec'], table.at(1,1) )
35
+ assert_include( params['bdec'], table.at(2,1) )
36
+ assert_equals( 'center', table.at(2,1).attrs['align'] )
37
+
38
+ assert_include( params['thex'], table.at(1,2) )
39
+ assert_include( params['bhex'], table.at(2,2) )
40
+ assert_equals( 'center', table.at(2,2).attrs['align'] )
41
+
42
+ end
43
+
44
+ def test_10_to
45
+
46
+ response = Response::get( @url )
47
+ assert_title( 'Digit - WebUnit Sample -', response )
48
+
49
+ form = response.form
50
+ params = form.params
51
+
52
+ params['tdec'].value = '10'
53
+ response = form.submit( 'bdec' )
54
+
55
+ params = response.form.params
56
+ assert_equals( '0xA', params['thex'].value )
57
+
58
+ end
59
+
60
+ def test_16_to
61
+
62
+ response = Response::get( @url )
63
+ assert_title( 'Digit - WebUnit Sample -', response )
64
+
65
+ form = response.form
66
+ params = form.params
67
+
68
+ params['thex'].value = '0x1A'
69
+ response = form.submit( 'bhex' )
70
+
71
+ params = response.form.params
72
+ assert_equals( '26', params['tdec'].value )
73
+
74
+ end
75
+
76
+ end
@@ -0,0 +1,102 @@
1
+ require 'webunit/webunit'
2
+
3
+ class TestDigitView < WebUnit::TestCase
4
+
5
+ def setup
6
+ super
7
+ @url = "webunit/sample/conv/digit-1.cgi"
8
+ end
9
+
10
+ def test_initial
11
+
12
+ response = Response::get( @url )
13
+ assert_title( 'Digit - WebUnit Sample -', response )
14
+
15
+ assert_equals( 1, response.forms.size )
16
+ assert_equals( 1, response.tables.size )
17
+
18
+ form = response.form
19
+ assert_urls( @url, form.action )
20
+ assert_equals( 'post', form.method )
21
+
22
+ parameters = form.parameters #=> array
23
+ assert_equals( 6, parameters.size )
24
+ i = -1
25
+
26
+ assert_input( 'toct', 'text', '0', parameters[i+=1] )
27
+ assert_input( 'tdec', 'text', '0', parameters[i+=1] )
28
+ assert_input( 'thex', 'text', '0x0', parameters[i+=1] )
29
+ assert_input( 'boct', 'submit', '8=&gt;', parameters[i+=1] )
30
+ assert_input( 'bdec', 'submit', '10=&gt;', parameters[i+=1] )
31
+ assert_input( 'bhex', 'submit', '16=&gt;', parameters[i+=1] )
32
+
33
+ table = response.table
34
+ params = form.params #=> hash
35
+ c = 0
36
+
37
+ assert_include( params['toct'], table.at(1,c+=1) )
38
+ assert_include( params['boct'], table.at(2,c) )
39
+ assert_equals( 'center', table.at(2,c).attrs['align'] )
40
+
41
+ assert_include( params['tdec'], table.at(1,c+=1) )
42
+ assert_include( params['bdec'], table.at(2,c) )
43
+ assert_equals( 'center', table.at(2,c).attrs['align'] )
44
+
45
+ assert_include( params['thex'], table.at(1,c+=1) )
46
+ assert_include( params['bhex'], table.at(2,c) )
47
+ assert_equals( 'center', table.at(2,c).attrs['align'] )
48
+
49
+ end
50
+
51
+ def test_8_to
52
+
53
+ response = Response::get( @url )
54
+ assert_title( 'Digit - WebUnit Sample -', response )
55
+
56
+ form = response.form
57
+ params = form.params
58
+
59
+ params['toct'].value = '017'
60
+ response = form.submit( 'boct' )
61
+
62
+ params = response.form.params
63
+ assert_equals( '15', params['tdec'].value )
64
+ assert_equals( '0xF', params['thex'].value )
65
+
66
+ end
67
+
68
+ def test_10_to
69
+
70
+ response = Response::get( @url )
71
+ assert_title( 'Digit - WebUnit Sample -', response )
72
+
73
+ form = response.form
74
+ params = form.params
75
+
76
+ params['tdec'].value = '10'
77
+ response = form.submit( 'bdec' )
78
+
79
+ params = response.form.params
80
+ assert_equals( '012', params['toct'].value )
81
+ assert_equals( '0xA', params['thex'].value )
82
+
83
+ end
84
+
85
+ def test_16_to
86
+
87
+ response = Response::get( @url )
88
+ assert_title( 'Digit - WebUnit Sample -', response )
89
+
90
+ form = response.form
91
+ params = form.params
92
+
93
+ params['thex'].value = '0x1A'
94
+ response = form.submit( 'bhex' )
95
+
96
+ params = response.form.params
97
+ assert_equals( '032', params['toct'].value )
98
+ assert_equals( '26', params['tdec'].value )
99
+
100
+ end
101
+
102
+ end