diff --git a/actionmailer/CHANGELOG b/actionmailer/CHANGELOG index f1ba5910ba14f..df13a43ca154b 100644 --- a/actionmailer/CHANGELOG +++ b/actionmailer/CHANGELOG @@ -1,5 +1,7 @@ *SVN* +* Increase mail delivery test coverage. #8692 [kamal] + * Register alternative template engines using ActionMailer::Base.register_template_extension('haml'). #7534 [cwd, Josh Peek] * Only load ActionController::UrlWriter if ActionController is present [Rick Olson] diff --git a/actionmailer/test/mail_service_test.rb b/actionmailer/test/mail_service_test.rb index 2532760b4a3fc..132a714cb12af 100755 --- a/actionmailer/test/mail_service_test.rb +++ b/actionmailer/test/mail_service_test.rb @@ -276,7 +276,7 @@ def new_mail( charset="utf-8" ) def setup ActionMailer::Base.delivery_method = :test ActionMailer::Base.perform_deliveries = true - ActionMailer::Base.raise_delivery_errors + ActionMailer::Base.raise_delivery_errors = true ActionMailer::Base.deliveries = [] @original_logger = TestMailer.logger @@ -489,7 +489,16 @@ def test_doesnt_raise_errors_when_raise_delivery_errors_is_false TestMailer.any_instance.expects(:perform_delivery_test).raises(Exception) assert_nothing_raised { TestMailer.deliver_signed_up(@recipient) } end - + + def test_performs_delivery_via_sendmail + sm = mock() + sm.expects(:print).with(anything) + sm.expects(:flush) + IO.expects(:popen).once.with('/usr/sbin/sendmail -i -t', 'w+').yields(sm) + ActionMailer::Base.delivery_method = :sendmail + TestMailer.deliver_signed_up(@recipient) + end + def test_delivery_logs_sent_mail mail = TestMailer.create_signed_up(@recipient) logger = mock() diff --git a/actionmailer/test/test_helper_test.rb b/actionmailer/test/test_helper_test.rb index a22e7a5991503..08f92865caec6 100644 --- a/actionmailer/test/test_helper_test.rb +++ b/actionmailer/test/test_helper_test.rb @@ -38,6 +38,19 @@ def test_repeated_assert_emails_calls end end + def test_assert_emails_with_no_block + assert_nothing_raised do + TestHelperMailer.deliver_test + assert_emails 1 + end + + assert_nothing_raised do + TestHelperMailer.deliver_test + TestHelperMailer.deliver_test + assert_emails 3 + end + end + def test_assert_no_emails assert_nothing_raised do assert_no_emails do