vcr 1.11.1 → 1.11.2

Sign up to get free protection for your applications and to get access to all the features.
Files changed (81) hide show
  1. data/.travis.yml +3 -0
  2. data/CHANGELOG.md +11 -4
  3. data/Gemfile +5 -4
  4. data/Rakefile +23 -4
  5. data/cucumber.yml +2 -2
  6. data/features/cassettes/automatic_re_recording.feature +2 -2
  7. data/features/cassettes/dynamic_erb.feature +2 -2
  8. data/features/cassettes/format.feature +1 -1
  9. data/features/cassettes/naming.feature +1 -1
  10. data/features/cassettes/no_cassette.feature +4 -4
  11. data/features/cassettes/request_matching.feature +5 -5
  12. data/features/cassettes/update_content_length_header.feature +3 -3
  13. data/features/configuration/allow_http_connections_when_no_cassette.feature +3 -3
  14. data/features/configuration/cassette_library_dir.feature +1 -1
  15. data/features/configuration/default_cassette_options.feature +5 -5
  16. data/features/configuration/filter_sensitive_data.feature +6 -6
  17. data/features/configuration/hooks.feature +6 -6
  18. data/features/configuration/ignore_hosts.feature +1 -1
  19. data/features/configuration/ignore_localhost.feature +2 -2
  20. data/features/configuration/stub_with.feature +4 -4
  21. data/features/http_libraries/em_http_request.feature +4 -4
  22. data/features/http_libraries/net_http.feature +10 -10
  23. data/features/middleware/faraday.feature +2 -2
  24. data/features/middleware/rack.feature +2 -2
  25. data/features/record_modes/all.feature +2 -2
  26. data/features/record_modes/new_episodes.feature +2 -2
  27. data/features/record_modes/none.feature +2 -2
  28. data/features/record_modes/once.feature +3 -3
  29. data/features/step_definitions/cli_steps.rb +6 -2
  30. data/features/support/env.rb +5 -8
  31. data/features/support/http_lib_filters.rb +6 -1
  32. data/features/test_frameworks/cucumber.feature +2 -2
  33. data/features/test_frameworks/rspec.feature +2 -2
  34. data/features/test_frameworks/shoulda.feature +13 -10
  35. data/features/test_frameworks/test_unit.feature +12 -9
  36. data/lib/vcr.rb +6 -0
  37. data/lib/vcr/config.rb +7 -1
  38. data/lib/vcr/deprecations/cassette.rb +16 -16
  39. data/lib/vcr/extensions/net_http_response.rb +4 -0
  40. data/lib/vcr/http_stubbing_adapters/common.rb +1 -1
  41. data/lib/vcr/http_stubbing_adapters/fakeweb.rb +6 -0
  42. data/lib/vcr/http_stubbing_adapters/webmock.rb +7 -0
  43. data/lib/vcr/middleware/cassette_arguments.rb +1 -0
  44. data/lib/vcr/structs/http_interaction.rb +1 -0
  45. data/lib/vcr/version.rb +1 -1
  46. data/spec/capture_warnings.rb +42 -0
  47. data/spec/monkey_patches.rb +5 -1
  48. data/spec/spec_helper.rb +2 -1
  49. data/spec/support/shared_example_groups/http_library.rb +19 -19
  50. data/spec/support/shared_example_groups/http_stubbing_adapter.rb +6 -6
  51. data/spec/support/shared_example_groups/ignore_localhost_deprecation.rb +1 -1
  52. data/spec/support/shared_example_groups/normalizers.rb +13 -15
  53. data/spec/support/sinatra_app.rb +2 -0
  54. data/spec/support/vcr_localhost_server.rb +4 -3
  55. data/spec/vcr/cassette/reader_spec.rb +4 -4
  56. data/spec/vcr/cassette_spec.rb +28 -28
  57. data/spec/vcr/config_spec.rb +11 -11
  58. data/spec/vcr/deprecations/cassette_spec.rb +4 -4
  59. data/spec/vcr/deprecations/config_spec.rb +2 -2
  60. data/spec/vcr/deprecations/http_stubbing_adapters/fakeweb_spec.rb +1 -1
  61. data/spec/vcr/extensions/net_http_response_spec.rb +3 -3
  62. data/spec/vcr/extensions/net_http_spec.rb +4 -4
  63. data/spec/vcr/http_stubbing_adapters/excon_spec.rb +5 -5
  64. data/spec/vcr/http_stubbing_adapters/faraday_spec.rb +4 -4
  65. data/spec/vcr/http_stubbing_adapters/multi_object_proxy_spec.rb +4 -4
  66. data/spec/vcr/middleware/cassette_arguments_spec.rb +5 -5
  67. data/spec/vcr/middleware/faraday_spec.rb +3 -3
  68. data/spec/vcr/middleware/rack_spec.rb +4 -4
  69. data/spec/vcr/request_matcher_spec.rb +13 -13
  70. data/spec/vcr/structs/http_interaction_spec.rb +6 -6
  71. data/spec/vcr/structs/request_spec.rb +7 -7
  72. data/spec/vcr/structs/response_spec.rb +5 -5
  73. data/spec/vcr/structs/response_status_spec.rb +2 -2
  74. data/spec/vcr/test_frameworks/cucumber_spec.rb +2 -2
  75. data/spec/vcr/test_frameworks/rspec_spec.rb +6 -7
  76. data/spec/vcr/util/hooks_spec.rb +9 -9
  77. data/spec/vcr_spec.rb +11 -17
  78. data/vcr.gemspec +11 -5
  79. metadata +47 -49
  80. data/features/support/aruba_workaround/aruba_patches.rb +0 -36
  81. data/features/support/aruba_workaround/background_process.rb +0 -4
