Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Non-special URL path tests #4586

Merged
merged 7 commits into from
Jan 31, 2017
Merged

Non-special URL path tests #4586

merged 7 commits into from
Jan 31, 2017

Conversation

annevk
Copy link
Member

@annevk annevk commented Jan 20, 2017

See whatwg/url#212 for details.

@wpt-pr-bot
Copy link
Collaborator

@annevk
Copy link
Member Author

annevk commented Jan 20, 2017

This is not ready to be reviewed yet. Many existing tests need to change as well.

@wpt-stability-bot
Copy link

wpt-stability-bot commented Jan 20, 2017

Firefox (nightly channel)

Testing web-platform-tests at revision e1384f4
Using browser at version BuildID 20170119222621; SourceStamp a3978751f45108ff1ae002ecebdc0fa23fc52b84
Starting 10 test iterations
No tests run.

@wpt-stability-bot
Copy link

wpt-stability-bot commented Jan 20, 2017

Chrome (unstable channel)

Testing web-platform-tests at revision cb30546
Using browser at version 55.0.2883.75
Starting 10 test iterations
All results were stable

All results

/url/url-constructor.html
Subtest Results
ERROR
/url/url-setters.html
Subtest Results
OK
<area>: Setting <http://me@example.net>.password = 'secret' PASS
<a>: Setting <sc://x/>.hostname = '\n' FAIL
URL: Setting <https://example.net?lang=en-US#nav>.search = 'lang=fr' PASS
<a>: Setting <mailto:me@example.net>.protocol = 'http' Cannot-be-a-base URL doesn’t have a host, but URL in a special scheme must. FAIL
<a>: Setting <http://example.net:8080>.port = '' Port number is removed if empty is the new value FAIL
<area>: Setting <unix:/run/foo.socket>.password = 'secret' No host means no password PASS
URL: Setting <http://example.net/>.hostname = '[::1.2.3.4x]' FAIL
<a>: Setting <a://example.net>.protocol = 'B' Upper-case ASCII is lower-cased PASS
<area>: Setting <nonsense:///test>.protocol = 'https' FAIL
<area>: Setting <http://example.net>.port = '8080' PASS
<area>: Setting <http://:secret@example.net>.username = 'me' PASS
URL: Setting <https://example.net>.search = '' PASS
<area>: Setting <https://example.net?lang=en-US>.hash = '##nav' PASS
<a>: Setting <sc://x/>.hostname = '\r' FAIL
URL: Setting <http://example.net/path>.port = '8080\stuff' Stuff after a \ delimiter is ignored for special schemes PASS
<area>: Setting <ftp://example.net>.protocol = 'test' FAIL
<a>: Setting <https://example.net#nav>.pathname = '../home' PASS
URL: Setting <sc://x/>.host = '\t' FAIL
URL: Setting <https://example.net#nav>.search = 'lang=fr' PASS
<area>: Setting <mailto:me@example.net>.pathname = '/foo' Cannot-be-a-base don’t have a path PASS
<area>: Setting <file:///home/me/index.html>.password = 'secret' No host means no password PASS
<a>: Setting <https://example.net#nav>.hash = 'main' PASS
URL: Setting <sc://x/>.host = '?' FAIL
<area>: Setting <sc://x/>.hostname = '@' FAIL
<a>: Setting <http://example.net>.username = '%c3%89té' Bytes already percent-encoded are left as-is. PASS
URL: Setting <file:///home/you/index.html>.username = 'me' No host means no username PASS
URL: Setting <unix:/run/foo.socket?timeout=10>.pathname = '/var/log/../run/bar.socket' FAIL
URL: Setting <http://example.net/path>.port = '8080?stuff' Stuff after a ? delimiter is ignored PASS
<area>: Setting <view-source+http://example.net/path>.host = 'example.com:8080stuff2' Anything other than ASCII digit stops the port parser in a setter but is not an error FAIL
URL: Setting <view-source+http://example.net/path>.host = 'example.com:8080stuff2' Anything other than ASCII digit stops the port parser in a setter but is not an error FAIL
URL: Setting <http://example.net/>.host = '[::1.]' FAIL
URL: Setting <sc://x/>.host = ' ' FAIL
<area>: Setting <sc://x/>.hostname = '\r' FAIL
<area>: Setting <http://example.net/>.hostname = '[google.com]' Broken IPv6 FAIL
<a>: Setting <sc://x/>.hostname = '?' FAIL
<area>: Setting <http://example.net/path>.port = '8080/stuff' Stuff after a / delimiter is ignored PASS
<area>: Setting <sc://x/>.hostname = '#' FAIL
<a>: Setting <http://example.net>.host = '' The empty host is not valid for special schemes PASS
<a>: Setting <http://example.net/>.host = '[::1.]' FAIL
URL: Setting <http://example.net/path>.host = 'example.com:8080\stuff' Stuff after a \ delimiter is ignored for special schemes PASS
<a>: Setting <ssh://me@example.net>.protocol = 'file' FAIL
<area>: Setting <ssh://me@example.net>.protocol = 'gopher' FAIL
<a>: Setting <sc://x/>.hostname = '@' FAIL
<a>: Setting <ssh://me@example.net>.protocol = 'http' Can’t switch from non-special scheme to special FAIL
<area>: Setting <a:/>.pathname = '�\t\n\r� !"#$%&'()*+,-./09:;<=>?@AZ[\]^_\az{ }~���Éé' UTF-8 percent encoding with the default encode set. Tabs and newlines are removed.`
URL: Setting <http://example.net:8080>.port = '80' Default port number is removed PASS
URL: Setting <http://example.net/>.host = '[::1.2.]' FAIL
<area>: Setting <unix:/run/foo.socket?timeout=10>.pathname = '/var/log/../run/bar.socket' FAIL
<area>: Setting <http://example.net:8080>.hostname = '0x7F000001' IPv4 address syntax is normalized PASS
<area>: Setting <mailto:you@example.net>.username = 'me' Cannot-be-a-base means no username PASS
<area>: Setting <https://example.net?lang=en-US#nav>.search = '??lang=fr' FAIL
<a>: Setting <mailto:me@example.net>.host = 'example.com' Cannot-be-a-base means no host PASS
<a>: Setting <http://example.net>.protocol = 'b' Can’t switch from special scheme to non-special FAIL
URL: Setting <a:/>.hash = '�\t\n\r� !"#$%&'()*+,-./09:;<=>?@AZ[\]^_\az{ }~���Éé' Simple percent-encoding; nuls, tabs, and newlines are removed`
<a>: Setting <http://example.net/>.host = '[::1.2.]' FAIL
<a>: Setting <mailto:me@example.net>.hostname = 'example.com' Cannot-be-a-base means no host PASS
URL: Setting <sc://x/>.host = '@' FAIL
<area>: Setting <a://example.net>.protocol = '+b' No leading punctuation PASS
<area>: Setting <http://example.net>.protocol = 'b' Can’t switch from special scheme to non-special FAIL
URL: Setting <http://example.net>.hostname = '[::0:01]' IPv6 address syntax is normalized PASS
<area>: Setting <http://example.net:8080>.port = '80' Default port number is removed PASS
URL: Setting <https://example.net?lang=en-US>.search = '' PASS
<area>: Setting <data:text/plain,Stuff>.host = 'example.net' Cannot-be-a-base means no password PASS
<a>: Setting <https://example.net?lang=en-US#nav>.search = '??lang=fr' FAIL
<a>: Setting <sc://x/>.hostname = ' ' FAIL
<area>: Setting <http://example.net:8080>.port = '' Port number is removed if empty is the new value FAIL
URL: Setting <file:///home/me/index.html>.password = 'secret' No host means no password PASS
<a>: Setting <https://example.net?lang=en-US#nav>.hash = '' PASS
<a>: Setting <http://example.net:8080>.host = 'example.com' Port number is unchanged if not specified in the new value PASS
<a>: Setting <http://example.net>.password = '%c3%89té' Bytes already percent-encoded are left as-is. PASS
<area>: Setting <http://example.net>.username = '�\t\n\r� !"#$%&'()*+,-./09:;<=>?@AZ[\]^_\az{ }~���Éé' UTF-8 percent encoding with the userinfo encode set.`
<a>: Setting <https://example.net>.host = 'example.com:80' Default port number is only removed for the relevant scheme PASS
<a>: Setting <http://example.net/path>.host = 'example.com:8080/stuff' Stuff after a / delimiter is ignored PASS
<a>: Setting <a://example.net>.protocol = 'b' PASS
URL: Setting <http://me@example.net>.username = '' PASS
<a>: Setting <http://example.net/path>.hostname = 'example.com:8080' Stuff after a : delimiter is ignored FAIL
<a>: Setting <file:///home/you/index.html>.username = 'me' No host means no username PASS
<a>: Setting <sc://x/>.hostname = '\t' FAIL
<a>: Setting <http://example.net/path>.host = 'example.com:8080?stuff' Stuff after a ? delimiter is ignored PASS
<a>: Setting <a://example.net>.protocol = 'bC0+-.' PASS
<a>: Setting <http://example.net/path>.host = 'example.com:65536' Port numbers are 16 bit integers, overflowing is an error. Hostname is still set, though. FAIL
URL: Setting <http://example.net/path>.hostname = 'example.com#stuff' Stuff after a # delimiter is ignored FAIL
<area>: Setting <sc://x/>.host = '/' FAIL
<area>: Setting <http://example.net/path>.host = 'example.com#stuff' Stuff after a # delimiter is ignored FAIL
<a>: Setting <http://example.net/>.host = '[google.com]' Broken IPv6 FAIL
<area>: Setting <mailto:me@example.net>.password = 'secret' Cannot-be-a-base means no password PASS
<a>: Setting <http://example.net/path>.host = 'example.com:65535' Port numbers are 16 bit integers PASS
<a>: Setting <a:/>.search = '�\t\n\r� !"#$%&'()*+,-./09:;<=>?@AZ[\]^_\az{ }~���Éé' UTF-8 percent encoding with the query encode set. Tabs and newlines are removed.`
<a>: Setting <http://me:secret@example.net>.username = '' PASS
URL: Setting <http://example.net>.hash = '%c3%89té' Bytes already percent-encoded are left as-is FAIL
URL: Setting <http://example.net>.host = '[::0:01]:2' IPv6 address syntax is normalized FAIL
<a>: Setting <https://example.net>.hash = 'main' PASS
URL: Setting <http://example.net:8080/path>.hostname = 'example.com:' Stuff after a : delimiter is ignored FAIL
<a>: Setting <http://example.net/>.hostname = '[google.com]' Broken IPv6 FAIL
<a>: Setting <http://example.net/home?lang=fr#nav>.pathname = '\a\%2E\b\%2e.\c' \ is a segment delimiter for 'special' URLs PASS
<area>: Setting <https://example.net?lang=en-US#nav>.search = '?lang=fr' PASS
<a>: Setting <data:text/plain,Stuff>.host = 'example.net' Cannot-be-a-base means no password PASS
URL: Setting <sc://example.net>.pathname = '?' ? needs to be encoded, non-special scheme FAIL
<area>: Setting <view-source+http://example.net/path>.port = '8080stuff2' Anything other than ASCII digit stops the port parser in a setter but is not an error FAIL
URL: Setting <view-source+http://example.net/home?lang=fr#nav>.pathname = '\a\%2E\b\%2e.\c' \ is *not* a segment delimiter for non-'special' URLs FAIL
<area>: Setting <http://example.net/path>.host = 'example.com:8080\stuff' Stuff after a \ delimiter is ignored for special schemes PASS
URL: Setting <http://example.net>.pathname = '?' ? needs to be encoded PASS
<area>: Setting <file:///home/you/index.html>.username = 'me' No host means no username PASS
URL: Setting <mailto:me@example.net>.password = 'secret' Cannot-be-a-base means no password PASS
URL: Setting <http://example.net/path>.host = 'example.com:8080stuff2' Anything other than ASCII digit stops the port parser in a setter but is not an error PASS
<area>: Setting <http://example.net>.host = '0x7F000001:8080' IPv4 address syntax is normalized PASS
<area>: Setting <http://example.net/>.host = '[::1.]' FAIL
<area>: Setting <http://example.net/home?lang=fr#nav>.pathname = '\a\%2E\b\%2e.\c' \ is a segment delimiter for 'special' URLs PASS
<a>: Setting <a:/>.hash = '�\t\n\r� !"#$%&'()*+,-./09:;<=>?@AZ[\]^_\az{ }~���Éé' Simple percent-encoding; nuls, tabs, and newlines are removed`
<a>: Setting <sc://x/>.host = '/' FAIL
<area>: Setting <https://example.net>.port = '80' Default port number is only removed for the relevant scheme PASS
<area>: Setting <http://example.net/path>.host = 'example.com\stuff' Stuff after a \ delimiter is ignored for special schemes FAIL
URL: Setting <a://example.net>.protocol = 'B' Upper-case ASCII is lower-cased PASS
URL: Setting <https://example.net>.host = 'example.com:443' Default port number is removed PASS
<area>: Setting <http://example.net/path>.host = 'example.com:8080#stuff' Stuff after a # delimiter is ignored PASS
<a>: Setting <http://example.net/>.host = '[::1.2.3.4x]' FAIL
URL: Setting <mailto:me@example.net>.hostname = 'example.com' Cannot-be-a-base means no host PASS
<a>: Setting <https://example.net?lang=en-US#nav>.search = '?lang=fr' PASS
<a>: Setting <https://example.net?lang=en-US#nav>.search = '?' FAIL
URL: Setting <http://example.net:8080>.host = 'example.com' Port number is unchanged if not specified in the new value PASS
<area>: Setting <a:/>.hash = '�\t\n\r� !"#$%&'()*+,-./09:;<=>?@AZ[\]^_\az{ }~���Éé' Simple percent-encoding; nuls, tabs, and newlines are removed`
URL: Setting <a://example.net>.protocol = 'b' PASS
<a>: Setting <a://example.net>.protocol = '' The empty string is not a valid scheme. Setter leaves the URL unchanged. PASS
<a>: Setting <http://example.net/path>.host = 'example.com:8080stuff2' Anything other than ASCII digit stops the port parser in a setter but is not an error PASS
<area>: Setting <mailto:me@example.net>.host = 'example.com' Cannot-be-a-base means no host PASS
URL: Setting <http://example.net/path>.host = 'example.com:8080?stuff' Stuff after a ? delimiter is ignored PASS
<a>: Setting <view-source+http://example.net/path>.host = 'example.com:8080stuff2' Anything other than ASCII digit stops the port parser in a setter but is not an error FAIL
<a>: Setting <https://example.net>.port = '80' Default port number is only removed for the relevant scheme PASS
URL: Setting <https://example.net#nav>.pathname = 'home' PASS
URL: Setting <http://example.net/>.hostname = '[::1.]' FAIL
<area>: Setting <a://example.net>.protocol = 'b,c' Only some punctuation is acceptable PASS
<area>: Setting <http://example.net>.hash = '%c3%89té' Bytes already percent-encoded are left as-is FAIL
<a>: Setting <view-source+http://example.net/path>.hostname = 'example.com\stuff' \ is not a delimiter for non-special schemes, but still forbidden in hosts FAIL
<area>: Setting <https://example.net#nav>.pathname = 'home' PASS
<area>: Setting <http://example.net/path>.host = 'example.com:8080?stuff' Stuff after a ? delimiter is ignored PASS
<area>: Setting <http://example.net/path>.hostname = 'example.com/stuff' Stuff after a / delimiter is ignored FAIL
<area>: Setting <a://example.net>.protocol = 'bé' Non-ASCII is rejected PASS
URL: Setting <unix:/run/foo.socket>.password = 'secret' No host means no password PASS
URL: Setting <http://example.net>.username = '%c3%89té' Bytes already percent-encoded are left as-is. PASS
<area>: Setting <http://example.net>.password = 'secret' PASS
URL: Setting <http://example.net/path>.hostname = 'example.com:8080' Stuff after a : delimiter is ignored FAIL
URL: Setting <sc://x/>.hostname = '/' FAIL
<a>: Setting <https://example.net?lang=en-US#nav>.search = '' PASS
URL: Setting <https://example.net?lang=en-US#nav>.hash = '#' FAIL
<a>: Setting <http://example.net>.pathname = '%2e%2E%c3%89té' Bytes already percent-encoded are left as-is, including %2E outside dotted segments. FAIL
<a>: Setting <a://example.net>.protocol = 'é' Non-ASCII is rejected PASS
<a>: Setting <unix:/run/foo.socket>.username = 'me' No host means no username PASS
<area>: Setting <a:/foo>.host = 'example.net' Path-only URLs can gain a host FAIL
URL: Setting <http://example.net/path>.host = 'example.com\stuff' Stuff after a \ delimiter is ignored for special schemes FAIL
URL: Setting <https://example.net>.port = '80' Default port number is only removed for the relevant scheme PASS
<area>: Setting <http://example.net>.host = 'example.com:8080' PASS
<a>: Setting <nonsense:///test>.protocol = 'https' FAIL
URL: Setting <sc://x/>.host = '\n' FAIL
<area>: Setting <https://example.net?lang=en-US#nav>.search = '' PASS
<a>: Setting <https://example.net?lang=en-US#nav>.hash = '#' FAIL
URL: Setting <a://example.net>.protocol = '+b' No leading punctuation PASS
<area>: Setting <http://example.net/path>.port = '8080+2' Anything other than ASCII digit stops the port parser in a setter but is not an error PASS
<area>: Setting <http://example.net>.password = '%c3%89té' Bytes already percent-encoded are left as-is. PASS
<area>: Setting <data:text/plain,Stuff>.hostname = 'example.net' Cannot-be-a-base means no password PASS
<area>: Setting <http://example.net/>.hostname = '[::1.2.3.4x]' FAIL
<area>: Setting <http://example.net/path>.host = 'example.com?stuff' Stuff after a ? delimiter is ignored FAIL
<a>: Setting <ftp://example.net>.protocol = 'test' FAIL
URL: Setting <http://example.net>.password = '�\t\n\r� !"#$%&'()*+,-./09:;<=>?@AZ[\]^_\az{ }~���Éé' UTF-8 percent encoding with the userinfo encode set.`
<area>: Setting <http://example.net/path>.port = '8080stuff2' Anything other than ASCII digit stops the port parser in a setter but is not an error PASS
<a>: Setting <sc://x/>.host = '#' FAIL
<area>: Setting <http://example.net>.host = '' The empty host is not valid for special schemes PASS
<a>: Setting <http://example.net>.password = 'secret' PASS
<area>: Setting <sc://x/>.hostname = '' Non-special scheme FAIL
<a>: Setting <view-source+http://example.net/home?lang=fr#nav>.pathname = '\a\%2E\b\%2e.\c' \ is *not* a segment delimiter for non-'special' URLs FAIL
URL: Setting <a://example.net>.protocol = 'é' Non-ASCII is rejected PASS
<area>: Setting <http://example.net>.hostname = '' The empty host is not valid for special schemes PASS
<area>: Setting <view-source+http://example.net/foo>.host = '' The empty host is OK for non-special schemes FAIL
URL: Setting <http://example.net>.host = '0x7F000001:8080' IPv4 address syntax is normalized PASS
<area>: Setting <https://example.net>.search = '' PASS
URL: Setting <http://me:secret@example.net>.password = '' PASS
<area>: Setting <a://example.net>.protocol = '' The empty string is not a valid scheme. Setter leaves the URL unchanged. PASS
<a>: Setting <view-source+http://example.net/path>.port = '8080stuff2' Anything other than ASCII digit stops the port parser in a setter but is not an error FAIL
URL: Setting <http://example.net:8080>.host = 'example.com:' Port number is unchanged if not specified FAIL
<area>: Setting <http://example.net/>.host = '[::1.2.]' FAIL
URL: Setting <http://example.net>.host = 'example.com:80' Default port number is removed PASS
URL: Setting <ssh://me@example.net>.protocol = 'http' Can’t switch from non-special scheme to special FAIL
<area>: Setting <http://example.net/path>.port = '8080#stuff' Stuff after a # delimiter is ignored PASS
<a>: Setting <a://example.net>.protocol = '+b' No leading punctuation PASS
<area>: Setting <https://example.net>.host = 'example.com:443' Default port number is removed PASS
<a>: Setting <a:/foo>.host = 'example.net' Path-only URLs can gain a host FAIL
URL: Setting <a://example.net>.protocol = 'bé' Non-ASCII is rejected PASS
URL: Setting <https://example.net?lang=en-US#nav>.search = '?' FAIL
<a>: Setting <view-source+http://example.net/path>.host = 'example.com\stuff' \ is not a delimiter for non-special schemes, but still forbidden in hosts FAIL
<a>: Setting <http://example.net/path>.port = '8080+2' Anything other than ASCII digit stops the port parser in a setter but is not an error PASS
<area>: Setting <http://example.net/path>.port = '65535' Port numbers are 16 bit integers PASS
<a>: Setting <http://example.net>.hostname = '' The empty host is not valid for special schemes PASS
<area>: Setting <mailto:me@example.net>.hostname = 'example.com' Cannot-be-a-base means no host PASS
URL: Setting <a://example.net>.protocol = '' The empty string is not a valid scheme. Setter leaves the URL unchanged. PASS
<area>: Setting <http://example.net/>.host = '[google.com]' Broken IPv6 FAIL
<a>: Setting <file:///home/me/index.html>.password = 'secret' No host means no password PASS
URL: Setting <data:text/plain,Stuff>.host = 'example.net' Cannot-be-a-base means no password PASS
<area>: Setting <view-source+http://example.net/path>.hostname = 'example.com\stuff' \ is not a delimiter for non-special schemes, but still forbidden in hosts FAIL
<a>: Setting <http://example.net/path>.host = 'example.com#stuff' Stuff after a # delimiter is ignored FAIL
URL: Setting <a:/foo>.hostname = 'example.net' Path-only URLs can gain a host FAIL
URL: Setting <http://example.net/path>.port = '65535' Port numbers are 16 bit integers PASS
<a>: Setting <sc://x/>.hostname = '#' FAIL
URL: Setting <http://example.net>.pathname = '#' # needs to be encoded PASS
<area>: Setting <a://example.net>.protocol = '0b' No leading digit PASS
<area>: Setting <sc://example.net>.pathname = '?' ? needs to be encoded, non-special scheme FAIL
Loading data… PASS
<area>: Setting <http://example.net/path>.host = 'example.com:65536' Port numbers are 16 bit integers, overflowing is an error. Hostname is still set, though. FAIL
<a>: Setting <https://example.net>.search = '' PASS
<a>: Setting <a://example.net>.protocol = 'bé' Non-ASCII is rejected PASS
URL: Setting <data:text/html,<p>Test>.protocol = 'view-source+data:foo : bar' Stuff after the first ':' is ignored PASS
<a>: Setting <https://example.net?lang=en-US>.hash = '##nav' PASS
<area>: Setting <http://:secret@example.net>.password = '' PASS
<area>: Setting <a:/foo>.hostname = 'example.net' Path-only URLs can gain a host FAIL
URL: Setting <http://example.net/path>.host = 'example.com:8080#stuff' Stuff after a # delimiter is ignored PASS
<area>: Setting <sc://x/>.hostname = '/' FAIL
<area>: Setting <https://example.net?lang=en-US#nav>.hash = '#' FAIL
<area>: Setting <ssh://me@example.net>.protocol = 'http' Can’t switch from non-special scheme to special FAIL
<area>: Setting <http://example.net>.host = '[::0:01]:2' IPv6 address syntax is normalized FAIL
<a>: Setting <http://example.net/path>.host = 'example.com:8080+2' Anything other than ASCII digit stops the port parser in a setter but is not an error PASS
<a>: Setting <http://example.net/path>.hostname = 'example.com?stuff' Stuff after a ? delimiter is ignored FAIL
<area>: Setting <http://example.net/path>.host = 'example.com:8080/stuff' Stuff after a / delimiter is ignored PASS
<area>: Setting <view-source+http://example.net/home?lang=fr#nav>.pathname = '\a\%2E\b\%2e.\c' \ is *not* a segment delimiter for non-'special' URLs FAIL
<a>: Setting <sc://x/>.hostname = '' Non-special scheme FAIL
<a>: Setting <https://example.net?lang=en-US#nav>.search = 'lang=fr' PASS
<area>: Setting <sc://x/>.host = '@' FAIL
<a>: Setting <http://:secret@example.net>.username = 'me' PASS
<a>: Setting <data:text/plain,Stuff>.hostname = 'example.net' Cannot-be-a-base means no password PASS
URL: Setting <view-source+http://example.net/path>.hostname = 'example.com\stuff' \ is not a delimiter for non-special schemes, but still forbidden in hosts FAIL
<a>: Setting <https://example.net#nav>.search = 'lang=fr' PASS
URL: Setting <sc://x/>.hostname = '\n' FAIL
URL: Setting <http://example.net/home?lang=fr#nav>.pathname = '\a\%2E\b\%2e.\c' \ is a segment delimiter for 'special' URLs PASS
URL: Setting <http://example.net/path>.host = 'example.com?stuff' Stuff after a ? delimiter is ignored FAIL
URL: Setting <a://example.net>.protocol = 'b,c' Only some punctuation is acceptable PASS
<a>: Setting <http://example.net:8080/path>.port = '65536' Port numbers are 16 bit integers, overflowing is an error FAIL
<a>: Setting <http://example.net/path>.port = '8080stuff2' Anything other than ASCII digit stops the port parser in a setter but is not an error PASS
<area>: Setting <ssh://me@example.net>.protocol = 'file' FAIL
<a>: Setting <http://example.net/>.hostname = '[::1.2.3.4x]' FAIL
<area>: Setting <https://example.net?lang=en-US>.search = '' PASS
URL: Setting <sc://x/>.host = '/' FAIL
<area>: Setting <http://me:secret@example.net>.password = '' PASS
<area>: Setting <https://example.net?lang=en-US#nav>.hash = '' PASS
<area>: Setting <https://example.net?lang=en-US#nav>.hash = '#main' PASS
<a>: Setting <http://example.net>.password = '�\t\n\r� !"#$%&'()*+,-./09:;<=>?@AZ[\]^_\az{ }~���Éé' UTF-8 percent encoding with the userinfo encode set.`
<a>: Setting <data:text/html,<p>Test>.protocol = 'view-source+data:foo : bar' Stuff after the first ':' is ignored PASS
<area>: Setting <https://example.net#nav>.pathname = '../home' PASS
<a>: Setting <http://example.net:8080>.port = '80' Default port number is removed PASS
<a>: Setting <http://example.net/path>.port = '8080\stuff' Stuff after a \ delimiter is ignored for special schemes PASS
<a>: Setting <http://example.net/path>.host = 'example.com:8080\stuff' Stuff after a \ delimiter is ignored for special schemes PASS
<a>: Setting <sc://x/>.hostname = '/' FAIL
<area>: Setting <a://example.net>.protocol = 'bC0+-.' PASS
URL: Setting <https://example.net>.hash = 'main' PASS
URL: Setting <http://example.net/path>.port = '8080/stuff' Stuff after a / delimiter is ignored PASS
<a>: Setting <https://example.net>.protocol = 's' FAIL
<a>: Setting <http://example.net/path>.hostname = 'example.com/stuff' Stuff after a / delimiter is ignored FAIL
<area>: Setting <sc://x/>.host = '\r' FAIL
URL: Setting <view-source+http://example.net/path>.host = 'example.com\stuff' \ is not a delimiter for non-special schemes, but still forbidden in hosts FAIL
URL: Setting <http://example.net:8080/path>.port = '65536' Port numbers are 16 bit integers, overflowing is an error FAIL
<area>: Setting <https://example.net>.protocol = 's' FAIL
<area>: Setting <sc://x/>.host = '#' FAIL
<area>: Setting <http://example.net/>.hostname = '[::1.]' FAIL
<area>: Setting <http://example.net/path>.host = 'example.com:8080+2' Anything other than ASCII digit stops the port parser in a setter but is not an error PASS
URL: Setting <http://example.net/path>.host = 'example.com#stuff' Stuff after a # delimiter is ignored FAIL
URL: Setting <https://example.net?lang=en-US#nav>.search = '?lang=fr' PASS
URL: Setting <a://example.net>.protocol = 'bC0+-.' PASS
<a>: Setting <http://example.net/>.host = '[::1.2.3.]' FAIL
<a>: Setting <http://example.net>.protocol = 'https:foo : bar' Stuff after the first ':' is ignored PASS
<area>: Setting <a://example.net>.protocol = 'b' PASS
<area>: Setting <sc://example.net>.pathname = '#' # needs to be encoded, non-special scheme FAIL
URL: Setting <https://example.net>.protocol = 's' FAIL
<area>: Setting <http://example.net:8080/path>.port = '65536' Port numbers are 16 bit integers, overflowing is an error FAIL
<area>: Setting <http://example.net>.host = 'example.com:80' Default port number is removed PASS
<a>: Setting <https://example.net:4433>.port = '443' Default port number is removed PASS
<area>: Setting <https://example.net?lang=en-US#nav>.search = 'lang=fr' PASS
<a>: Setting <http://example.net>.pathname = '#' # needs to be encoded PASS
<a>: Setting <https://example.net#nav>.pathname = 'home' PASS
<area>: Setting <http://example.net/path>.port = '8080\stuff' Stuff after a \ delimiter is ignored for special schemes PASS
URL: Setting <mailto:you@example.net>.username = 'me' Cannot-be-a-base means no username PASS
URL: Setting <http://example.net:8080>.hostname = '0x7F000001' IPv4 address syntax is normalized PASS
<area>: Setting <mailto:me@example.net>.protocol = 'http' Cannot-be-a-base URL doesn’t have a host, but URL in a special scheme must. FAIL
<area>: Setting <https://example.net#nav>.hash = 'main' PASS
<a>: Setting <sc://x/>.host = ' ' FAIL
URL: Setting <http://example.net>.host = '' The empty host is not valid for special schemes PASS
<area>: Setting <http://example.net/path>.hostname = 'example.com:8080' Stuff after a : delimiter is ignored FAIL
<area>: Setting <http://example.net/path>.hostname = 'example.com#stuff' Stuff after a # delimiter is ignored FAIL
<a>: Setting <http://example.net>.search = '%c3%89té' Bytes already percent-encoded are left as-is PASS
<a>: Setting <http://example.net/>.hostname = '[::1.]' FAIL
URL: Setting <http://example.net>.protocol = 'b' Can’t switch from special scheme to non-special FAIL
<a>: Setting <http://example.net>.username = 'me' PASS
<area>: Setting <sc://x/>.host = '' Non-special scheme FAIL
<area>: Setting <sc://x/>.hostname = '\n' FAIL
<a>: Setting <http://example.net/path>.host = 'example.com\stuff' Stuff after a \ delimiter is ignored for special schemes FAIL
URL: Setting <http://me@example.net>.password = 'secret' PASS
URL: Setting <http://:secret@example.net>.password = '' PASS
URL: Setting <http://example.net:8080>.port = '' Port number is removed if empty is the new value FAIL
URL: Setting <ssh://me@example.net>.protocol = 'file' FAIL
URL: Setting <http://example.net/path>.hostname = 'example.com\stuff' Stuff after a \ delimiter is ignored for special schemes FAIL
URL: Setting <http://example.net>.port = '8080' PASS
<a>: Setting <http://example.net:8080>.hostname = 'example.com' PASS
URL: Setting <nonsense:///test>.protocol = 'https' FAIL
<area>: Setting <http://example.net>.username = 'me' PASS
<area>: Setting <view-source+http://example.net/foo>.hostname = '' The empty host is OK for non-special schemes FAIL
<a>: Setting <a://example.net>.protocol = '0b' No leading digit PASS
<a>: Setting <sc://example.net>.pathname = '#' # needs to be encoded, non-special scheme FAIL
<area>: Setting <https://example.net>.hash = 'main' PASS
<area>: Setting <sc://x/>.host = '\t' FAIL
URL: Setting <https://example.net#nav>.pathname = '../home' PASS
<a>: Setting <unix:/run/foo.socket?timeout=10>.pathname = '/var/log/../run/bar.socket' FAIL
<a>: Setting <mailto:you@example.net>.username = 'me' Cannot-be-a-base means no username PASS
<area>: Setting <http://example.net>.password = '�\t\n\r� !"#$%&'()*+,-./09:;<=>?@AZ[\]^_\az{ }~���Éé' UTF-8 percent encoding with the userinfo encode set.`
<area>: Setting <sc://x/>.host = '?' FAIL
URL: Setting <http://example.net/path>.port = '8080stuff2' Anything other than ASCII digit stops the port parser in a setter but is not an error PASS
<a>: Setting <http://example.net:8080>.hostname = '0x7F000001' IPv4 address syntax is normalized PASS
URL: Setting <sc://x/>.hostname = '@' FAIL
<area>: Setting <http://example.net/path>.hostname = 'example.com?stuff' Stuff after a ? delimiter is ignored FAIL
<a>: Setting <sc://x/>.host = '\t' FAIL
<area>: Setting <a:/>.search = '�\t\n\r� !"#$%&'()*+,-./09:;<=>?@AZ[\]^_\az{ }~���Éé' UTF-8 percent encoding with the query encode set. Tabs and newlines are removed.`
<a>: Setting <ssh://me@example.net>.protocol = 'gopher' FAIL
<area>: Setting <view-source+http://example.net/path>.host = 'example.com\stuff' \ is not a delimiter for non-special schemes, but still forbidden in hosts FAIL
<area>: Setting <sc://x/>.host = ' ' FAIL
<area>: Setting <http://example.net/path>.host = 'example.com/stuff' Stuff after a / delimiter is ignored FAIL
<a>: Setting <sc://x/>.host = '' Non-special scheme FAIL
URL: Setting <http://example.net/path>.host = 'example.com:8080+2' Anything other than ASCII digit stops the port parser in a setter but is not an error PASS
<a>: Setting <mailto:me@example.net>.pathname = '/foo' Cannot-be-a-base don’t have a path PASS
URL: Setting <https://example.net?lang=en-US#nav>.search = '' PASS
URL: Setting <ftp://example.net>.protocol = 'test' FAIL
URL: Setting <sc://example.net>.pathname = '#' # needs to be encoded, non-special scheme FAIL
<a>: Setting <http://example.net/path>.port = '8080/stuff' Stuff after a / delimiter is ignored PASS
URL: Setting <sc://x/>.host = '' Non-special scheme FAIL
<a>: Setting <sc://x/>.host = '?' FAIL
<area>: Setting <http://me@example.net>.username = '' PASS
<a>: Setting <a://example.net>.protocol = 'b,c' Only some punctuation is acceptable PASS
URL: Setting <sc://x/>.hostname = ' ' FAIL
<a>: Setting <http://example.net/path>.host = 'example.com:8080#stuff' Stuff after a # delimiter is ignored PASS
<a>: Setting <http://example.net:8080>.host = 'example.com:' Port number is unchanged if not specified FAIL
<area>: Setting <https://example.net#nav>.search = 'lang=fr' PASS
<area>: Setting <https://example.net?lang=en-US#nav>.search = '?' FAIL
URL: Setting <mailto:me@example.net>.pathname = '/foo' Cannot-be-a-base don’t have a path PASS
<a>: Setting <https://example.net>.host = 'example.com:443' Default port number is removed PASS
<area>: Setting <http://example.net>.hostname = '[::0:01]' IPv6 address syntax is normalized PASS
<a>: Setting <http://example.net>.host = '[::0:01]:2' IPv6 address syntax is normalized FAIL
<a>: Setting <sc://x/>.host = '@' FAIL
URL: Setting <http://me:secret@example.net>.username = '' PASS
URL: Setting <sc://x/>.hostname = '\t' FAIL
URL: Setting <https://example.net:4433>.port = '443' Default port number is removed PASS
URL: Setting <https://example.net>.host = 'example.com:80' Default port number is only removed for the relevant scheme PASS
URL: Setting <http://example.net/>.hostname = '[::1.2.3.]' FAIL
<area>: Setting <http://example.net:8080>.hostname = 'example.com' PASS
<a>: Setting <view-source+http://example.net/foo>.hostname = '' The empty host is OK for non-special schemes FAIL
URL: Setting <a:/>.pathname = '�\t\n\r� !"#$%&'()*+,-./09:;<=>?@AZ[\]^_\az{ }~���Éé' UTF-8 percent encoding with the default encode set. Tabs and newlines are removed.`
<a>: Setting <http://example.net/path>.hostname = 'example.com#stuff' Stuff after a # delimiter is ignored FAIL
URL: Setting <view-source+http://example.net/path>.port = '8080stuff2' Anything other than ASCII digit stops the port parser in a setter but is not an error FAIL
<a>: Setting <http://example.net>.host = 'example.com:8080' PASS
<a>: Setting <http://example.net>.host = '0x7F000001:8080' IPv4 address syntax is normalized PASS
URL: Setting <http://example.net>.username = '�\t\n\r� !"#$%&'()*+,-./09:;<=>?@AZ[\]^_\az{ }~���Éé' UTF-8 percent encoding with the userinfo encode set.`
<a>: Setting <http://example.net/>.hostname = '[::1.2.]' FAIL
URL: Setting <https://example.net?lang=en-US#nav>.hash = '' PASS
URL: Setting <http://example.net/>.host = '[google.com]' Broken IPv6 FAIL
<a>: Setting <https://example.net?lang=en-US#nav>.hash = '#main' PASS
URL: Setting <a://example.net>.protocol = '0b' No leading digit PASS
<a>: Setting <http://me@example.net>.password = 'secret' PASS
<a>: Setting <http://example.net>.hostname = '[::0:01]' IPv6 address syntax is normalized PASS
<area>: Setting <http://example.net>.pathname = '?' ? needs to be encoded PASS
<area>: Setting <http://example.net/path>.port = '8080?stuff' Stuff after a ? delimiter is ignored PASS
<area>: Setting <http://example.net>.username = '%c3%89té' Bytes already percent-encoded are left as-is. PASS
URL: Setting <sc://x/>.hostname = '?' FAIL
URL: Setting <http://example.net>.protocol = 'https:foo : bar' Stuff after the first ':' is ignored PASS
<area>: Setting <http://example.net>.pathname = '#' # needs to be encoded PASS
URL: Setting <http://example.net/path>.host = 'example.com:8080/stuff' Stuff after a / delimiter is ignored PASS
<a>: Setting <http://example.net>.username = '�\t\n\r� !"#$%&'()*+,-./09:;<=>?@AZ[\]^_\az{ }~���Éé' UTF-8 percent encoding with the userinfo encode set.`
URL: Setting <sc://x/>.hostname = '' Non-special scheme FAIL
<a>: Setting <sc://example.net>.pathname = '?' ? needs to be encoded, non-special scheme FAIL
URL: Setting <view-source+http://example.net/foo>.host = '' The empty host is OK for non-special schemes FAIL
<a>: Setting <sc://x/>.host = '\r' FAIL
<a>: Setting <http://example.net>.hash = '%c3%89té' Bytes already percent-encoded are left as-is FAIL
<area>: Setting <http://example.net>.pathname = '%2e%2E%c3%89té' Bytes already percent-encoded are left as-is, including %2E outside dotted segments. FAIL
URL: Setting <http://example.net/>.hostname = '[::1.2.]' FAIL
<area>: Setting <http://example.net:8080>.host = 'example.com' Port number is unchanged if not specified in the new value PASS
URL: Setting <http://example.net/>.hostname = '[google.com]' Broken IPv6 FAIL
<a>: Setting <http://example.net/path>.host = 'example.com/stuff' Stuff after a / delimiter is ignored FAIL
<area>: Setting <http://example.net>.protocol = 'https:foo : bar' Stuff after the first ':' is ignored PASS
<a>: Setting <http://example.net/path>.port = '8080?stuff' Stuff after a ? delimiter is ignored PASS
URL: Setting <https://example.net#nav>.hash = 'main' PASS
<a>: Setting <http://example.net>.port = '8080' PASS
<a>: Setting <sc://x/>.host = '\n' FAIL
<a>: Setting <mailto:me@example.net>.password = 'secret' Cannot-be-a-base means no password PASS
URL: Setting <http://example.net/path>.port = '8080+2' Anything other than ASCII digit stops the port parser in a setter but is not an error PASS
<a>: Setting <http://example.net/path>.port = '8080#stuff' Stuff after a # delimiter is ignored PASS
URL: Setting <https://example.net?lang=en-US>.hash = '##nav' PASS
<a>: Setting <http://me@example.net>.username = '' PASS
URL: Setting <data:text/plain,Stuff>.hostname = 'example.net' Cannot-be-a-base means no password PASS
URL: Setting <http://example.net/path>.host = 'example.com:65536' Port numbers are 16 bit integers, overflowing is an error. Hostname is still set, though. FAIL
<area>: Setting <https://example.net:4433>.port = '443' Default port number is removed PASS
<area>: Setting <http://example.net/>.hostname = '[::1.2.]' FAIL
<a>: Setting <https://example.net?lang=en-US>.search = '' PASS
URL: Setting <http://example.net/path>.host = 'example.com/stuff' Stuff after a / delimiter is ignored FAIL
URL: Setting <https://example.net?lang=en-US#nav>.search = '??lang=fr' FAIL
URL: Setting <http://example.net>.host = 'example.com:8080' PASS
URL: Setting <http://example.net>.hostname = '' The empty host is not valid for special schemes PASS
<area>: Setting <a://example.net>.protocol = 'B' Upper-case ASCII is lower-cased PASS
<area>: Setting <a://example.net>.protocol = 'é' Non-ASCII is rejected PASS
URL: Setting <view-source+http://example.net/foo>.hostname = '' The empty host is OK for non-special schemes FAIL
<area>: Setting <http://example.net/path>.host = 'example.com:8080stuff2' Anything other than ASCII digit stops the port parser in a setter but is not an error PASS
<area>: Setting <http://example.net:8080>.host = 'example.com:' Port number is unchanged if not specified FAIL
<area>: Setting <data:text/html,<p>Test>.protocol = 'view-source+data:foo : bar' Stuff after the first ':' is ignored PASS
URL: Setting <sc://x/>.hostname = '#' FAIL
URL: Setting <sc://x/>.host = '\r' FAIL
<area>: Setting <sc://x/>.hostname = ' ' FAIL
URL: Setting <sc://x/>.hostname = '\r' FAIL
URL: Setting <sc://x/>.host = '#' FAIL
<a>: Setting <http://me:secret@example.net>.password = '' PASS
URL: Setting <http://example.net/>.host = '[::1.2.3.]' FAIL
<a>: Setting <http://example.net>.pathname = '?' ? needs to be encoded PASS
<area>: Setting <http://example.net/path>.hostname = 'example.com\stuff' Stuff after a \ delimiter is ignored for special schemes FAIL
<a>: Setting <http://example.net/path>.hostname = 'example.com\stuff' Stuff after a \ delimiter is ignored for special schemes FAIL
<a>: Setting <http://:secret@example.net>.password = '' PASS
URL: Setting <http://example.net:8080>.hostname = 'example.com' PASS
<area>: Setting <sc://x/>.hostname = '\t' FAIL
<a>: Setting <view-source+http://example.net/foo>.host = '' The empty host is OK for non-special schemes FAIL
<a>: Setting <http://example.net>.host = 'example.com:80' Default port number is removed PASS
URL: Setting <https://example.net?lang=en-US#nav>.hash = '#main' PASS
<a>: Setting <a:/foo>.hostname = 'example.net' Path-only URLs can gain a host FAIL
<area>: Setting <http://example.net>.search = '%c3%89té' Bytes already percent-encoded are left as-is PASS
URL: Setting <http://example.net>.password = '%c3%89té' Bytes already percent-encoded are left as-is. PASS
<area>: Setting <http://me:secret@example.net>.username = '' PASS
<area>: Setting <http://example.net/>.hostname = '[::1.2.3.]' FAIL
URL: Setting <http://example.net/path>.hostname = 'example.com/stuff' Stuff after a / delimiter is ignored FAIL
<area>: Setting <https://example.net>.host = 'example.com:80' Default port number is only removed for the relevant scheme PASS
<a>: Setting <http://example.net:8080/path>.hostname = 'example.com:' Stuff after a : delimiter is ignored FAIL
<area>: Setting <http://example.net/>.host = '[::1.2.3.]' FAIL
<area>: Setting <unix:/run/foo.socket>.username = 'me' No host means no username PASS
URL: Setting <a:/foo>.host = 'example.net' Path-only URLs can gain a host FAIL
<a>: Setting <http://example.net/>.hostname = '[::1.2.3.]' FAIL
<area>: Setting <http://example.net/>.host = '[::1.2.3.4x]' FAIL
URL: Setting <http://example.net>.username = 'me' PASS
URL: Setting <http://example.net>.password = 'secret' PASS
URL: Setting <http://example.net/path>.host = 'example.com:65535' Port numbers are 16 bit integers PASS
URL: Setting <http://example.net>.search = '%c3%89té' Bytes already percent-encoded are left as-is PASS
<area>: Setting <http://example.net:8080/path>.hostname = 'example.com:' Stuff after a : delimiter is ignored FAIL
<area>: Setting <sc://x/>.host = '\n' FAIL
<a>: Setting <a:/>.pathname = '�\t\n\r� !"#$%&'()*+,-./09:;<=>?@AZ[\]^_\az{ }~���Éé' UTF-8 percent encoding with the default encode set. Tabs and newlines are removed.`
URL: Setting <mailto:me@example.net>.protocol = 'http' Cannot-be-a-base URL doesn’t have a host, but URL in a special scheme must. FAIL
<area>: Setting <sc://x/>.hostname = '?' FAIL
<a>: Setting <unix:/run/foo.socket>.password = 'secret' No host means no password PASS
URL: Setting <mailto:me@example.net>.host = 'example.com' Cannot-be-a-base means no host PASS
URL: Setting <ssh://me@example.net>.protocol = 'gopher' FAIL
URL: Setting <http://:secret@example.net>.username = 'me' PASS
<a>: Setting <http://example.net/path>.port = '65535' Port numbers are 16 bit integers PASS
URL: Setting <http://example.net/path>.hostname = 'example.com?stuff' Stuff after a ? delimiter is ignored FAIL
URL: Setting <http://example.net/>.host = '[::1.2.3.4x]' FAIL
<a>: Setting <http://example.net/path>.host = 'example.com?stuff' Stuff after a ? delimiter is ignored FAIL
<area>: Setting <http://example.net/path>.host = 'example.com:65535' Port numbers are 16 bit integers PASS
URL: Setting <http://example.net/path>.port = '8080#stuff' Stuff after a # delimiter is ignored PASS
URL: Setting <a:/>.search = '�\t\n\r� !"#$%&'()*+,-./09:;<=>?@AZ[\]^_\az{ }~���Éé' UTF-8 percent encoding with the query encode set. Tabs and newlines are removed.`
URL: Setting <http://example.net>.pathname = '%2e%2E%c3%89té' Bytes already percent-encoded are left as-is, including %2E outside dotted segments. FAIL
URL: Setting <unix:/run/foo.socket>.username = 'me' No host means no username PASS
/url/url-origin.html
Subtest Results
OK
Origin parsing: <about:/../> against <about:blank> PASS
Origin parsing: <test.txt> against <http://www.example.com/test> PASS
Origin parsing: <中/test.txt> against <http://www.example.com/test> PASS
Origin parsing: <foo://> against <http://example.org/foo/bar> FAIL
Origin parsing: <http://[2001::1]:80> against <http://example.org/foo/bar> PASS
Origin parsing: < \t> against <http://example.org/foo/bar> PASS
Origin parsing: <http://www/foo/%2E/html> against <about:blank> PASS
Origin parsing: <http://facebook.com/?foo=%7B%22abc%22> against <about:blank> PASS
Origin parsing: <?x> against <sc://ñ> FAIL
Origin parsing: <./test.txt> against <http://www.example.com/test> PASS
Origin parsing: <http:foo.com> against <http://example.org/foo/bar> PASS
Origin parsing: <wss:/example.com/> against <http://example.org/foo/bar> PASS
Origin parsing: <wss:/example.com/> against <about:blank> PASS
Origin parsing: <https:example.com/> against <about:blank> PASS
Origin parsing: <#i> against <sc:sd> FAIL
Origin parsing: <https:/example.com/> against <about:blank> PASS
Origin parsing: <wss:example.com/> against <http://example.org/foo/bar> PASS
Origin parsing: <data:example.com/> against <about:blank> PASS
Origin parsing: <../i> against <sc://ho/pa> FAIL
Origin parsing: <#\> against <http://example.org/foo/bar> PASS
Origin parsing: <http://www.@pple.com> against <about:blank> PASS
Origin parsing: <http://999999999> against <http://other.com/> PASS
Origin parsing: <http://example.com/foo/../../..> against <about:blank> PASS
Origin parsing: <http://example.com/‥/foo> against <about:blank> PASS
Origin parsing: <ftp:example.com/> against <http://example.org/foo/bar> PASS
Origin parsing: <sc://ñ> against <about:blank> FAIL
Origin parsing: <sc:\../> against <about:blank> FAIL
Origin parsing: <http://example.com//foo> against <about:blank> PASS
Origin parsing: <ftp:/example.com/> against <about:blank> PASS
Origin parsing: <http://example.com/foo%2> against <about:blank> PASS
Origin parsing: <#i> against <sc://ho/pa> FAIL
Origin parsing: <http://foo.com/\@> against <http://example.org/foo/bar> PASS
Origin parsing: <:> against <http://example.org/foo/bar> PASS
Origin parsing: <http:@www.example.com> against <about:blank> PASS
Origin parsing: <:foo.com/> against <http://example.org/foo/bar> PASS
Origin parsing: <http://example.com/foo/../../../ton> against <about:blank> PASS
Origin parsing: <h\tt\nt\rp://h\to\ns\rt:9\t0\n0\r0/p\ta\nt\rh?q\tu\ne\rry#f\tr\na\rg> against <about:blank> PASS
Origin parsing: <http://example.com/foo/.> against <about:blank> PASS
Origin parsing: <https:example.com/> against <http://example.org/foo/bar> PASS
Origin parsing: <http://256.256.256.256.256> against <http://other.com/> PASS
Origin parsing: <?i> against <sc://ho/pa> FAIL
Origin parsing: <http://a:b@www.example.com> against <about:blank> PASS
Origin parsing: <https:/example.com/> against <http://example.org/foo/bar> PASS
Origin parsing: </> against <http://example.org/foo/bar> PASS
Origin parsing: <http://你好你好> against <http://other.com/> FAIL
Origin parsing: </test.txt> against <http://www.example.com/test> PASS
Origin parsing: <http://0Xc0.0250.01> against <http://other.com/> PASS
Origin parsing: <http:example.com/> against <http://example.org/foo/bar> PASS
Origin parsing: <#β> against <http://example.org/foo/bar> PASS
Origin parsing: <c:/foo> against <http://example.org/foo/bar> FAIL
Origin parsing: </a/ /c> against <http://example.org/foo/bar> PASS
Origin parsing: <http://192.0x00A80001> against <about:blank> PASS
Origin parsing: <foo:/bar.com/> against <http://example.org/foo/bar> FAIL
Origin parsing: <http://www.google.com/foo?bar=baz#> against <about:blank> PASS
Origin parsing: <https://foo:80/> against <about:blank> PASS
Origin parsing: <http://192.168.257> against <http://other.com/> PASS
Origin parsing: <http://example.com/foo%00%51> against <about:blank> FAIL
Origin parsing: <#/> against <http://example.org/foo/bar> PASS
Origin parsing: <ftps:example.com/> against <about:blank> FAIL
Origin parsing: <http://foo/abcd?efgh?ijkl> against <http://example.org/foo/bar> PASS
Origin parsing: <http://example.com/foo/%2e> against <about:blank> PASS
Origin parsing: <http://example.com/foo/%2e./%2e%2e/.%2e/%2e.bar> against <about:blank> PASS
Origin parsing: <http://@pple.com> against <about:blank> PASS
Origin parsing: <http://192.168.257.com> against <http://other.com/> PASS
Origin parsing: <http://0xffffffff> against <http://other.com/> PASS
Origin parsing: <http://example.com////../..> against <about:blank> PASS
Origin parsing: <//www.example2.com> against <http://www.example.com/test> PASS
Origin parsing: <http://:@www.example.com> against <about:blank> PASS
Origin parsing: <#> against <http://example.org/foo/bar> PASS
Origin parsing: <http::@c:29> against <http://example.org/foo/bar> PASS
Origin parsing: <gopher:example.com/> against <about:blank> PASS
Origin parsing: <wss:example.com/> against <about:blank> PASS
Origin parsing: <#i> against <sc:sd/sd> FAIL
Origin parsing: <http://foo:80/> against <about:blank> PASS
Origin parsing: <gopher:/example.com/> against <http://example.org/foo/bar> PASS
Origin parsing: <http://example.com/foo/bar/..> against <about:blank> PASS
Origin parsing: <mailto:/../> against <about:blank> FAIL
Origin parsing: < foo.com > against <http://example.org/foo/bar> PASS
Origin parsing: </a%2fc> against <http://example.org/foo/bar> PASS
Origin parsing: <ftp://foo:80/> against <about:blank> PASS
Origin parsing: <\t :foo.com \n> against <http://example.org/foo/bar> PASS
Origin parsing: <http://foo.com:b@d/> against <http://example.org/foo/bar> PASS
Origin parsing: <gopher://foo:70/> against <about:blank> PASS
Origin parsing: <http://example.com\\foo\\bar> against <about:blank> PASS
Origin parsing: <??a=b&c=d> against <http://example.org/foo/bar> PASS
Origin parsing: <http://a:@www.example.com> against <about:blank> PASS
Origin parsing: <http://example.com/foo\t�%91> against <about:blank> PASS
Origin parsing: <http://example.com/././foo> against <about:blank> PASS
Origin parsing: <../i> against <sc:/pa/pa> FAIL
Origin parsing: <madeupscheme:example.com/> against <about:blank> FAIL
Origin parsing: </a/%2f/c> against <http://example.org/foo/bar> PASS
Origin parsing: <sc://ñ#x> against <about:blank> FAIL
Origin parsing: <http://[0:0:0:0:0:0:13.1.68.3]> against <http://example.org/foo/bar> PASS
Origin parsing: <http://foo.bar/baz?qux#foo�bar> against <about:blank> PASS
Origin parsing: <http://example.com/foo%2zbar> against <about:blank> PASS
Origin parsing: <http:\\a\b:c\d@foo.com\> against <http://example.org/foo/bar> PASS
Origin parsing: <mailto:/example.com/> against <about:blank> FAIL
Origin parsing: <#x> against <about:blank> PASS
Origin parsing: <.> against <http://www.example.com/test> PASS
Origin parsing: <sc:> against <https://example.org/foo/bar> FAIL
Origin parsing: <http:/:b@www.example.com> against <about:blank> PASS
Origin parsing: <data:/../> against <about:blank> PASS
Origin parsing: <http://f:21/ b ? d # e > against <http://example.org/foo/bar> PASS
Origin parsing: <..> against <http://www.example.com/test> PASS
Origin parsing: </i> against <sc:/pa/pa> FAIL
Origin parsing: <non-special://:@test/x> against <about:blank> FAIL
Origin parsing: <//foo/bar> against <http://example.org/foo/bar> PASS
Origin parsing: <../../test.txt> against <http://www.example.com/test> PASS
Origin parsing: <http:example.com/> against <about:blank> PASS
Origin parsing: <non-special://test:@test/x> against <about:blank> FAIL
Origin parsing: <ftp://foo:21/> against <about:blank> PASS
Origin parsing: <http://www.google.com/foo?bar=baz# »> against <about:blank> PASS
Origin parsing: <http://example\t.\norg> against <http://example.org/foo/bar> PASS
Origin parsing: <https://@@@example> against <http://doesnotmatter/> PASS
Origin parsing: <:\> against <http://example.org/foo/bar> PASS
Origin parsing: <http:> against <http://example.org/foo/bar> PASS
Origin parsing: <[61:24:74]:98> against <http://example.org/foo/bar> PASS
Origin parsing: <http://f:00000000000000/c> against <http://example.org/foo/bar> FAIL
Origin parsing: <../i> against <sc:///pa/pa> FAIL
Origin parsing: <http://foo/path;a??e#f#g> against <http://example.org/foo/bar> PASS
Origin parsing: <http://example.com/foo/bar//..> against <about:blank> PASS
Origin parsing: <javascript:/../> against <about:blank> PASS
Origin parsing: <https://localhost:3000/jqueryui@1.2.3> against <about:blank> PASS
Origin parsing: </a/b/c> against <http://example.org/foo/bar> PASS
Origin parsing: <i> against <sc:/pa/pa> FAIL
Origin parsing: <i> against <sc://ho/pa> FAIL
Origin parsing: <sc://ñ.test/> against <about:blank> FAIL
Origin parsing: <a:\t foo.com> against <http://example.org/foo/bar> FAIL
Origin parsing: <?a=b&c=d> against <http://example.org/foo/bar> PASS
Origin parsing: <http://@www.example.com> against <about:blank> PASS
Origin parsing: <http://example.com/%7Ffp3%3Eju%3Dduvgw%3Dd> against <about:blank> PASS
Origin parsing: <http://user:pass@foo:21/bar;par?b#c> against <http://example.org/foo/bar> PASS
Origin parsing: <http://www.foo。bar.com> against <http://other.com/> PASS
Origin parsing: <madeupscheme:/example.com/> against <http://example.org/foo/bar> FAIL
Origin parsing: <:/> against <http://example.org/foo/bar> PASS
Origin parsing: <http://GOO​⁠goo.com> against <http://other.com/> PASS
Origin parsing: <x> against <sc://ñ> FAIL
Origin parsing: <data:example.com/> against <http://example.org/foo/bar> PASS
Origin parsing: <http://127.0.0.1:10100/relative_import.html> against <about:blank> PASS
Origin parsing: <#i> against <sc:/pa/pa> FAIL
Origin parsing: <http://example.com/foo> against <about:blank> PASS
Origin parsing: <#> against <test:test?test> FAIL
Origin parsing: <wss://foo:443/> against <about:blank> PASS
Origin parsing: <#x> against <data:,> PASS
Origin parsing: <foo://///////> against <http://example.org/foo/bar> FAIL
Origin parsing: <http://999999999.com> against <http://other.com/> PASS
Origin parsing: <http://www.google.com> against <about:blank> PASS
Origin parsing: <sc::a@example.net> against <about:blank> FAIL
Origin parsing: <http://[2001::1]> against <http://example.org/foo/bar> PASS
Origin parsing: </i> against <sc://ho/pa> FAIL
Origin parsing: <ws:example.com/> against <http://example.org/foo/bar> PASS
Origin parsing: <:foo.com\> against <http://example.org/foo/bar> PASS
Origin parsing: <ftps:example.com/> against <http://example.org/foo/bar> FAIL
Origin parsing: <https://%e2%98%83> against <about:blank> FAIL
Origin parsing: <http://www/foo%2Ehtml> against <about:blank> PASS
Origin parsing: <https://test:@test> against <about:blank> PASS
Origin parsing: <ftp:example.com/> against <about:blank> PASS
Origin parsing: <http://256.com> against <http://other.com/> PASS
Origin parsing: <http://example.com/foo/bar//../..> against <about:blank> PASS
Origin parsing: </some/path> against <http://user@example.org/smth> PASS
Origin parsing: <ws://foo:815/> against <about:blank> PASS
Origin parsing: <http://\{}:`{}@h/`{}?`{}> against http://doesnotmatter/` PASS
Origin parsing: <http://256> against <http://other.com/> PASS
Origin parsing: <http://example.com/(%28:%3A%29)> against <about:blank> PASS
Origin parsing: <#i> against <sc:///pa/pa> FAIL
Origin parsing: <ftp://%e2%98%83> against <about:blank> FAIL
Origin parsing: <gopher://foo:443/> against <about:blank> PASS
Origin parsing: <http://example.com/foo\tbar> against <about:blank> PASS
Origin parsing: </some/path> against <http://user:pass@example.org:21/smth> PASS
Origin parsing: <http:/a:@www.example.com> against <about:blank> PASS
Origin parsing: <> against <http://user:pass@example.org:21/smth> PASS
Origin parsing: <http://foo/abcd#foo?bar> against <http://example.org/foo/bar> PASS
Origin parsing: <ws://foo:443/> against <about:blank> PASS
Origin parsing: <#x> against <mailto:x@x.com> FAIL
Origin parsing: <gopher:example.com/> against <http://example.org/foo/bar> PASS
Origin parsing: <http://example.com/foo/..bar> against <about:blank> PASS
Origin parsing: <../aaa/test.txt> against <http://www.example.com/test> PASS
Origin parsing: <http://10000000000.com> against <http://other.com/> PASS
Origin parsing: <javascript:/example.com/> against <about:blank> PASS
Origin parsing: <http://example.com/foo%2©zbar> against <about:blank> PASS
Origin parsing: <http::b@www.example.com> against <about:blank> PASS
Origin parsing: <http://Go.com> against <http://other.com/> PASS
Origin parsing: <ftps:/example.com/> against <about:blank> FAIL
Origin parsing: <mailto:example.com/> against <http://example.org/foo/bar> FAIL
Origin parsing: <http://example.com/foo%> against <about:blank> PASS
Origin parsing: <https://:@test> against <about:blank> PASS
Origin parsing: <http://ExAmPlE.CoM> against <http://other.com/> PASS
Origin parsing: <http:\\foo.com\> against <http://example.org/foo/bar> PASS
Origin parsing: <http://[::127.0.0.1]> against <http://example.org/foo/bar> PASS
Origin parsing: <javascript:/example.com/> against <http://example.org/foo/bar> PASS
Origin parsing: <sc://ñ?x> against <about:blank> FAIL
Origin parsing: </:23> against <http://example.org/foo/bar> PASS
Origin parsing: <data:test# »> against <about:blank> PASS
Loading data… PASS
Origin parsing: <foo:/> against <http://example.org/foo/bar> FAIL
Origin parsing: <http://a:b@c:29/d> against <http://example.org/foo/bar> PASS
Origin parsing: <ws:/example.com/> against <http://example.org/foo/bar> PASS
Origin parsing: <::23> against <http://example.org/foo/bar> PASS
Origin parsing: <ftps:/example.com/> against <http://example.org/foo/bar> FAIL
Origin parsing: <https://@test@test@example:800/> against <http://doesnotmatter/> PASS
Origin parsing: <foo:////://///> against <http://example.org/foo/bar> FAIL
Origin parsing: <madeupscheme:example.com/> against <http://example.org/foo/bar> FAIL
Origin parsing: <::> against <http://example.org/foo/bar> PASS
Origin parsing: <http:a:@www.example.com> against <about:blank> PASS
Origin parsing: <http://f:00000000000000000000080/c> against <http://example.org/foo/bar> PASS
Origin parsing: <http:\\www.google.com\foo> against <about:blank> PASS
Origin parsing: <?> against <http://example.org/foo/bar> PASS
Origin parsing: <foo://///////bar.com/> against <http://example.org/foo/bar> FAIL
Origin parsing: <http://%30%78%63%30%2e%30%32%35%30.01> against <http://other.com/> PASS
Origin parsing: <mailto:/example.com/> against <http://example.org/foo/bar> FAIL
Origin parsing: <http://f:/c> against <http://example.org/foo/bar> PASS
Origin parsing: <mailto:example.com/> against <about:blank> FAIL
Origin parsing: <madeupscheme:/example.com/> against <about:blank> FAIL
Origin parsing: <http://f:\n/c> against <http://example.org/foo/bar> PASS
Origin parsing: <http://example.com/foo/bar/../ton> against <about:blank> PASS
Origin parsing: <ftp:/example.com/> against <http://example.org/foo/bar> PASS
Origin parsing: <http://example.com/%20foo> against <about:blank> PASS
Origin parsing: </> against <http://www.example.com/test> PASS
Origin parsing: <tel:1234567890> against <http://example.org/foo/bar> FAIL
Origin parsing: <?i> against <sc:/pa/pa> FAIL
Origin parsing: <wss://foo:80/> against <about:blank> PASS
Origin parsing: <data:/example.com/> against <http://example.org/foo/bar> PASS
Origin parsing: <http://example.com/foo/%2e%2> against <about:blank> PASS
Origin parsing: <#x> against <sc://ñ> FAIL
Origin parsing: <i> against <sc:///pa/pa> FAIL
Origin parsing: <../test.txt> against <http://www.example.com/test> PASS
Origin parsing: <http://example.com/‮/foo/‭/bar> against <about:blank> PASS
Origin parsing: <wss://foo:81/> against <about:blank> PASS
Origin parsing: <http://example.com/foo/./> against <about:blank> PASS
Origin parsing: <http:/@www.example.com> against <about:blank> PASS
Origin parsing: <http://example.com/foo/bar/../ton/../../a> against <about:blank> PASS
Origin parsing: </i> against <sc:///pa/pa> FAIL
Origin parsing: <http://example.com/foo%41%7a> against <about:blank> PASS
Origin parsing: <http://&a:foo(b]c@d:2/> against <http://example.org/foo/bar> PASS
Origin parsing: <http://%25DOMAIN:foobar@foodomain.com/> against <about:blank> PASS
Origin parsing: <http:/example.com/> against <http://example.org/foo/bar> PASS
Origin parsing: <ws:/example.com/> against <about:blank> PASS
Origin parsing: <ws://foo:81/> against <about:blank> PASS
Origin parsing: <ws:example.com/> against <about:blank> PASS
Origin parsing: <:a> against <http://example.org/foo/bar> PASS
Origin parsing: <https://foo:443/> against <about:blank> PASS
Origin parsing: <http://foo:💩@example.com/bar> against <http://other.com/> PASS
Origin parsing: <sc://�!"$&'()*+,-.;<=>^_\{ }~/> against about:blank`
Origin parsing: <gopher:/example.com/> against <about:blank> PASS
Origin parsing: <javascript:example.com/> against <http://example.org/foo/bar> PASS
Origin parsing: <http://example.com/@asdf%40> against <about:blank> PASS
Origin parsing: <http://::@c@d:2> against <http://example.org/foo/bar> PASS
Origin parsing: <http://example.com/你好你好> against <about:blank> PASS
Origin parsing: <> against <http://example.org/foo/bar> PASS
Origin parsing: <http://4294967295> against <http://other.com/> PASS
Origin parsing: <http://example.com/./.foo> against <about:blank> PASS
Origin parsing: <http://www.example2.com> against <http://www.example.com/test> PASS
Origin parsing: <ws://foo:80/> against <about:blank> PASS
Origin parsing: <:#> against <http://example.org/foo/bar> PASS
Origin parsing: <http:/a:b@www.example.com> against <about:blank> PASS
Origin parsing: <http://foo:81/> against <about:blank> PASS
Origin parsing: <javascript:example.com/> against <about:blank> PASS
Origin parsing: <http://example.com/%3A%3a%3C%3c> against <about:blank> PASS
Origin parsing: <httpa://foo:80/> against <about:blank> FAIL
Origin parsing: <wss://foo:815/> against <about:blank> PASS
Origin parsing: <#> against <test:test> FAIL
Origin parsing: <data:text/html,test#test> against <http://example.org/foo/bar> PASS
Origin parsing: <http:/example.com/> against <about:blank> PASS
Origin parsing: <http://%30%78%63%30%2e%30%32%35%30.01%2e> against <http://other.com/> PASS
Origin parsing: <http://f:0/c> against <http://example.org/foo/bar> FAIL
Origin parsing: <http://example.com/foo/bar/../> against <about:blank> PASS
Origin parsing: <:23> against <http://example.org/foo/bar> PASS
Origin parsing: <http://:b@www.example.com> against <about:blank> PASS
Origin parsing: <http://[1:0::]> against <http://example.net/> PASS
Origin parsing: <data:/example.com/> against <about:blank> PASS
Origin parsing: <?i> against <sc:///pa/pa> FAIL
Origin parsing: <http:[61:27]/:foo> against <http://example.org/foo/bar> PASS
Origin parsing: <http:a:b@www.example.com> against <about:blank> PASS
Origin parsing: <#;?> against <http://example.org/foo/bar> PASS
/url/a-element-xhtml.xhtml
Subtest Results
ERROR
/url/a-element.html
Subtest Results
ERROR
/url/a-element-origin.html
Subtest Results
OK
Parsing origin: <about:/../> against <about:blank> PASS
Parsing origin: <javascript:/example.com/> against <about:blank> PASS
Parsing origin: <中/test.txt> against <http://www.example.com/test> PASS
Parsing origin: <foo://> against <http://example.org/foo/bar> FAIL
Parsing origin: <http://[2001::1]:80> against <http://example.org/foo/bar> PASS
Parsing origin: < \t> against <http://example.org/foo/bar> PASS
Parsing origin: <http://www/foo/%2E/html> against <about:blank> PASS
Parsing origin: <?x> against <sc://ñ> PASS
Parsing origin: <./test.txt> against <http://www.example.com/test> PASS
Parsing origin: <http://example.com/foo/bar//../..> against <about:blank> PASS
Parsing origin: <http:foo.com> against <http://example.org/foo/bar> PASS
Parsing origin: <wss:/example.com/> against <http://example.org/foo/bar> PASS
Parsing origin: <wss:/example.com/> against <about:blank> PASS
Parsing origin: <https:example.com/> against <about:blank> PASS
Parsing origin: <#i> against <sc:sd> FAIL
Parsing origin: <https:/example.com/> against <about:blank> PASS
Parsing origin: <wss:example.com/> against <http://example.org/foo/bar> PASS
Parsing origin: <data:example.com/> against <about:blank> PASS
Parsing origin: <../i> against <sc://ho/pa> FAIL
Parsing origin: <#\> against <http://example.org/foo/bar> PASS
Parsing origin: <http://www.@pple.com> against <about:blank> PASS
Parsing origin: <http://999999999> against <http://other.com/> PASS
Parsing origin: <http://example.com/foo/../../..> against <about:blank> PASS
Parsing origin: <ftp:example.com/> against <http://example.org/foo/bar> PASS
Parsing origin: <http://example.com/你好你好> against <about:blank> PASS
Parsing origin: <sc://ñ> against <about:blank> FAIL
Parsing origin: <http://4294967295> against <http://other.com/> PASS
Parsing origin: <http://www.example2.com> against <http://www.example.com/test> PASS
Parsing origin: <http://facebook.com/?foo=%7B%22abc%22> against <about:blank> PASS
Parsing origin: <http://example.com//foo> against <about:blank> PASS
Parsing origin: <ftp:/example.com/> against <about:blank> PASS
Parsing origin: <http://example.com/foo%2> against <about:blank> PASS
Parsing origin: <http://foo.com/\@> against <http://example.org/foo/bar> PASS
Parsing origin: <:> against <http://example.org/foo/bar> PASS
Parsing origin: <http:@www.example.com> against <about:blank> PASS
Parsing origin: <http://foo:💩@example.com/bar> against <http://other.com/> PASS
Parsing origin: <test.txt> against <http://www.example.com/test> PASS
Parsing origin: <:foo.com/> against <http://example.org/foo/bar> PASS
Parsing origin: <http://example.com/foo/../../../ton> against <about:blank> PASS
Parsing origin: <h\tt\nt\rp://h\to\ns\rt:9\t0\n0\r0/p\ta\nt\rh?q\tu\ne\rry#f\tr\na\rg> against <about:blank> PASS
Parsing origin: <http://example.com/foo/.> against <about:blank> PASS
Parsing origin: <https:example.com/> against <http://example.org/foo/bar> PASS
Parsing origin: <http://a:b@www.example.com> against <about:blank> PASS
Parsing origin: <https:/example.com/> against <http://example.org/foo/bar> PASS
Parsing origin: </> against <http://example.org/foo/bar> PASS
Parsing origin: <http://你好你好> against <http://other.com/> FAIL
Parsing origin: <http://www/foo%2Ehtml> against <about:blank> PASS
Parsing origin: <http://0Xc0.0250.01> against <http://other.com/> PASS
Parsing origin: <http:example.com/> against <http://example.org/foo/bar> PASS
Parsing origin: <#β> against <http://example.org/foo/bar> PASS
Parsing origin: <c:/foo> against <http://example.org/foo/bar> FAIL
Parsing origin: </a/ /c> against <http://example.org/foo/bar> PASS
Parsing origin: <http://192.0x00A80001> against <about:blank> PASS
Parsing origin: <foo:/bar.com/> against <http://example.org/foo/bar> FAIL
Parsing origin: <#/> against <http://example.org/foo/bar> PASS
Parsing origin: <http://www.google.com/foo?bar=baz#> against <about:blank> PASS
Parsing origin: <https://foo:80/> against <about:blank> PASS
Parsing origin: <http://example.com/foo%00%51> against <about:blank> FAIL
Loading data… PASS
Parsing origin: <ftps:example.com/> against <about:blank> FAIL
Parsing origin: <http://foo/abcd?efgh?ijkl> against <http://example.org/foo/bar> PASS
Parsing origin: <http://example.com/foo/%2e> against <about:blank> PASS
Parsing origin: <http://example.com/foo/%2e./%2e%2e/.%2e/%2e.bar> against <about:blank> PASS
Parsing origin: <ws://foo:80/> against <about:blank> PASS
Parsing origin: <http://192.168.257.com> against <http://other.com/> PASS
Parsing origin: <http://0xffffffff> against <http://other.com/> PASS
Parsing origin: <http://example.com////../..> against <about:blank> PASS
Parsing origin: <//www.example2.com> against <http://www.example.com/test> PASS
Parsing origin: <http://:@www.example.com> against <about:blank> PASS
Parsing origin: <#> against <http://example.org/foo/bar> PASS
Parsing origin: <http::@c:29> against <http://example.org/foo/bar> PASS
Parsing origin: <http://999999999.com> against <http://other.com/> PASS
Parsing origin: <gopher:example.com/> against <about:blank> PASS
Parsing origin: <wss:example.com/> against <about:blank> PASS
Parsing origin: <#i> against <sc:sd/sd> FAIL
Parsing origin: <http://foo:80/> against <about:blank> PASS
Parsing origin: <data:test# »> against <about:blank> PASS
Parsing origin: <gopher:/example.com/> against <http://example.org/foo/bar> PASS
Parsing origin: <http://example.com/foo/bar/..> against <about:blank> PASS
Parsing origin: <mailto:/../> against <about:blank> FAIL
Parsing origin: < foo.com > against <http://example.org/foo/bar> PASS
Parsing origin: </a%2fc> against <http://example.org/foo/bar> PASS
Parsing origin: <ftp://foo:80/> against <about:blank> PASS
Parsing origin: <\t :foo.com \n> against <http://example.org/foo/bar> PASS
Parsing origin: <http://foo.com:b@d/> against <http://example.org/foo/bar> PASS
Parsing origin: <http://256.256.256.256.256> against <http://other.com/> PASS
Parsing origin: <gopher://foo:70/> against <about:blank> PASS
Parsing origin: <http://example.com\\foo\\bar> against <about:blank> PASS
Parsing origin: <??a=b&c=d> against <http://example.org/foo/bar> PASS
Parsing origin: <http://a:@www.example.com> against <about:blank> PASS
Parsing origin: <ws:/example.com/> against <about:blank> PASS
Parsing origin: <http://example.com/././foo> against <about:blank> PASS
Parsing origin: <../i> against <sc:/pa/pa> FAIL
Parsing origin: <madeupscheme:example.com/> against <about:blank> FAIL
Parsing origin: </a/%2f/c> against <http://example.org/foo/bar> PASS
Parsing origin: <sc://ñ#x> against <about:blank> FAIL
Parsing origin: <http://[0:0:0:0:0:0:13.1.68.3]> against <http://example.org/foo/bar> PASS
Parsing origin: <http://example.com/‥/foo> against <about:blank> PASS
Parsing origin: <http://foo.bar/baz?qux#foo�bar> against <about:blank> PASS
Parsing origin: <http://example.com/foo%2zbar> against <about:blank> PASS
Parsing origin: <http:\\a\b:c\d@foo.com\> against <http://example.org/foo/bar> PASS
Parsing origin: <mailto:/example.com/> against <about:blank> FAIL
Parsing origin: <#x> against <about:blank> PASS
Parsing origin: <http:/:b@www.example.com> against <about:blank> PASS
Parsing origin: <http://192.168.257> against <http://other.com/> PASS
Parsing origin: <http://f:21/ b ? d # e > against <http://example.org/foo/bar> PASS
Parsing origin: <..> against <http://www.example.com/test> PASS
Parsing origin: </i> against <sc:/pa/pa> FAIL
Parsing origin: <non-special://:@test/x> against <about:blank> FAIL
Parsing origin: <//foo/bar> against <http://example.org/foo/bar> PASS
Parsing origin: <../../test.txt> against <http://www.example.com/test> PASS
Parsing origin: <http:example.com/> against <about:blank> PASS
Parsing origin: <non-special://test:@test/x> against <about:blank> FAIL
Parsing origin: <sc://ñ.test/> against <about:blank> FAIL
Parsing origin: <ftp://foo:21/> against <about:blank> PASS
Parsing origin: <http://www.google.com/foo?bar=baz# »> against <about:blank> PASS
Parsing origin: <http://example\t.\norg> against <http://example.org/foo/bar> PASS
Parsing origin: <https://@@@example> against <http://doesnotmatter/> PASS
Parsing origin: <:\> against <http://example.org/foo/bar> PASS
Parsing origin: <https://@test@test@example:800/> against <http://doesnotmatter/> PASS
Parsing origin: <?i> against <sc://ho/pa> FAIL
Parsing origin: <[61:24:74]:98> against <http://example.org/foo/bar> PASS
Parsing origin: <http://f:00000000000000/c> against <http://example.org/foo/bar> FAIL
Parsing origin: <http://10000000000.com> against <http://other.com/> PASS
Parsing origin: <http://foo/path;a??e#f#g> against <http://example.org/foo/bar> PASS
Parsing origin: <http://example.com/foo/bar//..> against <about:blank> PASS
Parsing origin: <javascript:/../> against <about:blank> PASS
Parsing origin: <https://localhost:3000/jqueryui@1.2.3> against <about:blank> PASS
Parsing origin: <i> against <sc://ho/pa> FAIL
Parsing origin: </a/b/c> against <http://example.org/foo/bar> PASS
Parsing origin: <i> against <sc:/pa/pa> FAIL
Parsing origin: <a:\t foo.com> against <http://example.org/foo/bar> FAIL
Parsing origin: <?a=b&c=d> against <http://example.org/foo/bar> PASS
Parsing origin: <http://@www.example.com> against <about:blank> PASS
Parsing origin: <http://example.com/%7Ffp3%3Eju%3Dduvgw%3Dd> against <about:blank> PASS
Parsing origin: <http://user:pass@foo:21/bar;par?b#c> against <http://example.org/foo/bar> PASS
Parsing origin: <http://[1:0::]> against <http://example.net/> PASS
Parsing origin: <http://www.foo。bar.com> against <http://other.com/> PASS
Parsing origin: <madeupscheme:/example.com/> against <http://example.org/foo/bar> FAIL
Parsing origin: <:/> against <http://example.org/foo/bar> PASS
Parsing origin: <http://GOO​⁠goo.com> against <http://other.com/> PASS
Parsing origin: <x> against <sc://ñ> PASS
Parsing origin: <http://example.com/foo\t�%91> against <about:blank> PASS
Parsing origin: <data:example.com/> against <http://example.org/foo/bar> PASS
Parsing origin: <http://127.0.0.1:10100/relative_import.html> against <about:blank> PASS
Parsing origin: <#x> against <sc://ñ> PASS
Parsing origin: <#i> against <sc:/pa/pa> FAIL
Parsing origin: <http://example.com/foo> against <about:blank> PASS
Parsing origin: <wss://foo:443/> against <about:blank> PASS
Parsing origin: <wss://foo:81/> against <about:blank> PASS
Parsing origin: <#x> against <data:,> PASS
Parsing origin: <foo://///////> against <http://example.org/foo/bar> FAIL
Parsing origin: <sc:\../> against <about:blank> FAIL
Parsing origin: <http://www.google.com> against <about:blank> PASS
Parsing origin: <sc::a@example.net> against <about:blank> FAIL
Parsing origin: <http://[2001::1]> against <http://example.org/foo/bar> PASS
Parsing origin: <sc:> against <https://example.org/foo/bar> FAIL
Parsing origin: <ws:example.com/> against <http://example.org/foo/bar> PASS
Parsing origin: <:foo.com\> against <http://example.org/foo/bar> PASS
Parsing origin: <ftps:example.com/> against <http://example.org/foo/bar> FAIL
Parsing origin: <https://%e2%98%83> against <about:blank> FAIL
Parsing origin: <https://test:@test> against <about:blank> PASS
Parsing origin: <ftp:example.com/> against <about:blank> PASS
Parsing origin: <data:/../> against <about:blank> PASS
Parsing origin: <http://example.com/(%28:%3A%29)> against <about:blank> PASS
Parsing origin: </some/path> against <http://user@example.org/smth> PASS
Parsing origin: <ws://foo:815/> against <about:blank> PASS
Parsing origin: <http://\{}:`{}@h/`{}?`{}> against http://doesnotmatter/` PASS
Parsing origin: <http://256> against <http://other.com/> PASS
Parsing origin: <#i> against <sc:///pa/pa> FAIL
Parsing origin: <gopher://foo:443/> against <about:blank> PASS
Parsing origin: <http://example.com/foo\tbar> against <about:blank> PASS
Parsing origin: </some/path> against <http://user:pass@example.org:21/smth> PASS
Parsing origin: <http:/a:@www.example.com> against <about:blank> PASS
Parsing origin: <http://foo/abcd#foo?bar> against <http://example.org/foo/bar> PASS
Parsing origin: <ws://foo:443/> against <about:blank> PASS
Parsing origin: <#x> against <mailto:x@x.com> FAIL
Parsing origin: <gopher:example.com/> against <http://example.org/foo/bar> PASS
Parsing origin: <http://example.com/foo/..bar> against <about:blank> PASS
Parsing origin: <../aaa/test.txt> against <http://www.example.com/test> PASS
Parsing origin: <http://example.com/foo%2©zbar> against <about:blank> PASS
Parsing origin: <http:> against <http://example.org/foo/bar> PASS
Parsing origin: <http::b@www.example.com> against <about:blank> PASS
Parsing origin: <http://Go.com> against <http://other.com/> PASS
Parsing origin: <ftps:/example.com/> against <about:blank> FAIL
Parsing origin: <mailto:example.com/> against <http://example.org/foo/bar> FAIL
Parsing origin: <http://example.com/foo%> against <about:blank> PASS
Parsing origin: <https://:@test> against <about:blank> PASS
Parsing origin: <http://ExAmPlE.CoM> against <http://other.com/> PASS
Parsing origin: </i> against <sc://ho/pa> FAIL
Parsing origin: <http:\\foo.com\> against <http://example.org/foo/bar> PASS
Parsing origin: <http://[::127.0.0.1]> against <http://example.org/foo/bar> PASS
Parsing origin: <javascript:/example.com/> against <http://example.org/foo/bar> PASS
Parsing origin: <sc://ñ?x> against <about:blank> FAIL
Parsing origin: </:23> against <http://example.org/foo/bar> PASS
Parsing origin: <foo:/> against <http://example.org/foo/bar> FAIL
Parsing origin: <http://@pple.com> against <about:blank> PASS
Parsing origin: <http://a:b@c:29/d> against <http://example.org/foo/bar> PASS
Parsing origin: </test.txt> against <http://www.example.com/test> PASS
Parsing origin: <ws:/example.com/> against <http://example.org/foo/bar> PASS
Parsing origin: <::23> against <http://example.org/foo/bar> PASS
Parsing origin: <.> against <http://www.example.com/test> PASS
Parsing origin: <ftps:/example.com/> against <http://example.org/foo/bar> FAIL
Parsing origin: <http://256.com> against <http://other.com/> PASS
Parsing origin: <foo:////://///> against <http://example.org/foo/bar> FAIL
Parsing origin: <madeupscheme:example.com/> against <http://example.org/foo/bar> FAIL
Parsing origin: <::> against <http://example.org/foo/bar> PASS
Parsing origin: <http:a:@www.example.com> against <about:blank> PASS
Parsing origin: <http://f:00000000000000000000080/c> against <http://example.org/foo/bar> PASS
Parsing origin: <http:\\www.google.com\foo> against <about:blank> PASS
Parsing origin: <?> against <http://example.org/foo/bar> PASS
Parsing origin: <foo://///////bar.com/> against <http://example.org/foo/bar> FAIL
Parsing origin: <mailto:/example.com/> against <http://example.org/foo/bar> FAIL
Parsing origin: <http://f:/c> against <http://example.org/foo/bar> PASS
Parsing origin: <mailto:example.com/> against <about:blank> FAIL
Parsing origin: <> against <http://user:pass@example.org:21/smth> PASS
Parsing origin: <http://f:\n/c> against <http://example.org/foo/bar> PASS
Parsing origin: <http://example.com/foo/bar/../ton> against <about:blank> PASS
Parsing origin: <ftp:/example.com/> against <http://example.org/foo/bar> PASS
Parsing origin: <#i> against <sc://ho/pa> FAIL
Parsing origin: <http://example.com/%20foo> against <about:blank> PASS
Parsing origin: </> against <http://www.example.com/test> PASS
Parsing origin: <tel:1234567890> against <http://example.org/foo/bar> FAIL
Parsing origin: <?i> against <sc:/pa/pa> FAIL
Parsing origin: <sc://�!"$&'()*+,-.;<=>^_\{ }~/> against about:blank`
Parsing origin: <wss://foo:80/> against <about:blank> PASS
Parsing origin: <data:/example.com/> against <http://example.org/foo/bar> PASS
Parsing origin: <http://example.com/foo/%2e%2> against <about:blank> PASS
Parsing origin: <i> against <sc:///pa/pa> FAIL
Parsing origin: <../test.txt> against <http://www.example.com/test> PASS
Parsing origin: <madeupscheme:/example.com/> against <about:blank> FAIL
Parsing origin: <http://example.com/‮/foo/‭/bar> against <about:blank> PASS
Parsing origin: <http://example.com/foo/./> against <about:blank> PASS
Parsing origin: <#> against <test:test?test> FAIL
Parsing origin: <http:/@www.example.com> against <about:blank> PASS
Parsing origin: <http://example.com/foo/bar/../ton/../../a> against <about:blank> PASS
Parsing origin: <http://example.com/foo%41%7a> against <about:blank> PASS
Parsing origin: <http://&a:foo(b]c@d:2/> against <http://example.org/foo/bar> PASS
Parsing origin: <http://%25DOMAIN:foobar@foodomain.com/> against <about:blank> PASS
Parsing origin: <http:/example.com/> against <http://example.org/foo/bar> PASS
Parsing origin: <ws://foo:81/> against <about:blank> PASS
Parsing origin: <ws:example.com/> against <about:blank> PASS
Parsing origin: <:a> against <http://example.org/foo/bar> PASS
Parsing origin: <https://foo:443/> against <about:blank> PASS
Parsing origin: <ftp://%e2%98%83> against <about:blank> FAIL
Parsing origin: <gopher:/example.com/> against <about:blank> PASS
Parsing origin: <javascript:example.com/> against <http://example.org/foo/bar> PASS
Parsing origin: <http://example.com/@asdf%40> against <about:blank> PASS
Parsing origin: <http://::@c@d:2> against <http://example.org/foo/bar> PASS
Parsing origin: <> against <http://example.org/foo/bar> PASS
Parsing origin: <http://example.com/./.foo> against <about:blank> PASS
Parsing origin: <../i> against <sc:///pa/pa> FAIL
Parsing origin: <:#> against <http://example.org/foo/bar> PASS
Parsing origin: </i> against <sc:///pa/pa> FAIL
Parsing origin: <http:/a:b@www.example.com> against <about:blank> PASS
Parsing origin: <http://foo:81/> against <about:blank> PASS
Parsing origin: <javascript:example.com/> against <about:blank> PASS
Parsing origin: <http://example.com/%3A%3a%3C%3c> against <about:blank> PASS
Parsing origin: <httpa://foo:80/> against <about:blank> FAIL
Parsing origin: <wss://foo:815/> against <about:blank> PASS
Parsing origin: <#> against <test:test> FAIL
Parsing origin: <data:text/html,test#test> against <http://example.org/foo/bar> PASS
Parsing origin: <http:/example.com/> against <about:blank> PASS
Parsing origin: <http://%30%78%63%30%2e%30%32%35%30.01> against <http://other.com/> PASS
Parsing origin: <http://%30%78%63%30%2e%30%32%35%30.01%2e> against <http://other.com/> PASS
Parsing origin: <http://f:0/c> against <http://example.org/foo/bar> FAIL
Parsing origin: <http://example.com/foo/bar/../> against <about:blank> PASS
Parsing origin: <:23> against <http://example.org/foo/bar> PASS
Parsing origin: <http://:b@www.example.com> against <about:blank> PASS
Parsing origin: <data:/example.com/> against <about:blank> PASS
Parsing origin: <?i> against <sc:///pa/pa> FAIL
Parsing origin: <http:[61:27]/:foo> against <http://example.org/foo/bar> PASS
Parsing origin: <http:a:b@www.example.com> against <about:blank> PASS
Parsing origin: <#;?> against <http://example.org/foo/bar> PASS
/url/a-element-origin-xhtml.xhtml
Subtest Results
OK
Parsing origin: <about:/../> against <about:blank> PASS
Parsing origin: <javascript:/example.com/> against <about:blank> PASS
Parsing origin: <中/test.txt> against <http://www.example.com/test> PASS
Parsing origin: <foo://> against <http://example.org/foo/bar> FAIL
Parsing origin: <http://[2001::1]:80> against <http://example.org/foo/bar> PASS
Parsing origin: < \t> against <http://example.org/foo/bar> PASS
Parsing origin: <http://www/foo/%2E/html> against <about:blank> PASS
Parsing origin: <?x> against <sc://ñ> PASS
Parsing origin: <./test.txt> against <http://www.example.com/test> PASS
Parsing origin: <http://example.com/foo/bar//../..> against <about:blank> PASS
Parsing origin: <http:foo.com> against <http://example.org/foo/bar> PASS
Parsing origin: <wss:/example.com/> against <http://example.org/foo/bar> PASS
Parsing origin: <wss:/example.com/> against <about:blank> PASS
Parsing origin: <https:example.com/> against <about:blank> PASS
Parsing origin: <#i> against <sc:sd> FAIL
Parsing origin: <https:/example.com/> against <about:blank> PASS
Parsing origin: <wss:example.com/> against <http://example.org/foo/bar> PASS
Parsing origin: <data:example.com/> against <about:blank> PASS
Parsing origin: <../i> against <sc://ho/pa> FAIL
Parsing origin: <#\> against <http://example.org/foo/bar> PASS
Parsing origin: <http://www.@pple.com> against <about:blank> PASS
Parsing origin: <http://999999999> against <http://other.com/> PASS
Parsing origin: <http://example.com/foo/../../..> against <about:blank> PASS
Parsing origin: <ftp:example.com/> against <http://example.org/foo/bar> PASS
Parsing origin: <http://example.com/你好你好> against <about:blank> PASS
Parsing origin: <sc://ñ> against <about:blank> FAIL
Parsing origin: <http://4294967295> against <http://other.com/> PASS
Parsing origin: <http://www.example2.com> against <http://www.example.com/test> PASS
Parsing origin: <http://facebook.com/?foo=%7B%22abc%22> against <about:blank> PASS
Parsing origin: <http://example.com//foo> against <about:blank> PASS
Parsing origin: <ftp:/example.com/> against <about:blank> PASS
Parsing origin: <http://example.com/foo%2> against <about:blank> PASS
Parsing origin: <http://foo.com/\@> against <http://example.org/foo/bar> PASS
Parsing origin: <:> against <http://example.org/foo/bar> PASS
Parsing origin: <http:@www.example.com> against <about:blank> PASS
Parsing origin: <http://foo:💩@example.com/bar> against <http://other.com/> PASS
Parsing origin: <test.txt> against <http://www.example.com/test> PASS
Parsing origin: <:foo.com/> against <http://example.org/foo/bar> PASS
Parsing origin: <http://example.com/foo/../../../ton> against <about:blank> PASS
Parsing origin: <h\tt\nt\rp://h\to\ns\rt:9\t0\n0\r0/p\ta\nt\rh?q\tu\ne\rry#f\tr\na\rg> against <about:blank> PASS
Parsing origin: <http://example.com/foo/.> against <about:blank> PASS
Parsing origin: <https:example.com/> against <http://example.org/foo/bar> PASS
Parsing origin: <http://a:b@www.example.com> against <about:blank> PASS
Parsing origin: <https:/example.com/> against <http://example.org/foo/bar> PASS
Parsing origin: </> against <http://example.org/foo/bar> PASS
Parsing origin: <http://你好你好> against <http://other.com/> FAIL
Parsing origin: <http://www/foo%2Ehtml> against <about:blank> PASS
Parsing origin: <http://0Xc0.0250.01> against <http://other.com/> PASS
Parsing origin: <http:example.com/> against <http://example.org/foo/bar> PASS
Parsing origin: <#β> against <http://example.org/foo/bar> PASS
Parsing origin: <c:/foo> against <http://example.org/foo/bar> FAIL
Parsing origin: </a/ /c> against <http://example.org/foo/bar> PASS
Parsing origin: <http://192.0x00A80001> against <about:blank> PASS
Parsing origin: <foo:/bar.com/> against <http://example.org/foo/bar> FAIL
Parsing origin: <#/> against <http://example.org/foo/bar> PASS
Parsing origin: <http://www.google.com/foo?bar=baz#> against <about:blank> PASS
Parsing origin: <https://foo:80/> against <about:blank> PASS
Parsing origin: <http://example.com/foo%00%51> against <about:blank> FAIL
Loading data… PASS
Parsing origin: <ftps:example.com/> against <about:blank> FAIL
Parsing origin: <http://foo/abcd?efgh?ijkl> against <http://example.org/foo/bar> PASS
Parsing origin: <http://example.com/foo/%2e> against <about:blank> PASS
Parsing origin: <http://example.com/foo/%2e./%2e%2e/.%2e/%2e.bar> against <about:blank> PASS
Parsing origin: <ws://foo:80/> against <about:blank> PASS
Parsing origin: <http://192.168.257.com> against <http://other.com/> PASS
Parsing origin: <http://0xffffffff> against <http://other.com/> PASS
Parsing origin: <http://example.com////../..> against <about:blank> PASS
Parsing origin: <//www.example2.com> against <http://www.example.com/test> PASS
Parsing origin: <http://:@www.example.com> against <about:blank> PASS
Parsing origin: <#> against <http://example.org/foo/bar> PASS
Parsing origin: <http::@c:29> against <http://example.org/foo/bar> PASS
Parsing origin: <http://999999999.com> against <http://other.com/> PASS
Parsing origin: <gopher:example.com/> against <about:blank> PASS
Parsing origin: <wss:example.com/> against <about:blank> PASS
Parsing origin: <#i> against <sc:sd/sd> FAIL
Parsing origin: <http://foo:80/> against <about:blank> PASS
Parsing origin: <data:test# »> against <about:blank> PASS
Parsing origin: <gopher:/example.com/> against <http://example.org/foo/bar> PASS
Parsing origin: <http://example.com/foo/bar/..> against <about:blank> PASS
Parsing origin: <mailto:/../> against <about:blank> FAIL
Parsing origin: < foo.com > against <http://example.org/foo/bar> PASS
Parsing origin: </a%2fc> against <http://example.org/foo/bar> PASS
Parsing origin: <ftp://foo:80/> against <about:blank> PASS
Parsing origin: <\t :foo.com \n> against <http://example.org/foo/bar> PASS
Parsing origin: <http://foo.com:b@d/> against <http://example.org/foo/bar> PASS
Parsing origin: <http://256.256.256.256.256> against <http://other.com/> PASS
Parsing origin: <gopher://foo:70/> against <about:blank> PASS
Parsing origin: <http://example.com\\foo\\bar> against <about:blank> PASS
Parsing origin: <??a=b&c=d> against <http://example.org/foo/bar> PASS
Parsing origin: <http://a:@www.example.com> against <about:blank> PASS
Parsing origin: <ws:/example.com/> against <about:blank> PASS
Parsing origin: <http://example.com/././foo> against <about:blank> PASS
Parsing origin: <../i> against <sc:/pa/pa> FAIL
Parsing origin: <madeupscheme:example.com/> against <about:blank> FAIL
Parsing origin: </a/%2f/c> against <http://example.org/foo/bar> PASS
Parsing origin: <sc://ñ#x> against <about:blank> FAIL
Parsing origin: <http://[0:0:0:0:0:0:13.1.68.3]> against <http://example.org/foo/bar> PASS
Parsing origin: <http://example.com/‥/foo> against <about:blank> PASS
Parsing origin: <http://foo.bar/baz?qux#foo�bar> against <about:blank> PASS
Parsing origin: <http://example.com/foo%2zbar> against <about:blank> PASS
Parsing origin: <http:\\a\b:c\d@foo.com\> against <http://example.org/foo/bar> PASS
Parsing origin: <mailto:/example.com/> against <about:blank> FAIL
Parsing origin: <#x> against <about:blank> PASS
Parsing origin: <http:/:b@www.example.com> against <about:blank> PASS
Parsing origin: <http://192.168.257> against <http://other.com/> PASS
Parsing origin: <http://f:21/ b ? d # e > against <http://example.org/foo/bar> PASS
Parsing origin: <..> against <http://www.example.com/test> PASS
Parsing origin: </i> against <sc:/pa/pa> FAIL
Parsing origin: <non-special://:@test/x> against <about:blank> FAIL
Parsing origin: <//foo/bar> against <http://example.org/foo/bar> PASS
Parsing origin: <../../test.txt> against <http://www.example.com/test> PASS
Parsing origin: <http:example.com/> against <about:blank> PASS
Parsing origin: <non-special://test:@test/x> against <about:blank> FAIL
Parsing origin: <sc://ñ.test/> against <about:blank> FAIL
Parsing origin: <ftp://foo:21/> against <about:blank> PASS
Parsing origin: <http://www.google.com/foo?bar=baz# »> against <about:blank> PASS
Parsing origin: <http://example\t.\norg> against <http://example.org/foo/bar> PASS
Parsing origin: <https://@@@example> against <http://doesnotmatter/> PASS
Parsing origin: <:\> against <http://example.org/foo/bar> PASS
Parsing origin: <https://@test@test@example:800/> against <http://doesnotmatter/> PASS
Parsing origin: <?i> against <sc://ho/pa> FAIL
Parsing origin: <[61:24:74]:98> against <http://example.org/foo/bar> PASS
Parsing origin: <http://f:00000000000000/c> against <http://example.org/foo/bar> FAIL
Parsing origin: <http://10000000000.com> against <http://other.com/> PASS
Parsing origin: <http://foo/path;a??e#f#g> against <http://example.org/foo/bar> PASS
Parsing origin: <http://example.com/foo/bar//..> against <about:blank> PASS
Parsing origin: <javascript:/../> against <about:blank> PASS
Parsing origin: <https://localhost:3000/jqueryui@1.2.3> against <about:blank> PASS
Parsing origin: <i> against <sc://ho/pa> FAIL
Parsing origin: </a/b/c> against <http://example.org/foo/bar> PASS
Parsing origin: <i> against <sc:/pa/pa> FAIL
Parsing origin: <a:\t foo.com> against <http://example.org/foo/bar> FAIL
Parsing origin: <?a=b&c=d> against <http://example.org/foo/bar> PASS
Parsing origin: <http://@www.example.com> against <about:blank> PASS
Parsing origin: <http://example.com/%7Ffp3%3Eju%3Dduvgw%3Dd> against <about:blank> PASS
Parsing origin: <http://user:pass@foo:21/bar;par?b#c> against <http://example.org/foo/bar> PASS
Parsing origin: <http://[1:0::]> against <http://example.net/> PASS
Parsing origin: <http://www.foo。bar.com> against <http://other.com/> PASS
Parsing origin: <madeupscheme:/example.com/> against <http://example.org/foo/bar> FAIL
Parsing origin: <:/> against <http://example.org/foo/bar> PASS
Parsing origin: <http://GOO​⁠goo.com> against <http://other.com/> PASS
Parsing origin: <x> against <sc://ñ> PASS
Parsing origin: <http://example.com/foo\t�%91> against <about:blank> PASS
Parsing origin: <data:example.com/> against <http://example.org/foo/bar> PASS
Parsing origin: <http://127.0.0.1:10100/relative_import.html> against <about:blank> PASS
Parsing origin: <#x> against <sc://ñ> PASS
Parsing origin: <#i> against <sc:/pa/pa> FAIL
Parsing origin: <http://example.com/foo> against <about:blank> PASS
Parsing origin: <wss://foo:443/> against <about:blank> PASS
Parsing origin: <wss://foo:81/> against <about:blank> PASS
Parsing origin: <#x> against <data:,> PASS
Parsing origin: <foo://///////> against <http://example.org/foo/bar> FAIL
Parsing origin: <sc:\../> against <about:blank> FAIL
Parsing origin: <http://www.google.com> against <about:blank> PASS
Parsing origin: <sc::a@example.net> against <about:blank> FAIL
Parsing origin: <http://[2001::1]> against <http://example.org/foo/bar> PASS
Parsing origin: <sc:> against <https://example.org/foo/bar> FAIL
Parsing origin: <ws:example.com/> against <http://example.org/foo/bar> PASS
Parsing origin: <:foo.com\> against <http://example.org/foo/bar> PASS
Parsing origin: <ftps:example.com/> against <http://example.org/foo/bar> FAIL
Parsing origin: <https://%e2%98%83> against <about:blank> FAIL
Parsing origin: <https://test:@test> against <about:blank> PASS
Parsing origin: <ftp:example.com/> against <about:blank> PASS
Parsing origin: <data:/../> against <about:blank> PASS
Parsing origin: <http://example.com/(%28:%3A%29)> against <about:blank> PASS
Parsing origin: </some/path> against <http://user@example.org/smth> PASS
Parsing origin: <ws://foo:815/> against <about:blank> PASS
Parsing origin: <http://\{}:`{}@h/`{}?`{}> against http://doesnotmatter/` PASS
Parsing origin: <http://256> against <http://other.com/> PASS
Parsing origin: <#i> against <sc:///pa/pa> FAIL
Parsing origin: <gopher://foo:443/> against <about:blank> PASS
Parsing origin: <http://example.com/foo\tbar> against <about:blank> PASS
Parsing origin: </some/path> against <http://user:pass@example.org:21/smth> PASS
Parsing origin: <http:/a:@www.example.com> against <about:blank> PASS
Parsing origin: <http://foo/abcd#foo?bar> against <http://example.org/foo/bar> PASS
Parsing origin: <ws://foo:443/> against <about:blank> PASS
Parsing origin: <#x> against <mailto:x@x.com> FAIL
Parsing origin: <gopher:example.com/> against <http://example.org/foo/bar> PASS
Parsing origin: <http://example.com/foo/..bar> against <about:blank> PASS
Parsing origin: <../aaa/test.txt> against <http://www.example.com/test> PASS
Parsing origin: <http://example.com/foo%2©zbar> against <about:blank> PASS
Parsing origin: <http:> against <http://example.org/foo/bar> PASS
Parsing origin: <http::b@www.example.com> against <about:blank> PASS
Parsing origin: <http://Go.com> against <http://other.com/> PASS
Parsing origin: <ftps:/example.com/> against <about:blank> FAIL
Parsing origin: <mailto:example.com/> against <http://example.org/foo/bar> FAIL
Parsing origin: <http://example.com/foo%> against <about:blank> PASS
Parsing origin: <https://:@test> against <about:blank> PASS
Parsing origin: <http://ExAmPlE.CoM> against <http://other.com/> PASS
Parsing origin: </i> against <sc://ho/pa> FAIL
Parsing origin: <http:\\foo.com\> against <http://example.org/foo/bar> PASS
Parsing origin: <http://[::127.0.0.1]> against <http://example.org/foo/bar> PASS
Parsing origin: <javascript:/example.com/> against <http://example.org/foo/bar> PASS
Parsing origin: <sc://ñ?x> against <about:blank> FAIL
Parsing origin: </:23> against <http://example.org/foo/bar> PASS
Parsing origin: <foo:/> against <http://example.org/foo/bar> FAIL
Parsing origin: <http://@pple.com> against <about:blank> PASS
Parsing origin: <http://a:b@c:29/d> against <http://example.org/foo/bar> PASS
Parsing origin: </test.txt> against <http://www.example.com/test> PASS
Parsing origin: <ws:/example.com/> against <http://example.org/foo/bar> PASS
Parsing origin: <::23> against <http://example.org/foo/bar> PASS
Parsing origin: <.> against <http://www.example.com/test> PASS
Parsing origin: <ftps:/example.com/> against <http://example.org/foo/bar> FAIL
Parsing origin: <http://256.com> against <http://other.com/> PASS
Parsing origin: <foo:////://///> against <http://example.org/foo/bar> FAIL
Parsing origin: <madeupscheme:example.com/> against <http://example.org/foo/bar> FAIL
Parsing origin: <::> against <http://example.org/foo/bar> PASS
Parsing origin: <http:a:@www.example.com> against <about:blank> PASS
Parsing origin: <http://f:00000000000000000000080/c> against <http://example.org/foo/bar> PASS
Parsing origin: <http:\\www.google.com\foo> against <about:blank> PASS
Parsing origin: <?> against <http://example.org/foo/bar> PASS
Parsing origin: <foo://///////bar.com/> against <http://example.org/foo/bar> FAIL
Parsing origin: <mailto:/example.com/> against <http://example.org/foo/bar> FAIL
Parsing origin: <http://f:/c> against <http://example.org/foo/bar> PASS
Parsing origin: <mailto:example.com/> against <about:blank> FAIL
Parsing origin: <> against <http://user:pass@example.org:21/smth> PASS
Parsing origin: <http://f:\n/c> against <http://example.org/foo/bar> PASS
Parsing origin: <http://example.com/foo/bar/../ton> against <about:blank> PASS
Parsing origin: <ftp:/example.com/> against <http://example.org/foo/bar> PASS
Parsing origin: <#i> against <sc://ho/pa> FAIL
Parsing origin: <http://example.com/%20foo> against <about:blank> PASS
Parsing origin: </> against <http://www.example.com/test> PASS
Parsing origin: <tel:1234567890> against <http://example.org/foo/bar> FAIL
Parsing origin: <?i> against <sc:/pa/pa> FAIL
Parsing origin: <sc://�!"$&'()*+,-.;<=>^_\{ }~/> against about:blank`
Parsing origin: <wss://foo:80/> against <about:blank> PASS
Parsing origin: <data:/example.com/> against <http://example.org/foo/bar> PASS
Parsing origin: <http://example.com/foo/%2e%2> against <about:blank> PASS
Parsing origin: <i> against <sc:///pa/pa> FAIL
Parsing origin: <../test.txt> against <http://www.example.com/test> PASS
Parsing origin: <madeupscheme:/example.com/> against <about:blank> FAIL
Parsing origin: <http://example.com/‮/foo/‭/bar> against <about:blank> PASS
Parsing origin: <http://example.com/foo/./> against <about:blank> PASS
Parsing origin: <#> against <test:test?test> FAIL
Parsing origin: <http:/@www.example.com> against <about:blank> PASS
Parsing origin: <http://example.com/foo/bar/../ton/../../a> against <about:blank> PASS
Parsing origin: <http://example.com/foo%41%7a> against <about:blank> PASS
Parsing origin: <http://&a:foo(b]c@d:2/> against <http://example.org/foo/bar> PASS
Parsing origin: <http://%25DOMAIN:foobar@foodomain.com/> against <about:blank> PASS
Parsing origin: <http:/example.com/> against <http://example.org/foo/bar> PASS
Parsing origin: <ws://foo:81/> against <about:blank> PASS
Parsing origin: <ws:example.com/> against <about:blank> PASS
Parsing origin: <:a> against <http://example.org/foo/bar> PASS
Parsing origin: <https://foo:443/> against <about:blank> PASS
Parsing origin: <ftp://%e2%98%83> against <about:blank> FAIL
Parsing origin: <gopher:/example.com/> against <about:blank> PASS
Parsing origin: <javascript:example.com/> against <http://example.org/foo/bar> PASS
Parsing origin: <http://example.com/@asdf%40> against <about:blank> PASS
Parsing origin: <http://::@c@d:2> against <http://example.org/foo/bar> PASS
Parsing origin: <> against <http://example.org/foo/bar> PASS
Parsing origin: <http://example.com/./.foo> against <about:blank> PASS
Parsing origin: <../i> against <sc:///pa/pa> FAIL
Parsing origin: <:#> against <http://example.org/foo/bar> PASS
Parsing origin: </i> against <sc:///pa/pa> FAIL
Parsing origin: <http:/a:b@www.example.com> against <about:blank> PASS
Parsing origin: <http://foo:81/> against <about:blank> PASS
Parsing origin: <javascript:example.com/> against <about:blank> PASS
Parsing origin: <http://example.com/%3A%3a%3C%3c> against <about:blank> PASS
Parsing origin: <httpa://foo:80/> against <about:blank> FAIL
Parsing origin: <wss://foo:815/> against <about:blank> PASS
Parsing origin: <#> against <test:test> FAIL
Parsing origin: <data:text/html,test#test> against <http://example.org/foo/bar> PASS
Parsing origin: <http:/example.com/> against <about:blank> PASS
Parsing origin: <http://%30%78%63%30%2e%30%32%35%30.01> against <http://other.com/> PASS
Parsing origin: <http://%30%78%63%30%2e%30%32%35%30.01%2e> against <http://other.com/> PASS
Parsing origin: <http://f:0/c> against <http://example.org/foo/bar> FAIL
Parsing origin: <http://example.com/foo/bar/../> against <about:blank> PASS
Parsing origin: <:23> against <http://example.org/foo/bar> PASS
Parsing origin: <http://:b@www.example.com> against <about:blank> PASS
Parsing origin: <data:/example.com/> against <about:blank> PASS
Parsing origin: <?i> against <sc:///pa/pa> FAIL
Parsing origin: <http:[61:27]/:foo> against <http://example.org/foo/bar> PASS
Parsing origin: <http:a:b@www.example.com> against <about:blank> PASS
Parsing origin: <#;?> against <http://example.org/foo/bar> PASS

