| Canonicalization of paths. |
| |
| On success, you will see a series of "PASS" messages, followed by "TEST COMPLETE". |
| |
| |
| 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. 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/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/..') is 'http://example.com/foo/' |
| 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. |
| PASS canonicalize('http://example.com/foo %91') is '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' |
| PASS canonicalize('http://example.com/foo bar') is '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' |
| PASS canonicalize('http://example.com/‥/foo') is 'http://example.com/%E2%80%A5/foo' |
| PASS canonicalize('http://example.com//foo') is 'http://example.com/%EF%BB%BF/foo' |
| PASS canonicalize('http://example.com//foo//bar') is 'http://example.com/%E2%80%AE/foo/%E2%80%AD/bar' |
| FAIL canonicalize('http://example.com/foo/') should be http://example.com%2Ffoo/. Was http://example.com/foo/. |
| PASS successfullyParsed is true |
| |
| TEST COMPLETE |
| |