diff options
author | Jeremy Kemper <jeremy@bitsweat.net> | 2008-01-05 13:34:15 +0000 |
---|---|---|
committer | Jeremy Kemper <jeremy@bitsweat.net> | 2008-01-05 13:34:15 +0000 |
commit | 139b92495fa7697cdd619c549d4c7b263562b761 (patch) | |
tree | 20589f9f23d3b19697fed12bb1bf5ce48ef595af /actionmailer/lib | |
parent | fe66397adfb5a8057db78afcabd4d7eb0f13a783 (diff) | |
download | rails-139b92495fa7697cdd619c549d4c7b263562b761.tar.gz rails-139b92495fa7697cdd619c549d4c7b263562b761.tar.bz2 rails-139b92495fa7697cdd619c549d4c7b263562b761.zip |
* 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
Diffstat (limited to 'actionmailer/lib')
-rw-r--r-- | actionmailer/lib/action_mailer/test_case.rb | 36 |
1 files changed, 14 insertions, 22 deletions
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 |