URL test results
Input
Base
"http://example\t.\norg"
http://example.org/foo/bar
"http://user:pass@foo:21/bar;par?b#c"
http://example.org/foo/bar
"http:foo.com"
http://example.org/foo/bar
"\t :foo.com \n"
http://example.org/foo/bar
" foo.com "
http://example.org/foo/bar
"a:\t foo.com"
http://example.org/foo/bar
"http://f:21/ b ? d # e "
http://example.org/foo/bar
"http://f:/c"
http://example.org/foo/bar
"http://f:0/c"
http://example.org/foo/bar
"http://f:00000000000000/c"
http://example.org/foo/bar
"http://f:00000000000000000000080/c"
http://example.org/foo/bar
"http://f:b/c"
http://example.org/foo/bar
"http://f: /c"
http://example.org/foo/bar
"http://f:\n/c"
http://example.org/foo/bar
"http://f:fifty-two/c"
http://example.org/foo/bar
"http://f:999999/c"
http://example.org/foo/bar
"http://f: 21 / b ? d # e "
http://example.org/foo/bar
""
http://example.org/foo/bar
" \t"
http://example.org/foo/bar
":foo.com/"
http://example.org/foo/bar
":foo.com\\"
http://example.org/foo/bar
":"
http://example.org/foo/bar
":a"
http://example.org/foo/bar
":/"
http://example.org/foo/bar
":\\"
http://example.org/foo/bar
":#"
http://example.org/foo/bar
"?"
http://example.org/foo/bar
"/"
http://example.org/foo/bar
":23"
http://example.org/foo/bar
"/:23"
http://example.org/foo/bar
"::"
http://example.org/foo/bar
"::23"
http://example.org/foo/bar
"foo://"
http://example.org/foo/bar
"http://a:b@c:29/d"
http://example.org/foo/bar
"http::@c:29"
http://example.org/foo/bar
"http://&a:foo(b]c@d:2/"
http://example.org/foo/bar
"http://::@c@d:2"
http://example.org/foo/bar
"http://foo.com:b@d/"
http://example.org/foo/bar
"http://foo.com/\\@"
http://example.org/foo/bar
"http:\\\\foo.com\\"
http://example.org/foo/bar
"http:\\\\a\\b:c\\d@foo.com\\"
http://example.org/foo/bar
"foo:/"
http://example.org/foo/bar
"foo:/bar.com/"
http://example.org/foo/bar
"foo://///////"
http://example.org/foo/bar
"foo://///////bar.com/"
http://example.org/foo/bar
"foo:////://///"
http://example.org/foo/bar
"c:/foo"
http://example.org/foo/bar
"//foo/bar"
http://example.org/foo/bar
"http://foo/path;a??e#f#g"
http://example.org/foo/bar
"http://foo/abcd?efgh?ijkl"
http://example.org/foo/bar
"http://foo/abcd#foo?bar"
http://example.org/foo/bar
"[61:24:74]:98"
http://example.org/foo/bar
"http:[61:27]/:foo"
http://example.org/foo/bar
"http://[1::2]:3:4"
http://example.org/foo/bar
"http://2001::1"
http://example.org/foo/bar
"http://2001::1]"
http://example.org/foo/bar
"http://2001::1]:80"
http://example.org/foo/bar
"http://[2001::1]"
http://example.org/foo/bar
"http://[2001::1]:80"
http://example.org/foo/bar
"http:/example.com/"
http://example.org/foo/bar
"ftp:/example.com/"
http://example.org/foo/bar
"https:/example.com/"
http://example.org/foo/bar
"madeupscheme:/example.com/"
http://example.org/foo/bar
"file:/example.com/"
http://example.org/foo/bar
"ftps:/example.com/"
http://example.org/foo/bar
"gopher:/example.com/"
http://example.org/foo/bar
"ws:/example.com/"
http://example.org/foo/bar
"wss:/example.com/"
http://example.org/foo/bar
"data:/example.com/"
http://example.org/foo/bar
"javascript:/example.com/"
http://example.org/foo/bar
"mailto:/example.com/"
http://example.org/foo/bar
"http:example.com/"
http://example.org/foo/bar
"ftp:example.com/"
http://example.org/foo/bar
"https:example.com/"
http://example.org/foo/bar
"madeupscheme:example.com/"
http://example.org/foo/bar
"ftps:example.com/"
http://example.org/foo/bar
"gopher:example.com/"
http://example.org/foo/bar
"ws:example.com/"
http://example.org/foo/bar
"wss:example.com/"
http://example.org/foo/bar
"data:example.com/"
http://example.org/foo/bar
"javascript:example.com/"
http://example.org/foo/bar
"mailto:example.com/"
http://example.org/foo/bar
"/a/b/c"
http://example.org/foo/bar
"/a/ /c"
http://example.org/foo/bar
"/a%2fc"
http://example.org/foo/bar
"/a/%2f/c"
http://example.org/foo/bar
"data:text/html,test#test"
http://example.org/foo/bar
"file:c:\\foo\\bar.html"
file:///tmp/mock/path
" File:c|////foo\\bar.html"
file:///tmp/mock/path
"C|/foo/bar"
file:///tmp/mock/path
"/C|\\foo\\bar"
file:///tmp/mock/path
"//C|/foo/bar"
file:///tmp/mock/path
"//server/file"
file:///tmp/mock/path
"\\\\server\\file"
file:///tmp/mock/path
"/\\server/file"
file:///tmp/mock/path
"file:///foo/bar.txt"
file:///tmp/mock/path
"file:///home/me"
file:///tmp/mock/path
"//"
file:///tmp/mock/path
"///"
file:///tmp/mock/path
"///test"
file:///tmp/mock/path
"file://test"
file:///tmp/mock/path
"file://localhost"
file:///tmp/mock/path
"file://localhost/"
file:///tmp/mock/path
"file://localhost/test"
file:///tmp/mock/path
"test"
file:///tmp/mock/path
"file:test"
file:///tmp/mock/path
"http://example.com/././foo"
about:blank
"http://example.com/./.foo"
about:blank
"http://example.com/foo/."
about:blank
"http://example.com/foo/./"
about:blank
"http://example.com/foo/bar/.."
about:blank
"http://example.com/foo/bar/../"
about:blank
"http://example.com/foo/..bar"
about:blank
"http://example.com/foo/bar/../ton"
about:blank
"http://example.com/foo/bar/../ton/../../a"
about:blank
"http://example.com/foo/../../.."
about:blank
"http://example.com/foo/../../../ton"
about:blank
"http://example.com/foo/%2e"
about:blank
"http://example.com/foo/%2e%2"
about:blank
"http://example.com/foo/%2e./%2e%2e/.%2e/%2e.bar"
about:blank
"http://example.com////../.."
about:blank
"http://example.com/foo/bar//../.."
about:blank
"http://example.com/foo/bar//.."
about:blank
"http://example.com/foo"
about:blank
"http://example.com/%20foo"
about:blank
"http://example.com/foo%"
about:blank
"http://example.com/foo%2"
about:blank
"http://example.com/foo%2zbar"
about:blank
"http://example.com/foo%2©zbar"
about:blank
"http://example.com/foo%41%7a"
about:blank
"http://example.com/foo\t\u0091%91"
about:blank
"http://example.com/foo%00%51"
about:blank
"http://example.com/(%28:%3A%29)"
about:blank
"http://example.com/%3A%3a%3C%3c"
about:blank
"http://example.com/foo\tbar"
about:blank
"http://example.com\\\\foo\\\\bar"
about:blank
"http://example.com/%7Ffp3%3Eju%3Dduvgw%3Dd"
about:blank
"http://example.com/@asdf%40"
about:blank
"http://example.com/你好你好"
about:blank
"http://example.com/‥/foo"
about:blank
"http://example.com//foo"
about:blank
"http://example.com//foo//bar"
about:blank
"http://www.google.com/foo?bar=baz#"
about:blank
"http://www.google.com/foo?bar=baz# »"
about:blank
"http://[www.google.com]/"
about:blank
"http://www.google.com"
about:blank
"http://192.0x00A80001"
about:blank
"http://www/foo%2Ehtml"
about:blank
"http://www/foo/%2E/html"
about:blank
"http://user:pass@/"
about:blank
"http://%25DOMAIN:foobar@foodomain.com/"
about:blank
"http:\\\\www.google.com\\foo"
about:blank
"http://foo:80/"
about:blank
"http://foo:81/"
about:blank
"httpa://foo:80/"
about:blank
"http://foo:-80/"
about:blank
"https://foo:443/"
about:blank
"https://foo:80/"
about:blank
"ftp://foo:21/"
about:blank
"ftp://foo:80/"
about:blank
"gopher://foo:70/"
about:blank
"gopher://foo:443/"
about:blank
"ws://foo:80/"
about:blank
"ws://foo:81/"
about:blank
"ws://foo:443/"
about:blank
"ws://foo:815/"
about:blank
"wss://foo:80/"
about:blank
"wss://foo:81/"
about:blank
"wss://foo:443/"
about:blank
"wss://foo:815/"
about:blank
"http:/example.com/"
about:blank
"ftp:/example.com/"
about:blank
"https:/example.com/"
about:blank
"madeupscheme:/example.com/"
about:blank
"file:/example.com/"
about:blank
"ftps:/example.com/"
about:blank
"gopher:/example.com/"
about:blank
"ws:/example.com/"
about:blank
"wss:/example.com/"
about:blank
"data:/example.com/"
about:blank
"javascript:/example.com/"
about:blank
"mailto:/example.com/"
about:blank
"http:example.com/"
about:blank
"ftp:example.com/"
about:blank
"https:example.com/"
about:blank
"madeupscheme:example.com/"
about:blank
"ftps:example.com/"
about:blank
"gopher:example.com/"
about:blank
"ws:example.com/"
about:blank
"wss:example.com/"
about:blank
"data:example.com/"
about:blank
"javascript:example.com/"
about:blank
"mailto:example.com/"
about:blank
"http:@www.example.com"
about:blank
"http:/@www.example.com"
about:blank
"http://@www.example.com"
about:blank
"http:a:b@www.example.com"
about:blank
"http:/a:b@www.example.com"
about:blank
"http://a:b@www.example.com"
about:blank
"http://@pple.com"
about:blank
"http::b@www.example.com"
about:blank
"http:/:b@www.example.com"
about:blank
"http://:b@www.example.com"
about:blank
"http:/:@/www.example.com"
about:blank
"http://user@/www.example.com"
about:blank
"http:@/www.example.com"
about:blank
"http:/@/www.example.com"
about:blank
"http://@/www.example.com"
about:blank
"https:@/www.example.com"
about:blank
"http:a:b@/www.example.com"
about:blank
"http:/a:b@/www.example.com"
about:blank
"http://a:b@/www.example.com"
about:blank
"http::@/www.example.com"
about:blank
"http:a:@www.example.com"
about:blank
"http:/a:@www.example.com"
about:blank
"http://a:@www.example.com"
about:blank
"http://www.@pple.com"
about:blank
"http:@:www.example.com"
about:blank
"http:/@:www.example.com"
about:blank
"http://@:www.example.com"
about:blank
"http://:@www.example.com"
about:blank
"/"
http://www.example.com/test
"/test.txt"
http://www.example.com/test
"."
http://www.example.com/test
".."
http://www.example.com/test
"test.txt"
http://www.example.com/test
"./test.txt"
http://www.example.com/test
"../test.txt"
http://www.example.com/test
"../aaa/test.txt"
http://www.example.com/test
"../../test.txt"
http://www.example.com/test
"中/test.txt"
http://www.example.com/test
"http://www.example2.com"
http://www.example.com/test
"http://ExAmPlE.CoM"
http://other.com/
"http://example example.com"
http://other.com/
"http://Goo%20 goo%7C|.com"
http://other.com/
"http://GOO goo.com"
http://other.com/
"http://GOOgoo.com"
http://other.com/
"http://www.foo。bar.com"
http://other.com/
"http://\uFDD0zyx.com"
http://other.com/
"http://%ef%b7%90zyx.com"
http://other.com/
"http://Go.com"
http://other.com/
"http://%41.com"
http://other.com/
"http://%ef%bc%85%ef%bc%94%ef%bc%91.com"
http://other.com/
"http://%00.com"
http://other.com/
"http://%ef%bc%85%ef%bc%90%ef%bc%90.com"
http://other.com/
"http://你好你好"
http://other.com/
"http://%zz%66%a.com"
http://other.com/
"http://%25"
http://other.com/
"http://hello%00"
http://other.com/
"http://%30%78%63%30%2e%30%32%35%30.01"
http://other.com/
"http://%30%78%63%30%2e%30%32%35%30.01%2e"
http://other.com/
"http://%3g%78%63%30%2e%30%32%35%30%2E.01"
http://other.com/
"http://192.168.0.1 hello"
http://other.com/
"http://0Xc0.0250.01"
http://other.com/
"http://192.168.0.257"
http://other.com/
"http://[google.com]"
http://other.com/