summaryrefslogtreecommitdiff
path: root/std/path/from_file_url_test.ts
diff options
context:
space:
mode:
Diffstat (limited to 'std/path/from_file_url_test.ts')
-rw-r--r--std/path/from_file_url_test.ts37
1 files changed, 37 insertions, 0 deletions
diff --git a/std/path/from_file_url_test.ts b/std/path/from_file_url_test.ts
new file mode 100644
index 000000000..79389b91b
--- /dev/null
+++ b/std/path/from_file_url_test.ts
@@ -0,0 +1,37 @@
+// Copyright 2018-2020 the Deno authors. All rights reserved. MIT license.
+import * as path from "./mod.ts";
+import { assertEquals } from "../testing/asserts.ts";
+
+Deno.test("[path] fromFileUrl", function () {
+ assertEquals(
+ path.posix.fromFileUrl(new URL("file:///home/foo")),
+ "/home/foo"
+ );
+ assertEquals(path.posix.fromFileUrl("file:///home/foo"), "/home/foo");
+ assertEquals(path.posix.fromFileUrl("https://example.com/foo"), "/foo");
+ assertEquals(path.posix.fromFileUrl("file:///"), "/");
+});
+
+Deno.test("[path] fromFileUrl (win32)", function () {
+ assertEquals(
+ path.win32.fromFileUrl(new URL("file:///home/foo")),
+ "\\home\\foo"
+ );
+ assertEquals(path.win32.fromFileUrl("file:///home/foo"), "\\home\\foo");
+ assertEquals(path.win32.fromFileUrl("https://example.com/foo"), "\\foo");
+ assertEquals(path.win32.fromFileUrl("file:///"), "\\");
+ // FIXME(nayeemrmn): Support UNC paths. Needs support in the underlying URL
+ // built-in like Chrome has.
+ // assertEquals(path.win32.fromFileUrl("file:////"), "\\");
+ // assertEquals(path.win32.fromFileUrl("file:////server"), "\\");
+ // assertEquals(path.win32.fromFileUrl("file:////server/file"), "\\file");
+ assertEquals(path.win32.fromFileUrl("file:///c"), "\\c");
+ assertEquals(path.win32.fromFileUrl("file:///c:"), "\\c:");
+ assertEquals(path.win32.fromFileUrl("file:///c:/"), "c:\\");
+ assertEquals(path.win32.fromFileUrl("file:///C:/"), "C:\\");
+ assertEquals(path.win32.fromFileUrl("file:///C:/Users/"), "C:\\Users\\");
+ assertEquals(
+ path.win32.fromFileUrl("file:///C:cwd/another"),
+ "\\C:cwd\\another"
+ );
+});