test-path-extname.js
2.64 KB
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
'use strict';
var tape = require('tape');
var path = require('../');
var slashRE = /\//g;
var pairs = [
[__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.//', '.'] ];
tape('path.posix.extname', function (t) {
pairs.forEach(function (p) {
var input = p[0];
var expected = p[1];
t.strictEqual(expected, path.posix.extname(input));
});
t.end();
});
tape('path.win32.extname', { skip: true }, function (t) {
pairs.forEach(function (p) {
var input = p[0].replace(slashRE, '\\');
var expected = p[1];
t.strictEqual(expected, path.win32.extname(input));
t.strictEqual(expected, path.win32.extname("C:" + input));
});
t.end();
});
tape('path.win32.extname backslash', { skip: true }, function (t) {
// On Windows, backslash is a path separator.
t.strictEqual(path.win32.extname('.\\'), '');
t.strictEqual(path.win32.extname('..\\'), '');
t.strictEqual(path.win32.extname('file.ext\\'), '.ext');
t.strictEqual(path.win32.extname('file.ext\\\\'), '.ext');
t.strictEqual(path.win32.extname('file\\'), '');
t.strictEqual(path.win32.extname('file\\\\'), '');
t.strictEqual(path.win32.extname('file.\\'), '.');
t.strictEqual(path.win32.extname('file.\\\\'), '.');
t.end();
});
tape('path.posix.extname backslash', function (t) {
// On *nix, backslash is a valid name component like any other character.
t.strictEqual(path.posix.extname('.\\'), '');
t.strictEqual(path.posix.extname('..\\'), '.\\');
t.strictEqual(path.posix.extname('file.ext\\'), '.ext\\');
t.strictEqual(path.posix.extname('file.ext\\\\'), '.ext\\\\');
t.strictEqual(path.posix.extname('file\\'), '');
t.strictEqual(path.posix.extname('file\\\\'), '');
t.strictEqual(path.posix.extname('file.\\'), '.\\');
t.strictEqual(path.posix.extname('file.\\\\'), '.\\\\');
t.end();
});