From 16558f6dd83d514f783ed13e9bc24d6b66e5aefd Mon Sep 17 00:00:00 2001 From: Jeremy Kemper Date: Fri, 28 Dec 2007 05:21:24 +0000 Subject: Ensure that test case setup is run even if overridden. Closes #10382. git-svn-id: http://svn-commit.rubyonrails.org/rails/trunk@8497 5ecf4fe2-1ee6-0310-87b1-e25e094e27de --- actionpack/CHANGELOG | 2 ++ actionpack/lib/action_controller/test_case.rb | 19 ++++++++++++++++--- actionpack/test/controller/test_test.rb | 11 ++++++++++- 3 files changed, 28 insertions(+), 4 deletions(-) (limited to 'actionpack') diff --git a/actionpack/CHANGELOG b/actionpack/CHANGELOG index 98756c7582..10f4d93a82 100644 --- a/actionpack/CHANGELOG +++ b/actionpack/CHANGELOG @@ -1,5 +1,7 @@ *SVN* +* Ensure that test case setup is run even if overridden. #10382 [Josh Peek] + * Fix HTML Sanitizer to allow trailing spaces in CSS style attributes. Closes #10566 [wesley.moxam] * Add :default option to time_zone_select. #10590 [Matt Aimonetti] diff --git a/actionpack/lib/action_controller/test_case.rb b/actionpack/lib/action_controller/test_case.rb index d81cb5dae3..84610c34c0 100644 --- a/actionpack/lib/action_controller/test_case.rb +++ b/actionpack/lib/action_controller/test_case.rb @@ -44,10 +44,23 @@ module ActionController end end - def setup + def setup_with_controller @controller = self.class.controller_class.new @request = TestRequest.new @response = TestResponse.new end - end -end \ No newline at end of file + alias_method :setup, :setup_with_controller + + def self.method_added(method) + if method.to_s == 'setup' + unless method_defined?(:setup_without_controller) + alias_method :setup_without_controller, :setup + define_method(:setup) do + setup_with_controller + setup_without_controller + end + end + end + end + end +end diff --git a/actionpack/test/controller/test_test.rb b/actionpack/test/controller/test_test.rb index 11e48da91c..68eee4f4a3 100644 --- a/actionpack/test/controller/test_test.rb +++ b/actionpack/test/controller/test_test.rb @@ -614,10 +614,19 @@ class InferringClassNameTest < Test::Unit::TestCase end end +class ContentControllerTest < ActionController::TestCase + def setup + # Should not override ActionController setup methods + end + + def test_should_still_setup_controller + assert_kind_of(ContentController, @controller) + end +end + class CrazyNameTest < ActionController::TestCase tests ContentController def test_controller_class_can_be_set_manually_not_just_inferred assert_equal ContentController, self.class.controller_class end end - -- cgit v1.2.3