@@ -41,7 +41,7 @@ Feature: ignore_hosts
41
41
 
42
42
  puts response_body_for(:get, "http://localhost:7777/")
43
43
  """
44
- When I run "ruby ignore_hosts.rb"
44
+ When I run `ruby ignore_hosts.rb`
45
45
  Then it should pass with:
46
46
  """
47
47
  Response 1
@@ -41,7 +41,7 @@ Feature: ignore_localhost
41
41
 
42
42
  response_body_for(:get, "http://localhost:7777/")
43
43
  """
44
- When I run "ruby localhost_not_ignored.rb"
44
+ When I run `ruby localhost_not_ignored.rb`
45
45
  Then it should fail with "<error>"
46
46
  And the file "cassettes/localhost.yml" should contain "body: Response 1"
47
47
 
@@ -85,7 +85,7 @@ Feature: ignore_localhost
85
85
 
86
86
  puts response_body_for(:get, "http://localhost:7777/")
87
87
  """
88
- When I run "ruby ignore_localhost_true.rb"
88
+ When I run `ruby ignore_localhost_true.rb`
89
89
  Then it should pass with:
90
90
  """
91
91
  Response 1
@@ -64,13 +64,13 @@ Feature: stub_with
64
64
  puts "The response for request 2 was: #{response_body_for(:get, "http://localhost:7777/")}"
65
65
  end
66
66
  """
67
- When I run "ruby stubbing_http_lib_combo.rb 'Hello World'"
67
+ When I run `ruby stubbing_http_lib_combo.rb 'Hello World'`
68
68
  Then the output should contain each of the following:
69
69
  | The response for request 1 was: Hello World |
70
70
  | The response for request 2 was: Hello World |
71
71
  And the file "vcr_cassettes/example.yml" should contain "body: Hello World"
72
72
 
73
- When I run "ruby stubbing_http_lib_combo.rb 'Goodbye World'"
73
+ When I run `ruby stubbing_http_lib_combo.rb 'Goodbye World'`
74
74
  Then the output should contain each of the following:
75
75
  | The response for request 1 was: Goodbye World |
76
76
  | The response for request 2 was: Hello World |
@@ -141,7 +141,7 @@ Feature: stub_with
141
141
 
142
142
  puts "Faraday: #{faraday_response}"
