aboutsummaryrefslogtreecommitdiffstats
path: root/actionmailbox/test
diff options
context:
space:
mode:
authorGeorge Claghorn <george.claghorn@gmail.com>2019-01-12 21:38:26 -0500
committerGitHub <noreply@github.com>2019-01-12 21:38:26 -0500
commit512b5316dd33a8aa36821ee9b134d6652fd4a35f (patch)
tree81e3434a480765ff76f41f7994685e9391e28aee /actionmailbox/test
parentbb75d68fe2262199a16973c09a8b2749542c7590 (diff)
downloadrails-512b5316dd33a8aa36821ee9b134d6652fd4a35f.tar.gz
rails-512b5316dd33a8aa36821ee9b134d6652fd4a35f.tar.bz2
rails-512b5316dd33a8aa36821ee9b134d6652fd4a35f.zip
Add Exim and Qmail support to Action Mailbox
Diffstat (limited to 'actionmailbox/test')
-rw-r--r--actionmailbox/test/controllers/ingresses/relay/inbound_emails_controller_test.rb (renamed from actionmailbox/test/controllers/ingresses/postfix/inbound_emails_controller_test.rb)20
-rw-r--r--actionmailbox/test/unit/relayer_test.rb (renamed from actionmailbox/test/unit/postfix_relayer_test.rb)34
2 files changed, 31 insertions, 23 deletions
diff --git a/actionmailbox/test/controllers/ingresses/postfix/inbound_emails_controller_test.rb b/actionmailbox/test/controllers/ingresses/relay/inbound_emails_controller_test.rb
index d646f5e859..67c5993f7f 100644
--- a/actionmailbox/test/controllers/ingresses/postfix/inbound_emails_controller_test.rb
+++ b/actionmailbox/test/controllers/ingresses/relay/inbound_emails_controller_test.rb
@@ -2,12 +2,12 @@
require "test_helper"
-class ActionMailbox::Ingresses::Postfix::InboundEmailsControllerTest < ActionDispatch::IntegrationTest
- setup { ActionMailbox.ingress = :postfix }
+class ActionMailbox::Ingresses::Relay::InboundEmailsControllerTest < ActionDispatch::IntegrationTest
+ setup { ActionMailbox.ingress = :relay }
- test "receiving an inbound email from Postfix" do
+ test "receiving an inbound email relayed from an SMTP server" do
assert_difference -> { ActionMailbox::InboundEmail.count }, +1 do
- post rails_postfix_inbound_emails_url, headers: { "Authorization" => credentials, "Content-Type" => "message/rfc822" },
+ post rails_relay_inbound_emails_url, headers: { "Authorization" => credentials, "Content-Type" => "message/rfc822" },
params: file_fixture("../files/welcome.eml").read
end
@@ -18,18 +18,18 @@ class ActionMailbox::Ingresses::Postfix::InboundEmailsControllerTest < ActionDis
assert_equal "0CB459E0-0336-41DA-BC88-E6E28C697DDB@37signals.com", inbound_email.message_id
end
- test "rejecting an unauthorized inbound email from Postfix" do
+ test "rejecting an unauthorized inbound email" do
assert_no_difference -> { ActionMailbox::InboundEmail.count } do
- post rails_postfix_inbound_emails_url, headers: { "Content-Type" => "message/rfc822" },
+ post rails_relay_inbound_emails_url, headers: { "Content-Type" => "message/rfc822" },
params: file_fixture("../files/welcome.eml").read
end
assert_response :unauthorized
end
- test "rejecting an inbound email of an unsupported media type from Postfix" do
+ test "rejecting an inbound email of an unsupported media type" do
assert_no_difference -> { ActionMailbox::InboundEmail.count } do
- post rails_postfix_inbound_emails_url, headers: { "Authorization" => credentials, "Content-Type" => "text/plain" },
+ post rails_relay_inbound_emails_url, headers: { "Authorization" => credentials, "Content-Type" => "text/plain" },
params: file_fixture("../files/welcome.eml").read
end
@@ -39,7 +39,7 @@ class ActionMailbox::Ingresses::Postfix::InboundEmailsControllerTest < ActionDis
test "raising when the configured password is nil" do
switch_password_to nil do
assert_raises ArgumentError do
- post rails_postfix_inbound_emails_url, headers: { "Authorization" => credentials, "Content-Type" => "message/rfc822" },
+ post rails_relay_inbound_emails_url, headers: { "Authorization" => credentials, "Content-Type" => "message/rfc822" },
params: file_fixture("../files/welcome.eml").read
end
end
@@ -48,7 +48,7 @@ class ActionMailbox::Ingresses::Postfix::InboundEmailsControllerTest < ActionDis
test "raising when the configured password is blank" do
switch_password_to "" do
assert_raises ArgumentError do
- post rails_postfix_inbound_emails_url, headers: { "Authorization" => credentials, "Content-Type" => "message/rfc822" },
+ post rails_relay_inbound_emails_url, headers: { "Authorization" => credentials, "Content-Type" => "message/rfc822" },
params: file_fixture("../files/welcome.eml").read
end
end
diff --git a/actionmailbox/test/unit/postfix_relayer_test.rb b/actionmailbox/test/unit/relayer_test.rb
index 5f7496ec3f..fb2b48ea16 100644
--- a/actionmailbox/test/unit/postfix_relayer_test.rb
+++ b/actionmailbox/test/unit/relayer_test.rb
@@ -2,35 +2,37 @@
require_relative "../test_helper"
-require "action_mailbox/postfix_relayer"
+require "action_mailbox/relayer"
module ActionMailbox
- class PostfixRelayerTest < ActiveSupport::TestCase
- URL = "https://example.com/rails/action_mailbox/postfix/inbound_emails"
+ class RelayerTest < ActiveSupport::TestCase
+ URL = "https://example.com/rails/action_mailbox/relay/inbound_emails"
INGRESS_PASSWORD = "secret"
setup do
- @relayer = ActionMailbox::PostfixRelayer.new(url: URL, password: INGRESS_PASSWORD)
+ @relayer = ActionMailbox::Relayer.new(url: URL, password: INGRESS_PASSWORD)
end
test "successfully relaying an email" do
stub_request(:post, URL).to_return status: 204
result = @relayer.relay(file_fixture("welcome.eml").read)
- assert_equal "2.0.0 Successfully relayed message to Postfix ingress", result.output
+ assert_equal "2.0.0", result.status_code
+ assert_equal "Successfully relayed message to ingress", result.message
assert result.success?
assert_not result.failure?
assert_requested :post, URL, body: file_fixture("welcome.eml").read,
basic_auth: [ "actionmailbox", INGRESS_PASSWORD ],
- headers: { "Content-Type" => "message/rfc822", "User-Agent" => /\AAction Mailbox Postfix relayer v\d+\./ }
+ headers: { "Content-Type" => "message/rfc822", "User-Agent" => /\AAction Mailbox relayer v\d+\./ }
end
test "unsuccessfully relaying with invalid credentials" do
stub_request(:post, URL).to_return status: 401
result = @relayer.relay(file_fixture("welcome.eml").read)
- assert_equal "4.7.0 Invalid credentials for Postfix ingress", result.output
+ assert_equal "4.7.0", result.status_code
+ assert_equal "Invalid credentials for ingress", result.message
assert_not result.success?
assert result.failure?
end
@@ -39,7 +41,8 @@ module ActionMailbox
stub_request(:post, URL).to_return status: 500
result = @relayer.relay(file_fixture("welcome.eml").read)
- assert_equal "4.0.0 HTTP 500", result.output
+ assert_equal "4.0.0", result.status_code
+ assert_equal "HTTP 500", result.message
assert_not result.success?
assert result.failure?
end
@@ -48,7 +51,8 @@ module ActionMailbox
stub_request(:post, URL).to_return status: 504
result = @relayer.relay(file_fixture("welcome.eml").read)
- assert_equal "4.0.0 HTTP 504", result.output
+ assert_equal "4.0.0", result.status_code
+ assert_equal "HTTP 504", result.message
assert_not result.success?
assert result.failure?
end
@@ -57,7 +61,8 @@ module ActionMailbox
stub_request(:post, URL).to_raise Errno::ECONNRESET.new
result = @relayer.relay(file_fixture("welcome.eml").read)
- assert_equal "4.4.2 Network error relaying to Postfix ingress: Connection reset by peer", result.output
+ assert_equal "4.4.2", result.status_code
+ assert_equal "Network error relaying to ingress: Connection reset by peer", result.message
assert_not result.success?
assert result.failure?
end
@@ -66,7 +71,8 @@ module ActionMailbox
stub_request(:post, URL).to_raise SocketError.new("Failed to open TCP connection to example.com:443")
result = @relayer.relay(file_fixture("welcome.eml").read)
- assert_equal "4.4.2 Network error relaying to Postfix ingress: Failed to open TCP connection to example.com:443", result.output
+ assert_equal "4.4.2", result.status_code
+ assert_equal "Network error relaying to ingress: Failed to open TCP connection to example.com:443", result.message
assert_not result.success?
assert result.failure?
end
@@ -75,7 +81,8 @@ module ActionMailbox
stub_request(:post, URL).to_timeout
result = @relayer.relay(file_fixture("welcome.eml").read)
- assert_equal "4.4.2 Timed out relaying to Postfix ingress", result.output
+ assert_equal "4.4.2", result.status_code
+ assert_equal "Timed out relaying to ingress", result.message
assert_not result.success?
assert result.failure?
end
@@ -84,7 +91,8 @@ module ActionMailbox
stub_request(:post, URL).to_raise StandardError.new("Something went wrong")
result = @relayer.relay(file_fixture("welcome.eml").read)
- assert_equal "4.0.0 Error relaying to Postfix ingress: Something went wrong", result.output
+ assert_equal "4.0.0", result.status_code
+ assert_equal "Error relaying to ingress: Something went wrong", result.message
assert_not result.success?
assert result.failure?
end