@@ -438,6 +438,48 @@ describe('url-parse', function () {
438
438
data . set ( 'protocol' , 'https:' ) ;
439
439
assume ( data . href ) . equals ( 'https://google.com/foo' ) ;
440
440
} ) ;
441
+
442
+ it ( 'handles the file: protocol' , function ( ) {
443
+ var slashes = [ '' , '/' , '//' , '///' , '////' , '/////' ] ;
444
+ var data ;
445
+ var url ;
446
+
447
+ for ( var i = 0 ; i < slashes . length ; i ++ ) {
448
+ data = parse ( 'file:' + slashes [ i ] ) ;
449
+ assume ( data . protocol ) . equals ( 'file:' ) ;
450
+ assume ( data . pathname ) . equals ( '/' ) ;
451
+ assume ( data . href ) . equals ( 'file:///' ) ;
452
+ }
453
+
454
+ url = 'file:///Users/foo/BAR/baz.pdf' ;
455
+ data = parse ( url ) ;
456
+ assume ( data . protocol ) . equals ( 'file:' ) ;
457
+ assume ( data . pathname ) . equals ( '/Users/foo/BAR/baz.pdf' ) ;
458
+ assume ( data . href ) . equals ( url ) ;
459
+
460
+ url = 'file:///foo/bar?baz=qux#hash' ;
461
+ data = parse ( url ) ;
462
+ assume ( data . protocol ) . equals ( 'file:' ) ;
463
+ assume ( data . hash ) . equals ( '#hash' ) ;
464
+ assume ( data . query ) . equals ( '?baz=qux' ) ;
465
+ assume ( data . pathname ) . equals ( '/foo/bar' ) ;
466
+ assume ( data . href ) . equals ( url ) ;
467
+
468
+ data = parse ( 'file://c:\\foo\\bar\\' ) ;
469
+ assume ( data . protocol ) . equals ( 'file:' ) ;
470
+ assume ( data . pathname ) . equals ( '/c:/foo/bar/' ) ;
471
+ assume ( data . href ) . equals ( 'file:///c:/foo/bar/' ) ;
472
+
473
+ data = parse ( 'foo/bar' , 'file:///baz' ) ;
474
+ assume ( data . protocol ) . equals ( 'file:' ) ;
475
+ assume ( data . pathname ) . equals ( '/foo/bar' ) ;
476
+ assume ( data . href ) . equals ( 'file:///foo/bar' ) ;
477
+
478
+ data = parse ( 'foo/bar' , 'file:///baz/' ) ;
479
+ assume ( data . protocol ) . equals ( 'file:' ) ;
480
+ assume ( data . pathname ) . equals ( '/baz/foo/bar' ) ;
481
+ assume ( data . href ) . equals ( 'file:///baz/foo/bar' ) ;
482
+ } ) ;
441
483
} ) ;
442
484
443
485
describe ( 'ip' , function ( ) {
0 commit comments