• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
1'use strict';
2require('../common');
3const assert = require('assert');
4const path = require('path');
5
6assert.strictEqual(path.win32.normalize('./fixtures///b/../b/c.js'),
7                   'fixtures\\b\\c.js');
8assert.strictEqual(path.win32.normalize('/foo/../../../bar'), '\\bar');
9assert.strictEqual(path.win32.normalize('a//b//../b'), 'a\\b');
10assert.strictEqual(path.win32.normalize('a//b//./c'), 'a\\b\\c');
11assert.strictEqual(path.win32.normalize('a//b//.'), 'a\\b');
12assert.strictEqual(path.win32.normalize('//server/share/dir/file.ext'),
13                   '\\\\server\\share\\dir\\file.ext');
14assert.strictEqual(path.win32.normalize('/a/b/c/../../../x/y/z'), '\\x\\y\\z');
15assert.strictEqual(path.win32.normalize('C:'), 'C:.');
16assert.strictEqual(path.win32.normalize('C:..\\abc'), 'C:..\\abc');
17assert.strictEqual(path.win32.normalize('C:..\\..\\abc\\..\\def'),
18                   'C:..\\..\\def');
19assert.strictEqual(path.win32.normalize('C:\\.'), 'C:\\');
20assert.strictEqual(path.win32.normalize('file:stream'), 'file:stream');
21assert.strictEqual(path.win32.normalize('bar\\foo..\\..\\'), 'bar\\');
22assert.strictEqual(path.win32.normalize('bar\\foo..\\..'), 'bar');
23assert.strictEqual(path.win32.normalize('bar\\foo..\\..\\baz'), 'bar\\baz');
24assert.strictEqual(path.win32.normalize('bar\\foo..\\'), 'bar\\foo..\\');
25assert.strictEqual(path.win32.normalize('bar\\foo..'), 'bar\\foo..');
26assert.strictEqual(path.win32.normalize('..\\foo..\\..\\..\\bar'),
27                   '..\\..\\bar');
28assert.strictEqual(path.win32.normalize('..\\...\\..\\.\\...\\..\\..\\bar'),
29                   '..\\..\\bar');
30assert.strictEqual(path.win32.normalize('../../../foo/../../../bar'),
31                   '..\\..\\..\\..\\..\\bar');
32assert.strictEqual(path.win32.normalize('../../../foo/../../../bar/../../'),
33                   '..\\..\\..\\..\\..\\..\\');
34assert.strictEqual(
35  path.win32.normalize('../foobar/barfoo/foo/../../../bar/../../'),
36  '..\\..\\'
37);
38assert.strictEqual(
39  path.win32.normalize('../.../../foobar/../../../bar/../../baz'),
40  '..\\..\\..\\..\\baz'
41);
42assert.strictEqual(path.win32.normalize('foo/bar\\baz'), 'foo\\bar\\baz');
43
44assert.strictEqual(path.posix.normalize('./fixtures///b/../b/c.js'),
45                   'fixtures/b/c.js');
46assert.strictEqual(path.posix.normalize('/foo/../../../bar'), '/bar');
47assert.strictEqual(path.posix.normalize('a//b//../b'), 'a/b');
48assert.strictEqual(path.posix.normalize('a//b//./c'), 'a/b/c');
49assert.strictEqual(path.posix.normalize('a//b//.'), 'a/b');
50assert.strictEqual(path.posix.normalize('/a/b/c/../../../x/y/z'), '/x/y/z');
51assert.strictEqual(path.posix.normalize('///..//./foo/.//bar'), '/foo/bar');
52assert.strictEqual(path.posix.normalize('bar/foo../../'), 'bar/');
53assert.strictEqual(path.posix.normalize('bar/foo../..'), 'bar');
54assert.strictEqual(path.posix.normalize('bar/foo../../baz'), 'bar/baz');
55assert.strictEqual(path.posix.normalize('bar/foo../'), 'bar/foo../');
56assert.strictEqual(path.posix.normalize('bar/foo..'), 'bar/foo..');
57assert.strictEqual(path.posix.normalize('../foo../../../bar'), '../../bar');
58assert.strictEqual(path.posix.normalize('../.../.././.../../../bar'),
59                   '../../bar');
60assert.strictEqual(path.posix.normalize('../../../foo/../../../bar'),
61                   '../../../../../bar');
62assert.strictEqual(path.posix.normalize('../../../foo/../../../bar/../../'),
63                   '../../../../../../');
64assert.strictEqual(
65  path.posix.normalize('../foobar/barfoo/foo/../../../bar/../../'),
66  '../../'
67);
68assert.strictEqual(
69  path.posix.normalize('../.../../foobar/../../../bar/../../baz'),
70  '../../../../baz'
71);
72assert.strictEqual(path.posix.normalize('foo/bar\\baz'), 'foo/bar\\baz');
73