mirror of
https://github.com/lostisland/faraday.git
synced 2025-08-29 00:03:58 -04:00
Fix default port numbers for Net::HTTP adapters
When Addressable::URI is used, the `port` property will be nil unless port was explicitly specified. This made Addressable unusable in HTTPS scenarios with Net::HTTP adapters, which would default to port 80 even when the scheme was "https".
This commit is contained in:
parent
1b106889a0
commit
faf501b277
@ -92,7 +92,7 @@ module Faraday
|
||||
Net::HTTP::Proxy(proxy[:uri].host, proxy[:uri].port, proxy[:user], proxy[:password])
|
||||
else
|
||||
Net::HTTP
|
||||
end.new(env[:url].host, env[:url].port)
|
||||
end.new(env[:url].host, env[:url].port || (env[:url].scheme == 'https' ? 443 : 80))
|
||||
end
|
||||
|
||||
def configure_ssl(http, ssl)
|
||||
|
||||
@ -1,4 +1,6 @@
|
||||
require File.expand_path('../integration', __FILE__)
|
||||
require 'ostruct'
|
||||
require 'uri'
|
||||
|
||||
module Adapters
|
||||
class NetHttpTest < Faraday::TestCase
|
||||
@ -10,5 +12,34 @@ module Adapters
|
||||
|
||||
Integration.apply(self, *behaviors)
|
||||
|
||||
def test_no_explicit_http_port_number
|
||||
url = URI('http://example.com')
|
||||
url.port = nil
|
||||
|
||||
adapter = Faraday::Adapter::NetHttp.new
|
||||
http = adapter.net_http_connection(:url => url, :request => {})
|
||||
|
||||
assert_equal 80, http.port
|
||||
end
|
||||
|
||||
def test_no_explicit_https_port_number
|
||||
url = URI('https://example.com')
|
||||
url.port = nil
|
||||
|
||||
adapter = Faraday::Adapter::NetHttp.new
|
||||
http = adapter.net_http_connection(:url => url, :request => {})
|
||||
|
||||
assert_equal 443, http.port
|
||||
end
|
||||
|
||||
def test_explicit_port_number
|
||||
url = URI('https://example.com:1234')
|
||||
|
||||
adapter = Faraday::Adapter::NetHttp.new
|
||||
http = adapter.net_http_connection(:url => url, :request => {})
|
||||
|
||||
assert_equal 1234, http.port
|
||||
end
|
||||
|
||||
end
|
||||
end
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user