Fixing the issue4860. Escaping embedded '"' character in js_output() method of Morsel.
diff --git a/Lib/Cookie.py b/Lib/Cookie.py
index b2f7427..1ccfd16 100644
--- a/Lib/Cookie.py
+++ b/Lib/Cookie.py
@@ -477,7 +477,7 @@
document.cookie = \"%s\";
// end hiding -->
</script>
- """ % ( self.OutputString(attrs), )
+ """ % ( self.OutputString(attrs).replace('"',r'\"'), )
# end js_output()
def OutputString(self, attrs=None):
diff --git a/Lib/test/test_cookie.py b/Lib/test/test_cookie.py
index e7c0cf1..1cd538c 100644
--- a/Lib/test/test_cookie.py
+++ b/Lib/test/test_cookie.py
@@ -51,17 +51,17 @@
self.assertEqual(C.output(['path']),
'Set-Cookie: Customer="WILE_E_COYOTE"; Path=/acme')
- self.assertEqual(C.js_output(), """
+ self.assertEqual(C.js_output(), r"""
<script type="text/javascript">
<!-- begin hiding
- document.cookie = "Customer="WILE_E_COYOTE"; Path=/acme; Version=1";
+ document.cookie = "Customer=\"WILE_E_COYOTE\"; Path=/acme; Version=1";
// end hiding -->
</script>
""")
- self.assertEqual(C.js_output(['path']), """
+ self.assertEqual(C.js_output(['path']), r"""
<script type="text/javascript">
<!-- begin hiding
- document.cookie = "Customer="WILE_E_COYOTE"; Path=/acme";
+ document.cookie = "Customer=\"WILE_E_COYOTE\"; Path=/acme";
// end hiding -->
</script>
""")