diff options
Diffstat (limited to 'test/net/http/test_https_proxy.rb')
| -rw-r--r-- | test/net/http/test_https_proxy.rb | 40 |
1 files changed, 25 insertions, 15 deletions
diff --git a/test/net/http/test_https_proxy.rb b/test/net/http/test_https_proxy.rb index 4f26342339..f833f1a1e3 100644 --- a/test/net/http/test_https_proxy.rb +++ b/test/net/http/test_https_proxy.rb @@ -1,3 +1,4 @@ +# frozen_string_literal: false begin require 'net/https' rescue LoadError @@ -6,10 +7,15 @@ require 'test/unit' class HTTPSProxyTest < Test::Unit::TestCase def test_https_proxy_authentication - t = nil + begin + OpenSSL + rescue LoadError + skip 'autoload problem. see [ruby-dev:45021][Bug #5786]' + end + TCPServer.open("127.0.0.1", 0) {|serv| _, port, _, _ = serv.addr - t = Thread.new { + client_thread = Thread.new { proxy = Net::HTTP.Proxy("127.0.0.1", port, 'user', 'password') http = proxy.new("foo.example.org", 8000) http.use_ssl = true @@ -19,19 +25,23 @@ class HTTPSProxyTest < Test::Unit::TestCase rescue EOFError end } - sock = serv.accept - proxy_request = sock.gets("\r\n\r\n") - assert_equal( - "CONNECT foo.example.org:8000 HTTP/1.1\r\n" + - "Host: foo.example.org:8000\r\n" + - "Proxy-Authorization: Basic dXNlcjpwYXNzd29yZA==\r\n" + - "\r\n", - proxy_request, - "[ruby-dev:25673]") - sock.close + server_thread = Thread.new { + sock = serv.accept + begin + proxy_request = sock.gets("\r\n\r\n") + assert_equal( + "CONNECT foo.example.org:8000 HTTP/1.1\r\n" + + "Host: foo.example.org:8000\r\n" + + "Proxy-Authorization: Basic dXNlcjpwYXNzd29yZA==\r\n" + + "\r\n", + proxy_request, + "[ruby-dev:25673]") + ensure + sock.close + end + } + assert_join_threads([client_thread, server_thread]) } - ensure - t.join if t end end if defined?(OpenSSL) - + |
