summaryrefslogtreecommitdiff
path: root/test
diff options
context:
space:
mode:
Diffstat (limited to 'test')
-rw-r--r--test/net/http/test_https_proxy.rb31
1 files changed, 17 insertions, 14 deletions
diff --git a/test/net/http/test_https_proxy.rb b/test/net/http/test_https_proxy.rb
index 57cabf05e0..1c8503b7e1 100644
--- a/test/net/http/test_https_proxy.rb
+++ b/test/net/http/test_https_proxy.rb
@@ -12,10 +12,9 @@ class HTTPSProxyTest < Test::Unit::TestCase
skip 'autoload problem. see [ruby-dev:45021][Bug #5786]'
end
- t = nil
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
@@ -25,19 +24,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)