'use strict'; require('../common'); const assert = require('assert'); const path = require('path'); assert.strictEqual(path.win32.normalize('./fixtures///b/../b/c.js'), 'fixtures\\b\\c.js'); assert.strictEqual(path.win32.normalize('/foo/../../../bar'), '\\bar'); assert.strictEqual(path.win32.normalize('a//b//../b'), 'a\\b'); assert.strictEqual(path.win32.normalize('a//b//./c'), 'a\\b\\c'); assert.strictEqual(path.win32.normalize('a//b//.'), 'a\\b'); assert.strictEqual(path.win32.normalize('//server/share/dir/file.ext'), '\\\\server\\share\\dir\\file.ext'); assert.strictEqual(path.win32.normalize('/a/b/c/../../../x/y/z'), '\\x\\y\\z'); assert.strictEqual(path.win32.normalize('C:'), 'C:.'); assert.strictEqual(path.win32.normalize('C:..\\abc'), 'C:..\\abc'); assert.strictEqual(path.win32.normalize('C:..\\..\\abc\\..\\def'), 'C:..\\..\\def'); assert.strictEqual(path.win32.normalize('C:\\.'), 'C:\\'); assert.strictEqual(path.win32.normalize('file:stream'), 'file:stream'); assert.strictEqual(path.win32.normalize('bar\\foo..\\..\\'), 'bar\\'); assert.strictEqual(path.win32.normalize('bar\\foo..\\..'), 'bar'); assert.strictEqual(path.win32.normalize('bar\\foo..\\..\\baz'), 'bar\\baz'); assert.strictEqual(path.win32.normalize('bar\\foo..\\'), 'bar\\foo..\\'); assert.strictEqual(path.win32.normalize('bar\\foo..'), 'bar\\foo..'); assert.strictEqual(path.win32.normalize('..\\foo..\\..\\..\\bar'), '..\\..\\bar'); assert.strictEqual(path.win32.normalize('..\\...\\..\\.\\...\\..\\..\\bar'), '..\\..\\bar'); assert.strictEqual(path.win32.normalize('../../../foo/../../../bar'), '..\\..\\..\\..\\..\\bar'); assert.strictEqual(path.win32.normalize('../../../foo/../../../bar/../../'), '..\\..\\..\\..\\..\\..\\'); assert.strictEqual( path.win32.normalize('../foobar/barfoo/foo/../../../bar/../../'), '..\\..\\' ); assert.strictEqual( path.win32.normalize('../.../../foobar/../../../bar/../../baz'), '..\\..\\..\\..\\baz' ); assert.strictEqual(path.win32.normalize('foo/bar\\baz'), 'foo\\bar\\baz'); assert.strictEqual(path.posix.normalize('./fixtures///b/../b/c.js'), 'fixtures/b/c.js'); assert.strictEqual(path.posix.normalize('/foo/../../../bar'), '/bar'); assert.strictEqual(path.posix.normalize('a//b//../b'), 'a/b'); assert.strictEqual(path.posix.normalize('a//b//./c'), 'a/b/c'); assert.strictEqual(path.posix.normalize('a//b//.'), 'a/b'); assert.strictEqual(path.posix.normalize('/a/b/c/../../../x/y/z'), '/x/y/z'); assert.strictEqual(path.posix.normalize('///..//./foo/.//bar'), '/foo/bar'); assert.strictEqual(path.posix.normalize('bar/foo../../'), 'bar/'); assert.strictEqual(path.posix.normalize('bar/foo../..'), 'bar'); assert.strictEqual(path.posix.normalize('bar/foo../../baz'), 'bar/baz'); assert.strictEqual(path.posix.normalize('bar/foo../'), 'bar/foo../'); assert.strictEqual(path.posix.normalize('bar/foo..'), 'bar/foo..'); assert.strictEqual(path.posix.normalize('../foo../../../bar'), '../../bar'); assert.strictEqual(path.posix.normalize('../.../.././.../../../bar'), '../../bar'); assert.strictEqual(path.posix.normalize('../../../foo/../../../bar'), '../../../../../bar'); assert.strictEqual(path.posix.normalize('../../../foo/../../../bar/../../'), '../../../../../../'); assert.strictEqual( path.posix.normalize('../foobar/barfoo/foo/../../../bar/../../'), '../../' ); assert.strictEqual( path.posix.normalize('../.../../foobar/../../../bar/../../baz'), '../../../../baz' ); assert.strictEqual(path.posix.normalize('foo/bar\\baz'), 'foo/bar\\baz');