From 139b92495fa7697cdd619c549d4c7b263562b761 Mon Sep 17 00:00:00 2001 From: Jeremy Kemper Date: Sat, 5 Jan 2008 13:34:15 +0000 Subject: * Continue evolution toward ActiveSupport::TestCase and friends. #10679 [Josh Peek] * TestCase: introduce declared setup and teardown callbacks. Pass a list of methods and an optional block to call before setup or after teardown. Setup callbacks are run in the order declared; teardown callbacks are run in reverse. [Jeremy Kemper] git-svn-id: http://svn-commit.rubyonrails.org/rails/trunk@8570 5ecf4fe2-1ee6-0310-87b1-e25e094e27de --- actionmailer/lib/action_mailer/test_case.rb | 36 +++++++++++------------------ 1 file changed, 14 insertions(+), 22 deletions(-) (limited to 'actionmailer/lib') diff --git a/actionmailer/lib/action_mailer/test_case.rb b/actionmailer/lib/action_mailer/test_case.rb index 7829baa799..d474afe3a2 100644 --- a/actionmailer/lib/action_mailer/test_case.rb +++ b/actionmailer/lib/action_mailer/test_case.rb @@ -8,11 +8,13 @@ module ActionMailer "test case definition" end end - # New Test Super class for forward compatibility. - # To override + class TestCase < ActiveSupport::TestCase include ActionMailer::Quoting + setup :initialize_test_deliveries + setup :set_expected_mail + class << self def tests(mailer) write_inheritable_attribute(:mailer_class, mailer) @@ -33,28 +35,18 @@ module ActionMailer end end - def setup_with_mailer - ActionMailer::Base.delivery_method = :test - ActionMailer::Base.perform_deliveries = true - ActionMailer::Base.deliveries = [] - - @expected = TMail::Mail.new - @expected.set_content_type "text", "plain", { "charset" => charset } - @expected.mime_version = '1.0' - end - alias_method :setup, :setup_with_mailer + protected + def initialize_test_deliveries + ActionMailer::Base.delivery_method = :test + ActionMailer::Base.perform_deliveries = true + ActionMailer::Base.deliveries = [] + end - def self.method_added(method) - if method.to_s == 'setup' - unless method_defined?(:setup_without_mailer) - alias_method :setup_without_mailer, :setup - define_method(:setup) do - setup_with_mailer - setup_without_mailer - end - end + def set_expected_mail + @expected = TMail::Mail.new + @expected.set_content_type "text", "plain", { "charset" => charset } + @expected.mime_version = '1.0' end - end private def charset -- cgit v1.2.3