Permalink
Browse files

Move ActionMailer::TC to AV::TC::Behavior

[#4843 state:resolved]

Signed-off-by: José Valim <jose.valim@gmail.com>
  • Loading branch information...
1 parent 7508c0e commit d588bbd4311fc2060167bbaa021209a91641ba11 @dchelimsky dchelimsky committed with josevalim Jun 12, 2010
@@ -8,55 +8,69 @@ def initialize(name)
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
@@ -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 @@ def assert_no_emails(&block)
end
end
end
-
-module Test
- module Unit
- class TestCase
- include ActionMailer::TestHelper
- end
- end
-end
@@ -1113,6 +1113,8 @@ def test_attr
end
class MethodNamingTest < ActiveSupport::TestCase
+ include ActionMailer::TestHelper
+
class TestMailer < ActionMailer::Base
def send
body 'foo'

0 comments on commit d588bbd

Please sign in to comment.