Removed mocha from ActionMailer
This commit is contained in:
parent
c83b117d4b
commit
c48257b0af
|
@ -9,6 +9,7 @@ silence_warnings do
|
|||
end
|
||||
|
||||
require 'active_support/testing/autorun'
|
||||
require 'active_support/testing/method_call_assertions'
|
||||
require 'action_mailer'
|
||||
require 'action_mailer/test_case'
|
||||
|
||||
|
@ -40,4 +41,6 @@ def jruby_skip(message = '')
|
|||
skip message if defined?(JRUBY_VERSION)
|
||||
end
|
||||
|
||||
require 'mocha/setup' # FIXME: stop using mocha
|
||||
class ActiveSupport::TestCase
|
||||
include ActiveSupport::Testing::MethodCallAssertions
|
||||
end
|
||||
|
|
|
@ -505,9 +505,10 @@ class BaseTest < ActiveSupport::TestCase
|
|||
end
|
||||
|
||||
test "calling deliver on the action should deliver the mail object" do
|
||||
BaseMailer.expects(:deliver_mail).once
|
||||
mail = BaseMailer.welcome.deliver_now
|
||||
assert_equal 'The first email on new API!', mail.subject
|
||||
assert_called(BaseMailer, :deliver_mail) do
|
||||
mail = BaseMailer.welcome.deliver_now
|
||||
assert_equal 'The first email on new API!', mail.subject
|
||||
end
|
||||
end
|
||||
|
||||
test "calling deliver on the action should increment the deliveries collection if using the test mailer" do
|
||||
|
@ -517,9 +518,11 @@ class BaseTest < ActiveSupport::TestCase
|
|||
|
||||
test "calling deliver, ActionMailer should yield back to mail to let it call :do_delivery on itself" do
|
||||
mail = Mail::Message.new
|
||||
mail.expects(:do_delivery).once
|
||||
BaseMailer.expects(:welcome).returns(mail)
|
||||
BaseMailer.welcome.deliver
|
||||
assert_called(mail, :do_delivery) do
|
||||
assert_called(BaseMailer, :welcome, returns: mail) do
|
||||
BaseMailer.welcome.deliver
|
||||
end
|
||||
end
|
||||
end
|
||||
|
||||
# Rendering
|
||||
|
@ -607,8 +610,9 @@ class BaseTest < ActiveSupport::TestCase
|
|||
mail_side_effects do
|
||||
ActionMailer::Base.register_observer(MyObserver)
|
||||
mail = BaseMailer.welcome
|
||||
MyObserver.expects(:delivered_email).with(mail)
|
||||
mail.deliver_now
|
||||
assert_called_with(MyObserver, :delivered_email, [mail]) do
|
||||
mail.deliver_now
|
||||
end
|
||||
end
|
||||
end
|
||||
|
||||
|
@ -616,8 +620,9 @@ class BaseTest < ActiveSupport::TestCase
|
|||
mail_side_effects do
|
||||
ActionMailer::Base.register_observer("BaseTest::MyObserver")
|
||||
mail = BaseMailer.welcome
|
||||
MyObserver.expects(:delivered_email).with(mail)
|
||||
mail.deliver_now
|
||||
assert_called_with(MyObserver, :delivered_email, [mail]) do
|
||||
mail.deliver_now
|
||||
end
|
||||
end
|
||||
end
|
||||
|
||||
|
@ -625,8 +630,9 @@ class BaseTest < ActiveSupport::TestCase
|
|||
mail_side_effects do
|
||||
ActionMailer::Base.register_observer(:"base_test/my_observer")
|
||||
mail = BaseMailer.welcome
|
||||
MyObserver.expects(:delivered_email).with(mail)
|
||||
mail.deliver_now
|
||||
assert_called_with(MyObserver, :delivered_email, [mail]) do
|
||||
mail.deliver_now
|
||||
end
|
||||
end
|
||||
end
|
||||
|
||||
|
@ -634,9 +640,11 @@ class BaseTest < ActiveSupport::TestCase
|
|||
mail_side_effects do
|
||||
ActionMailer::Base.register_observers("BaseTest::MyObserver", MySecondObserver)
|
||||
mail = BaseMailer.welcome
|
||||
MyObserver.expects(:delivered_email).with(mail)
|
||||
MySecondObserver.expects(:delivered_email).with(mail)
|
||||
mail.deliver_now
|
||||
assert_called_with(MyObserver, :delivered_email, [mail]) do
|
||||
assert_called_with(MySecondObserver, :delivered_email, [mail]) do
|
||||
mail.deliver_now
|
||||
end
|
||||
end
|
||||
end
|
||||
end
|
||||
|
||||
|
@ -654,8 +662,9 @@ class BaseTest < ActiveSupport::TestCase
|
|||
mail_side_effects do
|
||||
ActionMailer::Base.register_interceptor(MyInterceptor)
|
||||
mail = BaseMailer.welcome
|
||||
MyInterceptor.expects(:delivering_email).with(mail)
|
||||
mail.deliver_now
|
||||
assert_called_with(MyInterceptor, :delivering_email, [mail]) do
|
||||
mail.deliver_now
|
||||
end
|
||||
end
|
||||
end
|
||||
|
||||
|
@ -663,8 +672,9 @@ class BaseTest < ActiveSupport::TestCase
|
|||
mail_side_effects do
|
||||
ActionMailer::Base.register_interceptor("BaseTest::MyInterceptor")
|
||||
mail = BaseMailer.welcome
|
||||
MyInterceptor.expects(:delivering_email).with(mail)
|
||||
mail.deliver_now
|
||||
assert_called_with(MyInterceptor, :delivering_email, [mail]) do
|
||||
mail.deliver_now
|
||||
end
|
||||
end
|
||||
end
|
||||
|
||||
|
@ -672,8 +682,9 @@ class BaseTest < ActiveSupport::TestCase
|
|||
mail_side_effects do
|
||||
ActionMailer::Base.register_interceptor(:"base_test/my_interceptor")
|
||||
mail = BaseMailer.welcome
|
||||
MyInterceptor.expects(:delivering_email).with(mail)
|
||||
mail.deliver_now
|
||||
assert_called_with(MyInterceptor, :delivering_email, [mail]) do
|
||||
mail.deliver_now
|
||||
end
|
||||
end
|
||||
end
|
||||
|
||||
|
@ -681,18 +692,21 @@ class BaseTest < ActiveSupport::TestCase
|
|||
mail_side_effects do
|
||||
ActionMailer::Base.register_interceptors("BaseTest::MyInterceptor", MySecondInterceptor)
|
||||
mail = BaseMailer.welcome
|
||||
MyInterceptor.expects(:delivering_email).with(mail)
|
||||
MySecondInterceptor.expects(:delivering_email).with(mail)
|
||||
mail.deliver_now
|
||||
assert_called_with(MyInterceptor, :delivering_email, [mail]) do
|
||||
assert_called_with(MySecondInterceptor, :delivering_email, [mail]) do
|
||||
mail.deliver_now
|
||||
end
|
||||
end
|
||||
end
|
||||
end
|
||||
|
||||
test "being able to put proc's into the defaults hash and they get evaluated on mail sending" do
|
||||
mail1 = ProcMailer.welcome['X-Proc-Method']
|
||||
yesterday = 1.day.ago
|
||||
Time.stubs(:now).returns(yesterday)
|
||||
mail2 = ProcMailer.welcome['X-Proc-Method']
|
||||
assert(mail1.to_s.to_i > mail2.to_s.to_i)
|
||||
Time.stub(:now, yesterday) do
|
||||
mail2 = ProcMailer.welcome['X-Proc-Method']
|
||||
assert(mail1.to_s.to_i > mail2.to_s.to_i)
|
||||
end
|
||||
end
|
||||
|
||||
test 'default values which have to_proc (e.g. symbols) should not be considered procs' do
|
||||
|
@ -877,33 +891,50 @@ class BasePreviewInterceptorsTest < ActiveSupport::TestCase
|
|||
test "you can register a preview interceptor to the mail object that gets passed the mail object before previewing" do
|
||||
ActionMailer::Base.register_preview_interceptor(MyInterceptor)
|
||||
mail = BaseMailer.welcome
|
||||
BaseMailerPreview.any_instance.stubs(:welcome).returns(mail)
|
||||
MyInterceptor.expects(:previewing_email).with(mail)
|
||||
BaseMailerPreview.call(:welcome)
|
||||
stub_any_instance(BaseMailerPreview) do |instance|
|
||||
instance.stub(:welcome, mail) do
|
||||
assert_called_with(MyInterceptor, :previewing_email, [mail]) do
|
||||
BaseMailerPreview.call(:welcome)
|
||||
end
|
||||
end
|
||||
end
|
||||
end
|
||||
|
||||
test "you can register a preview interceptor using its stringified name to the mail object that gets passed the mail object before previewing" do
|
||||
ActionMailer::Base.register_preview_interceptor("BasePreviewInterceptorsTest::MyInterceptor")
|
||||
mail = BaseMailer.welcome
|
||||
BaseMailerPreview.any_instance.stubs(:welcome).returns(mail)
|
||||
MyInterceptor.expects(:previewing_email).with(mail)
|
||||
BaseMailerPreview.call(:welcome)
|
||||
stub_any_instance(BaseMailerPreview) do |instance|
|
||||
instance.stub(:welcome, mail) do
|
||||
assert_called_with(MyInterceptor, :previewing_email, [mail]) do
|
||||
BaseMailerPreview.call(:welcome)
|
||||
end
|
||||
end
|
||||
end
|
||||
end
|
||||
|
||||
test "you can register an interceptor using its symbolized underscored name to the mail object that gets passed the mail object before previewing" do
|
||||
ActionMailer::Base.register_preview_interceptor(:"base_preview_interceptors_test/my_interceptor")
|
||||
mail = BaseMailer.welcome
|
||||
BaseMailerPreview.any_instance.stubs(:welcome).returns(mail)
|
||||
MyInterceptor.expects(:previewing_email).with(mail)
|
||||
BaseMailerPreview.call(:welcome)
|
||||
stub_any_instance(BaseMailerPreview) do |instance|
|
||||
instance.stub(:welcome, mail) do
|
||||
assert_called_with(MyInterceptor, :previewing_email, [mail]) do
|
||||
BaseMailerPreview.call(:welcome)
|
||||
end
|
||||
end
|
||||
end
|
||||
end
|
||||
|
||||
test "you can register multiple preview interceptors to the mail object that both get passed the mail object before previewing" do
|
||||
ActionMailer::Base.register_preview_interceptors("BasePreviewInterceptorsTest::MyInterceptor", MySecondInterceptor)
|
||||
mail = BaseMailer.welcome
|
||||
BaseMailerPreview.any_instance.stubs(:welcome).returns(mail)
|
||||
MyInterceptor.expects(:previewing_email).with(mail)
|
||||
MySecondInterceptor.expects(:previewing_email).with(mail)
|
||||
BaseMailerPreview.call(:welcome)
|
||||
stub_any_instance(BaseMailerPreview) do |instance|
|
||||
instance.stub(:welcome, mail) do
|
||||
assert_called_with(MyInterceptor, :previewing_email, [mail]) do
|
||||
assert_called_with(MySecondInterceptor, :previewing_email, [mail]) do
|
||||
BaseMailerPreview.call(:welcome)
|
||||
end
|
||||
end
|
||||
end
|
||||
end
|
||||
end
|
||||
end
|
||||
|
|
|
@ -102,16 +102,21 @@ class MailDeliveryTest < ActiveSupport::TestCase
|
|||
end
|
||||
|
||||
test "ActionMailer should be told when Mail gets delivered" do
|
||||
DeliveryMailer.expects(:deliver_mail).once
|
||||
DeliveryMailer.welcome.deliver_now
|
||||
DeliveryMailer.delivery_method = :test
|
||||
assert_called(DeliveryMailer, :deliver_mail) do
|
||||
DeliveryMailer.welcome.deliver_now
|
||||
end
|
||||
end
|
||||
|
||||
test "delivery method can be customized per instance" do
|
||||
Mail::SMTP.any_instance.expects(:deliver!)
|
||||
email = DeliveryMailer.welcome.deliver_now
|
||||
assert_instance_of Mail::SMTP, email.delivery_method
|
||||
email = DeliveryMailer.welcome(delivery_method: :test).deliver_now
|
||||
assert_instance_of Mail::TestMailer, email.delivery_method
|
||||
stub_any_instance(Mail::SMTP, instance: Mail::SMTP.new({})) do |instance|
|
||||
assert_called(instance, :deliver!) do
|
||||
email = DeliveryMailer.welcome.deliver_now
|
||||
assert_instance_of Mail::SMTP, email.delivery_method
|
||||
email = DeliveryMailer.welcome(delivery_method: :test).deliver_now
|
||||
assert_instance_of Mail::TestMailer, email.delivery_method
|
||||
end
|
||||
end
|
||||
end
|
||||
|
||||
test "delivery method can be customized in subclasses not changing the parent" do
|
||||
|
@ -176,8 +181,11 @@ class MailDeliveryTest < ActiveSupport::TestCase
|
|||
old_perform_deliveries = DeliveryMailer.perform_deliveries
|
||||
begin
|
||||
DeliveryMailer.perform_deliveries = false
|
||||
Mail::Message.any_instance.expects(:deliver!).never
|
||||
DeliveryMailer.welcome.deliver_now
|
||||
stub_any_instance(Mail::Message) do |instance|
|
||||
assert_not_called(instance, :deliver!) do
|
||||
DeliveryMailer.welcome.deliver_now
|
||||
end
|
||||
end
|
||||
ensure
|
||||
DeliveryMailer.perform_deliveries = old_perform_deliveries
|
||||
end
|
||||
|
|
|
@ -53,12 +53,15 @@ class ActionMailerI18nWithControllerTest < ActionDispatch::IntegrationTest
|
|||
end
|
||||
|
||||
def test_send_mail
|
||||
Mail::SMTP.any_instance.expects(:deliver!)
|
||||
with_translation 'de', email_subject: '[Anmeldung] Willkommen' do
|
||||
ActiveSupport::Deprecation.silence do
|
||||
get '/test/send_mail'
|
||||
stub_any_instance(Mail::SMTP, instance: Mail::SMTP.new({})) do |instance|
|
||||
assert_called(instance, :deliver!) do
|
||||
with_translation 'de', email_subject: '[Anmeldung] Willkommen' do
|
||||
ActiveSupport::Deprecation.silence do
|
||||
get '/test/send_mail'
|
||||
end
|
||||
assert_equal "Mail sent - Subject: [Anmeldung] Willkommen", @response.body
|
||||
end
|
||||
end
|
||||
assert_equal "Mail sent - Subject: [Anmeldung] Willkommen", @response.body
|
||||
end
|
||||
end
|
||||
|
||||
|
|
Loading…
Reference in New Issue