11cb0ef41Sopenharmony_ci'use strict';
21cb0ef41Sopenharmony_cirequire('../common');
31cb0ef41Sopenharmony_ciconst assert = require('assert');
41cb0ef41Sopenharmony_ciconst path = require('path');
51cb0ef41Sopenharmony_ci
61cb0ef41Sopenharmony_ciassert.strictEqual(path.win32.normalize('./fixtures///b/../b/c.js'),
71cb0ef41Sopenharmony_ci                   'fixtures\\b\\c.js');
81cb0ef41Sopenharmony_ciassert.strictEqual(path.win32.normalize('/foo/../../../bar'), '\\bar');
91cb0ef41Sopenharmony_ciassert.strictEqual(path.win32.normalize('a//b//../b'), 'a\\b');
101cb0ef41Sopenharmony_ciassert.strictEqual(path.win32.normalize('a//b//./c'), 'a\\b\\c');
111cb0ef41Sopenharmony_ciassert.strictEqual(path.win32.normalize('a//b//.'), 'a\\b');
121cb0ef41Sopenharmony_ciassert.strictEqual(path.win32.normalize('//server/share/dir/file.ext'),
131cb0ef41Sopenharmony_ci                   '\\\\server\\share\\dir\\file.ext');
141cb0ef41Sopenharmony_ciassert.strictEqual(path.win32.normalize('/a/b/c/../../../x/y/z'), '\\x\\y\\z');
151cb0ef41Sopenharmony_ciassert.strictEqual(path.win32.normalize('C:'), 'C:.');
161cb0ef41Sopenharmony_ciassert.strictEqual(path.win32.normalize('C:..\\abc'), 'C:..\\abc');
171cb0ef41Sopenharmony_ciassert.strictEqual(path.win32.normalize('C:..\\..\\abc\\..\\def'),
181cb0ef41Sopenharmony_ci                   'C:..\\..\\def');
191cb0ef41Sopenharmony_ciassert.strictEqual(path.win32.normalize('C:\\.'), 'C:\\');
201cb0ef41Sopenharmony_ciassert.strictEqual(path.win32.normalize('file:stream'), 'file:stream');
211cb0ef41Sopenharmony_ciassert.strictEqual(path.win32.normalize('bar\\foo..\\..\\'), 'bar\\');
221cb0ef41Sopenharmony_ciassert.strictEqual(path.win32.normalize('bar\\foo..\\..'), 'bar');
231cb0ef41Sopenharmony_ciassert.strictEqual(path.win32.normalize('bar\\foo..\\..\\baz'), 'bar\\baz');
241cb0ef41Sopenharmony_ciassert.strictEqual(path.win32.normalize('bar\\foo..\\'), 'bar\\foo..\\');
251cb0ef41Sopenharmony_ciassert.strictEqual(path.win32.normalize('bar\\foo..'), 'bar\\foo..');
261cb0ef41Sopenharmony_ciassert.strictEqual(path.win32.normalize('..\\foo..\\..\\..\\bar'),
271cb0ef41Sopenharmony_ci                   '..\\..\\bar');
281cb0ef41Sopenharmony_ciassert.strictEqual(path.win32.normalize('..\\...\\..\\.\\...\\..\\..\\bar'),
291cb0ef41Sopenharmony_ci                   '..\\..\\bar');
301cb0ef41Sopenharmony_ciassert.strictEqual(path.win32.normalize('../../../foo/../../../bar'),
311cb0ef41Sopenharmony_ci                   '..\\..\\..\\..\\..\\bar');
321cb0ef41Sopenharmony_ciassert.strictEqual(path.win32.normalize('../../../foo/../../../bar/../../'),
331cb0ef41Sopenharmony_ci                   '..\\..\\..\\..\\..\\..\\');
341cb0ef41Sopenharmony_ciassert.strictEqual(
351cb0ef41Sopenharmony_ci  path.win32.normalize('../foobar/barfoo/foo/../../../bar/../../'),
361cb0ef41Sopenharmony_ci  '..\\..\\'
371cb0ef41Sopenharmony_ci);
381cb0ef41Sopenharmony_ciassert.strictEqual(
391cb0ef41Sopenharmony_ci  path.win32.normalize('../.../../foobar/../../../bar/../../baz'),
401cb0ef41Sopenharmony_ci  '..\\..\\..\\..\\baz'
411cb0ef41Sopenharmony_ci);
421cb0ef41Sopenharmony_ciassert.strictEqual(path.win32.normalize('foo/bar\\baz'), 'foo\\bar\\baz');
431cb0ef41Sopenharmony_ci
441cb0ef41Sopenharmony_ciassert.strictEqual(path.posix.normalize('./fixtures///b/../b/c.js'),
451cb0ef41Sopenharmony_ci                   'fixtures/b/c.js');
461cb0ef41Sopenharmony_ciassert.strictEqual(path.posix.normalize('/foo/../../../bar'), '/bar');
471cb0ef41Sopenharmony_ciassert.strictEqual(path.posix.normalize('a//b//../b'), 'a/b');
481cb0ef41Sopenharmony_ciassert.strictEqual(path.posix.normalize('a//b//./c'), 'a/b/c');
491cb0ef41Sopenharmony_ciassert.strictEqual(path.posix.normalize('a//b//.'), 'a/b');
501cb0ef41Sopenharmony_ciassert.strictEqual(path.posix.normalize('/a/b/c/../../../x/y/z'), '/x/y/z');
511cb0ef41Sopenharmony_ciassert.strictEqual(path.posix.normalize('///..//./foo/.//bar'), '/foo/bar');
521cb0ef41Sopenharmony_ciassert.strictEqual(path.posix.normalize('bar/foo../../'), 'bar/');
531cb0ef41Sopenharmony_ciassert.strictEqual(path.posix.normalize('bar/foo../..'), 'bar');
541cb0ef41Sopenharmony_ciassert.strictEqual(path.posix.normalize('bar/foo../../baz'), 'bar/baz');
551cb0ef41Sopenharmony_ciassert.strictEqual(path.posix.normalize('bar/foo../'), 'bar/foo../');
561cb0ef41Sopenharmony_ciassert.strictEqual(path.posix.normalize('bar/foo..'), 'bar/foo..');
571cb0ef41Sopenharmony_ciassert.strictEqual(path.posix.normalize('../foo../../../bar'), '../../bar');
581cb0ef41Sopenharmony_ciassert.strictEqual(path.posix.normalize('../.../.././.../../../bar'),
591cb0ef41Sopenharmony_ci                   '../../bar');
601cb0ef41Sopenharmony_ciassert.strictEqual(path.posix.normalize('../../../foo/../../../bar'),
611cb0ef41Sopenharmony_ci                   '../../../../../bar');
621cb0ef41Sopenharmony_ciassert.strictEqual(path.posix.normalize('../../../foo/../../../bar/../../'),
631cb0ef41Sopenharmony_ci                   '../../../../../../');
641cb0ef41Sopenharmony_ciassert.strictEqual(
651cb0ef41Sopenharmony_ci  path.posix.normalize('../foobar/barfoo/foo/../../../bar/../../'),
661cb0ef41Sopenharmony_ci  '../../'
671cb0ef41Sopenharmony_ci);
681cb0ef41Sopenharmony_ciassert.strictEqual(
691cb0ef41Sopenharmony_ci  path.posix.normalize('../.../../foobar/../../../bar/../../baz'),
701cb0ef41Sopenharmony_ci  '../../../../baz'
711cb0ef41Sopenharmony_ci);
721cb0ef41Sopenharmony_ciassert.strictEqual(path.posix.normalize('foo/bar\\baz'), 'foo/bar\\baz');
73