Merge pull request #80 from whomwah/master

Add support for http_proxy environment variable
This commit is contained in:
rick 2011-12-28 09:26:04 -08:00
commit 1e53edf46a
2 changed files with 44 additions and 17 deletions

View File

@ -33,7 +33,8 @@ module Faraday
@parallel_manager = options[:parallel]
self.url_prefix = url if url
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,6 +1,17 @@
require File.expand_path(File.join(File.dirname(__FILE__), 'helper'))
class TestConnection < Faraday::TestCase
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
conn = Faraday::Connection.new "http://sushi.com"
assert_equal 'sushi.com', conn.host
@ -202,31 +213,46 @@ class TestConnection < Faraday::TestCase
end
def test_proxy_accepts_string
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
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
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
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
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