mirror of https://github.com/rails/rails
Make sure mail_to work with nil and SafeBuffer
This commit is contained in:
parent
23df880908
commit
c8b69cde98
|
@ -471,7 +471,7 @@ module ActionView
|
|||
}.compact
|
||||
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
|
||||
|
||||
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)
|
||||
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
|
||||
assert mail_to("david@loudthinking.com").html_safe?
|
||||
end
|
||||
|
|
Loading…
Reference in New Issue