143
143
  """
144
- When I run "ruby stub_with_multiple.rb 'Hello'"
144
+ When I run `ruby stub_with_multiple.rb 'Hello'`
145
145
  Then the output should contain each of the following:
146
146
  | Net::HTTP 1: Hello net_http |
147
147
  | Typhoeus 1: Hello typhoeus |
@@ -156,7 +156,7 @@ Feature: stub_with
156
156
  | Hello excon |
157
157
  | Hello faraday |
158
158
 
159
- When I run "ruby stub_with_multiple.rb 'Goodbye'"
159
+ When I run `ruby stub_with_multiple.rb 'Goodbye'`
160
160
  Then the output should contain each of the following:
161
161
  | Net::HTTP 1: Goodbye net_http |
162
162
  | Typhoeus 1: Goodbye typhoeus |
@@ -51,7 +51,7 @@ Feature: EM HTTP Request
51
51
  end
52
52
  end
53
53
  """
54
- When I run "ruby make_requests.rb Hello"
54
+ When I run `ruby make_requests.rb Hello`
55
55
  Then the output should contain:
56
56
  """
57
57
  Hello foo
@@ -114,7 +114,7 @@ Feature: EM HTTP Request
114
114
  http_version: "1.1"
115
115
  """
116
116
 
117
- When I run "ruby make_requests.rb Goodbye"
117
+ When I run `ruby make_requests.rb Goodbye`
118
118
  Then the output should contain:
119
119
  """
120
120
  Hello foo
@@ -144,7 +144,7 @@ Feature: EM HTTP Request
144
144
  end
145
145
  end
146
146
  """
147
- When I run "ruby make_requests.rb Hello"
147
+ When I run `ruby make_requests.rb Hello`
148
148
  Then the output should contain:
149
149
  """
150
150
  Hello foo
@@ -207,7 +207,7 @@ Feature: EM HTTP Request
207
207
  http_version: "1.1"
208
208
  """
209
209
 
210
- When I run "ruby make_requests.rb Goodbye"
210
+ When I run `ruby make_requests.rb Goodbye`
211
211
  Then the output should contain:
212
212
  """
213
213
  Hello foo
@@ -33,11 +33,11 @@ Feature: Net::HTTP
33
33
  puts Net::HTTP.new('localhost', 7777).post('/', '').body
34
34
  end
35
35
  """
36
- When I run "ruby vcr_net_http.rb --with-server"
36
+ When I run `ruby vcr_net_http.rb --with-server`
37
37
  Then the output should contain "VCR works with Net::HTTP posts!"
38
38
  And the file "cassettes/net_http.yml" should contain "body: VCR works with Net::HTTP posts!"
39
39
 
40
- When I run "ruby vcr_net_http.rb"
40
+ When I run `ruby vcr_net_http.rb`
41
41
  Then the output should contain "VCR works with Net::HTTP posts!"
42
42
 
43
43
  Examples:
@@ -65,11 +65,11 @@ Feature: Net::HTTP
65
65
  puts perform_request.body
66
66
  end
67
67
  """
68
- When I run "ruby vcr_net_http.rb --with-server"
68
+ When I run `ruby vcr_net_http.rb --with-server`
69
69
  Then the output should contain "VCR works with Net::HTTP gets!"
70
70
  And the file "cassettes/net_http.yml" should contain "body: VCR works with Net::HTTP gets!"
71
71
 
72
- When I run "ruby vcr_net_http.rb"
72
+ When I run `ruby vcr_net_http.rb`
73
73
  Then the output should contain "VCR works with Net::HTTP gets!"
74
74
 
75
75
  Examples:
@@ -97,11 +97,11 @@ Feature: Net::HTTP
97
97
  puts body
98
98
  end
99
99
  """
100
- When I run "ruby vcr_net_http.rb --with-server"
100
+ When I run `ruby vcr_net_http.rb --with-server`
101
101
  Then the output should contain "VCR works with Net::HTTP gets!"
102
102
  And the file "cassettes/net_http.yml" should contain "body: VCR works with Net::HTTP gets!"
103
103
 
104
- When I run "ruby vcr_net_http.rb"
104
+ When I run `ruby vcr_net_http.rb`
105
105
  Then the output should contain "VCR works with Net::HTTP gets!"
106
106
 
107
107
  Examples:
@@ -124,11 +124,11 @@ Feature: Net::HTTP
124
124
  puts open('http://localhost:7777/').read
