From 6a23bf0f4c33151e0cec0648e271dc6f5ab3f686 Mon Sep 17 00:00:00 2001 From: David Heinemeier Hansson Date: Tue, 19 Aug 2014 19:32:51 -0700 Subject: Preparing for 4.2.0.beta1 release --- actionmailer/lib/action_mailer/gem_version.rb | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) (limited to 'actionmailer') diff --git a/actionmailer/lib/action_mailer/gem_version.rb b/actionmailer/lib/action_mailer/gem_version.rb index b564813ccf..a266f50cd7 100644 --- a/actionmailer/lib/action_mailer/gem_version.rb +++ b/actionmailer/lib/action_mailer/gem_version.rb @@ -8,7 +8,7 @@ module ActionMailer MAJOR = 4 MINOR = 2 TINY = 0 - PRE = "alpha" + PRE = "beta1" STRING = [MAJOR, MINOR, TINY, PRE].compact.join(".") end -- cgit v1.2.3 From a548e2ba16db2a6be98836629b11b02e45a89936 Mon Sep 17 00:00:00 2001 From: Robin Dupret Date: Wed, 27 Aug 2014 19:38:04 +0200 Subject: Make test:isolated run without bundler for Action Mailer Action Mailer tests weren't able to run in isolation without the bundle exec prefix since we were requiring gems before requiring abstract_unit. We don't need the `gem` call thus and the require_relative since the test directory should be present in the load path when we run any test. --- actionmailer/test/message_delivery_test.rb | 5 ++--- 1 file changed, 2 insertions(+), 3 deletions(-) (limited to 'actionmailer') diff --git a/actionmailer/test/message_delivery_test.rb b/actionmailer/test/message_delivery_test.rb index 8402fc130f..53654871a2 100644 --- a/actionmailer/test/message_delivery_test.rb +++ b/actionmailer/test/message_delivery_test.rb @@ -1,9 +1,8 @@ # 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' class MessageDeliveryTest < ActiveSupport::TestCase -- cgit v1.2.3 From 84c0f73c8daf50fa98d1c4a0c1bab8708e49d0e4 Mon Sep 17 00:00:00 2001 From: Robin Dupret Date: Sat, 30 Aug 2014 11:58:23 +0200 Subject: Refer to the library name instead of the constant When we are loading a component and we want to know its version, we are actually not speaking about the constant but the library itself. [ci skip] [Godfrey Chan & Xavier Noria] --- actionmailer/lib/action_mailer/gem_version.rb | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) (limited to 'actionmailer') diff --git a/actionmailer/lib/action_mailer/gem_version.rb b/actionmailer/lib/action_mailer/gem_version.rb index a266f50cd7..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 Gem::Version + # Returns the version of the currently loaded Action Mailer as a Gem::Version def self.gem_version Gem::Version.new VERSION::STRING end -- cgit v1.2.3 From 377d0de84391491501ecbdfdd1d23657cab90eff Mon Sep 17 00:00:00 2001 From: Abdelkader Boudih Date: Sat, 30 Aug 2014 14:38:33 +0000 Subject: [ActionMailer] Rename test/test_test to test/test_case_test --- actionmailer/test/test_case_test.rb | 28 ++++++++++++++++++++++++++++ actionmailer/test/test_test.rb | 28 ---------------------------- 2 files changed, 28 insertions(+), 28 deletions(-) create mode 100644 actionmailer/test/test_case_test.rb delete mode 100644 actionmailer/test/test_test.rb (limited to 'actionmailer') diff --git a/actionmailer/test/test_case_test.rb b/actionmailer/test/test_case_test.rb new file mode 100644 index 0000000000..86fd37bea6 --- /dev/null +++ b/actionmailer/test/test_case_test.rb @@ -0,0 +1,28 @@ +require 'abstract_unit' + +class TestTestMailer < ActionMailer::Base +end + +class CrazyNameMailerTest < ActionMailer::TestCase + tests TestTestMailer + + def test_set_mailer_class_manual + assert_equal TestTestMailer, self.class.mailer_class + end +end + +class CrazySymbolNameMailerTest < ActionMailer::TestCase + tests :test_test_mailer + + def test_set_mailer_class_manual_using_symbol + assert_equal TestTestMailer, self.class.mailer_class + end +end + +class CrazyStringNameMailerTest < ActionMailer::TestCase + tests 'test_test_mailer' + + def test_set_mailer_class_manual_using_string + assert_equal TestTestMailer, self.class.mailer_class + end +end diff --git a/actionmailer/test/test_test.rb b/actionmailer/test/test_test.rb deleted file mode 100644 index 86fd37bea6..0000000000 --- a/actionmailer/test/test_test.rb +++ /dev/null @@ -1,28 +0,0 @@ -require 'abstract_unit' - -class TestTestMailer < ActionMailer::Base -end - -class CrazyNameMailerTest < ActionMailer::TestCase - tests TestTestMailer - - def test_set_mailer_class_manual - assert_equal TestTestMailer, self.class.mailer_class - end -end - -class CrazySymbolNameMailerTest < ActionMailer::TestCase - tests :test_test_mailer - - def test_set_mailer_class_manual_using_symbol - assert_equal TestTestMailer, self.class.mailer_class - end -end - -class CrazyStringNameMailerTest < ActionMailer::TestCase - tests 'test_test_mailer' - - def test_set_mailer_class_manual_using_string - assert_equal TestTestMailer, self.class.mailer_class - end -end -- cgit v1.2.3 From 83bf95faacb9fe7c940979833edcb5b8ce52d76c Mon Sep 17 00:00:00 2001 From: "yuuji.yaginuma" Date: Tue, 2 Sep 2014 17:57:23 +0900 Subject: [ci skip] Fix a typo in the doc of MessageDelivery --- actionmailer/lib/action_mailer/message_delivery.rb | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) (limited to 'actionmailer') diff --git a/actionmailer/lib/action_mailer/message_delivery.rb b/actionmailer/lib/action_mailer/message_delivery.rb index 30425d38f9..ce416b09d5 100644 --- a/actionmailer/lib/action_mailer/message_delivery.rb +++ b/actionmailer/lib/action_mailer/message_delivery.rb @@ -38,9 +38,9 @@ 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!(in: 1.hour) + # Notifier.welcome(User.first).deliver_later!(at: 10.hours.from_now) # # Options: # -- cgit v1.2.3 From 2f52f969885b2834198de0045748436a4651a94e Mon Sep 17 00:00:00 2001 From: Matthew Draper Date: Tue, 2 Sep 2014 23:48:23 +0930 Subject: Leave all our tests as order_dependent! for now We're seeing too many failures to believe otherwise. This reverts commits bc116a55ca3dd9f63a1f1ca7ade3623885adcc57, cbde413df3839e06dd14e3c220e9800af91e83ab, bf0a67931dd8e58f6f878b9510ae818ae1f29a3a, and 2440933fe2c27b27bcafcd9019717800db2641aa. --- actionmailer/test/abstract_unit.rb | 5 +++++ 1 file changed, 5 insertions(+) (limited to 'actionmailer') diff --git a/actionmailer/test/abstract_unit.rb b/actionmailer/test/abstract_unit.rb index c4dbbe25f6..ce426cad1e 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.my_tests_are_order_dependent! -- cgit v1.2.3 From 1e237b4e44b7de564c7d6b331dd2f2243c4113fd Mon Sep 17 00:00:00 2001 From: Cristian Bica Date: Mon, 25 Aug 2014 17:34:50 +0300 Subject: Active Job refactoring --- actionmailer/lib/action_mailer/message_delivery.rb | 13 ++++-------- actionmailer/test/message_delivery_test.rb | 24 +++++++++++----------- 2 files changed, 16 insertions(+), 21 deletions(-) (limited to 'actionmailer') diff --git a/actionmailer/lib/action_mailer/message_delivery.rb b/actionmailer/lib/action_mailer/message_delivery.rb index ce416b09d5..8a6a8b631f 100644 --- a/actionmailer/lib/action_mailer/message_delivery.rb +++ b/actionmailer/lib/action_mailer/message_delivery.rb @@ -98,15 +98,10 @@ 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 + set_options = {} + set_options[:wait_until] = options[:at] if options[:at] + set_options[:wait] = options[:in] if options[:in] + ActionMailer::DeliveryJob.set(set_options).perform_later(*args) end end end diff --git a/actionmailer/test/message_delivery_test.rb b/actionmailer/test/message_delivery_test.rb index 53654871a2..db1e3c830c 100644 --- a/actionmailer/test/message_delivery_test.rb +++ b/actionmailer/test/message_delivery_test.rb @@ -3,8 +3,10 @@ require 'abstract_unit' require 'active_job' require 'minitest/mock' 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 @@ -13,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 @@ -70,33 +74,29 @@ 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 + assert_performed_with(job: ActionMailer::DeliveryJob, args: ['DelayedMailer', 'test_message', 'deliver_now', 1, 2, 3]) do + @mail.deliver_later in: 600.seconds 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 + 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 at: later_time end - assert_equal [later_time, 'DelayedMailer', 'test_message', 'deliver_now', 1, 2, 3], ret end end -- cgit v1.2.3 From 15ddf60e05f5995b1aaf8d8cecfa2354005cc035 Mon Sep 17 00:00:00 2001 From: Cristian Bica Date: Thu, 4 Sep 2014 08:08:06 +0300 Subject: Rename remaining :in / :at to :wait / :wait_until --- actionmailer/lib/action_mailer/message_delivery.rb | 21 +++++++++------------ actionmailer/test/message_delivery_test.rb | 8 +++++--- 2 files changed, 14 insertions(+), 15 deletions(-) (limited to 'actionmailer') diff --git a/actionmailer/lib/action_mailer/message_delivery.rb b/actionmailer/lib/action_mailer/message_delivery.rb index 8a6a8b631f..7118f9b02c 100644 --- a/actionmailer/lib/action_mailer/message_delivery.rb +++ b/actionmailer/lib/action_mailer/message_delivery.rb @@ -39,13 +39,13 @@ module ActionMailer # 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!(wait: 1.hour) + # Notifier.welcome(User.first).deliver_later!(wait_until: 10.hours.from_now) # # Options: # - # * :in - Enqueue the email to be delivered with a delay - # * :at - Enqueue the email to be delivered at (after) a specific date / time + # * :wait - Enqueue the email to be delivered with a delay + # * :wait_until - 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: # - # * :in - Enqueue the email to be delivered with a delay - # * :at - Enqueue the email to be delivered at (after) a specific date / time + # * :wait - Enqueue the email to be delivered with a delay + # * :wait_until - Enqueue the email to be delivered at (after) a specific date / time def deliver_later(options={}) enqueue_delivery :deliver_now, options end @@ -98,10 +98,7 @@ module ActionMailer def enqueue_delivery(delivery_method, options={}) args = @mailer.name, @mail_method.to_s, delivery_method.to_s, *@args - set_options = {} - set_options[:wait_until] = options[:at] if options[:at] - set_options[:wait] = options[:in] if options[:in] - ActionMailer::DeliveryJob.set(set_options).perform_later(*args) + ActionMailer::DeliveryJob.set(options).perform_later(*args) end end end diff --git a/actionmailer/test/message_delivery_test.rb b/actionmailer/test/message_delivery_test.rb index db1e3c830c..9abf8b225c 100644 --- a/actionmailer/test/message_delivery_test.rb +++ b/actionmailer/test/message_delivery_test.rb @@ -87,15 +87,17 @@ class MessageDeliveryTest < ActiveSupport::TestCase end test 'should enqueue a delivery with a delay' do - assert_performed_with(job: ActionMailer::DeliveryJob, args: ['DelayedMailer', 'test_message', 'deliver_now', 1, 2, 3]) do - @mail.deliver_later in: 600.seconds + 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 end 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 - @mail.deliver_later at: later_time + @mail.deliver_later wait_until: later_time end end -- cgit v1.2.3 From 2b41343c34bcbe809537590152506690b84832df Mon Sep 17 00:00:00 2001 From: Godfrey Chan Date: Mon, 8 Sep 2014 05:32:16 -0700 Subject: Default to sorting user's test cases for now Goals: 1. Default to :random for newly generated applications 2. Default to :sorted for existing applications with a warning 3. Only show the warning once 4. Only show the warning if the app actually uses AS::TestCase Fixes #16769 --- actionmailer/test/abstract_unit.rb | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) (limited to 'actionmailer') diff --git a/actionmailer/test/abstract_unit.rb b/actionmailer/test/abstract_unit.rb index ce426cad1e..7681679dc7 100644 --- a/actionmailer/test/abstract_unit.rb +++ b/actionmailer/test/abstract_unit.rb @@ -46,4 +46,4 @@ 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.my_tests_are_order_dependent! +ActiveSupport::TestCase.test_order = :sorted -- cgit v1.2.3