mail_to with :encode => :javascript now outputs safe html
Signed-off-by: Carl Lerche <carllerche@mac.com>
This commit is contained in:
parent
ac015b1d07
commit
c16c248912
@ -504,7 +504,7 @@ def mail_to(email_address, name = nil, html_options = {})
|
|||||||
"document.write('#{content_tag("a", name || email_address_obfuscated.html_safe, html_options.merge({ "href" => "mailto:"+email_address+extras }))}');".each_byte do |c|
|
"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)
|
string << sprintf("%%%x", c)
|
||||||
end
|
end
|
||||||
"<script type=\"#{Mime::JS}\">eval(decodeURIComponent('#{string}'))</script>"
|
"<script type=\"#{Mime::JS}\">eval(decodeURIComponent('#{string}'))</script>".html_safe
|
||||||
elsif encode == "hex"
|
elsif encode == "hex"
|
||||||
email_address_encoded = ''
|
email_address_encoded = ''
|
||||||
email_address_obfuscated.each_byte do |c|
|
email_address_obfuscated.each_byte do |c|
|
||||||
|
@ -356,11 +356,15 @@ def test_mail_to
|
|||||||
end
|
end
|
||||||
|
|
||||||
def test_mail_to_with_javascript
|
def test_mail_to_with_javascript
|
||||||
assert_dom_equal "<script type=\"text/javascript\">eval(decodeURIComponent('%64%6f%63%75%6d%65%6e%74%2e%77%72%69%74%65%28%27%3c%61%20%68%72%65%66%3d%22%6d%61%69%6c%74%6f%3a%6d%65%40%64%6f%6d%61%69%6e%2e%63%6f%6d%22%3e%4d%79%20%65%6d%61%69%6c%3c%2f%61%3e%27%29%3b'))</script>", mail_to("me@domain.com", "My email", :encode => "javascript")
|
snippet = mail_to("me@domain.com", "My email", :encode => "javascript")
|
||||||
|
assert_dom_equal "<script type=\"text/javascript\">eval(decodeURIComponent('%64%6f%63%75%6d%65%6e%74%2e%77%72%69%74%65%28%27%3c%61%20%68%72%65%66%3d%22%6d%61%69%6c%74%6f%3a%6d%65%40%64%6f%6d%61%69%6e%2e%63%6f%6d%22%3e%4d%79%20%65%6d%61%69%6c%3c%2f%61%3e%27%29%3b'))</script>", snippet
|
||||||
|
assert snippet.html_safe?
|
||||||
end
|
end
|
||||||
|
|
||||||
def test_mail_to_with_javascript_unicode
|
def test_mail_to_with_javascript_unicode
|
||||||
assert_dom_equal "<script type=\"text/javascript\">eval(decodeURIComponent('%64%6f%63%75%6d%65%6e%74%2e%77%72%69%74%65%28%27%3c%61%20%68%72%65%66%3d%22%6d%61%69%6c%74%6f%3a%75%6e%69%63%6f%64%65%40%65%78%61%6d%70%6c%65%2e%63%6f%6d%22%3e%c3%ba%6e%69%63%6f%64%65%3c%2f%61%3e%27%29%3b'))</script>", mail_to("unicode@example.com", "únicode", :encode => "javascript")
|
snippet = mail_to("unicode@example.com", "únicode", :encode => "javascript")
|
||||||
|
assert_dom_equal "<script type=\"text/javascript\">eval(decodeURIComponent('%64%6f%63%75%6d%65%6e%74%2e%77%72%69%74%65%28%27%3c%61%20%68%72%65%66%3d%22%6d%61%69%6c%74%6f%3a%75%6e%69%63%6f%64%65%40%65%78%61%6d%70%6c%65%2e%63%6f%6d%22%3e%c3%ba%6e%69%63%6f%64%65%3c%2f%61%3e%27%29%3b'))</script>", snippet
|
||||||
|
assert snippet.html_safe
|
||||||
end
|
end
|
||||||
|
|
||||||
def test_mail_with_options
|
def test_mail_with_options
|
||||||
|
Loading…
Reference in New Issue
Block a user