sum 0.1.1 → 0.1.2

Sign up to get free protection for your applications and to get access to all the features.
Files changed (228) hide show
  1. data/README.markdown +10 -12
  2. data/Rakefile +6 -7
  3. data/config/externals.yml +3 -3
  4. data/config/schedule.rb +0 -1
  5. data/features/step_definitions/when.rb +3 -3
  6. data/features/support/env.rb +9 -10
  7. data/gemspec.rb +13 -14
  8. data/lib/sum.rb +8 -8
  9. data/lib/sum/helper/cron.rb +1 -1
  10. data/lib/sum/model/user.rb +3 -3
  11. data/vendor/fetcher/MIT-LICENSE +20 -0
  12. data/vendor/fetcher/README.rdoc +94 -0
  13. data/vendor/fetcher/Rakefile +30 -0
  14. data/vendor/fetcher/fetcher.gemspec +27 -0
  15. data/vendor/fetcher/gemspec.rb +17 -0
  16. data/vendor/fetcher/init.rb +0 -0
  17. data/vendor/fetcher/lib/fetcher.rb +23 -0
  18. data/vendor/fetcher/lib/fetcher/base.rb +63 -0
  19. data/vendor/fetcher/lib/fetcher/imap.rb +79 -0
  20. data/vendor/fetcher/lib/fetcher/pop.rb +50 -0
  21. data/vendor/fetcher/lib/vendor/plain_imap.rb +21 -0
  22. data/vendor/fetcher/lib/vendor/secure_pop.rb +125 -0
  23. data/vendor/fetcher/test/fetcher_test.rb +74 -0
  24. metadata +40 -241
  25. data/sum.gemspec +0 -69
  26. data/vendor/webrat/History.txt +0 -358
  27. data/vendor/webrat/MIT-LICENSE.txt +0 -19
  28. data/vendor/webrat/README.rdoc +0 -85
  29. data/vendor/webrat/Rakefile +0 -200
  30. data/vendor/webrat/install.rb +0 -1
  31. data/vendor/webrat/lib/webrat.rb +0 -31
  32. data/vendor/webrat/lib/webrat/core.rb +0 -14
  33. data/vendor/webrat/lib/webrat/core/configuration.rb +0 -102
  34. data/vendor/webrat/lib/webrat/core/elements/area.rb +0 -31
  35. data/vendor/webrat/lib/webrat/core/elements/element.rb +0 -33
  36. data/vendor/webrat/lib/webrat/core/elements/field.rb +0 -409
  37. data/vendor/webrat/lib/webrat/core/elements/form.rb +0 -103
  38. data/vendor/webrat/lib/webrat/core/elements/label.rb +0 -31
  39. data/vendor/webrat/lib/webrat/core/elements/link.rb +0 -93
  40. data/vendor/webrat/lib/webrat/core/elements/select_option.rb +0 -35
  41. data/vendor/webrat/lib/webrat/core/locators.rb +0 -20
  42. data/vendor/webrat/lib/webrat/core/locators/area_locator.rb +0 -38
  43. data/vendor/webrat/lib/webrat/core/locators/button_locator.rb +0 -54
  44. data/vendor/webrat/lib/webrat/core/locators/field_by_id_locator.rb +0 -37
  45. data/vendor/webrat/lib/webrat/core/locators/field_labeled_locator.rb +0 -56
  46. data/vendor/webrat/lib/webrat/core/locators/field_locator.rb +0 -25
  47. data/vendor/webrat/lib/webrat/core/locators/field_named_locator.rb +0 -41
  48. data/vendor/webrat/lib/webrat/core/locators/form_locator.rb +0 -19
  49. data/vendor/webrat/lib/webrat/core/locators/label_locator.rb +0 -34
  50. data/vendor/webrat/lib/webrat/core/locators/link_locator.rb +0 -74
  51. data/vendor/webrat/lib/webrat/core/locators/locator.rb +0 -20
  52. data/vendor/webrat/lib/webrat/core/locators/select_option_locator.rb +0 -59
  53. data/vendor/webrat/lib/webrat/core/logging.rb +0 -24
  54. data/vendor/webrat/lib/webrat/core/matchers.rb +0 -4
  55. data/vendor/webrat/lib/webrat/core/matchers/have_content.rb +0 -73
  56. data/vendor/webrat/lib/webrat/core/matchers/have_selector.rb +0 -74
  57. data/vendor/webrat/lib/webrat/core/matchers/have_tag.rb +0 -21
  58. data/vendor/webrat/lib/webrat/core/matchers/have_xpath.rb +0 -147
  59. data/vendor/webrat/lib/webrat/core/methods.rb +0 -63
  60. data/vendor/webrat/lib/webrat/core/mime.rb +0 -29
  61. data/vendor/webrat/lib/webrat/core/save_and_open_page.rb +0 -48
  62. data/vendor/webrat/lib/webrat/core/scope.rb +0 -350
  63. data/vendor/webrat/lib/webrat/core/session.rb +0 -299
  64. data/vendor/webrat/lib/webrat/core/xml.rb +0 -115
  65. data/vendor/webrat/lib/webrat/core/xml/hpricot.rb +0 -19
  66. data/vendor/webrat/lib/webrat/core/xml/nokogiri.rb +0 -76
  67. data/vendor/webrat/lib/webrat/core/xml/rexml.rb +0 -24
  68. data/vendor/webrat/lib/webrat/core_extensions/blank.rb +0 -58
  69. data/vendor/webrat/lib/webrat/core_extensions/deprecate.rb +0 -8
  70. data/vendor/webrat/lib/webrat/core_extensions/detect_mapped.rb +0 -12
  71. data/vendor/webrat/lib/webrat/core_extensions/meta_class.rb +0 -6
  72. data/vendor/webrat/lib/webrat/core_extensions/nil_to_param.rb +0 -5
  73. data/vendor/webrat/lib/webrat/core_extensions/tcp_socket.rb +0 -27
  74. data/vendor/webrat/lib/webrat/mechanize.rb +0 -74
  75. data/vendor/webrat/lib/webrat/merb.rb +0 -9
  76. data/vendor/webrat/lib/webrat/merb_multipart_support.rb +0 -27
  77. data/vendor/webrat/lib/webrat/merb_session.rb +0 -82
  78. data/vendor/webrat/lib/webrat/rack.rb +0 -25
  79. data/vendor/webrat/lib/webrat/rails.rb +0 -106
  80. data/vendor/webrat/lib/webrat/rspec-rails.rb +0 -10
  81. data/vendor/webrat/lib/webrat/selenium.rb +0 -81
  82. data/vendor/webrat/lib/webrat/selenium/application_server_factory.rb +0 -40
  83. data/vendor/webrat/lib/webrat/selenium/application_servers.rb +0 -5
  84. data/vendor/webrat/lib/webrat/selenium/application_servers/base.rb +0 -46
  85. data/vendor/webrat/lib/webrat/selenium/application_servers/external.rb +0 -26
  86. data/vendor/webrat/lib/webrat/selenium/application_servers/merb.rb +0 -50
  87. data/vendor/webrat/lib/webrat/selenium/application_servers/rails.rb +0 -44
  88. data/vendor/webrat/lib/webrat/selenium/application_servers/sinatra.rb +0 -37
  89. data/vendor/webrat/lib/webrat/selenium/location_strategy_javascript/button.js +0 -19
  90. data/vendor/webrat/lib/webrat/selenium/location_strategy_javascript/label.js +0 -16
  91. data/vendor/webrat/lib/webrat/selenium/location_strategy_javascript/webrat.js +0 -5
  92. data/vendor/webrat/lib/webrat/selenium/location_strategy_javascript/webratlink.js +0 -12
  93. data/vendor/webrat/lib/webrat/selenium/location_strategy_javascript/webratlinkwithin.js +0 -15
  94. data/vendor/webrat/lib/webrat/selenium/location_strategy_javascript/webratselectwithoption.js +0 -5
  95. data/vendor/webrat/lib/webrat/selenium/matchers.rb +0 -4
  96. data/vendor/webrat/lib/webrat/selenium/matchers/have_content.rb +0 -66
  97. data/vendor/webrat/lib/webrat/selenium/matchers/have_selector.rb +0 -49
  98. data/vendor/webrat/lib/webrat/selenium/matchers/have_tag.rb +0 -72
  99. data/vendor/webrat/lib/webrat/selenium/matchers/have_xpath.rb +0 -45
  100. data/vendor/webrat/lib/webrat/selenium/selenium_extensions.js +0 -6
  101. data/vendor/webrat/lib/webrat/selenium/selenium_rc_server.rb +0 -84
  102. data/vendor/webrat/lib/webrat/selenium/selenium_session.rb +0 -248
  103. data/vendor/webrat/lib/webrat/selenium/silence_stream.rb +0 -18
  104. data/vendor/webrat/lib/webrat/sinatra.rb +0 -11
  105. data/vendor/webrat/spec/fakes/test_session.rb +0 -34
  106. data/vendor/webrat/spec/integration/merb/Rakefile +0 -35
  107. data/vendor/webrat/spec/integration/merb/app/controllers/application.rb +0 -2
  108. data/vendor/webrat/spec/integration/merb/app/controllers/exceptions.rb +0 -13
  109. data/vendor/webrat/spec/integration/merb/app/controllers/testing.rb +0 -27
  110. data/vendor/webrat/spec/integration/merb/app/views/exceptions/not_acceptable.html.erb +0 -63
  111. data/vendor/webrat/spec/integration/merb/app/views/exceptions/not_found.html.erb +0 -47
  112. data/vendor/webrat/spec/integration/merb/app/views/layout/application.html.erb +0 -12
  113. data/vendor/webrat/spec/integration/merb/app/views/testing/show_form.html.erb +0 -27
  114. data/vendor/webrat/spec/integration/merb/app/views/testing/upload.html.erb +0 -9
  115. data/vendor/webrat/spec/integration/merb/config/environments/development.rb +0 -15
  116. data/vendor/webrat/spec/integration/merb/config/environments/rake.rb +0 -11
  117. data/vendor/webrat/spec/integration/merb/config/environments/test.rb +0 -14
  118. data/vendor/webrat/spec/integration/merb/config/init.rb +0 -25
  119. data/vendor/webrat/spec/integration/merb/config/rack.rb +0 -11
  120. data/vendor/webrat/spec/integration/merb/config/router.rb +0 -34
  121. data/vendor/webrat/spec/integration/merb/spec/spec.opts +0 -1
  122. data/vendor/webrat/spec/integration/merb/spec/spec_helper.rb +0 -24
  123. data/vendor/webrat/spec/integration/merb/spec/webrat_spec.rb +0 -39
  124. data/vendor/webrat/spec/integration/merb/tasks/merb.thor/app_script.rb +0 -31
  125. data/vendor/webrat/spec/integration/merb/tasks/merb.thor/common.rb +0 -64
  126. data/vendor/webrat/spec/integration/merb/tasks/merb.thor/gem_ext.rb +0 -124
  127. data/vendor/webrat/spec/integration/merb/tasks/merb.thor/main.thor +0 -150
  128. data/vendor/webrat/spec/integration/merb/tasks/merb.thor/ops.rb +0 -93
  129. data/vendor/webrat/spec/integration/merb/tasks/merb.thor/utils.rb +0 -40
  130. data/vendor/webrat/spec/integration/rack/Rakefile +0 -5
  131. data/vendor/webrat/spec/integration/rack/app.rb +0 -73
  132. data/vendor/webrat/spec/integration/rack/test/helper.rb +0 -20
  133. data/vendor/webrat/spec/integration/rack/test/webrat_rack_test.rb +0 -62
  134. data/vendor/webrat/spec/integration/rails/Rakefile +0 -30
  135. data/vendor/webrat/spec/integration/rails/app/controllers/application.rb +0 -15
  136. data/vendor/webrat/spec/integration/rails/app/controllers/buttons_controller.rb +0 -7
  137. data/vendor/webrat/spec/integration/rails/app/controllers/fields_controller.rb +0 -4
  138. data/vendor/webrat/spec/integration/rails/app/controllers/links_controller.rb +0 -7
  139. data/vendor/webrat/spec/integration/rails/app/controllers/webrat_controller.rb +0 -43
  140. data/vendor/webrat/spec/integration/rails/app/helpers/buttons_helper.rb +0 -2
  141. data/vendor/webrat/spec/integration/rails/app/helpers/fields_helper.rb +0 -2
  142. data/vendor/webrat/spec/integration/rails/app/helpers/links_helper.rb +0 -2
  143. data/vendor/webrat/spec/integration/rails/app/views/buttons/show.html.erb +0 -11
  144. data/vendor/webrat/spec/integration/rails/app/views/fields/show.html.erb +0 -9
  145. data/vendor/webrat/spec/integration/rails/app/views/links/show.html.erb +0 -5
  146. data/vendor/webrat/spec/integration/rails/app/views/webrat/before_redirect_form.html.erb +0 -4
  147. data/vendor/webrat/spec/integration/rails/app/views/webrat/buttons.html.erb +0 -11
  148. data/vendor/webrat/spec/integration/rails/app/views/webrat/form.html.erb +0 -28
  149. data/vendor/webrat/spec/integration/rails/config/boot.rb +0 -109
  150. data/vendor/webrat/spec/integration/rails/config/environment.rb +0 -12
  151. data/vendor/webrat/spec/integration/rails/config/environments/development.rb +0 -17
  152. data/vendor/webrat/spec/integration/rails/config/environments/selenium.rb +0 -22
  153. data/vendor/webrat/spec/integration/rails/config/environments/test.rb +0 -22
  154. data/vendor/webrat/spec/integration/rails/config/initializers/inflections.rb +0 -10
  155. data/vendor/webrat/spec/integration/rails/config/initializers/mime_types.rb +0 -5
  156. data/vendor/webrat/spec/integration/rails/config/initializers/new_rails_defaults.rb +0 -17
  157. data/vendor/webrat/spec/integration/rails/config/locales/en.yml +0 -5
  158. data/vendor/webrat/spec/integration/rails/config/routes.rb +0 -18
  159. data/vendor/webrat/spec/integration/rails/public/404.html +0 -30
  160. data/vendor/webrat/spec/integration/rails/public/422.html +0 -30
  161. data/vendor/webrat/spec/integration/rails/public/500.html +0 -33
  162. data/vendor/webrat/spec/integration/rails/script/about +0 -4
  163. data/vendor/webrat/spec/integration/rails/script/console +0 -3
  164. data/vendor/webrat/spec/integration/rails/script/dbconsole +0 -3
  165. data/vendor/webrat/spec/integration/rails/script/destroy +0 -3
  166. data/vendor/webrat/spec/integration/rails/script/generate +0 -3
  167. data/vendor/webrat/spec/integration/rails/script/performance/benchmarker +0 -3
  168. data/vendor/webrat/spec/integration/rails/script/performance/profiler +0 -3
  169. data/vendor/webrat/spec/integration/rails/script/performance/request +0 -3
  170. data/vendor/webrat/spec/integration/rails/script/plugin +0 -3
  171. data/vendor/webrat/spec/integration/rails/script/process/inspector +0 -3
  172. data/vendor/webrat/spec/integration/rails/script/process/reaper +0 -3
  173. data/vendor/webrat/spec/integration/rails/script/process/spawner +0 -3
  174. data/vendor/webrat/spec/integration/rails/script/runner +0 -3
  175. data/vendor/webrat/spec/integration/rails/script/server +0 -3
  176. data/vendor/webrat/spec/integration/rails/test/integration/button_click_test.rb +0 -80
  177. data/vendor/webrat/spec/integration/rails/test/integration/fill_in_test.rb +0 -24
  178. data/vendor/webrat/spec/integration/rails/test/integration/link_click_test.rb +0 -27
  179. data/vendor/webrat/spec/integration/rails/test/integration/webrat_test.rb +0 -97
  180. data/vendor/webrat/spec/integration/rails/test/test_helper.rb +0 -25
  181. data/vendor/webrat/spec/integration/sinatra/Rakefile +0 -5
  182. data/vendor/webrat/spec/integration/sinatra/classic_app.rb +0 -64
  183. data/vendor/webrat/spec/integration/sinatra/modular_app.rb +0 -16
  184. data/vendor/webrat/spec/integration/sinatra/test/classic_app_test.rb +0 -37
  185. data/vendor/webrat/spec/integration/sinatra/test/modular_app_test.rb +0 -18
  186. data/vendor/webrat/spec/integration/sinatra/test/test_helper.rb +0 -16
  187. data/vendor/webrat/spec/private/core/configuration_spec.rb +0 -116
  188. data/vendor/webrat/spec/private/core/field_spec.rb +0 -85
  189. data/vendor/webrat/spec/private/core/link_spec.rb +0 -24
  190. data/vendor/webrat/spec/private/core/logging_spec.rb +0 -10
  191. data/vendor/webrat/spec/private/core/session_spec.rb +0 -195
  192. data/vendor/webrat/spec/private/mechanize/mechanize_session_spec.rb +0 -81
  193. data/vendor/webrat/spec/private/merb/attaches_file_spec.rb +0 -93
  194. data/vendor/webrat/spec/private/merb/merb_session_spec.rb +0 -61
  195. data/vendor/webrat/spec/private/nokogiri_spec.rb +0 -77
  196. data/vendor/webrat/spec/private/rails/attaches_file_spec.rb +0 -81
  197. data/vendor/webrat/spec/private/rails/rails_session_spec.rb +0 -112
  198. data/vendor/webrat/spec/private/selenium/application_servers/rails_spec.rb +0 -26
  199. data/vendor/webrat/spec/public/basic_auth_spec.rb +0 -24
  200. data/vendor/webrat/spec/public/check_spec.rb +0 -191
  201. data/vendor/webrat/spec/public/choose_spec.rb +0 -118
  202. data/vendor/webrat/spec/public/click_area_spec.rb +0 -106
  203. data/vendor/webrat/spec/public/click_button_spec.rb +0 -496
  204. data/vendor/webrat/spec/public/click_link_spec.rb +0 -511
  205. data/vendor/webrat/spec/public/fill_in_spec.rb +0 -209
  206. data/vendor/webrat/spec/public/locators/field_by_xpath_spec.rb +0 -19
  207. data/vendor/webrat/spec/public/locators/field_labeled_spec.rb +0 -172
  208. data/vendor/webrat/spec/public/locators/field_with_id_spec.rb +0 -16
  209. data/vendor/webrat/spec/public/matchers/contain_spec.rb +0 -114
  210. data/vendor/webrat/spec/public/matchers/have_selector_spec.rb +0 -142
  211. data/vendor/webrat/spec/public/matchers/have_tag_spec.rb +0 -39
  212. data/vendor/webrat/spec/public/matchers/have_xpath_spec.rb +0 -136
  213. data/vendor/webrat/spec/public/reload_spec.rb +0 -10
  214. data/vendor/webrat/spec/public/save_and_open_spec.rb +0 -70
  215. data/vendor/webrat/spec/public/select_date_spec.rb +0 -112
  216. data/vendor/webrat/spec/public/select_datetime_spec.rb +0 -137
  217. data/vendor/webrat/spec/public/select_spec.rb +0 -249
  218. data/vendor/webrat/spec/public/select_time_spec.rb +0 -100
  219. data/vendor/webrat/spec/public/selenium/application_server_factory_spec.rb +0 -49
  220. data/vendor/webrat/spec/public/selenium/application_servers/external_spec.rb +0 -12
  221. data/vendor/webrat/spec/public/selenium/selenium_session_spec.rb +0 -37
  222. data/vendor/webrat/spec/public/set_hidden_field_spec.rb +0 -5
  223. data/vendor/webrat/spec/public/submit_form_spec.rb +0 -5
  224. data/vendor/webrat/spec/public/visit_spec.rb +0 -58
  225. data/vendor/webrat/spec/public/within_spec.rb +0 -177
  226. data/vendor/webrat/spec/rcov.opts +0 -1
  227. data/vendor/webrat/spec/spec.opts +0 -2
  228. data/vendor/webrat/spec/spec_helper.rb +0 -50
