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,77 +1,77 @@
1
- require File.expand_path(File.dirname(__FILE__) + "/../spec_helper")
2
-
3
- # if defined?(Nokogiri::XML) && Webrat.configuration.parse_with_nokogiri?
4
- describe "Nokogiri Extension" do
5
- include Webrat::Matchers
6
-
7
- def fail
8
- raise_error(Spec::Expectations::ExpectationNotMetError)
9
- end
10
-
11
- before(:each) do
12
- @text_and_password = <<-HTML
13
- <div>
14
- <input type="text"/>
15
- <input type="password"/>
16
- <span type="text"/>
17
- </div>
18
- HTML
19
-
20
- @text_only = <<-HTML
21
- <div>
22
- <input type="text" disabled="disabled" />
23
- </div>
24
- HTML
25
-
26
- @password_only = <<-HTML
27
- <div>
28
- <input type="password"/>
29
- <div>
30
- HTML
31
- end
32
-
33
- describe ":text" do
34
- it "passes have_selector(:text) if a node with type=text exists" do
35
- @text_and_password.should have_selector(":text")
36
- end
37
-
38
- it "passes not have_selector(:text) if no node with text=text exists" do
39
- @password_only.should_not have_selector(":text")
40
- end
41
-
42
- it "fails have_selector(:text) if no node with type=text exists" do
43
- lambda { @password_only.should have_selector(":text") }.should fail
44
- end
45
-
46
- it "fails not have_selector(:text) if a node with type=text exists" do
47
- lambda { @text_only.should_not have_selector(":text") }.should fail
48
- end
49
-
50
- it "works together with other selectors" do
51
- @text_and_password.should have_selector("input:text[type*='te']")
52
- end
53
- end
54
-
55
- describe ":password" do
56
- it "passes have_selector(:password) if a node with type=password exists" do
57
- @text_and_password.should have_selector(":password")
58
- end
59
-
60
- it "passes not have_selector(:text) if no node with text=text exists" do
61
- @text_only.should_not have_selector(":password")
62
- end
63
-
64
- it "fails have_selector(:password) if no node with type=password exists" do
65
- lambda { @text_only.should have_selector(":password") }.should fail
66
- end
67
-
68
- it "fails not have_selector(:password) if a node with type=password exists" do
69
- lambda { @password_only.should_not have_selector(":password") }.should fail
70
- end
71
-
72
- it "works together with other selectors" do
73
- @text_and_password.should have_selector("input:password[type*='pa']")
74
- end
75
- end
76
- end
77
- # end
1
+ require File.expand_path(File.dirname(__FILE__) + "/../spec_helper")
2
+
3
+ # if defined?(Nokogiri::XML) && Webrat.configuration.parse_with_nokogiri?
4
+ describe "Nokogiri Extension" do
5
+ include Webrat::Matchers
6
+
7
+ def fail
8
+ raise_error(Spec::Expectations::ExpectationNotMetError)
9
+ end
10
+
11
+ before(:each) do
12
+ @text_and_password = <<-HTML
13
+ <div>
14
+ <input type="text"/>
15
+ <input type="password"/>
16
+ <span type="text"/>
17
+ </div>
18
+ HTML
19
+
20
+ @text_only = <<-HTML
21
+ <div>
22
+ <input type="text" disabled="disabled" />
23
+ </div>
24
+ HTML
25
+
26
+ @password_only = <<-HTML
27
+ <div>
28
+ <input type="password"/>
29
+ <div>
30
+ HTML
31
+ end
32
+
33
+ describe ":text" do
34
+ it "passes have_selector(:text) if a node with type=text exists" do
35
+ @text_and_password.should have_selector(":text")
36
+ end
37
+
38
+ it "passes not have_selector(:text) if no node with text=text exists" do
39
+ @password_only.should_not have_selector(":text")
40
+ end
41
+
42
+ it "fails have_selector(:text) if no node with type=text exists" do
43
+ lambda { @password_only.should have_selector(":text") }.should fail
44
+ end
45
+
46
+ it "fails not have_selector(:text) if a node with type=text exists" do
47
+ lambda { @text_only.should_not have_selector(":text") }.should fail
48
+ end
49
+
50
+ it "works together with other selectors" do
51
+ @text_and_password.should have_selector("input:text[type*='te']")
52
+ end
53
+ end
54
+
55
+ describe ":password" do
56
+ it "passes have_selector(:password) if a node with type=password exists" do
57
+ @text_and_password.should have_selector(":password")
58
+ end
59
+
60
+ it "passes not have_selector(:text) if no node with text=text exists" do
61
+ @text_only.should_not have_selector(":password")
62
+ end
63
+
64
+ it "fails have_selector(:password) if no node with type=password exists" do
65
+ lambda { @text_only.should have_selector(":password") }.should fail
66
+ end
67
+
68
+ it "fails not have_selector(:password) if a node with type=password exists" do
69
+ lambda { @password_only.should_not have_selector(":password") }.should fail
70
+ end
71
+
72
+ it "works together with other selectors" do
73
+ @text_and_password.should have_selector("input:password[type*='pa']")
74
+ end
75
+ end
76
+ end
77
+ # end
@@ -1,81 +1,81 @@
1
- require File.expand_path(File.dirname(__FILE__) + '/../../spec_helper')
2
-
3
- describe "attach_file" do
4
- before do
5
- Webrat.configuration.mode = :rails
6
- @filename = __FILE__
7
- @uploaded_file = mock("uploaded file")
8
- ActionController::TestUploadedFile.stub!(:new => @uploaded_file)
9
- end
10
-
11
- it "should fail if no file field found" do
12
- with_html <<-HTML
13
- <html>
14
- <form method="post" action="/widgets">
15
- </form>
16
- </html>
17
- HTML
18
- lambda { attach_file("Doc", "/some/path") }.should raise_error(Webrat::NotFoundError)
19
- end
20
-
21
- it "should submit empty strings for blank file fields" do
22
- with_html <<-HTML
23
- <html>
24
- <form method="post" action="/widgets">
25
- <input type="file" id="widget_file" name="widget[file]" />
26
- <input type="submit" />
27
- </form>
28
- </html>
29
- HTML
30
- webrat_session.should_receive(:post).with("/widgets", { "widget" => { "file" => "" } })
31
- click_button
32
- end
33
-
34
- it "should submit the attached file" do
35
- with_html <<-HTML
36
- <html>
37
- <form method="post" action="/widgets">
38
- <label for="widget_file">Document</label>
39
- <input type="file" id="widget_file" name="widget[file]" />
40
- <input type="submit" />
41
- </form>
42
- </html>
43
- HTML
44
- webrat_session.should_receive(:post).with("/widgets", { "widget" => { "file" => @uploaded_file } })
45
- attach_file "Document", @filename
46
- click_button
47
- end
48
-
49
- it "should support collections" do
50
- with_html <<-HTML
51
- <html>
52
- <form method="post" action="/widgets">
53
- <label for="widget_file1">Document</label>
54
- <input type="file" id="widget_file1" name="widget[files][]" />
55
- <label for="widget_file2">Spreadsheet</label>
56
- <input type="file" id="widget_file2" name="widget[files][]" />
57
- <input type="submit" />
58
- </form>
59
- </html>
60
- HTML
61
- webrat_session.should_receive(:post).with("/widgets", { "widget" => { "files" => [@uploaded_file, @uploaded_file] } })
62
- attach_file "Document", @filename
63
- attach_file "Spreadsheet", @filename
64
- click_button
65
- end
66
-
67
- it "should allow the content type to be specified" do
68
- with_html <<-HTML
69
- <html>
70
- <form method="post" action="/widgets">
71
- <label for="person_picture">Picture</label>
72
- <input type="file" id="person_picture" name="person[picture]" />
73
- <input type="submit" />
74
- </form>
75
- </html>
76
- HTML
77
- ActionController::TestUploadedFile.should_receive(:new).with(@filename, "image/png").any_number_of_times
78
- attach_file "Picture", @filename, "image/png"
79
- click_button
80
- end
81
- end
1
+ require File.expand_path(File.dirname(__FILE__) + '/../../spec_helper')
2
+
3
+ describe "attach_file" do
4
+ before do
5
+ Webrat.configuration.mode = :rails
6
+ @filename = __FILE__
7
+ @uploaded_file = mock("uploaded file")
8
+ ActionController::TestUploadedFile.stub!(:new => @uploaded_file)
9
+ end
10
+
11
+ it "should fail if no file field found" do
12
+ with_html <<-HTML
13
+ <html>
14
+ <form method="post" action="/widgets">
15
+ </form>
16
+ </html>
17
+ HTML
18
+ lambda { attach_file("Doc", "/some/path") }.should raise_error(Webrat::NotFoundError)
19
+ end
20
+
21
+ it "should submit empty strings for blank file fields" do
22
+ with_html <<-HTML
23
+ <html>
24
+ <form method="post" action="/widgets">
25
+ <input type="file" id="widget_file" name="widget[file]" />
26
+ <input type="submit" />
27
+ </form>
28
+ </html>
29
+ HTML
30
+ webrat_session.should_receive(:post).with("/widgets", { "widget" => { "file" => "" } })
31
+ click_button
32
+ end
33
+
34
+ it "should submit the attached file" do
35
+ with_html <<-HTML
36
+ <html>
37
+ <form method="post" action="/widgets">
38
+ <label for="widget_file">Document</label>
39
+ <input type="file" id="widget_file" name="widget[file]" />
40
+ <input type="submit" />
41
+ </form>
42
+ </html>
43
+ HTML
44
+ webrat_session.should_receive(:post).with("/widgets", { "widget" => { "file" => @uploaded_file } })
45
+ attach_file "Document", @filename
46
+ click_button
47
+ end
48
+
49
+ it "should support collections" do
50
+ with_html <<-HTML
51
+ <html>
52
+ <form method="post" action="/widgets">
53
+ <label for="widget_file1">Document</label>
54
+ <input type="file" id="widget_file1" name="widget[files][]" />
55
+ <label for="widget_file2">Spreadsheet</label>
56
+ <input type="file" id="widget_file2" name="widget[files][]" />
57
+ <input type="submit" />
58
+ </form>
59
+ </html>
60
+ HTML
61
+ webrat_session.should_receive(:post).with("/widgets", { "widget" => { "files" => [@uploaded_file, @uploaded_file] } })
62
+ attach_file "Document", @filename
63
+ attach_file "Spreadsheet", @filename
64
+ click_button
65
+ end
66
+
67
+ it "should allow the content type to be specified" do
68
+ with_html <<-HTML
69
+ <html>
70
+ <form method="post" action="/widgets">
71
+ <label for="person_picture">Picture</label>
72
+ <input type="file" id="person_picture" name="person[picture]" />
73
+ <input type="submit" />
74
+ </form>
75
+ </html>
76
+ HTML
77
+ ActionController::TestUploadedFile.should_receive(:new).with(@filename, "image/png").any_number_of_times
78
+ attach_file "Picture", @filename, "image/png"
79
+ click_button
80
+ end
81
+ end
@@ -1,86 +1,86 @@
1
- require File.expand_path(File.dirname(__FILE__) + '/../../spec_helper')
2
-
3
- describe Webrat::RailsAdapter do
4
- before :each do
5
- Webrat.configuration.mode = :rails
6
- @integration_session = mock("integration_session")
7
- end
8
-
9
- it "should delegate response_body to the session response body" do
10
- @integration_session.stub!(:response => mock("response", :body => "<html>"))
11
- Webrat::RailsAdapter.new(@integration_session).response_body.should == "<html>"
12
- end
13
-
14
- it "should delegate response_code to the session response code" do
15
- @integration_session.stub!(:response => mock("response", :code => "42"))
16
- Webrat::RailsAdapter.new(@integration_session).response_code.should == 42
17
- end
18
-
19
- it "should delegate get to the integration session" do
20
- @integration_session.should_receive(:get).with("url", "data", "headers")
21
- rails_session = Webrat::RailsAdapter.new(@integration_session)
22
- rails_session.get("url", "data", "headers")
23
- end
24
-
25
- it "should delegate post to the integration session" do
26
- @integration_session.should_receive(:post).with("url", "data", "headers")
27
- rails_session = Webrat::RailsAdapter.new(@integration_session)
28
- rails_session.post("url", "data", "headers")
29
- end
30
-
31
- it "should delegate put to the integration session" do
32
- @integration_session.should_receive(:put).with("url", "data", "headers")
33
- rails_session = Webrat::RailsAdapter.new(@integration_session)
34
- rails_session.put("url", "data", "headers")
35
- end
36
-
37
- it "should delegate delete to the integration session" do
38
- @integration_session.should_receive(:delete).with("url", "data", "headers")
39
- rails_session = Webrat::RailsAdapter.new(@integration_session)
40
- rails_session.delete("url", "data", "headers")
41
- end
42
-
43
- context "the URL is a full path" do
44
- it "should pass the full url" do
45
- @integration_session.stub!(:https!)
46
- @integration_session.should_receive(:get).with("http://www.example.com/url", "data", "headers")
47
- rails_session = Webrat::RailsAdapter.new(@integration_session)
48
- rails_session.get("http://www.example.com/url", "data", "headers")
49
- end
50
- end
51
-
52
- context "the URL is https://" do
53
- it "should call #https! with true before the request before passing along the full url" do
54
- @integration_session.should_receive(:https!).with(true)
55
- @integration_session.should_receive(:get).with("https://www.example.com/url", "data", "headers")
56
- rails_session = Webrat::RailsAdapter.new(@integration_session)
57
- rails_session.get("https://www.example.com/url", "data", "headers")
58
- end
59
- end
60
-
61
- context "the URL is http://" do
62
- it "should call #https! with true before the request" do
63
- @integration_session.stub!(:get)
64
- @integration_session.should_receive(:https!).with(false)
65
- rails_session = Webrat::RailsAdapter.new(@integration_session)
66
- rails_session.get("http://www.example.com/url", "data", "headers")
67
- end
68
- end
69
-
70
- context "the URL include an anchor" do
71
- it "should strip out the anchor" do
72
- @integration_session.should_receive(:https!).with(false)
73
- @integration_session.should_receive(:get).with("http://www.example.com/url", "data", "headers")
74
- rails_session = Webrat::RailsAdapter.new(@integration_session)
75
- rails_session.get("http://www.example.com/url#foo", "data", "headers")
76
- end
77
- end
78
-
79
- it "should provide a saved_page_dir" do
80
- Webrat::RailsAdapter.new(mock("integration session")).should respond_to(:saved_page_dir)
81
- end
82
-
83
- it "should provide a doc_root" do
84
- Webrat::RailsAdapter.new(mock("integration session")).should respond_to(:doc_root)
85
- end
86
- end
1
+ require File.expand_path(File.dirname(__FILE__) + '/../../spec_helper')
2
+
3
+ describe Webrat::RailsAdapter do
4
+ before :each do
5
+ Webrat.configuration.mode = :rails
6
+ @integration_session = mock("integration_session")
7
+ end
8
+
9
+ it "should delegate response_body to the session response body" do
10
+ @integration_session.stub!(:response => mock("response", :body => "<html>"))
11
+ Webrat::RailsAdapter.new(@integration_session).response_body.should == "<html>"
12
+ end
13
+
14
+ it "should delegate response_code to the session response code" do
15
+ @integration_session.stub!(:response => mock("response", :code => "42"))
16
+ Webrat::RailsAdapter.new(@integration_session).response_code.should == 42
17
+ end
18
+
19
+ it "should delegate get to the integration session" do
20
+ @integration_session.should_receive(:get).with("url", "data", "headers")
21
+ rails_session = Webrat::RailsAdapter.new(@integration_session)
22
+ rails_session.get("url", "data", "headers")
23
+ end
24
+
25
+ it "should delegate post to the integration session" do
26
+ @integration_session.should_receive(:post).with("url", "data", "headers")
27
+ rails_session = Webrat::RailsAdapter.new(@integration_session)
28
+ rails_session.post("url", "data", "headers")
29
+ end
30
+
31
+ it "should delegate put to the integration session" do
32
+ @integration_session.should_receive(:put).with("url", "data", "headers")
33
+ rails_session = Webrat::RailsAdapter.new(@integration_session)
34
+ rails_session.put("url", "data", "headers")
35
+ end
36
+
37
+ it "should delegate delete to the integration session" do
38
+ @integration_session.should_receive(:delete).with("url", "data", "headers")
39
+ rails_session = Webrat::RailsAdapter.new(@integration_session)
40
+ rails_session.delete("url", "data", "headers")
41
+ end
42
+
43
+ context "the URL is a full path" do
44
+ it "should pass the full url" do
45
+ @integration_session.stub!(:https!)
46
+ @integration_session.should_receive(:get).with("http://www.example.com/url", "data", "headers")
47
+ rails_session = Webrat::RailsAdapter.new(@integration_session)
48
+ rails_session.get("http://www.example.com/url", "data", "headers")
49
+ end
50
+ end
51
+
52
+ context "the URL is https://" do
53
+ it "should call #https! with true before the request before passing along the full url" do
54
+ @integration_session.should_receive(:https!).with(true)
55
+ @integration_session.should_receive(:get).with("https://www.example.com/url", "data", "headers")
56
+ rails_session = Webrat::RailsAdapter.new(@integration_session)
57
+ rails_session.get("https://www.example.com/url", "data", "headers")
58
+ end
59
+ end
60
+
61
+ context "the URL is http://" do
62
+ it "should call #https! with true before the request" do
63
+ @integration_session.stub!(:get)
64
+ @integration_session.should_receive(:https!).with(false)
65
+ rails_session = Webrat::RailsAdapter.new(@integration_session)
66
+ rails_session.get("http://www.example.com/url", "data", "headers")
67
+ end
68
+ end
69
+
70
+ context "the URL include an anchor" do
71
+ it "should strip out the anchor" do
72
+ @integration_session.should_receive(:https!).with(false)
73
+ @integration_session.should_receive(:get).with("http://www.example.com/url", "data", "headers")
74
+ rails_session = Webrat::RailsAdapter.new(@integration_session)
75
+ rails_session.get("http://www.example.com/url#foo", "data", "headers")
76
+ end
77
+ end
78
+
79
+ it "should provide a saved_page_dir" do
80
+ Webrat::RailsAdapter.new(mock("integration session")).should respond_to(:saved_page_dir)
81
+ end
82
+
83
+ it "should provide a doc_root" do
84
+ Webrat::RailsAdapter.new(mock("integration session")).should respond_to(:doc_root)
85
+ end
86
+ end
@@ -1,26 +1,26 @@
1
- require File.expand_path(File.dirname(__FILE__) + "/../../../spec_helper")
2
- require "webrat/selenium/application_servers/rails"
3
-
4
- RAILS_ROOT = "." unless defined?(RAILS_ROOT)
5
-
6
- describe Webrat::Selenium::ApplicationServers::Rails do
7
- include Webrat::Selenium::SilenceStream
8
-
9
- before do
10
- @server = Webrat::Selenium::ApplicationServers::Rails.new
11
- # require "rubygems"; require "ruby-debug"; Debugger.start; debugger
12
- @server.stub!(:system)
13
- @server.stub!(:at_exit)
14
- end
15
-
16
- describe "boot" do
17
- it "should wait for the server to start on 0.0.0.0" do
18
- TCPSocket.should_receive(:wait_for_service_with_timeout).
19
- with(hash_including(:host => "0.0.0.0"))
20
-
21
- silence_stream(STDERR) do
22
- @server.boot
23
- end
24
- end
25
- end
26
- end
1
+ require File.expand_path(File.dirname(__FILE__) + "/../../../spec_helper")
2
+ require "webrat/selenium/application_servers/rails"
3
+
4
+ RAILS_ROOT = "." unless defined?(RAILS_ROOT)
5
+
6
+ describe Webrat::Selenium::ApplicationServers::Rails do
7
+ include Webrat::Selenium::SilenceStream
8
+
9
+ before do
10
+ @server = Webrat::Selenium::ApplicationServers::Rails.new
11
+ # require "rubygems"; require "ruby-debug"; Debugger.start; debugger
12
+ @server.stub!(:system)
13
+ @server.stub!(:at_exit)
14
+ end
15
+
16
+ describe "boot" do
17
+ it "should wait for the server to start on 0.0.0.0" do
18
+ TCPSocket.should_receive(:wait_for_service_with_timeout).
19
+ with(hash_including(:host => "0.0.0.0"))
20
+
21
+ silence_stream(STDERR) do
22
+ @server.boot
23
+ end
24
+ end
25
+ end
26
+ end
@@ -1,24 +1,24 @@
1
- require File.expand_path(File.dirname(__FILE__) + "/../spec_helper")
2
-
3
- describe "Basic Auth HTTP headers" do
4
- before do
5
- basic_auth('user', 'secret')
6
- end
7
-
8
- it "should be present in visit" do
9
- webrat_session.should_receive(:get).with("/", {}, {'HTTP_AUTHORIZATION' => "Basic dXNlcjpzZWNyZXQ=\n"})
10
- visit("/")
11
- end
12
-
13
- it "should be present in form submits" do
14
- with_html <<-HTML
15
- <html>
16
- <form method="post" action="/form1">
17
- <input type="submit" />
18
- </form>
19
- </html>
20
- HTML
21
- webrat_session.should_receive(:post).with("/form1", {}, {'HTTP_AUTHORIZATION' => "Basic dXNlcjpzZWNyZXQ=\n"})
22
- click_button
23
- end
24
- end
1
+ require File.expand_path(File.dirname(__FILE__) + "/../spec_helper")
2
+
3
+ describe "Basic Auth HTTP headers" do
4
+ before do
5
+ basic_auth('user', 'secret')
6
+ end
7
+
8
+ it "should be present in visit" do
9
+ webrat_session.should_receive(:get).with("/", {}, {'HTTP_AUTHORIZATION' => "Basic dXNlcjpzZWNyZXQ=\n"})
10
+ visit("/")
11
+ end
12
+
13
+ it "should be present in form submits" do
14
+ with_html <<-HTML
15
+ <html>
16
+ <form method="post" action="/form1">
17
+ <input type="submit" />
18
+ </form>
19
+ </html>
20
+ HTML
21
+ webrat_session.should_receive(:post).with("/form1", {}, {'HTTP_AUTHORIZATION' => "Basic dXNlcjpzZWNyZXQ=\n"})
22
+ click_button
23
+ end
24
+ end