You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
96 lines
2.6 KiB
96 lines
2.6 KiB
'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(); |
|
}); |
|
|
|
|