deno.land / std@0.166.0 / node / _tools / test / parallel / test-path-extname.js

test-path-extname.js
نووسراو ببینە
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
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
// deno-fmt-ignore-file// deno-lint-ignore-file
// Copyright Joyent and Node contributors. All rights reserved. MIT license.// Taken from Node 18.12.0// This file is automatically generated by "node/_tools/setup.ts". Do not modify this file manually
'use strict';require('../common');const assert = require('assert');const path = require('path');
const failures = [];const slashRE = /\//g;
[ [__filename, '.js'], ['', ''], ['/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.//', '.'],].forEach((test) => { const expected = test[1]; [path.posix.extname, path.win32.extname].forEach((extname) => { let input = test[0]; let os; if (extname === path.win32.extname) { input = input.replace(slashRE, '\\'); os = 'win32'; } else { os = 'posix'; } const actual = extname(input); const message = `path.${os}.extname(${JSON.stringify(input)})\n expect=${ JSON.stringify(expected)}\n actual=${JSON.stringify(actual)}`; if (actual !== expected) failures.push(`\n${message}`); }); { const input = `C:${test[0].replace(slashRE, '\\')}`; const actual = path.win32.extname(input); const message = `path.win32.extname(${JSON.stringify(input)})\n expect=${ JSON.stringify(expected)}\n actual=${JSON.stringify(actual)}`; if (actual !== expected) failures.push(`\n${message}`); }});assert.strictEqual(failures.length, 0, failures.join(''));
// On Windows, backslash is a path separator.assert.strictEqual(path.win32.extname('.\\'), '');assert.strictEqual(path.win32.extname('..\\'), '');assert.strictEqual(path.win32.extname('file.ext\\'), '.ext');assert.strictEqual(path.win32.extname('file.ext\\\\'), '.ext');assert.strictEqual(path.win32.extname('file\\'), '');assert.strictEqual(path.win32.extname('file\\\\'), '');assert.strictEqual(path.win32.extname('file.\\'), '.');assert.strictEqual(path.win32.extname('file.\\\\'), '.');
// On *nix, backslash is a valid name component like any other character.assert.strictEqual(path.posix.extname('.\\'), '');assert.strictEqual(path.posix.extname('..\\'), '.\\');assert.strictEqual(path.posix.extname('file.ext\\'), '.ext\\');assert.strictEqual(path.posix.extname('file.ext\\\\'), '.ext\\\\');assert.strictEqual(path.posix.extname('file\\'), '');assert.strictEqual(path.posix.extname('file\\\\'), '');assert.strictEqual(path.posix.extname('file.\\'), '.\\');assert.strictEqual(path.posix.extname('file.\\\\'), '.\\\\');
std

Version Info

Tagged at
a year ago