@@ -1,118 +0,0 @@
1
- require File.expand_path(File.dirname(__FILE__) + "/../spec_helper")
2
-
3
- describe "choose" do
4
- it "should fail if no radio buttons found" do
5
- with_html <<-HTML
6
- <html>
7
- <form method="post" action="/login">
8
- </form>
9
- </html>
10
- HTML
11
-
12
- lambda { choose "first option" }.should raise_error(Webrat::NotFoundError)
13
- end
14
-
15
- it "should fail if input is not a radio button" do
16
- with_html <<-HTML
17
- <html>
18
- <form method="post" action="/login">
19
- <input type="text" name="first_option" />
20
- </form>
21
- </html>
22
- HTML
23
-
24
- lambda { choose "first_option" }.should raise_error(Webrat::NotFoundError)
25
- end
26
-
27
- it "should check rails style radio buttons" do
28
- with_html <<-HTML
29
- <html>
30
- <form method="get" action="/login">
31
- <input id="user_gender_male" name="user[gender]" type="radio" value="M" />
32
- <label for="user_gender_male">Male</label>
33
- <input id="user_gender_female" name="user[gender]" type="radio" value="F" />
34
- <label for="user_gender_female">Female</label>
35
- <input type="submit" />
36
- </form>
37
- </html>
38
- HTML
39
- webrat_session.should_receive(:get).with("/login", "user" => {"gender" => "M"})
40
- choose "Male"
41
- click_button
42
- end
43
-
44
- it "should only submit last chosen value" do
45
- with_html <<-HTML
46
- <html>
47
- <form method="get" action="/login">
48
- <input id="user_gender_male" name="user[gender]" type="radio" value="M" />
49
- <label for="user_gender_male">Male</label>
50
- <input id="user_gender_female" name="user[gender]" type="radio" value="F" />
51
- <label for="user_gender_female">Female</label>
52
- <input type="submit" />
53
- </form>
54
- </html>
55
- HTML
56
- webrat_session.should_receive(:get).with("/login", "user" => {"gender" => "M"})
57
- choose "Female"
58
- choose "Male"
59
- click_button
60
- end
61
-
62
- it "should fail if the radio button is disabled" do
63
- with_html <<-HTML
64
- <html>
65
- <form method="post" action="/login">
66
- <input type="radio" name="first_option" disabled="disabled" />
67
- <input type="submit" />
68
- </form>
69
- </html>
70
- HTML
71
-
72
- lambda { choose "first_option" }.should raise_error(Webrat::DisabledFieldError)
73
- end
74
-
75
- it "should result in the value on being posted if not specified" do
76
- with_html <<-HTML
77
- <html>
78
- <form method="post" action="/login">
79
- <input type="radio" name="first_option" />
80
- <input type="submit" />
81
- </form>
82
- </html>
83
- HTML
84
- webrat_session.should_receive(:post).with("/login", "first_option" => "on")
85
- choose "first_option"
86
- click_button
87
- end
88
-
89
- it "should result in the value on being posted if not specified and checked by default" do
90
- with_html <<-HTML
91
- <html>
92
- <form method="post" action="/login">
93
- <input type="radio" name="first_option" checked="checked"/>
94
- <input type="submit" />
95
- </form>
96
- </html>
97
- HTML
98
- webrat_session.should_receive(:post).with("/login", "first_option" => "on")
99
- click_button
100
- end
101
-
102
- it "should result in the value of the selected radio button being posted when a subsequent one is checked by default" do
103
- with_html <<-HTML
104
- <html>
105
- <form method="post" action="/login">
106
- <input id="user_gender_male" name="user[gender]" type="radio" value="M" />
107
- <label for="user_gender_male">Male</label>
108
- <input id="user_gender_female" name="user[gender]" type="radio" value="F" checked="checked" />
109
- <label for="user_gender_female">Female</label>
110
- <input type="submit" />
111
- </form>
112
- </html>
113
- HTML
114
- webrat_session.should_receive(:post).with("/login", "user" => {"gender" => "M"})
115
- choose "Male"
116
- click_button
117
- end
118
- end
@@ -1,106 +0,0 @@
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,496 +0,0 @@
1
- require File.expand_path(File.dirname(__FILE__) + "/../spec_helper")
2
-
3
- describe "click_button" do
4
- it "should fail if no buttons" do
5
- with_html <<-HTML
6
- <html>
7
- <form method="get" action="/login"></form>
8
- </html>
9
- HTML
10
-
11
- lambda { click_button }.should raise_error(Webrat::NotFoundError)
12
- end
13
-
14
- it "should fail if input is not a submit button" do
15
- with_html <<-HTML
16
- <html>
17
- <form method="get" action="/login">
18
- <input type="reset" />
19
- </form>
20
- </html>
21
- HTML
22
-
23
- lambda { click_button }.should raise_error(Webrat::NotFoundError)
24
- end
25
-
26
-
27
- it "should fail if button is disabled" do
28
- with_html <<-HTML
29
- <html>
30
- <form method="get" action="/login">
31
- <input type="submit" disabled="disabled" />
32
- </form>
33
- </html>
34
- HTML
35
-
36
- lambda { click_button }.should raise_error(Webrat::DisabledFieldError)
37
- end
38
-
39
- it "should default to get method" do
40
- with_html <<-HTML
41
- <html>
42
- <form action="/login">
43
- <input type="submit" />
44
- </form>
45
- </html>
46
- HTML
47
- webrat_session.should_receive(:get)
48
- click_button
49
- end
50
-
51
- it "should assert valid response" do
52
- with_html <<-HTML
53
- <html>
54
- <form action="/login">
55
- <input type="submit" />
56
- </form>
57
- </html>
58
- HTML
59
- webrat_session.response_code = 501
60
- lambda { click_button }.should raise_error(Webrat::PageLoadError)
61
- end
62
-
63
- [200, 300, 400, 499].each do |status|
64
- it "should consider the #{status} status code as success" do
65
- with_html <<-HTML
66
- <html>
67
- <form action="/login">
68
- <input type="submit" />
69
- </form>
70
- </html>
71
- HTML
72
- webrat_session.stub!(:redirect? => false)
73
- webrat_session.response_code = status
74
- lambda { click_button }.should_not raise_error
75
- end
76
- end
77
-
78
- it "should submit the first form by default" do
79
- with_html <<-HTML
80
- <html>
81
- <form method="get" action="/form1">
82
- <input type="submit" />
83
- </form>
84
- <form method="get" action="/form2">
85
- <input type="submit" />
86
- </form>
87
- </html>
88
- HTML
89
- webrat_session.should_receive(:get).with("/form1", {})
90
- click_button
91
- end
92
-
93
- it "should not explode on file fields" do
94
- with_html <<-HTML
95
- <html>
96
- <form method="get" action="/form1">
97
- <input type="file" />
98
- <input type="submit" />
99
- </form>
100
- </html>
101
- HTML
102
- click_button
103
- end
104
-
105
- it "should submit the form with the specified button" do
106
- with_html <<-HTML
107
- <html>
108
- <form method="get" action="/form1">
109
- <input type="submit" />
110
- </form>
111
- <form method="get" action="/form2">
112
- <input type="submit" value="Form2" />
113
- </form>
114
- </html>
115
- HTML
116
- webrat_session.should_receive(:get).with("/form2", {})
117
- click_button "Form2"
118
- end
119
-
120
- it "should use action from form" do
121
- with_html <<-HTML
122
- <html>
123
- <form method="get" action="/login">
124
- <input type="submit" />
125
- </form>
126
- </html>
127
- HTML
128
- webrat_session.should_receive(:get).with("/login", {})
129
- click_button
130
- end
131
-
132
- it "should use method from form" do
133
- with_html <<-HTML
134
- <html>
135
- <form method="post" action="/login">
136
- <input type="submit" />
137
- </form>
138
- </html>
139
- HTML
140
- webrat_session.should_receive(:post)
141
- click_button
142
- end
143
-
144
- it "should send button as param if it has a name" do
145
- with_html <<-HTML
146
- <html>
147
- <form method="post" action="/login">
148
- <input type="submit" name="cancel" value="Cancel" />
149
- <input type="submit" name="login" value="Login" />
150
- </form>
151
- </html>
152
- HTML
153
- webrat_session.should_receive(:post).with("/login", "login" => "Login")
154
- click_button("Login")
155
- end
156
-
157
- it "should not send button as param if it has no name" do
158
- with_html <<-HTML
159
- <html>
160
- <form method="post" action="/login">
161
- <input type="submit" name="cancel" value="Cancel" />
162
- <input type="submit" value="Login" />
163
- </form>
164
- </html>
165
- HTML
166
- webrat_session.should_receive(:post).with("/login", {})
167
- click_button("Login")
168
- end
169
-
170
- it "should send default password field values" do
171
- with_html <<-HTML
172
- <html>
173
- <form method="get" action="/login">
174
- <input id="user_password" name="user[password]" value="mypass" type="password" />
175
- <input type="submit" />
176
- </form>
177
- </html>
178
- HTML
179
- webrat_session.should_receive(:get).with("/login", "user" => {"password" => "mypass"})
180
- click_button
181
- end
182
-
183
- it "should send default hidden field values" do
184
- with_html <<-HTML
185
- <html>
186
- <form method="get" action="/login">
187
- <input id="user_email" name="user[email]" value="test@example.com" type="hidden" />
188
- <input type="submit" />
189
- </form>
190
- </html>
191
- HTML
192
- webrat_session.should_receive(:get).with("/login", "user" => {"email" => "test@example.com"})
193
- click_button
194
- end
195
-
196
- it "should send default text field values" do
197
- with_html <<-HTML
198
- <html>
199
- <form method="get" action="/login">
200
- <input id="user_email" name="user[email]" value="test@example.com" type="text" />
201
- <input type="submit" />
202
- </form>
203
- </html>
204
- HTML
205
- webrat_session.should_receive(:get).with("/login", "user" => {"email" => "test@example.com"})
206
- click_button
207
- end
208
-
209
- it "should not send disabled field values" do
210
- with_html <<-HTML
211
- <html>
212
- <form method="get" action="/login">
213
- <input disabled="disabled" id="user_email" name="user[email]" value="test@example.com" type="text" />
214
- <input disabled="disabled" id="user_gender_male" name="user[gender]" type="radio" value="M" />
215
- <label for="user_gender_male">Male</label>
216
- <input disabled="disabled" id="user_gender_female" name="user[gender]" type="radio" value="F" checked="checked" />
217
- <label for="user_gender_female">Female</label>
218
- <input type="submit" />
219
- </form>
220
- </html>
221
- HTML
222
- webrat_session.should_receive(:get).with("/login", {})
223
- click_button
224
- end
225
-
226
- it "should send default checked fields" do
227
- with_html <<-HTML
228
- <html>
229
- <form method="get" action="/login">
230
- <input id="user_tos" name="user[tos]" value="1" type="checkbox" checked="checked" />
231
- <input type="submit" />
232
- </form>
233
- </html>
234
- HTML
235
- webrat_session.should_receive(:get).with("/login", "user" => {"tos" => "1"})
236
- click_button
237
- end
238
-
239
- it "should send default radio options" do
240
- with_html <<-HTML
241
- <html>
242
- <form method="get" action="/login">
243
- <input id="user_gender_male" name="user[gender]" type="radio" value="M" />
244
- <label for="user_gender_male">Male</label>
245
- <input id="user_gender_female" name="user[gender]" type="radio" value="F" checked="checked" />
246
- <label for="user_gender_female">Female</label>
247
- <input type="submit" />
248
- </form>
249
- </html>
250
- HTML
251
- webrat_session.should_receive(:get).with("/login", "user" => {"gender" => "F"})
252
- click_button
253
- end
254
-
255
- it "should send correct data for rails style unchecked fields" do
256
- with_html <<-HTML
257
- <html>
258
- <form method="get" action="/login">
259
- <input id="user_tos" name="user[tos]" type="checkbox" value="1" />
260
- <input name="user[tos]" type="hidden" value="0" /> TOS
261
- <input type="submit" />
262
- </form>
263
- </html>
264
- HTML
265
- webrat_session.should_receive(:get).with("/login", "user" => {"tos" => "0"})
266
- click_button
267
- end
268
-
269
- it "should send correct data for rails style checked fields" do
270
- with_html <<-HTML
271
- <html>
272
- <form method="get" action="/login">
273
- <input id="user_tos" name="user[tos]" type="checkbox" value="1" checked="checked" />
274
- <input name="user[tos]" type="hidden" value="0" /> TOS
275
- <input type="submit" />
276
- </form>
277
- </html>
278
- HTML
279
- webrat_session.should_receive(:get).with("/login", "user" => {"tos" => "1"})
280
- click_button
281
- end
282
-
283
- it "should send default collection fields" do
284
- with_html <<-HTML
285
- <html>
286
- <form method="post" action="/login">
287
- <input type="checkbox" name="options[]" value="burger" checked="checked" />
288
- <input type="radio" name="options[]" value="fries" checked="checked" />
289
- <input type="text" name="options[]" value="soda" />
290
- <!-- Same value appearing twice -->
291
- <input type="text" name="options[]" value="soda" />
292
- <input type="hidden" name="options[]" value="dessert" />
293
- <input type="hidden" name="response[choices][][selected]" value="one" />
294
- <input type="hidden" name="response[choices][][selected]" value="two" />
295
- <!-- Same value appearing twice -->
296
- <input type="hidden" name="response[choices][][selected]" value="two" />
297
- <input type="submit" />
298
- </form>
299
- </html>
300
- HTML
301
- webrat_session.should_receive(:post).with("/login",
302
- "options" => ["burger", "fries", "soda", "soda", "dessert"],
303
- "response" => { "choices" => [{"selected" => "one"}, {"selected" => "two"}, {"selected" => "two"}]})
304
- click_button
305
- end
306
-
307
- it "should not send default unchecked fields" do
308
- with_html <<-HTML
309
- <html>
310
- <form method="get" action="/login">
311
- <input id="user_tos" name="user[tos]" value="1" type="checkbox" />
312
- <input type="submit" />
313
- </form>
314
- </html>
315
- HTML
316
- webrat_session.should_receive(:get).with("/login", {})
317
- click_button
318
- end
319
-
320
- it "should send default textarea values" do
321
- with_html <<-HTML
322
- <html>
323
- <form method="post" action="/posts">
324
- <textarea name="post[body]">Post body here!</textarea>
325
- <input type="submit" />
326
- </form>
327
- </html>
328
- HTML
329
- webrat_session.should_receive(:post).with("/posts", "post" => {"body" => "Post body here!"})
330
- click_button
331
- end
332
-
333
- it "should properly handle HTML entities in textarea default values" do
334
- pending "needs bug fix" do
335
- with_html <<-HTML
336
- <html>
337
- <form method="post" action="/posts">
338
- <textarea name="post[body]">Peanut butter &amp; jelly</textarea>
339
- <input type="submit" />
340
- </form>
341
- </html>
342
- HTML
343
- webrat_session.should_receive(:post).with("/posts", "post" => {"body" => "Peanut butter & jelly"})
344
- click_button
345
- end
346
- end
347
-
348
- it "should send default selected option value from select" do
349
- with_html <<-HTML
350
- <html>
351
- <form method="get" action="/login">
352
- <select name="month">
353
- <option value="1">January</option>
354
- <option value="2" selected="selected">February</option>
355
- </select>
356
- <input type="submit" />
357
- </form>
358
- </html>
359
- HTML
360
- webrat_session.should_receive(:get).with("/login", "month" => "2")
361
- click_button
362
- end
363
-
364
- it "should send default selected option inner html from select when no value attribute" do
365
- with_html <<-HTML
366
- <html>
367
- <form method="get" action="/login">
368
- <select name="month">
369
- <option>January</option>
370
- <option selected="selected">February</option>
371
- </select>
372
- <input type="submit" />
373
- </form>
374
- </html>
375
- HTML
376
- webrat_session.should_receive(:get).with("/login", "month" => "February")
377
- click_button
378
- end
379
-
380
- it "should send first select option value when no option selected" do
381
- with_html <<-HTML
382
- <html>
383
- <form method="get" action="/login">
384
- <select name="month">
385
- <option value="1">January</option>
386
- <option value="2">February</option>
387
- </select>
388
- <input type="submit" />
389
- </form>
390
- </html>
391
- HTML
392
- webrat_session.should_receive(:get).with("/login", "month" => "1")
393
- click_button
394
- end
395
-
396
- it "should handle nested properties" do
397
- with_html <<-HTML
398
- <html>
399
- <form method="post" action="/login">
400
- <input type="text" id="contestant_scores_12" name="contestant[scores][1]" value="2"/>
401
- <input type="text" id="contestant_scores_13" name="contestant[scores][3]" value="4"/>
402
- <input type="submit" />
403
- </form>
404
- </html>
405
- HTML
406
- webrat_session.should_receive(:post).with("/login", "contestant" => {"scores" => {'1' => '2', '3' => '4'}})
407
- click_button
408
- end
409
-
410
- it "should send default empty text field values" do
411
- with_html <<-HTML
412
- <html>
413
- <form method="get" action="/login">
414
- <input id="user_email" name="user[email]" value="" type="text" />
415
- <input type="submit" />
416
- </form>
417
- </html>
418
- HTML
419
- webrat_session.should_receive(:get).with("/login", "user" => {"email" => ""})
420
- click_button
421
- end
422
-
423
- it "should recognize button tags" do
424
- with_html <<-HTML
425
- <html>
426
- <form method="get" action="/login">
427
- <input id="user_email" name="user[email]" value="" type="text" />
428
- <button type="submit" />
429
- </form>
430
- </html>
431
- HTML
432
- webrat_session.should_receive(:get).with("/login", "user" => {"email" => ""})
433
- click_button
434
- end
435
-
436
- it "should recognize input tags with the type button" do
437
- with_html <<-HTML
438
- <html>
439
- <form action="/">
440
- <input type="button" />
441
- </form>
442
- </html>
443
- HTML
444
- webrat_session.should_receive(:get)
445
- click_button
446
- end
447
-
448
- it "should recognize image button tags" do
449
- with_html <<-HTML
450
- <html>
451
- <form action="/">
452
- <input type="image" />
453
- </form>
454
- </html>
455
- HTML
456
- webrat_session.should_receive(:get)
457
- click_button
458
- end
459
-
460
- it "should find buttons by their IDs" do
461
- with_html <<-HTML
462
- <html>
463
- <form action="/">
464
- <input type="submit" id="my_button" />
465
- </form>
466
- </html>
467
- HTML
468
- webrat_session.should_receive(:get)
469
- click_button "my_button"
470
- end
471
-
472
- it "should find image buttons by their alt text" do
473
- with_html <<-HTML
474
- <html>
475
- <form action="/">
476
- <input type="image" alt="Go" />
477
- </form>
478
- </html>
479
- HTML
480
- webrat_session.should_receive(:get)
481
- click_button "Go"
482
- end
483
-
484
- it "should recognize button tags by content" do
485
- with_html <<-HTML
486
- <html>
487
- <form method="get" action="/login">
488
- <input id="user_email" name="user[email]" value="" type="text" />
489
- <button type="submit">Login</button>
490
- </form>
491
- </html>
492
- HTML
493
- webrat_session.should_receive(:get).with("/login", "user" => {"email" => ""})
494
- click_button "Login"
495
- end
496
- end