aboutsummaryrefslogtreecommitdiffstats
path: root/actionmailer/test/message_delivery_test.rb
diff options
context:
space:
mode:
authorJohannes Opper <johannes.opper@gmail.com>2015-07-02 14:36:40 +0200
committerJohannes Opper <johannes.opper@gmail.com>2015-07-05 20:21:25 +0200
commitca2387eb0145c0b8639f06ac7acb642fb3755c72 (patch)
tree419ec4b65b40fd9e425581310a5891404a77f809 /actionmailer/test/message_delivery_test.rb
parent776e5991a9abf11818cb803e80976cea8b454c17 (diff)
downloadrails-ca2387eb0145c0b8639f06ac7acb642fb3755c72.tar.gz
rails-ca2387eb0145c0b8639f06ac7acb642fb3755c72.tar.bz2
rails-ca2387eb0145c0b8639f06ac7acb642fb3755c72.zip
ActionMailer::MessageDelivery respects current I18n.locale
When #deliver_now is called all translations within the generated email will be looked up for the current I18n locale. I18n.locale = ‘de’ mail.deliver_now # Generates german email, correct In #enqueue_delivery the locale was not considered and the resulting job uses the default locale. I18n.locale = ‘de’ mail.deliver_later # Generate english email, incorrect In order to achieve a consistent behaviour the current locale is now always passed to `ActionMailer::DeliveryJob`.
Diffstat (limited to 'actionmailer/test/message_delivery_test.rb')
-rw-r--r--actionmailer/test/message_delivery_test.rb20
1 files changed, 14 insertions, 6 deletions
diff --git a/actionmailer/test/message_delivery_test.rb b/actionmailer/test/message_delivery_test.rb
index 862ce26187..7ee4b01067 100644
--- a/actionmailer/test/message_delivery_test.rb
+++ b/actionmailer/test/message_delivery_test.rb
@@ -57,20 +57,20 @@ class MessageDeliveryTest < ActiveSupport::TestCase
end
test 'should enqueue the email with :deliver_now delivery method' do
- assert_performed_with(job: ActionMailer::DeliveryJob, args: ['DelayedMailer', 'test_message', 'deliver_now', 1, 2, 3]) do
+ assert_performed_with(job: ActionMailer::DeliveryJob, args: ['DelayedMailer', 'test_message', 'deliver_now', 'en', 1, 2, 3]) do
@mail.deliver_later
end
end
test 'should enqueue the email with :deliver_now! delivery method' do
- assert_performed_with(job: ActionMailer::DeliveryJob, args: ['DelayedMailer', 'test_message', 'deliver_now!', 1, 2, 3]) do
+ assert_performed_with(job: ActionMailer::DeliveryJob, args: ['DelayedMailer', 'test_message', 'deliver_now!', 'en', 1, 2, 3]) do
@mail.deliver_later!
end
end
test 'should enqueue a delivery with a delay' do
travel_to Time.new(2004, 11, 24, 01, 04, 44) do
- assert_performed_with(job: ActionMailer::DeliveryJob, at: Time.current.to_f+600.seconds, args: ['DelayedMailer', 'test_message', 'deliver_now', 1, 2, 3]) do
+ assert_performed_with(job: ActionMailer::DeliveryJob, at: Time.current.to_f+600.seconds, args: ['DelayedMailer', 'test_message', 'deliver_now', 'en', 1, 2, 3]) do
@mail.deliver_later wait: 600.seconds
end
end
@@ -78,20 +78,28 @@ class MessageDeliveryTest < ActiveSupport::TestCase
test 'should enqueue a delivery at a specific time' do
later_time = Time.now.to_f + 3600
- assert_performed_with(job: ActionMailer::DeliveryJob, at: later_time, args: ['DelayedMailer', 'test_message', 'deliver_now', 1, 2, 3]) do
+ assert_performed_with(job: ActionMailer::DeliveryJob, at: later_time, args: ['DelayedMailer', 'test_message', 'deliver_now', 'en', 1, 2, 3]) do
@mail.deliver_later wait_until: later_time
end
end
test 'should enqueue the job on the correct queue' do
- assert_performed_with(job: ActionMailer::DeliveryJob, args: ['DelayedMailer', 'test_message', 'deliver_now', 1, 2, 3], queue: "test_queue") do
+ assert_performed_with(job: ActionMailer::DeliveryJob, args: ['DelayedMailer', 'test_message', 'deliver_now', 'en', 1, 2, 3], queue: "test_queue") do
@mail.deliver_later
end
end
test 'can override the queue when enqueuing mail' do
- assert_performed_with(job: ActionMailer::DeliveryJob, args: ['DelayedMailer', 'test_message', 'deliver_now', 1, 2, 3], queue: "another_queue") do
+ assert_performed_with(job: ActionMailer::DeliveryJob, args: ['DelayedMailer', 'test_message', 'deliver_now', 'en', 1, 2, 3], queue: "another_queue") do
@mail.deliver_later(queue: :another_queue)
end
end
+
+ test 'should enqueue a delivery with the correct locale' do
+ I18n.with_locale('de') do
+ assert_performed_with(job: ActionMailer::DeliveryJob, args: ['DelayedMailer', 'test_message', 'deliver_now', 'de', 1, 2, 3]) do
+ @mail.deliver_later
+ end
+ end
+ end
end