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,100 +1,100 @@
1
- require File.expand_path(File.dirname(__FILE__) + "/../spec_helper")
2
-
3
- describe "select_time" do
4
- it "should send the values for each individual time component" do
5
- with_html <<-HTML
6
- <html>
7
- <form action="/appointments" method="post">
8
- <label for="appointment_time">Time</label><br />
9
- <select id="appointment_time_4i" name="appointment[time(4i)]">
10
- <option value="09">09</option>
11
- </select>
12
- : <select id="appointment_time_5i" name="appointment[time(5i)]">
13
- <option value="30">30</option>
14
- </select>
15
- <input type="submit" />
16
- </form>
17
- </html>
18
- HTML
19
- webrat_session.should_receive(:post).with("/appointments",
20
- "appointment" => {"time(4i)" => "09", "time(5i)" => "30"})
21
- select_time "9:30AM", :from => "Time"
22
- click_button
23
- end
24
-
25
- it "should accept a time object" do
26
- with_html <<-HTML
27
- <html>
28
- <form action="/appointments" method="post">
29
- <label for="appointment_time">Time</label><br />
30
- <select id="appointment_time_4i" name="appointment[time(4i)]">
31
- <option value="09">09</option>
32
- </select>
33
- : <select id="appointment_time_5i" name="appointment[time(5i)]">
34
- <option value="30">30</option>
35
- </select>
36
- <input type="submit" />
37
- </form>
38
- </html>
39
- HTML
40
- webrat_session.should_receive(:post).with("/appointments",
41
- "appointment" => {"time(4i)" => "09", "time(5i)" => "30"})
42
- select_time Time.parse("9:30AM"), :from => "Time"
43
- click_button
44
- end
45
-
46
- it "should work when the label ends in a non word character" do
47
- with_html <<-HTML
48
- <html>
49
- <form action="/appointments" method="post">
50
- <label for="appointment_time">Time #</label><br />
51
- <select id="appointment_time_4i" name="appointment[time(4i)]">
52
- <option value="09">09</option>
53
- </select>
54
- : <select id="appointment_time_5i" name="appointment[time(5i)]">
55
- <option value="30">30</option>
56
- </select>
57
- <input type="submit" />
58
- </form>
59
- </html>
60
- HTML
61
- webrat_session.should_receive(:post).with("/appointments",
62
- "appointment" => {"time(4i)" => "09", "time(5i)" => "30"})
63
- select_time "9:30AM", :from => "Time #"
64
- click_button
65
- end
66
-
67
- it "should work when no label is specified" do
68
- with_html <<-HTML
69
- <html>
70
- <form action="/appointments" method="post">
71
- <select id="appointment_time_4i" name="appointment[time(4i)]">
72
- <option value="09">09</option>
73
- </select>
74
- : <select id="appointment_time_5i" name="appointment[time(5i)]">
75
- <option value="30">30</option>
76
- </select>
77
- <input type="submit" />
78
- </form>
79
- </html>
80
- HTML
81
- webrat_session.should_receive(:post).with("/appointments",
82
- "appointment" => {"time(4i)" => "09", "time(5i)" => "30"})
83
- select_time "9:30"
84
- click_button
85
- end
86
-
87
- it "should fail if the specified label is not found" do
88
- with_html <<-HTML
89
- <html>
90
- <form method="post" action="/appointments">
91
- <select name="month"><option>January</option></select>
92
- <input type="submit" />
93
- </form>
94
- </html>
95
- HTML
96
-
97
- lambda { select_time "9:30", :from => "Time" }.should raise_error(Webrat::NotFoundError)
98
- end
99
-
100
- end
1
+ require File.expand_path(File.dirname(__FILE__) + "/../spec_helper")
2
+
3
+ describe "select_time" do
4
+ it "should send the values for each individual time component" do
5
+ with_html <<-HTML
6
+ <html>
7
+ <form action="/appointments" method="post">
8
+ <label for="appointment_time">Time</label><br />
9
+ <select id="appointment_time_4i" name="appointment[time(4i)]">
10
+ <option value="09">09</option>
11
+ </select>
12
+ : <select id="appointment_time_5i" name="appointment[time(5i)]">
13
+ <option value="30">30</option>
14
+ </select>
15
+ <input type="submit" />
16
+ </form>
17
+ </html>
18
+ HTML
19
+ webrat_session.should_receive(:post).with("/appointments",
20
+ "appointment" => {"time(4i)" => "09", "time(5i)" => "30"})
21
+ select_time "9:30AM", :from => "Time"
22
+ click_button
23
+ end
24
+
25
+ it "should accept a time object" do
26
+ with_html <<-HTML
27
+ <html>
28
+ <form action="/appointments" method="post">
29
+ <label for="appointment_time">Time</label><br />
30
+ <select id="appointment_time_4i" name="appointment[time(4i)]">
31
+ <option value="09">09</option>
32
+ </select>
33
+ : <select id="appointment_time_5i" name="appointment[time(5i)]">
34
+ <option value="30">30</option>
35
+ </select>
36
+ <input type="submit" />
37
+ </form>
38
+ </html>
39
+ HTML
40
+ webrat_session.should_receive(:post).with("/appointments",
41
+ "appointment" => {"time(4i)" => "09", "time(5i)" => "30"})
42
+ select_time Time.parse("9:30AM"), :from => "Time"
43
+ click_button
44
+ end
45
+
46
+ it "should work when the label ends in a non word character" do
47
+ with_html <<-HTML
48
+ <html>
49
+ <form action="/appointments" method="post">
50
+ <label for="appointment_time">Time #</label><br />
51
+ <select id="appointment_time_4i" name="appointment[time(4i)]">
52
+ <option value="09">09</option>
53
+ </select>
54
+ : <select id="appointment_time_5i" name="appointment[time(5i)]">
55
+ <option value="30">30</option>
56
+ </select>
57
+ <input type="submit" />
58
+ </form>
59
+ </html>
60
+ HTML
61
+ webrat_session.should_receive(:post).with("/appointments",
62
+ "appointment" => {"time(4i)" => "09", "time(5i)" => "30"})
63
+ select_time "9:30AM", :from => "Time #"
64
+ click_button
65
+ end
66
+
67
+ it "should work when no label is specified" do
68
+ with_html <<-HTML
69
+ <html>
70
+ <form action="/appointments" method="post">
71
+ <select id="appointment_time_4i" name="appointment[time(4i)]">
72
+ <option value="09">09</option>
73
+ </select>
74
+ : <select id="appointment_time_5i" name="appointment[time(5i)]">
75
+ <option value="30">30</option>
76
+ </select>
77
+ <input type="submit" />
78
+ </form>
79
+ </html>
80
+ HTML
81
+ webrat_session.should_receive(:post).with("/appointments",
82
+ "appointment" => {"time(4i)" => "09", "time(5i)" => "30"})
83
+ select_time "9:30"
84
+ click_button
85
+ end
86
+
87
+ it "should fail if the specified label is not found" do
88
+ with_html <<-HTML
89
+ <html>
90
+ <form method="post" action="/appointments">
91
+ <select name="month"><option>January</option></select>
92
+ <input type="submit" />
93
+ </form>
94
+ </html>
95
+ HTML
96
+
97
+ lambda { select_time "9:30", :from => "Time" }.should raise_error(Webrat::NotFoundError)
98
+ end
99
+
100
+ end
@@ -1,49 +1,49 @@
1
- require File.expand_path(File.dirname(__FILE__) + '/../../spec_helper')
2
-
3
- require "webrat/selenium/silence_stream"
4
- require "webrat/selenium/application_server_factory"
5
-
6
- require "webrat/selenium/application_servers"
7
-
8
- describe Webrat::Selenium::ApplicationServerFactory do
9
-
10
- it "should require and create a sinatra server in sinatra mode" do
11
- server = mock(Webrat::Selenium::ApplicationServers::Sinatra)
12
- Webrat.configuration.application_framework = :sinatra
13
- Webrat::Selenium::ApplicationServerFactory.should_receive(:require).with("webrat/selenium/application_servers/sinatra")
14
- Webrat::Selenium::ApplicationServers::Sinatra.should_receive(:new).and_return(server)
15
- Webrat::Selenium::ApplicationServerFactory.app_server_instance.should == server
16
- end
17
-
18
- it "should require and create a merb server in merb mode" do
19
- server = mock(Webrat::Selenium::ApplicationServers::Merb)
20
- Webrat.configuration.application_framework = :merb
21
- Webrat::Selenium::ApplicationServerFactory.should_receive(:require).with("webrat/selenium/application_servers/merb")
22
- Webrat::Selenium::ApplicationServers::Merb.should_receive(:new).and_return(server)
23
- Webrat::Selenium::ApplicationServerFactory.app_server_instance
24
- end
25
-
26
- it "should require and create a rails server in rails mode" do
27
- server = mock(Webrat::Selenium::ApplicationServers::Rails)
28
- Webrat.configuration.application_framework = :rails
29
- Webrat::Selenium::ApplicationServerFactory.should_receive(:require).with("webrat/selenium/application_servers/rails")
30
- Webrat::Selenium::ApplicationServers::Rails.should_receive(:new).and_return(server)
31
- Webrat::Selenium::ApplicationServerFactory.app_server_instance
32
- end
33
-
34
- it "should require and create a rails server in external mode" do
35
- server = mock(Webrat::Selenium::ApplicationServers::External)
36
- Webrat.configuration.application_framework = :external
37
- Webrat::Selenium::ApplicationServerFactory.should_receive(:require).with("webrat/selenium/application_servers/external")
38
- Webrat::Selenium::ApplicationServers::External.should_receive(:new).and_return(server)
39
- Webrat::Selenium::ApplicationServerFactory.app_server_instance
40
- end
41
-
42
- it "should handle unknown servers with an exception in unknown modes" do
43
- Webrat.configuration.application_framework = :unknown
44
- lambda {
45
- Webrat::Selenium::ApplicationServerFactory.app_server_instance
46
- }.should raise_error(Webrat::WebratError)
47
- end
48
-
49
- end
1
+ require File.expand_path(File.dirname(__FILE__) + '/../../spec_helper')
2
+
3
+ require "webrat/selenium/silence_stream"
4
+ require "webrat/selenium/application_server_factory"
5
+
6
+ require "webrat/selenium/application_servers"
7
+
8
+ describe Webrat::Selenium::ApplicationServerFactory do
9
+
10
+ it "should require and create a sinatra server in sinatra mode" do
11
+ server = mock(Webrat::Selenium::ApplicationServers::Sinatra)
12
+ Webrat.configuration.application_framework = :sinatra
13
+ Webrat::Selenium::ApplicationServerFactory.should_receive(:require).with("webrat/selenium/application_servers/sinatra")
14
+ Webrat::Selenium::ApplicationServers::Sinatra.should_receive(:new).and_return(server)
15
+ Webrat::Selenium::ApplicationServerFactory.app_server_instance.should == server
16
+ end
17
+
18
+ it "should require and create a merb server in merb mode" do
19
+ server = mock(Webrat::Selenium::ApplicationServers::Merb)
20
+ Webrat.configuration.application_framework = :merb
21
+ Webrat::Selenium::ApplicationServerFactory.should_receive(:require).with("webrat/selenium/application_servers/merb")
22
+ Webrat::Selenium::ApplicationServers::Merb.should_receive(:new).and_return(server)
23
+ Webrat::Selenium::ApplicationServerFactory.app_server_instance
24
+ end
25
+
26
+ it "should require and create a rails server in rails mode" do
27
+ server = mock(Webrat::Selenium::ApplicationServers::Rails)
28
+ Webrat.configuration.application_framework = :rails
29
+ Webrat::Selenium::ApplicationServerFactory.should_receive(:require).with("webrat/selenium/application_servers/rails")
30
+ Webrat::Selenium::ApplicationServers::Rails.should_receive(:new).and_return(server)
31
+ Webrat::Selenium::ApplicationServerFactory.app_server_instance
32
+ end
33
+
34
+ it "should require and create a rails server in external mode" do
35
+ server = mock(Webrat::Selenium::ApplicationServers::External)
36
+ Webrat.configuration.application_framework = :external
37
+ Webrat::Selenium::ApplicationServerFactory.should_receive(:require).with("webrat/selenium/application_servers/external")
38
+ Webrat::Selenium::ApplicationServers::External.should_receive(:new).and_return(server)
39
+ Webrat::Selenium::ApplicationServerFactory.app_server_instance
40
+ end
41
+
42
+ it "should handle unknown servers with an exception in unknown modes" do
43
+ Webrat.configuration.application_framework = :unknown
44
+ lambda {
45
+ Webrat::Selenium::ApplicationServerFactory.app_server_instance
46
+ }.should raise_error(Webrat::WebratError)
47
+ end
48
+
49
+ end
@@ -1,12 +1,12 @@
1
- require File.expand_path(File.dirname(__FILE__) + '/../../../spec_helper')
2
-
3
- require "webrat/selenium/application_servers/base"
4
- require "webrat/selenium/application_servers/external"
5
-
6
- describe Webrat::Selenium::ApplicationServers::External do
7
-
8
- it "should just boot up with no exceptions" do
9
- Webrat::Selenium::ApplicationServers::External.new.boot
10
- end
11
-
12
- end
1
+ require File.expand_path(File.dirname(__FILE__) + '/../../../spec_helper')
2
+
3
+ require "webrat/selenium/application_servers/base"
4
+ require "webrat/selenium/application_servers/external"
5
+
6
+ describe Webrat::Selenium::ApplicationServers::External do
7
+
8
+ it "should just boot up with no exceptions" do
9
+ Webrat::Selenium::ApplicationServers::External.new.boot
10
+ end
11
+
12
+ end
@@ -1,37 +1,37 @@
1
- require File.expand_path(File.dirname(__FILE__) + '/../../spec_helper')
2
-
3
- require "webrat/selenium/silence_stream"
4
- require "webrat/selenium/selenium_session"
5
-
6
- describe Webrat::SeleniumSession do
7
-
8
- before :each do
9
- Webrat.configuration.mode = :selenium
10
- @selenium = Webrat::SeleniumSession.new()
11
- end
12
-
13
- it "should throw timeout instead of spec expectionnotmet error" do
14
- lambda {
15
- @selenium.wait_for(:timeout => 0.0001) do
16
- raise ::Spec::Expectations::ExpectationNotMetError
17
- end
18
- }.should raise_error(Webrat::TimeoutError)
19
- end
20
-
21
- it "should throw timeout instead of selenium command error" do
22
- lambda {
23
- @selenium.wait_for(:timeout => 0.0001) do
24
- raise ::Selenium::CommandError
25
- end
26
- }.should raise_error(Webrat::TimeoutError)
27
- end
28
-
29
- it "should throw timeout instead of webrat error" do
30
- lambda {
31
- @selenium.wait_for(:timeout => 0.0001) do
32
- raise Webrat::WebratError.new
33
- end
34
- }.should raise_error(Webrat::TimeoutError)
35
- end
36
-
37
- end
1
+ require File.expand_path(File.dirname(__FILE__) + '/../../spec_helper')
2
+
3
+ require "webrat/selenium/silence_stream"
4
+ require "webrat/selenium/selenium_session"
5
+
6
+ describe Webrat::SeleniumSession do
7
+
8
+ before :each do
9
+ Webrat.configuration.mode = :selenium
10
+ @selenium = Webrat::SeleniumSession.new()
11
+ end
12
+
13
+ it "should throw timeout instead of spec expectionnotmet error" do
14
+ lambda {
15
+ @selenium.wait_for(:timeout => 0.0001) do
16
+ raise ::Spec::Expectations::ExpectationNotMetError
17
+ end
18
+ }.should raise_error(Webrat::TimeoutError)
19
+ end
20
+
21
+ it "should throw timeout instead of selenium command error" do
22
+ lambda {
23
+ @selenium.wait_for(:timeout => 0.0001) do
24
+ raise ::Selenium::CommandError
25
+ end
26
+ }.should raise_error(Webrat::TimeoutError)
27
+ end
28
+
29
+ it "should throw timeout instead of webrat error" do
30
+ lambda {
31
+ @selenium.wait_for(:timeout => 0.0001) do
32
+ raise Webrat::WebratError.new
33
+ end
34
+ }.should raise_error(Webrat::TimeoutError)
35
+ end
36
+
37
+ end
@@ -1,5 +1,5 @@
1
- require File.expand_path(File.dirname(__FILE__) + "/../spec_helper")
2
-
3
- describe "set_hidden_field" do
4
- it "needs specs"
5
- end
1
+ require File.expand_path(File.dirname(__FILE__) + "/../spec_helper")
2
+
3
+ describe "set_hidden_field" do
4
+ it "needs specs"
5
+ end
@@ -1,5 +1,5 @@
1
- require File.expand_path(File.dirname(__FILE__) + "/../spec_helper")
2
-
3
- describe "submit_form" do
4
- it "needs specs"
5
- end
1
+ require File.expand_path(File.dirname(__FILE__) + "/../spec_helper")
2
+
3
+ describe "submit_form" do
4
+ it "needs specs"
5
+ end
@@ -1,58 +1,58 @@
1
- require File.expand_path(File.dirname(__FILE__) + "/../spec_helper")
2
-
3
- describe "visit" do
4
- before do
5
- with_html <<-HTML
6
- <html>
7
- Hello world
8
- </html>
9
- HTML
10
- end
11
-
12
- it "should use get" do
13
- webrat_session.should_receive(:get).with("/", {})
14
- visit("/")
15
- end
16
-
17
- it "should assert valid response" do
18
- webrat_session.response_code = 501
19
- lambda { visit("/") }.should raise_error(Webrat::PageLoadError)
20
- end
21
-
22
- [200, 300, 400, 499].each do |status|
23
- it "should consider the #{status} status code as success" do
24
- webrat_session.stub!(:redirect? => false)
25
- webrat_session.response_code = status
26
- lambda { visit("/") }.should_not raise_error
27
- end
28
- end
29
-
30
- it "should require a visit before manipulating page" do
31
- lambda { fill_in "foo", :with => "blah" }.should raise_error(Webrat::WebratError)
32
- end
33
-
34
- it "should not follow external redirects" do
35
- webrat_session.should_receive(:internal_redirect?).and_return(false)
36
-
37
- visit("/oldurl")
38
-
39
- current_url.should == "/oldurl"
40
- end
41
- end
42
-
43
- describe "visit with referer" do
44
- before do
45
- webrat_session.instance_variable_set(:@current_url, "/old_url")
46
- with_html <<-HTML
47
- <html>
48
- Hello world
49
- </html>
50
- HTML
51
- end
52
-
53
- it "should use get with referer header" do
54
- webrat_session.should_receive(:get).with("/", {}, {"HTTP_REFERER" => "/old_url"})
55
- visit("/")
56
- end
57
-
58
- end
1
+ require File.expand_path(File.dirname(__FILE__) + "/../spec_helper")
2
+
3
+ describe "visit" do
4
+ before do
5
+ with_html <<-HTML
6
+ <html>
7
+ Hello world
8
+ </html>
9
+ HTML
10
+ end
11
+
12
+ it "should use get" do
13
+ webrat_session.should_receive(:get).with("/", {})
14
+ visit("/")
15
+ end
16
+
17
+ it "should assert valid response" do
18
+ webrat_session.response_code = 501
19
+ lambda { visit("/") }.should raise_error(Webrat::PageLoadError)
20
+ end
21
+
22
+ [200, 300, 400, 499].each do |status|
23
+ it "should consider the #{status} status code as success" do
24
+ webrat_session.stub!(:redirect? => false)
25
+ webrat_session.response_code = status
26
+ lambda { visit("/") }.should_not raise_error
27
+ end
28
+ end
29
+
30
+ it "should require a visit before manipulating page" do
31
+ lambda { fill_in "foo", :with => "blah" }.should raise_error(Webrat::WebratError)
32
+ end
33
+
34
+ it "should not follow external redirects" do
35
+ webrat_session.should_receive(:internal_redirect?).and_return(false)
36
+
37
+ visit("/oldurl")
38
+
39
+ current_url.should == "/oldurl"
40
+ end
41
+ end
42
+
43
+ describe "visit with referer" do
44
+ before do
45
+ webrat_session.instance_variable_set(:@current_url, "/old_url")
46
+ with_html <<-HTML
47
+ <html>
48
+ Hello world
49
+ </html>
50
+ HTML
51
+ end
52
+
53
+ it "should use get with referer header" do
54
+ webrat_session.should_receive(:get).with("/", {}, {"HTTP_REFERER" => "/old_url"})
55
+ visit("/")
56
+ end
57
+
58
+ end