= LayoutTests/fast/url/scheme.html =
== Firefox ==
PASS canonicalize('http://example.com/') is 'http://example.com/'
PASS canonicalize('HTTP://example.com/') is 'http://example.com/'
== Chrome ==
PASS canonicalize('http://example.com/') is 'http://example.com/'
PASS canonicalize('HTTP://example.com/') is 'http://example.com/'
== Safari ==
PASS canonicalize('http://example.com/') is 'http://example.com/'
FAIL canonicalize('HTTP://example.com/') should be http://example.com/. Was HTTP://example.com/.
== IE8 ==
PASS canonicalize('http://example.com/') is 'http://example.com/'
PASS canonicalize('HTTP://example.com/') is 'http://example.com/'
= LayoutTests/fast/url/host.html =
== Firefox ==
PASS canonicalize('http://GoOgLe.CoM/') is 'http://google.com/'
FAIL canonicalize('http://Goo%20 goo%7C|.com/') should be http://goo%20%20goo%7C%7C.com/. Was http://Goo%20 goo%7C|.com/.
FAIL canonicalize('http://GOO goo.com/') should be http://goo%20%20goo.com/. Was http://goo goo.com/.
PASS canonicalize('http://GOOgoo.com/') is 'http://googoo.com/'
PASS canonicalize('http://www.foo。bar.com/') is 'http://www.foo.bar.com/'
FAIL canonicalize('http://zyx.com/') should be http://%EF%BF%BDzyx.com/. Was http://zyx.com/.
FAIL canonicalize('http://%ef%b7%90zyx.com/') should be http://%EF%BF%BDzyx.com/. Was http://%ef%b7%90zyx.com/.
PASS canonicalize('http://Go.com/') is 'http://go.com/'
FAIL canonicalize('http://%41.com/') should be http://a.com/. Was http://%41.com/.
FAIL canonicalize('http://%ef%bc%85%ef%bc%94%ef%bc%91.com/') should be http://a.com/. Was http://%ef%bc%85%ef%bc%94%ef%bc%91.com/.
PASS canonicalize('http://%00.com/') is 'http://%00.com/'
FAIL canonicalize('http://%ef%bc%85%ef%bc%90%ef%bc%90.com/') should be http://%00.com/. Was http://%ef%bc%85%ef%bc%90%ef%bc%90.com/.
PASS canonicalize('http://你好你好/') is 'http://xn--6qqa088eba/'
FAIL canonicalize('http://%E4%BD%A0%E5%A5%BD你好/') should be http://xn--6qqa088eba/. Was http://xn--%e4%bd%a0%e5%a5%bd-5g72ap39l/.
FAIL canonicalize('http://%zz%66%a/') should be http://%25zzf%25a/. Was http://%zz%66%a/.
PASS canonicalize('http://%25/') is 'http://%25/'
PASS canonicalize('http://hello%00/') is 'http://hello%00/'
FAIL canonicalize('http://%30%78%63%30%2e%30%32%35%30.01/') should be http://192.168.0.1/. Was http://%30%78%63%30%2e%30%32%35%30.01/.
FAIL canonicalize('http://%30%78%63%30%2e%30%32%35%30.01%2e/') should be http://192.168.0.1/. Was http://%30%78%63%30%2e%30%32%35%30.01%2e/.
FAIL canonicalize('http://%3g%78%63%30%2e%30%32%35%30%2E.01/') should be http://%253gxc0.0250..01/. Was http://%3g%78%63%30%2e%30%32%35%30%2e.01/.
FAIL canonicalize('http://192.168.0.1 hello/') should be http://192.168.0.1%20hello/. Was http://192.168.0.1 hello/.
FAIL canonicalize('http://0Xc0.0250.01/') should be http://192.168.0.1/. Was http://0xc0.0250.01/.
PASS canonicalize('http://192.168.0.257/') is 'http://192.168.0.257/'
PASS canonicalize('http://[google.com]/') is 'http://[google.com]/'
FAIL canonicalize('http://т(/') should be http://xn--%28-7ed/. Was http://xn--(-8tb/.
== Chrome ==
PASS canonicalize('http://GoOgLe.CoM/') is 'http://google.com/'
PASS canonicalize('http://Goo%20 goo%7C|.com/') is 'http://goo%20%20goo%7C%7C.com/'
PASS canonicalize('http://GOO goo.com/') is 'http://goo%20%20goo.com/'
PASS canonicalize('http://GOOgoo.com/') is 'http://googoo.com/'
PASS canonicalize('http://www.foo。bar.com/') is 'http://www.foo.bar.com/'
PASS canonicalize('http://zyx.com/') is 'http://%EF%BF%BDzyx.com/'
PASS canonicalize('http://%ef%b7%90zyx.com/') is 'http://%EF%BF%BDzyx.com/'
PASS canonicalize('http://Go.com/') is 'http://go.com/'
PASS canonicalize('http://%41.com/') is 'http://a.com/'
PASS canonicalize('http://%ef%bc%85%ef%bc%94%ef%bc%91.com/') is 'http://a.com/'
PASS canonicalize('http://%00.com/') is 'http://%00.com/'
PASS canonicalize('http://%ef%bc%85%ef%bc%90%ef%bc%90.com/') is 'http://%00.com/'
PASS canonicalize('http://你好你好/') is 'http://xn--6qqa088eba/'
PASS canonicalize('http://%E4%BD%A0%E5%A5%BD你好/') is 'http://xn--6qqa088eba/'
PASS canonicalize('http://%zz%66%a/') is 'http://%25zzf%25a/'
PASS canonicalize('http://%25/') is 'http://%25/'
PASS canonicalize('http://hello%00/') is 'http://hello%00/'
PASS canonicalize('http://%30%78%63%30%2e%30%32%35%30.01/') is 'http://192.168.0.1/'
PASS canonicalize('http://%30%78%63%30%2e%30%32%35%30.01%2e/') is 'http://192.168.0.1/'
PASS canonicalize('http://%3g%78%63%30%2e%30%32%35%30%2E.01/') is 'http://%253gxc0.0250..01/'
PASS canonicalize('http://192.168.0.1 hello/') is 'http://192.168.0.1%20hello/'
PASS canonicalize('http://0Xc0.0250.01/') is 'http://192.168.0.1/'
PASS canonicalize('http://192.168.0.257/') is 'http://192.168.0.257/'
PASS canonicalize('http://[google.com]/') is 'http://[google.com]/'
PASS canonicalize('http://т(/') is 'http://xn--%28-7ed/'
== Safari ==
FAIL canonicalize('http://GoOgLe.CoM/') should be http://google.com/. Was http://GoOgLe.CoM/.
FAIL canonicalize('http://Goo%20 goo%7C|.com/') should be http://goo%20%20goo%7C%7C.com/. Was http://Goo%20 goo%7C|.com/.
FAIL canonicalize('http://GOO goo.com/') should be http://goo%20%20goo.com/. Was http://goo goo.com/.
PASS canonicalize('http://GOOgoo.com/') is 'http://googoo.com/'
PASS canonicalize('http://www.foo。bar.com/') is 'http://www.foo.bar.com/'
FAIL canonicalize('http://zyx.com/') should be http://%EF%BF%BDzyx.com/. Was http:/.
FAIL canonicalize('http://%ef%b7%90zyx.com/') should be http://%EF%BF%BDzyx.com/. Was http://%ef%b7%90zyx.com/.
PASS canonicalize('http://Go.com/') is 'http://go.com/'
FAIL canonicalize('http://%41.com/') should be http://a.com/. Was http://%41.com/.
FAIL canonicalize('http://%ef%bc%85%ef%bc%94%ef%bc%91.com/') should be http://a.com/. Was http://%ef%bc%85%ef%bc%94%ef%bc%91.com/.
PASS canonicalize('http://%00.com/') is 'http://%00.com/'
FAIL canonicalize('http://%ef%bc%85%ef%bc%90%ef%bc%90.com/') should be http://%00.com/. Was http://%ef%bc%85%ef%bc%90%ef%bc%90.com/.
PASS canonicalize('http://你好你好/') is 'http://xn--6qqa088eba/'
FAIL canonicalize('http://%E4%BD%A0%E5%A5%BD你好/') should be http://xn--6qqa088eba/. Was http://xn--%e4%bd%a0%e5%a5%bd-5g72ap39l/.
FAIL canonicalize('http://%zz%66%a/') should be http://%25zzf%25a/. Was http://%zz%66%a/.
PASS canonicalize('http://%25/') is 'http://%25/'
PASS canonicalize('http://hello%00/') is 'http://hello%00/'
FAIL canonicalize('http://%30%78%63%30%2e%30%32%35%30.01/') should be http://192.168.0.1/. Was http://%30%78%63%30%2e%30%32%35%30.01/.
FAIL canonicalize('http://%30%78%63%30%2e%30%32%35%30.01%2e/') should be http://192.168.0.1/. Was http://%30%78%63%30%2e%30%32%35%30.01%2e/.
FAIL canonicalize('http://%3g%78%63%30%2e%30%32%35%30%2E.01/') should be http://%253gxc0.0250..01/. Was http://%3g%78%63%30%2e%30%32%35%30%2E.01/.
FAIL canonicalize('http://192.168.0.1 hello/') should be http://192.168.0.1%20hello/. Was http://192.168.0.1 hello/.
FAIL canonicalize('http://0Xc0.0250.01/') should be http://192.168.0.1/. Was http://0xc0.0250.01/.
PASS canonicalize('http://192.168.0.257/') is 'http://192.168.0.257/'
PASS canonicalize('http://[google.com]/') is 'http://[google.com]/'
FAIL canonicalize('http://т(/') should be http://xn--%28-7ed/. Was http://xn--(-8tb/.
== IE8 ==
PASS canonicalize('http://GoOgLe.CoM/') is 'http://google.com/'
FAIL canonicalize('http://Goo%20 goo%7C|.com/') should be http://goo%20%20goo%7C%7C.com/. Was http://goo%20%20goo%7c%7c.com/.
FAIL canonicalize('http://GOO goo.com/') should be http://goo%20%20goo.com/. Threw exception [object Error]
PASS canonicalize('http://GOOgoo.com/') is 'http://googoo.com/'
PASS canonicalize('http://www.foo。bar.com/') is 'http://www.foo.bar.com/'
FAIL canonicalize('http://�zyx.com/') should be http://%EF%BF%BDzyx.com/. Was http://zyx.com/.
FAIL canonicalize('http://%ef%b7%90zyx.com/') should be http://%EF%BF%BDzyx.com/. Was http://%ef%b7%90zyx.com/.
PASS canonicalize('http://Go.com/') is 'http://go.com/'
FAIL canonicalize('http://%41.com/') should be http://a.com/. Threw exception [object Error]
FAIL canonicalize('http://%ef%bc%85%ef%bc%94%ef%bc%91.com/') should be http://a.com/. Was http://%ef%bc%85%ef%bc%94%ef%bc%91.com/.
FAIL canonicalize('http://%00.com/') should be http://%00.com/. Threw exception [object Error]
FAIL canonicalize('http://%ef%bc%85%ef%bc%90%ef%bc%90.com/') should be http://%00.com/. Was http://%ef%bc%85%ef%bc%90%ef%bc%90.com/.
FAIL canonicalize('http://你好你好/') should be http://xn--6qqa088eba/. Was http://你好你好/.
FAIL canonicalize('http://%E4%BD%A0%E5%A5%BD你好/') should be http://xn--6qqa088eba/. Threw exception [object Error]
FAIL canonicalize('http://%zz%66%a/') should be http://%25zzf%25a/. Threw exception [object Error]
PASS canonicalize('http://%25/') is 'http://%25/'
FAIL canonicalize('http://hello%00/') should be http://hello%00/. Threw exception [object Error]
FAIL canonicalize('http://%30%78%63%30%2e%30%32%35%30.01/') should be http://192.168.0.1/. Was http://0xc0.0250.01/.
FAIL canonicalize('http://%30%78%63%30%2e%30%32%35%30.01%2e/') should be http://192.168.0.1/. Was http://0xc0.0250.01./.
FAIL canonicalize('http://%3g%78%63%30%2e%30%32%35%30%2E.01/') should be http://%253gxc0.0250..01/. Threw exception [object Error]
PASS canonicalize('http://192.168.0.1 hello/') is 'http://192.168.0.1%20hello/'
FAIL canonicalize('http://0Xc0.0250.01/') should be http://192.168.0.1/. Was http://0xc0.0250.01/.
PASS canonicalize('http://192.168.0.257/') is 'http://192.168.0.257/'
FAIL canonicalize('http://[google.com]/') should be http://[google.com]/. Threw exception [object Error]
FAIL canonicalize('http://т(/') should be http://xn--%28-7ed/. Threw exception [object Error]
= LayoutTests/fast/url/port.html =
== Firefox ==
FAIL canonicalize('http://www.example.com:as df/') should be http://www.example.com:as%20df/. Was http://www.example.com:as df/.
PASS canonicalize('http://www.example.com:-2/') is 'http://www.example.com:-2/'
PASS canonicalize('http://www.example.com:80/') is 'http://www.example.com/'
PASS canonicalize('http://www.example.com:8080/') is 'http://www.example.com:8080/'
PASS canonicalize('foobar://www.example.com:80/') is 'foobar://www.example.com:80/'
== Chrome ==
PASS canonicalize('http://www.example.com:as df/') is 'http://www.example.com:as%20df/'
PASS canonicalize('http://www.example.com:-2/') is 'http://www.example.com:-2/'
PASS canonicalize('http://www.example.com:80/') is 'http://www.example.com/'
PASS canonicalize('http://www.example.com:8080/') is 'http://www.example.com:8080/'
PASS canonicalize('foobar://www.example.com:80/') is 'foobar://www.example.com:80/'
== Safari ==
FAIL canonicalize('http://www.example.com:as df/') should be http://www.example.com:as%20df/. Was http://www.example.com:as df/.
PASS canonicalize('http://www.example.com:-2/') is 'http://www.example.com:-2/'
FAIL canonicalize('http://www.example.com:80/') should be http://www.example.com/. Was http://www.example.com:80/.
PASS canonicalize('http://www.example.com:8080/') is 'http://www.example.com:8080/'
PASS canonicalize('foobar://www.example.com:80/') is 'foobar://www.example.com:80/'
== IE8 ==
FAIL canonicalize('http://www.example.com:as df/') should be http://www.example.com:as%20df/. Threw exception [object Error]
FAIL canonicalize('http://www.example.com:-2/') should be http://www.example.com:-2/. Threw exception [object Error]
PASS canonicalize('http://www.example.com:80/') is 'http://www.example.com/'
PASS canonicalize('http://www.example.com:8080/') is 'http://www.example.com:8080/'
= LayoutTests/fast/url/path.html =
== Firefox ==
PASS canonicalize('http://example.com/././foo') is 'http://example.com/foo'
PASS canonicalize('http://example.com/./.foo') is 'http://example.com/.foo'
PASS canonicalize('http://example.com/foo/.') is 'http://example.com/foo/'
PASS canonicalize('http://example.com/foo/./') is 'http://example.com/foo/'
PASS canonicalize('http://example.com/foo/bar/..') is 'http://example.com/foo/'
PASS canonicalize('http://example.com/foo/bar/../') is 'http://example.com/foo/'
PASS canonicalize('http://example.com/foo/..bar') is 'http://example.com/foo/..bar'
PASS canonicalize('http://example.com/foo/bar/../ton') is 'http://example.com/foo/ton'
PASS canonicalize('http://example.com/foo/bar/../ton/../../a') is 'http://example.com/a'
PASS canonicalize('http://example.com/foo/../../..') is 'http://example.com/'
PASS canonicalize('http://example.com/foo/../../../ton') is 'http://example.com/ton'
FAIL canonicalize('http://example.com/foo/%2e') should be http://example.com/foo/. Was http://example.com/foo/%2e.
FAIL canonicalize('http://example.com/foo/%2e%2') should be http://example.com/foo/.%2. Was http://example.com/foo/%2e%2.
FAIL canonicalize('http://example.com/foo/%2e./%2e%2e/.%2e/%2e.bar') should be http://example.com/..bar. Was http://example.com/%2e.bar.
PASS canonicalize('http://example.com////../..') is 'http://example.com//'
PASS canonicalize('http://example.com/foo') is 'http://example.com/foo'
PASS canonicalize('http://example.com/%20foo') is 'http://example.com/%20foo'
PASS canonicalize('http://example.com/foo%') is 'http://example.com/foo%'
PASS canonicalize('http://example.com/foo%2') is 'http://example.com/foo%2'
PASS canonicalize('http://example.com/foo%2zbar') is 'http://example.com/foo%2zbar'
PASS canonicalize('http://example.com/foo%2©zbar') is 'http://example.com/foo%2%C3%82%C2%A9zbar'
FAIL canonicalize('http://example.com/foo%41%7a') should be http://example.com/fooAz. Was http://example.com/foo%41%7a.
FAIL canonicalize('http://example.com/foo %91') should be http://example.com/foo%09%C2%91%91. Was http://example.com/foo%C2%91%91.
FAIL canonicalize('http://example.com/foo%00%51') should be http://example.com/foo%00Q. Was http://example.com/foo%00%51.
PASS canonicalize('http://example.com/(%28:%3A%29)') is 'http://example.com/(%28:%3A%29)'
PASS canonicalize('http://example.com/%3A%3a%3C%3c') is 'http://example.com/%3A%3a%3C%3c'
FAIL canonicalize('http://example.com/foo bar') should be http://example.com/foo%09bar. Was http://example.com/foobar.
FAIL canonicalize('http://example.com\\foo\\bar') should be http://example.com/foo/bar. Was http://example.com\foo\bar/.
PASS canonicalize('http://example.com/%7Ffp3%3Eju%3Dduvgw%3Dd') is 'http://example.com/%7Ffp3%3Eju%3Dduvgw%3Dd'
PASS canonicalize('http://example.com/@asdf%40') is 'http://example.com/@asdf%40'
PASS canonicalize('http://example.com/你好你好') is 'http://example.com/%E4%BD%A0%E5%A5%BD%E4%BD%A0%E5%A5%BD'
FAIL canonicalize('http://example.com/zyx') should be http://example.com/%EF%BF%BDzyx. Was http://example.com/%EF%B7%90zyx.
== Chrome ==
PASS canonicalize('http://example.com/././foo') is 'http://example.com/foo'
PASS canonicalize('http://example.com/./.foo') is 'http://example.com/.foo'
PASS canonicalize('http://example.com/foo/.') is 'http://example.com/foo/'
PASS canonicalize('http://example.com/foo/./') is 'http://example.com/foo/'
PASS canonicalize('http://example.com/foo/bar/..') is 'http://example.com/foo/'
PASS canonicalize('http://example.com/foo/bar/../') is 'http://example.com/foo/'
PASS canonicalize('http://example.com/foo/..bar') is 'http://example.com/foo/..bar'
PASS canonicalize('http://example.com/foo/bar/../ton') is 'http://example.com/foo/ton'
PASS canonicalize('http://example.com/foo/bar/../ton/../../a') is 'http://example.com/a'
PASS canonicalize('http://example.com/foo/../../..') is 'http://example.com/'
PASS canonicalize('http://example.com/foo/../../../ton') is 'http://example.com/ton'
PASS canonicalize('http://example.com/foo/%2e') is 'http://example.com/foo/'
PASS canonicalize('http://example.com/foo/%2e%2') is 'http://example.com/foo/.%2'
PASS canonicalize('http://example.com/foo/%2e./%2e%2e/.%2e/%2e.bar') is 'http://example.com/..bar'
PASS canonicalize('http://example.com////../..') is 'http://example.com//'
PASS canonicalize('http://example.com/foo') is 'http://example.com/foo'
PASS canonicalize('http://example.com/%20foo') is 'http://example.com/%20foo'
PASS canonicalize('http://example.com/foo%') is 'http://example.com/foo%'
PASS canonicalize('http://example.com/foo%2') is 'http://example.com/foo%2'
PASS canonicalize('http://example.com/foo%2zbar') is 'http://example.com/foo%2zbar'
PASS canonicalize('http://example.com/foo%2©zbar') is 'http://example.com/foo%2%C3%82%C2%A9zbar'
PASS canonicalize('http://example.com/foo%41%7a') is 'http://example.com/fooAz'
FAIL canonicalize('http://example.com/foo %91') should be http://example.com/foo%09%C2%91%91. Was http://example.com/foo%C2%91%91.
PASS canonicalize('http://example.com/foo%00%51') is 'http://example.com/foo%00Q'
PASS canonicalize('http://example.com/(%28:%3A%29)') is 'http://example.com/(%28:%3A%29)'
PASS canonicalize('http://example.com/%3A%3a%3C%3c') is 'http://example.com/%3A%3a%3C%3c'
FAIL canonicalize('http://example.com/foo bar') should be http://example.com/foo%09bar. Was http://example.com/foobar.
PASS canonicalize('http://example.com\\foo\\bar') is 'http://example.com/foo/bar'
PASS canonicalize('http://example.com/%7Ffp3%3Eju%3Dduvgw%3Dd') is 'http://example.com/%7Ffp3%3Eju%3Dduvgw%3Dd'
PASS canonicalize('http://example.com/@asdf%40') is 'http://example.com/@asdf%40'
PASS canonicalize('http://example.com/你好你好') is 'http://example.com/%E4%BD%A0%E5%A5%BD%E4%BD%A0%E5%A5%BD'
PASS canonicalize('http://example.com/zyx') is 'http://example.com/%EF%BF%BDzyx'
== Safari ==
PASS canonicalize('http://example.com/././foo') is 'http://example.com/foo'
PASS canonicalize('http://example.com/./.foo') is 'http://example.com/.foo'
PASS canonicalize('http://example.com/foo/.') is 'http://example.com/foo/'
PASS canonicalize('http://example.com/foo/./') is 'http://example.com/foo/'
PASS canonicalize('http://example.com/foo/bar/..') is 'http://example.com/foo/'
PASS canonicalize('http://example.com/foo/bar/../') is 'http://example.com/foo/'
PASS canonicalize('http://example.com/foo/..bar') is 'http://example.com/foo/..bar'
PASS canonicalize('http://example.com/foo/bar/../ton') is 'http://example.com/foo/ton'
PASS canonicalize('http://example.com/foo/bar/../ton/../../a') is 'http://example.com/a'
PASS canonicalize('http://example.com/foo/../../..') is 'http://example.com/'
PASS canonicalize('http://example.com/foo/../../../ton') is 'http://example.com/ton'
FAIL canonicalize('http://example.com/foo/%2e') should be http://example.com/foo/. Was http://example.com/foo/%2e.
FAIL canonicalize('http://example.com/foo/%2e%2') should be http://example.com/foo/.%2. Was http://example.com/foo/%2e%2.
FAIL canonicalize('http://example.com/foo/%2e./%2e%2e/.%2e/%2e.bar') should be http://example.com/..bar. Was http://example.com/foo/%2e./%2e%2e/.%2e/%2e.bar.
FAIL canonicalize('http://example.com////../..') should be http://example.com//. Was http://example.com/.
PASS canonicalize('http://example.com/foo') is 'http://example.com/foo'
PASS canonicalize('http://example.com/%20foo') is 'http://example.com/%20foo'
PASS canonicalize('http://example.com/foo%') is 'http://example.com/foo%'
PASS canonicalize('http://example.com/foo%2') is 'http://example.com/foo%2'
PASS canonicalize('http://example.com/foo%2zbar') is 'http://example.com/foo%2zbar'
PASS canonicalize('http://example.com/foo%2©zbar') is 'http://example.com/foo%2%C3%82%C2%A9zbar'
FAIL canonicalize('http://example.com/foo%41%7a') should be http://example.com/fooAz. Was http://example.com/foo%41%7a.
FAIL canonicalize('http://example.com/foo %91') should be http://example.com/foo%09%C2%91%91. Was http://example.com/foo%C2%91%91.
FAIL canonicalize('http://example.com/foo%00%51') should be http://example.com/foo%00Q. Was http://example.com/foo%00%51.
PASS canonicalize('http://example.com/(%28:%3A%29)') is 'http://example.com/(%28:%3A%29)'
PASS canonicalize('http://example.com/%3A%3a%3C%3c') is 'http://example.com/%3A%3a%3C%3c'
FAIL canonicalize('http://example.com/foo bar') should be http://example.com/foo%09bar. Was http://example.com/foobar.
PASS canonicalize('http://example.com\\foo\\bar') is 'http://example.com/foo/bar'
PASS canonicalize('http://example.com/%7Ffp3%3Eju%3Dduvgw%3Dd') is 'http://example.com/%7Ffp3%3Eju%3Dduvgw%3Dd'
PASS canonicalize('http://example.com/@asdf%40') is 'http://example.com/@asdf%40'
PASS canonicalize('http://example.com/你好你好') is 'http://example.com/%E4%BD%A0%E5%A5%BD%E4%BD%A0%E5%A5%BD'
FAIL canonicalize('http://example.com/zyx') should be http://example.com/%EF%BF%BDzyx. Was http://example.com/%EF%B7%90zyx.
== IE8 ==
PASS canonicalize('http://example.com/././foo') is 'http://example.com/foo'
PASS canonicalize('http://example.com/./.foo') is 'http://example.com/.foo'
PASS canonicalize('http://example.com/foo/.') is 'http://example.com/foo/'
PASS canonicalize('http://example.com/foo/./') is 'http://example.com/foo/'
PASS canonicalize('http://example.com/foo/bar/..') is 'http://example.com/foo/'
PASS canonicalize('http://example.com/foo/bar/../') is 'http://example.com/foo/'
PASS canonicalize('http://example.com/foo/..bar') is 'http://example.com/foo/..bar'
PASS canonicalize('http://example.com/foo/bar/../ton') is 'http://example.com/foo/ton'
PASS canonicalize('http://example.com/foo/bar/../ton/../../a') is 'http://example.com/a'
PASS canonicalize('http://example.com/foo/../../..') is 'http://example.com/'
PASS canonicalize('http://example.com/foo/../../../ton') is 'http://example.com/ton'
PASS canonicalize('http://example.com/foo/%2e') is 'http://example.com/foo/'
FAIL canonicalize('http://example.com/foo/%2e%2') should be http://example.com/foo/.%2. Threw exception [object Error]
PASS canonicalize('http://example.com/foo/%2e./%2e%2e/.%2e/%2e.bar') is 'http://example.com/..bar'
PASS canonicalize('http://example.com////../..') is 'http://example.com//'
PASS canonicalize('http://example.com/foo') is 'http://example.com/foo'
PASS canonicalize('http://example.com/%20foo') is 'http://example.com/%20foo'
FAIL canonicalize('http://example.com/foo%') should be http://example.com/foo%. Threw exception [object Error]
FAIL canonicalize('http://example.com/foo%2') should be http://example.com/foo%2. Threw exception [object Error]
FAIL canonicalize('http://example.com/foo%2zbar') should be http://example.com/foo%2zbar. Threw exception [object Error]
FAIL canonicalize('http://example.com/foo%2©zbar') should be http://example.com/foo%2%C3%82%C2%A9zbar. Threw exception [object Error]
PASS canonicalize('http://example.com/foo%41%7a') is 'http://example.com/fooAz'
FAIL canonicalize('http://example.com/foo %91') should be http://example.com/foo%09%C2%91%91. Was http://example.com/foo%91.
FAIL canonicalize('http://example.com/foo%00%51') should be http://example.com/foo%00Q. Threw exception [object Error]
PASS canonicalize('http://example.com/(%28:%3A%29)') is 'http://example.com/(%28:%3A%29)'
PASS canonicalize('http://example.com/%3A%3a%3C%3c') is 'http://example.com/%3A%3a%3C%3c'
FAIL canonicalize('http://example.com/foo bar') should be http://example.com/foo%09bar. Was http://example.com/foobar.
PASS canonicalize('http://example.com\\foo\\bar') is 'http://example.com/foo/bar'
PASS canonicalize('http://example.com/%7Ffp3%3Eju%3Dduvgw%3Dd') is 'http://example.com/%7Ffp3%3Eju%3Dduvgw%3Dd'
PASS canonicalize('http://example.com/@asdf%40') is 'http://example.com/@asdf%40'
FAIL canonicalize('http://example.com/你好你好') should be http://example.com/%E4%BD%A0%E5%A5%BD%E4%BD%A0%E5%A5%BD. Was http://example.com/你好你好.
FAIL canonicalize('http://example.com/�zyx') should be http://example.com/%EF%BF%BDzyx. Was http://example.com/zyx.
= LayoutTests/fast/url/query.html =
== Firefox ==
PASS canonicalize('http://www.example.com/?foo=bar') is 'http://www.example.com/?foo=bar'
PASS canonicalize('http://www.example.com/?as?df') is 'http://www.example.com/?as?df'
PASS canonicalize('http://www.example.com/?\x02hello bye') is 'http://www.example.com/?%02hello%7F%20bye'
PASS canonicalize('http://www.example.com/?%40%41123') is 'http://www.example.com/?%40%41123'
FAIL canonicalize('http://www.example.com/?q=你好') should be http://www.example.com/?q=%26%2320320%3B%26%2322909%3B. Was http://www.example.com/?q=%E4%BD%A0%E5%A5%BD.
FAIL canonicalize('http://www.example.com/?q=\ud800\ud800') should be http://www.example.com/?q=%26%2355296%3B%26%2355296%3B. Was http://www.example.com/?q=%EF%BF%BD%EF%BF%BD.
PASS canonicalize('http://www.example.com/?q=') is 'http://www.example.com/?q=%3Casdf%3E'
PASS canonicalize('http://www.example.com/?q="asdf"') is 'http://www.example.com/?q=%22asdf%22'
== Chrome ==
PASS canonicalize('http://www.example.com/?foo=bar') is 'http://www.example.com/?foo=bar'
PASS canonicalize('http://www.example.com/?as?df') is 'http://www.example.com/?as?df'
FAIL canonicalize('http://www.example.com/?\x02hello bye') should be http://www.example.com/?%02hello%7F%20bye. Was http://www.example.com/?hello%7F%20bye.
PASS canonicalize('http://www.example.com/?%40%41123') is 'http://www.example.com/?%40%41123'
PASS canonicalize('http://www.example.com/?q=你好') is 'http://www.example.com/?q=%26%2320320%3B%26%2322909%3B'
PASS canonicalize('http://www.example.com/?q=\ud800\ud800') is 'http://www.example.com/?q=%26%2355296%3B%26%2355296%3B'
PASS canonicalize('http://www.example.com/?q=') is 'http://www.example.com/?q=%3Casdf%3E'
PASS canonicalize('http://www.example.com/?q="asdf"') is 'http://www.example.com/?q=%22asdf%22'
== Safari ==
PASS canonicalize('http://www.example.com/?foo=bar') is 'http://www.example.com/?foo=bar'
PASS canonicalize('http://www.example.com/?as?df') is 'http://www.example.com/?as?df'
PASS canonicalize('http://www.example.com/?\x02hello bye') is 'http://www.example.com/?%02hello%7F%20bye'
PASS canonicalize('http://www.example.com/?%40%41123') is 'http://www.example.com/?%40%41123'
PASS canonicalize('http://www.example.com/?q=你好') is 'http://www.example.com/?q=%26%2320320%3B%26%2322909%3B'
PASS canonicalize('http://www.example.com/?q=\ud800\ud800') is 'http://www.example.com/?q=%26%2355296%3B%26%2355296%3B'
PASS canonicalize('http://www.example.com/?q=') is 'http://www.example.com/?q=%3Casdf%3E'
PASS canonicalize('http://www.example.com/?q="asdf"') is 'http://www.example.com/?q=%22asdf%22'
== IE8 ==
PASS canonicalize('http://www.example.com/?foo=bar') is 'http://www.example.com/?foo=bar'
PASS canonicalize('http://www.example.com/?as?df') is 'http://www.example.com/?as?df'
FAIL canonicalize('http://www.example.com/?\x02hello bye') should be http://www.example.com/?%02hello%7F%20bye. Was http://www.example.com/?hello bye.
PASS canonicalize('http://www.example.com/?%40%41123') is 'http://www.example.com/?%40%41123'
FAIL canonicalize('http://www.example.com/?q=你好') should be http://www.example.com/?q=%26%2320320%3B%26%2322909%3B. Was http://www.example.com/?q=你好.
FAIL canonicalize('http://www.example.com/?q=\ud800\ud800') should be http://www.example.com/?q=%26%2355296%3B%26%2355296%3B. Was http://www.example.com/?q=��.
FAIL canonicalize('http://www.example.com/?q=') should be http://www.example.com/?q=%3Casdf%3E. Was http://www.example.com/?q=.
FAIL canonicalize('http://www.example.com/?q="asdf"') should be http://www.example.com/?q=%22asdf%22. Was http://www.example.com/?q="asdf".
= LayoutTests/fast/url/anchor.html =
== Firefox ==
FAIL canonicalize('http://www.example.com/#hello, world') should be http://www.example.com/#hello, world. Was http://www.example.com/#hello,%20world.
FAIL canonicalize('http://www.example.com/#©') should be http://www.example.com/#©. Was http://www.example.com/#%C3%82%C2%A9.
FAIL canonicalize('http://www.example.com/#ss') should be http://www.example.com/#ss. Was http://www.example.com/#%F0%90%8C%80ss.
PASS canonicalize('http://www.example.com/#%41%a') is 'http://www.example.com/#%41%a'
FAIL canonicalize('http://www.example.com/#\ud800\u597d') should be http://www.example.com/#�好. Was http://www.example.com/#%EF%BF%BD%E5%A5%BD.
FAIL canonicalize('http://www.example.com/#a\uFDD0') should be http://www.example.com/#a. Was http://www.example.com/#a%EF%B7%90.
PASS canonicalize('http://www.example.com/#asdf#qwer') is 'http://www.example.com/#asdf#qwer'
PASS canonicalize('http://www.example.com/##asdf') is 'http://www.example.com/##asdf'
== Chrome ==
PASS canonicalize('http://www.example.com/#hello, world') is 'http://www.example.com/#hello, world'
PASS canonicalize('http://www.example.com/#©') is 'http://www.example.com/#©'
PASS canonicalize('http://www.example.com/#ss') is 'http://www.example.com/#ss'
PASS canonicalize('http://www.example.com/#%41%a') is 'http://www.example.com/#%41%a'
PASS canonicalize('http://www.example.com/#\ud800\u597d') is 'http://www.example.com/#\uFFFD\u597D'
FAIL canonicalize('http://www.example.com/#a\uFDD0') should be http://www.example.com/#a. Was http://www.example.com/#a�.
PASS canonicalize('http://www.example.com/#asdf#qwer') is 'http://www.example.com/#asdf#qwer'
PASS canonicalize('http://www.example.com/##asdf') is 'http://www.example.com/##asdf'
== Safari ==
FAIL canonicalize('http://www.example.com/#hello, world') should be http://www.example.com/#hello, world. Was http://www.example.com/#hello,%20world.
FAIL canonicalize('http://www.example.com/#©') should be http://www.example.com/#©. Was http://www.example.com/#%C2%A9.
FAIL canonicalize('http://www.example.com/#ss') should be http://www.example.com/#ss. Was http://www.example.com/#%26%2366304%3Bss.
PASS canonicalize('http://www.example.com/#%41%a') is 'http://www.example.com/#%41%a'
FAIL canonicalize('http://www.example.com/#\ud800\u597d') should be http://www.example.com/#�好. Was http://www.example.com/#%26%2355296%3B%26%2322909%3B.
FAIL canonicalize('http://www.example.com/#a\uFDD0') should be http://www.example.com/#a. Was http://www.example.com/#a%26%2364976%3B.
FAIL canonicalize('http://www.example.com/#asdf#qwer') should be http://www.example.com/#asdf#qwer. Was http://www.example.com/#asdf%23qwer.
FAIL canonicalize('http://www.example.com/##asdf') should be http://www.example.com/##asdf. Was http://www.example.com/#%23asdf.
== IE8 ==
PASS canonicalize('http://www.example.com/#hello, world') is 'http://www.example.com/#hello, world'
PASS canonicalize('http://www.example.com/#©') is 'http://www.example.com/#©'
PASS canonicalize('http://www.example.com/#ss') is 'http://www.example.com/#ss'
PASS canonicalize('http://www.example.com/#%41%a') is 'http://www.example.com/#%41%a'
FAIL canonicalize('http://www.example.com/#\ud800\u597d') should be http://www.example.com/#�好. Was http://www.example.com/#�好.
FAIL canonicalize('http://www.example.com/#a\uFDD0') should be http://www.example.com/#a�. Was http://www.example.com/#a.
PASS canonicalize('http://www.example.com/#asdf#qwer') is 'http://www.example.com/#asdf#qwer'
PASS canonicalize('http://www.example.com/##asdf') is 'http://www.example.com/##asdf'
= LayoutTests/fast/url/standard-url.html =
== Firefox ==
PASS canonicalize('http://www.google.com/foo?bar=baz#') is 'http://www.google.com/foo?bar=baz#'
PASS canonicalize('http://[www.google.com]/') is 'http://[www.google.com]/'
FAIL canonicalize('http:////////user:@google.com:99?foo') should be http://user@google.com:99/?foo. Was http://user:@google.com:99/?foo.
FAIL canonicalize('http://192.0x00A80001') should be http://192.168.0.1/. Was http://192.0x00a80001/.
FAIL canonicalize('http://www/foo%2Ehtml') should be http://www/foo.html. Was http://www/foo%2Ehtml.
PASS canonicalize('http://user:pass@/') is 'http://user:pass@/'
PASS canonicalize('http://%25DOMAIN:foobar@foodomain.com/') is 'http://%25DOMAIN:foobar@foodomain.com/'
FAIL canonicalize('http:\\\\www.google.com\\foo') should be http://www.google.com/foo. Was http://\\www.google.com\foo/.
FAIL canonicalize('http://www.google.com/asdf#\ud800') should be http://www.google.com/asdf#�. Was http://www.google.com/asdf#%EF%BF%BD.
PASS canonicalize('http://foo:80/') is 'http://foo/'
PASS canonicalize('http://foo:81/') is 'http://foo:81/'
PASS canonicalize('httpa://foo:80/') is 'httpa://foo:80/'
PASS canonicalize('http://foo:-80/') is 'http://foo:-80/'
PASS canonicalize('https://foo:443/') is 'https://foo/'
PASS canonicalize('https://foo:80/') is 'https://foo:80/'
PASS canonicalize('ftp://foo:21/') is 'ftp://foo/'
PASS canonicalize('ftp://foo:80/') is 'ftp://foo:80/'
PASS canonicalize('gopher://foo:70/') is 'gopher://foo/'
PASS canonicalize('gopher://foo:443/') is 'gopher://foo:443/'
FAIL canonicalize('ws://foo:80/') should be ws://foo/. Was ws://foo:80/.
PASS canonicalize('ws://foo:81/') is 'ws://foo:81/'
PASS canonicalize('ws://foo:443/') is 'ws://foo:443/'
PASS canonicalize('ws://foo:815/') is 'ws://foo:815/'
PASS canonicalize('wss://foo:80/') is 'wss://foo:80/'
PASS canonicalize('wss://foo:81/') is 'wss://foo:81/'
FAIL canonicalize('wss://foo:443/') should be wss://foo/. Was wss://foo:443/.
PASS canonicalize('wss://foo:815/') is 'wss://foo:815/'
== Chrome ==
PASS canonicalize('http://www.google.com/foo?bar=baz#') is 'http://www.google.com/foo?bar=baz#'
PASS canonicalize('http://[www.google.com]/') is 'http://[www.google.com]/'
PASS canonicalize('http:////////user:@google.com:99?foo') is 'http://user@google.com:99/?foo'
PASS canonicalize('http://192.0x00A80001') is 'http://192.168.0.1/'
PASS canonicalize('http://www/foo%2Ehtml') is 'http://www/foo.html'
PASS canonicalize('http://user:pass@/') is 'http://user:pass@/'
PASS canonicalize('http://%25DOMAIN:foobar@foodomain.com/') is 'http://%25DOMAIN:foobar@foodomain.com/'
PASS canonicalize('http:\\\\www.google.com\\foo') is 'http://www.google.com/foo'
PASS canonicalize('http://www.google.com/asdf#\ud800') is 'http://www.google.com/asdf#\uFFFD'
PASS canonicalize('http://foo:80/') is 'http://foo/'
PASS canonicalize('http://foo:81/') is 'http://foo:81/'
PASS canonicalize('httpa://foo:80/') is 'httpa://foo:80/'
PASS canonicalize('http://foo:-80/') is 'http://foo:-80/'
PASS canonicalize('https://foo:443/') is 'https://foo/'
PASS canonicalize('https://foo:80/') is 'https://foo:80/'
PASS canonicalize('ftp://foo:21/') is 'ftp://foo/'
PASS canonicalize('ftp://foo:80/') is 'ftp://foo:80/'
PASS canonicalize('gopher://foo:70/') is 'gopher://foo/'
PASS canonicalize('gopher://foo:443/') is 'gopher://foo:443/'
PASS canonicalize('ws://foo:80/') is 'ws://foo/'
PASS canonicalize('ws://foo:81/') is 'ws://foo:81/'
PASS canonicalize('ws://foo:443/') is 'ws://foo:443/'
PASS canonicalize('ws://foo:815/') is 'ws://foo:815/'
PASS canonicalize('wss://foo:80/') is 'wss://foo:80/'
PASS canonicalize('wss://foo:81/') is 'wss://foo:81/'
PASS canonicalize('wss://foo:443/') is 'wss://foo/'
PASS canonicalize('wss://foo:815/') is 'wss://foo:815/'
== Safari ==
PASS canonicalize('http://www.google.com/foo?bar=baz#') is 'http://www.google.com/foo?bar=baz#'
PASS canonicalize('http://[www.google.com]/') is 'http://[www.google.com]/'
FAIL canonicalize('http:////////user:@google.com:99?foo') should be http://user@google.com:99/?foo. Was http://////user:@google.com:99?foo.
FAIL canonicalize('http://192.0x00A80001') should be http://192.168.0.1/. Was http://192.0x00A80001/.
FAIL canonicalize('http://www/foo%2Ehtml') should be http://www/foo.html. Was http://www/foo%2Ehtml.
PASS canonicalize('http://user:pass@/') is 'http://user:pass@/'
PASS canonicalize('http://%25DOMAIN:foobar@foodomain.com/') is 'http://%25DOMAIN:foobar@foodomain.com/'
PASS canonicalize('http:\\\\www.google.com\\foo') is 'http://www.google.com/foo'
FAIL canonicalize('http://www.google.com/asdf#\ud800') should be http://www.google.com/asdf#�. Was http://www.google.com/asdf#%26%2355296%3B.
FAIL canonicalize('http://foo:80/') should be http://foo/. Was http://foo:80/.
PASS canonicalize('http://foo:81/') is 'http://foo:81/'
PASS canonicalize('httpa://foo:80/') is 'httpa://foo:80/'
PASS canonicalize('http://foo:-80/') is 'http://foo:-80/'
FAIL canonicalize('https://foo:443/') should be https://foo/. Was https://foo:443/.
PASS canonicalize('https://foo:80/') is 'https://foo:80/'
FAIL canonicalize('ftp://foo:21/') should be ftp://foo/. Was ftp://foo:21/.
PASS canonicalize('ftp://foo:80/') is 'ftp://foo:80/'
FAIL canonicalize('gopher://foo:70/') should be gopher://foo/. Was gopher://foo:70/.
PASS canonicalize('gopher://foo:443/') is 'gopher://foo:443/'
FAIL canonicalize('ws://foo:80/') should be ws://foo/. Was ws://foo:80/.
PASS canonicalize('ws://foo:81/') is 'ws://foo:81/'
PASS canonicalize('ws://foo:443/') is 'ws://foo:443/'
PASS canonicalize('ws://foo:815/') is 'ws://foo:815/'
PASS canonicalize('wss://foo:80/') is 'wss://foo:80/'
PASS canonicalize('wss://foo:81/') is 'wss://foo:81/'
FAIL canonicalize('wss://foo:443/') should be wss://foo/. Was wss://foo:443/.
PASS canonicalize('wss://foo:815/') is 'wss://foo:815/'
== IE8 ==
PASS canonicalize('http://www.google.com/foo?bar=baz#') is 'http://www.google.com/foo?bar=baz#'
FAIL canonicalize('http://[www.google.com]/') should be http://[www.google.com]/. Threw exception [object Error]
FAIL canonicalize('http:////////user:@google.com:99?foo') should be http://user@google.com:99/?foo. Was http:////////user:@google.com:99?foo.
PASS canonicalize('http://192.0x00A80001') is 'http://192.168.0.1/'
PASS canonicalize('http://www/foo%2Ehtml') is 'http://www/foo.html'
FAIL canonicalize('http://user:pass@/') should be http://user:pass@/. Threw exception [object Error]
FAIL canonicalize('http://%25DOMAIN:foobar@foodomain.com/') should be http://%25DOMAIN:foobar@foodomain.com/. Threw exception [object Error]
PASS canonicalize('http:\\\\www.google.com\\foo') is 'http://www.google.com/foo'
FAIL canonicalize('http://www.google.com/asdf#\ud800') should be http://www.google.com/asdf#�. Was http://www.google.com/asdf#�.
PASS canonicalize('http://foo:80/') is 'http://foo/'
PASS canonicalize('http://foo:81/') is 'http://foo:81/'
PASS canonicalize('httpa://foo:80/') is 'httpa://foo:80/'
FAIL canonicalize('http://foo:-80/') should be http://foo:-80/. Threw exception [object Error]
PASS canonicalize('https://foo:443/') is 'https://foo/'
PASS canonicalize('https://foo:80/') is 'https://foo:80/'
PASS canonicalize('ftp://foo:21/') is 'ftp://foo/'
PASS canonicalize('ftp://foo:80/') is 'ftp://foo:80/'
PASS canonicalize('gopher://foo:70/') is 'gopher://foo/'
PASS canonicalize('gopher://foo:443/') is 'gopher://foo:443/'
FAIL canonicalize('ws://foo:80/') should be ws://foo/. Was ws://foo:80/.
PASS canonicalize('ws://foo:81/') is 'ws://foo:81/'
PASS canonicalize('ws://foo:443/') is 'ws://foo:443/'
PASS canonicalize('ws://foo:815/') is 'ws://foo:815/'
PASS canonicalize('wss://foo:80/') is 'wss://foo:80/'
PASS canonicalize('wss://foo:81/') is 'wss://foo:81/'
FAIL canonicalize('wss://foo:443/') should be wss://foo/. Was wss://foo:443/.
PASS canonicalize('wss://foo:815/') is 'wss://foo:815/'
= LayoutTests/fast/url/path-url.html =
== Firefox ==
PASS canonicalize('javascript:') is 'javascript:'
PASS canonicalize('JavaScript:Foo') is 'javascript:Foo'
== Chrome ==
PASS canonicalize('javascript:') is 'javascript:'
PASS canonicalize('JavaScript:Foo') is 'javascript:Foo'
== Safari ==
PASS canonicalize('javascript:') is 'javascript:'
FAIL canonicalize('JavaScript:Foo') should be javascript:Foo. Was JavaScript:Foo.
== IE8 ==
PASS canonicalize('javascript:') is 'javascript:'
PASS canonicalize('JavaScript:Foo') is 'javascript:Foo'
= LayoutTests/fast/url/ipv4.html =
== Firefox ==
FAIL canonicalize('http:///') should be http:. Was http:///.
PASS canonicalize('http://./') is 'http://./'
PASS canonicalize('http://192.168.0.1/') is 'http://192.168.0.1/'
FAIL canonicalize('http://0300.0250.00.01/') should be http://192.168.0.1/. Was http://0300.0250.00.01/.
FAIL canonicalize('http://0xC0.0Xa8.0x0.0x1/') should be http://192.168.0.1/. Was http://0xc0.0xa8.0x0.0x1/.
PASS canonicalize('http://192.168.9.com/') is 'http://192.168.9.com/'
PASS canonicalize('http://19a.168.0.1/') is 'http://19a.168.0.1/'
PASS canonicalize('http://0308.0250.00.01/') is 'http://0308.0250.00.01/'
PASS canonicalize('http://0xCG.0xA8.0x0.0x1/') is 'http://0xcg.0xa8.0x0.0x1/'
FAIL canonicalize('http://192/') should be http://0.0.0.192/. Was http://192/.
FAIL canonicalize('http://0xC0a80001/') should be http://192.168.0.1/. Was http://0xc0a80001/.
FAIL canonicalize('http://030052000001/') should be http://192.168.0.1/. Was http://030052000001/.
FAIL canonicalize('http://000030052000001/') should be http://192.168.0.1/. Was http://000030052000001/.
FAIL canonicalize('http://192.168/') should be http://192.0.0.168/. Was http://192.168/.
FAIL canonicalize('http://192.0x00A80001/') should be http://192.168.0.1/. Was http://192.0x00a80001/.
FAIL canonicalize('http://0xc0.052000001/') should be http://192.168.0.1/. Was http://0xc0.052000001/.
FAIL canonicalize('http://192.168.1/') should be http://192.168.0.1/. Was http://192.168.1/.
PASS canonicalize('http://192.168.0.0.1/') is 'http://192.168.0.0.1/'
FAIL canonicalize('http://192.168.0.1./') should be http://192.168.0.1/. Was http://192.168.0.1./.
FAIL canonicalize('http://192.168.0.1. hello/') should be http://192.168.0.1.%20hello/. Was http://192.168.0.1. hello/.
PASS canonicalize('http://192.168.0.1../') is 'http://192.168.0.1../'
PASS canonicalize('http://192.168..1/') is 'http://192.168..1/'
PASS canonicalize('http://0x100.0/') is 'http://0x100.0/'
PASS canonicalize('http://0x100.0.0/') is 'http://0x100.0.0/'
PASS canonicalize('http://0x100.0.0.0/') is 'http://0x100.0.0.0/'
PASS canonicalize('http://0.0x100.0.0/') is 'http://0.0x100.0.0/'
PASS canonicalize('http://0.0.0x100.0/') is 'http://0.0.0x100.0/'
PASS canonicalize('http://0.0.0.0x100/') is 'http://0.0.0.0x100/'
PASS canonicalize('http://0.0.0x10000/') is 'http://0.0.0x10000/'
PASS canonicalize('http://0.0x1000000/') is 'http://0.0x1000000/'
PASS canonicalize('http://0x100000000/') is 'http://0x100000000/'
FAIL canonicalize('http://0xFF.0/') should be http://255.0.0.0/. Was http://0xff.0/.
FAIL canonicalize('http://0xFF.0.0/') should be http://255.0.0.0/. Was http://0xff.0.0/.
FAIL canonicalize('http://0xFF.0.0.0/') should be http://255.0.0.0/. Was http://0xff.0.0.0/.
FAIL canonicalize('http://0.0xFF.0.0/') should be http://0.255.0.0/. Was http://0.0xff.0.0/.
FAIL canonicalize('http://0.0.0xFF.0/') should be http://0.0.255.0/. Was http://0.0.0xff.0/.
FAIL canonicalize('http://0.0.0.0xFF/') should be http://0.0.0.255/. Was http://0.0.0.0xff/.
FAIL canonicalize('http://0.0.0xFFFF/') should be http://0.0.255.255/. Was http://0.0.0xffff/.
FAIL canonicalize('http://0.0xFFFFFF/') should be http://0.255.255.255/. Was http://0.0xffffff/.
FAIL canonicalize('http://0xFFFFFFFF/') should be http://255.255.255.255/. Was http://0xffffffff/.
PASS canonicalize('http://276.256.0xf1a2.077777/') is 'http://276.256.0xf1a2.077777/'
PASS canonicalize('http://192.168.0.257/') is 'http://192.168.0.257/'
PASS canonicalize('http://192.168.0xa20001/') is 'http://192.168.0xa20001/'
PASS canonicalize('http://192.015052000001/') is 'http://192.015052000001/'
PASS canonicalize('http://0X12C0a80001/') is 'http://0x12c0a80001/'
PASS canonicalize('http://276.1.2/') is 'http://276.1.2/'
FAIL canonicalize('http://192.168.0.1 hello/') should be http://192.168.0.1%20hello/. Was http://192.168.0.1 hello/.
FAIL canonicalize('http://0000000000000300.0x00000000000000fF.00000000000000001/') should be http://192.255.0.1/. Was http://0000000000000300.0x00000000000000ff.00000000000000001/.
PASS canonicalize('http://0000000000000300.0xffffffffFFFFFFFF.3022415481470977/') is 'http://0000000000000300.0xffffffffffffffff.3022415481470977/'
FAIL canonicalize('http://00000000000000000001/') should be http://0.0.0.1/. Was http://00000000000000000001/.
PASS canonicalize('http://0000000000000000100000000000000001/') is 'http://0000000000000000100000000000000001/'
PASS canonicalize('http://0.0.0.000000000000000000z/') is 'http://0.0.0.000000000000000000z/'
PASS canonicalize('http://0.0.0.100000000000000000z/') is 'http://0.0.0.100000000000000000z/'
FAIL canonicalize('http://0.00.0x.0x0/') should be http://0.0.0.0/. Was http://0.00.0x.0x0/.
== Chrome ==
PASS canonicalize('http:///') is 'http:'
PASS canonicalize('http://./') is 'http://./'
PASS canonicalize('http://192.168.0.1/') is 'http://192.168.0.1/'
PASS canonicalize('http://0300.0250.00.01/') is 'http://192.168.0.1/'
PASS canonicalize('http://0xC0.0Xa8.0x0.0x1/') is 'http://192.168.0.1/'
PASS canonicalize('http://192.168.9.com/') is 'http://192.168.9.com/'
PASS canonicalize('http://19a.168.0.1/') is 'http://19a.168.0.1/'
PASS canonicalize('http://0308.0250.00.01/') is 'http://0308.0250.00.01/'
PASS canonicalize('http://0xCG.0xA8.0x0.0x1/') is 'http://0xcg.0xa8.0x0.0x1/'
PASS canonicalize('http://192/') is 'http://0.0.0.192/'
PASS canonicalize('http://0xC0a80001/') is 'http://192.168.0.1/'
PASS canonicalize('http://030052000001/') is 'http://192.168.0.1/'
PASS canonicalize('http://000030052000001/') is 'http://192.168.0.1/'
PASS canonicalize('http://192.168/') is 'http://192.0.0.168/'
PASS canonicalize('http://192.0x00A80001/') is 'http://192.168.0.1/'
PASS canonicalize('http://0xc0.052000001/') is 'http://192.168.0.1/'
PASS canonicalize('http://192.168.1/') is 'http://192.168.0.1/'
PASS canonicalize('http://192.168.0.0.1/') is 'http://192.168.0.0.1/'
PASS canonicalize('http://192.168.0.1./') is 'http://192.168.0.1/'
PASS canonicalize('http://192.168.0.1. hello/') is 'http://192.168.0.1.%20hello/'
PASS canonicalize('http://192.168.0.1../') is 'http://192.168.0.1../'
PASS canonicalize('http://192.168..1/') is 'http://192.168..1/'
PASS canonicalize('http://0x100.0/') is 'http://0x100.0/'
PASS canonicalize('http://0x100.0.0/') is 'http://0x100.0.0/'
PASS canonicalize('http://0x100.0.0.0/') is 'http://0x100.0.0.0/'
PASS canonicalize('http://0.0x100.0.0/') is 'http://0.0x100.0.0/'
PASS canonicalize('http://0.0.0x100.0/') is 'http://0.0.0x100.0/'
PASS canonicalize('http://0.0.0.0x100/') is 'http://0.0.0.0x100/'
PASS canonicalize('http://0.0.0x10000/') is 'http://0.0.0x10000/'
PASS canonicalize('http://0.0x1000000/') is 'http://0.0x1000000/'
PASS canonicalize('http://0x100000000/') is 'http://0x100000000/'
PASS canonicalize('http://0xFF.0/') is 'http://255.0.0.0/'
PASS canonicalize('http://0xFF.0.0/') is 'http://255.0.0.0/'
PASS canonicalize('http://0xFF.0.0.0/') is 'http://255.0.0.0/'
PASS canonicalize('http://0.0xFF.0.0/') is 'http://0.255.0.0/'
PASS canonicalize('http://0.0.0xFF.0/') is 'http://0.0.255.0/'
PASS canonicalize('http://0.0.0.0xFF/') is 'http://0.0.0.255/'
PASS canonicalize('http://0.0.0xFFFF/') is 'http://0.0.255.255/'
PASS canonicalize('http://0.0xFFFFFF/') is 'http://0.255.255.255/'
PASS canonicalize('http://0xFFFFFFFF/') is 'http://255.255.255.255/'
PASS canonicalize('http://276.256.0xf1a2.077777/') is 'http://276.256.0xf1a2.077777/'
PASS canonicalize('http://192.168.0.257/') is 'http://192.168.0.257/'
PASS canonicalize('http://192.168.0xa20001/') is 'http://192.168.0xa20001/'
PASS canonicalize('http://192.015052000001/') is 'http://192.015052000001/'
PASS canonicalize('http://0X12C0a80001/') is 'http://0x12c0a80001/'
PASS canonicalize('http://276.1.2/') is 'http://276.1.2/'
PASS canonicalize('http://192.168.0.1 hello/') is 'http://192.168.0.1%20hello/'
PASS canonicalize('http://0000000000000300.0x00000000000000fF.00000000000000001/') is 'http://192.255.0.1/'
PASS canonicalize('http://0000000000000300.0xffffffffFFFFFFFF.3022415481470977/') is 'http://0000000000000300.0xffffffffffffffff.3022415481470977/'
PASS canonicalize('http://00000000000000000001/') is 'http://0.0.0.1/'
PASS canonicalize('http://0000000000000000100000000000000001/') is 'http://0000000000000000100000000000000001/'
PASS canonicalize('http://0.0.0.000000000000000000z/') is 'http://0.0.0.000000000000000000z/'
PASS canonicalize('http://0.0.0.100000000000000000z/') is 'http://0.0.0.100000000000000000z/'
PASS canonicalize('http://0.00.0x.0x0/') is 'http://0.0.0.0/'
== Safari ==
FAIL canonicalize('http:///') should be http:. Was http:/.
PASS canonicalize('http://./') is 'http://./'
PASS canonicalize('http://192.168.0.1/') is 'http://192.168.0.1/'
FAIL canonicalize('http://0300.0250.00.01/') should be http://192.168.0.1/. Was http://0300.0250.00.01/.
FAIL canonicalize('http://0xC0.0Xa8.0x0.0x1/') should be http://192.168.0.1/. Was http://0xC0.0Xa8.0x0.0x1/.
PASS canonicalize('http://192.168.9.com/') is 'http://192.168.9.com/'
PASS canonicalize('http://19a.168.0.1/') is 'http://19a.168.0.1/'
PASS canonicalize('http://0308.0250.00.01/') is 'http://0308.0250.00.01/'
FAIL canonicalize('http://0xCG.0xA8.0x0.0x1/') should be http://0xcg.0xa8.0x0.0x1/. Was http://0xCG.0xA8.0x0.0x1/.
FAIL canonicalize('http://192/') should be http://0.0.0.192/. Was http://192/.
FAIL canonicalize('http://0xC0a80001/') should be http://192.168.0.1/. Was http://0xC0a80001/.
FAIL canonicalize('http://030052000001/') should be http://192.168.0.1/. Was http://030052000001/.
FAIL canonicalize('http://000030052000001/') should be http://192.168.0.1/. Was http://000030052000001/.
FAIL canonicalize('http://192.168/') should be http://192.0.0.168/. Was http://192.168/.
FAIL canonicalize('http://192.0x00A80001/') should be http://192.168.0.1/. Was http://192.0x00A80001/.
FAIL canonicalize('http://0xc0.052000001/') should be http://192.168.0.1/. Was http://0xc0.052000001/.
FAIL canonicalize('http://192.168.1/') should be http://192.168.0.1/. Was http://192.168.1/.
PASS canonicalize('http://192.168.0.0.1/') is 'http://192.168.0.0.1/'
FAIL canonicalize('http://192.168.0.1./') should be http://192.168.0.1/. Was http://192.168.0.1./.
FAIL canonicalize('http://192.168.0.1. hello/') should be http://192.168.0.1.%20hello/. Was http://192.168.0.1. hello/.
PASS canonicalize('http://192.168.0.1../') is 'http://192.168.0.1../'
PASS canonicalize('http://192.168..1/') is 'http://192.168..1/'
PASS canonicalize('http://0x100.0/') is 'http://0x100.0/'
PASS canonicalize('http://0x100.0.0/') is 'http://0x100.0.0/'
PASS canonicalize('http://0x100.0.0.0/') is 'http://0x100.0.0.0/'
PASS canonicalize('http://0.0x100.0.0/') is 'http://0.0x100.0.0/'
PASS canonicalize('http://0.0.0x100.0/') is 'http://0.0.0x100.0/'
PASS canonicalize('http://0.0.0.0x100/') is 'http://0.0.0.0x100/'
PASS canonicalize('http://0.0.0x10000/') is 'http://0.0.0x10000/'
PASS canonicalize('http://0.0x1000000/') is 'http://0.0x1000000/'
PASS canonicalize('http://0x100000000/') is 'http://0x100000000/'
FAIL canonicalize('http://0xFF.0/') should be http://255.0.0.0/. Was http://0xFF.0/.
FAIL canonicalize('http://0xFF.0.0/') should be http://255.0.0.0/. Was http://0xFF.0.0/.
FAIL canonicalize('http://0xFF.0.0.0/') should be http://255.0.0.0/. Was http://0xFF.0.0.0/.
FAIL canonicalize('http://0.0xFF.0.0/') should be http://0.255.0.0/. Was http://0.0xFF.0.0/.
FAIL canonicalize('http://0.0.0xFF.0/') should be http://0.0.255.0/. Was http://0.0.0xFF.0/.
FAIL canonicalize('http://0.0.0.0xFF/') should be http://0.0.0.255/. Was http://0.0.0.0xFF/.
FAIL canonicalize('http://0.0.0xFFFF/') should be http://0.0.255.255/. Was http://0.0.0xFFFF/.
FAIL canonicalize('http://0.0xFFFFFF/') should be http://0.255.255.255/. Was http://0.0xFFFFFF/.
FAIL canonicalize('http://0xFFFFFFFF/') should be http://255.255.255.255/. Was http://0xFFFFFFFF/.
PASS canonicalize('http://276.256.0xf1a2.077777/') is 'http://276.256.0xf1a2.077777/'
PASS canonicalize('http://192.168.0.257/') is 'http://192.168.0.257/'
PASS canonicalize('http://192.168.0xa20001/') is 'http://192.168.0xa20001/'
PASS canonicalize('http://192.015052000001/') is 'http://192.015052000001/'
FAIL canonicalize('http://0X12C0a80001/') should be http://0x12c0a80001/. Was http://0X12C0a80001/.
PASS canonicalize('http://276.1.2/') is 'http://276.1.2/'
FAIL canonicalize('http://192.168.0.1 hello/') should be http://192.168.0.1%20hello/. Was http://192.168.0.1 hello/.
FAIL canonicalize('http://0000000000000300.0x00000000000000fF.00000000000000001/') should be http://192.255.0.1/. Was http://0000000000000300.0x00000000000000fF.00000000000000001/.
FAIL canonicalize('http://0000000000000300.0xffffffffFFFFFFFF.3022415481470977/') should be http://0000000000000300.0xffffffffffffffff.3022415481470977/. Was http://0000000000000300.0xffffffffFFFFFFFF.3022415481470977/.
FAIL canonicalize('http://00000000000000000001/') should be http://0.0.0.1/. Was http://00000000000000000001/.
PASS canonicalize('http://0000000000000000100000000000000001/') is 'http://0000000000000000100000000000000001/'
PASS canonicalize('http://0.0.0.000000000000000000z/') is 'http://0.0.0.000000000000000000z/'
PASS canonicalize('http://0.0.0.100000000000000000z/') is 'http://0.0.0.100000000000000000z/'
FAIL canonicalize('http://0.00.0x.0x0/') should be http://0.0.0.0/. Was http://0.00.0x.0x0/.
== IE8 ==
FAIL canonicalize('http:///') should be http:. Was http:///.
PASS canonicalize('http://./') is 'http://./'
PASS canonicalize('http://192.168.0.1/') is 'http://192.168.0.1/'
PASS canonicalize('http://0300.0250.00.01/') is 'http://192.168.0.1/'
PASS canonicalize('http://0xC0.0Xa8.0x0.0x1/') is 'http://192.168.0.1/'
PASS canonicalize('http://192.168.9.com/') is 'http://192.168.9.com/'
PASS canonicalize('http://19a.168.0.1/') is 'http://19a.168.0.1/'
PASS canonicalize('http://0308.0250.00.01/') is 'http://0308.0250.00.01/'
PASS canonicalize('http://0xCG.0xA8.0x0.0x1/') is 'http://0xcg.0xa8.0x0.0x1/'
PASS canonicalize('http://192/') is 'http://0.0.0.192/'
PASS canonicalize('http://0xC0a80001/') is 'http://192.168.0.1/'
PASS canonicalize('http://030052000001/') is 'http://192.168.0.1/'
PASS canonicalize('http://000030052000001/') is 'http://192.168.0.1/'
PASS canonicalize('http://192.168/') is 'http://192.0.0.168/'
PASS canonicalize('http://192.0x00A80001/') is 'http://192.168.0.1/'
PASS canonicalize('http://0xc0.052000001/') is 'http://192.168.0.1/'
PASS canonicalize('http://192.168.1/') is 'http://192.168.0.1/'
PASS canonicalize('http://192.168.0.0.1/') is 'http://192.168.0.0.1/'
FAIL canonicalize('http://192.168.0.1./') should be http://192.168.0.1/. Was http://192.168.0.1./.
PASS canonicalize('http://192.168.0.1. hello/') is 'http://192.168.0.1.%20hello/'
PASS canonicalize('http://192.168.0.1../') is 'http://192.168.0.1../'
PASS canonicalize('http://192.168..1/') is 'http://192.168..1/'
PASS canonicalize('http://0x100.0/') is 'http://0x100.0/'
PASS canonicalize('http://0x100.0.0/') is 'http://0x100.0.0/'
PASS canonicalize('http://0x100.0.0.0/') is 'http://0x100.0.0.0/'
PASS canonicalize('http://0.0x100.0.0/') is 'http://0.0x100.0.0/'
PASS canonicalize('http://0.0.0x100.0/') is 'http://0.0.0x100.0/'
PASS canonicalize('http://0.0.0.0x100/') is 'http://0.0.0.0x100/'
PASS canonicalize('http://0.0.0x10000/') is 'http://0.0.0x10000/'
PASS canonicalize('http://0.0x1000000/') is 'http://0.0x1000000/'
PASS canonicalize('http://0x100000000/') is 'http://0x100000000/'
PASS canonicalize('http://0xFF.0/') is 'http://255.0.0.0/'
PASS canonicalize('http://0xFF.0.0/') is 'http://255.0.0.0/'
PASS canonicalize('http://0xFF.0.0.0/') is 'http://255.0.0.0/'
PASS canonicalize('http://0.0xFF.0.0/') is 'http://0.255.0.0/'
PASS canonicalize('http://0.0.0xFF.0/') is 'http://0.0.255.0/'
PASS canonicalize('http://0.0.0.0xFF/') is 'http://0.0.0.255/'
PASS canonicalize('http://0.0.0xFFFF/') is 'http://0.0.255.255/'
PASS canonicalize('http://0.0xFFFFFF/') is 'http://0.255.255.255/'
PASS canonicalize('http://0xFFFFFFFF/') is 'http://255.255.255.255/'
PASS canonicalize('http://276.256.0xf1a2.077777/') is 'http://276.256.0xf1a2.077777/'
PASS canonicalize('http://192.168.0.257/') is 'http://192.168.0.257/'
PASS canonicalize('http://192.168.0xa20001/') is 'http://192.168.0xa20001/'
PASS canonicalize('http://192.015052000001/') is 'http://192.015052000001/'
FAIL canonicalize('http://0X12C0a80001/') should be http://0x12c0a80001/. Was http://192.168.0.1/.
PASS canonicalize('http://276.1.2/') is 'http://276.1.2/'
PASS canonicalize('http://192.168.0.1 hello/') is 'http://192.168.0.1%20hello/'
FAIL canonicalize('http://0000000000000300.0x00000000000000fF.00000000000000001/') should be http://192.255.0.1/. Was http://0000000000000300.0x00000000000000ff.00000000000000001/.
PASS canonicalize('http://0000000000000300.0xffffffffFFFFFFFF.3022415481470977/') is 'http://0000000000000300.0xffffffffffffffff.3022415481470977/'
PASS canonicalize('http://00000000000000000001/') is 'http://0.0.0.1/'
PASS canonicalize('http://0000000000000000100000000000000001/') is 'http://0000000000000000100000000000000001/'
PASS canonicalize('http://0.0.0.000000000000000000z/') is 'http://0.0.0.000000000000000000z/'
PASS canonicalize('http://0.0.0.100000000000000000z/') is 'http://0.0.0.100000000000000000z/'
FAIL canonicalize('http://0.00.0x.0x0/') should be http://0.0.0.0/. Was http://0.00.0x.0x0/.
= LayoutTests/fast/url/ipv6.html =
== Firefox ==
FAIL canonicalize('http:///') should be http:. Was http:///.
PASS canonicalize('http://[/') is 'http://[/'
FAIL canonicalize('http://[:/') should be http://[:/. Was http://[/.
PASS canonicalize('http://]/') is 'http://]/'
PASS canonicalize('http://:]/') is 'http://:]/'
PASS canonicalize('http://[]/') is 'http://[]/'
PASS canonicalize('http://[:]/') is 'http://[:]/'
PASS canonicalize('http://2001:db8::1/') is 'http://2001:db8::1/'
PASS canonicalize('http://[2001:db8::1/') is 'http://[2001:db8::1/'
PASS canonicalize('http://2001:db8::1]/') is 'http://2001:db8::1]/'
PASS canonicalize('http://[::]/') is 'http://[::]/'
PASS canonicalize('http://[::1]/') is 'http://[::1]/'
PASS canonicalize('http://[1::]/') is 'http://[1::]/'
FAIL canonicalize('http://[::192.168.0.1]/') should be http://[::c0a8:1]/. Was http://[::192.168.0.1]/.
FAIL canonicalize('http://[::ffff:192.168.0.1]/') should be http://[::ffff:c0a8:1]/. Was http://[::ffff:192.168.0.1]/.
FAIL canonicalize('http://[000:01:02:003:004:5:6:007]/') should be http://[0:1:2:3:4:5:6:7]/. Was http://[000:01:02:003:004:5:6:007]/.
PASS canonicalize('http://[A:b:c:DE:fF:0:1:aC]/') is 'http://[a:b:c:de:ff:0:1:ac]/'
FAIL canonicalize('http://[1:0:0:2::3:0]/') should be http://[1::2:0:0:3:0]/. Was http://[1:0:0:2::3:0]/.
PASS canonicalize('http://[1::2:0:0:3:0]/') is 'http://[1::2:0:0:3:0]/'
PASS canonicalize('http://[::eeee:192.168.0.1]/') is 'http://[::eeee:192.168.0.1]/'
PASS canonicalize('http://[2001::192.168.0.1]/') is 'http://[2001::192.168.0.1]/'
PASS canonicalize('http://[1:2:192.168.0.1:5:6]/') is 'http://[1:2:192.168.0.1:5:6]/'
FAIL canonicalize('http://[::ffff:192.1.2]/') should be http://[::ffff:c001:2]/. Was http://[::ffff:192.1.2]/.
FAIL canonicalize('http://[::ffff:0xC0.0Xa8.0x0.0x1]/') should be http://[::ffff:c0a8:1]/. Was http://[::ffff:0xc0.0xa8.0x0.0x1]/.
FAIL canonicalize('http://[0:0::0:0:8]/') should be http://[::8]/. Was http://[0:0::0:0:8]/.
PASS canonicalize('http://[2001:db8::1]/') is 'http://[2001:db8::1]/'
PASS canonicalize('http://[2001::db8::1]/') is 'http://[2001::db8::1]/'
PASS canonicalize('http://[2001:db8:::1]/') is 'http://[2001:db8:::1]/'
PASS canonicalize('http://[:::]/') is 'http://[:::]/'
PASS canonicalize('http://[2001::.com]/') is 'http://[2001::.com]/'
PASS canonicalize('http://[::192.168.0.0.1]/') is 'http://[::192.168.0.0.1]/'
PASS canonicalize('http://[::ffff:192.168.0.0.1]/') is 'http://[::ffff:192.168.0.0.1]/'
PASS canonicalize('http://[1:2:3:4:5:6:7:8:9]/') is 'http://[1:2:3:4:5:6:7:8:9]/'
PASS canonicalize('http://[0:0:0:0:0:0:0:192.168.0.1]/') is 'http://[0:0:0:0:0:0:0:192.168.0.1]/'
PASS canonicalize('http://[1:2:3:4:5:6::192.168.0.1]/') is 'http://[1:2:3:4:5:6::192.168.0.1]/'
FAIL canonicalize('http://[1:2:3:4:5:6::8]/') should be http://[1:2:3:4:5:6:0:8]/. Was http://[1:2:3:4:5:6::8]/.
PASS canonicalize('http://[1:2:3:4:5:6:7:8:]/') is 'http://[1:2:3:4:5:6:7:8:]/'
PASS canonicalize('http://[1:2:3:4:5:6:192.168.0.1:]/') is 'http://[1:2:3:4:5:6:192.168.0.1:]/'
PASS canonicalize('http://[-1:2:3:4:5:6:7:8]/') is 'http://[-1:2:3:4:5:6:7:8]/'
FAIL canonicalize('http://[1::%1]/') should be http://[1::%251]/. Was http://[1::%1]/.
FAIL canonicalize('http://[1::%eth0]/') should be http://[1::%25eth0]/. Was http://[1::%eth0]/.
FAIL canonicalize('http://[1::%]/') should be http://[1::%25]/. Was http://[1::%]/.
FAIL canonicalize('http://[%]/') should be http://[%25]/. Was http://[%]/.
FAIL canonicalize('http://[::%:]/') should be http://[::%25:]/. Was http://[::%:]/.
PASS canonicalize('http://[:0:0::0:0:8]/') is 'http://[:0:0::0:0:8]/'
PASS canonicalize('http://[0:0::0:0:8:]/') is 'http://[0:0::0:0:8:]/'
PASS canonicalize('http://[:0:0::0:0:8:]/') is 'http://[:0:0::0:0:8:]/'
PASS canonicalize('http://[::192.168..1]/') is 'http://[::192.168..1]/'
FAIL canonicalize('http://[::1 hello]/') should be http://[::1%20hello]/. Was http://[::1 hello]/.
== Chrome ==
PASS canonicalize('http:///') is 'http:'
PASS canonicalize('http://[/') is 'http://[/'
PASS canonicalize('http://[:/') is 'http://[:/'
PASS canonicalize('http://]/') is 'http://]/'
PASS canonicalize('http://:]/') is 'http://:]/'
PASS canonicalize('http://[]/') is 'http://[]/'
PASS canonicalize('http://[:]/') is 'http://[:]/'
PASS canonicalize('http://2001:db8::1/') is 'http://2001:db8::1/'
PASS canonicalize('http://[2001:db8::1/') is 'http://[2001:db8::1/'
PASS canonicalize('http://2001:db8::1]/') is 'http://2001:db8::1]/'
PASS canonicalize('http://[::]/') is 'http://[::]/'
PASS canonicalize('http://[::1]/') is 'http://[::1]/'
PASS canonicalize('http://[1::]/') is 'http://[1::]/'
PASS canonicalize('http://[::192.168.0.1]/') is 'http://[::c0a8:1]/'
PASS canonicalize('http://[::ffff:192.168.0.1]/') is 'http://[::ffff:c0a8:1]/'
PASS canonicalize('http://[000:01:02:003:004:5:6:007]/') is 'http://[0:1:2:3:4:5:6:7]/'
PASS canonicalize('http://[A:b:c:DE:fF:0:1:aC]/') is 'http://[a:b:c:de:ff:0:1:ac]/'
PASS canonicalize('http://[1:0:0:2::3:0]/') is 'http://[1::2:0:0:3:0]/'
PASS canonicalize('http://[1::2:0:0:3:0]/') is 'http://[1::2:0:0:3:0]/'
PASS canonicalize('http://[::eeee:192.168.0.1]/') is 'http://[::eeee:192.168.0.1]/'
PASS canonicalize('http://[2001::192.168.0.1]/') is 'http://[2001::192.168.0.1]/'
PASS canonicalize('http://[1:2:192.168.0.1:5:6]/') is 'http://[1:2:192.168.0.1:5:6]/'
PASS canonicalize('http://[::ffff:192.1.2]/') is 'http://[::ffff:c001:2]/'
PASS canonicalize('http://[::ffff:0xC0.0Xa8.0x0.0x1]/') is 'http://[::ffff:c0a8:1]/'
PASS canonicalize('http://[0:0::0:0:8]/') is 'http://[::8]/'
PASS canonicalize('http://[2001:db8::1]/') is 'http://[2001:db8::1]/'
PASS canonicalize('http://[2001::db8::1]/') is 'http://[2001::db8::1]/'
PASS canonicalize('http://[2001:db8:::1]/') is 'http://[2001:db8:::1]/'
PASS canonicalize('http://[:::]/') is 'http://[:::]/'
PASS canonicalize('http://[2001::.com]/') is 'http://[2001::.com]/'
PASS canonicalize('http://[::192.168.0.0.1]/') is 'http://[::192.168.0.0.1]/'
PASS canonicalize('http://[::ffff:192.168.0.0.1]/') is 'http://[::ffff:192.168.0.0.1]/'
PASS canonicalize('http://[1:2:3:4:5:6:7:8:9]/') is 'http://[1:2:3:4:5:6:7:8:9]/'
PASS canonicalize('http://[0:0:0:0:0:0:0:192.168.0.1]/') is 'http://[0:0:0:0:0:0:0:192.168.0.1]/'
PASS canonicalize('http://[1:2:3:4:5:6::192.168.0.1]/') is 'http://[1:2:3:4:5:6::192.168.0.1]/'
PASS canonicalize('http://[1:2:3:4:5:6::8]/') is 'http://[1:2:3:4:5:6:0:8]/'
PASS canonicalize('http://[1:2:3:4:5:6:7:8:]/') is 'http://[1:2:3:4:5:6:7:8:]/'
PASS canonicalize('http://[1:2:3:4:5:6:192.168.0.1:]/') is 'http://[1:2:3:4:5:6:192.168.0.1:]/'
PASS canonicalize('http://[-1:2:3:4:5:6:7:8]/') is 'http://[-1:2:3:4:5:6:7:8]/'
PASS canonicalize('http://[1::%1]/') is 'http://[1::%251]/'
PASS canonicalize('http://[1::%eth0]/') is 'http://[1::%25eth0]/'
PASS canonicalize('http://[1::%]/') is 'http://[1::%25]/'
PASS canonicalize('http://[%]/') is 'http://[%25]/'
PASS canonicalize('http://[::%:]/') is 'http://[::%25:]/'
PASS canonicalize('http://[:0:0::0:0:8]/') is 'http://[:0:0::0:0:8]/'
PASS canonicalize('http://[0:0::0:0:8:]/') is 'http://[0:0::0:0:8:]/'
PASS canonicalize('http://[:0:0::0:0:8:]/') is 'http://[:0:0::0:0:8:]/'
PASS canonicalize('http://[::192.168..1]/') is 'http://[::192.168..1]/'
PASS canonicalize('http://[::1 hello]/') is 'http://[::1%20hello]/'
== Safari ==
FAIL canonicalize('http:///') should be http:. Was http:/.
PASS canonicalize('http://[/') is 'http://[/'
PASS canonicalize('http://[:/') is 'http://[:/'
PASS canonicalize('http://]/') is 'http://]/'
PASS canonicalize('http://:]/') is 'http://:]/'
PASS canonicalize('http://[]/') is 'http://[]/'
PASS canonicalize('http://[:]/') is 'http://[:]/'
PASS canonicalize('http://2001:db8::1/') is 'http://2001:db8::1/'
PASS canonicalize('http://[2001:db8::1/') is 'http://[2001:db8::1/'
PASS canonicalize('http://2001:db8::1]/') is 'http://2001:db8::1]/'
PASS canonicalize('http://[::]/') is 'http://[::]/'
PASS canonicalize('http://[::1]/') is 'http://[::1]/'
PASS canonicalize('http://[1::]/') is 'http://[1::]/'
FAIL canonicalize('http://[::192.168.0.1]/') should be http://[::c0a8:1]/. Was http://[::192.168.0.1]/.
FAIL canonicalize('http://[::ffff:192.168.0.1]/') should be http://[::ffff:c0a8:1]/. Was http://[::ffff:192.168.0.1]/.
FAIL canonicalize('http://[000:01:02:003:004:5:6:007]/') should be http://[0:1:2:3:4:5:6:7]/. Was http://[000:01:02:003:004:5:6:007]/.
FAIL canonicalize('http://[A:b:c:DE:fF:0:1:aC]/') should be http://[a:b:c:de:ff:0:1:ac]/. Was http://[A:b:c:DE:fF:0:1:aC]/.
FAIL canonicalize('http://[1:0:0:2::3:0]/') should be http://[1::2:0:0:3:0]/. Was http://[1:0:0:2::3:0]/.
PASS canonicalize('http://[1::2:0:0:3:0]/') is 'http://[1::2:0:0:3:0]/'
PASS canonicalize('http://[::eeee:192.168.0.1]/') is 'http://[::eeee:192.168.0.1]/'
PASS canonicalize('http://[2001::192.168.0.1]/') is 'http://[2001::192.168.0.1]/'
PASS canonicalize('http://[1:2:192.168.0.1:5:6]/') is 'http://[1:2:192.168.0.1:5:6]/'
FAIL canonicalize('http://[::ffff:192.1.2]/') should be http://[::ffff:c001:2]/. Was http://[::ffff:192.1.2]/.
FAIL canonicalize('http://[::ffff:0xC0.0Xa8.0x0.0x1]/') should be http://[::ffff:c0a8:1]/. Was http://[::ffff:0xC0.0Xa8.0x0.0x1]/.
FAIL canonicalize('http://[0:0::0:0:8]/') should be http://[::8]/. Was http://[0:0::0:0:8]/.
PASS canonicalize('http://[2001:db8::1]/') is 'http://[2001:db8::1]/'
PASS canonicalize('http://[2001::db8::1]/') is 'http://[2001::db8::1]/'
PASS canonicalize('http://[2001:db8:::1]/') is 'http://[2001:db8:::1]/'
PASS canonicalize('http://[:::]/') is 'http://[:::]/'
PASS canonicalize('http://[2001::.com]/') is 'http://[2001::.com]/'
PASS canonicalize('http://[::192.168.0.0.1]/') is 'http://[::192.168.0.0.1]/'
PASS canonicalize('http://[::ffff:192.168.0.0.1]/') is 'http://[::ffff:192.168.0.0.1]/'
PASS canonicalize('http://[1:2:3:4:5:6:7:8:9]/') is 'http://[1:2:3:4:5:6:7:8:9]/'
PASS canonicalize('http://[0:0:0:0:0:0:0:192.168.0.1]/') is 'http://[0:0:0:0:0:0:0:192.168.0.1]/'
PASS canonicalize('http://[1:2:3:4:5:6::192.168.0.1]/') is 'http://[1:2:3:4:5:6::192.168.0.1]/'
FAIL canonicalize('http://[1:2:3:4:5:6::8]/') should be http://[1:2:3:4:5:6:0:8]/. Was http://[1:2:3:4:5:6::8]/.
PASS canonicalize('http://[1:2:3:4:5:6:7:8:]/') is 'http://[1:2:3:4:5:6:7:8:]/'
PASS canonicalize('http://[1:2:3:4:5:6:192.168.0.1:]/') is 'http://[1:2:3:4:5:6:192.168.0.1:]/'
PASS canonicalize('http://[-1:2:3:4:5:6:7:8]/') is 'http://[-1:2:3:4:5:6:7:8]/'
FAIL canonicalize('http://[1::%1]/') should be http://[1::%251]/. Was http://[1::%1]/.
FAIL canonicalize('http://[1::%eth0]/') should be http://[1::%25eth0]/. Was http://[1::%eth0]/.
FAIL canonicalize('http://[1::%]/') should be http://[1::%25]/. Was http://[1::%]/.
FAIL canonicalize('http://[%]/') should be http://[%25]/. Was http://[%]/.
FAIL canonicalize('http://[::%:]/') should be http://[::%25:]/. Was http://[::%:]/.
PASS canonicalize('http://[:0:0::0:0:8]/') is 'http://[:0:0::0:0:8]/'
PASS canonicalize('http://[0:0::0:0:8:]/') is 'http://[0:0::0:0:8:]/'
PASS canonicalize('http://[:0:0::0:0:8:]/') is 'http://[:0:0::0:0:8:]/'
PASS canonicalize('http://[::192.168..1]/') is 'http://[::192.168..1]/'
FAIL canonicalize('http://[::1 hello]/') should be http://[::1%20hello]/. Was http://[::1 hello]/.
== IE8 ==
(Unable to run test for some reason.)
= LayoutTests/fast/url/mailto.html =
== Firefox ==
PASS canonicalize('mailto:addr1') is 'mailto:addr1'
PASS canonicalize('mailto:addr1@foo.com') is 'mailto:addr1@foo.com'
FAIL canonicalize('mailto:addr1 ') should be mailto:addr1. Was mailto:addr1%20.
PASS canonicalize('mailto:addr1?to=jon') is 'mailto:addr1?to=jon'
PASS canonicalize('mailto:addr1,addr2') is 'mailto:addr1,addr2'
FAIL canonicalize('mailto:addr1, addr2') should be mailto:addr1, addr2. Was mailto:addr1,%20addr2.
PASS canonicalize('mailto:addr1%2caddr2') is 'mailto:addr1%2caddr2'
PASS canonicalize('mailto:') is 'mailto:%F0%90%8C%80'
PASS canonicalize('mailto:addr1?') is 'mailto:addr1?'
PASS canonicalize('mailto:í ') == 'mailto:%EF%BF%BD' is false
== Chrome ==
PASS canonicalize('mailto:addr1') is 'mailto:addr1'
PASS canonicalize('mailto:addr1@foo.com') is 'mailto:addr1@foo.com'
PASS canonicalize('mailto:addr1 ') is 'mailto:addr1'
PASS canonicalize('mailto:addr1?to=jon') is 'mailto:addr1?to=jon'
PASS canonicalize('mailto:addr1,addr2') is 'mailto:addr1,addr2'
PASS canonicalize('mailto:addr1, addr2') is 'mailto:addr1, addr2'
PASS canonicalize('mailto:addr1%2caddr2') is 'mailto:addr1%2caddr2'
PASS canonicalize('mailto:') is 'mailto:%F0%90%8C%80'
PASS canonicalize('mailto:addr1?') is 'mailto:addr1?'
PASS canonicalize('mailto:í ') == 'mailto:%EF%BF%BD' is false
== Safari ==
PASS canonicalize('mailto:addr1') is 'mailto:addr1'
PASS canonicalize('mailto:addr1@foo.com') is 'mailto:addr1@foo.com'
FAIL canonicalize('mailto:addr1 ') should be mailto:addr1. Was mailto:addr1%20.
PASS canonicalize('mailto:addr1?to=jon') is 'mailto:addr1?to=jon'
PASS canonicalize('mailto:addr1,addr2') is 'mailto:addr1,addr2'
FAIL canonicalize('mailto:addr1, addr2') should be mailto:addr1, addr2. Was mailto:addr1,%20addr2.
PASS canonicalize('mailto:addr1%2caddr2') is 'mailto:addr1%2caddr2'
PASS canonicalize('mailto:') is 'mailto:%F0%90%8C%80'
PASS canonicalize('mailto:addr1?') is 'mailto:addr1?'
PASS canonicalize('mailto:í ') == 'mailto:%EF%BF%BD' is false
== IE8 ==
PASS canonicalize('mailto:addr1') is 'mailto:addr1'
PASS canonicalize('mailto:addr1@foo.com') is 'mailto:addr1@foo.com'
PASS canonicalize('mailto:addr1 ') is 'mailto:addr1'
PASS canonicalize('mailto:addr1?to=jon') is 'mailto:addr1?to=jon'
PASS canonicalize('mailto:addr1,addr2') is 'mailto:addr1,addr2'
FAIL canonicalize('mailto:addr1, addr2') should be mailto:addr1, addr2. Was mailto:addr1,%20addr2.
PASS canonicalize('mailto:addr1%2caddr2') is 'mailto:addr1%2caddr2'
FAIL canonicalize('mailto:') should be mailto:%F0%90%8C%80. Was mailto:.
PASS canonicalize('mailto:addr1?') is 'mailto:addr1?'