aboutsummaryrefslogtreecommitdiffstats
path: root/test
diff options
context:
space:
mode:
Diffstat (limited to 'test')
-rw-r--r--test/test_helper.rb8
-rw-r--r--test/unit/mailbox/bouncing_test.rb29
2 files changed, 37 insertions, 0 deletions
diff --git a/test/test_helper.rb b/test/test_helper.rb
index b042cfb679..264f9e8482 100644
--- a/test/test_helper.rb
+++ b/test/test_helper.rb
@@ -32,3 +32,11 @@ if ARGV.include?("-v")
ActiveRecord::Base.logger = Logger.new(STDOUT)
ActiveJob::Base.logger = Logger.new(STDOUT)
end
+
+class BounceMailer < ActionMailer::Base
+ def bounce(to:)
+ mail from: "receiver@example.com", to: to, subject: "Your email was not delivered" do |format|
+ format.html { render plain: "Sorry!" }
+ end
+ end
+end
diff --git a/test/unit/mailbox/bouncing_test.rb b/test/unit/mailbox/bouncing_test.rb
new file mode 100644
index 0000000000..6ac806ba29
--- /dev/null
+++ b/test/unit/mailbox/bouncing_test.rb
@@ -0,0 +1,29 @@
+require_relative '../../test_helper'
+
+class BouncingWithReplyMailbox < ActionMailbox::Base
+ def process
+ bounce_with BounceMailer.bounce(to: mail.from)
+ end
+end
+
+class ActionMailbox::Base::BouncingTest < ActiveSupport::TestCase
+ include ActionMailer::TestHelper
+
+ setup do
+ @inbound_email = create_inbound_email_from_mail \
+ from: "sender@example.com", to: "replies@example.com", subject: "Bounce me"
+ end
+
+ test "bouncing with a reply" do
+ perform_enqueued_jobs only: ActionMailer::DeliveryJob do
+ BouncingWithReplyMailbox.receive @inbound_email
+ end
+
+ assert @inbound_email.bounced?
+ assert_emails 1
+
+ mail = ActionMailer::Base.deliveries.last
+ assert_equal %w[ sender@example.com ], mail.to
+ assert_equal "Your email was not delivered", mail.subject
+ end
+end