125
125
  end
126
126
  """
127
- When I run "ruby vcr_net_http.rb --with-server"
127
+ When I run `ruby vcr_net_http.rb --with-server`
128
128
  Then the output should contain "VCR works with Net::HTTP gets!"
129
129
  And the file "cassettes/net_http.yml" should contain "body: VCR works with Net::HTTP gets!"
130
130
 
131
- When I run "ruby vcr_net_http.rb"
131
+ When I run `ruby vcr_net_http.rb`
132
132
  Then the output should contain "VCR works with Net::HTTP gets!"
133
133
 
134
134
  Examples:
@@ -157,12 +157,12 @@ Feature: Net::HTTP
157
157
  puts response.body
158
158
  end
159
159
  """
160
- When I run "ruby vcr_https.rb"
160
+ When I run `ruby vcr_https.rb`
161
161
  Then the output should contain "VCR gist"
162
162
  And the file "cassettes/https.yml" should contain "body: VCR gist"
163
163
 
164
164
  When I modify the file "cassettes/https.yml" to replace "body: VCR gist" with "body: HTTPS replaying works"
165
- And I run "ruby vcr_https.rb"
165
+ And I run `ruby vcr_https.rb`
166
166
  Then the output should contain "HTTPS replaying works"
167
167
 
168
168
  Examples:
@@ -45,7 +45,7 @@ Feature: Faraday middleware
45
45
  puts "Response 1: #{conn.get('/foo').body}"
46
46
  puts "Response 2: #{conn.get('/foo').body}"
47
47
  """
48
- When I run "ruby faraday_example.rb"
48
+ When I run `ruby faraday_example.rb`
49
49
  Then the output should contain:
50
50
  """
51
51
  Response 1: Hello foo 1
@@ -77,7 +77,7 @@ Feature: Faraday middleware
77
77
  puts "Response 3: #{conn.get('/bar').body}"
78
78
  puts "Response 4: #{conn.get('/bar').body}"
79
79
  """
80
- When I run "ruby faraday_example.rb"
80
+ When I run `ruby faraday_example.rb`
81
81
  Then the output should contain:
82
82
  """
83
83
  Response 1: Hello foo 1
@@ -57,7 +57,7 @@ Feature: Rack
57
57
  c.allow_http_connections_when_no_cassette = true
58
58
  end
59
59
  """
60
- When I run "ruby client.rb"
60
+ When I run `ruby client.rb`
61
61
  Then the output should contain:
62
62
  """
63
63
  Response 1: Hello foo 1
@@ -85,7 +85,7 @@ Feature: Rack
85
85
  c.allow_http_connections_when_no_cassette = true
86
86
  end
87
87
  """
88
- When I run "ruby client.rb"
88
+ When I run `ruby client.rb`
89
89
  Then the output should contain:
90
90
  """
91
91
  Response 1: Hello foo 1
@@ -58,7 +58,7 @@ Feature: :all
58
58
  puts "Response: #{response.body}"
59
59
  end
60
60
  """
61
- When I run "ruby re_record.rb"
61
+ When I run `ruby re_record.rb`
62
62
  Then it should pass with "Response: Hello"
63
63
  And the file "cassettes/example.yml" should contain "body: Hello"
64
64
  But the file "cassettes/example.yml" should not contain "body: old response"
@@ -73,7 +73,7 @@ Feature: :all
73
73
  puts "Response: #{response.body}"
74
74
  end
75
75
  """
76
- When I run "ruby record_new.rb"
76
+ When I run `ruby record_new.rb`
77
77
  Then it should pass with "Response: Goodbye"
78
78
  And the file "cassettes/example.yml" should contain each of these:
79
79
  | body: old response |
@@ -57,7 +57,7 @@ Feature: :new_episodes
57
57
  puts "Response: #{response.body}"
58
58
  end
59
59
  """
60
- When I run "ruby replay_recorded_response.rb"
60
+ When I run `ruby replay_recorded_response.rb`
61
61
  Then it should pass with "Response: example.com response"
62
62
 
63
63
  Scenario: New requests get recorded
@@ -70,7 +70,7 @@ Feature: :new_episodes
70
70
  puts "Response: #{response.body}"
71
71
  end
72
72
  """
