@@ -252,6 +252,41 @@ describe('glob2base test patterns', function () {
252252 gp ( '/(' . repeat ( 500000 ) + ')' ) ;
253253 done ( ) ;
254254 } ) ;
255+
256+ it ( 'should remove tail \'.\' and \'./\'' , function ( done ) {
257+ expect ( gp ( 'foo/./*' ) ) . toEqual ( 'foo/' ) ;
258+ expect ( gp ( 'foo/./././*' ) ) . toEqual ( 'foo/' ) ;
259+ expect ( gp ( './././*' ) ) . toEqual ( './' ) ;
260+ expect ( gp ( '/./././*' ) ) . toEqual ( '/' ) ;
261+
262+ if ( isWin32 ) {
263+ expect ( gp ( 'C:/foo/./*' ) ) . toEqual ( 'C:/foo/' ) ;
264+ expect ( gp ( 'C:/foo/./././*' ) ) . toEqual ( 'C:/foo/' ) ;
265+ expect ( gp ( 'C:/./././*' ) ) . toEqual ( 'C:/' ) ;
266+
267+ expect ( gp ( 'C:\\foo\\.\\*' ) ) . toEqual ( 'C:/foo/' ) ;
268+ expect ( gp ( 'C:\\foo\\.\\.\\.\\*' ) ) . toEqual ( 'C:/foo/' ) ;
269+ expect ( gp ( 'C:\\.\\.\\.\\*' ) ) . toEqual ( 'C:/' ) ;
270+
271+ expect ( gp ( 'C:foo/./*' ) ) . toEqual ( 'C:foo/' ) ;
272+ expect ( gp ( 'C:foo/./././*' ) ) . toEqual ( 'C:foo/' ) ;
273+ expect ( gp ( 'C:./././*' ) ) . toEqual ( 'C:' ) ;
274+
275+ expect ( gp ( 'C:foo\\.\\*' ) ) . toEqual ( 'C:foo/' ) ;
276+ expect ( gp ( 'C:foo\\.\\.\\.\\*' ) ) . toEqual ( 'C:foo/' ) ;
277+ expect ( gp ( 'C:.\\.\\.\\*' ) ) . toEqual ( 'C:' ) ;
278+
279+ expect ( gp ( '\\\\System07\\C$/foo/./*' ) ) . toEqual ( '\\\\System07\\C$/foo/' ) ;
280+ expect ( gp ( '\\\\System07\\C$/foo/./././*' ) ) . toEqual ( '\\\\System07\\C$/foo/' ) ;
281+ expect ( gp ( '\\\\System07\\C$/./././*' ) ) . toEqual ( '\\\\System07\\C$/' ) ;
282+
283+ expect ( gp ( '\\\\System07\\C$\\foo\\.\\*' ) ) . toEqual ( '\\\\System07\\C$/foo/' ) ;
284+ expect ( gp ( '\\\\System07\\C$\\foo\\.\\.\\.\\*' ) ) . toEqual ( '\\\\System07\\C$/foo/' ) ;
285+ expect ( gp ( '\\\\System07\\C$\\.\\.\\.\\*' ) ) . toEqual ( '\\\\System07\\C$/' ) ;
286+ }
287+
288+ done ( ) ;
289+ } ) ;
255290} ) ;
256291
257292if ( isWin32 ) {
@@ -268,15 +303,15 @@ if (isWin32) {
268303 expect ( gp ( 'C:/' ) ) . toEqual ( 'C:/' ) ;
269304 expect ( gp ( 'C:/.' ) ) . toEqual ( 'C:/' ) ;
270305 expect ( gp ( 'C:/*' ) ) . toEqual ( 'C:/' ) ;
271- expect ( gp ( 'C:/./*' ) ) . toEqual ( 'C:/. ' ) ;
306+ expect ( gp ( 'C:/./*' ) ) . toEqual ( 'C:/' ) ;
272307 expect ( gp ( 'C://' ) ) . toEqual ( 'C:/' ) ;
273308 expect ( gp ( 'C://*' ) ) . toEqual ( 'C:/' ) ;
274309 expect ( gp ( 'C:/path/*.js' ) ) . toEqual ( 'C:/path' ) ;
275310
276311 expect ( gp ( 'C:\\' ) ) . toEqual ( 'C:/' ) ;
277312 expect ( gp ( 'C:\\.' ) ) . toEqual ( 'C:/' ) ;
278313 expect ( gp ( 'C:\\*' ) ) . toEqual ( 'C:/' ) ;
279- expect ( gp ( 'C:\\.\\*' ) ) . toEqual ( 'C:/. ' ) ;
314+ expect ( gp ( 'C:\\.\\*' ) ) . toEqual ( 'C:/' ) ;
280315 expect ( gp ( 'C:\\\\' ) ) . toEqual ( 'C:/' ) ;
281316 expect ( gp ( 'C:\\\\*' ) ) . toEqual ( 'C:/' ) ;
282317 expect ( gp ( 'C:\\path\\*.js' ) ) . toEqual ( 'C:/path' ) ;
@@ -285,17 +320,17 @@ if (isWin32) {
285320 } ) ;
286321
287322 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:./ ' ) ;
323+ expect ( gp ( 'C:' ) ) . toEqual ( 'C:' ) ;
324+ expect ( gp ( 'C:.' ) ) . toEqual ( 'C:' ) ;
325+ expect ( gp ( 'C:*' ) ) . toEqual ( 'C:' ) ;
326+ expect ( gp ( 'C:./*' ) ) . toEqual ( 'C:' ) ;
327+ expect ( gp ( 'C:.//' ) ) . toEqual ( 'C:' ) ;
328+ expect ( gp ( 'C:.//*' ) ) . toEqual ( 'C:' ) ;
294329 expect ( gp ( 'C:path/*.js' ) ) . toEqual ( 'C:path' ) ;
295330
296- expect ( gp ( 'C:.\\*' ) ) . toEqual ( 'C:. ' ) ;
297- expect ( gp ( 'C:.\\\\' ) ) . toEqual ( 'C:./ ' ) ;
298- expect ( gp ( 'C:.\\\\*' ) ) . toEqual ( 'C:./ ' ) ;
331+ expect ( gp ( 'C:.\\*' ) ) . toEqual ( 'C:' ) ;
332+ expect ( gp ( 'C:.\\\\' ) ) . toEqual ( 'C:' ) ;
333+ expect ( gp ( 'C:.\\\\*' ) ) . toEqual ( 'C:' ) ;
299334 expect ( gp ( 'C:path\\*.js' ) ) . toEqual ( 'C:path' ) ;
300335
301336 done ( ) ;
@@ -305,23 +340,23 @@ if (isWin32) {
305340 expect ( gp ( '\\\\System07\\C$/' ) ) . toEqual ( '\\\\System07\\C$/' ) ;
306341 expect ( gp ( '\\\\System07\\C$/.' ) ) . toEqual ( '\\\\System07\\C$/' ) ;
307342 expect ( gp ( '\\\\System07\\C$/*' ) ) . toEqual ( '\\\\System07\\C$/' ) ;
308- expect ( gp ( '\\\\System07\\C$/./*' ) ) . toEqual ( '\\\\System07\\C$/. ' ) ;
343+ expect ( gp ( '\\\\System07\\C$/./*' ) ) . toEqual ( '\\\\System07\\C$/' ) ;
309344 expect ( gp ( '\\\\System07\\C$//' ) ) . toEqual ( '\\\\System07\\C$/' ) ;
310345 expect ( gp ( '\\\\System07\\C$//*' ) ) . toEqual ( '\\\\System07\\C$/' ) ;
311346 expect ( gp ( '\\\\System07\\C$/path/*.js' ) ) . toEqual ( '\\\\System07\\C$/path' ) ;
312347
313348 expect ( gp ( '\\\\System07\\C$/' , { flipBackslashes : false } ) ) . toEqual ( '\\\\System07\\C$/' ) ;
314349 expect ( gp ( '\\\\System07\\C$/.' , { flipBackslashes : false } ) ) . toEqual ( '\\\\System07\\C$/' ) ;
315350 expect ( gp ( '\\\\System07\\C$/*' , { flipBackslashes : false } ) ) . toEqual ( '\\\\System07\\C$/' ) ;
316- expect ( gp ( '\\\\System07\\C$/./*' , { flipBackslashes : false } ) ) . toEqual ( '\\\\System07\\C$/. ' ) ;
351+ expect ( gp ( '\\\\System07\\C$/./*' , { flipBackslashes : false } ) ) . toEqual ( '\\\\System07\\C$/' ) ;
317352 expect ( gp ( '\\\\System07\\C$//' , { flipBackslashes : false } ) ) . toEqual ( '\\\\System07\\C$/' ) ;
318353 expect ( gp ( '\\\\System07\\C$//*' , { flipBackslashes : false } ) ) . toEqual ( '\\\\System07\\C$/' ) ;
319354 expect ( gp ( '\\\\System07\\C$/path/*.js' ) ) . toEqual ( '\\\\System07\\C$/path' ) ;
320355
321356 expect ( gp ( '\\\\System07\\C$\\' ) ) . toEqual ( '\\\\System07\\C$/' ) ;
322357 expect ( gp ( '\\\\System07\\C$\\.' ) ) . toEqual ( '\\\\System07\\C$/' ) ;
323358 expect ( gp ( '\\\\System07\\C$\\*' ) ) . toEqual ( '\\\\System07\\C$/' ) ;
324- expect ( gp ( '\\\\System07\\C$\\.\\*' ) ) . toEqual ( '\\\\System07\\C$/. ' ) ;
359+ expect ( gp ( '\\\\System07\\C$\\.\\*' ) ) . toEqual ( '\\\\System07\\C$/' ) ;
325360 expect ( gp ( '\\\\System07\\C$\\\\' ) ) . toEqual ( '\\\\System07\\C$/' ) ;
326361 expect ( gp ( '\\\\System07\\C$\\\\*' ) ) . toEqual ( '\\\\System07\\C$/' ) ;
327362 expect ( gp ( '\\\\System07\\C$\\path\\*.js' ) ) . toEqual ( '\\\\System07\\C$/path' ) ;
0 commit comments