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,106 +1,106 @@
1
- require File.expand_path(File.dirname(__FILE__) + "/../spec_helper")
2
-
3
- describe "click_area" do
4
- it "should use get by default" do
5
- with_html <<-HTML
6
- <html>
7
- <map name="map_de" id="map_de">
8
- <area href="/page" title="Berlin" id="berlin" shape="poly" alt="Berlin" coords="180,89,180" />
9
- </map>
10
- </html>
11
- HTML
12
- webrat_session.should_receive(:get).with("/page", {})
13
- click_area "Berlin"
14
- end
15
-
16
- it "should assert valid response" do
17
- with_html <<-HTML
18
- <html>
19
- <map name="map_de" id="map_de">
20
- <area href="/page" title="Berlin" id="berlin" shape="poly" alt="Berlin" coords="180,89,180" />
21
- </map>
22
- </html>
23
- HTML
24
- webrat_session.response_code = 501
25
- lambda { click_area "Berlin" }.should raise_error(Webrat::PageLoadError)
26
- end
27
-
28
- [200, 300, 400, 499].each do |status|
29
- it "should consider the #{status} status code as success" do
30
- with_html <<-HTML
31
- <html>
32
- <map name="map_de" id="map_de">
33
- <area href="/page" title="Berlin" id="berlin" shape="poly" alt="Berlin" coords="180,89,180" />
34
- </map>
35
- </html>
36
- HTML
37
- webrat_session.stub!(:redirect? => false)
38
- webrat_session.response_code = status
39
- lambda { click_area "Berlin" }.should_not raise_error
40
- end
41
- end
42
-
43
- it "should fail if the area doesn't exist" do
44
- with_html <<-HTML
45
- <html>
46
- <map name="map_de" id="map_de">
47
- <area href="/page" title="Berlin" id="berlin" shape="poly" alt="Berlin" coords="180,89,180" />
48
- </map>
49
- </html>
50
- HTML
51
-
52
- lambda {
53
- click_area "Missing area"
54
- }.should raise_error(Webrat::NotFoundError)
55
- end
56
-
57
- it "should not be case sensitive" do
58
- with_html <<-HTML
59
- <html>
60
- <map name="map_de" id="map_de">
61
- <area href="/page" title="Berlin" id="berlin" shape="poly" alt="Berlin" coords="180,89,180" />
62
- </map>
63
- </html>
64
- HTML
65
- webrat_session.should_receive(:get).with("/page", {})
66
- click_area "berlin"
67
- end
68
-
69
-
70
- it "should follow relative links" do
71
- webrat_session.stub!(:current_url => "/page")
72
- with_html <<-HTML
73
- <html>
74
- <map name="map_de" id="map_de">
75
- <area href="sub" title="Berlin" id="berlin" shape="poly" alt="Berlin" coords="180,89,180" />
76
- </map>
77
- </html>
78
- HTML
79
- webrat_session.should_receive(:get).with("/page/sub", {})
80
- click_area "Berlin"
81
- end
82
-
83
- it "should follow fully qualified local links" do
84
- with_html <<-HTML
85
- <html>
86
- <map name="map_de" id="map_de">
87
- <area href="http://www.example.com/page" title="Berlin" id="berlin" shape="poly" alt="Berlin" coords="180,89,180" />
88
- </map>
89
- </html>
90
- HTML
91
- webrat_session.should_receive(:get).with("http://www.example.com/page", {})
92
- click_area "Berlin"
93
- end
94
-
95
- it "should follow query parameters" do
96
- with_html <<-HTML
97
- <html>
98
- <map name="map_de" id="map_de">
99
- <area href="/page?foo=bar" title="Berlin" id="berlin" shape="poly" alt="Berlin" coords="180,89,180" />
100
- </map>
101
- </html>
102
- HTML
103
- webrat_session.should_receive(:get).with("/page?foo=bar", {})
104
- click_area "Berlin"
105
- end
106
- end
1
+ require File.expand_path(File.dirname(__FILE__) + "/../spec_helper")
2
+
3
+ describe "click_area" do
4
+ it "should use get by default" do
5
+ with_html <<-HTML
6
+ <html>
7
+ <map name="map_de" id="map_de">
8
+ <area href="/page" title="Berlin" id="berlin" shape="poly" alt="Berlin" coords="180,89,180" />
9
+ </map>
10
+ </html>
11
+ HTML
12
+ webrat_session.should_receive(:get).with("/page", {})
13
+ click_area "Berlin"
14
+ end
15
+
16
+ it "should assert valid response" do
17
+ with_html <<-HTML
18
+ <html>
19
+ <map name="map_de" id="map_de">
20
+ <area href="/page" title="Berlin" id="berlin" shape="poly" alt="Berlin" coords="180,89,180" />
21
+ </map>
22
+ </html>
23
+ HTML
24
+ webrat_session.response_code = 501
25
+ lambda { click_area "Berlin" }.should raise_error(Webrat::PageLoadError)
26
+ end
27
+
28
+ [200, 300, 400, 499].each do |status|
29
+ it "should consider the #{status} status code as success" do
30
+ with_html <<-HTML
31
+ <html>
32
+ <map name="map_de" id="map_de">
33
+ <area href="/page" title="Berlin" id="berlin" shape="poly" alt="Berlin" coords="180,89,180" />
34
+ </map>
35
+ </html>
36
+ HTML
37
+ webrat_session.stub!(:redirect? => false)
38
+ webrat_session.response_code = status
39
+ lambda { click_area "Berlin" }.should_not raise_error
40
+ end
41
+ end
42
+
43
+ it "should fail if the area doesn't exist" do
44
+ with_html <<-HTML
45
+ <html>
46
+ <map name="map_de" id="map_de">
47
+ <area href="/page" title="Berlin" id="berlin" shape="poly" alt="Berlin" coords="180,89,180" />
48
+ </map>
49
+ </html>
50
+ HTML
51
+
52
+ lambda {
53
+ click_area "Missing area"
54
+ }.should raise_error(Webrat::NotFoundError)
55
+ end
56
+
57
+ it "should not be case sensitive" do
58
+ with_html <<-HTML
59
+ <html>
60
+ <map name="map_de" id="map_de">
61
+ <area href="/page" title="Berlin" id="berlin" shape="poly" alt="Berlin" coords="180,89,180" />
62
+ </map>
63
+ </html>
64
+ HTML
65
+ webrat_session.should_receive(:get).with("/page", {})
66
+ click_area "berlin"
67
+ end
68
+
69
+
70
+ it "should follow relative links" do
71
+ webrat_session.stub!(:current_url => "/page")
72
+ with_html <<-HTML
73
+ <html>
74
+ <map name="map_de" id="map_de">
75
+ <area href="sub" title="Berlin" id="berlin" shape="poly" alt="Berlin" coords="180,89,180" />
76
+ </map>
77
+ </html>
78
+ HTML
79
+ webrat_session.should_receive(:get).with("/page/sub", {})
80
+ click_area "Berlin"
81
+ end
82
+
83
+ it "should follow fully qualified local links" do
84
+ with_html <<-HTML
85
+ <html>
86
+ <map name="map_de" id="map_de">
87
+ <area href="http://www.example.com/page" title="Berlin" id="berlin" shape="poly" alt="Berlin" coords="180,89,180" />
88
+ </map>
89
+ </html>
90
+ HTML
91
+ webrat_session.should_receive(:get).with("http://www.example.com/page", {})
92
+ click_area "Berlin"
93
+ end
94
+
95
+ it "should follow query parameters" do
96
+ with_html <<-HTML
97
+ <html>
98
+ <map name="map_de" id="map_de">
99
+ <area href="/page?foo=bar" title="Berlin" id="berlin" shape="poly" alt="Berlin" coords="180,89,180" />
100
+ </map>
101
+ </html>
102
+ HTML
103
+ webrat_session.should_receive(:get).with("/page?foo=bar", {})
104
+ click_area "Berlin"
105
+ end
106
+ end