| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126 | 
							- 'use strict';
 
- var tape = require('tape');
 
- var path = require('../');
 
- var backslashRE = /\\/g;
 
- var joinTests =
 
-     // arguments                     result
 
-     [[['.', 'x/b', '..', '/b/c.js'], 'x/b/c.js'],
 
-      [[], '.'],
 
-      [['/.', 'x/b', '..', '/b/c.js'], '/x/b/c.js'],
 
-      [['/foo', '../../../bar'], '/bar'],
 
-      [['foo', '../../../bar'], '../../bar'],
 
-      [['foo/', '../../../bar'], '../../bar'],
 
-      [['foo/x', '../../../bar'], '../bar'],
 
-      [['foo/x', './bar'], 'foo/x/bar'],
 
-      [['foo/x/', './bar'], 'foo/x/bar'],
 
-      [['foo/x/', '.', 'bar'], 'foo/x/bar'],
 
-      [['./'], './'],
 
-      [['.', './'], './'],
 
-      [['.', '.', '.'], '.'],
 
-      [['.', './', '.'], '.'],
 
-      [['.', '/./', '.'], '.'],
 
-      [['.', '/////./', '.'], '.'],
 
-      [['.'], '.'],
 
-      [['', '.'], '.'],
 
-      [['', 'foo'], 'foo'],
 
-      [['foo', '/bar'], 'foo/bar'],
 
-      [['', '/foo'], '/foo'],
 
-      [['', '', '/foo'], '/foo'],
 
-      [['', '', 'foo'], 'foo'],
 
-      [['foo', ''], 'foo'],
 
-      [['foo/', ''], 'foo/'],
 
-      [['foo', '', '/bar'], 'foo/bar'],
 
-      [['./', '..', '/foo'], '../foo'],
 
-      [['./', '..', '..', '/foo'], '../../foo'],
 
-      [['.', '..', '..', '/foo'], '../../foo'],
 
-      [['', '..', '..', '/foo'], '../../foo'],
 
-      [['/'], '/'],
 
-      [['/', '.'], '/'],
 
-      [['/', '..'], '/'],
 
-      [['/', '..', '..'], '/'],
 
-      [[''], '.'],
 
-      [['', ''], '.'],
 
-      [[' /foo'], ' /foo'],
 
-      [[' ', 'foo'], ' /foo'],
 
-      [[' ', '.'], ' '],
 
-      [[' ', '/'], ' /'],
 
-      [[' ', ''], ' '],
 
-      [['/', 'foo'], '/foo'],
 
-      [['/', '/foo'], '/foo'],
 
-      [['/', '//foo'], '/foo'],
 
-      [['/', '', '/foo'], '/foo'],
 
-      [['', '/', 'foo'], '/foo'],
 
-      [['', '/', '/foo'], '/foo']
 
-     ];
 
- // Windows-specific join tests
 
- var windowsJoinTests =
 
-     [// arguments                     result
 
-       // UNC path expected
 
-       [['//foo/bar'], '\\\\foo\\bar\\'],
 
-       [['\\/foo/bar'], '\\\\foo\\bar\\'],
 
-       [['\\\\foo/bar'], '\\\\foo\\bar\\'],
 
-       // UNC path expected - server and share separate
 
-       [['//foo', 'bar'], '\\\\foo\\bar\\'],
 
-       [['//foo/', 'bar'], '\\\\foo\\bar\\'],
 
-       [['//foo', '/bar'], '\\\\foo\\bar\\'],
 
-       // UNC path expected - questionable
 
-       [['//foo', '', 'bar'], '\\\\foo\\bar\\'],
 
-       [['//foo/', '', 'bar'], '\\\\foo\\bar\\'],
 
-       [['//foo/', '', '/bar'], '\\\\foo\\bar\\'],
 
-       // UNC path expected - even more questionable
 
-       [['', '//foo', 'bar'], '\\\\foo\\bar\\'],
 
-       [['', '//foo/', 'bar'], '\\\\foo\\bar\\'],
 
-       [['', '//foo/', '/bar'], '\\\\foo\\bar\\'],
 
-       // No UNC path expected (no double slash in first component)
 
-       [['\\', 'foo/bar'], '\\foo\\bar'],
 
-       [['\\', '/foo/bar'], '\\foo\\bar'],
 
-       [['', '/', '/foo/bar'], '\\foo\\bar'],
 
-       // No UNC path expected (no non-slashes in first component -
 
-       // questionable)
 
-       [['//', 'foo/bar'], '\\foo\\bar'],
 
-       [['//', '/foo/bar'], '\\foo\\bar'],
 
-       [['\\\\', '/', '/foo/bar'], '\\foo\\bar'],
 
-       [['//'], '/'],
 
-       // No UNC path expected (share name missing - questionable).
 
-       [['//foo'], '\\foo'],
 
-       [['//foo/'], '\\foo\\'],
 
-       [['//foo', '/'], '\\foo\\'],
 
-       [['//foo', '', '/'], '\\foo\\'],
 
-       // No UNC path expected (too many leading slashes - questionable)
 
-       [['///foo/bar'], '\\foo\\bar'],
 
-       [['////foo', 'bar'], '\\foo\\bar'],
 
-       [['\\\\\\/foo/bar'], '\\foo\\bar'],
 
-       // Drive-relative vs drive-absolute paths. This merely describes the
 
-       // status quo, rather than being obviously right
 
-       [['c:'], 'c:.'],
 
-       [['c:.'], 'c:.'],
 
-       [['c:', ''], 'c:.'],
 
-       [['', 'c:'], 'c:.'],
 
-       [['c:.', '/'], 'c:.\\'],
 
-       [['c:.', 'file'], 'c:file'],
 
-       [['c:', '/'], 'c:\\'],
 
-       [['c:', 'file'], 'c:\\file']
 
-     ];
 
- tape('path.posix.join', function (t) {
 
-   joinTests.forEach(function (p) {
 
-     var actual = path.posix.join.apply(null, p[0]);
 
-     t.strictEqual(actual, p[1]);
 
-   });
 
-   t.end();
 
- });
 
- tape('path.win32.join', { skip: true }, function (t) {
 
-   joinTests.forEach(function (p) {
 
-     var actual = path.win32.join.apply(null, p[0]).replace(backslashRE, '/');
 
-     t.strictEqual(actual, p[1]);
 
-   });
 
-   windowsJoinTests.forEach(function (p) {
 
-     var actual = path.win32.join.apply(null, p[0]);
 
-     t.strictEqual(actual, p[1]);
 
-   });
 
-   t.end();
 
- });
 
 
  |