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,177 +1,177 @@
1
- require File.expand_path(File.dirname(__FILE__) + "/../spec_helper")
2
-
3
- describe "within" do
4
- it "should work when nested" do
5
- with_html <<-HTML
6
- <html>
7
- <div>
8
- <a href="/page1">Link</a>
9
- </div>
10
- <div id="container">
11
- <div><a href="/page2">Link</a></div>
12
- </div>
13
- </html>
14
- HTML
15
-
16
- webrat_session.should_receive(:get).with("/page2", {})
17
- within "#container" do
18
- within "div" do
19
- click_link "Link"
20
- end
21
- end
22
- end
23
-
24
- it "should click links within a scope" do
25
- with_html <<-HTML
26
- <html>
27
- <a href="/page1">Link</a>
28
- <div id="container">
29
- <a href="/page2">Link</a>
30
- </div>
31
- </html>
32
- HTML
33
-
34
- webrat_session.should_receive(:get).with("/page2", {})
35
- within "#container" do
36
- click_link "Link"
37
- end
38
- end
39
-
40
- it "should submit forms within a scope" do
41
- with_html <<-HTML
42
- <html>
43
- <form id="form1" action="/form1">
44
- <label>Email: <input type="text" name="email" />
45
- <input type="submit" value="Add" />
46
- </form>
47
- <form id="form2" action="/form2">
48
- <label>Email: <input type="text" name="email" />
49
- <input type="submit" value="Add" />
50
- </form>
51
- </html>
52
- HTML
53
-
54
- webrat_session.should_receive(:get).with("/form2", "email" => "test@example.com")
55
- within "#form2" do
56
- fill_in "Email", :with => "test@example.com"
57
- click_button
58
- end
59
- end
60
-
61
- it "should work when the scope is inside the form" do
62
- with_html <<-HTML
63
- <html>
64
- <form id="form2" action="/form2">
65
- <div class="important">
66
- <label>Email: <input type="text" class="email2" name="email" /></label>
67
- </div>
68
- <input type="submit" value="Add" />
69
- </form>
70
- </html>
71
- HTML
72
-
73
- webrat_session.should_receive(:get).with("/form2", "email" => "test@example.com")
74
- within ".important" do
75
- fill_in "Email", :with => "test@example.com"
76
- end
77
-
78
- submit_form "form2"
79
- end
80
-
81
- it "should work when the form submission occurs inside a scope" do
82
- with_html <<-HTML
83
- <html>
84
- <body>
85
- <div>
86
- <form id="form2" action="/form2">
87
- <label for="email">Email</label><input id="email" type="text" class="email2" name="email" />
88
- <input type="submit" value="Add" />
89
- </form>
90
- </div>
91
- </body>
92
- </html>
93
- HTML
94
-
95
- webrat_session.should_receive(:get).with("/form2", "email" => "test@example.com")
96
- within "form[@action='/form2']" do
97
- fill_in "Email", :with => "test@example.com"
98
- click_button "Add"
99
- end
100
- end
101
-
102
- it "should work when there are multiple forms with the same label text" do
103
- with_html <<-HTML
104
- <html>
105
- <body>
106
- <div>
107
- <form id="form1" action="/form1">
108
- <label for="email1">Email</label><input id="email1" type="text" class="email1" name="email1" />
109
- <input type="submit" value="Add" />
110
- </form>
111
- <form id="form2" action="/form2">
112
- <label for="email2">Email</label><input id="email2" type="text" class="email2" name="email2" />
113
- <input type="submit" value="Add" />
114
- </form>
115
- </div>
116
- </body>
117
- </html>
118
- HTML
119
-
120
- webrat_session.should_receive(:get).with("/form2", "email2" => "test@example.com")
121
- within "form[@action='/form2']" do
122
- fill_in "Email", :with => "test@example.com"
123
- click_button "Add"
124
- end
125
- end
126
-
127
- it "should not find fields outside of the scope" do
128
- with_html <<-HTML
129
- <html>
130
- <form id="form1" action="/form1">
131
- <label for="email">Email</label><input id="email" type="text" name="email" />
132
- <input type="submit" value="Add" />
133
- </form>
134
- <form id="form2" action="/form2">
135
- <label for="email">Email</label><input id="email" type="text" name="email" />
136
- <input type="submit" value="Add" />
137
- </form>
138
- </html>
139
- HTML
140
-
141
- webrat_session.should_receive(:get).with("/form2", "email" => "test@example.com")
142
- within "#form2" do
143
- fill_in "Email", :with => "test@example.com"
144
- click_button "Add"
145
- end
146
- end
147
-
148
- it "should not find buttons outside of the scope" do
149
- with_html <<-HTML
150
- <html>
151
- <form action="/form1">
152
- <input type="submit" value="Add" />
153
- </form>
154
- <form id="form2" action="/form2">
155
- </form>
156
- </html>
157
- HTML
158
-
159
- within "#form2" do
160
- lambda {
161
- click_button
162
- }.should raise_error(Webrat::NotFoundError)
163
- end
164
- end
165
-
166
- it "should raise a Webrat::NotFounderror error when the scope doesn't exist" do
167
- with_html <<-HTML
168
- <html>
169
- </html>
170
- HTML
171
-
172
- lambda {
173
- within "#form2" do
174
- end
175
- }.should raise_error(Webrat::NotFoundError)
176
- end
177
- end
1
+ require File.expand_path(File.dirname(__FILE__) + "/../spec_helper")
2
+
3
+ describe "within" do
4
+ it "should work when nested" do
5
+ with_html <<-HTML
6
+ <html>
7
+ <div>
8
+ <a href="/page1">Link</a>
9
+ </div>
10
+ <div id="container">
11
+ <div><a href="/page2">Link</a></div>
12
+ </div>
13
+ </html>
14
+ HTML
15
+
16
+ webrat_session.should_receive(:get).with("/page2", {})
17
+ within "#container" do
18
+ within "div" do
19
+ click_link "Link"
20
+ end
21
+ end
22
+ end
23
+
24
+ it "should click links within a scope" do
25
+ with_html <<-HTML
26
+ <html>
27
+ <a href="/page1">Link</a>
28
+ <div id="container">
29
+ <a href="/page2">Link</a>
30
+ </div>
31
+ </html>
32
+ HTML
33
+
34
+ webrat_session.should_receive(:get).with("/page2", {})
35
+ within "#container" do
36
+ click_link "Link"
37
+ end
38
+ end
39
+
40
+ it "should submit forms within a scope" do
41
+ with_html <<-HTML
42
+ <html>
43
+ <form id="form1" action="/form1">
44
+ <label>Email: <input type="text" name="email" />
45
+ <input type="submit" value="Add" />
46
+ </form>
47
+ <form id="form2" action="/form2">
48
+ <label>Email: <input type="text" name="email" />
49
+ <input type="submit" value="Add" />
50
+ </form>
51
+ </html>
52
+ HTML
53
+
54
+ webrat_session.should_receive(:get).with("/form2", "email" => "test@example.com")
55
+ within "#form2" do
56
+ fill_in "Email", :with => "test@example.com"
57
+ click_button
58
+ end
59
+ end
60
+
61
+ it "should work when the scope is inside the form" do
62
+ with_html <<-HTML
63
+ <html>
64
+ <form id="form2" action="/form2">
65
+ <div class="important">
66
+ <label>Email: <input type="text" class="email2" name="email" /></label>
67
+ </div>
68
+ <input type="submit" value="Add" />
69
+ </form>
70
+ </html>
71
+ HTML
72
+
73
+ webrat_session.should_receive(:get).with("/form2", "email" => "test@example.com")
74
+ within ".important" do
75
+ fill_in "Email", :with => "test@example.com"
76
+ end
77
+
78
+ submit_form "form2"
79
+ end
80
+
81
+ it "should work when the form submission occurs inside a scope" do
82
+ with_html <<-HTML
83
+ <html>
84
+ <body>
85
+ <div>
86
+ <form id="form2" action="/form2">
87
+ <label for="email">Email</label><input id="email" type="text" class="email2" name="email" />
88
+ <input type="submit" value="Add" />
89
+ </form>
90
+ </div>
91
+ </body>
92
+ </html>
93
+ HTML
94
+
95
+ webrat_session.should_receive(:get).with("/form2", "email" => "test@example.com")
96
+ within "form[@action='/form2']" do
97
+ fill_in "Email", :with => "test@example.com"
98
+ click_button "Add"
99
+ end
100
+ end
101
+
102
+ it "should work when there are multiple forms with the same label text" do
103
+ with_html <<-HTML
104
+ <html>
105
+ <body>
106
+ <div>
107
+ <form id="form1" action="/form1">
108
+ <label for="email1">Email</label><input id="email1" type="text" class="email1" name="email1" />
109
+ <input type="submit" value="Add" />
110
+ </form>
111
+ <form id="form2" action="/form2">
112
+ <label for="email2">Email</label><input id="email2" type="text" class="email2" name="email2" />
113
+ <input type="submit" value="Add" />
114
+ </form>
115
+ </div>
116
+ </body>
117
+ </html>
118
+ HTML
119
+
120
+ webrat_session.should_receive(:get).with("/form2", "email2" => "test@example.com")
121
+ within "form[@action='/form2']" do
122
+ fill_in "Email", :with => "test@example.com"
123
+ click_button "Add"
124
+ end
125
+ end
126
+
127
+ it "should not find fields outside of the scope" do
128
+ with_html <<-HTML
129
+ <html>
130
+ <form id="form1" action="/form1">
131
+ <label for="email">Email</label><input id="email" type="text" name="email" />
132
+ <input type="submit" value="Add" />
133
+ </form>
134
+ <form id="form2" action="/form2">
135
+ <label for="email">Email</label><input id="email" type="text" name="email" />
136
+ <input type="submit" value="Add" />
137
+ </form>
138
+ </html>
139
+ HTML
140
+
141
+ webrat_session.should_receive(:get).with("/form2", "email" => "test@example.com")
142
+ within "#form2" do
143
+ fill_in "Email", :with => "test@example.com"
144
+ click_button "Add"
145
+ end
146
+ end
147
+
148
+ it "should not find buttons outside of the scope" do
149
+ with_html <<-HTML
150
+ <html>
151
+ <form action="/form1">
152
+ <input type="submit" value="Add" />
153
+ </form>
154
+ <form id="form2" action="/form2">
155
+ </form>
156
+ </html>
157
+ HTML
158
+
159
+ within "#form2" do
160
+ lambda {
161
+ click_button
162
+ }.should raise_error(Webrat::NotFoundError)
163
+ end
164
+ end
165
+
166
+ it "should raise a Webrat::NotFounderror error when the scope doesn't exist" do
167
+ with_html <<-HTML
168
+ <html>
169
+ </html>
170
+ HTML
171
+
172
+ lambda {
173
+ within "#form2" do
174
+ end
175
+ }.should raise_error(Webrat::NotFoundError)
176
+ end
177
+ end
data/spec/spec.opts CHANGED
@@ -1,2 +1,2 @@
1
- --diff
1
+ --diff
2
2
  --color
