|
1 | 1 | # Simple test suite for http/cookies.py |
2 | | -import base64 |
3 | 2 | import copy |
4 | 3 | import unittest |
5 | 4 | import doctest |
6 | 5 | from http import cookies |
7 | 6 | import pickle |
8 | 7 | from test import support |
| 8 | +import urllib.parse |
9 | 9 |
|
10 | 10 |
|
11 | 11 | class CookieTests(unittest.TestCase): |
@@ -175,19 +175,20 @@ def test_load(self): |
175 | 175 |
|
176 | 176 | self.assertEqual(C.output(['path']), |
177 | 177 | 'Set-Cookie: Customer="WILE_E_COYOTE"; Path=/acme') |
178 | | - cookie_encoded = base64.b64encode(b'Customer="WILE_E_COYOTE"; Path=/acme; Version=1').decode('ascii') |
| 178 | + cookie_encoded = urllib.parse.quote('Customer="WILE_E_COYOTE"; Path=/acme; Version=1', safe='', encoding='utf-8') |
| 179 | + self.assertNotIn('/', cookie_encoded) |
179 | 180 | self.assertEqual(C.js_output(), fr""" |
180 | 181 | <script type="text/javascript"> |
181 | 182 | <!-- begin hiding |
182 | | - document.cookie = atob("{cookie_encoded}"); |
| 183 | + document.cookie = decodeURIComponent("{cookie_encoded}"); |
183 | 184 | // end hiding --> |
184 | 185 | </script> |
185 | 186 | """) |
186 | | - cookie_encoded = base64.b64encode(b'Customer="WILE_E_COYOTE"; Path=/acme').decode('ascii') |
| 187 | + cookie_encoded = urllib.parse.quote('Customer="WILE_E_COYOTE"; Path=/acme', safe='', encoding='utf-8') |
187 | 188 | self.assertEqual(C.js_output(['path']), fr""" |
188 | 189 | <script type="text/javascript"> |
189 | 190 | <!-- begin hiding |
190 | | - document.cookie = atob("{cookie_encoded}"); |
| 191 | + document.cookie = decodeURIComponent("{cookie_encoded}"); |
191 | 192 | // end hiding --> |
192 | 193 | </script> |
193 | 194 | """) |
@@ -292,19 +293,19 @@ def test_quoted_meta(self): |
292 | 293 |
|
293 | 294 | self.assertEqual(C.output(['path']), |
294 | 295 | 'Set-Cookie: Customer="WILE_E_COYOTE"; Path=/acme') |
295 | | - expected_encoded_cookie = base64.b64encode(b'Customer=\"WILE_E_COYOTE\"; Path=/acme; Version=1').decode('ascii') |
| 296 | + expected_encoded_cookie = urllib.parse.quote('Customer=\"WILE_E_COYOTE\"; Path=/acme; Version=1', safe='', encoding='utf-8') |
296 | 297 | self.assertEqual(C.js_output(), fr""" |
297 | 298 | <script type="text/javascript"> |
298 | 299 | <!-- begin hiding |
299 | | - document.cookie = atob("{expected_encoded_cookie}"); |
| 300 | + document.cookie = decodeURIComponent("{expected_encoded_cookie}"); |
300 | 301 | // end hiding --> |
301 | 302 | </script> |
302 | 303 | """) |
303 | | - expected_encoded_cookie = base64.b64encode(b'Customer=\"WILE_E_COYOTE\"; Path=/acme').decode('ascii') |
| 304 | + expected_encoded_cookie = urllib.parse.quote('Customer=\"WILE_E_COYOTE\"; Path=/acme', safe='', encoding='utf-8') |
304 | 305 | self.assertEqual(C.js_output(['path']), fr""" |
305 | 306 | <script type="text/javascript"> |
306 | 307 | <!-- begin hiding |
307 | | - document.cookie = atob("{expected_encoded_cookie}"); |
| 308 | + document.cookie = decodeURIComponent("{expected_encoded_cookie}"); |
308 | 309 | // end hiding --> |
309 | 310 | </script> |
310 | 311 | """) |
@@ -395,13 +396,14 @@ def test_setter(self): |
395 | 396 | self.assertEqual( |
396 | 397 | M.output(), |
397 | 398 | "Set-Cookie: %s=%s; Path=/foo" % (i, "%s_coded_val" % i)) |
398 | | - expected_encoded_cookie = base64.b64encode( |
399 | | - ("%s=%s; Path=/foo" % (i, "%s_coded_val" % i)).encode("ascii") |
400 | | - ).decode('ascii') |
| 399 | + expected_encoded_cookie = urllib.parse.quote( |
| 400 | + "%s=%s; Path=/foo" % (i, "%s_coded_val" % i), |
| 401 | + safe='', encoding='utf-8', |
| 402 | + ) |
401 | 403 | expected_js_output = """ |
402 | 404 | <script type="text/javascript"> |
403 | 405 | <!-- begin hiding |
404 | | - document.cookie = atob("%s"); |
| 406 | + document.cookie = decodeURIComponent("%s"); |
405 | 407 | // end hiding --> |
406 | 408 | </script> |
407 | 409 | """ % (expected_encoded_cookie,) |
|
0 commit comments