puffing-billy 0.8.0 → 0.9.0

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: ab6b245ca1fa1295379ac58fcc023b9ae2d4be4b
4
- data.tar.gz: d2ed68617bba9beca40b228fbfb116bed58f8641
3
+ metadata.gz: 9df069d25b0352ca1208074cf35c1b8abec1ba03
4
+ data.tar.gz: 1768ffd02817406f80450fcfa92153f56144e2f0
5
5
  SHA512:
6
- metadata.gz: 7d4919dba7d0619860e035edf00580479228b3de38da97185b21356ba077f39c42add963de90f1521f30933e08f20c0e3494de359c892bb3b1e5fa1029bca704
7
- data.tar.gz: dc18d1801cf9bb821a7fefa6f093cfdfe748f8ea500058f2d60f59e422c78c5135114bacf7f110acf9001c8ea0495e0899311e364d2cea7f84bf6110814db7b6
6
+ metadata.gz: 421ec2e524b8cd62ffd2ade27c9119c6b06c7c9217f18c594ac0d1ff51530fb34b7a56d73a07e6b7e8060e89ecb7ec07003b47ae3de75f42b3b63eb9ef7ad04a
7
+ data.tar.gz: 4397dafabee3b83d326f398a27a0767c5318f1f956d8031214db7a8b366a49e63343ca6d16c1b713c1bc5416d7e3ca5b94f3c047ee4290097f1ef2a850d3b960
@@ -1,6 +1,11 @@
1
1
  language: ruby
2
2
  before_install:
3
3
  - gem install bundler
4
+ - mkdir travis-phantomjs
5
+ - wget https://s3.amazonaws.com/travis-phantomjs/phantomjs-2.0.0-ubuntu-12.04.tar.bz2 -O $PWD/travis-phantomjs/phantomjs-2.0.0-ubuntu-12.04.tar.bz2
6
+ - tar -xvf $PWD/travis-phantomjs/phantomjs-2.0.0-ubuntu-12.04.tar.bz2 -C $PWD/travis-phantomjs
7
+ - export PATH=$PWD/travis-phantomjs:$PATH
8
+ - phantomjs --version
4
9
  rvm:
5
10
  - 1.9.3
6
11
  - 2.0.0
