@@ -83,6 +83,20 @@ describe('url-parse', function () {
8383 } ) ;
8484 } ) ;
8585
86+ it ( 'correctly resolves paths' , function ( ) {
87+ assume ( parse . extractProtocol ( '/foo' ) ) . eql ( {
88+ slashes : false ,
89+ protocol : '' ,
90+ rest : '/foo'
91+ } ) ;
92+
93+ assume ( parse . extractProtocol ( '//foo/bar' ) ) . eql ( {
94+ slashes : true ,
95+ protocol : '' ,
96+ rest : 'foo/bar'
97+ } ) ;
98+ } ) ;
99+
86100 it ( 'does not truncate the input string' , function ( ) {
87101 var input = 'foo\nbar\rbaz\u2028qux\u2029' ;
88102
@@ -209,6 +223,20 @@ describe('url-parse', function () {
209223 assume ( parsed . href ) . equals ( 'http://example.com/' ) ;
210224 } ) ;
211225
226+ it ( 'correctly parses pathnames for relative paths' , function ( ) {
227+ var url = '/dataApi/PROD/ws'
228+ , parsed = parse ( url , 'http://localhost:3000/PROD/trends' ) ;
229+
230+ assume ( parsed . pathname ) . equals ( '/dataApi/PROD/ws' ) ;
231+
232+ url = '/sections/?project=default'
233+ parsed = parse ( url , 'http://example.com/foo/bar' ) ;
234+
235+ assume ( parsed . pathname ) . equals ( '/sections/' ) ;
236+ assume ( parsed . hostname ) . equals ( 'example.com' ) ;
237+ assume ( parsed . href ) . equals ( 'http://example.com/sections/?project=default' ) ;
238+ } ) ;
239+
212240 it ( 'does not care about spaces' , function ( ) {
213241 var url = 'http://x.com/path?that\'s#all, folks'
214242 , parsed = parse ( url ) ;
0 commit comments