Move ActionMailer::TC to AV::TC::Behavior
[#4843 state:resolved] Signed-off-by: José Valim <jose.valim@gmail.com>
This commit is contained in:
parent
7508c0e9d3
commit
d588bbd431
@ -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
|
||||
|
||||
def determine_default_mailer(name)
|
||||
name.sub(/Test$/, '').constantize
|
||||
rescue NameError => e
|
||||
raise NonInferrableMailerError.new(name)
|
||||
end
|
||||
end
|
||||
|
||||
def determine_default_mailer(name)
|
||||
name.sub(/Test$/, '').constantize
|
||||
rescue NameError => e
|
||||
raise NonInferrableMailerError.new(name)
|
||||
module InstanceMethods
|
||||
|
||||
protected
|
||||
|
||||
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 read_fixture(action)
|
||||
IO.readlines(File.join(Rails.root, 'test', 'fixtures', self.class.mailer_class.name.underscore, action))
|
||||
end
|
||||
end
|
||||
|
||||
included do
|
||||
setup :initialize_test_deliveries
|
||||
setup :set_expected_mail
|
||||
end
|
||||
end
|
||||
|
||||
protected
|
||||
def initialize_test_deliveries
|
||||
ActionMailer::Base.delivery_method = :test
|
||||
ActionMailer::Base.perform_deliveries = true
|
||||
ActionMailer::Base.deliveries.clear
|
||||
end
|
||||
include Behavior
|
||||
|
||||
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 read_fixture(action)
|
||||
IO.readlines(File.join(Rails.root, 'test', 'fixtures', self.class.mailer_class.name.underscore, action))
|
||||
end
|
||||
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'
|
||||
|
Loading…
Reference in New Issue
Block a user