mirror of
https://github.com/nodejs/node.git
synced 2026-11-09 15:11:11 -05:00
url: Fix edge-case when protocol is non-lowercase
When using url.parse(), path and pathname usually return '/' when there is no path available. However when you have a protocol that contains non-lowercase letters and the input string does not have a trailing slash, both path and pathname will be undefined.
This commit is contained in:
1 parent
04e0324f6a
commit
48a4600c56
2 files changed
+11
-1
No files matched your search
+1
-1
@@ -318,7 +318,7 @@ Url.prototype.parse = function(url, parseQueryString, slashesDenoteHost) {
|
||||
this.query = {};
|
||||
}
|
||||
if (rest) this.pathname = rest;
|
||||
if (slashedProtocol[proto] &&
|
||||
if (slashedProtocol[lowerProto] &&
|
||||
this.hostname && !this.pathname) {
|
||||
this.pathname = '/';
|
||||
}
|
||||
|
||||
@@ -44,6 +44,16 @@ var parseTests = {
|
||||
'path': '/'
|
||||
},
|
||||
|
||||
'HTTP://www.example.com' : {
|
||||
'href': 'http://www.example.com/',
|
||||
'protocol': 'http:',
|
||||
'slashes': true,
|
||||
'host': 'www.example.com',
|
||||
'hostname': 'www.example.com',
|
||||
'pathname': '/',
|
||||
'path': '/'
|
||||
},
|
||||
|
||||
'http://www.ExAmPlE.com/' : {
|
||||
'href': 'http://www.example.com/',
|
||||
'protocol': 'http:',
|
||||
|
||||
Reference in new issue
Block a user