webmock 1.7.10 → 1.8.0
Sign up to get free protection for your applications and to get access to all the features.
- data/.travis.yml +2 -2
- data/CHANGELOG.md +98 -24
- data/Gemfile +2 -3
- data/README.md +45 -4
- data/Rakefile +2 -2
- data/lib/webmock.rb +3 -0
- data/lib/webmock/api.rb +34 -6
- data/lib/webmock/http_lib_adapters/curb_adapter.rb +4 -41
- data/lib/webmock/http_lib_adapters/em_http_request/em_http_request_1_x.rb +1 -1
- data/lib/webmock/http_lib_adapters/excon_adapter.rb +94 -0
- data/lib/webmock/http_lib_adapters/httpclient_adapter.rb +31 -4
- data/lib/webmock/http_lib_adapters/net_http.rb +2 -0
- data/lib/webmock/http_lib_adapters/typhoeus_hydra_adapter.rb +4 -3
- data/lib/webmock/matchers/hash_including_matcher.rb +25 -0
- data/lib/webmock/rack_response.rb +8 -1
- data/lib/webmock/request_pattern.rb +108 -77
- data/lib/webmock/request_signature.rb +1 -0
- data/lib/webmock/stub_registry.rb +9 -8
- data/lib/webmock/version.rb +1 -1
- data/lib/webmock/webmock.rb +5 -2
- data/minitest/webmock_spec.rb +22 -2
- data/spec/acceptance/curb/curb_spec_helper.rb +12 -2
- data/spec/acceptance/em_http_request/em_http_request_spec.rb +42 -33
- data/spec/acceptance/em_http_request/em_http_request_spec_helper.rb +4 -2
- data/spec/acceptance/excon/excon_spec.rb +15 -0
- data/spec/acceptance/excon/excon_spec_helper.rb +37 -0
- data/spec/acceptance/net_http/net_http_spec.rb +7 -0
- data/spec/acceptance/net_http/net_http_spec_helper.rb +3 -1
- data/spec/acceptance/patron/patron_spec.rb +12 -3
- data/spec/acceptance/patron/patron_spec_helper.rb +2 -2
- data/spec/acceptance/shared/allowing_and_disabling_net_connect.rb +3 -3
- data/spec/acceptance/shared/callbacks.rb +22 -6
- data/spec/acceptance/shared/complex_cross_concern_behaviors.rb +21 -0
- data/spec/acceptance/shared/enabling_and_disabling_webmock.rb +10 -11
- data/spec/acceptance/shared/precedence_of_stubs.rb +1 -1
- data/spec/acceptance/shared/request_expectations.rb +49 -3
- data/spec/acceptance/shared/returning_declared_responses.rb +9 -21
- data/spec/acceptance/shared/stubbing_requests.rb +80 -4
- data/spec/acceptance/typhoeus/typhoeus_hydra_spec_helper.rb +1 -1
- data/spec/acceptance/webmock_shared.rb +11 -8
- data/spec/spec_helper.rb +3 -3
- data/spec/support/my_rack_app.rb +25 -1
- data/spec/support/webmock_server.rb +9 -6
- data/spec/unit/rack_response_spec.rb +18 -0
- data/spec/unit/request_pattern_spec.rb +205 -96
- data/spec/unit/request_signature_spec.rb +36 -34
- data/spec/unit/util/uri_spec.rb +14 -2
- data/test/shared_test.rb +31 -2
- data/webmock.gemspec +9 -7
- metadata +86 -73
@@ -4,30 +4,31 @@ module WebMock
|
|
4
4
|
include Singleton
|
5
5
|
|
6
6
|
attr_accessor :request_stubs
|
7
|
-
attr_accessor :global_stub
|
8
7
|
|
9
8
|
def initialize
|
10
9
|
reset!
|
11
10
|
end
|
12
11
|
|
13
|
-
def
|
14
|
-
|
12
|
+
def global_stubs
|
13
|
+
@global_stubs ||= []
|
15
14
|
end
|
16
15
|
|
17
|
-
def
|
18
|
-
self.
|
16
|
+
def reset!
|
17
|
+
self.request_stubs = []
|
18
|
+
end
|
19
19
|
|
20
|
+
def register_global_stub(&block)
|
20
21
|
# This hash contains the responses returned by the block,
|
21
22
|
# keyed by the exact request (using the object_id).
|
22
23
|
# That way, there's no race condition in case #to_return
|
23
24
|
# doesn't run immediately after stub.with.
|
24
25
|
responses = {}
|
25
26
|
|
26
|
-
|
27
|
+
stub = ::WebMock::RequestStub.new(:any, /.*/).with { |request|
|
27
28
|
responses[request.object_id] = block.call(request)
|
28
29
|
}.to_return(lambda { |request| responses.delete(request.object_id) })
|
29
30
|
|
30
|
-
|
31
|
+
global_stubs.push stub
|
31
32
|
end
|
32
33
|
|
33
34
|
def register_request_stub(stub)
|
@@ -47,7 +48,7 @@ module WebMock
|
|
47
48
|
private
|
48
49
|
|
49
50
|
def request_stub_for(request_signature)
|
50
|
-
request_stubs.detect { |registered_request_stub|
|
51
|
+
(global_stubs + request_stubs).detect { |registered_request_stub|
|
51
52
|
registered_request_stub.request_pattern.matches?(request_signature)
|
52
53
|
}
|
53
54
|
end
|
data/lib/webmock/version.rb
CHANGED
data/lib/webmock/webmock.rb
CHANGED
@@ -59,7 +59,10 @@ module WebMock
|
|
59
59
|
end
|
60
60
|
Config.instance.allow_net_connect ||
|
61
61
|
(Config.instance.allow_localhost && WebMock::Util::URI.is_uri_localhost?(uri)) ||
|
62
|
-
Config.instance.allow && (
|
62
|
+
Config.instance.allow && (
|
63
|
+
(Config.instance.allow.kind_of?(Regexp) && uri.to_s =~ Config.instance.allow) ||
|
64
|
+
(Config.instance.allow.respond_to?(:include?) &&
|
65
|
+
Config.instance.allow.include?(uri.host) || Config.instance.allow.include?("#{uri.host}:#{uri.port}")))
|
63
66
|
end
|
64
67
|
|
65
68
|
def self.reset!
|
@@ -89,7 +92,7 @@ module WebMock
|
|
89
92
|
end
|
90
93
|
|
91
94
|
def self.globally_stub_request(&block)
|
92
|
-
WebMock::StubRegistry.instance.
|
95
|
+
WebMock::StubRegistry.instance.register_global_stub(&block)
|
93
96
|
end
|
94
97
|
|
95
98
|
%w(
|
data/minitest/webmock_spec.rb
CHANGED
@@ -4,8 +4,8 @@ require File.expand_path(File.dirname(__FILE__) + '/test_helper')
|
|
4
4
|
include HttpRequestTestHelper
|
5
5
|
|
6
6
|
before do
|
7
|
-
stub_http_request(:any, "http://www.example.com")
|
8
|
-
stub_http_request(:any, "https://www.example.com")
|
7
|
+
@stub_http = stub_http_request(:any, "http://www.example.com")
|
8
|
+
@stub_https = stub_http_request(:any, "https://www.example.com")
|
9
9
|
end
|
10
10
|
|
11
11
|
it "should raise error on non stubbed request" do
|
@@ -18,6 +18,18 @@ require File.expand_path(File.dirname(__FILE__) + '/test_helper')
|
|
18
18
|
assert_requested(:get, "http://www.example.com")
|
19
19
|
end
|
20
20
|
|
21
|
+
it "should verify that expected http stub occured" do
|
22
|
+
http_request(:get, "http://www.example.com/")
|
23
|
+
assert_requested(@stub_http, :times => 1)
|
24
|
+
assert_requested(@stub_http)
|
25
|
+
end
|
26
|
+
|
27
|
+
it "should verify that expected https stub occured" do
|
28
|
+
http_request(:get, "https://www.example.com/")
|
29
|
+
http_request(:get, "https://www.example.com/")
|
30
|
+
assert_requested(@stub_https, :times => 2)
|
31
|
+
end
|
32
|
+
|
21
33
|
it "should verify that expect request didn't occur" do
|
22
34
|
expected_message = "The request GET http://www.example.com/ was expected to execute 1 time but it executed 0 times"
|
23
35
|
expected_message << "\n\nThe following requests were made:\n\nNo requests were made.\n============================================================"
|
@@ -26,5 +38,13 @@ require File.expand_path(File.dirname(__FILE__) + '/test_helper')
|
|
26
38
|
end
|
27
39
|
end
|
28
40
|
|
41
|
+
it "should verify that expect stub didn't occur" do
|
42
|
+
expected_message = "The request ANY http://www.example.com/ was expected to execute 1 time but it executed 0 times"
|
43
|
+
expected_message << "\n\nThe following requests were made:\n\nNo requests were made.\n============================================================"
|
44
|
+
assert_fail(expected_message) do
|
45
|
+
assert_requested(@stub_http)
|
46
|
+
end
|
47
|
+
end
|
48
|
+
|
29
49
|
end
|
30
50
|
|
@@ -10,6 +10,16 @@ module CurbSpecHelper
|
|
10
10
|
status, response_headers =
|
11
11
|
WebMock::HttpLibAdapters::CurbAdapter.parse_header_string(curl.header_str)
|
12
12
|
|
13
|
+
# Deal with the fact that the HTTP spec allows multi-values headers
|
14
|
+
# to either be a single entry with a comma-separated listed of
|
15
|
+
# values, or multiple separate entries
|
16
|
+
response_headers.keys.each do |k|
|
17
|
+
v = response_headers[k]
|
18
|
+
if v.is_a?(Array)
|
19
|
+
response_headers[k] = v.join(', ')
|
20
|
+
end
|
21
|
+
end
|
22
|
+
|
13
23
|
OpenStruct.new(
|
14
24
|
:body => curl.body_str,
|
15
25
|
:headers => WebMock::Util::Headers.normalize_headers(response_headers),
|
@@ -23,8 +33,8 @@ module CurbSpecHelper
|
|
23
33
|
curl.url = uri.omit(:userinfo).to_s
|
24
34
|
curl.username = uri.user
|
25
35
|
curl.password = uri.password
|
26
|
-
curl.timeout =
|
27
|
-
curl.connect_timeout =
|
36
|
+
curl.timeout = 30
|
37
|
+
curl.connect_timeout = 30
|
28
38
|
|
29
39
|
if headers = options[:headers]
|
30
40
|
headers.each {|k,v| curl.headers[k] = v }
|
@@ -1,3 +1,4 @@
|
|
1
|
+
# encoding: utf-8
|
1
2
|
require 'spec_helper'
|
2
3
|
require 'acceptance/webmock_shared'
|
3
4
|
require 'ostruct'
|
@@ -8,7 +9,7 @@ unless RUBY_PLATFORM =~ /java/
|
|
8
9
|
describe "EM::HttpRequest" do
|
9
10
|
include EMHttpRequestSpecHelper
|
10
11
|
|
11
|
-
|
12
|
+
include_context "with WebMock", :no_status_message
|
12
13
|
|
13
14
|
#functionality only supported for em-http-request 1.x
|
14
15
|
if defined?(EventMachine::HttpConnection)
|
@@ -62,41 +63,43 @@ unless RUBY_PLATFORM =~ /java/
|
|
62
63
|
end
|
63
64
|
|
64
65
|
# not pretty, but it works
|
65
|
-
|
66
|
-
|
67
|
-
|
68
|
-
|
69
|
-
|
70
|
-
|
71
|
-
|
72
|
-
|
73
|
-
|
74
|
-
|
75
|
-
|
76
|
-
|
66
|
+
if defined?(EventMachine::Synchrony)
|
67
|
+
describe "with synchrony" do
|
68
|
+
let(:webmock_em_http) { File.expand_path(File.join(File.dirname(__FILE__), "../lib/webmock/http_lib_adapters/em_http_request/em_http_request_1_x.rb")) }
|
69
|
+
|
70
|
+
before(:each) do
|
71
|
+
# need to reload the webmock em-http adapter after we require synchrony
|
72
|
+
WebMock::HttpLibAdapters::EmHttpRequestAdapter.disable!
|
73
|
+
$".delete webmock_em_http
|
74
|
+
$".delete File.expand_path(File.join(File.dirname(__FILE__), "../../../lib/webmock/http_lib_adapters/em_http_request_adapter.rb"))
|
75
|
+
require 'em-synchrony'
|
76
|
+
require 'em-synchrony/em-http'
|
77
|
+
require File.expand_path(File.join(File.dirname(__FILE__), "../../../lib/webmock/http_lib_adapters/em_http_request_adapter.rb"))
|
78
|
+
end
|
77
79
|
|
78
|
-
|
79
|
-
|
80
|
-
|
81
|
-
|
82
|
-
|
83
|
-
|
84
|
-
|
80
|
+
it "should work" do
|
81
|
+
stub_request(:post, /.*.testserver.com*/).to_return(:status => 200, :body => 'ok')
|
82
|
+
lambda {
|
83
|
+
EM.run do
|
84
|
+
fiber = Fiber.new do
|
85
|
+
http = EM::HttpRequest.new("http://www.testserver.com").post :body => "foo=bar&baz=bang", :timeout => 60
|
86
|
+
EM.stop
|
87
|
+
end
|
88
|
+
fiber.resume
|
85
89
|
end
|
86
|
-
|
87
|
-
|
88
|
-
}.should_not raise_error
|
89
|
-
end
|
90
|
+
}.should_not raise_error
|
91
|
+
end
|
90
92
|
|
91
|
-
|
92
|
-
|
93
|
-
|
94
|
-
|
95
|
-
|
96
|
-
|
97
|
-
|
98
|
-
|
99
|
-
|
93
|
+
after(:each) do
|
94
|
+
EM.send(:remove_const, :Synchrony)
|
95
|
+
EM.send(:remove_const, :HTTPMethods)
|
96
|
+
WebMock::HttpLibAdapters::EmHttpRequestAdapter.disable!
|
97
|
+
$".reject! {|path| path.include? "em-http-request"}
|
98
|
+
$".delete webmock_em_http
|
99
|
+
$".delete File.expand_path(File.join(File.dirname(__FILE__), "../../../lib/webmock/http_lib_adapters/em_http_request_adapter.rb"))
|
100
|
+
require 'em-http-request'
|
101
|
+
require File.expand_path(File.join(File.dirname(__FILE__), "../../../lib/webmock/http_lib_adapters/em_http_request_adapter.rb"))
|
102
|
+
end
|
100
103
|
end
|
101
104
|
end
|
102
105
|
end
|
@@ -131,6 +134,12 @@ unless RUBY_PLATFORM =~ /java/
|
|
131
134
|
http_request(:post, "http://www.example.com", :body => {:a => "1", :b => "2"}).body.should == "ok"
|
132
135
|
end
|
133
136
|
|
137
|
+
it "should work with UTF-8 strings" do
|
138
|
+
body = "Привет, Мир!"
|
139
|
+
stub_request(:post, "www.example.com").to_return(:body => body)
|
140
|
+
http_request(:post, "http://www.example.com").body.bytesize.should == body.bytesize
|
141
|
+
end
|
142
|
+
|
134
143
|
describe "mocking EM::HttpClient API" do
|
135
144
|
before do
|
136
145
|
stub_request(:get, "www.example.com/")
|
@@ -10,16 +10,18 @@ module EMHttpRequestSpecHelper
|
|
10
10
|
head = options[:headers] || {}
|
11
11
|
response = nil
|
12
12
|
error = nil
|
13
|
+
error_set = false
|
13
14
|
uri = Addressable::URI.heuristic_parse(uri)
|
14
15
|
EventMachine.run {
|
15
16
|
request = EventMachine::HttpRequest.new("#{uri.normalize.to_s}")
|
16
17
|
http = request.send(method, {
|
17
|
-
:timeout =>
|
18
|
+
:timeout => 30,
|
18
19
|
:body => options[:body],
|
19
20
|
:query => options[:query],
|
20
21
|
:head => head.merge('authorization' => [uri.user, uri.password])
|
21
22
|
}, &block)
|
22
23
|
http.errback {
|
24
|
+
error_set = true
|
23
25
|
error = if http.respond_to?(:errors)
|
24
26
|
http.errors
|
25
27
|
else
|
@@ -38,7 +40,7 @@ module EMHttpRequestSpecHelper
|
|
38
40
|
}
|
39
41
|
@http = http
|
40
42
|
}
|
41
|
-
raise error if
|
43
|
+
raise error.to_s if error_set
|
42
44
|
response
|
43
45
|
end
|
44
46
|
|
@@ -0,0 +1,15 @@
|
|
1
|
+
require 'spec_helper'
|
2
|
+
require 'acceptance/webmock_shared'
|
3
|
+
require 'acceptance/excon/excon_spec_helper'
|
4
|
+
|
5
|
+
describe "Excon" do
|
6
|
+
include ExconSpecHelper
|
7
|
+
include_context "with WebMock", :no_status_message, :no_url_auth
|
8
|
+
|
9
|
+
it 'should allow Excon requests to use query hash paramters' do
|
10
|
+
stub_request(:get, "http://example.com/resource/?a=1&b=2").to_return(:body => "abc")
|
11
|
+
Excon.get('http://example.com', :path => "resource/", :query => {:a => 1, :b => 2}).body.should == "abc"
|
12
|
+
end
|
13
|
+
|
14
|
+
end
|
15
|
+
|
@@ -0,0 +1,37 @@
|
|
1
|
+
require 'ostruct'
|
2
|
+
|
3
|
+
module ExconSpecHelper
|
4
|
+
|
5
|
+
def http_request(method, uri, options = {}, &block)
|
6
|
+
uri = Addressable::URI.heuristic_parse(uri)
|
7
|
+
uri = uri.omit(:userinfo).to_s.gsub(' ', '+')
|
8
|
+
|
9
|
+
options = options.merge(:method => method) # Dup and merge
|
10
|
+
response = Excon.new(uri).request(options, &block)
|
11
|
+
|
12
|
+
headers = WebMock::Util::Headers.normalize_headers(response.headers)
|
13
|
+
headers = headers.inject({}) do |res, (name, value)|
|
14
|
+
res[name] = value.is_a?(Array) ? value.flatten.join(', ') : value
|
15
|
+
res
|
16
|
+
end
|
17
|
+
|
18
|
+
OpenStruct.new \
|
19
|
+
:body => response.body,
|
20
|
+
:headers => headers,
|
21
|
+
:status => response.status.to_s,
|
22
|
+
:message => ""
|
23
|
+
end
|
24
|
+
|
25
|
+
def client_timeout_exception_class
|
26
|
+
Excon::Errors::Timeout
|
27
|
+
end
|
28
|
+
|
29
|
+
def connection_refused_exception_class
|
30
|
+
Excon::Errors::SocketError
|
31
|
+
end
|
32
|
+
|
33
|
+
def http_library
|
34
|
+
:excon
|
35
|
+
end
|
36
|
+
|
37
|
+
end
|
@@ -184,7 +184,14 @@ describe "Net:HTTP" do
|
|
184
184
|
cert.should be_a(OpenSSL::X509::Certificate)
|
185
185
|
}
|
186
186
|
end
|
187
|
+
|
188
|
+
it "should connect to the server if the URI matches an regex", :net_connect => true do
|
189
|
+
WebMock.disable_net_connect!(:allow => /google.com/)
|
190
|
+
response = Net::HTTP.get('www.google.com','/')
|
191
|
+
end
|
192
|
+
|
187
193
|
end
|
194
|
+
|
188
195
|
end
|
189
196
|
|
190
197
|
describe "when net_http_connect_on_start is true" do
|
@@ -23,7 +23,9 @@ module NetHTTPSpecHelper
|
|
23
23
|
if uri.scheme == "https"
|
24
24
|
http.use_ssl = true
|
25
25
|
#1.9.1 has a bug with ssl_timeout
|
26
|
-
http.ssl_timeout =
|
26
|
+
http.ssl_timeout = 20 unless RUBY_VERSION == "1.9.1"
|
27
|
+
http.open_timeout = 60
|
28
|
+
http.read_timeout = 60
|
27
29
|
end
|
28
30
|
http.verify_mode = OpenSSL::SSL::VERIFY_NONE
|
29
31
|
response = http.start {|http|
|
@@ -96,7 +96,14 @@ unless RUBY_PLATFORM =~ /java/
|
|
96
96
|
Encoding.default_internal = @encoding
|
97
97
|
end
|
98
98
|
|
99
|
-
it "should encode body
|
99
|
+
it "should encode body with default encoding" do
|
100
|
+
stub_request(:get, "www.example.com").
|
101
|
+
to_return(:body => "Øl")
|
102
|
+
|
103
|
+
@sess.get("").body.encoding.should == Encoding::UTF_8
|
104
|
+
end
|
105
|
+
|
106
|
+
it "should encode body to default internal" do
|
100
107
|
stub_request(:get, "www.example.com").
|
101
108
|
to_return(:headers => {'Content-Type' => 'text/html; charset=iso-8859-1'},
|
102
109
|
:body => "Øl".encode("iso-8859-1"))
|
@@ -109,17 +116,19 @@ unless RUBY_PLATFORM =~ /java/
|
|
109
116
|
to_return(:body => "<?xml encoding=\"iso-8859-1\">Øl</xml>".encode("iso-8859-1"))
|
110
117
|
|
111
118
|
|
112
|
-
@sess.get("").body.encoding.should == Encoding
|
119
|
+
@sess.get("").body.encoding.should == Encoding::ISO_8859_1
|
113
120
|
end
|
114
121
|
|
122
|
+
|
115
123
|
it "should encode body based on Session#default_response_charset" do
|
116
124
|
stub_request(:get, "www.example.com").
|
117
125
|
to_return(:body => "Øl".encode("iso-8859-1"))
|
118
126
|
|
119
127
|
@sess.default_response_charset = "iso-8859-1"
|
120
128
|
|
121
|
-
@sess.get("").body.encoding.should == Encoding
|
129
|
+
@sess.get("").body.encoding.should == Encoding::ISO_8859_1
|
122
130
|
end
|
131
|
+
|
123
132
|
end
|
124
133
|
end
|
125
134
|
end
|
@@ -8,8 +8,8 @@ module PatronSpecHelper
|
|
8
8
|
sess.username = uri.user
|
9
9
|
sess.password = uri.password
|
10
10
|
|
11
|
-
sess.connect_timeout =
|
12
|
-
sess.timeout =
|
11
|
+
sess.connect_timeout = 30
|
12
|
+
sess.timeout = 30
|
13
13
|
sess.max_redirects = 0
|
14
14
|
uri = "#{uri.path}#{uri.query ? '?' : ''}#{uri.query}"
|
15
15
|
uri.gsub!(' ','+')
|
@@ -1,4 +1,4 @@
|
|
1
|
-
shared_context "allowing and disabling net connect" do
|
1
|
+
shared_context "allowing and disabling net connect" do |*adapter_info|
|
2
2
|
describe "when net connect" do
|
3
3
|
describe "is allowed", :net_connect => true do
|
4
4
|
before(:each) do
|
@@ -11,8 +11,8 @@ shared_context "allowing and disabling net connect" do
|
|
11
11
|
|
12
12
|
it "should make a real https request if request is not stubbed" do
|
13
13
|
unless http_library == :httpclient
|
14
|
-
http_request(:get, "https://www.
|
15
|
-
body.should =~ /.*
|
14
|
+
http_request(:get, "https://www.google.com/").
|
15
|
+
body.should =~ /.*google.*/
|
16
16
|
end
|
17
17
|
end
|
18
18
|
|
@@ -1,4 +1,4 @@
|
|
1
|
-
shared_context "callbacks" do
|
1
|
+
shared_context "callbacks" do |*adapter_info|
|
2
2
|
describe "when after_request callback is declared" do
|
3
3
|
before(:each) do
|
4
4
|
WebMock.reset_callbacks
|
@@ -44,6 +44,25 @@ shared_context "callbacks" do
|
|
44
44
|
@request_signature.uri.to_s.should == "http://www.example.com:80/"
|
45
45
|
end
|
46
46
|
|
47
|
+
after(:each) do
|
48
|
+
WebMock::StubRegistry.instance.global_stubs.clear
|
49
|
+
end
|
50
|
+
|
51
|
+
it 'passes the same request signature instance to the callback that was passed to the global stub callback' do
|
52
|
+
global_stub_request_sig = after_request_request_sig = nil
|
53
|
+
WebMock.globally_stub_request do |request_sig|
|
54
|
+
global_stub_request_sig = request_sig
|
55
|
+
nil
|
56
|
+
end
|
57
|
+
|
58
|
+
WebMock.after_request do |request_sig, _|
|
59
|
+
after_request_request_sig = request_sig
|
60
|
+
end
|
61
|
+
|
62
|
+
http_request(:get, "http://www.example.com/")
|
63
|
+
global_stub_request_sig.should be(after_request_request_sig)
|
64
|
+
end
|
65
|
+
|
47
66
|
context "passing response to callback" do
|
48
67
|
context "when request is stubbed" do
|
49
68
|
before(:each) do
|
@@ -86,11 +105,8 @@ shared_context "callbacks" do
|
|
86
105
|
end
|
87
106
|
|
88
107
|
it "should pass real response to callback with status and message" do
|
89
|
-
|
90
|
-
|
91
|
-
@response.status[0].should == 302
|
92
|
-
@response.status[1].should == "Found"
|
93
|
-
end
|
108
|
+
@response.status[0].should == 302
|
109
|
+
@response.status[1].should == "Found" unless adapter_info.include?(:no_status_message)
|
94
110
|
end
|
95
111
|
|
96
112
|
it "should pass real response to callback with headers" do
|