diff options
Diffstat (limited to 'actionmailer')
-rw-r--r-- | actionmailer/lib/action_mailer/gem_version.rb | 4 | ||||
-rw-r--r-- | actionmailer/lib/action_mailer/message_delivery.rb | 28 | ||||
-rw-r--r-- | actionmailer/test/abstract_unit.rb | 5 | ||||
-rw-r--r-- | actionmailer/test/message_delivery_test.rb | 33 | ||||
-rw-r--r-- | actionmailer/test/test_case_test.rb (renamed from actionmailer/test/test_test.rb) | 0 |
5 files changed, 34 insertions, 36 deletions
diff --git a/actionmailer/lib/action_mailer/gem_version.rb b/actionmailer/lib/action_mailer/gem_version.rb index b564813ccf..b9162055f7 100644 --- a/actionmailer/lib/action_mailer/gem_version.rb +++ b/actionmailer/lib/action_mailer/gem_version.rb @@ -1,5 +1,5 @@ module ActionMailer - # Returns the version of the currently loaded ActionMailer as a <tt>Gem::Version</tt> + # Returns the version of the currently loaded Action Mailer as a <tt>Gem::Version</tt> def self.gem_version Gem::Version.new VERSION::STRING end @@ -8,7 +8,7 @@ module ActionMailer MAJOR = 4 MINOR = 2 TINY = 0 - PRE = "alpha" + PRE = "beta1" STRING = [MAJOR, MINOR, TINY, PRE].compact.join(".") end diff --git a/actionmailer/lib/action_mailer/message_delivery.rb b/actionmailer/lib/action_mailer/message_delivery.rb index 30425d38f9..7118f9b02c 100644 --- a/actionmailer/lib/action_mailer/message_delivery.rb +++ b/actionmailer/lib/action_mailer/message_delivery.rb @@ -38,14 +38,14 @@ module ActionMailer # that the message will be sent bypassing checking +perform_deliveries+ # and +raise_delivery_errors+, so use with caution. # - # Notifier.welcome(User.first).deliver_later - # Notifier.welcome(User.first).deliver_later(in: 1.hour) - # Notifier.welcome(User.first).deliver_later(at: 10.hours.from_now) + # Notifier.welcome(User.first).deliver_later! + # Notifier.welcome(User.first).deliver_later!(wait: 1.hour) + # Notifier.welcome(User.first).deliver_later!(wait_until: 10.hours.from_now) # # Options: # - # * <tt>:in</tt> - Enqueue the email to be delivered with a delay - # * <tt>:at</tt> - Enqueue the email to be delivered at (after) a specific date / time + # * <tt>:wait</tt> - Enqueue the email to be delivered with a delay + # * <tt>:wait_until</tt> - Enqueue the email to be delivered at (after) a specific date / time def deliver_later!(options={}) enqueue_delivery :deliver_now!, options end @@ -54,13 +54,13 @@ module ActionMailer # job runs it will send the email using +deliver_now+. # # Notifier.welcome(User.first).deliver_later - # Notifier.welcome(User.first).deliver_later(in: 1.hour) - # Notifier.welcome(User.first).deliver_later(at: 10.hours.from_now) + # Notifier.welcome(User.first).deliver_later(wait: 1.hour) + # Notifier.welcome(User.first).deliver_later(wait_until: 10.hours.from_now) # # Options: # - # * <tt>:in</tt> - Enqueue the email to be delivered with a delay - # * <tt>:at</tt> - Enqueue the email to be delivered at (after) a specific date / time + # * <tt>:wait</tt> - Enqueue the email to be delivered with a delay + # * <tt>:wait_until</tt> - Enqueue the email to be delivered at (after) a specific date / time def deliver_later(options={}) enqueue_delivery :deliver_now, options end @@ -98,15 +98,7 @@ module ActionMailer def enqueue_delivery(delivery_method, options={}) args = @mailer.name, @mail_method.to_s, delivery_method.to_s, *@args - enqueue_method = :enqueue - if options[:at] - enqueue_method = :enqueue_at - args.unshift options[:at] - elsif options[:in] - enqueue_method = :enqueue_in - args.unshift options[:in] - end - ActionMailer::DeliveryJob.send enqueue_method, *args + ActionMailer::DeliveryJob.set(options).perform_later(*args) end end end diff --git a/actionmailer/test/abstract_unit.rb b/actionmailer/test/abstract_unit.rb index c4dbbe25f6..7681679dc7 100644 --- a/actionmailer/test/abstract_unit.rb +++ b/actionmailer/test/abstract_unit.rb @@ -42,3 +42,8 @@ def jruby_skip(message = '') end require 'mocha/setup' # FIXME: stop using mocha + +# FIXME: we have tests that depend on run order, we should fix that and +# remove this method call. +require 'active_support/test_case' +ActiveSupport::TestCase.test_order = :sorted diff --git a/actionmailer/test/message_delivery_test.rb b/actionmailer/test/message_delivery_test.rb index 8402fc130f..9abf8b225c 100644 --- a/actionmailer/test/message_delivery_test.rb +++ b/actionmailer/test/message_delivery_test.rb @@ -1,11 +1,12 @@ # encoding: utf-8 -gem 'activejob' -require 'active_job' require 'abstract_unit' +require 'active_job' require 'minitest/mock' -require_relative 'mailers/delayed_mailer' +require 'mailers/delayed_mailer' +require 'active_support/core_ext/numeric/time' class MessageDeliveryTest < ActiveSupport::TestCase + include ActiveJob::TestHelper setup do @previous_logger = ActiveJob::Base.logger @@ -14,6 +15,8 @@ class MessageDeliveryTest < ActiveSupport::TestCase ActiveJob::Base.logger = Logger.new(nil) @mail = DelayedMailer.test_message(1, 2, 3) ActionMailer::Base.deliveries.clear + ActiveJob::Base.queue_adapter.perform_enqueued_at_jobs = true + ActiveJob::Base.queue_adapter.perform_enqueued_jobs = true end teardown do @@ -71,33 +74,31 @@ class MessageDeliveryTest < ActiveSupport::TestCase ActionMailer::Base.deliveries.clear end - test 'should enqueue the email with :deliver delivery method' do - ret = ActionMailer::DeliveryJob.stub :enqueue, ->(*args){ args } do + 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 @mail.deliver_later end - assert_equal ['DelayedMailer', 'test_message', 'deliver_now', 1, 2, 3], ret end - test 'should enqueue the email with :deliver! delivery method' do - ret = ActionMailer::DeliveryJob.stub :enqueue, ->(*args){ args } do + 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 @mail.deliver_later! end - assert_equal ['DelayedMailer', 'test_message', 'deliver_now!', 1, 2, 3], ret end test 'should enqueue a delivery with a delay' do - ret = ActionMailer::DeliveryJob.stub :enqueue_in, ->(*args){ args } do - @mail.deliver_later in: 600 + 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 + @mail.deliver_later wait: 600.seconds + end end - assert_equal [600, 'DelayedMailer', 'test_message', 'deliver_now', 1, 2, 3], ret end test 'should enqueue a delivery at a specific time' do - later_time = Time.now.to_i + 3600 - ret = ActionMailer::DeliveryJob.stub :enqueue_at, ->(*args){ args } do - @mail.deliver_later at: later_time + 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 + @mail.deliver_later wait_until: later_time end - assert_equal [later_time, 'DelayedMailer', 'test_message', 'deliver_now', 1, 2, 3], ret end end diff --git a/actionmailer/test/test_test.rb b/actionmailer/test/test_case_test.rb index 86fd37bea6..86fd37bea6 100644 --- a/actionmailer/test/test_test.rb +++ b/actionmailer/test/test_case_test.rb |