Do not use @:skip_relative_url_root@ to generate urls in Mailer (#2122).
git-svn-id: svn+ssh://rubyforge.org/var/svn/redmine/trunk@1992 e93f8b46-1217-0410-a6f0-8f06a7374b81
This commit is contained in:
parent
81eee10d5b
commit
077723c90a
|
@ -183,9 +183,13 @@ class Mailer < ActionMailer::Base
|
||||||
super
|
super
|
||||||
set_language_if_valid Setting.default_language
|
set_language_if_valid Setting.default_language
|
||||||
from Setting.mail_from
|
from Setting.mail_from
|
||||||
default_url_options[:host] = Setting.host_name
|
|
||||||
|
# URL options
|
||||||
|
h = Setting.host_name
|
||||||
|
h = h.to_s.gsub(%r{\/.*$}, '') unless ActionController::AbstractRequest.relative_url_root.blank?
|
||||||
|
default_url_options[:host] = h
|
||||||
default_url_options[:protocol] = Setting.protocol
|
default_url_options[:protocol] = Setting.protocol
|
||||||
default_url_options[:skip_relative_url_root] = true
|
|
||||||
# Common headers
|
# Common headers
|
||||||
headers 'X-Mailer' => 'Redmine',
|
headers 'X-Mailer' => 'Redmine',
|
||||||
'X-Redmine-Host' => Setting.host_name,
|
'X-Redmine-Host' => Setting.host_name,
|
||||||
|
|
|
@ -38,6 +38,54 @@ class MailerTest < Test::Unit::TestCase
|
||||||
# link to a changeset
|
# link to a changeset
|
||||||
assert mail.body.include?('<a href="https://mydomain.foo/repositories/revision/ecookbook/2" class="changeset" title="This commit fixes #1, #2 and references #1 & #3">r2</a>')
|
assert mail.body.include?('<a href="https://mydomain.foo/repositories/revision/ecookbook/2" class="changeset" title="This commit fixes #1, #2 and references #1 & #3">r2</a>')
|
||||||
end
|
end
|
||||||
|
|
||||||
|
def test_generated_links_with_prefix
|
||||||
|
relative_url_root = ActionController::AbstractRequest.relative_url_root
|
||||||
|
ActionMailer::Base.deliveries.clear
|
||||||
|
Setting.host_name = 'mydomain.foo/rdm'
|
||||||
|
Setting.protocol = 'http'
|
||||||
|
ActionController::AbstractRequest.relative_url_root = '/rdm'
|
||||||
|
|
||||||
|
journal = Journal.find(2)
|
||||||
|
assert Mailer.deliver_issue_edit(journal)
|
||||||
|
|
||||||
|
mail = ActionMailer::Base.deliveries.last
|
||||||
|
assert_kind_of TMail::Mail, mail
|
||||||
|
# link to the main ticket
|
||||||
|
assert mail.body.include?('<a href="http://mydomain.foo/rdm/issues/show/1">Bug #1: Can\'t print recipes</a>')
|
||||||
|
|
||||||
|
# link to a referenced ticket
|
||||||
|
assert mail.body.include?('<a href="http://mydomain.foo/rdm/issues/show/2" class="issue" title="Add ingredients categories (Assigned)">#2</a>')
|
||||||
|
# link to a changeset
|
||||||
|
assert mail.body.include?('<a href="http://mydomain.foo/rdm/repositories/revision/ecookbook/2" class="changeset" title="This commit fixes #1, #2 and references #1 & #3">r2</a>')
|
||||||
|
ensure
|
||||||
|
# restore it
|
||||||
|
ActionController::AbstractRequest.relative_url_root = relative_url_root
|
||||||
|
end
|
||||||
|
|
||||||
|
def test_generated_links_with_prefix_and_no_relative_url_root
|
||||||
|
relative_url_root = ActionController::AbstractRequest.relative_url_root
|
||||||
|
ActionMailer::Base.deliveries.clear
|
||||||
|
Setting.host_name = 'mydomain.foo/rdm'
|
||||||
|
Setting.protocol = 'http'
|
||||||
|
ActionController::AbstractRequest.relative_url_root = nil
|
||||||
|
|
||||||
|
journal = Journal.find(2)
|
||||||
|
assert Mailer.deliver_issue_edit(journal)
|
||||||
|
|
||||||
|
mail = ActionMailer::Base.deliveries.last
|
||||||
|
assert_kind_of TMail::Mail, mail
|
||||||
|
# link to the main ticket
|
||||||
|
assert mail.body.include?('<a href="http://mydomain.foo/rdm/issues/show/1">Bug #1: Can\'t print recipes</a>')
|
||||||
|
|
||||||
|
# link to a referenced ticket
|
||||||
|
assert mail.body.include?('<a href="http://mydomain.foo/rdm/issues/show/2" class="issue" title="Add ingredients categories (Assigned)">#2</a>')
|
||||||
|
# link to a changeset
|
||||||
|
assert mail.body.include?('<a href="http://mydomain.foo/rdm/repositories/revision/ecookbook/2" class="changeset" title="This commit fixes #1, #2 and references #1 & #3">r2</a>')
|
||||||
|
ensure
|
||||||
|
# restore it
|
||||||
|
ActionController::AbstractRequest.relative_url_root = relative_url_root
|
||||||
|
end
|
||||||
|
|
||||||
def test_plain_text_mail
|
def test_plain_text_mail
|
||||||
Setting.plain_text_mail = 1
|
Setting.plain_text_mail = 1
|
||||||
|
|
Loading…
Reference in New Issue