From 4d8c4529151ab81d2e6f8b305b9827867210f359 Mon Sep 17 00:00:00 2001 From: Sam Elliott Date: Fri, 16 Apr 2010 23:24:57 +0100 Subject: [PATCH] mail_to with :encode => :javascript now outputs safe html --- actionpack/lib/action_view/helpers/url_helper.rb | 2 +- actionpack/test/template/url_helper_test.rb | 8 ++++++-- 2 files changed, 7 insertions(+), 3 deletions(-) diff --git a/actionpack/lib/action_view/helpers/url_helper.rb b/actionpack/lib/action_view/helpers/url_helper.rb index 0b748d7..4ffc5ea 100644 --- a/actionpack/lib/action_view/helpers/url_helper.rb +++ b/actionpack/lib/action_view/helpers/url_helper.rb @@ -504,7 +504,7 @@ module ActionView "document.write('#{content_tag("a", name || email_address_obfuscated.html_safe, html_options.merge({ "href" => "mailto:"+email_address+extras }))}');".each_byte do |c| string << sprintf("%%%x", c) end - "" + "".html_safe elsif encode == "hex" email_address_encoded = '' email_address_obfuscated.each_byte do |c| diff --git a/actionpack/test/template/url_helper_test.rb b/actionpack/test/template/url_helper_test.rb index de63030..4474949 100644 --- a/actionpack/test/template/url_helper_test.rb +++ b/actionpack/test/template/url_helper_test.rb @@ -356,11 +356,15 @@ class UrlHelperTest < ActiveSupport::TestCase end def test_mail_to_with_javascript - assert_dom_equal "", mail_to("me@domain.com", "My email", :encode => "javascript") + snippet = mail_to("me@domain.com", "My email", :encode => "javascript") + assert_dom_equal "", snippet + assert snippet.html_safe? end def test_mail_to_with_javascript_unicode - assert_dom_equal "", mail_to("unicode@example.com", "Ășnicode", :encode => "javascript") + snippet = mail_to("unicode@example.com", "Ășnicode", :encode => "javascript") + assert_dom_equal "", snippet + assert snippet.html_safe end def test_mail_with_options -- 1.6.3.3