From f4c848e158e469e031aa29a503526345e97cab75 Mon Sep 17 00:00:00 2001 From: akr Date: Wed, 5 Nov 2014 14:29:46 +0000 Subject: * test/open-uri/test_open-uri.rb: Don't ignore webrick's log. git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@48287 b2dd03c8-39d4-4d8f-98ff-823fe69b080e --- test/open-uri/test_open-uri.rb | 21 ++++++++++++++++----- 1 file changed, 16 insertions(+), 5 deletions(-) (limited to 'test/open-uri/test_open-uri.rb') diff --git a/test/open-uri/test_open-uri.rb b/test/open-uri/test_open-uri.rb index 51af8842d1..ce00b343f7 100644 --- a/test/open-uri/test_open-uri.rb +++ b/test/open-uri/test_open-uri.rb @@ -13,19 +13,26 @@ class TestOpenURI < Test::Unit::TestCase def NullLog.<<(arg) end - def with_http + def with_http(capture_log=false) + if capture_log + log = StringIO.new('') + logger = WEBrick::Log.new(log, WEBrick::BasicLog::WARN) + else + log = nil + logger = WEBrick::Log.new($stdout, WEBrick::BasicLog::WARN) + end Dir.mktmpdir {|dr| srv = WEBrick::HTTPServer.new({ :DocumentRoot => dr, :ServerType => Thread, - :Logger => WEBrick::Log.new(NullLog), + :Logger => logger, :AccessLog => [[NullLog, ""]], :BindAddress => '127.0.0.1', :Port => 0}) _, port, _, host = srv.listeners[0].addr begin th = srv.start - yield srv, dr, "http://#{host}:#{port}" + yield srv, dr, "http://#{host}:#{port}", log ensure srv.shutdown th.join @@ -76,9 +83,10 @@ class TestOpenURI < Test::Unit::TestCase end def test_404 - with_http {|srv, dr, url| + with_http(true) {|srv, dr, url, log| exc = assert_raise(OpenURI::HTTPError) { open("#{url}/not-exist") {} } assert_equal("404", exc.io.status[0]) + assert_match(%r{ERROR `/not-exist' not found}, log.string) } end @@ -400,7 +408,7 @@ class TestOpenURI < Test::Unit::TestCase end def test_redirect_auth - with_http {|srv, dr, url| + with_http(true) {|srv, dr, url, log| srv.mount_proc("/r1/") {|req, res| res.status = 301; res["location"] = "#{url}/r2" } srv.mount_proc("/r2/") {|req, res| if req["Authorization"] != "Basic #{['user:pass'].pack('m').chomp}" @@ -410,11 +418,14 @@ class TestOpenURI < Test::Unit::TestCase } exc = assert_raise(OpenURI::HTTPError) { open("#{url}/r2/") {} } assert_equal("401", exc.io.status[0]) + assert_match(/ERROR WEBrick::HTTPStatus::Unauthorized/, log.string) + log.rewind; log.truncate(0) open("#{url}/r2/", :http_basic_authentication=>['user', 'pass']) {|f| assert_equal("r2", f.read) } exc = assert_raise(OpenURI::HTTPError) { open("#{url}/r1/", :http_basic_authentication=>['user', 'pass']) {} } assert_equal("401", exc.io.status[0]) + assert_match(/ERROR WEBrick::HTTPStatus::Unauthorized/, log.string) } end -- cgit v1.2.3