diff options
author | Nayeem Rahman <nayeemrmn99@gmail.com> | 2020-05-04 19:32:54 +0100 |
---|---|---|
committer | GitHub <noreply@github.com> | 2020-05-04 14:32:54 -0400 |
commit | 8c509bd88517ebc92673d9da91e71a08868e830e (patch) | |
tree | 5c880d6bafb1b5f22d69b3f1cfc52bbd4ea63056 /cli/js/tests/url_test.ts | |
parent | 6c02b061ce157b9fc3d20f9bcace0bc6638290d3 (diff) |
feat(URL): Support drive letters for file URLs on Windows (#5074)
refactor: Parse URLs more sequentially. This makes it easier to change matching behaviour depending on the protocol.
fix: Fail when a host isn't given for certain protocols.
fix: Convert back-slashes info forward-slashes.
Diffstat (limited to 'cli/js/tests/url_test.ts')
-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/"); }); |