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