integrity 0.1.9 → 0.1.9.1

Sign up to get free protection for your applications and to get access to all the features.
Files changed (199) hide show
  1. data/Rakefile +57 -31
  2. data/config/heroku/.gems +4 -0
  3. data/config/heroku/Rakefile +6 -0
  4. data/config/heroku/config.ru +7 -0
  5. data/config/heroku/integrity-config.rb +11 -0
  6. data/integrity.gemspec +123 -0
  7. data/lib/integrity.rb +7 -14
  8. data/lib/integrity/installer.rb +45 -35
  9. data/lib/integrity/notifier/test.rb +59 -0
  10. data/lib/integrity/notifier/test/fixtures.rb +108 -0
  11. data/lib/integrity/notifier/test/hpricot_matcher.rb +38 -0
  12. data/test/acceptance/build_notifications_test.rb +2 -2
  13. data/test/acceptance/installer_test.rb +25 -7
  14. data/test/helpers.rb +1 -1
  15. data/test/helpers/acceptance.rb +1 -4
  16. data/test/helpers/fixtures.rb +0 -22
  17. data/test/unit/notifier/test_test.rb +29 -0
  18. data/test/unit/project_builder_test.rb +4 -1
  19. data/vendor/sinatra-ditties/README.rdoc +3 -0
  20. data/vendor/sinatra-ditties/lib/sinatra/ditties.rb +12 -0
  21. data/vendor/sinatra-ditties/lib/sinatra/ditties/authorization.rb +61 -0
  22. data/vendor/sinatra-ditties/lib/sinatra/ditties/mailer.rb +146 -0
  23. metadata +79 -318
  24. data/VERSION.yml +0 -4
  25. data/config/config.ru +0 -29
  26. data/config/config.yml +0 -34
  27. data/lib/integrity/notifier/test_helpers.rb +0 -100
  28. data/vendor/webrat/History.txt +0 -306
  29. data/vendor/webrat/MIT-LICENSE.txt +0 -19
  30. data/vendor/webrat/README.rdoc +0 -85
  31. data/vendor/webrat/Rakefile +0 -151
  32. data/vendor/webrat/install.rb +0 -1
  33. data/vendor/webrat/lib/webrat.rb +0 -34
  34. data/vendor/webrat/lib/webrat/core.rb +0 -14
  35. data/vendor/webrat/lib/webrat/core/configuration.rb +0 -98
  36. data/vendor/webrat/lib/webrat/core/elements/area.rb +0 -31
  37. data/vendor/webrat/lib/webrat/core/elements/element.rb +0 -33
  38. data/vendor/webrat/lib/webrat/core/elements/field.rb +0 -403
  39. data/vendor/webrat/lib/webrat/core/elements/form.rb +0 -103
  40. data/vendor/webrat/lib/webrat/core/elements/label.rb +0 -31
  41. data/vendor/webrat/lib/webrat/core/elements/link.rb +0 -90
  42. data/vendor/webrat/lib/webrat/core/elements/select_option.rb +0 -35
  43. data/vendor/webrat/lib/webrat/core/locators.rb +0 -20
  44. data/vendor/webrat/lib/webrat/core/locators/area_locator.rb +0 -38
  45. data/vendor/webrat/lib/webrat/core/locators/button_locator.rb +0 -54
  46. data/vendor/webrat/lib/webrat/core/locators/field_by_id_locator.rb +0 -37
  47. data/vendor/webrat/lib/webrat/core/locators/field_labeled_locator.rb +0 -56
  48. data/vendor/webrat/lib/webrat/core/locators/field_locator.rb +0 -25
  49. data/vendor/webrat/lib/webrat/core/locators/field_named_locator.rb +0 -41
  50. data/vendor/webrat/lib/webrat/core/locators/form_locator.rb +0 -19
  51. data/vendor/webrat/lib/webrat/core/locators/label_locator.rb +0 -34
  52. data/vendor/webrat/lib/webrat/core/locators/link_locator.rb +0 -66
  53. data/vendor/webrat/lib/webrat/core/locators/locator.rb +0 -20
  54. data/vendor/webrat/lib/webrat/core/locators/select_option_locator.rb +0 -59
  55. data/vendor/webrat/lib/webrat/core/logging.rb +0 -21
  56. data/vendor/webrat/lib/webrat/core/matchers.rb +0 -4
  57. data/vendor/webrat/lib/webrat/core/matchers/have_content.rb +0 -73
  58. data/vendor/webrat/lib/webrat/core/matchers/have_selector.rb +0 -74
  59. data/vendor/webrat/lib/webrat/core/matchers/have_tag.rb +0 -21
  60. data/vendor/webrat/lib/webrat/core/matchers/have_xpath.rb +0 -147
  61. data/vendor/webrat/lib/webrat/core/methods.rb +0 -61
  62. data/vendor/webrat/lib/webrat/core/mime.rb +0 -29
  63. data/vendor/webrat/lib/webrat/core/save_and_open_page.rb +0 -50
  64. data/vendor/webrat/lib/webrat/core/scope.rb +0 -350
  65. data/vendor/webrat/lib/webrat/core/session.rb +0 -281
  66. data/vendor/webrat/lib/webrat/core/xml.rb +0 -115
  67. data/vendor/webrat/lib/webrat/core/xml/hpricot.rb +0 -19
  68. data/vendor/webrat/lib/webrat/core/xml/nokogiri.rb +0 -76
  69. data/vendor/webrat/lib/webrat/core/xml/rexml.rb +0 -24
  70. data/vendor/webrat/lib/webrat/core_extensions/blank.rb +0 -58
  71. data/vendor/webrat/lib/webrat/core_extensions/deprecate.rb +0 -8
  72. data/vendor/webrat/lib/webrat/core_extensions/detect_mapped.rb +0 -12
  73. data/vendor/webrat/lib/webrat/core_extensions/meta_class.rb +0 -6
  74. data/vendor/webrat/lib/webrat/core_extensions/nil_to_param.rb +0 -5
  75. data/vendor/webrat/lib/webrat/mechanize.rb +0 -74
  76. data/vendor/webrat/lib/webrat/merb.rb +0 -9
  77. data/vendor/webrat/lib/webrat/merb_session.rb +0 -65
  78. data/vendor/webrat/lib/webrat/rack.rb +0 -24
  79. data/vendor/webrat/lib/webrat/rails.rb +0 -105
  80. data/vendor/webrat/lib/webrat/rspec-rails.rb +0 -13
  81. data/vendor/webrat/lib/webrat/selenium.rb +0 -154
  82. data/vendor/webrat/lib/webrat/selenium/location_strategy_javascript/button.js +0 -12
  83. data/vendor/webrat/lib/webrat/selenium/location_strategy_javascript/label.js +0 -16
  84. data/vendor/webrat/lib/webrat/selenium/location_strategy_javascript/webrat.js +0 -5
  85. data/vendor/webrat/lib/webrat/selenium/location_strategy_javascript/webratlink.js +0 -9
  86. data/vendor/webrat/lib/webrat/selenium/location_strategy_javascript/webratlinkwithin.js +0 -15
  87. data/vendor/webrat/lib/webrat/selenium/location_strategy_javascript/webratselectwithoption.js +0 -5
  88. data/vendor/webrat/lib/webrat/selenium/matchers.rb +0 -4
  89. data/vendor/webrat/lib/webrat/selenium/matchers/have_content.rb +0 -66
  90. data/vendor/webrat/lib/webrat/selenium/matchers/have_selector.rb +0 -49
  91. data/vendor/webrat/lib/webrat/selenium/matchers/have_tag.rb +0 -72
  92. data/vendor/webrat/lib/webrat/selenium/matchers/have_xpath.rb +0 -45
  93. data/vendor/webrat/lib/webrat/selenium/selenium_extensions.js +0 -6
  94. data/vendor/webrat/lib/webrat/selenium/selenium_session.rb +0 -247
  95. data/vendor/webrat/lib/webrat/sinatra.rb +0 -44
  96. data/vendor/webrat/spec/fakes/test_session.rb +0 -34
  97. data/vendor/webrat/spec/integration/merb/Rakefile +0 -35
  98. data/vendor/webrat/spec/integration/merb/app/controllers/application.rb +0 -2
  99. data/vendor/webrat/spec/integration/merb/app/controllers/exceptions.rb +0 -13
  100. data/vendor/webrat/spec/integration/merb/app/controllers/testing.rb +0 -18
  101. data/vendor/webrat/spec/integration/merb/app/views/exceptions/not_acceptable.html.erb +0 -63
  102. data/vendor/webrat/spec/integration/merb/app/views/exceptions/not_found.html.erb +0 -47
  103. data/vendor/webrat/spec/integration/merb/app/views/layout/application.html.erb +0 -12
  104. data/vendor/webrat/spec/integration/merb/app/views/testing/show_form.html.erb +0 -27
  105. data/vendor/webrat/spec/integration/merb/config/environments/development.rb +0 -15
  106. data/vendor/webrat/spec/integration/merb/config/environments/rake.rb +0 -11
  107. data/vendor/webrat/spec/integration/merb/config/environments/test.rb +0 -14
  108. data/vendor/webrat/spec/integration/merb/config/init.rb +0 -25
  109. data/vendor/webrat/spec/integration/merb/config/rack.rb +0 -11
  110. data/vendor/webrat/spec/integration/merb/config/router.rb +0 -33
  111. data/vendor/webrat/spec/integration/merb/spec/spec.opts +0 -1
  112. data/vendor/webrat/spec/integration/merb/spec/spec_helper.rb +0 -24
  113. data/vendor/webrat/spec/integration/merb/spec/webrat_spec.rb +0 -32
  114. data/vendor/webrat/spec/integration/merb/tasks/merb.thor/app_script.rb +0 -31
  115. data/vendor/webrat/spec/integration/merb/tasks/merb.thor/common.rb +0 -64
  116. data/vendor/webrat/spec/integration/merb/tasks/merb.thor/gem_ext.rb +0 -124
  117. data/vendor/webrat/spec/integration/merb/tasks/merb.thor/main.thor +0 -150
  118. data/vendor/webrat/spec/integration/merb/tasks/merb.thor/ops.rb +0 -93
  119. data/vendor/webrat/spec/integration/merb/tasks/merb.thor/utils.rb +0 -40
  120. data/vendor/webrat/spec/integration/rails/Rakefile +0 -30
  121. data/vendor/webrat/spec/integration/rails/app/controllers/application.rb +0 -15
  122. data/vendor/webrat/spec/integration/rails/app/controllers/webrat_controller.rb +0 -39
  123. data/vendor/webrat/spec/integration/rails/app/views/webrat/before_redirect_form.html.erb +0 -4
  124. data/vendor/webrat/spec/integration/rails/app/views/webrat/form.html.erb +0 -28
  125. data/vendor/webrat/spec/integration/rails/config/boot.rb +0 -109
  126. data/vendor/webrat/spec/integration/rails/config/environment.rb +0 -12
  127. data/vendor/webrat/spec/integration/rails/config/environments/development.rb +0 -17
  128. data/vendor/webrat/spec/integration/rails/config/environments/selenium.rb +0 -22
  129. data/vendor/webrat/spec/integration/rails/config/environments/test.rb +0 -22
  130. data/vendor/webrat/spec/integration/rails/config/initializers/inflections.rb +0 -10
  131. data/vendor/webrat/spec/integration/rails/config/initializers/mime_types.rb +0 -5
  132. data/vendor/webrat/spec/integration/rails/config/initializers/new_rails_defaults.rb +0 -17
  133. data/vendor/webrat/spec/integration/rails/config/locales/en.yml +0 -5
  134. data/vendor/webrat/spec/integration/rails/config/routes.rb +0 -14
  135. data/vendor/webrat/spec/integration/rails/public/404.html +0 -30
  136. data/vendor/webrat/spec/integration/rails/public/422.html +0 -30
  137. data/vendor/webrat/spec/integration/rails/public/500.html +0 -33
  138. data/vendor/webrat/spec/integration/rails/script/about +0 -4
  139. data/vendor/webrat/spec/integration/rails/script/console +0 -3
  140. data/vendor/webrat/spec/integration/rails/script/dbconsole +0 -3
  141. data/vendor/webrat/spec/integration/rails/script/destroy +0 -3
  142. data/vendor/webrat/spec/integration/rails/script/generate +0 -3
  143. data/vendor/webrat/spec/integration/rails/script/performance/benchmarker +0 -3
  144. data/vendor/webrat/spec/integration/rails/script/performance/profiler +0 -3
  145. data/vendor/webrat/spec/integration/rails/script/performance/request +0 -3
  146. data/vendor/webrat/spec/integration/rails/script/plugin +0 -3
  147. data/vendor/webrat/spec/integration/rails/script/process/inspector +0 -3
  148. data/vendor/webrat/spec/integration/rails/script/process/reaper +0 -3
  149. data/vendor/webrat/spec/integration/rails/script/process/spawner +0 -3
  150. data/vendor/webrat/spec/integration/rails/script/runner +0 -3
  151. data/vendor/webrat/spec/integration/rails/script/server +0 -3
  152. data/vendor/webrat/spec/integration/rails/test/integration/webrat_test.rb +0 -80
  153. data/vendor/webrat/spec/integration/rails/test/test_helper.rb +0 -25
  154. data/vendor/webrat/spec/integration/sinatra/Rakefile +0 -5
  155. data/vendor/webrat/spec/integration/sinatra/classic_app.rb +0 -64
  156. data/vendor/webrat/spec/integration/sinatra/modular_app.rb +0 -16
  157. data/vendor/webrat/spec/integration/sinatra/test/classic_app_test.rb +0 -37
  158. data/vendor/webrat/spec/integration/sinatra/test/modular_app_test.rb +0 -18
  159. data/vendor/webrat/spec/integration/sinatra/test/test_helper.rb +0 -16
  160. data/vendor/webrat/spec/private/core/configuration_spec.rb +0 -104
  161. data/vendor/webrat/spec/private/core/field_spec.rb +0 -67
  162. data/vendor/webrat/spec/private/core/link_spec.rb +0 -24
  163. data/vendor/webrat/spec/private/core/logging_spec.rb +0 -10
  164. data/vendor/webrat/spec/private/core/session_spec.rb +0 -198
  165. data/vendor/webrat/spec/private/mechanize/mechanize_session_spec.rb +0 -81
  166. data/vendor/webrat/spec/private/merb/merb_session_spec.rb +0 -42
  167. data/vendor/webrat/spec/private/nokogiri_spec.rb +0 -77
  168. data/vendor/webrat/spec/private/rails/attaches_file_spec.rb +0 -81
  169. data/vendor/webrat/spec/private/rails/rails_session_spec.rb +0 -110
  170. data/vendor/webrat/spec/private/selenium/selenium_session_spec.rb +0 -44
  171. data/vendor/webrat/spec/private/selenium/selenium_spec.rb +0 -109
  172. data/vendor/webrat/spec/public/basic_auth_spec.rb +0 -24
  173. data/vendor/webrat/spec/public/check_spec.rb +0 -191
  174. data/vendor/webrat/spec/public/choose_spec.rb +0 -118
  175. data/vendor/webrat/spec/public/click_area_spec.rb +0 -106
  176. data/vendor/webrat/spec/public/click_button_spec.rb +0 -502
  177. data/vendor/webrat/spec/public/click_link_spec.rb +0 -469
  178. data/vendor/webrat/spec/public/fill_in_spec.rb +0 -209
  179. data/vendor/webrat/spec/public/locators/field_by_xpath_spec.rb +0 -19
  180. data/vendor/webrat/spec/public/locators/field_labeled_spec.rb +0 -157
  181. data/vendor/webrat/spec/public/locators/field_with_id_spec.rb +0 -16
  182. data/vendor/webrat/spec/public/matchers/contain_spec.rb +0 -114
  183. data/vendor/webrat/spec/public/matchers/have_selector_spec.rb +0 -135
  184. data/vendor/webrat/spec/public/matchers/have_tag_spec.rb +0 -39
  185. data/vendor/webrat/spec/public/matchers/have_xpath_spec.rb +0 -123
  186. data/vendor/webrat/spec/public/reload_spec.rb +0 -10
  187. data/vendor/webrat/spec/public/save_and_open_spec.rb +0 -51
  188. data/vendor/webrat/spec/public/select_date_spec.rb +0 -88
  189. data/vendor/webrat/spec/public/select_datetime_spec.rb +0 -106
  190. data/vendor/webrat/spec/public/select_spec.rb +0 -246
  191. data/vendor/webrat/spec/public/select_time_spec.rb +0 -79
  192. data/vendor/webrat/spec/public/set_hidden_field_spec.rb +0 -5
  193. data/vendor/webrat/spec/public/submit_form_spec.rb +0 -5
  194. data/vendor/webrat/spec/public/visit_spec.rb +0 -58
  195. data/vendor/webrat/spec/public/within_spec.rb +0 -177
  196. data/vendor/webrat/spec/rcov.opts +0 -1
  197. data/vendor/webrat/spec/spec.opts +0 -2
  198. data/vendor/webrat/spec/spec_helper.rb +0 -50
  199. data/vendor/webrat/vendor/selenium-server.jar +0 -0
