Fixed #21725 -- Fixed JavaScript quoting encoding.

Thanks to nedbatchelder for the report.
This commit is contained in:
MattBlack85 2014-02-15 18:55:33 +01:00 committed by Baptiste Mispelon
parent 44814e78cc
commit 1c1dffca75
2 changed files with 6 additions and 1 deletions

View File

@ -343,7 +343,7 @@ def javascript_quote(s, quote_double_quotes=False):
s = s.replace('</', '<\\/') s = s.replace('</', '<\\/')
if quote_double_quotes: if quote_double_quotes:
s = s.replace('"', '&quot;') s = s.replace('"', '&quot;')
return str(ustring_re.sub(fix, s)) return ustring_re.sub(fix, s)
javascript_quote = allow_lazy(javascript_quote, six.text_type) javascript_quote = allow_lazy(javascript_quote, six.text_type)
# Expression to match some_token and some_token="with spaces" (and similarly # Expression to match some_token and some_token="with spaces" (and similarly

View File

@ -155,3 +155,8 @@ class TestUtilsText(SimpleTestCase):
self.assertEqual(text.javascript_quote(input), '"Text"') self.assertEqual(text.javascript_quote(input), '"Text"')
self.assertEqual(text.javascript_quote(input, quote_double_quotes=True), self.assertEqual(text.javascript_quote(input, quote_double_quotes=True),
'&quot;Text&quot;') '&quot;Text&quot;')
def test_javascript_quote_unicode(self):
input = "<script>alert('Hello \\xff.\n Wel𝕃come\there\r');</script>"
output = r"<script>alert(\'Hello \\xff.\n Wel𝕃come\there\r\');<\/script>"
self.assertEqual(text.javascript_quote(input), output)