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,122 +1,122 @@
1
- require 'test_helper'
2
-
3
- class WebratTest < ActionController::IntegrationTest
4
-
5
- #Firefox raises a security concern under Selenium
6
- unless ENV['WEBRAT_INTEGRATION_MODE'] == 'selenium'
7
- test "should visit fully qualified urls" do
8
- visit root_url(:host => "chunkybacon.example.com")
9
- assert_equal "chunkybacon", request.subdomains.first
10
- end
11
- end
12
-
13
- test "should visit pages" do
14
- visit root_path
15
- assert_contain("Webrat Form")
16
- assert URI.parse(current_url).path, root_path
17
- end
18
-
19
- test "should submit forms" do
20
- visit root_path
21
- fill_in "Text field", :with => "Hello"
22
- check "TOS"
23
- select "January"
24
- click_button "Test"
25
- end
26
-
27
- test "should check the value of a field" do
28
- webrat.simulate do
29
- visit "/"
30
- assert field_labeled("Prefilled").value, "text"
31
- end
32
- end
33
-
34
- test "should not carry params through redirects" do
35
- visit before_redirect_form_path
36
- fill_in "Text field", :with => "value"
37
- click_button
38
-
39
- automate do
40
- selenium.wait_for_page_to_load
41
- end
42
- assert response.body !~ /value/
43
- assert response.body =~ /custom_param/
44
- end
45
-
46
- test "should follow internal redirects" do
47
- visit internal_redirect_path
48
- webrat.simulate do
49
- assert !response.redirect?
50
- end
51
- assert response.body.include?("OK")
52
- end
53
-
54
- test "should not follow external redirects" do
55
- webrat.simulate do
56
- visit external_redirect_path
57
- assert response.redirect?
58
- end
59
- end
60
-
61
- test "should recognize the host header to follow redirects properly" do
62
- webrat.simulate do
63
- header "Host", "foo.bar"
64
- visit host_redirect_path
65
- assert !response.redirect?
66
- assert response.body.include?("OK")
67
- end
68
- end
69
-
70
- test "should click link by text" do
71
- visit internal_redirect_path
72
- click_link "Test Link Text"
73
- assert_contain("Webrat Form")
74
- end
75
-
76
- test "should click link by id" do
77
- visit internal_redirect_path
78
- click_link "link_id"
79
- assert_contain("Webrat Form")
80
- end
81
-
82
- test "should be able to assert xpath" do
83
- visit root_path
84
- assert_have_xpath "//h1"
85
- end
86
-
87
- test "should be able to assert selector" do
88
- visit root_path
89
- assert_have_selector "h1"
90
- end
91
-
92
- test "should accept an Object argument to #within and translate using dom_id" do
93
- webrat.simulate do
94
- visit within_path
95
-
96
- object = Object.new
97
- def object.id
98
- nil
99
- end
100
-
101
- within(object) do
102
- click_link "Edit Object"
103
- end
104
-
105
- assert_contain "Webrat Form"
106
- end
107
- end
108
-
109
- # Firefox detects and prevents infinite redirects under Selenium
110
- unless ENV['WEBRAT_INTEGRATION_MODE'] == 'selenium'
111
- test "should detect infinite redirects" do
112
- assert_raises Webrat::InfiniteRedirectError do
113
- visit infinite_redirect_path
114
- end
115
- end
116
- end
117
-
118
- # test "should be able to assert have tag" do
119
- # visit root_path
120
- # assert_have_tag "h1"
121
- # end
122
- end
1
+ require 'test_helper'
2
+
3
+ class WebratTest < ActionController::IntegrationTest
4
+
5
+ #Firefox raises a security concern under Selenium
6
+ unless ENV['WEBRAT_INTEGRATION_MODE'] == 'selenium'
7
+ test "should visit fully qualified urls" do
8
+ visit root_url(:host => "chunkybacon.example.com")
9
+ assert_equal "chunkybacon", request.subdomains.first
10
+ end
11
+ end
12
+
13
+ test "should visit pages" do
14
+ visit root_path
15
+ assert_contain("Webrat Form")
16
+ assert URI.parse(current_url).path, root_path
17
+ end
18
+
19
+ test "should submit forms" do
20
+ visit root_path
21
+ fill_in "Text field", :with => "Hello"
22
+ check "TOS"
23
+ select "January"
24
+ click_button "Test"
25
+ end
26
+
27
+ test "should check the value of a field" do
28
+ webrat.simulate do
29
+ visit "/"
30
+ assert field_labeled("Prefilled").value, "text"
31
+ end
32
+ end
33
+
34
+ test "should not carry params through redirects" do
35
+ visit before_redirect_form_path
36
+ fill_in "Text field", :with => "value"
37
+ click_button
38
+
39
+ automate do
40
+ selenium.wait_for_page_to_load
41
+ end
42
+ assert response.body !~ /value/
43
+ assert response.body =~ /custom_param/
44
+ end
45
+
46
+ test "should follow internal redirects" do
47
+ visit internal_redirect_path
48
+ webrat.simulate do
49
+ assert !response.redirect?
50
+ end
51
+ assert response.body.include?("OK")
52
+ end
53
+
54
+ test "should not follow external redirects" do
55
+ webrat.simulate do
56
+ visit external_redirect_path
57
+ assert response.redirect?
58
+ end
59
+ end
60
+
61
+ test "should recognize the host header to follow redirects properly" do
62
+ webrat.simulate do
63
+ header "Host", "foo.bar"
64
+ visit host_redirect_path
65
+ assert !response.redirect?
66
+ assert response.body.include?("OK")
67
+ end
68
+ end
69
+
70
+ test "should click link by text" do
71
+ visit internal_redirect_path
72
+ click_link "Test Link Text"
73
+ assert_contain("Webrat Form")
74
+ end
75
+
76
+ test "should click link by id" do
77
+ visit internal_redirect_path
78
+ click_link "link_id"
79
+ assert_contain("Webrat Form")
80
+ end
81
+
82
+ test "should be able to assert xpath" do
83
+ visit root_path
84
+ assert_have_xpath "//h1"
85
+ end
86
+
87
+ test "should be able to assert selector" do
88
+ visit root_path
89
+ assert_have_selector "h1"
90
+ end
91
+
92
+ test "should accept an Object argument to #within and translate using dom_id" do
93
+ webrat.simulate do
94
+ visit within_path
95
+
96
+ object = Object.new
97
+ def object.id
98
+ nil
99
+ end
100
+
101
+ within(object) do
102
+ click_link "Edit Object"
103
+ end
104
+
105
+ assert_contain "Webrat Form"
106
+ end
107
+ end
108
+
109
+ # Firefox detects and prevents infinite redirects under Selenium
110
+ unless ENV['WEBRAT_INTEGRATION_MODE'] == 'selenium'
111
+ test "should detect infinite redirects" do
112
+ assert_raises Webrat::InfiniteRedirectError do
113
+ visit infinite_redirect_path
114
+ end
115
+ end
116
+ end
117
+
118
+ # test "should be able to assert have tag" do
119
+ # visit root_path
120
+ # assert_have_tag "h1"
121
+ # end
122
+ end
@@ -1,26 +1,26 @@
1
- ENV["RAILS_ENV"] = "test"
2
- require File.expand_path(File.dirname(__FILE__) + "/../config/environment")
3
- require 'test_help'
4
-
5
- # begin
6
- # require "redgreen"
7
- # rescue MissingSourceFile
8
- # end
9
-
10
- $LOAD_PATH.unshift File.dirname(__FILE__) + "/../../../../lib"
11
- require "webrat"
12
-
13
- Webrat.configure do |config|
14
- config.mode = ENV['WEBRAT_INTEGRATION_MODE'].to_sym
15
- end
16
-
17
- ActionController::Base.class_eval do
18
- def perform_action
19
- perform_action_without_rescue
20
- end
21
- end
22
- Dispatcher.class_eval do
23
- def self.failsafe_response(output, status, exception = nil)
24
- raise exception
25
- end
26
- end
1
+ ENV["RAILS_ENV"] = "test"
2
+ require File.expand_path(File.dirname(__FILE__) + "/../config/environment")
3
+ require 'test_help'
4
+
5
+ # begin
6
+ # require "redgreen"
7
+ # rescue MissingSourceFile
8
+ # end
9
+
10
+ $LOAD_PATH.unshift File.dirname(__FILE__) + "/../../../../lib"
11
+ require "webrat"
12
+
13
+ Webrat.configure do |config|
14
+ config.mode = ENV['WEBRAT_INTEGRATION_MODE'].to_sym
15
+ end
16
+
17
+ ActionController::Base.class_eval do
18
+ def perform_action
19
+ perform_action_without_rescue
20
+ end
21
+ end
22
+ Dispatcher.class_eval do
23
+ def self.failsafe_response(output, status, exception = nil)
24
+ raise exception
25
+ end
26
+ end
@@ -1,5 +1,5 @@
1
- require "rake/testtask"
2
-
3
- Rake::TestTask.new do |t|
4
- t.test_files = FileList["test/*_test.rb"]
5
- end
1
+ require "rake/testtask"
2
+
3
+ Rake::TestTask.new do |t|
4
+ t.test_files = FileList["test/*_test.rb"]
5
+ end
@@ -1,64 +1,64 @@
1
- require "rubygems"
2
- require "sinatra"
3
-
4
- use_in_file_templates!
5
-
6
- get "/" do
7
- erb :home
8
- end
9
-
10
- get "/go" do
11
- erb :go
12
- end
13
-
14
- get "/internal_redirect" do
15
- redirect "/"
16
- end
17
-
18
- get "/external_redirect" do
19
- redirect "http://google.com"
20
- end
21
-
22
- post "/go" do
23
- @user = params[:name]
24
- @email = params[:email]
25
- erb :hello
26
- end
27
-
28
- __END__
29
-
30
- @@ layout
31
- <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd">
32
- <html>
33
- <title>sinatra testing with webrat</title>
34
- <body>
35
- <%= yield %>
36
- </body>
37
- </html>
38
-
39
- @@ home
40
- <p> visit <a href="/go">there</a></p>
41
-
42
- <form>
43
- <label>
44
- Prefilled
45
- <input type="text" name="prefilled" value="text" />
46
- </label>
47
- </form>
48
-
49
- @@ go
50
- <form method="post" action="/go">
51
- <div>
52
- <label for="name">Name</label>
53
- <input type="text" name="name" id="name">
54
- </div>
55
- <div>
56
- <label for="email">Email</label>
57
- <input type="text" name="email" id="email">
58
- </div>
59
- <input type="submit" value="Submit" />
60
- </form>
61
-
62
- @@ hello
63
- <p>Hello, <%= @user %></p>
64
- <p>Your email is: <%= @email %></p>
1
+ require "rubygems"
2
+ require "sinatra"
3
+
4
+ use_in_file_templates!
5
+
6
+ get "/" do
7
+ erb :home
8
+ end
9
+
10
+ get "/go" do
11
+ erb :go
12
+ end
13
+
14
+ get "/internal_redirect" do
15
+ redirect "/"
16
+ end
17
+
18
+ get "/external_redirect" do
19
+ redirect "http://google.com"
20
+ end
21
+
22
+ post "/go" do
23
+ @user = params[:name]
24
+ @email = params[:email]
25
+ erb :hello
26
+ end
27
+
28
+ __END__
29
+
30
+ @@ layout
31
+ <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd">
32
+ <html>
33
+ <title>sinatra testing with webrat</title>
34
+ <body>
35
+ <%= yield %>
36
+ </body>
37
+ </html>
38
+
39
+ @@ home
40
+ <p> visit <a href="/go">there</a></p>
41
+
42
+ <form>
43
+ <label>
44
+ Prefilled
45
+ <input type="text" name="prefilled" value="text" />
46
+ </label>
47
+ </form>
48
+
49
+ @@ go
50
+ <form method="post" action="/go">
51
+ <div>
52
+ <label for="name">Name</label>
53
+ <input type="text" name="name" id="name">
54
+ </div>
55
+ <div>
56
+ <label for="email">Email</label>
57
+ <input type="text" name="email" id="email">
58
+ </div>
59
+ <input type="submit" value="Submit" />
60
+ </form>
61
+
62
+ @@ hello
63
+ <p>Hello, <%= @user %></p>
64
+ <p>Your email is: <%= @email %></p>
@@ -1,16 +1,16 @@
1
- require "rubygems"
2
- require "sinatra/base"
3
-
4
- class MyModularApp < Sinatra::Default
5
- get "/" do
6
- "Hello World"
7
- end
8
-
9
- get "/redirect_absolute_url" do
10
- redirect URI.join(request.url, "foo").to_s
11
- end
12
-
13
- get "/foo" do
14
- "spam"
15
- end
16
- end
1
+ require "rubygems"
2
+ require "sinatra/base"
3
+
4
+ class MyModularApp < Sinatra::Default
5
+ get "/" do
6
+ "Hello World"
7
+ end
8
+
9
+ get "/redirect_absolute_url" do
10
+ redirect URI.join(request.url, "foo").to_s
11
+ end
12
+
13
+ get "/foo" do
14
+ "spam"
15
+ end
16
+ end
@@ -1,37 +1,37 @@
1
- require File.dirname(__FILE__) + "/test_helper"
2
- require File.dirname(__FILE__) + "/../classic_app"
3
-
4
- class MyClassicAppTest < Test::Unit::TestCase
5
- def test_visits_pages
6
- visit "/"
7
- assert response_body.include?("visit")
8
-
9
- click_link "there"
10
- assert response_body.include?('<form method="post" action="/go">')
11
- end
12
-
13
- def test_submits_form
14
- visit "/go"
15
- fill_in "Name", :with => "World"
16
- fill_in "Email", :with => "world@example.org"
17
- click_button "Submit"
18
-
19
- assert response_body.include?("Hello, World")
20
- assert response_body.include?("Your email is: world@example.org")
21
- end
22
-
23
- def test_check_value_of_field
24
- visit "/"
25
- assert field_labeled("Prefilled").value, "text"
26
- end
27
-
28
- def test_follows_internal_redirects
29
- visit "/internal_redirect"
30
- assert response_body.include?("visit")
31
- end
32
-
33
- def test_does_not_follow_external_redirects
34
- visit "/external_redirect"
35
- assert response_code == 302
36
- end
37
- end
1
+ require File.dirname(__FILE__) + "/test_helper"
2
+ require File.dirname(__FILE__) + "/../classic_app"
3
+
4
+ class MyClassicAppTest < Test::Unit::TestCase
5
+ def test_visits_pages
6
+ visit "/"
7
+ assert response_body.include?("visit")
8
+
9
+ click_link "there"
10
+ assert response_body.include?('<form method="post" action="/go">')
11
+ end
12
+
13
+ def test_submits_form
14
+ visit "/go"
15
+ fill_in "Name", :with => "World"
16
+ fill_in "Email", :with => "world@example.org"
17
+ click_button "Submit"
18
+
19
+ assert response_body.include?("Hello, World")
20
+ assert response_body.include?("Your email is: world@example.org")
21
+ end
22
+
23
+ def test_check_value_of_field
24
+ visit "/"
25
+ assert field_labeled("Prefilled").value, "text"
26
+ end
27
+
28
+ def test_follows_internal_redirects
29
+ visit "/internal_redirect"
30
+ assert response_body.include?("visit")
31
+ end
32
+
33
+ def test_does_not_follow_external_redirects
34
+ visit "/external_redirect"
35
+ assert response_code == 302
36
+ end
37
+ end
@@ -1,18 +1,18 @@
1
- require File.dirname(__FILE__) + "/test_helper"
2
- require File.dirname(__FILE__) + "/../modular_app"
3
-
4
- class MyModularAppTest < Test::Unit::TestCase
5
- def app
6
- MyModularApp
7
- end
8
-
9
- def test_it_works
10
- visit "/"
11
- assert_contain "Hello World"
12
- end
13
-
14
- def test_redirects
15
- visit "/redirect_absolute_url"
16
- assert_equal "spam", response_body
17
- end
18
- end
1
+ require File.dirname(__FILE__) + "/test_helper"
2
+ require File.dirname(__FILE__) + "/../modular_app"
3
+
4
+ class MyModularAppTest < Test::Unit::TestCase
5
+ def app
6
+ MyModularApp
7
+ end
8
+
9
+ def test_it_works
10
+ visit "/"
11
+ assert_contain "Hello World"
12
+ end
13
+
14
+ def test_redirects
15
+ visit "/redirect_absolute_url"
16
+ assert_equal "spam", response_body
17
+ end
18
+ end
@@ -1,17 +1,17 @@
1
- require "rubygems"
2
- require "test/unit"
3
- # require "redgreen"
4
-
5
- $LOAD_PATH.unshift File.dirname(__FILE__) + "/../../../../lib"
6
- require "webrat"
7
-
8
- Webrat.configure do |config|
9
- config.mode = :sinatra
10
- end
11
-
12
- class Test::Unit::TestCase
13
- include Webrat::Methods
14
- include Webrat::Matchers
15
-
16
- Webrat::Methods.delegate_to_session :response_code, :response_body
17
- end
1
+ require "rubygems"
2
+ require "test/unit"
3
+ # require "redgreen"
4
+
5
+ $LOAD_PATH.unshift File.dirname(__FILE__) + "/../../../../lib"
6
+ require "webrat"
7
+
8
+ Webrat.configure do |config|
9
+ config.mode = :sinatra
10
+ end
11
+
12
+ class Test::Unit::TestCase
13
+ include Webrat::Methods
14
+ include Webrat::Matchers
15
+
16
+ Webrat::Methods.delegate_to_session :response_code, :response_body
17
+ end