1
0
Fork 0
mirror of https://github.com/ruby/ruby.git synced 2022-11-09 12:17:21 -05:00
ruby--ruby/test/net/http/test_https_proxy.rb
akr 0884b1d8b1 catch EOFError in a thread.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@14240 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2007-12-15 11:12:20 +00:00

37 lines
941 B
Ruby

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)