= 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://GOO​⁠goo.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://GOO​⁠goo.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://GOO​⁠goo.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://GOO​⁠goo.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?'