@@ -1,3 +1,9 @@
1
+ v0.9.0, 2016-07-23
2
+ ------------------
3
+ * Add Watir web driver support [#158](https://github.com/oesmith/puffing-billy/pull/158)
4
+ * Fix response headers by anticipating EventMachine::HttpResponse behavior [#162](https://github.com/oesmith/puffing-billy/pull/162)
5
+ * Support using a Regexp in path_blacklist [#163](https://github.com/oesmith/puffing-billy/pull/163)
6
+
1
7
  v0.8.0, 2016-06-02
2
8
  ------------------
3
9
  * Add optional after_cache_handles_request callback for manipulating cached responses [#149](https://github.com/oesmith/puffing-billy/pull/149)
@@ -1,7 +1,7 @@
1
1
  PATH
2
2
  remote: .
3
3
  specs:
4
- puffing-billy (0.8.0)
4
+ puffing-billy (0.9.0)
5
5
  addressable
6
6
  em-http-request (~> 1.1.0)
7
7
  em-synchrony
@@ -126,6 +126,8 @@ GEM
126
126
  eventmachine (~> 1.0)
127
127
  rack (~> 1.0)
128
128
  thor (0.19.1)
129
+ watir-webdriver (0.9.1)
130
+ selenium-webdriver (>= 2.46.2)
129
131
  websocket (1.2.2)
130
132
  websocket-driver (0.6.2)
131
133
  websocket-extensions (>= 0.1.0)
@@ -150,6 +152,7 @@ DEPENDENCIES
150
152
  rspec
151
153
  selenium-webdriver
152
154
  thin
155
+ watir-webdriver
153
156
 
154
157
  BUNDLED WITH
155
- 1.11.2
158
+ 1.12.4
data/README.md CHANGED
@@ -1,4 +1,4 @@
1
- # Puffing Billy
1
+ # Puffing Billy [![Gem Version](https://badge.fury.io/rb/puffing-billy.svg)](https://badge.fury.io/rb/puffing-billy) [![Build Status](https://travis-ci.org/oesmith/puffing-billy.svg?branch=master)](https://travis-ci.org/oesmith/puffing-billy)
2
2
 
3
3
  A rewriting web proxy for testing interactions between your browser and
4
4
  external sites. Works with ruby + rspec.
@@ -46,10 +46,12 @@ Or install it yourself as:
46
46
 
47
47
  ## RSpec Usage
48
48
 
49
+ ### Setup for Capybara
50
+
49
51
  In your `rails_helper.rb`:
50
52
 
51
53
  ```ruby
52
- require 'billy/rspec'
54
+ require 'billy/capybara/rspec'
53
55
 
54
56
  # select a driver for your chosen browser environment
55
57
  Capybara.javascript_driver = :selenium_billy # Uses Firefox
@@ -58,11 +60,24 @@ Capybara.javascript_driver = :selenium_billy # Uses Firefox
58
60
  # Capybara.javascript_driver = :poltergeist_billy
59
61
  ```
60
62
 
61
- Note: :poltergeist_billy doesn't support proxying any localhosts, so you must use
62
- :webkit_billy for headless specs when using puffing-billy for other local rack apps.
63
+ > __Note__: `:poltergeist_billy` doesn't support proxying any localhosts, so you must use
64
+ `:webkit_billy` for headless specs when using puffing-billy for other local rack apps.
63
65
  See [this phantomjs issue](https://github.com/ariya/phantomjs/issues/11342) for any updates.
64
66
 
65
- In your tests:
67
+ ### Setup for Watir
68
+
69
+ In your `rails_helper.rb`:
70
+
71
+ ```ruby
72
+ require 'billy/watir/rspec'
73
+
74
+ # select a driver for your chosen browser environment
75
+ @browser = Billy::Browsers::Watir.new :firefox
76
+ # @browser = Billy::Browsers::Watir.new = :chrome
77
+ # @browser = Billy::Browsers::Watir.new = :phantomjs
78
+ ```
79
+
80
+ ### In your tests (Capybara/Watir)
66
81
 
67
82
  ```ruby
68
83
  # Stub and return text, json, jsonp (or anything else)
@@ -115,16 +130,6 @@ proxied to the remote server.
115
130
 
116
131
  ## Cucumber Usage
117
132
 
118
- In your `features/support/env.rb`:
119
-
120
- ```ruby
121
- require 'billy/cucumber'
122
-
123
- After do
124
- Capybara.use_default_driver
125
- end
126
- ```
127
-
128
133
  An example feature:
129
134
 
130
135
  ```
@@ -135,6 +140,18 @@ Feature: Stubbing via billy
135
140
  And a stub for google
136
141
  ```
137
142
 
143
+ ### Capybara
144
+
145
+ In your `features/support/env.rb`:
146
+
147
+ ```ruby
148
+ require 'billy/capybara/cucumber'
149
+
150
+ After do
151
+ Capybara.use_default_driver
152
+ end
153
+ ```
154
+
138
155
  And in steps:
139
156
 
140
157
  ```ruby
@@ -154,6 +171,32 @@ It's good practice to reset the driver after each scenario, so having an
154
171
  stubs are reset after each step, so any usage of a stub should be in the
155
172
  same step that it was created in.
156
173
 
174
+ ### Watir
175
+
176
+ In your `features/support/env.rb`:
177
+
178
+ ```ruby
179
+ require 'billy/watir/cucumber'
180
+
181
+ After do
182
+ @browser.close
183
+ end
184
+ ```
185
+
186
+ And in steps:
187
+
188
+ ```ruby
189
+ Before('@billy') do
190
+ @browser = Billy::Browsers::Watir.new :firefox
191
+ end
192
+
193
+ And /^a stub for google$/ do
194
+ proxy.stub('http://www.google.com/').and_return(:text => "I'm not Google!")
195
+ @browser.goto 'http://www.google.com/'
196
+ expect(@browser.text).to eq("I'm not Google!")
197
+ end
198
+ ```
199
+
157
200
  ## Minitest Usage
158
201
 
159
202
  Please see [this link](https://gist.github.com/sauy7/1b081266dd453a1b737b) for
@@ -19,53 +19,4 @@ module Billy
19
19
  proxy
20
20
  )
21
21
  end
22
-
23
- def self.register_drivers
24
- ['capybara/poltergeist', 'capybara/webkit', 'selenium/webdriver'].each do |d|
25
- begin
26
- require d
27
- rescue LoadError
28
- end
29
- end
30
-
31
- if defined?(Capybara::Poltergeist)
32
- Capybara.register_driver :poltergeist_billy do |app|
33
- options = {
34
- phantomjs_options: [
35
- '--ignore-ssl-errors=yes',
36
- "--proxy=#{Billy.proxy.host}:#{Billy.proxy.port}"
37
- ]
38
- }
39
- Capybara::Poltergeist::Driver.new(app, options)
40
- end
41
- end
42
-
43
- if defined?(Capybara::Webkit::Driver)
44
- Capybara.register_driver :webkit_billy do |app|
45
- options = {
46
- ignore_ssl_errors: true,
47
- proxy: {host: Billy.proxy.host, port: Billy.proxy.port}
48
- }
49
- Capybara::Webkit::Driver.new(app, Capybara::Webkit::Configuration.to_hash.merge(options))
50
- end
51
- end
52
-
53
- if defined?(Selenium::WebDriver)
54
- Capybara.register_driver :selenium_billy do |app|
55
- profile = Selenium::WebDriver::Firefox::Profile.new
56
- profile.assume_untrusted_certificate_issuer = false
57
- profile.proxy = Selenium::WebDriver::Proxy.new(
58
- http: "#{Billy.proxy.host}:#{Billy.proxy.port}",
59
- ssl: "#{Billy.proxy.host}:#{Billy.proxy.port}")
60
- Capybara::Selenium::Driver.new(app, profile: profile)
61
- end
62
-
63
- Capybara.register_driver :selenium_chrome_billy do |app|
64
- Capybara::Selenium::Driver.new(
65
- app, browser: :chrome,
66
- switches: ["--proxy-server=#{Billy.proxy.host}:#{Billy.proxy.port}"]
67
- )
68
- end
69
- end
70
- end
71
22
  end
@@ -0,0 +1,64 @@
1
+ require 'billy'
2
+
3
+ module Billy
4
+ module Browsers
5
+ class Capybara
6
+
7
+ DRIVERS = {
8
+ poltergeist: 'capybara/poltergeist',
9
+ webkit: 'capybara/webkit',
10
+ selenium: 'selenium/webdriver'
11
+ }
12
+
13
+ def self.register_drivers
14
+ DRIVERS.each do |name, driver|
15
+ require driver rescue next
16
+ send("register_#{name}_driver")
17
+ end
18
+ end
19
+
20
+ private
21
+
22
+ def self.register_poltergeist_driver
23
+ ::Capybara.register_driver :poltergeist_billy do |app|
24
+ options = {
25
+ phantomjs_options: [
26
+ '--ignore-ssl-errors=yes',
27
+ "--proxy=#{Billy.proxy.host}:#{Billy.proxy.port}"
28
+ ]
29
+ }
30
+ ::Capybara::Poltergeist::Driver.new(app, options)
31
+ end
32
+ end
33
+
34
+ def self.register_webkit_driver
35
+ ::Capybara.register_driver :webkit_billy do |app|
36
+ options = {
37
+ ignore_ssl_errors: true,
38
+ proxy: {host: Billy.proxy.host, port: Billy.proxy.port}
39
+ }
40
+ ::Capybara::Webkit::Driver.new(app, ::Capybara::Webkit::Configuration.to_hash.merge(options))
41
+ end
42
+ end
43
+
44
+ def self.register_selenium_driver
45
+ ::Capybara.register_driver :selenium_billy do |app|
46
+ profile = Selenium::WebDriver::Firefox::Profile.new
47
+ profile.assume_untrusted_certificate_issuer = false
48
+ profile.proxy = Selenium::WebDriver::Proxy.new(
49
+ http: "#{Billy.proxy.host}:#{Billy.proxy.port}",
50
+ ssl: "#{Billy.proxy.host}:#{Billy.proxy.port}")
51
+ ::Capybara::Selenium::Driver.new(app, profile: profile)
52
+ end
53
+
54
+ ::Capybara.register_driver :selenium_chrome_billy do |app|
55
+ ::Capybara::Selenium::Driver.new(
56
+ app, browser: :chrome,
57
+ switches: ["--proxy-server=#{Billy.proxy.host}:#{Billy.proxy.port}"]
58
+ )
59
+ end
60
+ end
61
+
62
+ end
63
+ end
64
+ end
@@ -0,0 +1,44 @@
1
+ require 'billy'
2
+ require 'watir-webdriver'
3
+
4
+ module Billy
5
+ module Browsers
6
+ class Watir < ::Watir::Browser
7
+
8
+ def initialize(name, args = {})
9
+ args = case name
10
+ when :chrome then configure_chrome(args)
11
+ when :phantomjs then configure_phantomjs(args)
12
+ when :firefox then configure_firefox(args)
13
+ else
14
+ raise NameError, "Invalid browser driver specified. (Expected: :chrome, :phantomjs, :firefox)"
15
+ end
16
+ super
17
+ end
18
+
19
+ private
20
+
21
+ def configure_chrome(args)
22
+ args[:switches] ||= []
23
+ args[:switches] += %W[--proxy-server=#{Billy.proxy.host}:#{Billy.proxy.port}]
24
+ args
25
+ end
26
+
27
+ def configure_phantomjs(args)
28
+ args[:args] ||= []
29
+ args[:args] += %W[--proxy=#{Billy.proxy.host}:#{Billy.proxy.port}]
30
+ args
31
+ end
32
+
33
+ def configure_firefox(args)
34
+ args[:profile] ||= Selenium::WebDriver::Firefox::Profile.new
35
+ args[:profile].proxy = Selenium::WebDriver::Proxy.new(
36
+ http: "#{Billy.proxy.host}:#{Billy.proxy.port}",
37
+ ssl: "#{Billy.proxy.host}:#{Billy.proxy.port}"
38
+ )
39
+ args
40
+ end
41
+
42
+ end
43
+ end
44
+ end
@@ -0,0 +1,5 @@
1
+ require 'capybara/cucumber'
2
+ require 'billy/browsers/capybara'
3
+ require 'billy/init/cucumber'
4
+
5
+ Billy::Browsers::Capybara.register_drivers
@@ -0,0 +1,5 @@
1
+ require 'capybara/rspec'
2
+ require 'billy/browsers/capybara'
3
+ require 'billy/init/rspec'
4
+
5
+ Billy::Browsers::Capybara.register_drivers
@@ -1,19 +1,4 @@
1
- require 'cucumber'
2
- require 'capybara/cucumber'
3
- require 'billy'
1
+ # Deprecated
2
+ require 'billy/capybara/cucumber'
4
3
 
5
- Billy.register_drivers
6
-
7
- module Billy
8
- module CucumberHelper
9
- def proxy
10
- Billy.proxy
11
- end
12
- end
13
- end
14
-
15
- World(Billy::CucumberHelper)
16
-
17
- After('@billy') do
18
- proxy.reset
19
- end
4
+ warn "[DEPRECATION] `require 'billy/cucumber'` is deprecated. Please use `require 'billy/capybara/cucumber'` instead."
@@ -73,9 +73,9 @@ module Billy
73
73
  response = {
74
74
  status: req.response_header.status,
75
75
  headers: req.response_header.raw,
76
- content: req.response.force_encoding('BINARY') }
76
+ content: req.response.force_encoding('BINARY')
77
+ }
77
78
  response[:headers].merge!('Connection' => 'close')
78
- response[:headers].delete('Transfer-Encoding')
79
79
  response
80
80
  end
81
81
 
@@ -111,7 +111,7 @@ module Billy
111
111
  end
112
112
 
113
113
  def blacklisted_path?(path)
114
- !Billy.config.path_blacklist.index { |bl| path.include?(bl) }.nil?
114
+ !Billy.config.path_blacklist.index { |bl| bl.is_a?(Regexp) ? path =~ bl : path.include?(bl) }.nil?
115
115
  end
116
116
 
117
117
  def successful_status?(status)
@@ -0,0 +1,15 @@
1
+ require 'cucumber'
2
+
3
+ module Billy
4
+ module CucumberHelper
5
+ def proxy
6
+ Billy.proxy
7
+ end
8
+ end
9
+ end
10
+
11
+ World(Billy::CucumberHelper)
12
+
13
+ After('@billy') do
14
+ proxy.reset
15
+ end
@@ -0,0 +1,15 @@
1
+ module Billy
2
+ module RspecHelper
3
+ def proxy
4
+ Billy.proxy
5
+ end
6
+ end
7
+ end
8
+
9
+ RSpec.configure do |config|
10
+ config.include(Billy::RspecHelper)
11
+
12
+ config.after(:each) do
13
+ proxy.reset
14
+ end
15
+ end
@@ -74,12 +74,25 @@ module Billy
74
74
 
75
75
  private
76
76
 
77
+ def prepare_response_headers_for_evma_httpserver(headers)
78
+ # Remove the headers below because they will be added later by evma_httpserver (EventMachine::DelegatedHttpResponse).
79
+ # See https://github.com/eventmachine/evma_httpserver/blob/master/lib/evma_httpserver/response.rb
80
+ headers_to_remove = [
81
+ 'transfer-encoding',
82
+ 'content-length',
83
+ 'content-encoding'
84
+ ]
85
+
86
+ headers.delete_if {|key, value| headers_to_remove.include?(key.downcase) }
87
+ end
88
+
77
89
  def send_response(response)
78
90
  res = EM::DelegatedHttpResponse.new(self)
79
91
  res.status = response[:status]
80
- res.headers = response[:headers]
92
+ res.headers = prepare_response_headers_for_evma_httpserver(response[:headers])
81
93
  res.content = response[:content]
82
94
  res.send_response
83
95
  end
96
+
84
97
  end
85
98
  end
@@ -1,20 +1,4 @@
1
- require 'capybara/rspec'
2
- require 'billy'
1
+ # Deprecated
2
+ require 'billy/capybara/rspec'
3
3
 
4
- Billy.register_drivers
5
-
6
- module Billy
7
- module RspecHelper
8
- def proxy
9
- Billy.proxy
10
- end
11
- end
12
- end
13
-
14
- RSpec.configure do |config|
15
- config.include(Billy::RspecHelper)
16
-
17
- config.after(:each) do
18
- proxy.reset
19
- end
20
- end
4
+ warn "[DEPRECATION] `require 'billy/rspec'` is deprecated. Please use `require 'billy/capybara/rspec'` instead."
@@ -1,3 +1,3 @@
1
1
  module Billy
2
- VERSION = '0.8.0'
2
+ VERSION = '0.9.0'
3
3
  end
@@ -0,0 +1,2 @@
1
+ require 'billy/browsers/watir'
2
+ require 'billy/init/cucumber'
@@ -0,0 +1,2 @@
1
+ require 'billy/browsers/watir'
2
+ require 'billy/init/rspec'
@@ -27,6 +27,7 @@ Gem::Specification.new do |gem|
27
27
  gem.add_development_dependency 'rb-inotify'
28
28
  gem.add_development_dependency 'pry'
29
29
  gem.add_development_dependency 'cucumber'
30
+ gem.add_development_dependency 'watir-webdriver'
30
31
  gem.add_runtime_dependency 'addressable'
31
32
  gem.add_runtime_dependency 'eventmachine', '~> 1.0.4'
32
33
  gem.add_runtime_dependency 'em-synchrony'
@@ -0,0 +1,20 @@
1
+ require 'spec_helper'
2
+
3
+ describe Billy::ProxyConnection do
4
+ context '#prepare_response_headers_for_evma_httpserver' do
5
+ let(:subject) { Billy::ProxyConnection.new('') }
6
+
7
+ it 'should remove duplicated headers fields' do
8
+ provided_headers = {
9
+ 'transfer-encoding' => '',
10
+ 'content-length' => '',
11
+ 'content-encoding' => '',
12
+ 'key' => 'value'
13
+ }
14
+ expected_headers = { 'key' => 'value' }
15
+ headers = subject.send(:prepare_response_headers_for_evma_httpserver, provided_headers)
16
+
17
+ expect(headers).to eql expected_headers
18
+ end
19
+ end
20
+ end
@@ -0,0 +1,18 @@
1
+ require 'spec_helper'
2
+
3
+ describe 'Watir-specific tests', type: :feature, js: true do
4
+ before do
5
+ proxy.stub('http://www.example.com/get').and_return(
6
+ text: 'Success!'
7
+ )
8
+ end
9
+
10
+ it 'should raise a NameError if an invalid browser driver is specified' do
11
+ expect{Billy::Browsers::Watir.new :invalid}.to raise_error(NameError)
12
+ end
13
+
14
+ it 'should respond to a stubbed GET request' do
15
+ @browser.goto 'http://www.example.com/get'
16
+ expect(@browser.text).to eq 'Success!'
17
+ end
18
+ end
@@ -1,5 +1,4 @@
1
1
  require 'spec_helper'
2
- require 'billy'
3
2
  require 'resolv'
4
3
 
5
4
  shared_examples_for 'a proxy server' do
@@ -135,6 +134,20 @@ shared_examples_for 'a cache' do
135
134
  it 'should be cached' do
136
135
  assert_cached_url('/api')
137
136
  end
137
+
138
+ context 'path_blacklist includes regex' do
139
+ before do
140
+ Billy.config.path_blacklist = [/widgets$/]
141
+ end
142
+
143
+ it 'should not cache a non-match' do
144
+ assert_noncached_url('/widgets/5/edit')
145
+ end
146
+
147
+ it 'should cache a match' do
148
+ assert_cached_url('/widgets')
149
+ end
150
+ end
138
151
  end
139
152
 
140
153
  context 'cache persistence' do
@@ -1,10 +1,12 @@
1
1
  Dir[File.expand_path('../support/**/*.rb', __FILE__)].each { |f| require f }
2
2
 
3
3
  require 'pry'
4
- require 'billy/rspec'
4
+ require 'billy/capybara/rspec'
5
+ require 'billy/watir/rspec'
5
6
  require 'rack'
6
7
  require 'logger'
7
8
 
9
+ browser = Billy::Browsers::Watir.new :phantomjs
8
10
  Capybara.app = Rack::Directory.new(File.expand_path('../../examples', __FILE__))
9
11
  Capybara.javascript_driver = :poltergeist_billy
10
12
 
@@ -20,6 +22,7 @@ RSpec.configure do |config|
20
22
 
21
23
  config.before :all do
22
24
  start_test_servers
25
+ @browser = browser
23
26
  end
24
27
 
25
28
  config.before :each do
@@ -29,4 +32,8 @@ RSpec.configure do |config|
29
32
  config.after :each do
30
33
  Billy.config.reset
31
34
  end
35
+
36
+ config.after :suite do
37
+ browser.close
38
+ end
32
39
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: puffing-billy
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.8.0
4
+ version: 0.9.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Olly Smith
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2016-06-02 00:00:00.000000000 Z
11
+ date: 2016-07-23 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: rspec
@@ -178,6 +178,20 @@ dependencies:
178
178
  - - ">="
179
179
  - !ruby/object:Gem::Version
180
180
  version: '0'
181
+ - !ruby/object:Gem::Dependency
182
+ name: watir-webdriver
183
+ requirement: !ruby/object:Gem::Requirement
184
+ requirements:
185
+ - - ">="
186
+ - !ruby/object:Gem::Version
187
+ version: '0'
188
+ type: :development
189
+ prerelease: false
190
+ version_requirements: !ruby/object:Gem::Requirement
191
+ requirements:
192
+ - - ">="
193
+ - !ruby/object:Gem::Version
194
+ version: '0'
181
195
  - !ruby/object:Gem::Dependency
182
196
  name: addressable
183
197
  requirement: !ruby/object:Gem::Requirement
@@ -303,7 +317,11 @@ files:
303
317
  - examples/preflight_request.html
304
318
  - examples/tumblr_api.html
305
319
  - lib/billy.rb
320
+ - lib/billy/browsers/capybara.rb
321
+ - lib/billy/browsers/watir.rb
306
322
  - lib/billy/cache.rb
323
+ - lib/billy/capybara/cucumber.rb
324
+ - lib/billy/capybara/rspec.rb
307
325
  - lib/billy/config.rb
308
326
  - lib/billy/cucumber.rb
309
327
  - lib/billy/handlers/cache_handler.rb
@@ -311,6 +329,8 @@ files:
311
329
  - lib/billy/handlers/proxy_handler.rb
312
330
  - lib/billy/handlers/request_handler.rb
313
331
  - lib/billy/handlers/stub_handler.rb
332
+ - lib/billy/init/cucumber.rb
333
+ - lib/billy/init/rspec.rb
314
334
  - lib/billy/json_utils.rb
315
335
  - lib/billy/mitm.crt
316
336
  - lib/billy/mitm.key
@@ -320,6 +340,8 @@ files:
320
340
  - lib/billy/railtie.rb
321
341
  - lib/billy/rspec.rb
322
342
  - lib/billy/version.rb
343
+ - lib/billy/watir/cucumber.rb
344
+ - lib/billy/watir/rspec.rb
323
345
  - lib/puffing-billy.rb
324
346
  - lib/puffing-billy/rspec.rb
325
347
  - lib/tasks/billy.rake
@@ -338,8 +360,10 @@ files:
338
360
  - spec/lib/billy/handlers/proxy_handler_spec.rb
339
361
  - spec/lib/billy/handlers/request_handler_spec.rb
340
362
  - spec/lib/billy/handlers/stub_handler_spec.rb
363
+ - spec/lib/billy/proxy_connection_spec.rb
341
364
  - spec/lib/billy/proxy_request_stub_spec.rb
342
365
  - spec/lib/billy/resource_utils_spec.rb
366
+ - spec/lib/billy/watir/watir_spec.rb
343
367
  - spec/lib/proxy_spec.rb
344
368
  - spec/spec_helper.rb
345
369
  - spec/support/test_server.rb
@@ -380,8 +404,10 @@ test_files:
380
404
  - spec/lib/billy/handlers/proxy_handler_spec.rb
381
405
  - spec/lib/billy/handlers/request_handler_spec.rb
382
406
  - spec/lib/billy/handlers/stub_handler_spec.rb
407
+ - spec/lib/billy/proxy_connection_spec.rb
383
408
  - spec/lib/billy/proxy_request_stub_spec.rb
384
409
  - spec/lib/billy/resource_utils_spec.rb
410
+ - spec/lib/billy/watir/watir_spec.rb
385
411
  - spec/lib/proxy_spec.rb
386
412
  - spec/spec_helper.rb
387
413
  - spec/support/test_server.rb