mkuklis-webrat 0.5.1 → 0.6.rc1

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 (211) hide show
  1. data/.document +3 -3
  2. data/.gitignore +14 -14
  3. data/History.txt +413 -413
  4. data/MIT-LICENSE.txt +19 -19
  5. data/README.rdoc +84 -84
  6. data/Rakefile +187 -187
  7. data/VERSION +1 -1
  8. data/install.rb +1 -1
  9. data/lib/webrat/adapters/mechanize.rb +78 -78
  10. data/lib/webrat/adapters/merb.rb +11 -11
  11. data/lib/webrat/adapters/rack.rb +25 -25
  12. data/lib/webrat/adapters/rails.rb +81 -81
  13. data/lib/webrat/adapters/sinatra.rb +9 -9
  14. data/lib/webrat/core/configuration.rb +92 -92
  15. data/lib/webrat/core/elements/area.rb +31 -31
  16. data/lib/webrat/core/elements/element.rb +33 -33
  17. data/lib/webrat/core/elements/field.rb +487 -487
  18. data/lib/webrat/core/elements/form.rb +103 -103
  19. data/lib/webrat/core/elements/label.rb +31 -31
  20. data/lib/webrat/core/elements/link.rb +93 -93
  21. data/lib/webrat/core/elements/select_option.rb +48 -48
  22. data/lib/webrat/core/locators/area_locator.rb +38 -38
  23. data/lib/webrat/core/locators/button_locator.rb +54 -54
  24. data/lib/webrat/core/locators/field_by_id_locator.rb +37 -37
  25. data/lib/webrat/core/locators/field_labeled_locator.rb +56 -56
  26. data/lib/webrat/core/locators/field_locator.rb +25 -25
  27. data/lib/webrat/core/locators/field_named_locator.rb +41 -41
  28. data/lib/webrat/core/locators/form_locator.rb +19 -19
  29. data/lib/webrat/core/locators/label_locator.rb +34 -34
  30. data/lib/webrat/core/locators/link_locator.rb +74 -74
  31. data/lib/webrat/core/locators/locator.rb +20 -20
  32. data/lib/webrat/core/locators/select_option_locator.rb +59 -59
  33. data/lib/webrat/core/locators.rb +20 -20
  34. data/lib/webrat/core/logging.rb +23 -23
  35. data/lib/webrat/core/matchers/have_content.rb +68 -68
  36. data/lib/webrat/core/matchers/have_selector.rb +74 -74
  37. data/lib/webrat/core/matchers/have_tag.rb +21 -21
  38. data/lib/webrat/core/matchers/have_xpath.rb +122 -122
  39. data/lib/webrat/core/matchers.rb +4 -4
  40. data/lib/webrat/core/methods.rb +64 -64
  41. data/lib/webrat/core/mime.rb +18 -18
  42. data/lib/webrat/core/save_and_open_page.rb +48 -48
  43. data/lib/webrat/core/scope.rb +365 -365
  44. data/lib/webrat/core/session.rb +306 -306
  45. data/lib/webrat/core/xml.rb +72 -72
  46. data/lib/webrat/core.rb +13 -13
  47. data/lib/webrat/core_extensions/blank.rb +58 -58
  48. data/lib/webrat/core_extensions/deprecate.rb +8 -8
  49. data/lib/webrat/core_extensions/detect_mapped.rb +12 -12
  50. data/lib/webrat/core_extensions/meta_class.rb +6 -6
  51. data/lib/webrat/core_extensions/nil_to_param.rb +5 -5
  52. data/lib/webrat/core_extensions/tcp_socket.rb +27 -27
  53. data/lib/webrat/integrations/merb.rb +10 -10
  54. data/lib/webrat/integrations/rails.rb +25 -25
  55. data/lib/webrat/integrations/rspec-rails.rb +10 -10
  56. data/lib/webrat/integrations/selenium.rb +11 -11
  57. data/lib/webrat/merb.rb +9 -9
  58. data/lib/webrat/rspec-rails.rb +2 -2
  59. data/lib/webrat/selenium/application_server_factory.rb +40 -40
  60. data/lib/webrat/selenium/application_servers/external.rb +26 -26
  61. data/lib/webrat/selenium/application_servers/merb.rb +50 -50
  62. data/lib/webrat/selenium/application_servers/rails.rb +3 -6
  63. data/lib/webrat/selenium/application_servers/sinatra.rb +37 -37
  64. data/lib/webrat/selenium/application_servers.rb +5 -5
  65. data/lib/webrat/selenium/location_strategy_javascript/button.js +19 -19
  66. data/lib/webrat/selenium/location_strategy_javascript/label.js +42 -42
  67. data/lib/webrat/selenium/location_strategy_javascript/webrat.js +6 -6
  68. data/lib/webrat/selenium/location_strategy_javascript/webratlink.js +32 -32
  69. data/lib/webrat/selenium/location_strategy_javascript/webratlinkwithin.js +15 -15
  70. data/lib/webrat/selenium/location_strategy_javascript/webratselectwithoption.js +5 -5
  71. data/lib/webrat/selenium/matchers/have_content.rb +66 -66
  72. data/lib/webrat/selenium/matchers/have_selector.rb +49 -49
  73. data/lib/webrat/selenium/matchers/have_tag.rb +72 -72
  74. data/lib/webrat/selenium/matchers/have_xpath.rb +45 -45
  75. data/lib/webrat/selenium/matchers.rb +4 -4
  76. data/lib/webrat/selenium/selenium_extensions.js +5 -5
  77. data/lib/webrat/selenium/selenium_rc_server.rb +86 -86
  78. data/lib/webrat/selenium/selenium_session.rb +267 -272
  79. data/lib/webrat/selenium/silence_stream.rb +18 -18
  80. data/lib/webrat/selenium.rb +70 -70
  81. data/lib/webrat.rb +18 -18
  82. data/spec/fakes/test_adapter.rb +37 -37
  83. data/spec/integration/mechanize/Rakefile +6 -6
  84. data/spec/integration/mechanize/config.ru +1 -1
  85. data/spec/integration/mechanize/sample_app.rb +20 -20
  86. data/spec/integration/mechanize/spec/mechanize_spec.rb +22 -22
  87. data/spec/integration/mechanize/spec/spec_helper.rb +27 -27
  88. data/spec/integration/merb/.gitignore +20 -20
  89. data/spec/integration/merb/Rakefile +35 -35
  90. data/spec/integration/merb/app/controllers/application.rb +2 -2
  91. data/spec/integration/merb/app/controllers/exceptions.rb +13 -13
  92. data/spec/integration/merb/app/controllers/testing.rb +27 -27
  93. data/spec/integration/merb/app/views/exceptions/not_acceptable.html.erb +63 -63
  94. data/spec/integration/merb/app/views/exceptions/not_found.html.erb +47 -47
  95. data/spec/integration/merb/app/views/layout/application.html.erb +11 -11
  96. data/spec/integration/merb/app/views/testing/show_form.html.erb +26 -26
  97. data/spec/integration/merb/app/views/testing/upload.html.erb +8 -8
  98. data/spec/integration/merb/config/environments/development.rb +15 -15
  99. data/spec/integration/merb/config/environments/rake.rb +11 -11
  100. data/spec/integration/merb/config/environments/test.rb +14 -14
  101. data/spec/integration/merb/config/init.rb +25 -25
  102. data/spec/integration/merb/config/rack.rb +11 -11
  103. data/spec/integration/merb/config/router.rb +34 -34
  104. data/spec/integration/merb/spec/spec.opts +1 -1
  105. data/spec/integration/merb/spec/spec_helper.rb +26 -26
  106. data/spec/integration/merb/spec/webrat_spec.rb +39 -39
  107. data/spec/integration/merb/tasks/merb.thor/app_script.rb +31 -31
  108. data/spec/integration/merb/tasks/merb.thor/common.rb +64 -64
  109. data/spec/integration/merb/tasks/merb.thor/gem_ext.rb +124 -124
  110. data/spec/integration/merb/tasks/merb.thor/main.thor +149 -149
  111. data/spec/integration/merb/tasks/merb.thor/ops.rb +93 -93
  112. data/spec/integration/merb/tasks/merb.thor/utils.rb +40 -40
  113. data/spec/integration/rack/Rakefile +5 -5
  114. data/spec/integration/rack/app.rb +89 -89
  115. data/spec/integration/rack/test/helper.rb +21 -21
  116. data/spec/integration/rack/test/webrat_rack_test.rb +73 -73
  117. data/spec/integration/rails/.gitignore +3 -3
  118. data/spec/integration/rails/Rakefile +30 -30
  119. data/spec/integration/rails/app/controllers/application.rb +15 -15
  120. data/spec/integration/rails/app/controllers/buttons_controller.rb +7 -7
  121. data/spec/integration/rails/app/controllers/fields_controller.rb +4 -4
  122. data/spec/integration/rails/app/controllers/links_controller.rb +7 -7
  123. data/spec/integration/rails/app/controllers/webrat_controller.rb +46 -46
  124. data/spec/integration/rails/app/helpers/buttons_helper.rb +2 -2
  125. data/spec/integration/rails/app/helpers/fields_helper.rb +2 -2
  126. data/spec/integration/rails/app/helpers/links_helper.rb +2 -2
  127. data/spec/integration/rails/app/views/buttons/show.html.erb +10 -10
  128. data/spec/integration/rails/app/views/fields/show.html.erb +8 -8
  129. data/spec/integration/rails/app/views/links/show.html.erb +5 -5
  130. data/spec/integration/rails/app/views/webrat/before_redirect_form.html.erb +3 -3
  131. data/spec/integration/rails/app/views/webrat/buttons.html.erb +10 -10
  132. data/spec/integration/rails/app/views/webrat/form.html.erb +27 -27
  133. data/spec/integration/rails/app/views/webrat/within.html.erb +2 -2
  134. data/spec/integration/rails/config/boot.rb +109 -109
  135. data/spec/integration/rails/config/environment.rb +12 -12
  136. data/spec/integration/rails/config/environments/development.rb +17 -17
  137. data/spec/integration/rails/config/environments/selenium.rb +22 -22
  138. data/spec/integration/rails/config/environments/test.rb +22 -22
  139. data/spec/integration/rails/config/initializers/inflections.rb +10 -10
  140. data/spec/integration/rails/config/initializers/mime_types.rb +5 -5
  141. data/spec/integration/rails/config/initializers/new_rails_defaults.rb +17 -17
  142. data/spec/integration/rails/config/locales/en.yml +4 -4
  143. data/spec/integration/rails/config/routes.rb +19 -19
  144. data/spec/integration/rails/public/404.html +29 -29
  145. data/spec/integration/rails/public/422.html +29 -29
  146. data/spec/integration/rails/public/500.html +33 -33
  147. data/spec/integration/rails/script/about +3 -3
  148. data/spec/integration/rails/script/console +3 -3
  149. data/spec/integration/rails/script/dbconsole +3 -3
  150. data/spec/integration/rails/script/destroy +3 -3
  151. data/spec/integration/rails/script/generate +3 -3
  152. data/spec/integration/rails/script/performance/benchmarker +3 -3
  153. data/spec/integration/rails/script/performance/profiler +3 -3
  154. data/spec/integration/rails/script/performance/request +3 -3
  155. data/spec/integration/rails/script/plugin +3 -3
  156. data/spec/integration/rails/script/process/inspector +3 -3
  157. data/spec/integration/rails/script/process/reaper +3 -3
  158. data/spec/integration/rails/script/process/spawner +3 -3
  159. data/spec/integration/rails/script/runner +3 -3
  160. data/spec/integration/rails/script/server +3 -3
  161. data/spec/integration/rails/test/integration/button_click_test.rb +80 -80
  162. data/spec/integration/rails/test/integration/fill_in_test.rb +24 -24
  163. data/spec/integration/rails/test/integration/link_click_test.rb +27 -27
  164. data/spec/integration/rails/test/integration/webrat_test.rb +122 -122
  165. data/spec/integration/rails/test/test_helper.rb +26 -26
  166. data/spec/integration/sinatra/Rakefile +5 -5
  167. data/spec/integration/sinatra/classic_app.rb +64 -64
  168. data/spec/integration/sinatra/modular_app.rb +16 -16
  169. data/spec/integration/sinatra/test/classic_app_test.rb +37 -37
  170. data/spec/integration/sinatra/test/modular_app_test.rb +18 -18
  171. data/spec/integration/sinatra/test/test_helper.rb +17 -17
  172. data/spec/private/core/configuration_spec.rb +87 -87
  173. data/spec/private/core/field_spec.rb +85 -85
  174. data/spec/private/core/link_spec.rb +24 -24
  175. data/spec/private/core/session_spec.rb +200 -200
  176. data/spec/private/mechanize/mechanize_adapter_spec.rb +73 -73
  177. data/spec/private/nokogiri_spec.rb +77 -77
  178. data/spec/private/rails/attaches_file_spec.rb +81 -81
  179. data/spec/private/rails/rails_adapter_spec.rb +86 -86
  180. data/spec/private/selenium/application_servers/rails_spec.rb +26 -26
  181. data/spec/public/basic_auth_spec.rb +24 -24
  182. data/spec/public/check_spec.rb +191 -191
  183. data/spec/public/choose_spec.rb +118 -118
  184. data/spec/public/click_area_spec.rb +106 -106
  185. data/spec/public/click_button_spec.rb +494 -494
  186. data/spec/public/click_link_spec.rb +511 -511
  187. data/spec/public/fill_in_spec.rb +224 -224
  188. data/spec/public/locators/field_by_xpath_spec.rb +19 -19
  189. data/spec/public/locators/field_labeled_spec.rb +172 -172
  190. data/spec/public/locators/field_with_id_spec.rb +16 -16
  191. data/spec/public/matchers/contain_spec.rb +114 -114
  192. data/spec/public/matchers/have_selector_spec.rb +146 -146
  193. data/spec/public/matchers/have_tag_spec.rb +39 -39
  194. data/spec/public/matchers/have_xpath_spec.rb +136 -136
  195. data/spec/public/reload_spec.rb +10 -10
  196. data/spec/public/save_and_open_spec.rb +70 -70
  197. data/spec/public/select_date_spec.rb +112 -112
  198. data/spec/public/select_datetime_spec.rb +137 -137
  199. data/spec/public/select_spec.rb +455 -455
  200. data/spec/public/select_time_spec.rb +100 -100
  201. data/spec/public/selenium/application_server_factory_spec.rb +49 -49
  202. data/spec/public/selenium/application_servers/external_spec.rb +12 -12
  203. data/spec/public/selenium/selenium_session_spec.rb +37 -37
  204. data/spec/public/set_hidden_field_spec.rb +5 -5
  205. data/spec/public/submit_form_spec.rb +5 -5
  206. data/spec/public/visit_spec.rb +58 -58
  207. data/spec/public/within_spec.rb +177 -177
  208. data/spec/spec.opts +1 -1
  209. data/spec/spec_helper.rb +54 -54
  210. data/webrat.gemspec +360 -0
  211. metadata +6 -5
