From 5ab3fe5fb5fd5d501665860843b8017a47af1109 Mon Sep 17 00:00:00 2001 From: akr Date: Sun, 9 Nov 2014 09:36:33 +0000 Subject: * test/xmlrpc: Refine log test. git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@48339 b2dd03c8-39d4-4d8f-98ff-823fe69b080e --- test/xmlrpc/test_webrick_server.rb | 22 +++++++++++----------- test/xmlrpc/webrick_testing.rb | 19 +++++++++---------- 2 files changed, 20 insertions(+), 21 deletions(-) (limited to 'test/xmlrpc') diff --git a/test/xmlrpc/test_webrick_server.rb b/test/xmlrpc/test_webrick_server.rb index 36d64d5093..bc102390c3 100644 --- a/test/xmlrpc/test_webrick_server.rb +++ b/test/xmlrpc/test_webrick_server.rb @@ -11,19 +11,19 @@ module TestXMLRPC class Test_Webrick < Test::Unit::TestCase include WEBrick_Testing - @@basic_auth = WEBrick::HTTPAuth::BasicAuth.new( - :Realm => 'auth', - :UserDB => WEBrick::HTTPAuth::Htpasswd.new(File.expand_path('./htpasswd', File.dirname(__FILE__))), - :Logger => NoLog, - ) - - def create_servlet + def create_servlet(server) s = XMLRPC::WEBrickServlet.new - def s.service(req, res) - @@basic_auth.authenticate(req, res) + basic_auth = WEBrick::HTTPAuth::BasicAuth.new( + :Realm => 'auth', + :UserDB => WEBrick::HTTPAuth::Htpasswd.new(File.expand_path('./htpasswd', File.dirname(__FILE__))), + :Logger => server.logger, + ) + + class << s; self end.send(:define_method, :service) {|req, res| + basic_auth.authenticate(req, res) super(req, res) - end + } s.add_handler("test.add") do |a,b| a + b @@ -68,7 +68,7 @@ class Test_Webrick < Test::Unit::TestCase # NOTE: I don't enable SSL testing as this hangs [false].each do |use_ssl| option = setup_http_server_option(use_ssl) - with_server(option, create_servlet) {|addr| + with_server(option, method(:create_servlet)) {|addr| @s = XMLRPC::Client.new3(:host => addr.ip_address, :port => addr.ip_port, :use_ssl => use_ssl) @s.user = 'admin' @s.password = 'admin' diff --git a/test/xmlrpc/webrick_testing.rb b/test/xmlrpc/webrick_testing.rb index cfbaba07d9..37c0b69a74 100644 --- a/test/xmlrpc/webrick_testing.rb +++ b/test/xmlrpc/webrick_testing.rb @@ -2,21 +2,14 @@ require 'timeout' module TestXMLRPC module WEBrick_Testing - empty_log = Object.new - def empty_log.<<(str) - assert_equal('', str) - self - end - NoLog = WEBrick::Log.new(empty_log, WEBrick::BasicLog::WARN) - - def start_server(config={}) + def start_server(logger, config={}) raise "already started" if defined?(@__server) && @__server @__started = false @__server = WEBrick::HTTPServer.new( { :BindAddress => "localhost", - :Logger => NoLog, + :Logger => logger, :AccessLog => [], }.update(config)) yield @__server @@ -38,7 +31,12 @@ module WEBrick_Testing end def with_server(config, servlet) - addr = start_server(config) {|w| w.mount('/RPC2', create_servlet) } + log = [] + logger = WEBrick::Log.new(log, WEBrick::BasicLog::WARN) + addr = start_server(logger, config) {|w| + servlet = servlet.call(w) if servlet.respond_to? :call + w.mount('/RPC2', servlet) + } client_thread = Thread.new { begin yield addr @@ -49,6 +47,7 @@ module WEBrick_Testing server_thread = Thread.new { @__server_thread.join @__server = nil + assert_equal([], log) } assert_join_threads([client_thread, server_thread]) end -- cgit v1.2.3