summaryrefslogtreecommitdiff
path: root/test/xmlrpc
diff options
context:
space:
mode:
Diffstat (limited to 'test/xmlrpc')
-rw-r--r--test/xmlrpc/test_webrick_server.rb22
-rw-r--r--test/xmlrpc/webrick_testing.rb19
2 files changed, 20 insertions, 21 deletions
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