diff options
Diffstat (limited to 'actionmailer')
-rw-r--r-- | actionmailer/lib/action_mailer/test_case.rb | 88 | ||||
-rw-r--r-- | actionmailer/lib/action_mailer/test_helper.rb | 10 | ||||
-rw-r--r-- | actionmailer/test/old_base/mail_service_test.rb | 2 |
3 files changed, 55 insertions, 45 deletions
diff --git a/actionmailer/lib/action_mailer/test_case.rb b/actionmailer/lib/action_mailer/test_case.rb index d4874c6dbf..b91eed592a 100644 --- a/actionmailer/lib/action_mailer/test_case.rb +++ b/actionmailer/lib/action_mailer/test_case.rb @@ -8,55 +8,69 @@ module ActionMailer end class TestCase < ActiveSupport::TestCase - include TestHelper + module Behavior + extend ActiveSupport::Concern - setup :initialize_test_deliveries - setup :set_expected_mail + include TestHelper - class << self - def tests(mailer) - write_inheritable_attribute(:mailer_class, mailer) - end + module ClassMethods + def tests(mailer) + write_inheritable_attribute(:mailer_class, mailer) + end - def mailer_class - if mailer = read_inheritable_attribute(:mailer_class) - mailer - else - tests determine_default_mailer(name) + def mailer_class + if mailer = read_inheritable_attribute(:mailer_class) + mailer + else + tests determine_default_mailer(name) + end end - end - def determine_default_mailer(name) - name.sub(/Test$/, '').constantize - rescue NameError => e - raise NonInferrableMailerError.new(name) + def determine_default_mailer(name) + name.sub(/Test$/, '').constantize + rescue NameError => e + raise NonInferrableMailerError.new(name) + end end - end - protected - def initialize_test_deliveries - ActionMailer::Base.delivery_method = :test - ActionMailer::Base.perform_deliveries = true - ActionMailer::Base.deliveries.clear - end + module InstanceMethods - def set_expected_mail - @expected = Mail.new - @expected.content_type ["text", "plain", { "charset" => charset }] - @expected.mime_version = '1.0' - end + protected - private - def charset - "UTF-8" - end + def initialize_test_deliveries + ActionMailer::Base.delivery_method = :test + ActionMailer::Base.perform_deliveries = true + ActionMailer::Base.deliveries.clear + end + + def set_expected_mail + @expected = Mail.new + @expected.content_type ["text", "plain", { "charset" => charset }] + @expected.mime_version = '1.0' + end + + private + + def charset + "UTF-8" + end + + def encode(subject) + Mail::Encodings.q_value_encode(subject, charset) + end - def encode(subject) - Mail::Encodings.q_value_encode(subject, charset) + def read_fixture(action) + IO.readlines(File.join(Rails.root, 'test', 'fixtures', self.class.mailer_class.name.underscore, action)) + end end - def read_fixture(action) - IO.readlines(File.join(Rails.root, 'test', 'fixtures', self.class.mailer_class.name.underscore, action)) + included do + setup :initialize_test_deliveries + setup :set_expected_mail end + end + + include Behavior + end end diff --git a/actionmailer/lib/action_mailer/test_helper.rb b/actionmailer/lib/action_mailer/test_helper.rb index 3a1612442f..5beab87ad2 100644 --- a/actionmailer/lib/action_mailer/test_helper.rb +++ b/actionmailer/lib/action_mailer/test_helper.rb @@ -1,5 +1,7 @@ module ActionMailer module TestHelper + extend ActiveSupport::Concern + # Asserts that the number of emails sent matches the given number. # # def test_emails @@ -57,11 +59,3 @@ module ActionMailer end end end - -module Test - module Unit - class TestCase - include ActionMailer::TestHelper - end - end -end diff --git a/actionmailer/test/old_base/mail_service_test.rb b/actionmailer/test/old_base/mail_service_test.rb index e8e8fcedc9..527b37218a 100644 --- a/actionmailer/test/old_base/mail_service_test.rb +++ b/actionmailer/test/old_base/mail_service_test.rb @@ -1113,6 +1113,8 @@ class InheritableTemplateRootTest < ActiveSupport::TestCase end class MethodNamingTest < ActiveSupport::TestCase + include ActionMailer::TestHelper + class TestMailer < ActionMailer::Base def send body 'foo' |