diff options
author | Nayeem Rahman <nayeemrmn99@gmail.com> | 2020-05-18 14:47:45 +0100 |
---|---|---|
committer | GitHub <noreply@github.com> | 2020-05-18 09:47:45 -0400 |
commit | 93c21646739a46a9710be9d580256e18bee740c0 (patch) | |
tree | 6e1949b088e8fcc2ec49c093bff0017e20340a37 /cli/js/tests | |
parent | c3ec16535f55030ded8d76a82f0e1feaa1c8a3de (diff) |
Fix URL encoding (#5557)
Diffstat (limited to 'cli/js/tests')
-rw-r--r-- | cli/js/tests/url_test.ts | 36 |
1 files changed, 36 insertions, 0 deletions
diff --git a/cli/js/tests/url_test.ts b/cli/js/tests/url_test.ts index 5b403fb1c..68fcbd95e 100644 --- a/cli/js/tests/url_test.ts +++ b/cli/js/tests/url_test.ts @@ -169,6 +169,42 @@ unitTest(function urlDriveLetter() { assertEquals(new URL("http://example.com/C:").href, "http://example.com/C:"); }); +unitTest(function urlHostnameUpperCase() { + assertEquals(new URL("https://EXAMPLE.COM").href, "https://example.com/"); +}); + +unitTest(function urlTrim() { + assertEquals(new URL(" https://example.com ").href, "https://example.com/"); +}); + +unitTest(function urlEncoding() { + assertEquals( + new URL("https://a !$&*()=,;+'\"@example.com").username, + "a%20!$&*()%3D,%3B+%27%22" + ); + assertEquals( + new URL("https://:a !$&*()=,;+'\"@example.com").password, + "a%20!$&*()%3D,%3B+%27%22" + ); + // FIXME: https://url.spec.whatwg.org/#idna + // assertEquals( + // new URL("https://a !$&*()=,+'\"").hostname, + // "a%20%21%24%26%2A%28%29%3D%2C+%27%22" + // ); + assertEquals( + new URL("https://example.com/a ~!@$&*()=:/,;+'\"\\").pathname, + "/a%20~!@$&*()=:/,;+'%22/" + ); + assertEquals( + new URL("https://example.com?a ~!@$&*()=:/,;?+'\"\\").search, + "?a%20~!@$&*()=:/,;?+%27%22\\" + ); + assertEquals( + new URL("https://example.com#a ~!@#$&*()=:/,;?+'\"\\").hash, + "#a%20~!@#$&*()=:/,;?+'%22\\" + ); +}); + unitTest(function urlBaseURL(): void { const base = new URL( "https://foo:bar@baz.qat:8000/qux/quux?foo=bar&baz=12#qat" |