diff options
Diffstat (limited to 'cli/js/tests')
-rw-r--r-- | cli/js/tests/url_test.ts | 56 |
1 files changed, 56 insertions, 0 deletions
diff --git a/cli/js/tests/url_test.ts b/cli/js/tests/url_test.ts index 6529bf055..5b403fb1c 100644 --- a/cli/js/tests/url_test.ts +++ b/cli/js/tests/url_test.ts @@ -132,6 +132,43 @@ unitTest(function urlSearchParamsReuse(): void { assert(sp === url.searchParams, "Search params should be reused."); }); +unitTest(function urlBackSlashes(): void { + const url = new URL( + "https:\\\\foo:bar@baz.qat:8000\\qux\\quux?foo=bar&baz=12#qat" + ); + assertEquals( + url.href, + "https://foo:bar@baz.qat:8000/qux/quux?foo=bar&baz=12#qat" + ); +}); + +unitTest(function urlRequireHost(): void { + assertEquals(new URL("file:///").href, "file:///"); + assertThrows(() => { + new URL("ftp:///"); + }); + assertThrows(() => { + new URL("http:///"); + }); + assertThrows(() => { + new URL("https:///"); + }); + assertThrows(() => { + new URL("ws:///"); + }); + assertThrows(() => { + new URL("wss:///"); + }); +}); + +unitTest(function urlDriveLetter() { + assertEquals( + new URL("file:///C:").href, + Deno.build.os == "windows" ? "file:///C:/" : "file:///C:" + ); + assertEquals(new URL("http://example.com/C:").href, "http://example.com/C:"); +}); + unitTest(function urlBaseURL(): void { const base = new URL( "https://foo:bar@baz.qat:8000/qux/quux?foo=bar&baz=12#qat" @@ -158,6 +195,25 @@ unitTest(function urlRelativeWithBase(): void { assertEquals(new URL("../b", "file:///a/a/a").href, "file:///a/b"); }); +unitTest(function urlDriveLetterBase() { + assertEquals( + new URL("/b", "file:///C:/a/b").href, + Deno.build.os == "windows" ? "file:///C:/b" : "file:///b" + ); + assertEquals( + new URL("D:", "file:///C:/a/b").href, + Deno.build.os == "windows" ? "file:///D:/" : "file:///C:/a/D:" + ); + assertEquals( + new URL("/D:", "file:///C:/a/b").href, + Deno.build.os == "windows" ? "file:///D:/" : "file:///D:" + ); + assertEquals( + new URL("D:/b", "file:///C:/a/b").href, + Deno.build.os == "windows" ? "file:///D:/b" : "file:///C:/a/D:/b" + ); +}); + unitTest(function emptyBasePath(): void { assertEquals(new URL("", "http://example.com").href, "http://example.com/"); }); |