Fixed: email notifications may affect language of notices on the UI (#4086).
git-svn-id: svn+ssh://rubyforge.org/var/svn/redmine/trunk@3307 e93f8b46-1217-0410-a6f0-8f06a7374b81
This commit is contained in:
parent
fe7d65922b
commit
ff77fb6aa9
|
@ -272,6 +272,7 @@ class Mailer < ActionMailer::Base
|
|||
# Overrides default deliver! method to prevent from sending an email
|
||||
# with no recipient, cc or bcc
|
||||
def deliver!(mail = @mail)
|
||||
set_language_if_valid @initial_language
|
||||
return false if (recipients.nil? || recipients.empty?) &&
|
||||
(cc.nil? || cc.empty?) &&
|
||||
(bcc.nil? || bcc.empty?)
|
||||
|
@ -313,6 +314,7 @@ class Mailer < ActionMailer::Base
|
|||
private
|
||||
def initialize_defaults(method_name)
|
||||
super
|
||||
@initial_language = current_language
|
||||
set_language_if_valid Setting.default_language
|
||||
from Setting.mail_from
|
||||
|
||||
|
|
|
@ -20,7 +20,7 @@ require File.dirname(__FILE__) + '/../test_helper'
|
|||
class MailerTest < ActiveSupport::TestCase
|
||||
include Redmine::I18n
|
||||
include ActionController::Assertions::SelectorAssertions
|
||||
fixtures :projects, :issues, :users, :members, :member_roles, :documents, :attachments, :news, :tokens, :journals, :journal_details, :changesets, :trackers, :issue_statuses, :enumerations, :messages, :boards, :repositories
|
||||
fixtures :projects, :enabled_modules, :issues, :users, :members, :member_roles, :roles, :documents, :attachments, :news, :tokens, :journals, :journal_details, :changesets, :trackers, :issue_statuses, :enumerations, :messages, :boards, :repositories
|
||||
|
||||
def test_generated_links_in_emails
|
||||
ActionMailer::Base.deliveries.clear
|
||||
|
@ -296,4 +296,18 @@ class MailerTest < ActiveSupport::TestCase
|
|||
assert_not_nil mail
|
||||
mail
|
||||
end
|
||||
|
||||
def test_mailer_should_not_change_locale
|
||||
Setting.default_language = 'en'
|
||||
# Set current language to italian
|
||||
set_language_if_valid 'it'
|
||||
# Send an email to a french user
|
||||
user = User.find(1)
|
||||
user.language = 'fr'
|
||||
Mailer.deliver_account_activated(user)
|
||||
mail = ActionMailer::Base.deliveries.last
|
||||
assert mail.body.include?('Votre compte')
|
||||
|
||||
assert_equal :it, current_language
|
||||
end
|
||||
end
|
||||
|
|
Loading…
Reference in New Issue