tests/test-hgweb-auth.py.out
author Gregory Szorc <gregory.szorc@gmail.com>
Sun, 11 Mar 2018 10:51:14 -0700
changeset 36895 a5c478843c82
parent 15024 0f1311e829c9
child 37940 31c37e703cee
permissions -rw-r--r--
hgweb: construct static URL like hgweb does hgwebdir has a bit of code for constructing URLs. This reinvents wheels from our parsedrequest instance. And sometimes the behavior varies from what hgweb does. We'll want to converge that behavior. This commit changes hgwebdir so its staticurl template keyword is constructed the same way as hgweb's. There's probably room to factor this into a shared function. But let's solve the problem of divergence first. Differential Revision: https://phab.mercurial-scm.org/D2817


*** Test in-uri schemes

CFG: {x.prefix: http://example.org}
URI: http://example.org/foo
     ('x', 'x')
URI: http://example.org/foo/bar
     ('x', 'x')
URI: http://example.org/bar
     ('x', 'x')
URI: https://example.org/foo
     abort
URI: https://example.org/foo/bar
     abort
URI: https://example.org/bar
     abort
URI: https://x@example.org/bar
     abort
URI: https://y@example.org/bar
     abort
CFG: {x.prefix: https://example.org}
URI: http://example.org/foo
     abort
URI: http://example.org/foo/bar
     abort
URI: http://example.org/bar
     abort
URI: https://example.org/foo
     ('x', 'x')
URI: https://example.org/foo/bar
     ('x', 'x')
URI: https://example.org/bar
     ('x', 'x')
URI: https://x@example.org/bar
     ('x', 'x')
URI: https://y@example.org/bar
     abort
CFG: {x.prefix: http://example.org, x.schemes: https}
URI: http://example.org/foo
     ('x', 'x')
URI: http://example.org/foo/bar
     ('x', 'x')
URI: http://example.org/bar
     ('x', 'x')
URI: https://example.org/foo
     abort
URI: https://example.org/foo/bar
     abort
URI: https://example.org/bar
     abort
URI: https://x@example.org/bar
     abort
URI: https://y@example.org/bar
     abort
CFG: {x.prefix: https://example.org, x.schemes: http}
URI: http://example.org/foo
     abort
URI: http://example.org/foo/bar
     abort
URI: http://example.org/bar
     abort
URI: https://example.org/foo
     ('x', 'x')
URI: https://example.org/foo/bar
     ('x', 'x')
URI: https://example.org/bar
     ('x', 'x')
URI: https://x@example.org/bar
     ('x', 'x')
URI: https://y@example.org/bar
     abort

*** Test separately configured schemes

CFG: {x.prefix: example.org, x.schemes: http}
URI: http://example.org/foo
     ('x', 'x')
URI: http://example.org/foo/bar
     ('x', 'x')
URI: http://example.org/bar
     ('x', 'x')
URI: https://example.org/foo
     abort
URI: https://example.org/foo/bar
     abort
URI: https://example.org/bar
     abort
URI: https://x@example.org/bar
     abort
URI: https://y@example.org/bar
     abort
CFG: {x.prefix: example.org, x.schemes: https}
URI: http://example.org/foo
     abort
URI: http://example.org/foo/bar
     abort
URI: http://example.org/bar
     abort
URI: https://example.org/foo
     ('x', 'x')
URI: https://example.org/foo/bar
     ('x', 'x')
URI: https://example.org/bar
     ('x', 'x')
URI: https://x@example.org/bar
     ('x', 'x')
URI: https://y@example.org/bar
     abort
CFG: {x.prefix: example.org, x.schemes: http https}
URI: http://example.org/foo
     ('x', 'x')
URI: http://example.org/foo/bar
     ('x', 'x')
URI: http://example.org/bar
     ('x', 'x')
URI: https://example.org/foo
     ('x', 'x')
URI: https://example.org/foo/bar
     ('x', 'x')
URI: https://example.org/bar
     ('x', 'x')
URI: https://x@example.org/bar
     ('x', 'x')
URI: https://y@example.org/bar
     abort

*** Test prefix matching

CFG: {x.prefix: http://example.org/foo, y.prefix: http://example.org/bar}
URI: http://example.org/foo
     ('x', 'x')
URI: http://example.org/foo/bar
     ('x', 'x')
URI: http://example.org/bar
     ('y', 'y')
URI: https://example.org/foo
     abort
URI: https://example.org/foo/bar
     abort
URI: https://example.org/bar
     abort
URI: https://x@example.org/bar
     abort
URI: https://y@example.org/bar
     abort
CFG: {x.prefix: http://example.org/foo, y.prefix: http://example.org/foo/bar}
URI: http://example.org/foo
     ('x', 'x')
URI: http://example.org/foo/bar
     ('y', 'y')
URI: http://example.org/bar
     abort
URI: https://example.org/foo
     abort
URI: https://example.org/foo/bar
     abort
URI: https://example.org/bar
     abort
URI: https://x@example.org/bar
     abort
URI: https://y@example.org/bar
     abort
CFG: {x.prefix: *, y.prefix: https://example.org/bar}
URI: http://example.org/foo
     abort
URI: http://example.org/foo/bar
     abort
URI: http://example.org/bar
     abort
URI: https://example.org/foo
     ('x', 'x')
URI: https://example.org/foo/bar
     ('x', 'x')
URI: https://example.org/bar
     ('y', 'y')
URI: https://x@example.org/bar
     ('x', 'x')
URI: https://y@example.org/bar
     ('y', 'y')

*** Test user matching

CFG: {x.password: xpassword, x.prefix: http://example.org/foo, x.username: None}
URI: http://y@example.org/foo
     ('y', 'xpassword')
CFG: {x.password: xpassword, x.prefix: http://example.org/foo, x.username: None, y.password: ypassword, y.prefix: http://example.org/foo, y.username: y}
URI: http://y@example.org/foo
     ('y', 'ypassword')
CFG: {x.password: xpassword, x.prefix: http://example.org/foo/bar, x.username: None, y.password: ypassword, y.prefix: http://example.org/foo, y.username: y}
URI: http://y@example.org/foo/bar
     ('y', 'xpassword')

*** Test urllib2 and util.url

URIs: http://user@example.com:8080/foo http://example.com:8080/foo
('user', '')