diff options
| author | akr <akr@b2dd03c8-39d4-4d8f-98ff-823fe69b080e> | 2009-09-12 15:34:35 +0000 |
|---|---|---|
| committer | akr <akr@b2dd03c8-39d4-4d8f-98ff-823fe69b080e> | 2009-09-12 15:34:35 +0000 |
| commit | a53af270574d59b4ae99468e7abec8621e2372f4 (patch) | |
| tree | e3c3609c5918a5ca368d54c8b1c846981621827b /test | |
| parent | 8b5635c755b0c2250ea9fc6d1e2ce6ef1b11b7a7 (diff) | |
| download | ruby-a53af270574d59b4ae99468e7abec8621e2372f4.tar.gz ruby-a53af270574d59b4ae99468e7abec8621e2372f4.tar.xz ruby-a53af270574d59b4ae99468e7abec8621e2372f4.zip | |
test invalid redirect location.
git-svn-id: http://svn.ruby-lang.org/repos/ruby/trunk@24872 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
Diffstat (limited to 'test')
| -rw-r--r-- | test/open-uri/test_open-uri.rb | 29 |
1 files changed, 29 insertions, 0 deletions
diff --git a/test/open-uri/test_open-uri.rb b/test/open-uri/test_open-uri.rb index 44dcf7d87..27e4e4c60 100644 --- a/test/open-uri/test_open-uri.rb +++ b/test/open-uri/test_open-uri.rb @@ -240,6 +240,32 @@ class TestOpenURI < Test::Unit::TestCase assert_equal("ab\r\n", content) ensure Thread.kill(th) + th.join + end + } + end + + def test_redirect_invalid + TCPServer.open("127.0.0.1", 0) {|serv| + port = serv.addr[1] + th = Thread.new { + sock = serv.accept + begin + req = sock.gets("\r\n\r\n") + assert_match(%r{\AGET /foo/bar }, req) + sock.print "HTTP/1.0 302 Found\r\n" + sock.print "Location: ::\r\n\r\n" + ensure + sock.close + end + } + begin + assert_raise(OpenURI::HTTPError) { + URI("http://127.0.0.1:#{port}/foo/bar").read + } + ensure + Thread.kill(th) + th.join end } end @@ -456,6 +482,7 @@ class TestOpenURI < Test::Unit::TestCase assert_equal("content", content) ensure Thread.kill(th) + th.join end } end @@ -482,6 +509,7 @@ class TestOpenURI < Test::Unit::TestCase } ensure Thread.kill(th) + th.join end } end @@ -508,6 +536,7 @@ class TestOpenURI < Test::Unit::TestCase assert_equal("ab\r\n", content) ensure Thread.kill(th) + th.join end } end |