73
- When I run "ruby record_new_requests.rb"
73
+ When I run `ruby record_new_requests.rb`
74
74
  Then it should pass with "Response: Hello"
75
75
  And the file "cassettes/example.yml" should contain each of these:
76
76
  | body: example.com response |
@@ -51,7 +51,7 @@ Feature: :none
51
51
  puts "Response: #{response.body}"
52
52
  end
53
53
  """
54
- When I run "ruby replay_recorded_response.rb"
54
+ When I run `ruby replay_recorded_response.rb`
55
55
  Then it should pass with "Response: Hello"
56
56
 
57
57
  Scenario: New requests are prevented
@@ -63,5 +63,5 @@ Feature: :none
63
63
  Net::HTTP.get_response('example.com', '/bar')
64
64
  end
65
65
  """
66
- When I run "ruby prevent_new_request.rb"
66
+ When I run `ruby prevent_new_request.rb`
67
67
  Then it should fail with "Real HTTP connections are disabled. Unregistered request: GET http://example.com/bar"
@@ -60,7 +60,7 @@ Feature: :once
60
60
  puts "Response: #{response.body}"
61
61
  end
62
62
  """
63
- When I run "ruby replay_recorded_response.rb"
63
+ When I run `ruby replay_recorded_response.rb`
64
64
  Then it should pass with "Response: example.com response"
65
65
 
66
66
  Scenario: New requests result in an error when the cassette file exists
@@ -73,7 +73,7 @@ Feature: :once
73
73
  puts "Response: #{response.body}"
74
74
  end
75
75
  """
76
- When I run "ruby error_for_new_requests_when_cassette_exists.rb"
76
+ When I run `ruby error_for_new_requests_when_cassette_exists.rb`
77
77
  Then it should fail with "Real HTTP connections are disabled"
78
78
 
79
79
  Scenario: New requests get recorded when there is no cassette file
@@ -87,6 +87,6 @@ Feature: :once
87
87
  end
88
88
  """
89
89
  When I remove the file "cassettes/example.yml"
90
- And I run "ruby record_new_requests.rb"
90
+ And I run `ruby record_new_requests.rb`
91
91
  Then it should pass with "Response: Hello"
92
92
  And the file "cassettes/example.yml" should contain "body: Hello"
@@ -69,7 +69,7 @@ Given /^the directory "([^"]*)" does not exist$/ do |dir|
69
69
  end
70
70
 
71
71
  Given /^a previously recorded cassette file "([^"]*)" with:$/ do |file_name, content|
72
- create_file(file_name, normalize_cassette_yaml(content))
72
+ write_file(file_name, normalize_cassette_yaml(content))
73
73
  end
74
74
 
75
75
  Given /^(\d+) days have passed since the cassette was recorded$/ do |day_count|
@@ -80,6 +80,10 @@ When /^I modify the file "([^"]*)" to replace "([^"]*)" with "([^"]*)"$/ do |fil
80
80
  modify_file(file_name, orig_text, new_text)
81
81
  end
82
82
 
83
+ When /^I set the "([^"]*)" environment variable to "([^"]*)"$/ do |var, value|
84
+ set_env(var, value)
85
+ end
86
+
83
87
  Then /^the file "([^"]*)" should exist$/ do |file_name|
84
88
  check_file_presence([file_name], true)
85
89
  end
@@ -90,7 +94,7 @@ end
90
94
 
91
95
  Then /^the output should contain each of the following:$/ do |table|
92
96
  table.raw.flatten.each do |string|
93
- assert_partial_output(string)
97
+ assert_partial_output(string, all_output)
94
98
  end
95
99
  end
96
100
 
@@ -2,14 +2,7 @@ require 'rubygems'
2
2
  require 'bundler'
3
3
  Bundler.setup
4
4
 
5
- # Current version of aruba won't run on JRuby or Rubinius due to
6
- # dependency on background_process. We have a work around to fix this.
7
- NEEDS_ARUBA_FIX = defined?(RUBY_ENGINE) && %w[ jruby rbx ].include?(RUBY_ENGINE)
8
-
9
- $LOAD_PATH.unshift File.dirname(__FILE__) + '/aruba_workaround' if NEEDS_ARUBA_FIX
10
-
11
- require 'aruba'
12
- require 'aruba_patches' if NEEDS_ARUBA_FIX
5
+ require 'aruba/cucumber'
13
6
 
14
7
  Before do
15
8
  this_dir = File.dirname(__FILE__)
@@ -28,3 +21,7 @@ elsif RUBY_PLATFORM == 'java'
28
21
  end
29
22
  end
30
23
 
24
+ Before do
25
+ @aruba_timeout_seconds = RUBY_PLATFORM == 'java' ? 60 : 10
26
+ end
27
+
@@ -21,7 +21,12 @@ elsif defined?(RUBY_ENGINE) && RUBY_ENGINE == 'rbx'
21
21
  UNSUPPORTED_HTTP_LIBS = %w[ patron em-http-request curb ]
22
22
  elsif RUBY_PLATFORM == 'java'
23
23
  # These gems have C extensions and can't install on JRuby.
24
- UNSUPPORTED_HTTP_LIBS = %w[ typhoeus patron curb em-http-request ]
24
+ c_dependent_libs = %w[ typhoeus patron curb em-http-request ]
25
+
26
+ # The latest version of httpclient seems to freeze up the cukes
27
+ # on JRuby. I'm not sure why, and there's little benefit to running
28
+ # them on JRuby...so we just skip them. Excon seems to have the same issue :(.
29
+ UNSUPPORTED_HTTP_LIBS = c_dependent_libs + %w[ httpclient excon ]
25
30
  elsif RUBY_VERSION == '1.8.6' && ENV['TRAVIS']
26
31
  UNSUPPORTED_HTTP_LIBS = %w[ em-http-request ]
27
32
  end
@@ -89,7 +89,7 @@ Feature: Usage with Cucumber
89
89
  When a request is made to "http://localhost:7777/disallowed_2"
90
90
  """
