From 3dea8b580b9c67bb27c01290fb3b17f446544b78 Mon Sep 17 00:00:00 2001 From: Jeremy Kemper Date: Sun, 23 Sep 2007 02:11:44 +0000 Subject: [PATCH] Dispatcher tests. References #9630. git-svn-id: http://svn-commit.rubyonrails.org/rails/trunk@7591 5ecf4fe2-1ee6-0310-87b1-e25e094e27de --- railties/test/abstract_unit.rb | 10 ++++ railties/test/dispatcher_test.rb | 97 ++++++++++++------------------- railties/test/mocks/dispatcher.rb | 13 ----- 3 files changed, 46 insertions(+), 74 deletions(-) delete mode 100644 railties/test/mocks/dispatcher.rb diff --git a/railties/test/abstract_unit.rb b/railties/test/abstract_unit.rb index 68ddb0c24f..7b773531c6 100644 --- a/railties/test/abstract_unit.rb +++ b/railties/test/abstract_unit.rb @@ -15,3 +15,13 @@ end class Test::Unit::TestCase # Add stuff here if you need it end + +# Wrap tests that use Mocha and skip if unavailable. +def uses_mocha(test_name) + require 'rubygems' + gem 'mocha', '>= 0.5.5' + require 'mocha' + yield +rescue LoadError + $stderr.puts "Skipping #{test_name} tests. `gem install mocha` and try again." +end diff --git a/railties/test/dispatcher_test.rb b/railties/test/dispatcher_test.rb index 3267314b03..081d21f8d8 100644 --- a/railties/test/dispatcher_test.rb +++ b/railties/test/dispatcher_test.rb @@ -1,4 +1,7 @@ require "#{File.dirname(__FILE__)}/abstract_unit" + +uses_mocha 'dispatcher tests' do + $:.unshift File.dirname(__FILE__) + "/../../actionmailer/lib" require 'stringio' @@ -8,15 +11,6 @@ require 'dispatcher' require 'action_controller' require 'action_mailer' -ACTION_MAILER_DEF = <

400 Bad Request

", @output.string end - + def test_preparation_callbacks + ActionController::Routing::Routes.stubs(:reload) + old_mechanism = Dependencies.mechanism a = b = c = nil @@ -126,6 +91,8 @@ class DispatcherTest < Test::Unit::TestCase end def test_to_prepare_with_identifier_replaces + ActionController::Routing::Routes.stubs(:reload) + a = b = nil Dispatcher.to_prepare(:unique_id) { a = b = 1 } Dispatcher.to_prepare(:unique_id) { a = 2 } @@ -137,6 +104,12 @@ class DispatcherTest < Test::Unit::TestCase private def dispatch(output = @output) + controller = mock + controller.stubs(:process).returns(controller) + controller.stubs(:out).with(output).returns('response') + + ActionController::Routing::Routes.stubs(:recognize).returns(controller) + Dispatcher.dispatch(nil, {}, output) end @@ -144,3 +117,5 @@ class DispatcherTest < Test::Unit::TestCase assert_equal howmany, klass.subclasses.size, message end end + +end # uses_mocha diff --git a/railties/test/mocks/dispatcher.rb b/railties/test/mocks/dispatcher.rb deleted file mode 100644 index 3391f398bf..0000000000 --- a/railties/test/mocks/dispatcher.rb +++ /dev/null @@ -1,13 +0,0 @@ -class Dispatcher - class <