diff options
author | Sean Griffin <sean@seantheprogrammer.com> | 2015-11-23 14:29:56 -0700 |
---|---|---|
committer | Sean Griffin <sean@seantheprogrammer.com> | 2015-11-23 14:29:56 -0700 |
commit | 65a61ab7c370d2894c11ce276725f723a5c9c111 (patch) | |
tree | 8f4fbe5d6b33810cf102346462c43936f98acba7 /actionmailer/test/base_test.rb | |
parent | 14314ca18302f18c3d8bb7a63e9f71ac4c2290c2 (diff) | |
parent | ff5fcf65ec1f5963e5168786277eb4437c065524 (diff) | |
download | rails-65a61ab7c370d2894c11ce276725f723a5c9c111.tar.gz rails-65a61ab7c370d2894c11ce276725f723a5c9c111.tar.bz2 rails-65a61ab7c370d2894c11ce276725f723a5c9c111.zip |
Merge pull request #18446 from cloud8421/actionmailer-unregister-interceptor
ActionMailer::Base can unregister interceptor(s).
Diffstat (limited to 'actionmailer/test/base_test.rb')
-rw-r--r-- | actionmailer/test/base_test.rb | 78 |
1 files changed, 78 insertions, 0 deletions
diff --git a/actionmailer/test/base_test.rb b/actionmailer/test/base_test.rb index 50f2c71737..9828d80044 100644 --- a/actionmailer/test/base_test.rb +++ b/actionmailer/test/base_test.rb @@ -707,6 +707,47 @@ class BaseTest < ActiveSupport::TestCase end end + test "you can unregister an interceptor to the mail object that gets passed the mail object before delivery" do + mail_side_effects do + ActionMailer::Base.register_interceptor(MyInterceptor) + ActionMailer::Base.unregister_interceptor(MyInterceptor) + mail = BaseMailer.welcome + MyInterceptor.expects(:delivering_email).with(mail).never + mail.deliver_now + end + end + + test "you can unregister an interceptor using its stringified name to the mail object that gets passed the mail object before delivery" do + mail_side_effects do + ActionMailer::Base.register_interceptor("BaseTest::MyInterceptor") + ActionMailer::Base.unregister_interceptor("BaseTest::MyInterceptor") + mail = BaseMailer.welcome + MyInterceptor.expects(:delivering_email).with(mail).never + mail.deliver_now + end + end + + test "you can unregister an interceptor using its symbolized underscored name to the mail object that gets passed the mail object before delivery" do + mail_side_effects do + ActionMailer::Base.register_interceptor(:"base_test/my_interceptor") + ActionMailer::Base.unregister_interceptor(:"base_test/my_interceptor") + mail = BaseMailer.welcome + MyInterceptor.expects(:delivering_email).with(mail).never + mail.deliver_now + end + end + + test "you can unregister multiple interceptors to the mail object that both get passed the mail object before delivery" do + mail_side_effects do + ActionMailer::Base.register_interceptors("BaseTest::MyInterceptor", MySecondInterceptor) + ActionMailer::Base.unregister_interceptors("BaseTest::MyInterceptor", MySecondInterceptor) + mail = BaseMailer.welcome + MyInterceptor.expects(:delivering_email).with(mail).never + MySecondInterceptor.expects(:delivering_email).with(mail).never + mail.deliver_now + 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 @@ -944,4 +985,41 @@ class BasePreviewInterceptorsTest < ActiveSupport::TestCase end end end + + test "you can unregister a preview interceptor to the mail object that gets passed the mail object before previewing" do + ActionMailer::Base.register_preview_interceptor(MyInterceptor) + ActionMailer::Base.unregister_preview_interceptor(MyInterceptor) + mail = BaseMailer.welcome + BaseMailerPreview.any_instance.stubs(:welcome).returns(mail) + MyInterceptor.expects(:previewing_email).with(mail).never + BaseMailerPreview.call(:welcome) + end + + test "you can unregister 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") + ActionMailer::Base.unregister_preview_interceptor("BasePreviewInterceptorsTest::MyInterceptor") + mail = BaseMailer.welcome + BaseMailerPreview.any_instance.stubs(:welcome).returns(mail) + MyInterceptor.expects(:previewing_email).with(mail).never + BaseMailerPreview.call(:welcome) + end + + test "you can unregister 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") + ActionMailer::Base.unregister_preview_interceptor(:"base_preview_interceptors_test/my_interceptor") + mail = BaseMailer.welcome + BaseMailerPreview.any_instance.stubs(:welcome).returns(mail) + MyInterceptor.expects(:previewing_email).with(mail).never + BaseMailerPreview.call(:welcome) + end + + test "you can unregister 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) + ActionMailer::Base.unregister_preview_interceptors("BasePreviewInterceptorsTest::MyInterceptor", MySecondInterceptor) + mail = BaseMailer.welcome + BaseMailerPreview.any_instance.stubs(:welcome).returns(mail) + MyInterceptor.expects(:previewing_email).with(mail).never + MySecondInterceptor.expects(:previewing_email).with(mail).never + BaseMailerPreview.call(:welcome) + end end |