deno.land / std@0.224.0 / path / extname_test.ts

extname_test.ts
View Documentation
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
// Copyright 2018-2024 the Deno authors. All rights reserved. MIT license.// Copyright the Browserify authors. MIT License.// Ported from https://github.com/browserify/path-browserify/import { assertEquals } from "../assert/mod.ts";import * as posix from "./posix/mod.ts";import * as windows from "./windows/mod.ts";
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.//", "."],] as const;
Deno.test("posix.extname()", function () { pairs.forEach(function (p) { const input = p[0]; const expected = p[1]; assertEquals(expected, posix.extname(input)); });
// On *nix, backslash is a valid name component like any other character. assertEquals(posix.extname(".\\"), ""); assertEquals(posix.extname("..\\"), ".\\"); assertEquals(posix.extname("file.ext\\"), ".ext\\"); assertEquals(posix.extname("file.ext\\\\"), ".ext\\\\"); assertEquals(posix.extname("file\\"), ""); assertEquals(posix.extname("file\\\\"), ""); assertEquals(posix.extname("file.\\"), ".\\"); assertEquals(posix.extname("file.\\\\"), ".\\\\");});
Deno.test("windows.extname()", function () { pairs.forEach(function (p) { const input = p[0].replace(slashRE, "\\"); const expected = p[1]; assertEquals(expected, windows.extname(input)); assertEquals(expected, windows.extname("C:" + input)); });
// On Windows, backslash is a path separator. assertEquals(windows.extname(".\\"), ""); assertEquals(windows.extname("..\\"), ""); assertEquals(windows.extname("file.ext\\"), ".ext"); assertEquals(windows.extname("file.ext\\\\"), ".ext"); assertEquals(windows.extname("file\\"), ""); assertEquals(windows.extname("file\\\\"), ""); assertEquals(windows.extname("file.\\"), "."); assertEquals(windows.extname("file.\\\\"), ".");});
std

Version Info

Tagged at
6 months ago