@@ -1,89 +1,89 @@
1
- require "rubygems"
2
- require "sinatra/base"
3
-
4
- class RackApp < Sinatra::Base
5
- use_in_file_templates!
6
-
7
- get "/" do
8
- erb :home
9
- end
10
-
11
- get "/go" do
12
- erb :go
13
- end
14
-
15
- get "/internal_redirect" do
16
- redirect "/"
17
- end
18
-
19
- get "/external_redirect" do
20
- redirect "http://google.com"
21
- end
22
-
23
- get "/absolute_redirect" do
24
- redirect URI.join(request.url, "foo").to_s
25
- end
26
-
27
- get "/foo" do
28
- "spam"
29
- end
30
-
31
- post "/go" do
32
- @user = params[:name]
33
- @email = params[:email]
34
- erb :hello
35
- end
36
-
37
- get "/upload" do
38
- erb :uploader
39
- end
40
-
41
- post "/upload" do
42
- params[:uploaded_file].to_yaml
43
- end
44
- end
45
-
46
- __END__
47
- @@ layout
48
- <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd">
49
- <html>
50
- <title>sinatra testing with webrat</title>
51
- <body>
52
- <%= yield %>
53
- </body>
54
- </html>
55
-
56
- @@ home
57
- <p> visit <a href="/go">there</a></p>
58
-
59
- <form>
60
- <label>
61
- Prefilled
62
- <input type="text" name="prefilled" value="text" />
63
- </label>
64
- </form>
65
-
66
- @@ go
67
- <form method="post" action="/go">
68
- <div>
69
- <label for="name">Name</label>
70
- <input type="text" name="name" id="name">
71
- </div>
72
- <div>
73
- <label for="email">Email</label>
74
- <input type="text" name="email" id="email">
75
- </div>
76
- <input type="submit" value="Submit" />
77
- </form>
78
-
79
- @@ hello
80
- <p>Hello, <%= @user %></p>
81
- <p>Your email is: <%= @email %></p>
82
-
83
- @@ uploader
84
- <form action="/upload" method="post">
85
- <label>
86
- File <input type="file" name="uploaded_file" />
87
- </label>
88
- <input type="submit" value="Upload">
89
- </form>
1
+ require "rubygems"
2
+ require "sinatra/base"
3
+
4
+ class RackApp < Sinatra::Base
5
+ use_in_file_templates!
6
+
7
+ get "/" do
8
+ erb :home
9
+ end
10
+
11
+ get "/go" do
12
+ erb :go
13
+ end
14
+
15
+ get "/internal_redirect" do
16
+ redirect "/"
17
+ end
18
+
19
+ get "/external_redirect" do
20
+ redirect "http://google.com"
21
+ end
22
+
23
+ get "/absolute_redirect" do
24
+ redirect URI.join(request.url, "foo").to_s
25
+ end
26
+
27
+ get "/foo" do
28
+ "spam"
29
+ end
30
+
31
+ post "/go" do
32
+ @user = params[:name]
33
+ @email = params[:email]
34
+ erb :hello
35
+ end
36
+
37
+ get "/upload" do
38
+ erb :uploader
39
+ end
40
+
41
+ post "/upload" do
42
+ params[:uploaded_file].to_yaml
43
+ end
44
+ end
45
+
46
+ __END__
47
+ @@ layout
48
+ <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd">
49
+ <html>
50
+ <title>sinatra testing with webrat</title>
51
+ <body>
52
+ <%= yield %>
53
+ </body>
54
+ </html>
55
+
56
+ @@ home
57
+ <p> visit <a href="/go">there</a></p>
58
+
59
+ <form>
60
+ <label>
61
+ Prefilled
62
+ <input type="text" name="prefilled" value="text" />
63
+ </label>
64
+ </form>
65
+
66
+ @@ go
67
+ <form method="post" action="/go">
68
+ <div>
69
+ <label for="name">Name</label>
70
+ <input type="text" name="name" id="name">
71
+ </div>
72
+ <div>
73
+ <label for="email">Email</label>
74
+ <input type="text" name="email" id="email">
75
+ </div>
76
+ <input type="submit" value="Submit" />
77
+ </form>
78
+
79
+ @@ hello
80
+ <p>Hello, <%= @user %></p>
81
+ <p>Your email is: <%= @email %></p>
82
+
83
+ @@ uploader
84
+ <form action="/upload" method="post">
85
+ <label>
86
+ File <input type="file" name="uploaded_file" />
87
+ </label>
88
+ <input type="submit" value="Upload">
89
+ </form>
@@ -1,21 +1,21 @@
1
- require "rubygems"
2
- require "test/unit"
3
- require "rack/test"
4
- # require "redgreen"
5
-
6
- $LOAD_PATH.unshift File.dirname(__FILE__) + "/../../../../lib"
7
- require "webrat"
8
- require File.dirname(__FILE__) + "/../app"
9
-
10
- Webrat.configure do |config|
11
- config.mode = :rack
12
- end
13
-
14
- class Test::Unit::TestCase
15
- def app
16
- Rack::Builder.new {
17
- use Rack::Lint
18
- run RackApp.new
19
- }
20
- end
21
- end
1
+ require "rubygems"
2
+ require "test/unit"
3
+ require "rack/test"
4
+ # require "redgreen"
5
+
6
+ $LOAD_PATH.unshift File.dirname(__FILE__) + "/../../../../lib"
7
+ require "webrat"
8
+ require File.dirname(__FILE__) + "/../app"
9
+
10
+ Webrat.configure do |config|
11
+ config.mode = :rack
12
+ end
13
+
14
+ class Test::Unit::TestCase
15
+ def app
16
+ Rack::Builder.new {
17
+ use Rack::Lint
18
+ run RackApp.new
19
+ }
20
+ end
21
+ end
@@ -1,73 +1,73 @@
1
- require File.dirname(__FILE__) + "/helper"
2
-
3
- class WebratRackTest < Test::Unit::TestCase
4
- include Rack::Test::Methods
5
- include Webrat::Methods
6
- include Webrat::Matchers
7
- include Webrat::HaveTagMatcher
8
-
9
- def build_rack_mock_session
10
- Rack::MockSession.new(app, "www.example.com")
11
- end
12
-
13
- def test_visits_pages
14
- visit "/"
15
- click_link "there"
16
-
17
- assert_have_tag("form[@method='post'][@action='/go']")
18
- end
19
-
20
- def test_submits_form
21
- visit "/go"
22
- fill_in "Name", :with => "World"
23
- fill_in "Email", :with => "world@example.org"
24
- click_button "Submit"
25
-
26
- assert_contain "Hello, World"
27
- assert_contain "Your email is: world@example.org"
28
- end
29
-
30
- def test_check_value_of_field
31
- visit "/"
32
- assert_equal field_labeled("Prefilled").value, "text"
33
- end
34
-
35
- def test_follows_internal_redirects
36
- visit "/internal_redirect"
37
- assert_contain "visit"
38
- end
39
-
40
- def test_does_not_follow_external_redirects
41
- visit "/external_redirect"
42
- assert last_response.redirect?
43
- end
44
-
45
- def test_absolute_url_redirect
46
- visit "/absolute_redirect"
47
- assert_contain "spam"
48
- end
49
-
50
- def test_upload_file
51
- visit "/upload"
52
- attach_file "File", __FILE__, "text/ruby"
53
- click_button "Upload"
54
-
55
- upload = YAML.load(response_body)
56
- assert_equal "text/ruby", upload[:type]
57
- assert_equal "webrat_rack_test.rb", upload[:filename]
58
- assert upload[:tempfile].respond_to?(:read)
59
- end
60
- end
61
-
62
- class WebratRackSetupTest < Test::Unit::TestCase
63
- def test_usable_without_mixin
64
- rack_test_session = Rack::Test::Session.new(Rack::MockSession.new(app))
65
- adapter = Webrat::RackAdapter.new(rack_test_session)
66
- session = Webrat::Session.new(adapter)
67
-
68
- session.visit "/foo"
69
-
70
- assert_equal "spam", session.response_body
71
- assert_equal "spam", rack_test_session.last_response.body
72
- end
73
- end
1
+ require File.dirname(__FILE__) + "/helper"
2
+
3
+ class WebratRackTest < Test::Unit::TestCase
4
+ include Rack::Test::Methods
5
+ include Webrat::Methods
6
+ include Webrat::Matchers
7
+ include Webrat::HaveTagMatcher
8
+
9
+ def build_rack_mock_session
10
+ Rack::MockSession.new(app, "www.example.com")
11
+ end
12
+
13
+ def test_visits_pages
14
+ visit "/"
15
+ click_link "there"
16
+
17
+ assert_have_tag("form[@method='post'][@action='/go']")
18
+ end
19
+
20
+ def test_submits_form
21
+ visit "/go"
22
+ fill_in "Name", :with => "World"
23
+ fill_in "Email", :with => "world@example.org"
24
+ click_button "Submit"
25
+
26
+ assert_contain "Hello, World"
27
+ assert_contain "Your email is: world@example.org"
28
+ end
29
+
30
+ def test_check_value_of_field
31
+ visit "/"
32
+ assert_equal field_labeled("Prefilled").value, "text"
33
+ end
34
+
35
+ def test_follows_internal_redirects
36
+ visit "/internal_redirect"
37
+ assert_contain "visit"
38
+ end
39
+
40
+ def test_does_not_follow_external_redirects
41
+ visit "/external_redirect"
42
+ assert last_response.redirect?
43
+ end
44
+
45
+ def test_absolute_url_redirect
46
+ visit "/absolute_redirect"
47
+ assert_contain "spam"
48
+ end
49
+
50
+ def test_upload_file
51
+ visit "/upload"
52
+ attach_file "File", __FILE__, "text/ruby"
53
+ click_button "Upload"
54
+
55
+ upload = YAML.load(response_body)
56
+ assert_equal "text/ruby", upload[:type]
57
+ assert_equal "webrat_rack_test.rb", upload[:filename]
58
+ assert upload[:tempfile].respond_to?(:read)
59
+ end
60
+ end
61
+
62
+ class WebratRackSetupTest < Test::Unit::TestCase
63
+ def test_usable_without_mixin
64
+ rack_test_session = Rack::Test::Session.new(Rack::MockSession.new(app))
65
+ adapter = Webrat::RackAdapter.new(rack_test_session)
66
+ session = Webrat::Session.new(adapter)
67
+
68
+ session.visit "/foo"
69
+
70
+ assert_equal "spam", session.response_body
71
+ assert_equal "spam", rack_test_session.last_response.body
72
+ end
73
+ end
@@ -1,3 +1,3 @@
1
- vendor/plugins/webrat
2
- tmp/pids/*.pid
3
- log/*.log
1
+ vendor/plugins/webrat
2
+ tmp/pids/*.pid
3
+ log/*.log
@@ -1,30 +1,30 @@
1
- # Add your own tasks in files placed in lib/tasks ending in .rake,
2
- # for example lib/tasks/capistrano.rake, and they will automatically be available to Rake.
3
-
4
- require(File.join(File.dirname(__FILE__), 'config', 'boot'))
5
-
6
- require 'rake'
7
- require 'rake/testtask'
8
- require 'rake/rdoctask'
9
-
10
- require 'tasks/rails'
11
-
12
-
13
-
14
-
15
- namespace :test_unit do
16
- desc "runs the test::unit based tests in webrat mode"
17
- task :rails do
18
- ENV['WEBRAT_INTEGRATION_MODE'] = 'rails'
19
- Rake::Task['test:integration'].execute
20
- end
21
-
22
- desc "runs the test::unit based tests in selenium mode"
23
- task :selenium do
24
- ENV['WEBRAT_INTEGRATION_MODE'] = 'selenium'
25
- Rake::Task['test:integration'].execute
26
- end
27
-
28
- desc "run both selenium and rails mode Test::Unit suites"
29
- task :all => [:rails, :selenium]
30
- end
1
+ # Add your own tasks in files placed in lib/tasks ending in .rake,
2
+ # for example lib/tasks/capistrano.rake, and they will automatically be available to Rake.
3
+
4
+ require(File.join(File.dirname(__FILE__), 'config', 'boot'))
5
+
6
+ require 'rake'
7
+ require 'rake/testtask'
8
+ require 'rake/rdoctask'
9
+
10
+ require 'tasks/rails'
11
+
12
+
13
+
14
+
15
+ namespace :test_unit do
16
+ desc "runs the test::unit based tests in webrat mode"
17
+ task :rails do
18
+ ENV['WEBRAT_INTEGRATION_MODE'] = 'rails'
19
+ Rake::Task['test:integration'].execute
20
+ end
21
+
22
+ desc "runs the test::unit based tests in selenium mode"
23
+ task :selenium do
24
+ ENV['WEBRAT_INTEGRATION_MODE'] = 'selenium'
25
+ Rake::Task['test:integration'].execute
26
+ end
27
+
28
+ desc "run both selenium and rails mode Test::Unit suites"
29
+ task :all => [:rails, :selenium]
30
+ end
@@ -1,15 +1,15 @@
1
- # Filters added to this controller apply to all controllers in the application.
2
- # Likewise, all the methods added will be available for all controllers.
3
-
4
- class ApplicationController < ActionController::Base
5
- helper :all # include all helpers, all the time
6
-
7
- # See ActionController::RequestForgeryProtection for details
8
- # Uncomment the :secret if you're not using the cookie session store
9
- protect_from_forgery # :secret => 'ceaca978d06f1c9db5c84193c1447572'
10
-
11
- # See ActionController::Base for details
12
- # Uncomment this to filter the contents of submitted sensitive data parameters
13
- # from your application log (in this case, all fields with names like "password").
14
- # filter_parameter_logging :password
15
- end
1
+ # Filters added to this controller apply to all controllers in the application.
2
+ # Likewise, all the methods added will be available for all controllers.
3
+
4
+ class ApplicationController < ActionController::Base
5
+ helper :all # include all helpers, all the time
6
+
7
+ # See ActionController::RequestForgeryProtection for details
8
+ # Uncomment the :secret if you're not using the cookie session store
9
+ protect_from_forgery # :secret => 'ceaca978d06f1c9db5c84193c1447572'
10
+
11
+ # See ActionController::Base for details
12
+ # Uncomment this to filter the contents of submitted sensitive data parameters
13
+ # from your application log (in this case, all fields with names like "password").
14
+ # filter_parameter_logging :password
15
+ end
@@ -1,7 +1,7 @@
1
- class ButtonsController < ApplicationController
2
- def show
3
- end
4
- def create
5
- render :text => "success"
6
- end
7
- end
1
+ class ButtonsController < ApplicationController
2
+ def show
3
+ end
4
+ def create
5
+ render :text => "success"
6
+ end
7
+ end
@@ -1,4 +1,4 @@
1
- class FieldsController < ApplicationController
2
- def show
3
- end
4
- end
1
+ class FieldsController < ApplicationController
2
+ def show
3
+ end
4
+ end
@@ -1,7 +1,7 @@
1
- class LinksController < ApplicationController
2
- def show
3
- if params[:value]
4
- render :text => "Link:#{params[:value]}"
5
- end
6
- end
7
- end
1
+ class LinksController < ApplicationController
2
+ def show
3
+ if params[:value]
4
+ render :text => "Link:#{params[:value]}"
5
+ end
6
+ end
7
+ end
@@ -1,46 +1,46 @@
1
- class FakeModel
2
- def id
3
- nil
4
- end
5
- end
6
-
7
- class WebratController < ApplicationController
8
-
9
- def form
10
- end
11
-
12
- def submit
13
- render :text => "OK <a href='/' id='link_id'>Test Link Text</a>"
14
- end
15
-
16
- def internal_redirect
17
- redirect_to submit_path
18
- end
19
-
20
- def infinite_redirect
21
- redirect_to infinite_redirect_path
22
- end
23
-
24
- def external_redirect
25
- redirect_to "http://google.com"
26
- end
27
-
28
- def host_redirect
29
- redirect_to submit_url
30
- end
31
-
32
- def before_redirect_form
33
- end
34
-
35
- def redirect_to_show_params
36
- redirect_to show_params_path(:custom_param => "123")
37
- end
38
-
39
- def show_params
40
- render :text => params.to_json
41
- end
42
-
43
- def within
44
- end
45
-
46
- end
1
+ class FakeModel
2
+ def id
3
+ nil
4
+ end
5
+ end
6
+
7
+ class WebratController < ApplicationController
8
+
9
+ def form
10
+ end
11
+
12
+ def submit
13
+ render :text => "OK <a href='/' id='link_id'>Test Link Text</a>"
14
+ end
15
+
16
+ def internal_redirect
17
+ redirect_to submit_path
18
+ end
19
+
20
+ def infinite_redirect
21
+ redirect_to infinite_redirect_path
22
+ end
23
+
24
+ def external_redirect
25
+ redirect_to "http://google.com"
26
+ end
27
+
28
+ def host_redirect
29
+ redirect_to submit_url
30
+ end
31
+
32
+ def before_redirect_form
33
+ end
34
+
35
+ def redirect_to_show_params
36
+ redirect_to show_params_path(:custom_param => "123")
37
+ end
38
+
39
+ def show_params
40
+ render :text => params.to_json
41
+ end
42
+
43
+ def within
44
+ end
45
+
46
+ end
@@ -1,2 +1,2 @@
1
- module ButtonsHelper
2
- end
1
+ module ButtonsHelper
2
+ end
@@ -1,2 +1,2 @@
1
- module FieldsHelper
2
- end
1
+ module FieldsHelper
2
+ end
@@ -1,2 +1,2 @@
1
- module LinksHelper
2
- end
1
+ module LinksHelper
2
+ end
@@ -1,11 +1,11 @@
1
- <h1 id='form_title' class='form title'>Webrat Buttons Form</h1>
2
-
3
- <% form_tag "/buttons" do %>
4
- <input type="button" id="input_button_id" value="input_button_value" />
5
- <input type="submit" id="input_submit_id" value="input_submit_value" />
6
- <input type="image" id="input_image_id" value="input_image_value" alt="input_image_alt" src="" />
7
-
8
- <button type="button" id="button_button_id" value="button_button_value">button_button_text</button>
9
- <button type="submit" id="button_submit_id" value="button_submit_value">button_submit_text</button>
10
- <button type="image" id="button_image_id" value="button_image_value">button_image_text</button>
1
+ <h1 id='form_title' class='form title'>Webrat Buttons Form</h1>
2
+
3
+ <% form_tag "/buttons" do %>
4
+ <input type="button" id="input_button_id" value="input_button_value" />
5
+ <input type="submit" id="input_submit_id" value="input_submit_value" />
6
+ <input type="image" id="input_image_id" value="input_image_value" alt="input_image_alt" src="" />
7
+
8
+ <button type="button" id="button_button_id" value="button_button_value">button_button_text</button>
9
+ <button type="submit" id="button_submit_id" value="button_submit_value">button_submit_text</button>
10
+ <button type="image" id="button_image_id" value="button_image_value">button_image_text</button>
11
11
  <% end %>
@@ -1,9 +1,9 @@
1
- <h1>Webrat Fields Page</h1>
2
- <h2>Filling In</h2>
3
- <ul>
4
- <li><input type="text" name="field_by_name" value="" /></li>
5
- <li><input type="text" name="rails[naming]" value="" /></li>
6
- <li><input type="text" id="field_by_id" value="" /></li>
7
- <li><label for="field_by_label_id">FieldByLabelId</label><input type="text" id="field_by_label_id" /></li>
8
- <li><label for="field_by_label_with_special_characters">[Field]:</label><input type="text" id="field_by_label_with_special_characters" /></li>
1
+ <h1>Webrat Fields Page</h1>
2
+ <h2>Filling In</h2>
3
+ <ul>
4
+ <li><input type="text" name="field_by_name" value="" /></li>
5
+ <li><input type="text" name="rails[naming]" value="" /></li>
6
+ <li><input type="text" id="field_by_id" value="" /></li>
7
+ <li><label for="field_by_label_id">FieldByLabelId</label><input type="text" id="field_by_label_id" /></li>
8
+ <li><label for="field_by_label_with_special_characters">[Field]:</label><input type="text" id="field_by_label_with_special_characters" /></li>
9
9
  </ul>