Permalink
Browse files

ensuring that json_escape returns html safe strings when passed an ht…

…ml safe string
  • Loading branch information...
1 parent caa9779 commit 88413efe5d3306bfe6ec331a676adf914636cb11 @tenderlove tenderlove committed Jun 9, 2011
@@ -15,6 +15,16 @@ class ErbUtilTest < Test::Unit::TestCase
end
end
+ def test_json_escape_returns_unsafe_strings_when_passed_unsafe_strings
+ value = json_escape("asdf")
+ assert !value.html_safe?
+ end
+
+ def test_json_escape_returns_safe_strings_when_passed_safe_strings
+ value = json_escape("asdf".html_safe)
+ assert value.html_safe?
+ end
+
def test_html_escape_is_html_safe
escaped = h("<p>")
assert_equal "&lt;p&gt;", escaped
@@ -50,7 +50,8 @@ def html_escape(s)
# <%=j @person.to_json %>
#
def json_escape(s)
- s.to_s.gsub(/[&"><]/) { |special| JSON_ESCAPE[special] }
+ result = s.to_s.gsub(/[&"><]/) { |special| JSON_ESCAPE[special] }
+ s.html_safe? ? result.html_safe : result
end
alias j json_escape

0 comments on commit 88413ef

Please sign in to comment.