• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
1'use strict';
2const common = require('../common');
3const assert = require('assert');
4const path = require('path');
5
6assert.strictEqual(path.dirname(__filename).substr(-13),
7                   common.isWindows ? 'test\\parallel' : 'test/parallel');
8
9assert.strictEqual(path.posix.dirname('/a/b/'), '/a');
10assert.strictEqual(path.posix.dirname('/a/b'), '/a');
11assert.strictEqual(path.posix.dirname('/a'), '/');
12assert.strictEqual(path.posix.dirname(''), '.');
13assert.strictEqual(path.posix.dirname('/'), '/');
14assert.strictEqual(path.posix.dirname('////'), '/');
15assert.strictEqual(path.posix.dirname('//a'), '//');
16assert.strictEqual(path.posix.dirname('foo'), '.');
17
18assert.strictEqual(path.win32.dirname('c:\\'), 'c:\\');
19assert.strictEqual(path.win32.dirname('c:\\foo'), 'c:\\');
20assert.strictEqual(path.win32.dirname('c:\\foo\\'), 'c:\\');
21assert.strictEqual(path.win32.dirname('c:\\foo\\bar'), 'c:\\foo');
22assert.strictEqual(path.win32.dirname('c:\\foo\\bar\\'), 'c:\\foo');
23assert.strictEqual(path.win32.dirname('c:\\foo\\bar\\baz'), 'c:\\foo\\bar');
24assert.strictEqual(path.win32.dirname('c:\\foo bar\\baz'), 'c:\\foo bar');
25assert.strictEqual(path.win32.dirname('\\'), '\\');
26assert.strictEqual(path.win32.dirname('\\foo'), '\\');
27assert.strictEqual(path.win32.dirname('\\foo\\'), '\\');
28assert.strictEqual(path.win32.dirname('\\foo\\bar'), '\\foo');
29assert.strictEqual(path.win32.dirname('\\foo\\bar\\'), '\\foo');
30assert.strictEqual(path.win32.dirname('\\foo\\bar\\baz'), '\\foo\\bar');
31assert.strictEqual(path.win32.dirname('\\foo bar\\baz'), '\\foo bar');
32assert.strictEqual(path.win32.dirname('c:'), 'c:');
33assert.strictEqual(path.win32.dirname('c:foo'), 'c:');
34assert.strictEqual(path.win32.dirname('c:foo\\'), 'c:');
35assert.strictEqual(path.win32.dirname('c:foo\\bar'), 'c:foo');
36assert.strictEqual(path.win32.dirname('c:foo\\bar\\'), 'c:foo');
37assert.strictEqual(path.win32.dirname('c:foo\\bar\\baz'), 'c:foo\\bar');
38assert.strictEqual(path.win32.dirname('c:foo bar\\baz'), 'c:foo bar');
39assert.strictEqual(path.win32.dirname('file:stream'), '.');
40assert.strictEqual(path.win32.dirname('dir\\file:stream'), 'dir');
41assert.strictEqual(path.win32.dirname('\\\\unc\\share'),
42                   '\\\\unc\\share');
43assert.strictEqual(path.win32.dirname('\\\\unc\\share\\foo'),
44                   '\\\\unc\\share\\');
45assert.strictEqual(path.win32.dirname('\\\\unc\\share\\foo\\'),
46                   '\\\\unc\\share\\');
47assert.strictEqual(path.win32.dirname('\\\\unc\\share\\foo\\bar'),
48                   '\\\\unc\\share\\foo');
49assert.strictEqual(path.win32.dirname('\\\\unc\\share\\foo\\bar\\'),
50                   '\\\\unc\\share\\foo');
51assert.strictEqual(path.win32.dirname('\\\\unc\\share\\foo\\bar\\baz'),
52                   '\\\\unc\\share\\foo\\bar');
53assert.strictEqual(path.win32.dirname('/a/b/'), '/a');
54assert.strictEqual(path.win32.dirname('/a/b'), '/a');
55assert.strictEqual(path.win32.dirname('/a'), '/');
56assert.strictEqual(path.win32.dirname(''), '.');
57assert.strictEqual(path.win32.dirname('/'), '/');
58assert.strictEqual(path.win32.dirname('////'), '/');
59assert.strictEqual(path.win32.dirname('foo'), '.');
60