Skip to content

Commit

Permalink
url: change null password handling
Browse files Browse the repository at this point in the history
Pulls in new URL parsing tests from w3c web-platform-tests and updates
null password handling.

Refs: web-platform-tests/wpt@e001240
Refs: whatwg/url#186
PR-URL: nodejs#10601
Fixes: nodejs#10595
Reviewed-By: Michal Zasso <[email protected]>
Reviewed-By: Italo A. Casas <[email protected]>
Reviewed-By: Colin Ihrig <[email protected]>
  • Loading branch information
jasnell authored and italoacasas committed Jan 18, 2017
1 parent 0df98bf commit e858f6c
Show file tree
Hide file tree
Showing 2 changed files with 66 additions and 5 deletions.
3 changes: 2 additions & 1 deletion lib/internal/url.js
Original file line number Diff line number Diff line change
Expand Up @@ -285,7 +285,8 @@ Object.defineProperties(URL.prototype, {
if (ctx.host !== undefined) {
ret += '//';
const has_username = typeof ctx.username === 'string';
const has_password = typeof ctx.password === 'string';
const has_password = typeof ctx.password === 'string' &&
ctx.password !== '';
if (has_username || has_password) {
if (has_username)
ret += ctx.username;
Expand Down
68 changes: 64 additions & 4 deletions test/fixtures/url-tests.json
Original file line number Diff line number Diff line change
Expand Up @@ -32,6 +32,66 @@
"search": "?b",
"hash": "#c"
},
{
"input": "https://test:@test",
"base": "about:blank",
"href": "https://test@test/",
"origin": "https://test",
"protocol": "https:",
"username": "test",
"password": "",
"host": "test",
"hostname": "test",
"port": "",
"pathname": "/",
"search": "",
"hash": ""
},
{
"input": "https://:@test",
"base": "about:blank",
"href": "https://test/",
"origin": "https://test",
"protocol": "https:",
"username": "",
"password": "",
"host": "test",
"hostname": "test",
"port": "",
"pathname": "/",
"search": "",
"hash": ""
},
{
"input": "non-special://test:@test/x",
"base": "about:blank",
"href": "non-special://test@test/x",
"origin": "null",
"protocol": "non-special:",
"username": "test",
"password": "",
"host": "test",
"hostname": "test",
"port": "",
"pathname": "/x",
"search": "",
"hash": ""
},
{
"input": "non-special://:@test/x",
"base": "about:blank",
"href": "non-special://test/x",
"origin": "null",
"protocol": "non-special:",
"username": "",
"password": "",
"host": "test",
"hostname": "test",
"port": "",
"pathname": "/x",
"search": "",
"hash": ""
},
{
"input": "http:foo.com",
"base": "http://example.org/foo/bar",
Expand Down Expand Up @@ -3098,7 +3158,7 @@
{
"input": "http:a:@www.example.com",
"base": "about:blank",
"href": "http://a:@www.example.com/",
"href": "http://[email protected]/",
"origin": "http://www.example.com",
"protocol": "http:",
"username": "a",
Expand All @@ -3113,7 +3173,7 @@
{
"input": "http:/a:@www.example.com",
"base": "about:blank",
"href": "http://a:@www.example.com/",
"href": "http://[email protected]/",
"origin": "http://www.example.com",
"protocol": "http:",
"username": "a",
Expand All @@ -3128,7 +3188,7 @@
{
"input": "http://a:@www.example.com",
"base": "about:blank",
"href": "http://a:@www.example.com/",
"href": "http://[email protected]/",
"origin": "http://www.example.com",
"protocol": "http:",
"username": "a",
Expand Down Expand Up @@ -3173,7 +3233,7 @@
{
"input": "http://:@www.example.com",
"base": "about:blank",
"href": "http://:@www.example.com/",
"href": "http://www.example.com/",
"origin": "http://www.example.com",
"protocol": "http:",
"username": "",
Expand Down

0 comments on commit e858f6c

Please sign in to comment.