diff options
Diffstat (limited to 'trunk/test/net/http/test_https_proxy.rb')
-rw-r--r-- | trunk/test/net/http/test_https_proxy.rb | 37 |
1 files changed, 37 insertions, 0 deletions
diff --git a/trunk/test/net/http/test_https_proxy.rb b/trunk/test/net/http/test_https_proxy.rb new file mode 100644 index 0000000000..4f26342339 --- /dev/null +++ b/trunk/test/net/http/test_https_proxy.rb @@ -0,0 +1,37 @@ +begin + require 'net/https' +rescue LoadError +end +require 'test/unit' + +class HTTPSProxyTest < Test::Unit::TestCase + def test_https_proxy_authentication + t = nil + TCPServer.open("127.0.0.1", 0) {|serv| + _, port, _, _ = serv.addr + t = Thread.new { + proxy = Net::HTTP.Proxy("127.0.0.1", port, 'user', 'password') + http = proxy.new("foo.example.org", 8000) + http.use_ssl = true + http.verify_mode = OpenSSL::SSL::VERIFY_NONE + begin + http.start + 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 + } + ensure + t.join if t + end +end if defined?(OpenSSL) + |