Merge branch 'master' into params-encoder

This commit is contained in:
Mislav Marohnić 2015-10-02 17:06:30 +02:00
commit dedd377c8a
5 changed files with 30 additions and 1 deletions

View File

@ -70,6 +70,12 @@ module Faraday
else
raise Error::ConnectionFailed, err
end
rescue RuntimeError => err
if err.message == "connection closed by server"
raise Error::ConnectionFailed, err
else
raise
end
rescue => err
if defined?(OpenSSL) && OpenSSL::SSL::SSLError === err
raise Faraday::SSLError, err

View File

@ -269,6 +269,15 @@ module Faraday
def_delegators :request, :params_encoder
# Public
def self.from(value)
env = super(value)
if value.respond_to?(:custom_members)
env.custom_members.update(value.custom_members)
end
env
end
# Public
def [](key)
if in_member_set?(key)

View File

@ -132,6 +132,7 @@ if [ -n "$(filter_matching "adapters" "${test_files[@]}")" ]; then
cleanup() {
if [ $? -ne 0 ] && [ -n "$TRAVIS" ]; then
cat log/test.log
cat log/proxy.log
fi
kill "$server_pid"
kill "$proxy_pid"

View File

@ -207,8 +207,10 @@ module Adapters
conn.get '/echo'
end
unless self.class.ssl_mode? && self.class.jruby?
unless self.class.ssl_mode? && (self.class.jruby? ||
adapter == :em_http || adapter == :em_synchrony)
# JRuby raises "End of file reached" which cannot be distinguished from a 407
# EM raises "connection closed by server" due to https://github.com/igrigorik/em-socksify/pull/19
assert_equal %{407 "Proxy Authentication Required "}, err.message
end
end

View File

@ -70,6 +70,17 @@ class EnvTest < Faraday::TestCase
assert_equal 'proxy.com', env.request.proxy.host
end
def test_custom_members_are_retained
env = make_env
env[:foo] = "custom 1"
env[:bar] = :custom_2
env2 = Faraday::Env.from(env)
assert_equal "custom 1", env2[:foo]
assert_equal :custom_2, env2[:bar]
env2[:baz] = "custom 3"
assert_nil env[:baz]
end
private
def make_env(method = :get, connection = @conn, &block)