diff -r 93e5d18251d6 -r c53f0ead5781 tests/test-hgweb-auth.py --- a/tests/test-hgweb-auth.py Thu Nov 15 18:14:57 2018 -0500 +++ b/tests/test-hgweb-auth.py Fri Nov 16 17:56:36 2018 -0500 @@ -104,6 +104,39 @@ 'y.password': 'ypassword'}, urls=['http://y@example.org/foo/bar']) +print('\n*** Test user matching with name in prefix\n') + +# prefix, username and URL have the same user +test({'x.prefix': 'https://example.org/foo', + 'x.username': None, + 'x.password': 'xpassword', + 'y.prefix': 'http://y@example.org/foo', + 'y.username': 'y', + 'y.password': 'ypassword'}, + urls=['http://y@example.org/foo']) +# Prefix has a different user from username and URL +test({'y.prefix': 'http://z@example.org/foo', + 'y.username': 'y', + 'y.password': 'ypassword'}, + urls=['http://y@example.org/foo']) +# Prefix has a different user from URL; no username +test({'y.prefix': 'http://z@example.org/foo', + 'y.password': 'ypassword'}, + urls=['http://y@example.org/foo']) +# Prefix and URL have same user, but doesn't match username +test({'y.prefix': 'http://y@example.org/foo', + 'y.username': 'z', + 'y.password': 'ypassword'}, + urls=['http://y@example.org/foo']) +# Prefix and URL have the same user; no username +test({'y.prefix': 'http://y@example.org/foo', + 'y.password': 'ypassword'}, + urls=['http://y@example.org/foo']) +# Prefix user, but no URL user or username +test({'y.prefix': 'http://y@example.org/foo', + 'y.password': 'ypassword'}, + urls=['http://example.org/foo']) + def testauthinfo(fullurl, authurl): print('URIs:', fullurl, authurl) pm = urlreq.httppasswordmgrwithdefaultrealm()