mirror of
https://github.com/meineerde/redmine.git
synced 2025-12-21 07:51:12 +00:00
Fixed that test_email raises an error with #deliver_later (#26791).
git-svn-id: http://svn.redmine.org/redmine/trunk@17587 e93f8b46-1217-0410-a6f0-8f06a7374b81
This commit is contained in:
parent
e159928e6b
commit
5533eeff23
@ -107,48 +107,11 @@ class Mailer < ActionMailer::Base
|
|||||||
"method*, or 3. use a custom Active Job instead of #deliver_later."
|
"method*, or 3. use a custom Active Job instead of #deliver_later."
|
||||||
else
|
else
|
||||||
args = 'Mailer', @action.to_s, delivery_method.to_s, *@args
|
args = 'Mailer', @action.to_s, delivery_method.to_s, *@args
|
||||||
DeliveryJob.set(options).perform_later(*args)
|
::ActionMailer::DeliveryJob.set(options).perform_later(*args)
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|
||||||
class DeliveryJob < ActionMailer::DeliveryJob
|
|
||||||
module Arguments
|
|
||||||
extend ActiveJob::Arguments
|
|
||||||
extend self
|
|
||||||
|
|
||||||
private
|
|
||||||
|
|
||||||
def serialize_argument(argument)
|
|
||||||
# Ensure that ActiveRecord::Base objects are fully serialized for mail
|
|
||||||
# sending. This circumvents the globalid gem for this job.
|
|
||||||
if argument.is_a?(ActiveRecord::Base)
|
|
||||||
argument.to_yaml
|
|
||||||
else
|
|
||||||
super
|
|
||||||
end
|
|
||||||
end
|
|
||||||
|
|
||||||
def deserialize_argument(argument)
|
|
||||||
if argument.is_a?(ActiveRecord::Base)
|
|
||||||
argument
|
|
||||||
else
|
|
||||||
super
|
|
||||||
end
|
|
||||||
end
|
|
||||||
end
|
|
||||||
|
|
||||||
private
|
|
||||||
|
|
||||||
def serialize_arguments(serialized_args)
|
|
||||||
Arguments.serialize(serialized_args)
|
|
||||||
end
|
|
||||||
|
|
||||||
def deserialize_arguments(serialized_args)
|
|
||||||
Arguments.deserialize(serialized_args)
|
|
||||||
end
|
|
||||||
end
|
|
||||||
|
|
||||||
def process(action, *args)
|
def process(action, *args)
|
||||||
user = args.shift
|
user = args.shift
|
||||||
raise ArgumentError, "First argument has to be a user, was #{user.inspect}" unless user.is_a?(User)
|
raise ArgumentError, "First argument has to be a user, was #{user.inspect}" unless user.is_a?(User)
|
||||||
@ -701,9 +664,9 @@ class Mailer < ActionMailer::Base
|
|||||||
#
|
#
|
||||||
# Example:
|
# Example:
|
||||||
# test_email => Mail::Message object
|
# test_email => Mail::Message object
|
||||||
def test_email
|
def test_email(user)
|
||||||
@url = url_for(:controller => 'welcome')
|
@url = url_for(:controller => 'welcome')
|
||||||
mail :to => User.current.mail,
|
mail :to => user.mail,
|
||||||
:subject => 'Redmine test'
|
:subject => 'Redmine test'
|
||||||
end
|
end
|
||||||
|
|
||||||
@ -712,7 +675,7 @@ class Mailer < ActionMailer::Base
|
|||||||
# Example:
|
# Example:
|
||||||
# Mailer.test_email(user).deliver => send an email to the given user
|
# Mailer.test_email(user).deliver => send an email to the given user
|
||||||
def self.test_email(user)
|
def self.test_email(user)
|
||||||
MultiMessage.new(:test_email).for(user)
|
MultiMessage.new(:test_email, user).for(user)
|
||||||
end
|
end
|
||||||
|
|
||||||
# Sends reminders to issue assignees
|
# Sends reminders to issue assignees
|
||||||
|
|||||||
@ -23,6 +23,9 @@ Rails.application.configure do
|
|||||||
# ActionMailer::Base.deliveries array.
|
# ActionMailer::Base.deliveries array.
|
||||||
config.action_mailer.delivery_method = :test
|
config.action_mailer.delivery_method = :test
|
||||||
|
|
||||||
|
# Disable Async delivery
|
||||||
|
config.active_job.queue_adapter = :inline
|
||||||
|
|
||||||
# Disable request forgery protection in test environment.
|
# Disable request forgery protection in test environment.
|
||||||
config.action_controller.allow_forgery_protection = false
|
config.action_controller.allow_forgery_protection = false
|
||||||
|
|
||||||
|
|||||||
@ -605,6 +605,12 @@ class MailerTest < ActiveSupport::TestCase
|
|||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|
||||||
|
def test_test_email_later
|
||||||
|
user = User.find(1)
|
||||||
|
assert Mailer.test_email(user).deliver_later
|
||||||
|
assert_equal 1, ActionMailer::Base.deliveries.size
|
||||||
|
end
|
||||||
|
|
||||||
def test_reminders
|
def test_reminders
|
||||||
Mailer.reminders(:days => 42)
|
Mailer.reminders(:days => 42)
|
||||||
assert_equal 1, ActionMailer::Base.deliveries.size
|
assert_equal 1, ActionMailer::Base.deliveries.size
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user