mirror of
https://github.com/denoland/deno.git
synced 2025-10-01 22:51:14 +00:00
migrate deno_path to deno_std (denoland/deno_std#26)
Previously https://github.com/zhmushan/deno_path
Original: 1a35f9daf5
This commit is contained in:
parent
3c8f564ab8
commit
2d58da520f
16 changed files with 2292 additions and 3 deletions
89
path/extname_test.ts
Normal file
89
path/extname_test.ts
Normal file
|
@ -0,0 +1,89 @@
|
|||
// Copyright the Browserify authors. MIT License.
|
||||
// Ported from https://github.com/browserify/path-browserify/
|
||||
|
||||
import { test, assertEqual } from "https://deno.land/x/testing/testing.ts";
|
||||
import * as path from "./index";
|
||||
|
||||
const slashRE = /\//g;
|
||||
|
||||
const pairs = [
|
||||
["", ""],
|
||||
["/path/to/file", ""],
|
||||
["/path/to/file.ext", ".ext"],
|
||||
["/path.to/file.ext", ".ext"],
|
||||
["/path.to/file", ""],
|
||||
["/path.to/.file", ""],
|
||||
["/path.to/.file.ext", ".ext"],
|
||||
["/path/to/f.ext", ".ext"],
|
||||
["/path/to/..ext", ".ext"],
|
||||
["/path/to/..", ""],
|
||||
["file", ""],
|
||||
["file.ext", ".ext"],
|
||||
[".file", ""],
|
||||
[".file.ext", ".ext"],
|
||||
["/file", ""],
|
||||
["/file.ext", ".ext"],
|
||||
["/.file", ""],
|
||||
["/.file.ext", ".ext"],
|
||||
[".path/file.ext", ".ext"],
|
||||
["file.ext.ext", ".ext"],
|
||||
["file.", "."],
|
||||
[".", ""],
|
||||
["./", ""],
|
||||
[".file.ext", ".ext"],
|
||||
[".file", ""],
|
||||
[".file.", "."],
|
||||
[".file..", "."],
|
||||
["..", ""],
|
||||
["../", ""],
|
||||
["..file.ext", ".ext"],
|
||||
["..file", ".file"],
|
||||
["..file.", "."],
|
||||
["..file..", "."],
|
||||
["...", "."],
|
||||
["...ext", ".ext"],
|
||||
["....", "."],
|
||||
["file.ext/", ".ext"],
|
||||
["file.ext//", ".ext"],
|
||||
["file/", ""],
|
||||
["file//", ""],
|
||||
["file./", "."],
|
||||
["file.//", "."]
|
||||
];
|
||||
|
||||
test(function extname() {
|
||||
pairs.forEach(function(p) {
|
||||
const input = p[0];
|
||||
const expected = p[1];
|
||||
assertEqual(expected, path.posix.extname(input));
|
||||
});
|
||||
|
||||
// On *nix, backslash is a valid name component like any other character.
|
||||
assertEqual(path.posix.extname(".\\"), "");
|
||||
assertEqual(path.posix.extname("..\\"), ".\\");
|
||||
assertEqual(path.posix.extname("file.ext\\"), ".ext\\");
|
||||
assertEqual(path.posix.extname("file.ext\\\\"), ".ext\\\\");
|
||||
assertEqual(path.posix.extname("file\\"), "");
|
||||
assertEqual(path.posix.extname("file\\\\"), "");
|
||||
assertEqual(path.posix.extname("file.\\"), ".\\");
|
||||
assertEqual(path.posix.extname("file.\\\\"), ".\\\\");
|
||||
});
|
||||
|
||||
test(function extnameWin32() {
|
||||
pairs.forEach(function(p) {
|
||||
const input = p[0].replace(slashRE, "\\");
|
||||
const expected = p[1];
|
||||
assertEqual(expected, path.win32.extname(input));
|
||||
assertEqual(expected, path.win32.extname("C:" + input));
|
||||
});
|
||||
|
||||
// On Windows, backslash is a path separator.
|
||||
assertEqual(path.win32.extname(".\\"), "");
|
||||
assertEqual(path.win32.extname("..\\"), "");
|
||||
assertEqual(path.win32.extname("file.ext\\"), ".ext");
|
||||
assertEqual(path.win32.extname("file.ext\\\\"), ".ext");
|
||||
assertEqual(path.win32.extname("file\\"), "");
|
||||
assertEqual(path.win32.extname("file\\\\"), "");
|
||||
assertEqual(path.win32.extname("file.\\"), ".");
|
||||
assertEqual(path.win32.extname("file.\\\\"), ".");
|
||||
});
|
Loading…
Add table
Add a link
Reference in a new issue