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,67 +0,0 @@
1
- require File.expand_path(File.dirname(__FILE__) + "/../../spec_helper")
2
-
3
- module Webrat
4
- describe Field do
5
- it "should have nice inspect output" do
6
- html = <<-HTML
7
- <html>
8
- <input type='checkbox' checked='checked' />
9
- </html>
10
- HTML
11
-
12
- element = Webrat::XML.css_search(Webrat::XML.document(html), "input").first
13
- checkbox = CheckboxField.new(nil, element)
14
- checkbox.inspect.should =~ /#<Webrat::CheckboxField @element=<input type=['"]checkbox['"] checked(=['"]checked['"])?\/?>>/
15
- end
16
- end
17
-
18
- describe CheckboxField do
19
- it "should say it is checked if it is" do
20
- html = <<-HTML
21
- <html>
22
- <input type='checkbox' checked='checked' />
23
- </html>
24
- HTML
25
-
26
- element = Webrat::XML.css_search(Webrat::XML.document(html), "input").first
27
- checkbox = CheckboxField.new(nil, element)
28
- checkbox.should be_checked
29
- end
30
-
31
- it "should say it is not checked if it is not" do
32
- html = <<-HTML
33
- <html>
34
- <input type='checkbox' />
35
- </html>
36
- HTML
37
-
38
- element = Webrat::XML.css_search(Webrat::XML.document(html), "input").first
39
- checkbox = CheckboxField.new(nil, element)
40
- checkbox.should_not be_checked
41
- end
42
- end
43
-
44
- describe RadioField do
45
- it "should say it is checked if it is" do
46
- html = <<-HTML
47
- <html>
48
- <input type='radio' checked='checked' />
49
- </html>
50
- HTML
51
-
52
- element = Webrat::XML.css_search(Webrat::XML.document(html), "input").first
53
- radio_button = RadioField.new(nil, element)
54
- radio_button.should be_checked
55
- end
56
-
57
- it "should say it is not checked if it is not" do
58
- html = <<-HTML
59
- <html><input type='radio' /></html>
60
- HTML
61
-
62
- element = Webrat::XML.css_search(Webrat::XML.document(html), "input").first
63
- radio_button = RadioField.new(nil, element)
64
- radio_button.should_not be_checked
65
- end
66
- end
67
- end
@@ -1,24 +0,0 @@
1
- require File.expand_path(File.dirname(__FILE__) + "/../../spec_helper")
2
-
3
- describe Webrat::Link do
4
- # include Webrat::Link
5
-
6
- before do
7
- webrat_session = mock(Webrat::TestSession)
8
- @link_text_with_nbsp = 'Link' + [0xA0].pack("U") + 'Text'
9
- end
10
-
11
- it "should pass through relative urls" do
12
- link = Webrat::Link.new(webrat_session, {"href" => "/path"})
13
- webrat_session.should_receive(:request_page).with("/path", :get, {})
14
- link.click
15
- end
16
-
17
- it "shouldnt put base url onto " do
18
- url = "https://www.example.com/path"
19
- webrat_session.should_receive(:request_page).with(url, :get, {})
20
- link = Webrat::Link.new(webrat_session, {"href" => url})
21
- link.click
22
- end
23
-
24
- end
@@ -1,10 +0,0 @@
1
- require File.expand_path(File.dirname(__FILE__) + "/../../spec_helper")
2
-
3
- describe Webrat::Logging do
4
-
5
- it "should not log if there is no logger" do
6
- klass = Class.new
7
- klass.send(:include, Webrat::Logging)
8
- klass.new.debug_log "Testing"
9
- end
10
- end
@@ -1,198 +0,0 @@
1
- require File.expand_path(File.dirname(__FILE__) + "/../../spec_helper")
2
-
3
- describe Webrat::Session do
4
-
5
- it "should not have a doc_root" do
6
- session = Webrat::Session.new
7
- session.doc_root.should be_nil
8
- end
9
-
10
- it "should expose the current_dom" do
11
- session = Webrat::Session.new
12
-
13
- def session.response
14
- Object.new
15
- end
16
-
17
- def session.response_body
18
- "<html></html>"
19
- end
20
-
21
- session.should respond_to(:current_dom)
22
- end
23
-
24
- it "should open the page in the browser in MacOSX" do
25
- session = Webrat::Session.new
26
- session.stub!(:ruby_platform => 'darwin')
27
- session.should_receive(:`).with("open path")
28
- session.open_in_browser("path")
29
- end
30
-
31
- it "should open the page in the browser in cygwin" do
32
- session = Webrat::Session.new
33
- session.stub!(:ruby_platform => 'i386-cygwin')
34
- session.should_receive(:`).with("rundll32 url.dll,FileProtocolHandler path\\to\\file")
35
- session.open_in_browser("path/to/file")
36
- end
37
-
38
- it "should open the page in the browser in Win32" do
39
- session = Webrat::Session.new
40
- session.stub!(:ruby_platform => 'win32')
41
- session.should_receive(:`).with("rundll32 url.dll,FileProtocolHandler path\\to\\file")
42
- session.open_in_browser("path/to/file")
43
- end
44
-
45
- it "should provide a current_page for backwards compatibility" do
46
- session = Webrat::Session.new
47
- current_page = session.current_page
48
- current_page.should_not be_nil
49
- current_page.should respond_to(:url)
50
- end
51
-
52
- it "should allow custom headers to be set" do
53
- session = Webrat::Session.new
54
- session.header('Accept', 'application/xml')
55
-
56
- session.instance_variable_get(:@custom_headers)['Accept'].should == 'application/xml'
57
- end
58
-
59
- it "should return a copy of the headers to be sent" do
60
- session = Webrat::Session.new
61
- session.instance_eval {
62
- @default_headers = {'HTTP_X_FORWARDED_FOR' => '192.168.1.1'}
63
- @custom_headers = {'Accept' => 'application/xml'}
64
- }
65
- session.headers.should == {'HTTP_X_FORWARDED_FOR' => '192.168.1.1', 'Accept' => 'application/xml'}
66
- end
67
-
68
- describe "#http_accept" do
69
- before(:each) do
70
- webrat_session = Webrat::Session.new
71
- end
72
-
73
- it "should set the Accept header with the string Mime type" do
74
- webrat_session.http_accept('application/xml')
75
- webrat_session.headers['Accept'].should == 'application/xml'
76
- end
77
-
78
- it "should set the Accept head with the string value of the symbol Mime type" do
79
- webrat_session.http_accept(:xml)
80
- webrat_session.headers['Accept'].should == 'application/xml'
81
- end
82
-
83
- it "should raise an error if a symbol Mime type is passed that does not exist" do
84
- lambda { webrat_session.http_accept(:oogabooga) }.should raise_error(ArgumentError)
85
- end
86
- end
87
-
88
- describe "#request_page" do
89
- before(:each) do
90
- webrat_session = Webrat::Session.new
91
- end
92
-
93
- it "should raise an error if the request is not a success" do
94
- webrat_session.stub!(:get)
95
- webrat_session.stub!(:response_body => "Exception caught")
96
- webrat_session.stub!(:response_code => 500)
97
- webrat_session.stub!(:formatted_error => "application error")
98
- webrat_session.stub!(:save_and_open_page)
99
-
100
- lambda { webrat_session.request_page('some url', :get, {}) }.should raise_error(Webrat::PageLoadError)
101
- end
102
-
103
- it "should raise an error but not open if the request is not a success and config quashes save_and_open" do
104
- Webrat.configure do |config|
105
- config.open_error_files = false
106
- end
107
- webrat_session.stub!(:get)
108
- webrat_session.stub!(:response_body => "Exception caught")
109
- webrat_session.stub!(:response_code => 500)
110
- webrat_session.stub!(:formatted_error => "application error")
111
- webrat_session.should_not_receive(:save_and_open_page)
112
-
113
- lambda { webrat_session.request_page('some url', :get, {}) }.should raise_error(Webrat::PageLoadError)
114
- end
115
-
116
- it "should now follow external redirects" do
117
- webrat_session.should_receive(:internal_redirect?).and_return(false)
118
-
119
- webrat_session.request_page("/oldurl", :get, {})
120
-
121
- webrat_session.current_url.should == "/oldurl"
122
- end
123
- end
124
-
125
- describe "#redirect?" do
126
- before(:each) do
127
- webrat_session = Webrat::Session.new
128
- end
129
-
130
- it "should return true if the last response was a redirect" do
131
- webrat_session.stub!(:response_code => 301)
132
- webrat_session.redirect?.should be_true
133
- end
134
-
135
- it "should return false if the last response wasn't a redirect" do
136
- webrat_session.stub!(:response_code => 200)
137
- webrat_session.redirect?.should be_false
138
- end
139
- end
140
-
141
- describe "#internal_redirect?" do
142
- before(:each) do
143
- webrat_session = Webrat::Session.new
144
- end
145
-
146
- it "should return true if the last response was a redirect and the host of the current_url matches that of the response location" do
147
- webrat_session.stub!(:redirect? => true)
148
- webrat_session.stub!(:current_url => "http://example.com")
149
- webrat_session.stub!(:response_location => "http://example.com")
150
- webrat_session.internal_redirect?.should be_true
151
- end
152
-
153
- it "should return true if the last response was a redirect and the hosts are the same but the subdomains are different" do
154
- webrat_session.stub!(:redirect? => true)
155
- webrat_session.stub!(:current_url => "http://example.com")
156
- webrat_session.stub!(:response_location => "http://myName.example.com")
157
- webrat_session.internal_redirect?.should be_true
158
- end
159
-
160
- it "should return false if the last response was not a redirect" do
161
- webrat_session.stub!(:redirect? => false)
162
- webrat_session.internal_redirect?.should be_false
163
- end
164
-
165
- it "should return false if the last response was a redirect but the host of the current_url doesn't matches that of the response location" do
166
- webrat_session.stub!(:redirect? => true)
167
- webrat_session.stub!(:current_url => "http://example.com")
168
- webrat_session.stub!(:response_location => "http://google.com")
169
- webrat_session.internal_redirect?.should be_false
170
- end
171
-
172
- it "should return false if the last response was a redirect but the host of the current_url doesn't matches that of the response location, but they have the same subdomain" do
173
- webrat_session.stub!(:redirect? => true)
174
- webrat_session.stub!(:current_url => "http://login.example.com")
175
- webrat_session.stub!(:response_location => "http://login.google.com")
176
- webrat_session.internal_redirect?.should be_false
177
- end
178
- end
179
-
180
- describe "#redirected_to" do
181
- before(:each) do
182
- webrat_session = Webrat::Session.new
183
- end
184
-
185
- it "should return nil if not redirected" do
186
- webrat_session.stub!(:redirect? => false)
187
- webrat_session.redirected_to.should be_nil
188
- end
189
-
190
- it "should return the response_location if redirected" do
191
- webrat_session.stub!(:redirect? => true)
192
- webrat_session.stub!(:response_location => "http://www.example.com")
193
- webrat_session.redirected_to.should == "http://www.example.com"
194
- end
195
-
196
- end
197
-
198
- end
@@ -1,81 +0,0 @@
1
- require File.expand_path(File.dirname(__FILE__) + '/../../spec_helper')
2
-
3
- require "webrat/mechanize"
4
-
5
- describe Webrat::MechanizeSession do
6
- before :each do
7
- Webrat.configuration.mode = :mechanize
8
- end
9
-
10
- before(:each) do
11
- @mech = Webrat::MechanizeSession.new
12
- end
13
-
14
- describe "headers method" do
15
- it "should return empty headers for a newly initialized session" do
16
- @mech.headers.should == {}
17
- end
18
- end
19
-
20
- describe "post" do
21
- def url
22
- 'http://test.host/users'
23
- end
24
-
25
- def data
26
- {:user => {:first_name => 'Nancy', :last_name => 'Callahan'}}
27
- end
28
-
29
- def flattened_data
30
- {'user[first_name]' => 'Nancy', 'user[last_name]' => 'Callahan'}
31
- end
32
-
33
- it "should flatten model post data" do
34
- mechanize = mock(:mechanize)
35
- WWW::Mechanize.stub!(:new => mechanize)
36
- mechanize.should_receive(:post).with(url, flattened_data)
37
- Webrat::MechanizeSession.new.post(url, data)
38
- end
39
- end
40
-
41
- describe "#absolute_url" do
42
- before(:each) do
43
- @session = Webrat::MechanizeSession.new
44
- @session.stub!(:current_url).and_return(absolute_url)
45
- end
46
-
47
- def absolute_url
48
- 'http://test.host/users/fred/cabbages'
49
- end
50
-
51
- def rooted_url
52
- '/users/fred/cabbages'
53
- end
54
-
55
- def relative_url
56
- '../../wilma'
57
- end
58
-
59
- it "should return unmodified url if prefixed with scheme" do
60
- @session.absolute_url(absolute_url).should == absolute_url
61
- end
62
-
63
- it "should prefix scheme and hostname if url begins with /" do
64
- @session.absolute_url(rooted_url).should == absolute_url
65
- end
66
-
67
- it "should resolve sibling URLs relative to current path" do
68
- @session.absolute_url(relative_url).should == 'http://test.host/users/wilma'
69
- end
70
-
71
- it "should cope with sibling URLs from root of site" do
72
- @session.stub!(:current_url).and_return('http://test.host')
73
- @session.absolute_url(relative_url).should == 'http://test.host/wilma'
74
- end
75
-
76
- it "should cope with https" do
77
- @session.stub!(:current_url).and_return('https://test.host')
78
- @session.absolute_url(relative_url).should == 'https://test.host/wilma'
79
- end
80
- end
81
- end
@@ -1,42 +0,0 @@
1
- require File.expand_path(File.dirname(__FILE__) + "/../../spec_helper")
2
-
3
- require "webrat/merb"
4
-
5
- describe Webrat::MerbSession do
6
- it "should not pass empty params if data is and empty hash" do
7
- session = Webrat::MerbSession.new
8
- response = OpenStruct.new
9
- response.status = 200
10
- session.should_receive(:request).with('url', {:params=> nil, :method=>"GET", :headers=>nil}).and_return(response)
11
- session.get('url', {}, nil)
12
- end
13
-
14
- %w{post put delete}.each do |request_method|
15
- it "should call do request with method #{request_method.upcase} for a #{request_method} call" do
16
- session = Webrat::MerbSession.new
17
- response = OpenStruct.new
18
- response.status = 200
19
-
20
- session.should_receive(:request).with('url', {:params=>nil, :method=>request_method.upcase, :headers=>nil}).and_return(response)
21
- session.send(request_method, 'url', {}, nil)
22
- end
23
- end
24
-
25
- context "a session with a response" do
26
- setup do
27
- @session = Webrat::MerbSession.new
28
- @response = OpenStruct.new
29
- @response.status = 200
30
- @response.body = 'test response'
31
- @session.instance_variable_set(:@response, @response)
32
- end
33
-
34
- it "should return body of a request as a response_body" do
35
- @session.response_body.should == @response.body
36
- end
37
-
38
- it "should return status of a request as a response_code" do
39
- @session.response_code.should == @response.status
40
- end
41
- end
42
- end
@@ -1,77 +0,0 @@
1
- require File.expand_path(File.dirname(__FILE__) + "/../spec_helper")
2
-
3
- if defined?(Nokogiri::XML) && Webrat.configuration.parse_with_nokogiri?
4
- describe "Nokogiri Extension" do
5
- include Webrat::Matchers
6
-
7
- def fail
8
- raise_error(Spec::Expectations::ExpectationNotMetError)
9
- end
10
-
11
- before(:each) do
12
- @text_and_password = <<-HTML
13
- <div>
14
- <input type="text"/>
15
- <input type="password"/>
16
- <span type="text"/>
17
- </div>
18
- HTML
19
-
20
- @text_only = <<-HTML
21
- <div>
22
- <input type="text" disabled="disabled" />
23
- </div>
24
- HTML
25
-
26
- @password_only = <<-HTML
27
- <div>
28
- <input type="password"/>
29
- <div>
30
- HTML
31
- end
32
-
33
- describe ":text" do
34
- it "passes have_selector(:text) if a node with type=text exists" do
35
- @text_and_password.should have_selector(":text")
36
- end
37
-
38
- it "passes not have_selector(:text) if no node with text=text exists" do
39
- @password_only.should_not have_selector(":text")
40
- end
41
-
42
- it "fails have_selector(:text) if no node with type=text exists" do
43
- lambda { @password_only.should have_selector(":text") }.should fail
44
- end
45
-
46
- it "fails not have_selector(:text) if a node with type=text exists" do
47
- lambda { @text_only.should_not have_selector(":text") }.should fail
48
- end
49
-
50
- it "works together with other selectors" do
51
- @text_and_password.should have_selector("input:text[type*='te']")
52
- end
53
- end
54
-
55
- describe ":password" do
56
- it "passes have_selector(:password) if a node with type=password exists" do
57
- @text_and_password.should have_selector(":password")
58
- end
59
-
60
- it "passes not have_selector(:text) if no node with text=text exists" do
61
- @text_only.should_not have_selector(":password")
62
- end
63
-
64
- it "fails have_selector(:password) if no node with type=password exists" do
65
- lambda { @text_only.should have_selector(":password") }.should fail
66
- end
67
-
68
- it "fails not have_selector(:password) if a node with type=password exists" do
69
- lambda { @password_only.should_not have_selector(":password") }.should fail
70
- end
71
-
72
- it "works together with other selectors" do
73
- @text_and_password.should have_selector("input:password[type*='pa']")
74
- end
75
- end
76
- end
77
- end