Fixed that the mail method should return a Mail::Message (#15113).

git-svn-id: svn+ssh://rubyforge.org/var/svn/redmine/trunk@12210 e93f8b46-1217-0410-a6f0-8f06a7374b81
This commit is contained in:
Jean-Philippe Lang 2013-10-13 07:58:33 +00:00
parent c6c0491ad8
commit 176ce78574
2 changed files with 14 additions and 5 deletions

View File

@ -368,7 +368,7 @@ class Mailer < ActionMailer::Base
ActionMailer::Base.delivery_method = saved_method ActionMailer::Base.delivery_method = saved_method
end end
def mail(headers={}) def mail(headers={}, &block)
headers.merge! 'X-Mailer' => 'Redmine', headers.merge! 'X-Mailer' => 'Redmine',
'X-Redmine-Host' => Setting.host_name, 'X-Redmine-Host' => Setting.host_name,
'X-Redmine-Site' => Setting.app_title, 'X-Redmine-Site' => Setting.app_title,
@ -403,12 +403,17 @@ class Mailer < ActionMailer::Base
headers[:references] = @references_objects.collect {|o| "<#{self.class.references_for(o)}>"}.join(' ') headers[:references] = @references_objects.collect {|o| "<#{self.class.references_for(o)}>"}.join(' ')
end end
m = if block_given?
super headers, &block
else
super headers do |format| super headers do |format|
format.text format.text
format.html unless Setting.plain_text_mail? format.html unless Setting.plain_text_mail?
end end
end
set_language_if_valid @initial_language set_language_if_valid @initial_language
m
end end
def initialize(*args) def initialize(*args)

View File

@ -725,6 +725,10 @@ class MailerTest < ActiveSupport::TestCase
end end
end end
def test_mail_should_return_a_mail_message
assert_kind_of ::Mail::Message, Mailer.test_email(User.find(1))
end
private private
def last_email def last_email