summaryrefslogtreecommitdiff
path: root/cli/js/tests
diff options
context:
space:
mode:
authorNayeem Rahman <nayeemrmn99@gmail.com>2020-05-18 14:47:45 +0100
committerGitHub <noreply@github.com>2020-05-18 09:47:45 -0400
commit93c21646739a46a9710be9d580256e18bee740c0 (patch)
tree6e1949b088e8fcc2ec49c093bff0017e20340a37 /cli/js/tests
parentc3ec16535f55030ded8d76a82f0e1feaa1c8a3de (diff)
Fix URL encoding (#5557)
Diffstat (limited to 'cli/js/tests')
-rw-r--r--cli/js/tests/url_test.ts36
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"