@@ -22,13 +22,25 @@ assert.equal(path.win32.basename('\\basename.ext'), 'basename.ext');
2222assert . equal ( path . win32 . basename ( 'basename.ext' ) , 'basename.ext' ) ;
2323assert . equal ( path . win32 . basename ( 'basename.ext\\' ) , 'basename.ext' ) ;
2424assert . equal ( path . win32 . basename ( 'basename.ext\\\\' ) , 'basename.ext' ) ;
25+ assert . equal ( path . win32 . basename ( 'foo' ) , 'foo' ) ;
26+ assert . equal ( path . win32 . basename ( null ) , 'null' ) ;
27+ assert . equal ( path . win32 . basename ( true ) , 'true' ) ;
28+ assert . equal ( path . win32 . basename ( 1 ) , '1' ) ;
29+ assert . equal ( path . win32 . basename ( ) , 'undefined' ) ;
30+ assert . equal ( path . win32 . basename ( { } ) , '[object Object]' ) ;
2531
2632// On unix a backslash is just treated as any other character.
2733assert . equal ( path . posix . basename ( '\\dir\\basename.ext' ) , '\\dir\\basename.ext' ) ;
2834assert . equal ( path . posix . basename ( '\\basename.ext' ) , '\\basename.ext' ) ;
2935assert . equal ( path . posix . basename ( 'basename.ext' ) , 'basename.ext' ) ;
3036assert . equal ( path . posix . basename ( 'basename.ext\\' ) , 'basename.ext\\' ) ;
3137assert . equal ( path . posix . basename ( 'basename.ext\\\\' ) , 'basename.ext\\\\' ) ;
38+ assert . equal ( path . posix . basename ( 'foo' ) , 'foo' ) ;
39+ assert . equal ( path . posix . basename ( null ) , 'null' ) ;
40+ assert . equal ( path . posix . basename ( true ) , 'true' ) ;
41+ assert . equal ( path . posix . basename ( 1 ) , '1' ) ;
42+ assert . equal ( path . posix . basename ( ) , 'undefined' ) ;
43+ assert . equal ( path . posix . basename ( { } ) , '[object Object]' ) ;
3244
3345// POSIX filenames may include control characters
3446// c.f. http://www.dwheeler.com/essays/fixing-unix-linux-filenames.html
@@ -47,6 +59,12 @@ assert.equal(path.posix.dirname('/a'), '/');
4759assert . equal ( path . posix . dirname ( '' ) , '.' ) ;
4860assert . equal ( path . posix . dirname ( '/' ) , '/' ) ;
4961assert . equal ( path . posix . dirname ( '////' ) , '/' ) ;
62+ assert . equal ( path . posix . dirname ( 'foo' ) , '.' ) ;
63+ assert . equal ( path . posix . dirname ( null ) , '.' ) ;
64+ assert . equal ( path . posix . dirname ( true ) , '.' ) ;
65+ assert . equal ( path . posix . dirname ( 1 ) , '.' ) ;
66+ assert . equal ( path . posix . dirname ( ) , '.' ) ;
67+ assert . equal ( path . posix . dirname ( { } ) , '.' ) ;
5068
5169assert . equal ( path . win32 . dirname ( 'c:\\' ) , 'c:\\' ) ;
5270assert . equal ( path . win32 . dirname ( 'c:\\foo' ) , 'c:\\' ) ;
@@ -81,6 +99,12 @@ assert.equal(path.win32.dirname('/a'), '/');
8199assert . equal ( path . win32 . dirname ( '' ) , '.' ) ;
82100assert . equal ( path . win32 . dirname ( '/' ) , '/' ) ;
83101assert . equal ( path . win32 . dirname ( '////' ) , '/' ) ;
102+ assert . equal ( path . win32 . dirname ( 'foo' ) , '.' ) ;
103+ assert . equal ( path . win32 . dirname ( null ) , '.' ) ;
104+ assert . equal ( path . win32 . dirname ( true ) , '.' ) ;
105+ assert . equal ( path . win32 . dirname ( 1 ) , '.' ) ;
106+ assert . equal ( path . win32 . dirname ( ) , '.' ) ;
107+ assert . equal ( path . win32 . dirname ( { } ) , '.' ) ;
84108
85109
86110// path.extname tests
@@ -156,6 +180,11 @@ assert.equal(path.win32.extname('file\\'), '');
156180assert . equal ( path . win32 . extname ( 'file\\\\' ) , '' ) ;
157181assert . equal ( path . win32 . extname ( 'file.\\' ) , '.' ) ;
158182assert . equal ( path . win32 . extname ( 'file.\\\\' ) , '.' ) ;
183+ assert . equal ( path . win32 . extname ( null ) , '' ) ;
184+ assert . equal ( path . win32 . extname ( true ) , '' ) ;
185+ assert . equal ( path . win32 . extname ( 1 ) , '' ) ;
186+ assert . equal ( path . win32 . extname ( ) , '' ) ;
187+ assert . equal ( path . win32 . extname ( { } ) , '' ) ;
159188
160189// On *nix, backslash is a valid name component like any other character.
161190assert . equal ( path . posix . extname ( '.\\' ) , '' ) ;
@@ -166,6 +195,11 @@ assert.equal(path.posix.extname('file\\'), '');
166195assert . equal ( path . posix . extname ( 'file\\\\' ) , '' ) ;
167196assert . equal ( path . posix . extname ( 'file.\\' ) , '.\\' ) ;
168197assert . equal ( path . posix . extname ( 'file.\\\\' ) , '.\\\\' ) ;
198+ assert . equal ( path . posix . extname ( null ) , '' ) ;
199+ assert . equal ( path . posix . extname ( true ) , '' ) ;
200+ assert . equal ( path . posix . extname ( 1 ) , '' ) ;
201+ assert . equal ( path . posix . extname ( ) , '' ) ;
202+ assert . equal ( path . posix . extname ( { } ) , '' ) ;
169203
170204
171205// path.join tests
@@ -486,8 +520,14 @@ assert.equal(path.posix.delimiter, ':');
486520
487521
488522// path._makeLong tests
523+ const emptyObj = { } ;
489524assert . equal ( path . posix . _makeLong ( '/foo/bar' ) , '/foo/bar' ) ;
490525assert . equal ( path . posix . _makeLong ( 'foo/bar' ) , 'foo/bar' ) ;
526+ assert . equal ( path . posix . _makeLong ( null ) , null ) ;
527+ assert . equal ( path . posix . _makeLong ( true ) , true ) ;
528+ assert . equal ( path . posix . _makeLong ( 1 ) , 1 ) ;
529+ assert . equal ( path . posix . _makeLong ( ) , undefined ) ;
530+ assert . equal ( path . posix . _makeLong ( emptyObj ) , emptyObj ) ;
491531if ( common . isWindows ) {
492532 // These tests cause resolve() to insert the cwd, so we cannot test them from
493533 // non-Windows platforms (easily)
@@ -505,6 +545,11 @@ assert.equal(path.win32._makeLong('C:/foo'), '\\\\?\\C:\\foo');
505545assert . equal ( path . win32 . _makeLong ( '\\\\foo\\bar' ) , '\\\\?\\UNC\\foo\\bar\\' ) ;
506546assert . equal ( path . win32 . _makeLong ( '//foo//bar' ) , '\\\\?\\UNC\\foo\\bar\\' ) ;
507547assert . equal ( path . win32 . _makeLong ( '\\\\?\\foo' ) , '\\\\?\\foo' ) ;
548+ assert . equal ( path . win32 . _makeLong ( null ) , null ) ;
549+ assert . equal ( path . win32 . _makeLong ( true ) , true ) ;
550+ assert . equal ( path . win32 . _makeLong ( 1 ) , 1 ) ;
551+ assert . equal ( path . win32 . _makeLong ( ) , undefined ) ;
552+ assert . equal ( path . win32 . _makeLong ( emptyObj ) , emptyObj ) ;
508553
509554
510555if ( common . isWindows )
0 commit comments