bpo-43882 Remove the newline, and tab early. From query and fragments… · python/cpython@24f1d1a (original) (raw)

`@@ -614,32 +614,40 @@ def test_urlsplit_attributes(self):

`

614

614

``

615

615

`def test_urlsplit_remove_unsafe_bytes(self):

`

616

616

`# Remove ASCII tabs and newlines from input

`

617

``

`-

url = "http://www.python.org/java\nscript:\talert('msg\r\n')/#frag"

`

``

617

`+

url = "http\t://www.python\n.org\t/java\nscript:\talert('msg\r\n')/?query\n=\tsomething#frag\nment"

`

618

618

`p = urllib.parse.urlsplit(url)

`

619

619

`self.assertEqual(p.scheme, "http")

`

620

620

`self.assertEqual(p.netloc, "www.python.org")

`

621

621

`self.assertEqual(p.path, "/javascript:alert('msg')/")

`

622

``

`-

self.assertEqual(p.query, "")

`

623

``

`-

self.assertEqual(p.fragment, "frag")

`

``

622

`+

self.assertEqual(p.query, "query=something")

`

``

623

`+

self.assertEqual(p.fragment, "fragment")

`

624

624

`self.assertEqual(p.username, None)

`

625

625

`self.assertEqual(p.password, None)

`

626

626

`self.assertEqual(p.hostname, "www.python.org")

`

627

627

`self.assertEqual(p.port, None)

`

628

``

`-

self.assertEqual(p.geturl(), "http://www.python.org/javascript:alert('msg')/#frag")

`

``

628

`+

self.assertEqual(p.geturl(), "http://www.python.org/javascript:alert('msg')/?query=something#fragment")

`

629

629

``

630

630

`# Remove ASCII tabs and newlines from input as bytes.

`

631

``

`-

url = b"http://www.python.org/java\nscript:\talert('msg\r\n')/#frag"

`

``

631

`+

url = b"http\t://www.python\n.org\t/java\nscript:\talert('msg\r\n')/?query\n=\tsomething#frag\nment"

`

632

632

`p = urllib.parse.urlsplit(url)

`

633

633

`self.assertEqual(p.scheme, b"http")

`

634

634

`self.assertEqual(p.netloc, b"www.python.org")

`

635

635

`self.assertEqual(p.path, b"/javascript:alert('msg')/")

`

636

``

`-

self.assertEqual(p.query, b"")

`

637

``

`-

self.assertEqual(p.fragment, b"frag")

`

``

636

`+

self.assertEqual(p.query, b"query=something")

`

``

637

`+

self.assertEqual(p.fragment, b"fragment")

`

638

638

`self.assertEqual(p.username, None)

`

639

639

`self.assertEqual(p.password, None)

`

640

640

`self.assertEqual(p.hostname, b"www.python.org")

`

641

641

`self.assertEqual(p.port, None)

`

642

``

`-

self.assertEqual(p.geturl(), b"http://www.python.org/javascript:alert('msg')/#frag")

`

``

642

`+

self.assertEqual(p.geturl(), b"http://www.python.org/javascript:alert('msg')/?query=something#fragment")

`

``

643

+

``

644

`+

with scheme as cache-key

`

``

645

`+

url = "http://www.python.org/java\nscript:\talert('msg\r\n')/?query\n=\tsomething#frag\nment"

`

``

646

`+

scheme = "ht\ntp"

`

``

647

`+

for _ in range(2):

`

``

648

`+

p = urllib.parse.urlsplit(url, scheme=scheme)

`

``

649

`+

self.assertEqual(p.scheme, "http")

`

``

650

`+

self.assertEqual(p.geturl(), "http://www.python.org/javascript:alert('msg')/?query=something#fragment")

`

643

651

``

644

652

`def test_attributes_bad_port(self):

`

645

653

`"""Check handling of invalid ports."""

`