@@ -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,502 +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
- spec = lambda 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
-
347
- if Webrat.on_java?
348
- spec.call
349
- else
350
- pending("needs bug fix", &spec)
351
- end
352
- end
353
-
354
- it "should send default selected option value from select" do
355
- with_html <<-HTML
356
- <html>
357
- <form method="get" action="/login">
358
- <select name="month">
359
- <option value="1">January</option>
360
- <option value="2" selected="selected">February</option>
361
- </select>
362
- <input type="submit" />
363
- </form>
364
- </html>
365
- HTML
366
- webrat_session.should_receive(:get).with("/login", "month" => "2")
367
- click_button
368
- end
369
-
370
- it "should send default selected option inner html from select when no value attribute" do
371
- with_html <<-HTML
372
- <html>
373
- <form method="get" action="/login">
374
- <select name="month">
375
- <option>January</option>
376
- <option selected="selected">February</option>
377
- </select>
378
- <input type="submit" />
379
- </form>
380
- </html>
381
- HTML
382
- webrat_session.should_receive(:get).with("/login", "month" => "February")
383
- click_button
384
- end
385
-
386
- it "should send first select option value when no option selected" do
387
- with_html <<-HTML
388
- <html>
389
- <form method="get" action="/login">
390
- <select name="month">
391
- <option value="1">January</option>
392
- <option value="2">February</option>
393
- </select>
394
- <input type="submit" />
395
- </form>
396
- </html>
397
- HTML
398
- webrat_session.should_receive(:get).with("/login", "month" => "1")
399
- click_button
400
- end
401
-
402
- it "should handle nested properties" do
403
- with_html <<-HTML
404
- <html>
405
- <form method="post" action="/login">
406
- <input type="text" id="contestant_scores_12" name="contestant[scores][1]" value="2"/>
407
- <input type="text" id="contestant_scores_13" name="contestant[scores][3]" value="4"/>
408
- <input type="submit" />
409
- </form>
410
- </html>
411
- HTML
412
- webrat_session.should_receive(:post).with("/login", "contestant" => {"scores" => {'1' => '2', '3' => '4'}})
413
- click_button
414
- end
415
-
416
- it "should send default empty text field values" do
417
- with_html <<-HTML
418
- <html>
419
- <form method="get" action="/login">
420
- <input id="user_email" name="user[email]" value="" type="text" />
421
- <input type="submit" />
422
- </form>
423
- </html>
424
- HTML
425
- webrat_session.should_receive(:get).with("/login", "user" => {"email" => ""})
426
- click_button
427
- end
428
-
429
- it "should recognize button tags" do
430
- with_html <<-HTML
431
- <html>
432
- <form method="get" action="/login">
433
- <input id="user_email" name="user[email]" value="" type="text" />
434
- <button type="submit" />
435
- </form>
436
- </html>
437
- HTML
438
- webrat_session.should_receive(:get).with("/login", "user" => {"email" => ""})
439
- click_button
440
- end
441
-
442
- it "should recognize input tags with the type button" do
443
- with_html <<-HTML
444
- <html>
445
- <form action="/">
446
- <input type="button" />
447
- </form>
448
- </html>
449
- HTML
450
- webrat_session.should_receive(:get)
451
- click_button
452
- end
453
-
454
- it "should recognize image button tags" do
455
- with_html <<-HTML
456
- <html>
457
- <form action="/">
458
- <input type="image" />
459
- </form>
460
- </html>
461
- HTML
462
- webrat_session.should_receive(:get)
463
- click_button
464
- end
465
-
466
- it "should find buttons by their IDs" do
467
- with_html <<-HTML
468
- <html>
469
- <form action="/">
470
- <input type="submit" id="my_button" />
471
- </form>
472
- </html>
473
- HTML
474
- webrat_session.should_receive(:get)
475
- click_button "my_button"
476
- end
477
-
478
- it "should find image buttons by their alt text" do
479
- with_html <<-HTML
480
- <html>
481
- <form action="/">
482
- <input type="image" alt="Go" />
483
- </form>
484
- </html>
485
- HTML
486
- webrat_session.should_receive(:get)
487
- click_button "Go"
488
- end
489
-
490
- it "should recognize button tags by content" do
491
- with_html <<-HTML
492
- <html>
493
- <form method="get" action="/login">
494
- <input id="user_email" name="user[email]" value="" type="text" />
495
- <button type="submit">Login</button>
496
- </form>
497
- </html>
498
- HTML
499
- webrat_session.should_receive(:get).with("/login", "user" => {"email" => ""})
500
- click_button "Login"
501
- end
502
- end