123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596 |
- '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();
- });
|