@@ -93,7 +93,7 @@ describe('url-parse', function () {
93
93
assume ( parse . extractProtocol ( '//foo/bar' ) ) . eql ( {
94
94
slashes : true ,
95
95
protocol : '' ,
96
- rest : 'foo/bar'
96
+ rest : '// foo/bar'
97
97
} ) ;
98
98
} ) ;
99
99
@@ -283,7 +283,7 @@ describe('url-parse', function () {
283
283
assume ( parsed . href ) . equals ( 'http://what-is-up.com/' ) ;
284
284
} ) ;
285
285
286
- it ( 'does not see a slash after the protocol as path ' , function ( ) {
286
+ it ( 'ignores slashes after the protocol for special URLs ' , function ( ) {
287
287
var url = 'https:\\/github.com/foo/bar'
288
288
, parsed = parse ( url ) ;
289
289
@@ -292,11 +292,59 @@ describe('url-parse', function () {
292
292
assume ( parsed . pathname ) . equals ( '/foo/bar' ) ;
293
293
294
294
url = 'https:/\\/\\/\\github.com/foo/bar' ;
295
+ parsed = parse ( url ) ;
295
296
assume ( parsed . host ) . equals ( 'github.com' ) ;
296
297
assume ( parsed . hostname ) . equals ( 'github.com' ) ;
297
298
assume ( parsed . pathname ) . equals ( '/foo/bar' ) ;
299
+
300
+ url = 'https:/github.com/foo/bar' ;
301
+ parsed = parse ( url ) ;
302
+ assume ( parsed . host ) . equals ( 'github.com' ) ;
303
+ assume ( parsed . pathname ) . equals ( '/foo/bar' ) ;
304
+
305
+ url = 'https:\\github.com/foo/bar' ;
306
+ parsed = parse ( url ) ;
307
+ assume ( parsed . host ) . equals ( 'github.com' ) ;
308
+ assume ( parsed . pathname ) . equals ( '/foo/bar' ) ;
309
+
310
+ url = 'https:github.com/foo/bar' ;
311
+ parsed = parse ( url ) ;
312
+ assume ( parsed . host ) . equals ( 'github.com' ) ;
313
+ assume ( parsed . pathname ) . equals ( '/foo/bar' ) ;
314
+
315
+ url = 'https:github.com/foo/bar' ;
316
+ parsed = parse ( url ) ;
317
+ assume ( parsed . host ) . equals ( 'github.com' ) ;
318
+ assume ( parsed . pathname ) . equals ( '/foo/bar' ) ;
298
319
} ) ;
299
320
321
+ it ( 'handles slashes after the protocol for non special URLs' , function ( ) {
322
+ var url = 'foo:example.com'
323
+ , parsed = parse ( url ) ;
324
+
325
+ assume ( parsed . hostname ) . equals ( '' ) ;
326
+ assume ( parsed . pathname ) . equals ( 'example.com' ) ;
327
+ assume ( parsed . href ) . equals ( 'foo:example.com' ) ;
328
+
329
+ url = 'foo:/example.com' ;
330
+ parsed = parse ( url ) ;
331
+ assume ( parsed . hostname ) . equals ( '' ) ;
332
+ assume ( parsed . pathname ) . equals ( '/example.com' ) ;
333
+ assume ( parsed . href ) . equals ( 'foo:/example.com' ) ;
334
+
335
+ url = 'foo://example.com' ;
336
+ parsed = parse ( url ) ;
337
+ assume ( parsed . hostname ) . equals ( 'example.com' ) ;
338
+ assume ( parsed . pathname ) . equals ( '/' ) ;
339
+ assume ( parsed . href ) . equals ( 'foo://example.com/' ) ;
340
+
341
+ url = 'foo:///example.com' ;
342
+ parsed = parse ( url ) ;
343
+ assume ( parsed . hostname ) . equals ( '' ) ;
344
+ assume ( parsed . pathname ) . equals ( '/example.com' ) ;
345
+ assume ( parsed . href ) . equals ( 'foo:///example.com' ) ;
346
+ } )
347
+
300
348
describe ( 'origin' , function ( ) {
301
349
it ( 'generates an origin property' , function ( ) {
302
350
var url = 'http://google.com:80/pathname'
@@ -440,7 +488,7 @@ describe('url-parse', function () {
440
488
} ) ;
441
489
442
490
it ( 'handles the file: protocol' , function ( ) {
443
- var slashes = [ '' , '/' , '//' , '///' , '////' , '/////' ] ;
491
+ var slashes = [ '' , '/' , '//' , '///' ] ;
444
492
var data ;
445
493
var url ;
446
494
@@ -451,6 +499,18 @@ describe('url-parse', function () {
451
499
assume ( data . href ) . equals ( 'file:///' ) ;
452
500
}
453
501
502
+ url = 'file:////' ;
503
+ data = parse ( url ) ;
504
+ assume ( data . protocol ) . equals ( 'file:' ) ;
505
+ assume ( data . pathname ) . equals ( '//' ) ;
506
+ assume ( data . href ) . equals ( url ) ;
507
+
508
+ url = 'file://///' ;
509
+ data = parse ( url ) ;
510
+ assume ( data . protocol ) . equals ( 'file:' ) ;
511
+ assume ( data . pathname ) . equals ( '///' ) ;
512
+ assume ( data . href ) . equals ( url ) ;
513
+
454
514
url = 'file:///Users/foo/BAR/baz.pdf' ;
455
515
data = parse ( url ) ;
456
516
assume ( data . protocol ) . equals ( 'file:' ) ;
0 commit comments