diff options
| author | Miss Islington (bot) <31488909+miss-islington@users.noreply.github.com> | 2021-05-05 16:04:38 -0700 |
|---|---|---|
| committer | GitHub <noreply@github.com> | 2021-05-05 16:04:38 -0700 |
| commit | 24f1d1a8a2c4aa58a606b4b6d5fa4305a3b91705 (patch) | |
| tree | 1029cef73df5ba4c151754cf9f7ef9135d142d2a /Lib/test/test_urlparse.py | |
| parent | 3b2a45ff95a68acc8276b37678c98740a232f6d4 (diff) | |
| download | cpython-git-24f1d1a8a2c4aa58a606b4b6d5fa4305a3b91705.tar.gz | |
bpo-43882 Remove the newline, and tab early. From query and fragments. (GH-25936)
(cherry picked from commit 985ac016373403e8ad41f8d563c4355ffa8d49ff)
Diffstat (limited to 'Lib/test/test_urlparse.py')
| -rw-r--r-- | Lib/test/test_urlparse.py | 24 |
1 files changed, 16 insertions, 8 deletions
diff --git a/Lib/test/test_urlparse.py b/Lib/test/test_urlparse.py index 67341fecef..31943f357f 100644 --- a/Lib/test/test_urlparse.py +++ b/Lib/test/test_urlparse.py @@ -614,32 +614,40 @@ class UrlParseTestCase(unittest.TestCase): def test_urlsplit_remove_unsafe_bytes(self): # Remove ASCII tabs and newlines from input - url = "http://www.python.org/java\nscript:\talert('msg\r\n')/#frag" + url = "http\t://www.python\n.org\t/java\nscript:\talert('msg\r\n')/?query\n=\tsomething#frag\nment" p = urllib.parse.urlsplit(url) self.assertEqual(p.scheme, "http") self.assertEqual(p.netloc, "www.python.org") self.assertEqual(p.path, "/javascript:alert('msg')/") - self.assertEqual(p.query, "") - self.assertEqual(p.fragment, "frag") + self.assertEqual(p.query, "query=something") + self.assertEqual(p.fragment, "fragment") self.assertEqual(p.username, None) self.assertEqual(p.password, None) self.assertEqual(p.hostname, "www.python.org") self.assertEqual(p.port, None) - self.assertEqual(p.geturl(), "http://www.python.org/javascript:alert('msg')/#frag") + self.assertEqual(p.geturl(), "http://www.python.org/javascript:alert('msg')/?query=something#fragment") # Remove ASCII tabs and newlines from input as bytes. - url = b"http://www.python.org/java\nscript:\talert('msg\r\n')/#frag" + url = b"http\t://www.python\n.org\t/java\nscript:\talert('msg\r\n')/?query\n=\tsomething#frag\nment" p = urllib.parse.urlsplit(url) self.assertEqual(p.scheme, b"http") self.assertEqual(p.netloc, b"www.python.org") self.assertEqual(p.path, b"/javascript:alert('msg')/") - self.assertEqual(p.query, b"") - self.assertEqual(p.fragment, b"frag") + self.assertEqual(p.query, b"query=something") + self.assertEqual(p.fragment, b"fragment") self.assertEqual(p.username, None) self.assertEqual(p.password, None) self.assertEqual(p.hostname, b"www.python.org") self.assertEqual(p.port, None) - self.assertEqual(p.geturl(), b"http://www.python.org/javascript:alert('msg')/#frag") + self.assertEqual(p.geturl(), b"http://www.python.org/javascript:alert('msg')/?query=something#fragment") + + # with scheme as cache-key + url = "http://www.python.org/java\nscript:\talert('msg\r\n')/?query\n=\tsomething#frag\nment" + scheme = "ht\ntp" + for _ in range(2): + p = urllib.parse.urlsplit(url, scheme=scheme) + self.assertEqual(p.scheme, "http") + self.assertEqual(p.geturl(), "http://www.python.org/javascript:alert('msg')/?query=something#fragment") def test_attributes_bad_port(self): """Check handling of invalid ports.""" |
