mirror of https://github.com/rails/rails
Make sure mail_to work with nil and SafeBuffer
This commit is contained in:
parent
23df880908
commit
4986709fe0
|
@ -471,7 +471,7 @@ module ActionView
|
||||||
}.compact
|
}.compact
|
||||||
extras = extras.empty? ? '' : '?' + ERB::Util.html_escape(extras.join('&'))
|
extras = extras.empty? ? '' : '?' + ERB::Util.html_escape(extras.join('&'))
|
||||||
|
|
||||||
encoded_email_address = ERB::Util.url_encode(email_address.to_str).gsub("%40", "@")
|
encoded_email_address = ERB::Util.url_encode(email_address ? email_address.to_str : '').gsub("%40", "@")
|
||||||
html_options["href"] = "mailto:#{encoded_email_address}#{extras}".html_safe
|
html_options["href"] = "mailto:#{encoded_email_address}#{extras}".html_safe
|
||||||
|
|
||||||
content_tag(:a, name || email_address, html_options, &block)
|
content_tag(:a, name || email_address, html_options, &block)
|
||||||
|
|
|
@ -517,6 +517,20 @@ class UrlHelperTest < ActiveSupport::TestCase
|
||||||
mail_to('feedback@example.com', '<img src="/feedback.png" />'.html_safe)
|
mail_to('feedback@example.com', '<img src="/feedback.png" />'.html_safe)
|
||||||
end
|
end
|
||||||
|
|
||||||
|
def test_mail_to_with_html_safe_string
|
||||||
|
assert_dom_equal(
|
||||||
|
%{<a href="mailto:david@loudthinking.com">david@loudthinking.com</a>},
|
||||||
|
mail_to("david@loudthinking.com".html_safe)
|
||||||
|
)
|
||||||
|
end
|
||||||
|
|
||||||
|
def test_mail_to_with_nil
|
||||||
|
assert_dom_equal(
|
||||||
|
%{<a href="mailto:"></a>},
|
||||||
|
mail_to(nil)
|
||||||
|
)
|
||||||
|
end
|
||||||
|
|
||||||
def test_mail_to_returns_html_safe_string
|
def test_mail_to_returns_html_safe_string
|
||||||
assert mail_to("david@loudthinking.com").html_safe?
|
assert mail_to("david@loudthinking.com").html_safe?
|
||||||
end
|
end
|
||||||
|
|
Loading…
Reference in New Issue