@@ -10,6 +10,10 @@ describe('glob-parent', function () {
1010    expect ( gp ( '.*' ) ) . toEqual ( '.' ) ; 
1111    expect ( gp ( '/.*' ) ) . toEqual ( '/' ) ; 
1212    expect ( gp ( '/.*/' ) ) . toEqual ( '/' ) ; 
13+     expect ( gp ( '//' ) ) . toEqual ( '/' ) ; 
14+     expect ( gp ( '//*' ) ) . toEqual ( '/' ) ; 
15+     expect ( gp ( './/' ) ) . toEqual ( './' ) ; 
16+     expect ( gp ( './/*' ) ) . toEqual ( './' ) ; 
1317    expect ( gp ( 'a/.*/b' ) ) . toEqual ( 'a' ) ; 
1418    expect ( gp ( 'a*/.*/b' ) ) . toEqual ( '.' ) ; 
1519    expect ( gp ( '*/a/b/c' ) ) . toEqual ( '.' ) ; 
@@ -258,4 +262,71 @@ if (isWin32) {
258262      done ( ) ; 
259263    } ) ; 
260264  } ) ; 
265+ 
266+   describe ( 'windows path with drive or UNC volume' ,  function ( )  { 
267+     it ( 'should return parent dirname from absolute path with drive letter' ,  function ( done )  { 
268+       expect ( gp ( 'C:/' ) ) . toEqual ( 'C:/' ) ; 
269+       expect ( gp ( 'C:/.' ) ) . toEqual ( 'C:/' ) ; 
270+       expect ( gp ( 'C:/*' ) ) . toEqual ( 'C:/' ) ; 
271+       expect ( gp ( 'C:/./*' ) ) . toEqual ( 'C:/.' ) ; 
272+       expect ( gp ( 'C://' ) ) . toEqual ( 'C:/' ) ; 
273+       expect ( gp ( 'C://*' ) ) . toEqual ( 'C:/' ) ; 
274+       expect ( gp ( 'C:/path/*.js' ) ) . toEqual ( 'C:/path' ) ; 
275+ 
276+       expect ( gp ( 'C:\\' ) ) . toEqual ( 'C:/' ) ; 
277+       expect ( gp ( 'C:\\.' ) ) . toEqual ( 'C:/' ) ; 
278+       expect ( gp ( 'C:\\*' ) ) . toEqual ( 'C:/' ) ; 
279+       expect ( gp ( 'C:\\.\\*' ) ) . toEqual ( 'C:/.' ) ; 
280+       expect ( gp ( 'C:\\\\' ) ) . toEqual ( 'C:/' ) ; 
281+       expect ( gp ( 'C:\\\\*' ) ) . toEqual ( 'C:/' ) ; 
282+       expect ( gp ( 'C:\\path\\*.js' ) ) . toEqual ( 'C:/path' ) ; 
283+ 
284+       done ( ) ; 
285+     } ) ; 
286+ 
287+     it ( 'should return parent dirname from relative path with drive letter' ,  function ( done )  { 
288+       expect ( gp ( 'C:' ) ) . toEqual ( 'C:.' ) ; 
289+       expect ( gp ( 'C:.' ) ) . toEqual ( 'C:.' ) ; 
290+       expect ( gp ( 'C:*' ) ) . toEqual ( 'C:.' ) ; 
291+       expect ( gp ( 'C:./*' ) ) . toEqual ( 'C:.' ) ; 
292+       expect ( gp ( 'C:.//' ) ) . toEqual ( 'C:./' ) ; 
293+       expect ( gp ( 'C:.//*' ) ) . toEqual ( 'C:./' ) ; 
294+       expect ( gp ( 'C:path/*.js' ) ) . toEqual ( 'C:path' ) ; 
295+ 
296+       expect ( gp ( 'C:.\\*' ) ) . toEqual ( 'C:.' ) ; 
297+       expect ( gp ( 'C:.\\\\' ) ) . toEqual ( 'C:./' ) ; 
298+       expect ( gp ( 'C:.\\\\*' ) ) . toEqual ( 'C:./' ) ; 
299+       expect ( gp ( 'C:path\\*.js' ) ) . toEqual ( 'C:path' ) ; 
300+ 
301+       done ( ) ; 
302+     } ) ; 
303+ 
304+     it ( 'should return parent dirname from UNC path' ,  function ( done )  { 
305+       expect ( gp ( '\\\\System07\\C$/' ) ) . toEqual ( '\\\\System07\\C$/' ) ; 
306+       expect ( gp ( '\\\\System07\\C$/.' ) ) . toEqual ( '\\\\System07\\C$/' ) ; 
307+       expect ( gp ( '\\\\System07\\C$/*' ) ) . toEqual ( '\\\\System07\\C$/' ) ; 
308+       expect ( gp ( '\\\\System07\\C$/./*' ) ) . toEqual ( '\\\\System07\\C$/.' ) ; 
309+       expect ( gp ( '\\\\System07\\C$//' ) ) . toEqual ( '\\\\System07\\C$/' ) ; 
310+       expect ( gp ( '\\\\System07\\C$//*' ) ) . toEqual ( '\\\\System07\\C$/' ) ; 
311+       expect ( gp ( '\\\\System07\\C$/path/*.js' ) ) . toEqual ( '\\\\System07\\C$/path' ) ; 
312+ 
313+       expect ( gp ( '\\\\System07\\C$/' ,  {  flipBackslashes : false  } ) ) . toEqual ( '\\\\System07\\C$/' ) ; 
314+       expect ( gp ( '\\\\System07\\C$/.' ,  {  flipBackslashes : false  } ) ) . toEqual ( '\\\\System07\\C$/' ) ; 
315+       expect ( gp ( '\\\\System07\\C$/*' ,  {  flipBackslashes : false  } ) ) . toEqual ( '\\\\System07\\C$/' ) ; 
316+       expect ( gp ( '\\\\System07\\C$/./*' ,  {  flipBackslashes : false  } ) ) . toEqual ( '\\\\System07\\C$/.' ) ; 
317+       expect ( gp ( '\\\\System07\\C$//' ,  {  flipBackslashes : false  } ) ) . toEqual ( '\\\\System07\\C$/' ) ; 
318+       expect ( gp ( '\\\\System07\\C$//*' ,  {  flipBackslashes : false  } ) ) . toEqual ( '\\\\System07\\C$/' ) ; 
319+       expect ( gp ( '\\\\System07\\C$/path/*.js' ) ) . toEqual ( '\\\\System07\\C$/path' ) ; 
320+ 
321+       expect ( gp ( '\\\\System07\\C$\\' ) ) . toEqual ( '\\\\System07\\C$/' ) ; 
322+       expect ( gp ( '\\\\System07\\C$\\.' ) ) . toEqual ( '\\\\System07\\C$/' ) ; 
323+       expect ( gp ( '\\\\System07\\C$\\*' ) ) . toEqual ( '\\\\System07\\C$/' ) ; 
324+       expect ( gp ( '\\\\System07\\C$\\.\\*' ) ) . toEqual ( '\\\\System07\\C$/.' ) ; 
325+       expect ( gp ( '\\\\System07\\C$\\\\' ) ) . toEqual ( '\\\\System07\\C$/' ) ; 
326+       expect ( gp ( '\\\\System07\\C$\\\\*' ) ) . toEqual ( '\\\\System07\\C$/' ) ; 
327+       expect ( gp ( '\\\\System07\\C$\\path\\*.js' ) ) . toEqual ( '\\\\System07\\C$/path' ) ; 
328+ 
329+       done ( ) ; 
330+     } ) ; 
331+   } ) ; 
261332} 
0 commit comments