Changes to http_proxy implimentation and tests after useful feedback

This commit is contained in:
Duncan Robertson 2011-09-10 09:45:52 +01:00
parent e262523d08
commit 22495617d2
3 changed files with 37 additions and 38 deletions

View File

@ -34,8 +34,7 @@ module Faraday
self.url_prefix = url if url
options[:proxy] = ENV['http_proxy'] if options[:proxy].nil?
proxy(options[:proxy])
proxy(options.fetch(:proxy) { ENV['http_proxy'] })
@params.update options[:params] if options[:params]
@headers.update options[:headers] if options[:headers]

View File

@ -1,13 +1,15 @@
require File.expand_path(File.join(File.dirname(__FILE__), 'helper'))
class TestConnection < Faraday::TestCase
def setup
@tmp_http_proxy = ENV['http_proxy']
ENV['http_proxy'] = nil
end
def teardown
ENV['http_proxy'] = @tmp_http_proxy
def with_proxy_env(proxy)
old_proxy = ENV['http_proxy']
ENV['http_proxy'] = proxy
begin
yield
ensure
ENV['http_proxy'] = old_proxy
end
end
def test_initialize_parses_host_out_of_given_url
@ -206,41 +208,46 @@ class TestConnection < Faraday::TestCase
end
def test_proxy_accepts_string
ENV['http_proxy'] = "http://duncan.proxy.com:80"
conn = Faraday::Connection.new
conn.proxy 'http://proxy.com'
assert_equal 'proxy.com', conn.proxy[:uri].host
assert_equal [:uri], conn.proxy.keys
with_proxy_env "http://duncan.proxy.com:80" do
conn = Faraday::Connection.new
conn.proxy 'http://proxy.com'
assert_equal 'proxy.com', conn.proxy[:uri].host
assert_equal [:uri], conn.proxy.keys
end
end
def test_proxy_accepts_uri
ENV['http_proxy'] = "http://duncan.proxy.com:80"
conn = Faraday::Connection.new
conn.proxy Addressable::URI.parse('http://proxy.com')
assert_equal 'proxy.com', conn.proxy[:uri].host
assert_equal [:uri], conn.proxy.keys
with_proxy_env "http://duncan.proxy.com:80" do
conn = Faraday::Connection.new
conn.proxy Addressable::URI.parse('http://proxy.com')
assert_equal 'proxy.com', conn.proxy[:uri].host
assert_equal [:uri], conn.proxy.keys
end
end
def test_proxy_accepts_hash_with_string_uri
ENV['http_proxy'] = "http://duncan.proxy.com:80"
conn = Faraday::Connection.new
conn.proxy :uri => 'http://proxy.com', :user => 'rick'
assert_equal 'proxy.com', conn.proxy[:uri].host
assert_equal 'rick', conn.proxy[:user]
with_proxy_env "http://duncan.proxy.com:80" do
conn = Faraday::Connection.new
conn.proxy :uri => 'http://proxy.com', :user => 'rick'
assert_equal 'proxy.com', conn.proxy[:uri].host
assert_equal 'rick', conn.proxy[:user]
end
end
def test_proxy_accepts_hash
ENV['http_proxy'] = "http://duncan.proxy.com:80"
conn = Faraday::Connection.new
conn.proxy :uri => Addressable::URI.parse('http://proxy.com'), :user => 'rick'
assert_equal 'proxy.com', conn.proxy[:uri].host
assert_equal 'rick', conn.proxy[:user]
with_proxy_env "http://duncan.proxy.com:80" do
conn = Faraday::Connection.new
conn.proxy :uri => Addressable::URI.parse('http://proxy.com'), :user => 'rick'
assert_equal 'proxy.com', conn.proxy[:uri].host
assert_equal 'rick', conn.proxy[:user]
end
end
def test_proxy_accepts_http_env
ENV['http_proxy'] = "http://duncan.proxy.com:80"
conn = Faraday::Connection.new
assert_equal 'duncan.proxy.com', conn.proxy[:uri].host
with_proxy_env "http://duncan.proxy.com:80" do
conn = Faraday::Connection.new
assert_equal 'duncan.proxy.com', conn.proxy[:uri].host
end
end
def test_proxy_requires_uri

View File

@ -2,9 +2,6 @@ require File.expand_path(File.join(File.dirname(__FILE__), 'helper'))
class EnvTest < Faraday::TestCase
def setup
@tmp_http_proxy = ENV['http_proxy']
ENV['http_proxy'] = "http://duncan.proxy.com:80"
@conn = Faraday.new :url => 'http://sushi.com/api',
:headers => {'Mime-Version' => '1.0'},
:request => {:oauth => {:consumer_key => 'anonymous'}}
@ -15,10 +12,6 @@ class EnvTest < Faraday::TestCase
@conn.proxy 'http://proxy.com'
end
def teardown
ENV['http_proxy'] = @tmp_http_proxy
end
def test_request_create_stores_method
env = make_env(:get)
assert_equal :get, env[:method]