vcr 1.5.1 → 1.6.0
Sign up to get free protection for your applications and to get access to all the features.
- data/CHANGELOG.md +11 -1
- data/Gemfile +1 -1
- data/Gemfile.lock +4 -3
- data/benchmarks/http_stubbing_libraries.rb +4 -4
- data/features/.nav +1 -0
- data/features/configuration/ignore_hosts.feature +61 -0
- data/features/http_libraries/net_http.feature +34 -0
- data/features/step_definitions/cli_steps.rb +16 -1
- data/lib/vcr.rb +23 -14
- data/lib/vcr/cassette.rb +2 -4
- data/lib/vcr/config.rb +20 -5
- data/lib/vcr/deprecations.rb +27 -14
- data/lib/vcr/http_stubbing_adapters/fakeweb.rb +14 -9
- data/lib/vcr/http_stubbing_adapters/faraday.rb +12 -3
- data/lib/vcr/http_stubbing_adapters/typhoeus.rb +3 -7
- data/lib/vcr/http_stubbing_adapters/webmock.rb +17 -7
- data/lib/vcr/middleware/faraday.rb +1 -1
- data/lib/vcr/request_matcher.rb +12 -8
- data/lib/vcr/structs/http_interaction.rb +16 -0
- data/lib/vcr/structs/normalizers/body.rb +24 -0
- data/lib/vcr/structs/normalizers/header.rb +56 -0
- data/lib/vcr/structs/normalizers/status_message.rb +17 -0
- data/lib/vcr/structs/normalizers/uri.rb +34 -0
- data/lib/vcr/structs/request.rb +20 -0
- data/lib/vcr/structs/response.rb +16 -0
- data/lib/vcr/structs/response_status.rb +9 -0
- data/lib/vcr/util/regexes.rb +37 -0
- data/lib/vcr/version.rb +16 -5
- data/spec/spec_helper.rb +26 -3
- data/spec/support/http_library_adapters.rb +11 -12
- data/spec/support/http_stubbing_adapter.rb +2 -16
- data/spec/support/normalizers.rb +84 -0
- data/spec/support/version_checker.rb +1 -1
- data/spec/vcr/cassette_spec.rb +8 -10
- data/spec/vcr/config_spec.rb +63 -17
- data/spec/vcr/deprecations_spec.rb +83 -24
- data/spec/vcr/http_stubbing_adapters/multi_object_proxy_spec.rb +1 -1
- data/spec/vcr/http_stubbing_adapters/typhoeus_spec.rb +2 -2
- data/spec/vcr/middleware/faraday_spec.rb +1 -1
- data/spec/vcr/structs/http_interaction_spec.rb +23 -0
- data/spec/vcr/structs/request_spec.rb +54 -0
- data/spec/vcr/structs/response_spec.rb +39 -0
- data/spec/vcr/structs/response_status_spec.rb +18 -0
- data/spec/vcr_spec.rb +26 -54
- data/vcr.gemspec +1 -1
- metadata +48 -31
- data/TODO.md +0 -5
- data/lib/vcr/structs.rb +0 -176
- data/spec/vcr/structs_spec.rb +0 -201
@@ -11,8 +11,8 @@ describe VCR::HttpStubbingAdapters::Typhoeus do
|
|
11
11
|
it_behaves_like 'an http stubbing adapter', ['typhoeus'], [:method, :uri, :host, :path, :body, :headers]
|
12
12
|
|
13
13
|
it_performs('version checking',
|
14
|
-
:valid => %w[ 0.2.
|
15
|
-
:too_low => %w[ 0.1.0 0.1.31 ],
|
14
|
+
:valid => %w[ 0.2.1 0.2.99 ],
|
15
|
+
:too_low => %w[ 0.1.0 0.1.31 0.2.0 ],
|
16
16
|
:too_high => %w[ 0.3.0 1.0.0 ]
|
17
17
|
) do
|
18
18
|
disable_warnings
|
@@ -13,7 +13,7 @@ describe VCR::Middleware::Faraday do
|
|
13
13
|
let(:env_hash) { { :url => 'http://localhost:3000/' } }
|
14
14
|
|
15
15
|
before(:each) do
|
16
|
-
VCR::HttpStubbingAdapters::Faraday.
|
16
|
+
VCR::HttpStubbingAdapters::Faraday.ignored_hosts = ['localhost']
|
17
17
|
end
|
18
18
|
|
19
19
|
it 'uses a cassette when the app is called' do
|
@@ -0,0 +1,23 @@
|
|
1
|
+
require 'spec_helper'
|
2
|
+
|
3
|
+
describe VCR::HTTPInteraction do
|
4
|
+
%w( uri method ).each do |attr|
|
5
|
+
it "delegates :#{attr} to the request signature" do
|
6
|
+
sig = mock('request signature')
|
7
|
+
sig.should_receive(attr).and_return(:the_value)
|
8
|
+
instance = described_class.new(sig, nil)
|
9
|
+
instance.send(attr).should == :the_value
|
10
|
+
end
|
11
|
+
end
|
12
|
+
|
13
|
+
describe '#ignored?' do
|
14
|
+
it 'returns false by default' do
|
15
|
+
should_not be_ignored
|
16
|
+
end
|
17
|
+
|
18
|
+
it 'returns true when #ignore! has been called' do
|
19
|
+
subject.ignore!
|
20
|
+
should be_ignored
|
21
|
+
end
|
22
|
+
end
|
23
|
+
end
|
@@ -0,0 +1,54 @@
|
|
1
|
+
require 'spec_helper'
|
2
|
+
|
3
|
+
describe VCR::Request do
|
4
|
+
describe '#matcher' do
|
5
|
+
it 'returns a matcher with the given request' do
|
6
|
+
req = VCR::Request.new
|
7
|
+
req.matcher([:uri]).request.should == req
|
8
|
+
end
|
9
|
+
|
10
|
+
it 'returns a matcher with the given match_attributes' do
|
11
|
+
req = VCR::Request.new
|
12
|
+
req.matcher([:uri, :headers]).match_attributes.to_a.should =~ [:uri, :headers]
|
13
|
+
end
|
14
|
+
end
|
15
|
+
|
16
|
+
describe '.from_net_http_request' do
|
17
|
+
let(:net_http) { YAML.load(File.read("#{VCR::SPEC_ROOT}/fixtures/#{YAML_SERIALIZATION_VERSION}/example_net_http.yml")) }
|
18
|
+
let(:request) { YAML.load(File.read("#{VCR::SPEC_ROOT}/fixtures/#{YAML_SERIALIZATION_VERSION}/example_net_http_request.yml")) }
|
19
|
+
subject { described_class.from_net_http_request(net_http, request) }
|
20
|
+
|
21
|
+
before(:each) do
|
22
|
+
VCR.http_stubbing_adapter.should respond_to(:request_uri)
|
23
|
+
VCR.http_stubbing_adapter.stub!(:request_uri)
|
24
|
+
end
|
25
|
+
|
26
|
+
it { should be_instance_of(VCR::Request) }
|
27
|
+
its(:method) { should == :post }
|
28
|
+
its(:body) { should == 'id=7' }
|
29
|
+
its(:headers) { should == { "content-type" => ["application/x-www-form-urlencoded"] } }
|
30
|
+
|
31
|
+
it 'sets the uri using the http_stubbing_adapter.request_uri' do
|
32
|
+
VCR.http_stubbing_adapter.should_receive(:request_uri).with(net_http, request).and_return('foo/bar')
|
33
|
+
subject.uri.should == 'foo/bar'
|
34
|
+
end
|
35
|
+
end
|
36
|
+
|
37
|
+
it_performs 'uri normalization' do
|
38
|
+
def instance(uri)
|
39
|
+
VCR::Request.new(:get, uri, '', {})
|
40
|
+
end
|
41
|
+
end
|
42
|
+
|
43
|
+
it_performs 'header normalization' do
|
44
|
+
def with_headers(headers)
|
45
|
+
described_class.new(:get, 'http://example.com/', nil, headers)
|
46
|
+
end
|
47
|
+
end
|
48
|
+
|
49
|
+
it_performs 'body normalization' do
|
50
|
+
def instance(body)
|
51
|
+
described_class.new(:get, 'http://example.com/', body, {})
|
52
|
+
end
|
53
|
+
end
|
54
|
+
end
|
@@ -0,0 +1,39 @@
|
|
1
|
+
require 'spec_helper'
|
2
|
+
|
3
|
+
describe VCR::Response do
|
4
|
+
describe '.from_net_http_response' do
|
5
|
+
let(:response) { YAML.load(File.read("#{VCR::SPEC_ROOT}/fixtures/#{YAML_SERIALIZATION_VERSION}/example_net_http_response.yml")) }
|
6
|
+
subject { described_class.from_net_http_response(response) }
|
7
|
+
|
8
|
+
it { should be_instance_of(described_class) }
|
9
|
+
its(:body) { should == 'The response from example.com' }
|
10
|
+
its(:http_version) { should == '1.1' }
|
11
|
+
its(:headers) { should == {
|
12
|
+
"last-modified" => ['Tue, 15 Nov 2005 13:24:10 GMT'],
|
13
|
+
"etag" => ["\"24ec5-1b6-4059a80bfd280\""],
|
14
|
+
"content-type" => ["text/html; charset=UTF-8"],
|
15
|
+
"date" => ['Wed, 31 Mar 2010 02:43:26 GMT'],
|
16
|
+
"server" => ['Apache/2.2.3 (CentOS)'],
|
17
|
+
"content-length" => ['438'],
|
18
|
+
"accept-ranges" => ['bytes']
|
19
|
+
} }
|
20
|
+
|
21
|
+
it 'assigns the status using VCR::ResponseStatus.from_net_http_response' do
|
22
|
+
VCR::ResponseStatus.should respond_to(:from_net_http_response)
|
23
|
+
VCR::ResponseStatus.should_receive(:from_net_http_response).with(response).and_return(:the_status)
|
24
|
+
subject.status.should == :the_status
|
25
|
+
end
|
26
|
+
end
|
27
|
+
|
28
|
+
it_performs 'header normalization' do
|
29
|
+
def with_headers(headers)
|
30
|
+
described_class.new(:status, headers, nil, '1.1')
|
31
|
+
end
|
32
|
+
end
|
33
|
+
|
34
|
+
it_performs 'body normalization' do
|
35
|
+
def instance(body)
|
36
|
+
described_class.new(:status, {}, body, '1.1')
|
37
|
+
end
|
38
|
+
end
|
39
|
+
end
|
@@ -0,0 +1,18 @@
|
|
1
|
+
require 'spec_helper'
|
2
|
+
|
3
|
+
describe VCR::ResponseStatus do
|
4
|
+
describe '.from_net_http_response' do
|
5
|
+
let(:response) { YAML.load(File.read("#{VCR::SPEC_ROOT}/fixtures/#{YAML_SERIALIZATION_VERSION}/example_net_http_response.yml")) }
|
6
|
+
subject { described_class.from_net_http_response(response) }
|
7
|
+
|
8
|
+
it { should be_instance_of(described_class) }
|
9
|
+
its(:code) { should == 200 }
|
10
|
+
its(:message) { should == 'OK' }
|
11
|
+
end
|
12
|
+
|
13
|
+
it_performs 'status message normalization' do
|
14
|
+
def instance(message)
|
15
|
+
described_class.new(200, message)
|
16
|
+
end
|
17
|
+
end
|
18
|
+
end
|
data/spec/vcr_spec.rb
CHANGED
@@ -107,15 +107,16 @@ describe VCR do
|
|
107
107
|
VCR.config { }
|
108
108
|
end
|
109
109
|
|
110
|
-
|
111
|
-
|
112
|
-
|
113
|
-
c.ignore_localhost = val
|
110
|
+
it "sets http_stubbing_adapter.ignored_hosts to the configured hosts when the block completes" do
|
111
|
+
VCR::Config.reset!(nil)
|
112
|
+
VCR::HttpStubbingAdapters::FakeWeb.send(:ignored_hosts).should be_empty
|
114
113
|
|
115
|
-
|
116
|
-
|
117
|
-
|
114
|
+
VCR.config do |c|
|
115
|
+
c.stub_with :fakeweb
|
116
|
+
c.ignore_hosts 'example.com', 'example.org'
|
118
117
|
end
|
118
|
+
|
119
|
+
VCR::HttpStubbingAdapters::FakeWeb.send(:ignored_hosts).should == %w[example.com example.org]
|
119
120
|
end
|
120
121
|
end
|
121
122
|
|
@@ -174,63 +175,34 @@ describe VCR do
|
|
174
175
|
end
|
175
176
|
|
176
177
|
describe '.record_http_interaction' do
|
177
|
-
before(:each) { VCR.stub
|
178
|
+
before(:each) { VCR.stub(:current_cassette => current_cassette) }
|
179
|
+
let(:uri) { 'http://some-host.com/' }
|
180
|
+
let(:interaction) { stub(:uri => uri) }
|
178
181
|
|
179
|
-
|
180
|
-
|
181
|
-
before(:each) { VCR.http_stubbing_adapter.stub!(:ignore_localhost?).and_return(value) }
|
182
|
-
|
183
|
-
instance_eval(&block)
|
184
|
-
end
|
185
|
-
end
|
186
|
-
|
187
|
-
def self.it_records_requests_to(host)
|
188
|
-
it "records requests to #{host}" do
|
189
|
-
interaction = stub(:uri => "http://#{host}/")
|
190
|
-
current_cassette.should_receive(:record_http_interaction).with(interaction).once
|
191
|
-
VCR.record_http_interaction(interaction)
|
192
|
-
end
|
193
|
-
end
|
182
|
+
context 'when there is not a current cassette' do
|
183
|
+
let(:current_cassette) { nil }
|
194
184
|
|
195
|
-
|
196
|
-
|
197
|
-
|
198
|
-
|
185
|
+
it 'does not record a request' do
|
186
|
+
# we can't set a message expectation on nil, but there is no place to record it to...
|
187
|
+
# this mostly tests that there is no error.
|
188
|
+
VCR::Config.stub(:uri_should_be_ignored? => false)
|
199
189
|
VCR.record_http_interaction(interaction)
|
200
190
|
end
|
201
191
|
end
|
202
192
|
|
203
193
|
context 'when there is a current cassette' do
|
204
|
-
let(:current_cassette) { mock('current
|
205
|
-
|
206
|
-
with_ignore_localhost_set_to(true) do
|
207
|
-
it_records_requests_to "example.com"
|
208
|
-
|
209
|
-
VCR::LOCALHOST_ALIASES.each do |host|
|
210
|
-
it_does_not_record_requests_to host
|
211
|
-
end
|
212
|
-
end
|
194
|
+
let(:current_cassette) { mock('current cassette') }
|
213
195
|
|
214
|
-
|
215
|
-
|
216
|
-
|
217
|
-
|
218
|
-
end
|
219
|
-
end
|
220
|
-
|
221
|
-
context 'when there is not a current cassette' do
|
222
|
-
let(:current_cassette) { nil }
|
223
|
-
|
224
|
-
with_ignore_localhost_set_to(true) do
|
225
|
-
(VCR::LOCALHOST_ALIASES + ['example.com']).each do |host|
|
226
|
-
it_does_not_record_requests_to host
|
227
|
-
end
|
196
|
+
it 'records the request when the uri should not be ignored' do
|
197
|
+
VCR::Config.stub(:uri_should_be_ignored?).with(uri).and_return(false)
|
198
|
+
current_cassette.should_receive(:record_http_interaction).with(interaction)
|
199
|
+
VCR.record_http_interaction(interaction)
|
228
200
|
end
|
229
201
|
|
230
|
-
|
231
|
-
|
232
|
-
|
233
|
-
|
202
|
+
it 'does not record the request when the uri should be ignored' do
|
203
|
+
VCR::Config.stub(:uri_should_be_ignored?).with(uri).and_return(true)
|
204
|
+
current_cassette.should_not_receive(:record_http_interaction)
|
205
|
+
VCR.record_http_interaction(interaction)
|
234
206
|
end
|
235
207
|
end
|
236
208
|
end
|
data/vcr.gemspec
CHANGED
@@ -43,7 +43,7 @@ Gem::Specification.new do |s|
|
|
43
43
|
'patron' => '~> 0.4.6',
|
44
44
|
'em-http-request' => '~> 0.2.7',
|
45
45
|
'curb' => '~> 0.7.8',
|
46
|
-
'typhoeus' => '~> 0.2.
|
46
|
+
'typhoeus' => '~> 0.2.1'
|
47
47
|
}.each do |lib, version|
|
48
48
|
s.add_development_dependency lib, version
|
49
49
|
end unless RUBY_PLATFORM == 'java'
|
metadata
CHANGED
@@ -1,13 +1,13 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: vcr
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
hash:
|
5
|
-
prerelease:
|
4
|
+
hash: 15
|
5
|
+
prerelease: false
|
6
6
|
segments:
|
7
7
|
- 1
|
8
|
-
-
|
9
|
-
-
|
10
|
-
version: 1.
|
8
|
+
- 6
|
9
|
+
- 0
|
10
|
+
version: 1.6.0
|
11
11
|
platform: ruby
|
12
12
|
authors:
|
13
13
|
- Myron Marston
|
@@ -15,7 +15,7 @@ autorequire:
|
|
15
15
|
bindir: bin
|
16
16
|
cert_chain: []
|
17
17
|
|
18
|
-
date: 2011-
|
18
|
+
date: 2011-02-03 00:00:00 -08:00
|
19
19
|
default_executable:
|
20
20
|
dependencies:
|
21
21
|
- !ruby/object:Gem::Dependency
|
@@ -30,10 +30,10 @@ dependencies:
|
|
30
30
|
- 5
|
31
31
|
- 3
|
32
32
|
version: 0.5.3
|
33
|
+
type: :development
|
33
34
|
name: faraday
|
34
35
|
prerelease: false
|
35
36
|
version_requirements: *id001
|
36
|
-
type: :development
|
37
37
|
- !ruby/object:Gem::Dependency
|
38
38
|
requirement: &id002 !ruby/object:Gem::Requirement
|
39
39
|
none: false
|
@@ -46,10 +46,10 @@ dependencies:
|
|
46
46
|
- 3
|
47
47
|
- 0
|
48
48
|
version: 1.3.0
|
49
|
+
type: :development
|
49
50
|
name: fakeweb
|
50
51
|
prerelease: false
|
51
52
|
version_requirements: *id002
|
52
|
-
type: :development
|
53
53
|
- !ruby/object:Gem::Dependency
|
54
54
|
requirement: &id003 !ruby/object:Gem::Requirement
|
55
55
|
none: false
|
@@ -63,10 +63,10 @@ dependencies:
|
|
63
63
|
- 5
|
64
64
|
- 2
|
65
65
|
version: 2.1.5.2
|
66
|
+
type: :development
|
66
67
|
name: httpclient
|
67
68
|
prerelease: false
|
68
69
|
version_requirements: *id003
|
69
|
-
type: :development
|
70
70
|
- !ruby/object:Gem::Dependency
|
71
71
|
requirement: &id004 !ruby/object:Gem::Requirement
|
72
72
|
none: false
|
@@ -79,10 +79,10 @@ dependencies:
|
|
79
79
|
- 8
|
80
80
|
- 7
|
81
81
|
version: 0.8.7
|
82
|
+
type: :development
|
82
83
|
name: rake
|
83
84
|
prerelease: false
|
84
85
|
version_requirements: *id004
|
85
|
-
type: :development
|
86
86
|
- !ruby/object:Gem::Dependency
|
87
87
|
requirement: &id005 !ruby/object:Gem::Requirement
|
88
88
|
none: false
|
@@ -95,10 +95,10 @@ dependencies:
|
|
95
95
|
- 3
|
96
96
|
- 5
|
97
97
|
version: 0.3.5
|
98
|
+
type: :development
|
98
99
|
name: timecop
|
99
100
|
prerelease: false
|
100
101
|
version_requirements: *id005
|
101
|
-
type: :development
|
102
102
|
- !ruby/object:Gem::Dependency
|
103
103
|
requirement: &id006 !ruby/object:Gem::Requirement
|
104
104
|
none: false
|
@@ -111,10 +111,10 @@ dependencies:
|
|
111
111
|
- 9
|
112
112
|
- 2
|
113
113
|
version: 2.9.2
|
114
|
+
type: :development
|
114
115
|
name: shoulda
|
115
116
|
prerelease: false
|
116
117
|
version_requirements: *id006
|
117
|
-
type: :development
|
118
118
|
- !ruby/object:Gem::Dependency
|
119
119
|
requirement: &id007 !ruby/object:Gem::Requirement
|
120
120
|
none: false
|
@@ -127,10 +127,10 @@ dependencies:
|
|
127
127
|
- 4
|
128
128
|
- 0
|
129
129
|
version: 2.4.0
|
130
|
+
type: :development
|
130
131
|
name: rspec
|
131
132
|
prerelease: false
|
132
133
|
version_requirements: *id007
|
133
|
-
type: :development
|
134
134
|
- !ruby/object:Gem::Dependency
|
135
135
|
requirement: &id008 !ruby/object:Gem::Requirement
|
136
136
|
none: false
|
@@ -143,10 +143,10 @@ dependencies:
|
|
143
143
|
- 1
|
144
144
|
- 0
|
145
145
|
version: 1.1.0
|
146
|
+
type: :development
|
146
147
|
name: rack
|
147
148
|
prerelease: false
|
148
149
|
version_requirements: *id008
|
149
|
-
type: :development
|
150
150
|
- !ruby/object:Gem::Dependency
|
151
151
|
requirement: &id009 !ruby/object:Gem::Requirement
|
152
152
|
none: false
|
@@ -159,10 +159,10 @@ dependencies:
|
|
159
159
|
- 2
|
160
160
|
- 1
|
161
161
|
version: 0.2.1
|
162
|
+
type: :development
|
162
163
|
name: aruba
|
163
164
|
prerelease: false
|
164
165
|
version_requirements: *id009
|
165
|
-
type: :development
|
166
166
|
- !ruby/object:Gem::Dependency
|
167
167
|
requirement: &id010 !ruby/object:Gem::Requirement
|
168
168
|
none: false
|
@@ -175,10 +175,10 @@ dependencies:
|
|
175
175
|
- 1
|
176
176
|
- 0
|
177
177
|
version: 1.1.0
|
178
|
+
type: :development
|
178
179
|
name: sinatra
|
179
180
|
prerelease: false
|
180
181
|
version_requirements: *id010
|
181
|
-
type: :development
|
182
182
|
- !ruby/object:Gem::Dependency
|
183
183
|
requirement: &id011 !ruby/object:Gem::Requirement
|
184
184
|
none: false
|
@@ -191,10 +191,10 @@ dependencies:
|
|
191
191
|
- 0
|
192
192
|
- 7
|
193
193
|
version: 1.0.7
|
194
|
+
type: :development
|
194
195
|
name: bundler
|
195
196
|
prerelease: false
|
196
197
|
version_requirements: *id011
|
197
|
-
type: :development
|
198
198
|
- !ruby/object:Gem::Dependency
|
199
199
|
requirement: &id012 !ruby/object:Gem::Requirement
|
200
200
|
none: false
|
@@ -207,10 +207,10 @@ dependencies:
|
|
207
207
|
- 9
|
208
208
|
- 4
|
209
209
|
version: 0.9.4
|
210
|
+
type: :development
|
210
211
|
name: cucumber
|
211
212
|
prerelease: false
|
212
213
|
version_requirements: *id012
|
213
|
-
type: :development
|
214
214
|
- !ruby/object:Gem::Dependency
|
215
215
|
requirement: &id013 !ruby/object:Gem::Requirement
|
216
216
|
none: false
|
@@ -223,10 +223,10 @@ dependencies:
|
|
223
223
|
- 6
|
224
224
|
- 0
|
225
225
|
version: 1.6.0
|
226
|
+
type: :development
|
226
227
|
name: webmock
|
227
228
|
prerelease: false
|
228
229
|
version_requirements: *id013
|
229
|
-
type: :development
|
230
230
|
- !ruby/object:Gem::Dependency
|
231
231
|
requirement: &id014 !ruby/object:Gem::Requirement
|
232
232
|
none: false
|
@@ -239,10 +239,10 @@ dependencies:
|
|
239
239
|
- 7
|
240
240
|
- 8
|
241
241
|
version: 0.7.8
|
242
|
+
type: :development
|
242
243
|
name: curb
|
243
244
|
prerelease: false
|
244
245
|
version_requirements: *id014
|
245
|
-
type: :development
|
246
246
|
- !ruby/object:Gem::Dependency
|
247
247
|
requirement: &id015 !ruby/object:Gem::Requirement
|
248
248
|
none: false
|
@@ -255,10 +255,10 @@ dependencies:
|
|
255
255
|
- 4
|
256
256
|
- 6
|
257
257
|
version: 0.4.6
|
258
|
+
type: :development
|
258
259
|
name: patron
|
259
260
|
prerelease: false
|
260
261
|
version_requirements: *id015
|
261
|
-
type: :development
|
262
262
|
- !ruby/object:Gem::Dependency
|
263
263
|
requirement: &id016 !ruby/object:Gem::Requirement
|
264
264
|
none: false
|
@@ -271,26 +271,26 @@ dependencies:
|
|
271
271
|
- 2
|
272
272
|
- 7
|
273
273
|
version: 0.2.7
|
274
|
+
type: :development
|
274
275
|
name: em-http-request
|
275
276
|
prerelease: false
|
276
277
|
version_requirements: *id016
|
277
|
-
type: :development
|
278
278
|
- !ruby/object:Gem::Dependency
|
279
279
|
requirement: &id017 !ruby/object:Gem::Requirement
|
280
280
|
none: false
|
281
281
|
requirements:
|
282
282
|
- - ~>
|
283
283
|
- !ruby/object:Gem::Version
|
284
|
-
hash:
|
284
|
+
hash: 21
|
285
285
|
segments:
|
286
286
|
- 0
|
287
287
|
- 2
|
288
|
-
-
|
289
|
-
version: 0.2.
|
288
|
+
- 1
|
289
|
+
version: 0.2.1
|
290
|
+
type: :development
|
290
291
|
name: typhoeus
|
291
292
|
prerelease: false
|
292
293
|
version_requirements: *id017
|
293
|
-
type: :development
|
294
294
|
description: VCR provides helpers to record your test suite's HTTP interactions and replay them during future test runs for fast, deterministic, accurate tests. It works with any ruby testing framework, and provides built-in support for cucumber.
|
295
295
|
email: myron.marston@gmail.com
|
296
296
|
executables: []
|
@@ -311,7 +311,6 @@ files:
|
|
311
311
|
- LICENSE
|
312
312
|
- README.md
|
313
313
|
- Rakefile
|
314
|
-
- TODO.md
|
315
314
|
- benchmarks/http_stubbing_libraries.rb
|
316
315
|
- cucumber.yml
|
317
316
|
- features/.nav
|
@@ -325,6 +324,7 @@ files:
|
|
325
324
|
- features/configuration/cassette_library_dir.feature
|
326
325
|
- features/configuration/default_cassette_options.feature
|
327
326
|
- features/configuration/hooks.feature
|
327
|
+
- features/configuration/ignore_hosts.feature
|
328
328
|
- features/configuration/ignore_localhost.feature
|
329
329
|
- features/configuration/stub_with.feature
|
330
330
|
- features/http_libraries/em_http_request.feature
|
@@ -365,10 +365,18 @@ files:
|
|
365
365
|
- lib/vcr/middleware/rack.rb
|
366
366
|
- lib/vcr/request_matcher.rb
|
367
367
|
- lib/vcr/rspec.rb
|
368
|
-
- lib/vcr/structs.rb
|
368
|
+
- lib/vcr/structs/http_interaction.rb
|
369
|
+
- lib/vcr/structs/normalizers/body.rb
|
370
|
+
- lib/vcr/structs/normalizers/header.rb
|
371
|
+
- lib/vcr/structs/normalizers/status_message.rb
|
372
|
+
- lib/vcr/structs/normalizers/uri.rb
|
373
|
+
- lib/vcr/structs/request.rb
|
374
|
+
- lib/vcr/structs/response.rb
|
375
|
+
- lib/vcr/structs/response_status.rb
|
369
376
|
- lib/vcr/util/basic_object.rb
|
370
377
|
- lib/vcr/util/internet_connection.rb
|
371
378
|
- lib/vcr/util/ping.rb
|
379
|
+
- lib/vcr/util/regexes.rb
|
372
380
|
- lib/vcr/version.rb
|
373
381
|
- script/FullBuildRakeFile
|
374
382
|
- script/full_build
|
@@ -397,6 +405,7 @@ files:
|
|
397
405
|
- spec/support/fixnum_extension.rb
|
398
406
|
- spec/support/http_library_adapters.rb
|
399
407
|
- spec/support/http_stubbing_adapter.rb
|
408
|
+
- spec/support/normalizers.rb
|
400
409
|
- spec/support/ruby_interpreter.rb
|
401
410
|
- spec/support/sinatra_app.rb
|
402
411
|
- spec/support/temp_cassette_library_dir.rb
|
@@ -421,7 +430,10 @@ files:
|
|
421
430
|
- spec/vcr/middleware/rack_spec.rb
|
422
431
|
- spec/vcr/request_matcher_spec.rb
|
423
432
|
- spec/vcr/rspec_spec.rb
|
424
|
-
- spec/vcr/
|
433
|
+
- spec/vcr/structs/http_interaction_spec.rb
|
434
|
+
- spec/vcr/structs/request_spec.rb
|
435
|
+
- spec/vcr/structs/response_spec.rb
|
436
|
+
- spec/vcr/structs/response_status_spec.rb
|
425
437
|
- spec/vcr/util/internet_connection_spec.rb
|
426
438
|
- spec/vcr/version_spec.rb
|
427
439
|
- spec/vcr_spec.rb
|
@@ -460,7 +472,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
460
472
|
requirements: []
|
461
473
|
|
462
474
|
rubyforge_project:
|
463
|
-
rubygems_version: 1.
|
475
|
+
rubygems_version: 1.3.7
|
464
476
|
signing_key:
|
465
477
|
specification_version: 3
|
466
478
|
summary: Record your test suite's HTTP interactions and replay them during future test runs for fast, deterministic, accurate tests.
|
@@ -475,6 +487,7 @@ test_files:
|
|
475
487
|
- features/configuration/cassette_library_dir.feature
|
476
488
|
- features/configuration/default_cassette_options.feature
|
477
489
|
- features/configuration/hooks.feature
|
490
|
+
- features/configuration/ignore_hosts.feature
|
478
491
|
- features/configuration/ignore_localhost.feature
|
479
492
|
- features/configuration/stub_with.feature
|
480
493
|
- features/http_libraries/em_http_request.feature
|
@@ -518,6 +531,7 @@ test_files:
|
|
518
531
|
- spec/support/fixnum_extension.rb
|
519
532
|
- spec/support/http_library_adapters.rb
|
520
533
|
- spec/support/http_stubbing_adapter.rb
|
534
|
+
- spec/support/normalizers.rb
|
521
535
|
- spec/support/ruby_interpreter.rb
|
522
536
|
- spec/support/sinatra_app.rb
|
523
537
|
- spec/support/temp_cassette_library_dir.rb
|
@@ -542,7 +556,10 @@ test_files:
|
|
542
556
|
- spec/vcr/middleware/rack_spec.rb
|
543
557
|
- spec/vcr/request_matcher_spec.rb
|
544
558
|
- spec/vcr/rspec_spec.rb
|
545
|
-
- spec/vcr/
|
559
|
+
- spec/vcr/structs/http_interaction_spec.rb
|
560
|
+
- spec/vcr/structs/request_spec.rb
|
561
|
+
- spec/vcr/structs/response_spec.rb
|
562
|
+
- spec/vcr/structs/response_status_spec.rb
|
546
563
|
- spec/vcr/util/internet_connection_spec.rb
|
547
564
|
- spec/vcr/version_spec.rb
|
548
565
|
- spec/vcr_spec.rb
|