From f4a5c938d461d9c5dc17f521c9efaaf352b931fa Mon Sep 17 00:00:00 2001 From: zedshaw Date: Sat, 25 Mar 2006 21:15:30 +0000 Subject: First crack at some advanced debugging features for mongrel and the console. git-svn-id: svn+ssh://rubyforge.org/var/svn/mongrel/trunk@121 19e92222-5c0b-0410-8929-a290d50e31e9 --- test/test_configurator.rb | 59 +++++++++++++++++++++++++++++++++++++++++++++++ test/test_debug.rb | 27 ++++++++++++++++++++++ 2 files changed, 86 insertions(+) create mode 100644 test/test_configurator.rb create mode 100644 test/test_debug.rb (limited to 'test') diff --git a/test/test_configurator.rb b/test/test_configurator.rb new file mode 100644 index 0000000..2fb9f85 --- /dev/null +++ b/test/test_configurator.rb @@ -0,0 +1,59 @@ +require 'test/unit' +require 'mongrel' + +$test_plugin_fired = 0 + +class TestPlugin < GemPlugin::Plugin "/handlers" + include Mongrel::HttpHandlerPlugin + + def process(request, response) + $test_plugin_fired += 1 + end +end + + +class Sentinel < GemPlugin::Plugin "/handlers" + include Mongrel::HttpHandlerPlugin + + def process(request, response) + raise "This Sentinel plugin shouldn't run." + end +end + + +class MongrelDbgTest < Test::Unit::TestCase + + def test_base_handler_config + config = Mongrel::Configurator.new :host => "localhost" do + listener :port => 3111 do + # 2 in front should run, but the sentinel shouldn't since dirhandler processes the request + uri "/", :handler => plugin("/handlers/testplugin") + uri "/", :handler => plugin("/handlers/testplugin") + uri "/", :handler => Mongrel::DirHandler.new(".", load_mime_map("examples/mime.yaml")) + uri "/", :handler => plugin("/handlers/sentinel") + + uri "/test", :handler => plugin("/handlers/testplugin") + uri "/test", :handler => plugin("/handlers/testplugin") + uri "/test", :handler => Mongrel::DirHandler.new(".", load_mime_map("examples/mime.yaml")) + uri "/test", :handler => plugin("/handlers/sentinel") + run + end + end + + res = Net::HTTP.get(URI.parse('http://localhost:3111/test')) + assert res != nil, "Didn't get a response" + assert $test_plugin_fired == 2, "Test filter plugin didn't run twice." + + + res = Net::HTTP.get(URI.parse('http://localhost:3111/')) + assert res != nil, "Didn't get a response" + assert $test_plugin_fired == 4, "Test filter plugin didn't run 4 times." + + config.stop + + assert_raise Errno::ECONNREFUSED do + res = Net::HTTP.get(URI.parse("http://localhost:3111/")) + end + end + +end diff --git a/test/test_debug.rb b/test/test_debug.rb new file mode 100644 index 0000000..7d0cb45 --- /dev/null +++ b/test/test_debug.rb @@ -0,0 +1,27 @@ +require 'test/unit' +require 'mongrel/rails' +require 'mongrel/debug' +require 'fileutils' + +class MongrelDbgTest < Test::Unit::TestCase + + def setup + FileUtils.rm_rf "mongrel_debug" + MongrelDbg::configure + end + + def test_tracing_to_log + MongrelDbg::begin_trace(:rails) + MongrelDbg::trace(:rails, "Good stuff") + MongrelDbg::end_trace(:rails) + + assert File.exist?("mongrel_debug"), "Didn't make logging directory" + assert File.exist?("mongrel_debug/rails.log"), "Didn't make the rails.log file" + assert File.size("mongrel_debug/rails.log") > 0, "Didn't write anything to the log." + + Class.report_object_creations + Class.reset_object_creations + Class.report_object_creations + end + +end -- cgit v1.2.3-24-ge0c7