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 <