mirror of
https://github.com/HoneyryderChuck/httpx.git
synced 2025-10-10 00:02:10 -04:00
Merge branch 'issue-252' into 'master'
test for follow redirect with relative paths Closes #252 See merge request os85/httpx!287
This commit is contained in:
commit
8f54afe7b3
@ -80,27 +80,36 @@ module Faraday
|
|||||||
timeout_options[:connect_timeout] = sec
|
timeout_options[:connect_timeout] = sec
|
||||||
end
|
end
|
||||||
|
|
||||||
ssl_options = {}
|
|
||||||
|
|
||||||
unless env.ssl.verify.nil?
|
|
||||||
ssl_options[:verify_mode] = env.ssl.verify ? OpenSSL::SSL::VERIFY_PEER : OpenSSL::SSL::VERIFY_NONE
|
|
||||||
end
|
|
||||||
|
|
||||||
ssl_options[:ca_file] = env.ssl.ca_file if env.ssl.ca_file
|
|
||||||
ssl_options[:ca_path] = env.ssl.ca_path if env.ssl.ca_path
|
|
||||||
ssl_options[:cert_store] = env.ssl.cert_store if env.ssl.cert_store
|
|
||||||
ssl_options[:cert] = env.ssl.client_cert if env.ssl.client_cert
|
|
||||||
ssl_options[:key] = env.ssl.client_key if env.ssl.client_key
|
|
||||||
ssl_options[:ssl_version] = env.ssl.version if env.ssl.version
|
|
||||||
ssl_options[:verify_depth] = env.ssl.verify_depth if env.ssl.verify_depth
|
|
||||||
ssl_options[:min_version] = env.ssl.min_version if env.ssl.min_version
|
|
||||||
ssl_options[:max_version] = env.ssl.max_version if env.ssl.max_version
|
|
||||||
|
|
||||||
{
|
{
|
||||||
ssl: ssl_options,
|
ssl: ssl_options_from_env(env),
|
||||||
timeout: timeout_options,
|
timeout: timeout_options,
|
||||||
}
|
}
|
||||||
end
|
end
|
||||||
|
|
||||||
|
if defined?(::OpenSSL)
|
||||||
|
def ssl_options_from_env(env)
|
||||||
|
ssl_options = {}
|
||||||
|
|
||||||
|
unless env.ssl.verify.nil?
|
||||||
|
ssl_options[:verify_mode] = env.ssl.verify ? OpenSSL::SSL::VERIFY_PEER : OpenSSL::SSL::VERIFY_NONE
|
||||||
|
end
|
||||||
|
|
||||||
|
ssl_options[:ca_file] = env.ssl.ca_file if env.ssl.ca_file
|
||||||
|
ssl_options[:ca_path] = env.ssl.ca_path if env.ssl.ca_path
|
||||||
|
ssl_options[:cert_store] = env.ssl.cert_store if env.ssl.cert_store
|
||||||
|
ssl_options[:cert] = env.ssl.client_cert if env.ssl.client_cert
|
||||||
|
ssl_options[:key] = env.ssl.client_key if env.ssl.client_key
|
||||||
|
ssl_options[:ssl_version] = env.ssl.version if env.ssl.version
|
||||||
|
ssl_options[:verify_depth] = env.ssl.verify_depth if env.ssl.verify_depth
|
||||||
|
ssl_options[:min_version] = env.ssl.min_version if env.ssl.min_version
|
||||||
|
ssl_options[:max_version] = env.ssl.max_version if env.ssl.max_version
|
||||||
|
ssl_options
|
||||||
|
end
|
||||||
|
else
|
||||||
|
def ssl_options_from_env(*)
|
||||||
|
{}
|
||||||
|
end
|
||||||
|
end
|
||||||
end
|
end
|
||||||
|
|
||||||
include RequestMixin
|
include RequestMixin
|
||||||
|
@ -4,4 +4,8 @@ require "socket"
|
|||||||
require "httpx/io/udp"
|
require "httpx/io/udp"
|
||||||
require "httpx/io/tcp"
|
require "httpx/io/tcp"
|
||||||
require "httpx/io/unix"
|
require "httpx/io/unix"
|
||||||
require "httpx/io/ssl"
|
|
||||||
|
begin
|
||||||
|
require "httpx/io/ssl"
|
||||||
|
rescue LoadError
|
||||||
|
end
|
||||||
|
@ -23,6 +23,16 @@ module Requests
|
|||||||
verify_status(response, 304)
|
verify_status(response, 304)
|
||||||
end
|
end
|
||||||
|
|
||||||
|
def test_plugin_follow_redirects_relative_path
|
||||||
|
session = HTTPX.plugin(:follow_redirects)
|
||||||
|
uri = redirect_uri("../get")
|
||||||
|
|
||||||
|
redirect_response = session.get(uri)
|
||||||
|
body = json_body(redirect_response)
|
||||||
|
assert body.key?("url"), "url should be set"
|
||||||
|
assert body["url"] == redirect_location, "url should have been the given redirection url"
|
||||||
|
end
|
||||||
|
|
||||||
def test_plugin_follow_redirects_default_max_redirects
|
def test_plugin_follow_redirects_default_max_redirects
|
||||||
session = HTTPX.plugin(:follow_redirects)
|
session = HTTPX.plugin(:follow_redirects)
|
||||||
|
|
||||||
|
Loading…
x
Reference in New Issue
Block a user