[前][次][番号順一覧][スレッド一覧]

ruby-changes:36206

From: akr <ko1@a...>
Date: Wed, 5 Nov 2014 23:29:52 +0900 (JST)
Subject: [ruby-changes:36206] akr:r48287 (trunk): * test/open-uri/test_open-uri.rb: Don't ignore webrick's log.

akr	2014-11-05 23:29:46 +0900 (Wed, 05 Nov 2014)

  New Revision: 48287

  http://svn.ruby-lang.org/cgi-bin/viewvc.cgi?view=revision&revision=48287

  Log:
    * test/open-uri/test_open-uri.rb: Don't ignore webrick's log.

  Modified files:
    trunk/ChangeLog
    trunk/test/open-uri/test_open-uri.rb
Index: ChangeLog
===================================================================
--- ChangeLog	(revision 48286)
+++ ChangeLog	(revision 48287)
@@ -1,3 +1,7 @@ https://github.com/ruby/ruby/blob/trunk/ChangeLog#L1
+Wed Nov  5 23:24:45 2014  Tanaka Akira  <akr@f...>
+
+	* test/open-uri/test_open-uri.rb: Don't ignore webrick's log.
+
 Wed Nov  5 19:20:08 2014  Tanaka Akira  <akr@f...>
 
 	* lib/webrick/server.rb: Stop lisntner loop properly.
Index: test/open-uri/test_open-uri.rb
===================================================================
--- test/open-uri/test_open-uri.rb	(revision 48286)
+++ test/open-uri/test_open-uri.rb	(revision 48287)
@@ -13,19 +13,26 @@ class TestOpenURI < Test::Unit::TestCase https://github.com/ruby/ruby/blob/trunk/test/open-uri/test_open-uri.rb#L13
   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 https://github.com/ruby/ruby/blob/trunk/test/open-uri/test_open-uri.rb#L83
   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 https://github.com/ruby/ruby/blob/trunk/test/open-uri/test_open-uri.rb#L408
   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 https://github.com/ruby/ruby/blob/trunk/test/open-uri/test_open-uri.rb#L418
       }
       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
 

--
ML: ruby-changes@q...
Info: http://www.atdot.net/~ko1/quickml/

[前][次][番号順一覧][スレッド一覧]