@@ -102,7 +102,7 @@ describe('url-parse', function () {
102
102
} ) ;
103
103
104
104
it ( 'does not truncate the input string' , function ( ) {
105
- var input = 'foo\nbar\rbaz \u2028qux\u2029' ;
105
+ var input = 'foo\x0bbar\x0cbaz \u2028qux\u2029' ;
106
106
107
107
assume ( parse . extractProtocol ( input ) ) . eql ( {
108
108
slashes : false ,
@@ -113,7 +113,16 @@ describe('url-parse', function () {
113
113
} ) ;
114
114
115
115
it ( 'trimsLeft' , function ( ) {
116
- assume ( parse . extractProtocol ( ' javascript://foo' ) ) . eql ( {
116
+ assume ( parse . extractProtocol ( '\x0b\x0c javascript://foo' ) ) . eql ( {
117
+ slashes : true ,
118
+ protocol : 'javascript:' ,
119
+ rest : 'foo' ,
120
+ slashesCount : 2
121
+ } ) ;
122
+ } ) ;
123
+
124
+ it ( 'removes CR, HT, and LF' , function ( ) {
125
+ assume ( parse . extractProtocol ( 'jav\n\rasc\nript\r:/\t/fo\no' ) ) . eql ( {
117
126
slashes : true ,
118
127
protocol : 'javascript:' ,
119
128
rest : 'foo' ,
@@ -408,6 +417,31 @@ describe('url-parse', function () {
408
417
assume ( parsed . href ) . equals ( '//example.com' ) ;
409
418
} ) ;
410
419
420
+ it ( 'removes CR, HT, and LF' , function ( ) {
421
+ var parsed = parse (
422
+ 'ht\ntp://a\rb:\tcd@exam\rple.com:80\t80/pat\thname?fo\no=b\rar#ba\tz'
423
+ ) ;
424
+
425
+ assume ( parsed . protocol ) . equals ( 'http:' ) ;
426
+ assume ( parsed . username ) . equals ( 'ab' ) ;
427
+ assume ( parsed . password ) . equals ( 'cd' ) ;
428
+ assume ( parsed . host ) . equals ( 'example.com:8080' ) ;
429
+ assume ( parsed . hostname ) . equals ( 'example.com' ) ;
430
+ assume ( parsed . port ) . equals ( '8080' ) ;
431
+ assume ( parsed . pathname ) . equals ( '/pathname' ) ;
432
+ assume ( parsed . query ) . equals ( '?foo=bar' ) ;
433
+ assume ( parsed . hash ) . equals ( '#baz' ) ;
434
+ assume ( parsed . href ) . equals (
435
+ 'http://ab:cd@example.com:8080/pathname?foo=bar#baz'
436
+ ) ;
437
+
438
+ parsed = parse ( 's\nip:al\rice@atl\tanta.com' ) ;
439
+
440
+ assume ( parsed . protocol ) . equals ( 'sip:' ) ;
441
+ assume ( parsed . pathname ) . equals ( 'alice@atlanta.com' ) ;
442
+ assume ( parsed . href ) . equals ( 'sip:alice@atlanta.com' ) ;
443
+ } ) ;
444
+
411
445
describe ( 'origin' , function ( ) {
412
446
it ( 'generates an origin property' , function ( ) {
413
447
var url = 'http://google.com:80/pathname'
0 commit comments