@annevk
Copy link
Member Author

annevk commented Jan 21, 2017

These tests depend on #4406 landing first.

annevk added a commit to whatwg/url that referenced this pull request Jan 21, 2017
This allows paths to be empty for non-special URLs and also takes that
into account when serializing.

Tests: web-platform-tests/wpt#4586.

Fixes #212.
annevk added a commit to whatwg/url that referenced this pull request Jan 24, 2017
This allows paths to be empty for non-special URLs and also takes that
into account when serializing.

Tests: web-platform-tests/wpt#4586.

Fixes #212.
@domenic
Copy link
Member

domenic commented Jan 24, 2017

@annevk can you rebase these on master?

@annevk
Copy link
Member Author

annevk commented Jan 24, 2017

Rebased.

@annevk annevk force-pushed the annevk/non-special-url-paths branch from 825b632 to 13aacc4 Compare January 27, 2017 14:38
@annevk annevk merged commit 37a9631 into master Jan 31, 2017
@annevk annevk deleted the annevk/non-special-url-paths branch January 31, 2017 08:24
annevk added a commit to whatwg/url that referenced this pull request Jan 31, 2017
This allows paths to be empty for non-special URLs and also takes that into account when serializing.

Tests: web-platform-tests/wpt#4586.

Fixes #212.
watilde added a commit to watilde/node that referenced this pull request Apr 2, 2017
watilde added a commit to nodejs/node that referenced this pull request Apr 3, 2017
Refs: web-platform-tests/wpt#4586
Refs: #11887
PR-URL: #12058
Reviewed-By: James M Snell <jasnell@gmail.com>
Reviewed-By: Joyee Cheung <joyeec9h3@gmail.com>
Reviewed-By: Timothy Gu <timothygu99@gmail.com>
TimothyGu pushed a commit to TimothyGu/node that referenced this pull request Apr 25, 2017
PR-URL: nodejs#12507
Refs: web-platform-tests/wpt#4586
Refs: nodejs#11887
Reviewed-By: James M Snell <jasnell@gmail.com>
evanlucas pushed a commit to nodejs/node that referenced this pull request May 1, 2017
PR-URL: #12507
Refs: web-platform-tests/wpt#4586
Refs: #11887
Reviewed-By: James M Snell <jasnell@gmail.com>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
Projects
None yet
Development

Successfully merging this pull request may close these issues.

4 participants