faraday 0.1.2 → 0.2.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- data/LICENSE +1 -1
- data/README.rdoc +48 -61
- data/Rakefile +3 -1
- data/VERSION +1 -1
- data/faraday.gemspec +31 -14
- data/lib/faraday.rb +33 -26
- data/lib/faraday/adapter/net_http.rb +17 -31
- data/lib/faraday/adapter/patron.rb +33 -0
- data/lib/faraday/adapter/test.rb +96 -0
- data/lib/faraday/adapter/typhoeus.rb +43 -59
- data/lib/faraday/builder.rb +57 -0
- data/lib/faraday/connection.rb +112 -105
- data/lib/faraday/middleware.rb +54 -0
- data/lib/faraday/request.rb +77 -0
- data/lib/faraday/request/active_support_json.rb +20 -0
- data/lib/faraday/request/yajl.rb +18 -0
- data/lib/faraday/response.rb +41 -26
- data/lib/faraday/response/active_support_json.rb +22 -0
- data/lib/faraday/response/yajl.rb +20 -0
- data/test/adapters/live_test.rb +157 -0
- data/test/adapters/test_middleware_test.rb +28 -0
- data/test/adapters/typhoeus_test.rb +28 -0
- data/test/connection_app_test.rb +49 -0
- data/test/connection_test.rb +47 -18
- data/test/env_test.rb +35 -0
- data/test/helper.rb +5 -2
- data/test/live_server.rb +2 -15
- data/test/request_middleware_test.rb +19 -0
- data/test/response_middleware_test.rb +21 -0
- metadata +46 -16
- data/lib/faraday/adapter/mock_request.rb +0 -120
- data/lib/faraday/loadable.rb +0 -13
- data/lib/faraday/request/post_request.rb +0 -30
- data/lib/faraday/request/yajl_request.rb +0 -27
- data/lib/faraday/response/yajl_response.rb +0 -35
- data/lib/faraday/test_connection.rb +0 -5
- data/test/adapter/typhoeus_test.rb +0 -26
- data/test/adapter_test.rb +0 -118
- data/test/response_test.rb +0 -34
@@ -0,0 +1,28 @@
|
|
1
|
+
require File.expand_path(File.join(File.dirname(__FILE__), '..', 'helper'))
|
2
|
+
|
3
|
+
module Adapters
|
4
|
+
class TestMiddleware < Faraday::TestCase
|
5
|
+
describe "Test Middleware with simple path" do
|
6
|
+
before :all do
|
7
|
+
@stubs = Faraday::Adapter::Test::Stubs.new
|
8
|
+
@conn = Faraday::Connection.new do |builder|
|
9
|
+
builder.adapter :test, @stubs
|
10
|
+
end
|
11
|
+
@stubs.get('/hello') { [200, {'Content-Type' => 'text/html'}, 'hello'] }
|
12
|
+
@resp = @conn.get('/hello')
|
13
|
+
end
|
14
|
+
|
15
|
+
it "sets status" do
|
16
|
+
assert_equal 200, @resp.status
|
17
|
+
end
|
18
|
+
|
19
|
+
it "sets headers" do
|
20
|
+
assert_equal 'text/html', @resp.headers['Content-Type']
|
21
|
+
end
|
22
|
+
|
23
|
+
it "sets body" do
|
24
|
+
assert_equal 'hello', @resp.body
|
25
|
+
end
|
26
|
+
end
|
27
|
+
end
|
28
|
+
end
|
@@ -0,0 +1,28 @@
|
|
1
|
+
require File.expand_path(File.join(File.dirname(__FILE__), '..', 'helper'))
|
2
|
+
|
3
|
+
if Faraday::Adapter::Typhoeus.loaded?
|
4
|
+
module Adapters
|
5
|
+
class TestTyphoeus < Faraday::TestCase
|
6
|
+
describe "#parse_response_headers" do
|
7
|
+
before do
|
8
|
+
@adapter = Faraday::Adapter::Typhoeus.new
|
9
|
+
end
|
10
|
+
|
11
|
+
it "leaves http status line out" do
|
12
|
+
headers = @adapter.parse_response_headers("HTTP/1.1 200 OK\r\nContent-Type: text/html\r\n\r\n")
|
13
|
+
assert_equal %w(content-type), headers.keys
|
14
|
+
end
|
15
|
+
|
16
|
+
it "parses lower-cased header name and value" do
|
17
|
+
headers = @adapter.parse_response_headers("HTTP/1.1 200 OK\r\nContent-Type: text/html\r\n\r\n")
|
18
|
+
assert_equal 'text/html', headers['content-type']
|
19
|
+
end
|
20
|
+
|
21
|
+
it "parses lower-cased header name and value with colon" do
|
22
|
+
headers = @adapter.parse_response_headers("HTTP/1.1 200 OK\r\nContent-Type: text/html\r\nLocation: http://sushi.com/\r\n\r\n")
|
23
|
+
assert_equal 'http://sushi.com/', headers['location']
|
24
|
+
end
|
25
|
+
end
|
26
|
+
end
|
27
|
+
end
|
28
|
+
end
|
@@ -0,0 +1,49 @@
|
|
1
|
+
require File.expand_path(File.join(File.dirname(__FILE__), 'helper'))
|
2
|
+
|
3
|
+
class TestConnectionApps < Faraday::TestCase
|
4
|
+
class TestAdapter
|
5
|
+
def initialize(app)
|
6
|
+
@app = app
|
7
|
+
end
|
8
|
+
|
9
|
+
def call(env)
|
10
|
+
[200, {}, env[:test]]
|
11
|
+
end
|
12
|
+
end
|
13
|
+
|
14
|
+
class TestMiddleWare
|
15
|
+
def initialize(app)
|
16
|
+
@app = app
|
17
|
+
end
|
18
|
+
|
19
|
+
def call(env)
|
20
|
+
env[:test] = 'hi'
|
21
|
+
@app.call(env)
|
22
|
+
end
|
23
|
+
end
|
24
|
+
|
25
|
+
before do
|
26
|
+
@conn = Faraday::Connection.new do |b|
|
27
|
+
b.use TestMiddleWare
|
28
|
+
b.use TestAdapter
|
29
|
+
end
|
30
|
+
end
|
31
|
+
|
32
|
+
describe "#builder" do
|
33
|
+
it "is built from Faraday::Connection constructor" do
|
34
|
+
assert_kind_of Faraday::Builder, @conn.builder
|
35
|
+
assert_equal 3, @conn.builder.handlers.size
|
36
|
+
end
|
37
|
+
|
38
|
+
it "adds middleware to the Builder stack" do
|
39
|
+
assert_kind_of TestMiddleWare, @conn.builder.handlers[2].call(nil)
|
40
|
+
assert_kind_of TestAdapter, @conn.builder.handlers[1].call(nil)
|
41
|
+
end
|
42
|
+
end
|
43
|
+
|
44
|
+
describe "#to_app" do
|
45
|
+
it "returns rack-compatible object" do
|
46
|
+
assert @conn.to_app.respond_to?(:call)
|
47
|
+
end
|
48
|
+
end
|
49
|
+
end
|
data/test/connection_test.rb
CHANGED
@@ -1,6 +1,6 @@
|
|
1
1
|
require File.expand_path(File.join(File.dirname(__FILE__), 'helper'))
|
2
2
|
|
3
|
-
class
|
3
|
+
class TestConnection < Faraday::TestCase
|
4
4
|
describe "#initialize" do
|
5
5
|
it "parses @host out of given url" do
|
6
6
|
conn = Faraday::Connection.new "http://sushi.com"
|
@@ -39,92 +39,118 @@ class ConnectionTest < Faraday::TestCase
|
|
39
39
|
|
40
40
|
it "stores default params from options" do
|
41
41
|
conn = Faraday::Connection.new :params => {:a => 1}
|
42
|
-
assert_equal 1, conn.params[
|
42
|
+
assert_equal 1, conn.params['a']
|
43
|
+
end
|
44
|
+
|
45
|
+
it "stores default params from uri" do
|
46
|
+
conn = Faraday::Connection.new "http://sushi.com/fish?a=1", :params => {'b' => '2'}
|
47
|
+
assert_equal '1', conn.params['a']
|
48
|
+
assert_equal '2', conn.params['b']
|
43
49
|
end
|
44
50
|
|
45
51
|
it "stores default headers from options" do
|
46
52
|
conn = Faraday::Connection.new :headers => {:a => 1}
|
47
|
-
assert_equal 1, conn.headers[
|
53
|
+
assert_equal '1', conn.headers['A']
|
48
54
|
end
|
49
55
|
end
|
50
56
|
|
51
|
-
describe "#
|
57
|
+
describe "#build_url" do
|
52
58
|
it "uses Connection#host as default URI host" do
|
53
59
|
conn = Faraday::Connection.new
|
54
60
|
conn.host = 'sushi.com'
|
55
|
-
uri = conn.
|
61
|
+
uri = conn.build_url("/sake.html")
|
56
62
|
assert_equal 'sushi.com', uri.host
|
57
63
|
end
|
58
64
|
|
59
65
|
it "uses Connection#port as default URI port" do
|
60
66
|
conn = Faraday::Connection.new
|
61
67
|
conn.port = 23
|
62
|
-
uri = conn.
|
68
|
+
uri = conn.build_url("http://sushi.com")
|
63
69
|
assert_equal 23, uri.port
|
64
70
|
end
|
65
71
|
|
66
72
|
it "uses Connection#scheme as default URI scheme" do
|
67
73
|
conn = Faraday::Connection.new 'http://sushi.com'
|
68
|
-
uri = conn.
|
74
|
+
uri = conn.build_url("/sake.html")
|
69
75
|
assert_equal 'http', uri.scheme
|
70
76
|
end
|
71
77
|
|
72
78
|
it "uses Connection#path_prefix to customize the path" do
|
73
79
|
conn = Faraday::Connection.new
|
74
80
|
conn.path_prefix = '/fish'
|
75
|
-
uri = conn.
|
81
|
+
uri = conn.build_url("sake.html")
|
76
82
|
assert_equal '/fish/sake.html', uri.path
|
77
83
|
end
|
78
84
|
|
79
85
|
it "uses '/' Connection#path_prefix to customize the path" do
|
80
86
|
conn = Faraday::Connection.new
|
81
87
|
conn.path_prefix = '/'
|
82
|
-
uri = conn.
|
88
|
+
uri = conn.build_url("sake.html")
|
83
89
|
assert_equal '/sake.html', uri.path
|
84
90
|
end
|
85
91
|
|
86
92
|
it "forces Connection#path_prefix to be absolute" do
|
87
93
|
conn = Faraday::Connection.new
|
88
94
|
conn.path_prefix = 'fish'
|
89
|
-
uri = conn.
|
95
|
+
uri = conn.build_url("sake.html")
|
90
96
|
assert_equal '/fish/sake.html', uri.path
|
91
97
|
end
|
92
98
|
|
93
99
|
it "ignores Connection#path_prefix trailing slash" do
|
94
100
|
conn = Faraday::Connection.new
|
95
101
|
conn.path_prefix = '/fish/'
|
96
|
-
uri = conn.
|
102
|
+
uri = conn.build_url("sake.html")
|
97
103
|
assert_equal '/fish/sake.html', uri.path
|
98
104
|
end
|
99
105
|
|
100
106
|
it "allows absolute URI to ignore Connection#path_prefix" do
|
101
107
|
conn = Faraday::Connection.new
|
102
108
|
conn.path_prefix = '/fish'
|
103
|
-
uri = conn.
|
109
|
+
uri = conn.build_url("/sake.html")
|
104
110
|
assert_equal '/sake.html', uri.path
|
105
111
|
end
|
106
112
|
|
107
113
|
it "parses url/params into #path" do
|
108
114
|
conn = Faraday::Connection.new
|
109
|
-
uri = conn.
|
115
|
+
uri = conn.build_url("http://sushi.com/sake.html")
|
110
116
|
assert_equal '/sake.html', uri.path
|
111
117
|
end
|
112
118
|
|
113
119
|
it "parses url/params into #query" do
|
114
120
|
conn = Faraday::Connection.new
|
115
|
-
uri = conn.
|
121
|
+
uri = conn.build_url("http://sushi.com/sake.html", 'a[b]' => '1 + 2')
|
116
122
|
assert_equal "a%5Bb%5D=1%20%2B%202", uri.query
|
117
123
|
end
|
118
124
|
|
125
|
+
it "mashes default params and given params together" do
|
126
|
+
conn = Faraday::Connection.new 'http://sushi.com/api?token=abc', :params => {'format' => 'json'}
|
127
|
+
url = conn.build_url("nigiri?page=1", :limit => 5)
|
128
|
+
assert_match /limit=5/, url.query
|
129
|
+
assert_match /page=1/, url.query
|
130
|
+
assert_match /format=json/, url.query
|
131
|
+
assert_match /token=abc/, url.query
|
132
|
+
end
|
133
|
+
|
134
|
+
it "overrides default params with given params" do
|
135
|
+
conn = Faraday::Connection.new 'http://sushi.com/api?token=abc', :params => {'format' => 'json'}
|
136
|
+
url = conn.build_url("nigiri?page=1", :limit => 5, :token => 'def', :format => 'xml')
|
137
|
+
assert_match /limit=5/, url.query
|
138
|
+
assert_match /page=1/, url.query
|
139
|
+
assert_match /format=xml/, url.query
|
140
|
+
assert_match /token=def/, url.query
|
141
|
+
assert_no_match /format=json/, url.query
|
142
|
+
assert_no_match /token=abc/, url.query
|
143
|
+
end
|
144
|
+
|
119
145
|
it "parses url into #host" do
|
120
146
|
conn = Faraday::Connection.new
|
121
|
-
uri = conn.
|
147
|
+
uri = conn.build_url("http://sushi.com/sake.html")
|
122
148
|
assert_equal "sushi.com", uri.host
|
123
149
|
end
|
124
150
|
|
125
151
|
it "parses url into #port" do
|
126
152
|
conn = Faraday::Connection.new
|
127
|
-
uri = conn.
|
153
|
+
uri = conn.build_url("http://sushi.com/sake.html")
|
128
154
|
assert_nil uri.port
|
129
155
|
end
|
130
156
|
end
|
@@ -132,7 +158,10 @@ class ConnectionTest < Faraday::TestCase
|
|
132
158
|
describe "#params_to_query" do
|
133
159
|
it "converts hash of params to URI-escaped query string" do
|
134
160
|
conn = Faraday::Connection.new
|
135
|
-
|
161
|
+
class << conn
|
162
|
+
public :build_query
|
163
|
+
end
|
164
|
+
assert_equal "a%5Bb%5D=1%20%2B%202", conn.build_query('a[b]' => '1 + 2')
|
136
165
|
end
|
137
166
|
end
|
138
|
-
end
|
167
|
+
end
|
data/test/env_test.rb
ADDED
@@ -0,0 +1,35 @@
|
|
1
|
+
require File.expand_path(File.join(File.dirname(__FILE__), 'helper'))
|
2
|
+
|
3
|
+
class TestEnv < Faraday::TestCase
|
4
|
+
describe "Request#create" do
|
5
|
+
before :all do
|
6
|
+
@conn = Faraday::Connection.new :url => 'http://sushi.com/api'
|
7
|
+
@input = {
|
8
|
+
:body => 'abc',
|
9
|
+
:headers => {'Server' => 'Faraday'}}
|
10
|
+
@env_setup = Faraday::Request.create do |req|
|
11
|
+
req.url 'foo.json', 'a' => 1
|
12
|
+
req['Server'] = 'Faraday'
|
13
|
+
req.body = @input[:body]
|
14
|
+
end
|
15
|
+
@env = @env_setup.to_env_hash(@conn, :get)
|
16
|
+
end
|
17
|
+
|
18
|
+
it "stores method in :method" do
|
19
|
+
assert_equal :get, @env[:method]
|
20
|
+
end
|
21
|
+
|
22
|
+
it "stores Addressable::URI in :url" do
|
23
|
+
assert_equal 'http://sushi.com/api/foo.json?a=1', @env[:url].to_s
|
24
|
+
end
|
25
|
+
|
26
|
+
it "stores headers in :headers" do
|
27
|
+
assert_kind_of Rack::Utils::HeaderHash, @env[:request_headers]
|
28
|
+
assert_equal @input[:headers], @env[:request_headers]
|
29
|
+
end
|
30
|
+
|
31
|
+
it "stores body in :body" do
|
32
|
+
assert_equal @input[:body], @env[:body]
|
33
|
+
end
|
34
|
+
end
|
35
|
+
end
|
data/test/helper.rb
CHANGED
@@ -1,6 +1,5 @@
|
|
1
1
|
require 'rubygems'
|
2
2
|
require 'context'
|
3
|
-
require 'ruby-debug'
|
4
3
|
if ENV['LEFTRIGHT']
|
5
4
|
require 'leftright'
|
6
5
|
end
|
@@ -17,6 +16,10 @@ end
|
|
17
16
|
|
18
17
|
module Faraday
|
19
18
|
class TestCase < Test::Unit::TestCase
|
20
|
-
LIVE_SERVER = '
|
19
|
+
LIVE_SERVER = case ENV['LIVE']
|
20
|
+
when /^http/ then ENV['LIVE']
|
21
|
+
when nil then nil
|
22
|
+
else 'http://localhost:4567'
|
23
|
+
end
|
21
24
|
end
|
22
25
|
end
|
data/test/live_server.rb
CHANGED
@@ -17,16 +17,12 @@ get '/hello' do
|
|
17
17
|
"hello #{params[:name]}"
|
18
18
|
end
|
19
19
|
|
20
|
-
put '/hello' do
|
21
|
-
"hello #{params[:name]}"
|
22
|
-
end
|
23
|
-
|
24
20
|
post '/echo_name' do
|
25
|
-
|
21
|
+
params[:name].inspect
|
26
22
|
end
|
27
23
|
|
28
24
|
put '/echo_name' do
|
29
|
-
|
25
|
+
params[:name].inspect
|
30
26
|
end
|
31
27
|
|
32
28
|
delete '/delete_with_json' do
|
@@ -36,12 +32,3 @@ end
|
|
36
32
|
delete '/delete_with_params' do
|
37
33
|
params[:deleted]
|
38
34
|
end
|
39
|
-
|
40
|
-
get '/params' do
|
41
|
-
%(params[:a] == #{params[:a]})
|
42
|
-
end
|
43
|
-
|
44
|
-
get "/headers" do
|
45
|
-
%(env[HTTP_X_TEST] == #{env["HTTP_X_TEST"]})
|
46
|
-
end
|
47
|
-
|
@@ -0,0 +1,19 @@
|
|
1
|
+
require File.expand_path(File.join(File.dirname(__FILE__), 'helper'))
|
2
|
+
|
3
|
+
class RequestMiddlewareTest < Faraday::TestCase
|
4
|
+
describe "encoding json" do
|
5
|
+
[:yajl, :rails_json].each do |key|
|
6
|
+
encoder = Faraday::Request.lookup_module(key)
|
7
|
+
next if !encoder.loaded?
|
8
|
+
it "uses #{encoder}" do
|
9
|
+
@connection = Faraday::Connection.new do |b|
|
10
|
+
b.use encoder
|
11
|
+
b.adapter :test do |stub|
|
12
|
+
stub.post('echo_body', '{"a":1}') { |env| [200, {'Content-Type' => 'text/html'}, env[:body]] }
|
13
|
+
end
|
14
|
+
end
|
15
|
+
assert_equal %({"a":1}), @connection.post('echo_body', :a => 1).body
|
16
|
+
end
|
17
|
+
end
|
18
|
+
end
|
19
|
+
end
|
@@ -0,0 +1,21 @@
|
|
1
|
+
require File.expand_path(File.join(File.dirname(__FILE__), 'helper'))
|
2
|
+
|
3
|
+
class ResponseMiddlewareTest < Faraday::TestCase
|
4
|
+
describe "parsing json" do
|
5
|
+
[:yajl, :rails_json].each do |key|
|
6
|
+
parser = Faraday::Response.lookup_module(key)
|
7
|
+
next if !parser.loaded?
|
8
|
+
it "uses #{parser}" do
|
9
|
+
@connection = Faraday::Connection.new do |b|
|
10
|
+
b.adapter :test do |stub|
|
11
|
+
stub.get('json') { [200, {'Content-Type' => 'text/html'}, "[1,2,3]"] }
|
12
|
+
end
|
13
|
+
b.use parser
|
14
|
+
end
|
15
|
+
response = @connection.get('json')
|
16
|
+
assert response.success?
|
17
|
+
assert_equal [1,2,3], response.body
|
18
|
+
end
|
19
|
+
end
|
20
|
+
end
|
21
|
+
end
|
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: faraday
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.
|
4
|
+
version: 0.2.0
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- rick
|
@@ -9,10 +9,29 @@ autorequire:
|
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
11
|
|
12
|
-
date: 2010-01-
|
12
|
+
date: 2010-01-12 00:00:00 -08:00
|
13
13
|
default_executable:
|
14
|
-
dependencies:
|
15
|
-
|
14
|
+
dependencies:
|
15
|
+
- !ruby/object:Gem::Dependency
|
16
|
+
name: rack
|
17
|
+
type: :runtime
|
18
|
+
version_requirement:
|
19
|
+
version_requirements: !ruby/object:Gem::Requirement
|
20
|
+
requirements:
|
21
|
+
- - ">="
|
22
|
+
- !ruby/object:Gem::Version
|
23
|
+
version: "0"
|
24
|
+
version:
|
25
|
+
- !ruby/object:Gem::Dependency
|
26
|
+
name: addressable
|
27
|
+
type: :runtime
|
28
|
+
version_requirement:
|
29
|
+
version_requirements: !ruby/object:Gem::Requirement
|
30
|
+
requirements:
|
31
|
+
- - ">="
|
32
|
+
- !ruby/object:Gem::Version
|
33
|
+
version: "0"
|
34
|
+
version:
|
16
35
|
description: HTTP/REST API client library with pluggable components
|
17
36
|
email: technoweenie@gmail.com
|
18
37
|
executables: []
|
@@ -31,23 +50,30 @@ files:
|
|
31
50
|
- VERSION
|
32
51
|
- faraday.gemspec
|
33
52
|
- lib/faraday.rb
|
34
|
-
- lib/faraday/adapter/mock_request.rb
|
35
53
|
- lib/faraday/adapter/net_http.rb
|
54
|
+
- lib/faraday/adapter/patron.rb
|
55
|
+
- lib/faraday/adapter/test.rb
|
36
56
|
- lib/faraday/adapter/typhoeus.rb
|
57
|
+
- lib/faraday/builder.rb
|
37
58
|
- lib/faraday/connection.rb
|
38
59
|
- lib/faraday/error.rb
|
39
|
-
- lib/faraday/
|
40
|
-
- lib/faraday/request
|
41
|
-
- lib/faraday/request/
|
60
|
+
- lib/faraday/middleware.rb
|
61
|
+
- lib/faraday/request.rb
|
62
|
+
- lib/faraday/request/active_support_json.rb
|
63
|
+
- lib/faraday/request/yajl.rb
|
42
64
|
- lib/faraday/response.rb
|
43
|
-
- lib/faraday/response/
|
44
|
-
- lib/faraday/
|
45
|
-
- test/
|
46
|
-
- test/
|
65
|
+
- lib/faraday/response/active_support_json.rb
|
66
|
+
- lib/faraday/response/yajl.rb
|
67
|
+
- test/adapters/live_test.rb
|
68
|
+
- test/adapters/test_middleware_test.rb
|
69
|
+
- test/adapters/typhoeus_test.rb
|
70
|
+
- test/connection_app_test.rb
|
47
71
|
- test/connection_test.rb
|
72
|
+
- test/env_test.rb
|
48
73
|
- test/helper.rb
|
49
74
|
- test/live_server.rb
|
50
|
-
- test/
|
75
|
+
- test/request_middleware_test.rb
|
76
|
+
- test/response_middleware_test.rb
|
51
77
|
has_rdoc: true
|
52
78
|
homepage: http://github.com/technoweenie/faraday
|
53
79
|
licenses: []
|
@@ -77,9 +103,13 @@ signing_key:
|
|
77
103
|
specification_version: 3
|
78
104
|
summary: HTTP/REST API client library
|
79
105
|
test_files:
|
80
|
-
- test/
|
81
|
-
- test/
|
106
|
+
- test/adapters/live_test.rb
|
107
|
+
- test/adapters/test_middleware_test.rb
|
108
|
+
- test/adapters/typhoeus_test.rb
|
109
|
+
- test/connection_app_test.rb
|
82
110
|
- test/connection_test.rb
|
111
|
+
- test/env_test.rb
|
83
112
|
- test/helper.rb
|
84
113
|
- test/live_server.rb
|
85
|
-
- test/
|
114
|
+
- test/request_middleware_test.rb
|
115
|
+
- test/response_middleware_test.rb
|