data/spec/spec_helper.rb CHANGED
@@ -1,54 +1,54 @@
1
- require "rubygems"
2
- require "test/unit"
3
- require "spec"
4
-
5
- # gem install redgreen for colored test output
6
- begin require "redgreen" unless ENV['TM_CURRENT_LINE']; rescue LoadError; end
7
-
8
- webrat_path = File.expand_path(File.dirname(__FILE__) + "/../lib/")
9
- $LOAD_PATH.unshift(webrat_path) unless $LOAD_PATH.include?(webrat_path)
10
-
11
- AssertionFailedError = Test::Unit::AssertionFailedError rescue MiniTest::Assertion # ruby1.9 compat
12
-
13
- require "webrat"
14
- require File.expand_path(File.dirname(__FILE__) + "/fakes/test_adapter")
15
-
16
- module Webrat
17
- @@previous_config = nil
18
-
19
- def self.cache_config_for_test
20
- @@previous_config = Webrat.configuration.clone
21
- end
22
-
23
- def self.reset_for_test
24
- @@configuration = @@previous_config if @@previous_config
25
- end
26
- end
27
-
28
- Spec::Runner.configure do |config|
29
- include Webrat::Methods
30
-
31
- def with_html(html)
32
- raise "This doesn't look like HTML. Wrap it in a <html> tag" unless html =~ /^\s*<[^Hh>]*html/i
33
- webrat_session.response_body = html
34
- end
35
-
36
- def with_xml(xml)
37
- raise "This looks like HTML" if xml =~ /^\s*<[^Hh>]*html/i
38
- webrat_session.response_body = xml
39
- end
40
-
41
- config.before :each do
42
- Webrat.cache_config_for_test
43
- end
44
-
45
- config.after :each do
46
- Webrat.reset_for_test
47
- end
48
- end
49
-
50
- require "merb-core"
51
-
52
- Webrat.configure do |config|
53
- config.mode = :merb
54
- end
1
+ require "rubygems"
2
+ require "test/unit"
3
+ require "spec"
4
+
5
+ # gem install redgreen for colored test output
6
+ begin require "redgreen" unless ENV['TM_CURRENT_LINE']; rescue LoadError; end
7
+
8
+ webrat_path = File.expand_path(File.dirname(__FILE__) + "/../lib/")
9
+ $LOAD_PATH.unshift(webrat_path) unless $LOAD_PATH.include?(webrat_path)
10
+
11
+ AssertionFailedError = Test::Unit::AssertionFailedError rescue MiniTest::Assertion # ruby1.9 compat
12
+
13
+ require "webrat"
14
+ require File.expand_path(File.dirname(__FILE__) + "/fakes/test_adapter")
15
+
16
+ module Webrat
17
+ @@previous_config = nil
18
+
19
+ def self.cache_config_for_test
20
+ @@previous_config = Webrat.configuration.clone
21
+ end
22
+
23
+ def self.reset_for_test
24
+ @@configuration = @@previous_config if @@previous_config
25
+ end
26
+ end
27
+
28
+ Spec::Runner.configure do |config|
29
+ include Webrat::Methods
30
+
31
+ def with_html(html)
32
+ raise "This doesn't look like HTML. Wrap it in a <html> tag" unless html =~ /^\s*<[^Hh>]*html/i
33
+ webrat_session.response_body = html
34
+ end
35
+
36
+ def with_xml(xml)
37
+ raise "This looks like HTML" if xml =~ /^\s*<[^Hh>]*html/i
38
+ webrat_session.response_body = xml
39
+ end
40
+
41
+ config.before :each do
42
+ Webrat.cache_config_for_test
43
+ end
44
+
45
+ config.after :each do
46
+ Webrat.reset_for_test
47
+ end
48
+ end
49
+
50
+ require "merb-core"
51
+
52
+ Webrat.configure do |config|
53
+ config.mode = :merb
54
+ end