[rhel7-branch 1/2] Add tests for IPv6 literals in URLs
dashea
installerbot-noreply at redhat.com
Thu Jul 23 15:30:39 UTC 2015
From: David Shea <dshea at redhat.com>
Related: rhbz#1246133
---
tests/regex_tests/url_test.py | 227 ++++++++++++++++++++++++++++++++++++++++++
1 file changed, 227 insertions(+)
diff --git a/tests/regex_tests/url_test.py b/tests/regex_tests/url_test.py
index 3c77f7d..8113cca 100644
--- a/tests/regex_tests/url_test.py
+++ b/tests/regex_tests/url_test.py
@@ -141,6 +141,228 @@ def url_regex_test(self):
( "http://user@proxy.host:3128/blah/blah?query=whatever#fragment",
("http://", 'user', None, 'proxy.host', '3128', '/blah/blah', "query=whatever", "fragment") ),
+ # Same, but with IPv4 literals
+ ( "1.2.3.4",
+ (None, None, None, '1.2.3.4', None, None, None, None) ),
+
+ ( "1.2.3.4:3128",
+ (None, None, None, '1.2.3.4', '3128', None, None, None) ),
+
+ ( "user:password at 1.2.3.4",
+ (None, 'user', 'password', '1.2.3.4', None, None, None, None) ),
+
+ ( "user at 1.2.3.4",
+ (None, 'user', None, '1.2.3.4', None, None, None, None) ),
+
+ ( "user:password at 1.2.3.4:3128",
+ (None, 'user', 'password', '1.2.3.4', '3128', None, None, None) ),
+
+ ( "user at 1.2.3.4:3128",
+ (None, 'user', None, '1.2.3.4', '3128', None, None, None) ),
+
+ ( "1.2.3.4/blah/blah",
+ (None, None, None, '1.2.3.4', None, '/blah/blah', None, None) ),
+
+ ( "1.2.3.4:3128/blah/blah",
+ (None, None, None, '1.2.3.4', '3128', '/blah/blah', None, None) ),
+
+ ( "user:password at 1.2.3.4/blah/blah",
+ (None, 'user', 'password', '1.2.3.4', None, '/blah/blah', None, None) ),
+
+ ( "user at 1.2.3.4/blah/blah",
+ (None, 'user', None, '1.2.3.4', None, '/blah/blah', None, None) ),
+
+ ( "user:password at 1.2.3.4:3128/blah/blah",
+ (None, 'user', 'password', '1.2.3.4', '3128', "/blah/blah", None, None) ),
+
+ ( "user at 1.2.3.4:3128/blah/blah",
+ (None, 'user', None, '1.2.3.4', '3128', "/blah/blah", None, None) ),
+
+
+
+ ( "http://1.2.3.4",
+ ('http://', None, None, '1.2.3.4', None, None, None, None) ),
+
+ ( "http://1.2.3.4:3128",
+ ('http://', None, None, '1.2.3.4', '3128', None, None, None) ),
+
+ ( "http://user:password@1.2.3.4",
+ ('http://', 'user', 'password', '1.2.3.4', None, None, None, None) ),
+
+ ( "http://user@1.2.3.4",
+ ('http://', 'user', None, '1.2.3.4', None, None, None, None) ),
+
+ ( "http://user:password@1.2.3.4:3128",
+ ('http://', 'user', 'password', '1.2.3.4', '3128', None, None, None) ),
+
+ ( "http://user@1.2.3.4:3128",
+ ('http://', 'user', None, '1.2.3.4', '3128', None, None, None) ),
+
+ ( "http://1.2.3.4/blah/blah",
+ ('http://', None, None, '1.2.3.4', None, '/blah/blah', None, None) ),
+
+ ( "http://1.2.3.4:3128/blah/blah",
+ ('http://', None, None, '1.2.3.4', '3128', '/blah/blah', None, None) ),
+
+ ( "http://user:password@1.2.3.4/blah/blah",
+ ("http://", 'user', 'password', '1.2.3.4', None, '/blah/blah', None, None) ),
+
+ ( "http://%75ser:password@1.2.3.4/blah/blah",
+ ("http://", '%75ser', 'password', '1.2.3.4', None, '/blah/blah', None, None) ),
+
+ ( "http://user:%70assword@1.2.3.4/blah/blah",
+ ("http://", 'user', '%70assword', '1.2.3.4', None, '/blah/blah', None, None) ),
+
+ ( "http://user@1.2.3.4/blah/blah",
+ ("http://", 'user', None, '1.2.3.4', None, '/blah/blah', None, None) ),
+
+ ( "http://user@1.2.3.4/blah/bla%68",
+ ("http://", 'user', None, '1.2.3.4', None, '/blah/bla%68', None, None) ),
+
+ ( "http://user:password@1.2.3.4:3128/blah/blah",
+ ("http://", 'user', 'password', '1.2.3.4', '3128', '/blah/blah', None, None) ),
+
+ ( "http://user@1.2.3.4:3128/blah/blah",
+ ("http://", 'user', None, '1.2.3.4', '3128', '/blah/blah', None, None) ),
+
+ ( "http://user@1.2.3.4:3128/blah/blah?query",
+ ("http://", 'user', None, '1.2.3.4', '3128', '/blah/blah', "query", None) ),
+
+ ( "http://user@1.2.3.4:3128/blah/blah?query?",
+ ("http://", 'user', None, '1.2.3.4', '3128', '/blah/blah', "query?", None) ),
+
+ ( "http://user@1.2.3.4:3128/blah/blah?query=whatever",
+ ("http://", 'user', None, '1.2.3.4', '3128', '/blah/blah', "query=whatever", None) ),
+
+ ( "http://user@1.2.3.4:3128/blah/blah?query=whate%76er",
+ ("http://", 'user', None, '1.2.3.4', '3128', '/blah/blah', "query=whate%76er", None) ),
+
+ ( "http://user@1.2.3.4:3128/blah/blah?",
+ ("http://", 'user', None, '1.2.3.4', '3128', '/blah/blah', "", None) ),
+
+ ( "http://user@1.2.3.4:3128/blah/blah#fragment",
+ ("http://", 'user', None, '1.2.3.4', '3128', '/blah/blah', None, "fragment") ),
+
+ ( "http://user@1.2.3.4:3128/blah/blah#",
+ ("http://", 'user', None, '1.2.3.4', '3128', '/blah/blah', None, "") ),
+
+ ( "http://user@1.2.3.4:3128/blah/blah#fragm%65nt",
+ ("http://", 'user', None, '1.2.3.4', '3128', '/blah/blah', None, "fragm%65nt") ),
+
+ ( "http://user@1.2.3.4:3128/blah/blah?query=whatever#fragment",
+ ("http://", 'user', None, '1.2.3.4', '3128', '/blah/blah', "query=whatever", "fragment") ),
+
+ # An again, but with IPv6 literals
+ ( "[dead::beef]",
+ (None, None, None, '[dead::beef]', None, None, None, None) ),
+
+ ( "[dead::beef]:3128",
+ (None, None, None, '[dead::beef]', '3128', None, None, None) ),
+
+ ( "user:password@[dead::beef]",
+ (None, 'user', 'password', '[dead::beef]', None, None, None, None) ),
+
+ ( "user@[dead::beef]",
+ (None, 'user', None, '[dead::beef]', None, None, None, None) ),
+
+ ( "user:password@[dead::beef]:3128",
+ (None, 'user', 'password', '[dead::beef]', '3128', None, None, None) ),
+
+ ( "user@[dead::beef]:3128",
+ (None, 'user', None, '[dead::beef]', '3128', None, None, None) ),
+
+ ( "[dead::beef]/blah/blah",
+ (None, None, None, '[dead::beef]', None, '/blah/blah', None, None) ),
+
+ ( "[dead::beef]:3128/blah/blah",
+ (None, None, None, '[dead::beef]', '3128', '/blah/blah', None, None) ),
+
+ ( "user:password@[dead::beef]/blah/blah",
+ (None, 'user', 'password', '[dead::beef]', None, '/blah/blah', None, None) ),
+
+ ( "user@[dead::beef]/blah/blah",
+ (None, 'user', None, '[dead::beef]', None, '/blah/blah', None, None) ),
+
+ ( "user:password@[dead::beef]:3128/blah/blah",
+ (None, 'user', 'password', '[dead::beef]', '3128', "/blah/blah", None, None) ),
+
+ ( "user@[dead::beef]:3128/blah/blah",
+ (None, 'user', None, '[dead::beef]', '3128', "/blah/blah", None, None) ),
+
+
+
+ ( "http://[dead::beef]",
+ ('http://', None, None, '[dead::beef]', None, None, None, None) ),
+
+ ( "http://[dead::beef]:3128",
+ ('http://', None, None, '[dead::beef]', '3128', None, None, None) ),
+
+ ( "http://user:password@[dead::beef]",
+ ('http://', 'user', 'password', '[dead::beef]', None, None, None, None) ),
+
+ ( "http://user@[dead::beef]",
+ ('http://', 'user', None, '[dead::beef]', None, None, None, None) ),
+
+ ( "http://user:password@[dead::beef]:3128",
+ ('http://', 'user', 'password', '[dead::beef]', '3128', None, None, None) ),
+
+ ( "http://user@[dead::beef]:3128",
+ ('http://', 'user', None, '[dead::beef]', '3128', None, None, None) ),
+
+ ( "http://[dead::beef]/blah/blah",
+ ('http://', None, None, '[dead::beef]', None, '/blah/blah', None, None) ),
+
+ ( "http://[dead::beef]:3128/blah/blah",
+ ('http://', None, None, '[dead::beef]', '3128', '/blah/blah', None, None) ),
+
+ ( "http://user:password@[dead::beef]/blah/blah",
+ ("http://", 'user', 'password', '[dead::beef]', None, '/blah/blah', None, None) ),
+
+ ( "http://%75ser:password@[dead::beef]/blah/blah",
+ ("http://", '%75ser', 'password', '[dead::beef]', None, '/blah/blah', None, None) ),
+
+ ( "http://user:%70assword@[dead::beef]/blah/blah",
+ ("http://", 'user', '%70assword', '[dead::beef]', None, '/blah/blah', None, None) ),
+
+ ( "http://user@[dead::beef]/blah/blah",
+ ("http://", 'user', None, '[dead::beef]', None, '/blah/blah', None, None) ),
+
+ ( "http://user@[dead::beef]/blah/bla%68",
+ ("http://", 'user', None, '[dead::beef]', None, '/blah/bla%68', None, None) ),
+
+ ( "http://user:password@[dead::beef]:3128/blah/blah",
+ ("http://", 'user', 'password', '[dead::beef]', '3128', '/blah/blah', None, None) ),
+
+ ( "http://user@[dead::beef]:3128/blah/blah",
+ ("http://", 'user', None, '[dead::beef]', '3128', '/blah/blah', None, None) ),
+
+ ( "http://user@[dead::beef]:3128/blah/blah?query",
+ ("http://", 'user', None, '[dead::beef]', '3128', '/blah/blah', "query", None) ),
+
+ ( "http://user@[dead::beef]:3128/blah/blah?query?",
+ ("http://", 'user', None, '[dead::beef]', '3128', '/blah/blah', "query?", None) ),
+
+ ( "http://user@[dead::beef]:3128/blah/blah?query=whatever",
+ ("http://", 'user', None, '[dead::beef]', '3128', '/blah/blah', "query=whatever", None) ),
+
+ ( "http://user@[dead::beef]:3128/blah/blah?query=whate%76er",
+ ("http://", 'user', None, '[dead::beef]', '3128', '/blah/blah', "query=whate%76er", None) ),
+
+ ( "http://user@[dead::beef]:3128/blah/blah?",
+ ("http://", 'user', None, '[dead::beef]', '3128', '/blah/blah', "", None) ),
+
+ ( "http://user@[dead::beef]:3128/blah/blah#fragment",
+ ("http://", 'user', None, '[dead::beef]', '3128', '/blah/blah', None, "fragment") ),
+
+ ( "http://user@[dead::beef]:3128/blah/blah#",
+ ("http://", 'user', None, '[dead::beef]', '3128', '/blah/blah', None, "") ),
+
+ ( "http://user@[dead::beef]:3128/blah/blah#fragm%65nt",
+ ("http://", 'user', None, '[dead::beef]', '3128', '/blah/blah', None, "fragm%65nt") ),
+
+ ( "http://user@[dead::beef]:3128/blah/blah?query=whatever#fragment",
+ ("http://", 'user', None, '[dead::beef]', '3128', '/blah/blah', "query=whatever", "fragment") ),
+
# Invalid schemes
( "0http://proxy.host/", None),
( "h~ttp://proxy.host/", None),
@@ -162,6 +384,11 @@ def url_regex_test(self):
# Invalid fragments
( "http://proxy.host/blah/blah#fragment#", None),
( "http://proxy.host/blah/blah#%xxragment", None),
+
+ # Unbracketed IPv6
+ ( "fe80::1234:56:78", None),
+ ( "fe80::1234:56:78/blah/blah", None),
+ ( "http://fe80::1234:56:78/blah/blah", None)
]
--
To view this commit on github, visit https://github.com/rhinstaller/anaconda/commit/44aab1bf1b71ff29b2532a3b9ef7fc747b37c4c5
More information about the anaconda-patches
mailing list