91
91
  And the directory "features/cassettes" does not exist
92
- When I run "cucumber WITH_SERVER=true features/vcr_example.feature"
92
+ When I run `cucumber WITH_SERVER=true features/vcr_example.feature`
93
93
  Then it should fail with "3 scenarios (2 failed, 1 passed)"
94
94
  And the output should contain each of the following:
95
95
  | Real HTTP connections are disabled. Unregistered request: GET http://localhost:7777/disallowed_1 |
@@ -101,7 +101,7 @@ Feature: Usage with Cucumber
101
101
 
102
102
  # Run again without the server; we'll get the same responses because VCR
103
103
  # will replay the recorded responses.
104
- When I run "cucumber features/vcr_example.feature"
104
+ When I run `cucumber features/vcr_example.feature`
105
105
  Then it should fail with "3 scenarios (2 failed, 1 passed)"
106
106
  And the output should contain each of the following:
107
107
  | Real HTTP connections are disabled. Unregistered request: GET http://localhost:7777/disallowed_1 |
@@ -77,7 +77,7 @@ Feature: Usage with RSpec
77
77
  c.extend VCR::RSpec::Macros
78
78
  end
79
79
  """
80
- When I run "rspec spec/vcr_example_spec.rb"
80
+ When I run `rspec spec/vcr_example_spec.rb`
81
81
  Then the output should contain "2 examples, 0 failures"
82
82
  And the file "spec/cassettes/VCR-RSpec_integration/without_an_explicit_cassette_name.yml" should contain "body: Hello"
83
83
  And the file "spec/cassettes/net_http_example.yml" should contain "body: Hello"
@@ -103,7 +103,7 @@ Feature: Usage with RSpec
103
103
  c.extend VCR::RSpec::Macros
104
104
  end
105
105
  """
106
- When I run "ruby -Ispec spec/vcr_example_spec.rb"
106
+ When I run `ruby -Ispec spec/vcr_example_spec.rb`
107
107
  Then the output should contain "2 examples, 0 failures"
108
108
  And the file "spec/cassettes/VCR-RSpec_integration/without_an_explicit_cassette_name.yml" should contain "body: Hello"
109
109
  And the file "spec/cassettes/net_http_example.yml" should contain "body: Hello"
@@ -13,18 +13,19 @@ Feature: Usage with Shoulda
13
13
  errors occur.
14
14
 
15
15
  Scenario: Use `VCR.insert_cassette` and `VCR.eject_cassette`
16
- Given a file named "test/test_helper.rb" with:
16
+ Given a file named "test/test_server.rb" with:
17
17
  """
18
- require 'test/unit'
19
- require 'shoulda'
20
18
  require 'vcr_cucumber_helpers'
21
19
 
22
- if ARGV.include?('--with-server')
23
- start_sinatra_app(:port => 7777) do
24
- get('/') { "Hello" }
25
- end
20
+ start_sinatra_app(:port => 7777) do
21
+ get('/') { "Hello" }
26
22
  end
27
-
23
+ """
24
+ Given a file named "test/test_helper.rb" with:
25
+ """
26
+ require 'test/test_server' if ENV['SERVER'] == 'true'
27
+ require 'test/unit'
28
+ require 'shoulda'
28
29
  require 'vcr'
29
30
 
30
31
  VCR.config do |c|
@@ -55,10 +56,12 @@ Feature: Usage with Shoulda
55
56
  end
56
57
  """
57
58
  And the directory "test/fixtures/vcr_cassettes" does not exist
58
- When I run "ruby -Itest test/vcr_example_test.rb -- --with-server"
59
+ When I set the "SERVER" environment variable to "true"
60
+ And I run `ruby -Itest test/vcr_example_test.rb`
59
61
  Then it should pass with "1 tests, 1 assertions, 0 failures, 0 errors"
60
62
  And the file "test/fixtures/vcr_cassettes/shoulda_example.yml" should contain "body: Hello"
61
63
 
62
64
  # Run again without starting the sinatra server so the response will be replayed
63
- When I run "ruby -Itest test/vcr_example_test.rb"
65
+ When I set the "SERVER" environment variable to "false"
66
+ And I run `ruby -Itest test/vcr_example_test.rb`
64
67
  Then it should pass with "1 tests, 1 assertions, 0 failures, 0 errors"
@@ -4,17 +4,18 @@ Feature: Usage with Test::Unit
4
4
  `VCR.use_cassette`.
5
5
 
6
6
  Scenario: Use `VCR.use_cassette` in a test
7
- Given a file named "test/test_helper.rb" with:
7
+ Given a file named "test/test_server.rb" with:
8
8
  """
9
- require 'test/unit'
10
9
  require 'vcr_cucumber_helpers'
11
10
 
12
- if ARGV.include?('--with-server')
13
- start_sinatra_app(:port => 7777) do
14
- get('/') { "Hello" }
15
- end
11
+ start_sinatra_app(:port => 7777) do
12
+ get('/') { "Hello" }
16
13
  end
17
-
14
+ """
15
+ Given a file named "test/test_helper.rb" with:
16
+ """
17
+ require 'test/test_server' if ENV['SERVER'] == 'true'
18
+ require 'test/unit'
18
19
  require 'vcr'
19
20
 
20
21
  VCR.config do |c|
@@ -37,10 +38,12 @@ Feature: Usage with Test::Unit
37
38
  end
38
39
  """
39
40
  And the directory "test/fixtures/vcr_cassettes" does not exist
40
- When I run "ruby -Itest test/vcr_example_test.rb -- --with-server"
41
+ When I set the "SERVER" environment variable to "true"
42
+ And I run `ruby -Itest test/vcr_example_test.rb`
41
43
  Then it should pass with "1 tests, 1 assertions, 0 failures, 0 errors"
42
44
  And the file "test/fixtures/vcr_cassettes/test_unit_example.yml" should contain "body: Hello"
43
45
 
44
46
  # Run again without starting the sinatra server so the response will be replayed
45
- When I run "ruby -Itest test/vcr_example_test.rb"
47
+ When I set the "SERVER" environment variable to "false"
48
+ And I run `ruby -Itest test/vcr_example_test.rb`
46
49
  Then it should pass with "1 tests, 1 assertions, 0 failures, 0 errors"