Implement HTMLAnchorElement.origin

This commit is contained in:
Anthony Ramine 2016-11-08 09:54:46 +01:00
parent f1c3e97fb4
commit d43d0fb18d
5 changed files with 18 additions and 1487 deletions

View file

@ -284,6 +284,23 @@ impl HTMLAnchorElementMethods for HTMLAnchorElement {
self.set_url(); self.set_url();
} }
// https://html.spec.whatwg.org/multipage/#dom-hyperlink-origin
fn Origin(&self) -> USVString {
// Step 1.
self.reinitialize_url();
USVString(match *self.url.borrow() {
None => {
// Step 2.
"".to_owned()
},
Some(ref url) => {
// Step 3.
url.origin().unicode_serialization()
},
})
}
// https://html.spec.whatwg.org/multipage/#dom-hyperlink-password // https://html.spec.whatwg.org/multipage/#dom-hyperlink-password
fn Password(&self) -> USVString { fn Password(&self) -> USVString {
// Step 1. // Step 1.

View file

@ -7,7 +7,7 @@
interface HTMLHyperlinkElementUtils { interface HTMLHyperlinkElementUtils {
// stringifier attribute USVString href; // stringifier attribute USVString href;
attribute USVString href; attribute USVString href;
// attribute USVString origin; readonly attribute USVString origin;
attribute USVString protocol; attribute USVString protocol;
attribute USVString username; attribute USVString username;
attribute USVString password; attribute USVString password;

View file

@ -6291,12 +6291,6 @@
[Document interface: document.implementation.createDocument(null, "", null) must inherit property "onsort" with the proper type (149)] [Document interface: document.implementation.createDocument(null, "", null) must inherit property "onsort" with the proper type (149)]
expected: FAIL expected: FAIL
[HTMLAnchorElement interface: attribute origin]
expected: FAIL
[HTMLAnchorElement interface: document.createElement("a") must inherit property "origin" with the proper type (14)]
expected: FAIL
[HTMLAreaElement interface: attribute href] [HTMLAreaElement interface: attribute href]
expected: FAIL expected: FAIL

View file

@ -1,740 +0,0 @@
[a-element-xhtml.xhtml]
type: testharness
[Parsing: <http://example\t.\norg> against <http://example.org/foo/bar>]
expected: FAIL
[Parsing: <http://user:pass@foo:21/bar;par?b#c> against <http://example.org/foo/bar>]
expected: FAIL
[Parsing: <http:foo.com> against <http://example.org/foo/bar>]
expected: FAIL
[Parsing: <\t :foo.com \n> against <http://example.org/foo/bar>]
expected: FAIL
[Parsing: < foo.com > against <http://example.org/foo/bar>]
expected: FAIL
[Parsing: <a:\t foo.com> against <http://example.org/foo/bar>]
expected: FAIL
[Parsing: <http://f:21/ b ? d # e > against <http://example.org/foo/bar>]
expected: FAIL
[Parsing: <http://f:/c> against <http://example.org/foo/bar>]
expected: FAIL
[Parsing: <http://f:0/c> against <http://example.org/foo/bar>]
expected: FAIL
[Parsing: <http://f:00000000000000/c> against <http://example.org/foo/bar>]
expected: FAIL
[Parsing: <http://f:00000000000000000000080/c> against <http://example.org/foo/bar>]
expected: FAIL
[Parsing: <http://f:\n/c> against <http://example.org/foo/bar>]
expected: FAIL
[Parsing: <> against <http://example.org/foo/bar>]
expected: FAIL
[Parsing: < \t> against <http://example.org/foo/bar>]
expected: FAIL
[Parsing: <:foo.com/> against <http://example.org/foo/bar>]
expected: FAIL
[Parsing: <:foo.com\\> against <http://example.org/foo/bar>]
expected: FAIL
[Parsing: <:> against <http://example.org/foo/bar>]
expected: FAIL
[Parsing: <:a> against <http://example.org/foo/bar>]
expected: FAIL
[Parsing: <:/> against <http://example.org/foo/bar>]
expected: FAIL
[Parsing: <:\\> against <http://example.org/foo/bar>]
expected: FAIL
[Parsing: <:#> against <http://example.org/foo/bar>]
expected: FAIL
[Parsing: <#> against <http://example.org/foo/bar>]
expected: FAIL
[Parsing: <#/> against <http://example.org/foo/bar>]
expected: FAIL
[Parsing: <#\\> against <http://example.org/foo/bar>]
expected: FAIL
[Parsing: <#;?> against <http://example.org/foo/bar>]
expected: FAIL
[Parsing: <?> against <http://example.org/foo/bar>]
expected: FAIL
[Parsing: </> against <http://example.org/foo/bar>]
expected: FAIL
[Parsing: <:23> against <http://example.org/foo/bar>]
expected: FAIL
[Parsing: </:23> against <http://example.org/foo/bar>]
expected: FAIL
[Parsing: <::> against <http://example.org/foo/bar>]
expected: FAIL
[Parsing: <::23> against <http://example.org/foo/bar>]
expected: FAIL
[Parsing: <foo://> against <http://example.org/foo/bar>]
expected: FAIL
[Parsing: <http://a:b@c:29/d> against <http://example.org/foo/bar>]
expected: FAIL
[Parsing: <http::@c:29> against <http://example.org/foo/bar>]
expected: FAIL
[Parsing: <http://&a:foo(b\]c@d:2/> against <http://example.org/foo/bar>]
expected: FAIL
[Parsing: <http://::@c@d:2> against <http://example.org/foo/bar>]
expected: FAIL
[Parsing: <http://foo.com:b@d/> against <http://example.org/foo/bar>]
expected: FAIL
[Parsing: <http://foo.com/\\@> against <http://example.org/foo/bar>]
expected: FAIL
[Parsing: <http:\\\\foo.com\\> against <http://example.org/foo/bar>]
expected: FAIL
[Parsing: <http:\\\\a\\b:c\\d@foo.com\\> against <http://example.org/foo/bar>]
expected: FAIL
[Parsing: <foo:/> against <http://example.org/foo/bar>]
expected: FAIL
[Parsing: <foo:/bar.com/> against <http://example.org/foo/bar>]
expected: FAIL
[Parsing: <foo://///////> against <http://example.org/foo/bar>]
expected: FAIL
[Parsing: <foo://///////bar.com/> against <http://example.org/foo/bar>]
expected: FAIL
[Parsing: <foo:////://///> against <http://example.org/foo/bar>]
expected: FAIL
[Parsing: <c:/foo> against <http://example.org/foo/bar>]
expected: FAIL
[Parsing: <//foo/bar> against <http://example.org/foo/bar>]
expected: FAIL
[Parsing: <http://foo/path;a??e#f#g> against <http://example.org/foo/bar>]
expected: FAIL
[Parsing: <http://foo/abcd?efgh?ijkl> against <http://example.org/foo/bar>]
expected: FAIL
[Parsing: <http://foo/abcd#foo?bar> against <http://example.org/foo/bar>]
expected: FAIL
[Parsing: <[61:24:74\]:98> against <http://example.org/foo/bar>]
expected: FAIL
[Parsing: <http:[61:27\]/:foo> against <http://example.org/foo/bar>]
expected: FAIL
[Parsing: <http://[2001::1\]> against <http://example.org/foo/bar>]
expected: FAIL
[Parsing: <http://[2001::1\]:80> against <http://example.org/foo/bar>]
expected: FAIL
[Parsing: <http:/example.com/> against <http://example.org/foo/bar>]
expected: FAIL
[Parsing: <ftp:/example.com/> against <http://example.org/foo/bar>]
expected: FAIL
[Parsing: <https:/example.com/> against <http://example.org/foo/bar>]
expected: FAIL
[Parsing: <madeupscheme:/example.com/> against <http://example.org/foo/bar>]
expected: FAIL
[Parsing: <ftps:/example.com/> against <http://example.org/foo/bar>]
expected: FAIL
[Parsing: <gopher:/example.com/> against <http://example.org/foo/bar>]
expected: FAIL
[Parsing: <ws:/example.com/> against <http://example.org/foo/bar>]
expected: FAIL
[Parsing: <wss:/example.com/> against <http://example.org/foo/bar>]
expected: FAIL
[Parsing: <data:/example.com/> against <http://example.org/foo/bar>]
expected: FAIL
[Parsing: <javascript:/example.com/> against <http://example.org/foo/bar>]
expected: FAIL
[Parsing: <mailto:/example.com/> against <http://example.org/foo/bar>]
expected: FAIL
[Parsing: <http:example.com/> against <http://example.org/foo/bar>]
expected: FAIL
[Parsing: <ftp:example.com/> against <http://example.org/foo/bar>]
expected: FAIL
[Parsing: <https:example.com/> against <http://example.org/foo/bar>]
expected: FAIL
[Parsing: <madeupscheme:example.com/> against <http://example.org/foo/bar>]
expected: FAIL
[Parsing: <ftps:example.com/> against <http://example.org/foo/bar>]
expected: FAIL
[Parsing: <gopher:example.com/> against <http://example.org/foo/bar>]
expected: FAIL
[Parsing: <ws:example.com/> against <http://example.org/foo/bar>]
expected: FAIL
[Parsing: <wss:example.com/> against <http://example.org/foo/bar>]
expected: FAIL
[Parsing: <data:example.com/> against <http://example.org/foo/bar>]
expected: FAIL
[Parsing: <javascript:example.com/> against <http://example.org/foo/bar>]
expected: FAIL
[Parsing: <mailto:example.com/> against <http://example.org/foo/bar>]
expected: FAIL
[Parsing: </a/b/c> against <http://example.org/foo/bar>]
expected: FAIL
[Parsing: </a/ /c> against <http://example.org/foo/bar>]
expected: FAIL
[Parsing: </a%2fc> against <http://example.org/foo/bar>]
expected: FAIL
[Parsing: </a/%2f/c> against <http://example.org/foo/bar>]
expected: FAIL
[Parsing: <#β> against <http://example.org/foo/bar>]
expected: FAIL
[Parsing: <data:text/html,test#test> against <http://example.org/foo/bar>]
expected: FAIL
[Parsing: <http://example.com/././foo> against <about:blank>]
expected: FAIL
[Parsing: <http://example.com/./.foo> against <about:blank>]
expected: FAIL
[Parsing: <http://example.com/foo/.> against <about:blank>]
expected: FAIL
[Parsing: <http://example.com/foo/./> against <about:blank>]
expected: FAIL
[Parsing: <http://example.com/foo/bar/..> against <about:blank>]
expected: FAIL
[Parsing: <http://example.com/foo/bar/../> against <about:blank>]
expected: FAIL
[Parsing: <http://example.com/foo/..bar> against <about:blank>]
expected: FAIL
[Parsing: <http://example.com/foo/bar/../ton> against <about:blank>]
expected: FAIL
[Parsing: <http://example.com/foo/bar/../ton/../../a> against <about:blank>]
expected: FAIL
[Parsing: <http://example.com/foo/../../..> against <about:blank>]
expected: FAIL
[Parsing: <http://example.com/foo/../../../ton> against <about:blank>]
expected: FAIL
[Parsing: <http://example.com/foo/%2e> against <about:blank>]
expected: FAIL
[Parsing: <http://example.com/foo/%2e%2> against <about:blank>]
expected: FAIL
[Parsing: <http://example.com/foo/%2e./%2e%2e/.%2e/%2e.bar> against <about:blank>]
expected: FAIL
[Parsing: <http://example.com////../..> against <about:blank>]
expected: FAIL
[Parsing: <http://example.com/foo/bar//../..> against <about:blank>]
expected: FAIL
[Parsing: <http://example.com/foo/bar//..> against <about:blank>]
expected: FAIL
[Parsing: <http://example.com/foo> against <about:blank>]
expected: FAIL
[Parsing: <http://example.com/%20foo> against <about:blank>]
expected: FAIL
[Parsing: <http://example.com/foo%> against <about:blank>]
expected: FAIL
[Parsing: <http://example.com/foo%2> against <about:blank>]
expected: FAIL
[Parsing: <http://example.com/foo%2zbar> against <about:blank>]
expected: FAIL
[Parsing: <http://example.com/foo%2©zbar> against <about:blank>]
expected: FAIL
[Parsing: <http://example.com/foo%41%7a> against <about:blank>]
expected: FAIL
[Parsing: <http://example.com/foo\t‘%91> against <about:blank>]
expected: FAIL
[Parsing: <http://example.com/foo%00%51> against <about:blank>]
expected: FAIL
[Parsing: <http://example.com/(%28:%3A%29)> against <about:blank>]
expected: FAIL
[Parsing: <http://example.com/%3A%3a%3C%3c> against <about:blank>]
expected: FAIL
[Parsing: <http://example.com/foo\tbar> against <about:blank>]
expected: FAIL
[Parsing: <http://example.com\\\\foo\\\\bar> against <about:blank>]
expected: FAIL
[Parsing: <http://example.com/%7Ffp3%3Eju%3Dduvgw%3Dd> against <about:blank>]
expected: FAIL
[Parsing: <http://example.com/@asdf%40> against <about:blank>]
expected: FAIL
[Parsing: <http://example.com/你好你好> against <about:blank>]
expected: FAIL
[Parsing: <http://example.com/‥/foo> against <about:blank>]
expected: FAIL
[Parsing: <http://example.com//foo> against <about:blank>]
expected: FAIL
[Parsing: <http://example.com//foo//bar> against <about:blank>]
expected: FAIL
[Parsing: <http://www.google.com/foo?bar=baz#> against <about:blank>]
expected: FAIL
[Parsing: <http://www.google.com/foo?bar=baz# »> against <about:blank>]
expected: FAIL
[Parsing: <data:test# »> against <about:blank>]
expected: FAIL
[Parsing: <http://www.google.com> against <about:blank>]
expected: FAIL
[Parsing: <http://192.0x00A80001> against <about:blank>]
expected: FAIL
[Parsing: <http://www/foo%2Ehtml> against <about:blank>]
expected: FAIL
[Parsing: <http://www/foo/%2E/html> against <about:blank>]
expected: FAIL
[Parsing: <http://%25DOMAIN:foobar@foodomain.com/> against <about:blank>]
expected: FAIL
[Parsing: <http:\\\\www.google.com\\foo> against <about:blank>]
expected: FAIL
[Parsing: <http://foo:80/> against <about:blank>]
expected: FAIL
[Parsing: <http://foo:81/> against <about:blank>]
expected: FAIL
[Parsing: <httpa://foo:80/> against <about:blank>]
expected: FAIL
[Parsing: <https://foo:443/> against <about:blank>]
expected: FAIL
[Parsing: <https://foo:80/> against <about:blank>]
expected: FAIL
[Parsing: <ftp://foo:21/> against <about:blank>]
expected: FAIL
[Parsing: <ftp://foo:80/> against <about:blank>]
expected: FAIL
[Parsing: <gopher://foo:70/> against <about:blank>]
expected: FAIL
[Parsing: <gopher://foo:443/> against <about:blank>]
expected: FAIL
[Parsing: <ws://foo:80/> against <about:blank>]
expected: FAIL
[Parsing: <ws://foo:81/> against <about:blank>]
expected: FAIL
[Parsing: <ws://foo:443/> against <about:blank>]
expected: FAIL
[Parsing: <ws://foo:815/> against <about:blank>]
expected: FAIL
[Parsing: <wss://foo:80/> against <about:blank>]
expected: FAIL
[Parsing: <wss://foo:81/> against <about:blank>]
expected: FAIL
[Parsing: <wss://foo:443/> against <about:blank>]
expected: FAIL
[Parsing: <wss://foo:815/> against <about:blank>]
expected: FAIL
[Parsing: <http:/example.com/> against <about:blank>]
expected: FAIL
[Parsing: <ftp:/example.com/> against <about:blank>]
expected: FAIL
[Parsing: <https:/example.com/> against <about:blank>]
expected: FAIL
[Parsing: <madeupscheme:/example.com/> against <about:blank>]
expected: FAIL
[Parsing: <ftps:/example.com/> against <about:blank>]
expected: FAIL
[Parsing: <gopher:/example.com/> against <about:blank>]
expected: FAIL
[Parsing: <ws:/example.com/> against <about:blank>]
expected: FAIL
[Parsing: <wss:/example.com/> against <about:blank>]
expected: FAIL
[Parsing: <data:/example.com/> against <about:blank>]
expected: FAIL
[Parsing: <javascript:/example.com/> against <about:blank>]
expected: FAIL
[Parsing: <mailto:/example.com/> against <about:blank>]
expected: FAIL
[Parsing: <http:example.com/> against <about:blank>]
expected: FAIL
[Parsing: <ftp:example.com/> against <about:blank>]
expected: FAIL
[Parsing: <https:example.com/> against <about:blank>]
expected: FAIL
[Parsing: <madeupscheme:example.com/> against <about:blank>]
expected: FAIL
[Parsing: <ftps:example.com/> against <about:blank>]
expected: FAIL
[Parsing: <gopher:example.com/> against <about:blank>]
expected: FAIL
[Parsing: <ws:example.com/> against <about:blank>]
expected: FAIL
[Parsing: <wss:example.com/> against <about:blank>]
expected: FAIL
[Parsing: <data:example.com/> against <about:blank>]
expected: FAIL
[Parsing: <javascript:example.com/> against <about:blank>]
expected: FAIL
[Parsing: <mailto:example.com/> against <about:blank>]
expected: FAIL
[Parsing: <http:@www.example.com> against <about:blank>]
expected: FAIL
[Parsing: <http:/@www.example.com> against <about:blank>]
expected: FAIL
[Parsing: <http://@www.example.com> against <about:blank>]
expected: FAIL
[Parsing: <http:a:b@www.example.com> against <about:blank>]
expected: FAIL
[Parsing: <http:/a:b@www.example.com> against <about:blank>]
expected: FAIL
[Parsing: <http://a:b@www.example.com> against <about:blank>]
expected: FAIL
[Parsing: <http://@pple.com> against <about:blank>]
expected: FAIL
[Parsing: <http::b@www.example.com> against <about:blank>]
expected: FAIL
[Parsing: <http:/:b@www.example.com> against <about:blank>]
expected: FAIL
[Parsing: <http://:b@www.example.com> against <about:blank>]
expected: FAIL
[Parsing: <http:a:@www.example.com> against <about:blank>]
expected: FAIL
[Parsing: <http:/a:@www.example.com> against <about:blank>]
expected: FAIL
[Parsing: <http://a:@www.example.com> against <about:blank>]
expected: FAIL
[Parsing: <http://www.@pple.com> against <about:blank>]
expected: FAIL
[Parsing: <http://:@www.example.com> against <about:blank>]
expected: FAIL
[Parsing: </> against <http://www.example.com/test>]
expected: FAIL
[Parsing: </test.txt> against <http://www.example.com/test>]
expected: FAIL
[Parsing: <.> against <http://www.example.com/test>]
expected: FAIL
[Parsing: <..> against <http://www.example.com/test>]
expected: FAIL
[Parsing: <test.txt> against <http://www.example.com/test>]
expected: FAIL
[Parsing: <./test.txt> against <http://www.example.com/test>]
expected: FAIL
[Parsing: <../test.txt> against <http://www.example.com/test>]
expected: FAIL
[Parsing: <../aaa/test.txt> against <http://www.example.com/test>]
expected: FAIL
[Parsing: <../../test.txt> against <http://www.example.com/test>]
expected: FAIL
[Parsing: <中/test.txt> against <http://www.example.com/test>]
expected: FAIL
[Parsing: <http://www.example2.com> against <http://www.example.com/test>]
expected: FAIL
[Parsing: <//www.example2.com> against <http://www.example.com/test>]
expected: FAIL
[Parsing: <http://ExAmPlE.CoM> against <http://other.com/>]
expected: FAIL
[Parsing: <http://GOOgoo.com> against <http://other.com/>]
expected: FAIL
[Parsing: <http://www.foo。bar.com> against <http://other.com/>]
expected: FAIL
[Parsing: <http://.com> against <http://other.com/>]
expected: FAIL
[Parsing: <http://你好你好> against <http://other.com/>]
expected: FAIL
[Parsing: <http://%30%78%63%30%2e%30%32%35%30.01> against <http://other.com/>]
expected: FAIL
[Parsing: <http://%30%78%63%30%2e%30%32%35%30.01%2e> against <http://other.com/>]
expected: FAIL
[Parsing: <http://> against <http://other.com/>]
expected: FAIL
[Parsing: <http://foo:💩@example.com/bar> against <http://other.com/>]
expected: FAIL
[Parsing: <#> against <test:test>]
expected: FAIL
[Parsing: <#x> against <mailto:x@x.com>]
expected: FAIL
[Parsing: <#x> against <data:,>]
expected: FAIL
[Parsing: <#x> against <about:blank>]
expected: FAIL
[Parsing: <#> against <test:test?test>]
expected: FAIL
[Parsing: <https://@test@test@example:800/> against <http://doesnotmatter/>]
expected: FAIL
[Parsing: <https://@@@example> against <http://doesnotmatter/>]
expected: FAIL
[Parsing: <http://`{}:`{}@h/`{}?`{}> against <http://doesnotmatter/>]
expected: FAIL
[Parsing: </some/path> against <http://user@example.org/smth>]
expected: FAIL
[Parsing: <> against <http://user:pass@example.org:21/smth>]
expected: FAIL
[Parsing: </some/path> against <http://user:pass@example.org:21/smth>]
expected: FAIL
[Parsing: <i> against <sc:/pa/pa>]
expected: FAIL
[Parsing: <i> against <sc://ho/pa>]
expected: FAIL
[Parsing: <i> against <sc:///pa/pa>]
expected: FAIL
[Parsing: <../i> against <sc:/pa/pa>]
expected: FAIL
[Parsing: <../i> against <sc://ho/pa>]
expected: FAIL
[Parsing: <../i> against <sc:///pa/pa>]
expected: FAIL
[Parsing: </i> against <sc:/pa/pa>]
expected: FAIL
[Parsing: </i> against <sc://ho/pa>]
expected: FAIL
[Parsing: </i> against <sc:///pa/pa>]
expected: FAIL
[Parsing: <?i> against <sc:/pa/pa>]
expected: FAIL
[Parsing: <?i> against <sc://ho/pa>]
expected: FAIL
[Parsing: <?i> against <sc:///pa/pa>]
expected: FAIL
[Parsing: <#i> against <sc:sd>]
expected: FAIL
[Parsing: <#i> against <sc:sd/sd>]
expected: FAIL
[Parsing: <#i> against <sc:/pa/pa>]
expected: FAIL
[Parsing: <#i> against <sc://ho/pa>]
expected: FAIL
[Parsing: <#i> against <sc:///pa/pa>]
expected: FAIL
[Parsing: <about:/../> against <about:blank>]
expected: FAIL
[Parsing: <data:/../> against <about:blank>]
expected: FAIL
[Parsing: <javascript:/../> against <about:blank>]
expected: FAIL
[Parsing: <mailto:/../> against <about:blank>]
expected: FAIL
[Parsing: <sc://ñ.test/> against <about:blank>]
expected: FAIL
[Parsing: <sc:\\../> against <about:blank>]
expected: FAIL
[Parsing: <http://127.0.0.1:10100/relative_import.html> against <about:blank>]
expected: FAIL
[Parsing: <http://facebook.com/?foo=%7B%22abc%22> against <about:blank>]
expected: FAIL
[Parsing: <https://localhost:3000/jqueryui@1.2.3> against <about:blank>]
expected: FAIL
[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>]
expected: FAIL
[Parsing: <?a=b&c=d> against <http://example.org/foo/bar>]
expected: FAIL
[Parsing: <??a=b&c=d> against <http://example.org/foo/bar>]
expected: FAIL
[Parsing: <sc::a@example.net> against <about:blank>]
expected: FAIL
[Parsing: <http:> against <http://example.org/foo/bar>]
expected: FAIL
[Parsing: <sc:> against <https://example.org/foo/bar>]
expected: FAIL
[Parsing: <tel:1234567890> against <http://example.org/foo/bar>]
expected: FAIL

View file

@ -1,740 +0,0 @@
[a-element.html]
type: testharness
[Parsing: <http://example\t.\norg> against <http://example.org/foo/bar>]
expected: FAIL
[Parsing: <http://user:pass@foo:21/bar;par?b#c> against <http://example.org/foo/bar>]
expected: FAIL
[Parsing: <http:foo.com> against <http://example.org/foo/bar>]
expected: FAIL
[Parsing: <\t :foo.com \n> against <http://example.org/foo/bar>]
expected: FAIL
[Parsing: < foo.com > against <http://example.org/foo/bar>]
expected: FAIL
[Parsing: <a:\t foo.com> against <http://example.org/foo/bar>]
expected: FAIL
[Parsing: <http://f:21/ b ? d # e > against <http://example.org/foo/bar>]
expected: FAIL
[Parsing: <http://f:/c> against <http://example.org/foo/bar>]
expected: FAIL
[Parsing: <http://f:0/c> against <http://example.org/foo/bar>]
expected: FAIL
[Parsing: <http://f:00000000000000/c> against <http://example.org/foo/bar>]
expected: FAIL
[Parsing: <http://f:00000000000000000000080/c> against <http://example.org/foo/bar>]
expected: FAIL
[Parsing: <http://f:\n/c> against <http://example.org/foo/bar>]
expected: FAIL
[Parsing: <> against <http://example.org/foo/bar>]
expected: FAIL
[Parsing: < \t> against <http://example.org/foo/bar>]
expected: FAIL
[Parsing: <:foo.com/> against <http://example.org/foo/bar>]
expected: FAIL
[Parsing: <:foo.com\\> against <http://example.org/foo/bar>]
expected: FAIL
[Parsing: <:> against <http://example.org/foo/bar>]
expected: FAIL
[Parsing: <:a> against <http://example.org/foo/bar>]
expected: FAIL
[Parsing: <:/> against <http://example.org/foo/bar>]
expected: FAIL
[Parsing: <:\\> against <http://example.org/foo/bar>]
expected: FAIL
[Parsing: <:#> against <http://example.org/foo/bar>]
expected: FAIL
[Parsing: <#> against <http://example.org/foo/bar>]
expected: FAIL
[Parsing: <#/> against <http://example.org/foo/bar>]
expected: FAIL
[Parsing: <#\\> against <http://example.org/foo/bar>]
expected: FAIL
[Parsing: <#;?> against <http://example.org/foo/bar>]
expected: FAIL
[Parsing: <?> against <http://example.org/foo/bar>]
expected: FAIL
[Parsing: </> against <http://example.org/foo/bar>]
expected: FAIL
[Parsing: <:23> against <http://example.org/foo/bar>]
expected: FAIL
[Parsing: </:23> against <http://example.org/foo/bar>]
expected: FAIL
[Parsing: <::> against <http://example.org/foo/bar>]
expected: FAIL
[Parsing: <::23> against <http://example.org/foo/bar>]
expected: FAIL
[Parsing: <foo://> against <http://example.org/foo/bar>]
expected: FAIL
[Parsing: <http://a:b@c:29/d> against <http://example.org/foo/bar>]
expected: FAIL
[Parsing: <http::@c:29> against <http://example.org/foo/bar>]
expected: FAIL
[Parsing: <http://&a:foo(b\]c@d:2/> against <http://example.org/foo/bar>]
expected: FAIL
[Parsing: <http://::@c@d:2> against <http://example.org/foo/bar>]
expected: FAIL
[Parsing: <http://foo.com:b@d/> against <http://example.org/foo/bar>]
expected: FAIL
[Parsing: <http://foo.com/\\@> against <http://example.org/foo/bar>]
expected: FAIL
[Parsing: <http:\\\\foo.com\\> against <http://example.org/foo/bar>]
expected: FAIL
[Parsing: <http:\\\\a\\b:c\\d@foo.com\\> against <http://example.org/foo/bar>]
expected: FAIL
[Parsing: <foo:/> against <http://example.org/foo/bar>]
expected: FAIL
[Parsing: <foo:/bar.com/> against <http://example.org/foo/bar>]
expected: FAIL
[Parsing: <foo://///////> against <http://example.org/foo/bar>]
expected: FAIL
[Parsing: <foo://///////bar.com/> against <http://example.org/foo/bar>]
expected: FAIL
[Parsing: <foo:////://///> against <http://example.org/foo/bar>]
expected: FAIL
[Parsing: <c:/foo> against <http://example.org/foo/bar>]
expected: FAIL
[Parsing: <//foo/bar> against <http://example.org/foo/bar>]
expected: FAIL
[Parsing: <http://foo/path;a??e#f#g> against <http://example.org/foo/bar>]
expected: FAIL
[Parsing: <http://foo/abcd?efgh?ijkl> against <http://example.org/foo/bar>]
expected: FAIL
[Parsing: <http://foo/abcd#foo?bar> against <http://example.org/foo/bar>]
expected: FAIL
[Parsing: <[61:24:74\]:98> against <http://example.org/foo/bar>]
expected: FAIL
[Parsing: <http:[61:27\]/:foo> against <http://example.org/foo/bar>]
expected: FAIL
[Parsing: <http://[2001::1\]> against <http://example.org/foo/bar>]
expected: FAIL
[Parsing: <http://[2001::1\]:80> against <http://example.org/foo/bar>]
expected: FAIL
[Parsing: <http:/example.com/> against <http://example.org/foo/bar>]
expected: FAIL
[Parsing: <ftp:/example.com/> against <http://example.org/foo/bar>]
expected: FAIL
[Parsing: <https:/example.com/> against <http://example.org/foo/bar>]
expected: FAIL
[Parsing: <madeupscheme:/example.com/> against <http://example.org/foo/bar>]
expected: FAIL
[Parsing: <ftps:/example.com/> against <http://example.org/foo/bar>]
expected: FAIL
[Parsing: <gopher:/example.com/> against <http://example.org/foo/bar>]
expected: FAIL
[Parsing: <ws:/example.com/> against <http://example.org/foo/bar>]
expected: FAIL
[Parsing: <wss:/example.com/> against <http://example.org/foo/bar>]
expected: FAIL
[Parsing: <data:/example.com/> against <http://example.org/foo/bar>]
expected: FAIL
[Parsing: <javascript:/example.com/> against <http://example.org/foo/bar>]
expected: FAIL
[Parsing: <mailto:/example.com/> against <http://example.org/foo/bar>]
expected: FAIL
[Parsing: <http:example.com/> against <http://example.org/foo/bar>]
expected: FAIL
[Parsing: <ftp:example.com/> against <http://example.org/foo/bar>]
expected: FAIL
[Parsing: <https:example.com/> against <http://example.org/foo/bar>]
expected: FAIL
[Parsing: <madeupscheme:example.com/> against <http://example.org/foo/bar>]
expected: FAIL
[Parsing: <ftps:example.com/> against <http://example.org/foo/bar>]
expected: FAIL
[Parsing: <gopher:example.com/> against <http://example.org/foo/bar>]
expected: FAIL
[Parsing: <ws:example.com/> against <http://example.org/foo/bar>]
expected: FAIL
[Parsing: <wss:example.com/> against <http://example.org/foo/bar>]
expected: FAIL
[Parsing: <data:example.com/> against <http://example.org/foo/bar>]
expected: FAIL
[Parsing: <javascript:example.com/> against <http://example.org/foo/bar>]
expected: FAIL
[Parsing: <mailto:example.com/> against <http://example.org/foo/bar>]
expected: FAIL
[Parsing: </a/b/c> against <http://example.org/foo/bar>]
expected: FAIL
[Parsing: </a/ /c> against <http://example.org/foo/bar>]
expected: FAIL
[Parsing: </a%2fc> against <http://example.org/foo/bar>]
expected: FAIL
[Parsing: </a/%2f/c> against <http://example.org/foo/bar>]
expected: FAIL
[Parsing: <#β> against <http://example.org/foo/bar>]
expected: FAIL
[Parsing: <data:text/html,test#test> against <http://example.org/foo/bar>]
expected: FAIL
[Parsing: <http://example.com/././foo> against <about:blank>]
expected: FAIL
[Parsing: <http://example.com/./.foo> against <about:blank>]
expected: FAIL
[Parsing: <http://example.com/foo/.> against <about:blank>]
expected: FAIL
[Parsing: <http://example.com/foo/./> against <about:blank>]
expected: FAIL
[Parsing: <http://example.com/foo/bar/..> against <about:blank>]
expected: FAIL
[Parsing: <http://example.com/foo/bar/../> against <about:blank>]
expected: FAIL
[Parsing: <http://example.com/foo/..bar> against <about:blank>]
expected: FAIL
[Parsing: <http://example.com/foo/bar/../ton> against <about:blank>]
expected: FAIL
[Parsing: <http://example.com/foo/bar/../ton/../../a> against <about:blank>]
expected: FAIL
[Parsing: <http://example.com/foo/../../..> against <about:blank>]
expected: FAIL
[Parsing: <http://example.com/foo/../../../ton> against <about:blank>]
expected: FAIL
[Parsing: <http://example.com/foo/%2e> against <about:blank>]
expected: FAIL
[Parsing: <http://example.com/foo/%2e%2> against <about:blank>]
expected: FAIL
[Parsing: <http://example.com/foo/%2e./%2e%2e/.%2e/%2e.bar> against <about:blank>]
expected: FAIL
[Parsing: <http://example.com////../..> against <about:blank>]
expected: FAIL
[Parsing: <http://example.com/foo/bar//../..> against <about:blank>]
expected: FAIL
[Parsing: <http://example.com/foo/bar//..> against <about:blank>]
expected: FAIL
[Parsing: <http://example.com/foo> against <about:blank>]
expected: FAIL
[Parsing: <http://example.com/%20foo> against <about:blank>]
expected: FAIL
[Parsing: <http://example.com/foo%> against <about:blank>]
expected: FAIL
[Parsing: <http://example.com/foo%2> against <about:blank>]
expected: FAIL
[Parsing: <http://example.com/foo%2zbar> against <about:blank>]
expected: FAIL
[Parsing: <http://example.com/foo%2©zbar> against <about:blank>]
expected: FAIL
[Parsing: <http://example.com/foo%41%7a> against <about:blank>]
expected: FAIL
[Parsing: <http://example.com/foo\t‘%91> against <about:blank>]
expected: FAIL
[Parsing: <http://example.com/foo%00%51> against <about:blank>]
expected: FAIL
[Parsing: <http://example.com/(%28:%3A%29)> against <about:blank>]
expected: FAIL
[Parsing: <http://example.com/%3A%3a%3C%3c> against <about:blank>]
expected: FAIL
[Parsing: <http://example.com/foo\tbar> against <about:blank>]
expected: FAIL
[Parsing: <http://example.com\\\\foo\\\\bar> against <about:blank>]
expected: FAIL
[Parsing: <http://example.com/%7Ffp3%3Eju%3Dduvgw%3Dd> against <about:blank>]
expected: FAIL
[Parsing: <http://example.com/@asdf%40> against <about:blank>]
expected: FAIL
[Parsing: <http://example.com/你好你好> against <about:blank>]
expected: FAIL
[Parsing: <http://example.com/‥/foo> against <about:blank>]
expected: FAIL
[Parsing: <http://example.com//foo> against <about:blank>]
expected: FAIL
[Parsing: <http://example.com//foo//bar> against <about:blank>]
expected: FAIL
[Parsing: <http://www.google.com/foo?bar=baz#> against <about:blank>]
expected: FAIL
[Parsing: <http://www.google.com/foo?bar=baz# »> against <about:blank>]
expected: FAIL
[Parsing: <data:test# »> against <about:blank>]
expected: FAIL
[Parsing: <http://www.google.com> against <about:blank>]
expected: FAIL
[Parsing: <http://192.0x00A80001> against <about:blank>]
expected: FAIL
[Parsing: <http://www/foo%2Ehtml> against <about:blank>]
expected: FAIL
[Parsing: <http://www/foo/%2E/html> against <about:blank>]
expected: FAIL
[Parsing: <http://%25DOMAIN:foobar@foodomain.com/> against <about:blank>]
expected: FAIL
[Parsing: <http:\\\\www.google.com\\foo> against <about:blank>]
expected: FAIL
[Parsing: <http://foo:80/> against <about:blank>]
expected: FAIL
[Parsing: <http://foo:81/> against <about:blank>]
expected: FAIL
[Parsing: <httpa://foo:80/> against <about:blank>]
expected: FAIL
[Parsing: <https://foo:443/> against <about:blank>]
expected: FAIL
[Parsing: <https://foo:80/> against <about:blank>]
expected: FAIL
[Parsing: <ftp://foo:21/> against <about:blank>]
expected: FAIL
[Parsing: <ftp://foo:80/> against <about:blank>]
expected: FAIL
[Parsing: <gopher://foo:70/> against <about:blank>]
expected: FAIL
[Parsing: <gopher://foo:443/> against <about:blank>]
expected: FAIL
[Parsing: <ws://foo:80/> against <about:blank>]
expected: FAIL
[Parsing: <ws://foo:81/> against <about:blank>]
expected: FAIL
[Parsing: <ws://foo:443/> against <about:blank>]
expected: FAIL
[Parsing: <ws://foo:815/> against <about:blank>]
expected: FAIL
[Parsing: <wss://foo:80/> against <about:blank>]
expected: FAIL
[Parsing: <wss://foo:81/> against <about:blank>]
expected: FAIL
[Parsing: <wss://foo:443/> against <about:blank>]
expected: FAIL
[Parsing: <wss://foo:815/> against <about:blank>]
expected: FAIL
[Parsing: <http:/example.com/> against <about:blank>]
expected: FAIL
[Parsing: <ftp:/example.com/> against <about:blank>]
expected: FAIL
[Parsing: <https:/example.com/> against <about:blank>]
expected: FAIL
[Parsing: <madeupscheme:/example.com/> against <about:blank>]
expected: FAIL
[Parsing: <ftps:/example.com/> against <about:blank>]
expected: FAIL
[Parsing: <gopher:/example.com/> against <about:blank>]
expected: FAIL
[Parsing: <ws:/example.com/> against <about:blank>]
expected: FAIL
[Parsing: <wss:/example.com/> against <about:blank>]
expected: FAIL
[Parsing: <data:/example.com/> against <about:blank>]
expected: FAIL
[Parsing: <javascript:/example.com/> against <about:blank>]
expected: FAIL
[Parsing: <mailto:/example.com/> against <about:blank>]
expected: FAIL
[Parsing: <http:example.com/> against <about:blank>]
expected: FAIL
[Parsing: <ftp:example.com/> against <about:blank>]
expected: FAIL
[Parsing: <https:example.com/> against <about:blank>]
expected: FAIL
[Parsing: <madeupscheme:example.com/> against <about:blank>]
expected: FAIL
[Parsing: <ftps:example.com/> against <about:blank>]
expected: FAIL
[Parsing: <gopher:example.com/> against <about:blank>]
expected: FAIL
[Parsing: <ws:example.com/> against <about:blank>]
expected: FAIL
[Parsing: <wss:example.com/> against <about:blank>]
expected: FAIL
[Parsing: <data:example.com/> against <about:blank>]
expected: FAIL
[Parsing: <javascript:example.com/> against <about:blank>]
expected: FAIL
[Parsing: <mailto:example.com/> against <about:blank>]
expected: FAIL
[Parsing: <http:@www.example.com> against <about:blank>]
expected: FAIL
[Parsing: <http:/@www.example.com> against <about:blank>]
expected: FAIL
[Parsing: <http://@www.example.com> against <about:blank>]
expected: FAIL
[Parsing: <http:a:b@www.example.com> against <about:blank>]
expected: FAIL
[Parsing: <http:/a:b@www.example.com> against <about:blank>]
expected: FAIL
[Parsing: <http://a:b@www.example.com> against <about:blank>]
expected: FAIL
[Parsing: <http://@pple.com> against <about:blank>]
expected: FAIL
[Parsing: <http::b@www.example.com> against <about:blank>]
expected: FAIL
[Parsing: <http:/:b@www.example.com> against <about:blank>]
expected: FAIL
[Parsing: <http://:b@www.example.com> against <about:blank>]
expected: FAIL
[Parsing: <http:a:@www.example.com> against <about:blank>]
expected: FAIL
[Parsing: <http:/a:@www.example.com> against <about:blank>]
expected: FAIL
[Parsing: <http://a:@www.example.com> against <about:blank>]
expected: FAIL
[Parsing: <http://www.@pple.com> against <about:blank>]
expected: FAIL
[Parsing: <http://:@www.example.com> against <about:blank>]
expected: FAIL
[Parsing: </> against <http://www.example.com/test>]
expected: FAIL
[Parsing: </test.txt> against <http://www.example.com/test>]
expected: FAIL
[Parsing: <.> against <http://www.example.com/test>]
expected: FAIL
[Parsing: <..> against <http://www.example.com/test>]
expected: FAIL
[Parsing: <test.txt> against <http://www.example.com/test>]
expected: FAIL
[Parsing: <./test.txt> against <http://www.example.com/test>]
expected: FAIL
[Parsing: <../test.txt> against <http://www.example.com/test>]
expected: FAIL
[Parsing: <../aaa/test.txt> against <http://www.example.com/test>]
expected: FAIL
[Parsing: <../../test.txt> against <http://www.example.com/test>]
expected: FAIL
[Parsing: <中/test.txt> against <http://www.example.com/test>]
expected: FAIL
[Parsing: <http://www.example2.com> against <http://www.example.com/test>]
expected: FAIL
[Parsing: <//www.example2.com> against <http://www.example.com/test>]
expected: FAIL
[Parsing: <http://ExAmPlE.CoM> against <http://other.com/>]
expected: FAIL
[Parsing: <http://GOOgoo.com> against <http://other.com/>]
expected: FAIL
[Parsing: <http://www.foo。bar.com> against <http://other.com/>]
expected: FAIL
[Parsing: <http://.com> against <http://other.com/>]
expected: FAIL
[Parsing: <http://你好你好> against <http://other.com/>]
expected: FAIL
[Parsing: <http://%30%78%63%30%2e%30%32%35%30.01> against <http://other.com/>]
expected: FAIL
[Parsing: <http://%30%78%63%30%2e%30%32%35%30.01%2e> against <http://other.com/>]
expected: FAIL
[Parsing: <http://> against <http://other.com/>]
expected: FAIL
[Parsing: <http://foo:💩@example.com/bar> against <http://other.com/>]
expected: FAIL
[Parsing: </some/path> against <http://user@example.org/smth>]
expected: FAIL
[Parsing: <> against <http://user:pass@example.org:21/smth>]
expected: FAIL
[Parsing: </some/path> against <http://user:pass@example.org:21/smth>]
expected: FAIL
[Parsing: <#> against <test:test>]
expected: FAIL
[Parsing: <#x> against <mailto:x@x.com>]
expected: FAIL
[Parsing: <#x> against <data:,>]
expected: FAIL
[Parsing: <#x> against <about:blank>]
expected: FAIL
[Parsing: <#> against <test:test?test>]
expected: FAIL
[Parsing: <https://@test@test@example:800/> against <http://doesnotmatter/>]
expected: FAIL
[Parsing: <https://@@@example> against <http://doesnotmatter/>]
expected: FAIL
[Parsing: <http://`{}:`{}@h/`{}?`{}> against <http://doesnotmatter/>]
expected: FAIL
[Parsing: <i> against <sc:/pa/pa>]
expected: FAIL
[Parsing: <i> against <sc://ho/pa>]
expected: FAIL
[Parsing: <i> against <sc:///pa/pa>]
expected: FAIL
[Parsing: <../i> against <sc:/pa/pa>]
expected: FAIL
[Parsing: <../i> against <sc://ho/pa>]
expected: FAIL
[Parsing: <../i> against <sc:///pa/pa>]
expected: FAIL
[Parsing: </i> against <sc:/pa/pa>]
expected: FAIL
[Parsing: </i> against <sc://ho/pa>]
expected: FAIL
[Parsing: </i> against <sc:///pa/pa>]
expected: FAIL
[Parsing: <?i> against <sc:/pa/pa>]
expected: FAIL
[Parsing: <?i> against <sc://ho/pa>]
expected: FAIL
[Parsing: <?i> against <sc:///pa/pa>]
expected: FAIL
[Parsing: <#i> against <sc:sd>]
expected: FAIL
[Parsing: <#i> against <sc:sd/sd>]
expected: FAIL
[Parsing: <#i> against <sc:/pa/pa>]
expected: FAIL
[Parsing: <#i> against <sc://ho/pa>]
expected: FAIL
[Parsing: <#i> against <sc:///pa/pa>]
expected: FAIL
[Parsing: <about:/../> against <about:blank>]
expected: FAIL
[Parsing: <data:/../> against <about:blank>]
expected: FAIL
[Parsing: <javascript:/../> against <about:blank>]
expected: FAIL
[Parsing: <mailto:/../> against <about:blank>]
expected: FAIL
[Parsing: <sc://ñ.test/> against <about:blank>]
expected: FAIL
[Parsing: <sc:\\../> against <about:blank>]
expected: FAIL
[Parsing: <http://127.0.0.1:10100/relative_import.html> against <about:blank>]
expected: FAIL
[Parsing: <http://facebook.com/?foo=%7B%22abc%22> against <about:blank>]
expected: FAIL
[Parsing: <https://localhost:3000/jqueryui@1.2.3> against <about:blank>]
expected: FAIL
[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>]
expected: FAIL
[Parsing: <?a=b&c=d> against <http://example.org/foo/bar>]
expected: FAIL
[Parsing: <??a=b&c=d> against <http://example.org/foo/bar>]
expected: FAIL
[Parsing: <sc::a@example.net> against <about:blank>]
expected: FAIL
[Parsing: <http:> against <http://example.org/foo/bar>]
expected: FAIL
[Parsing: <sc:> against <https://example.org/foo/bar>]
expected: FAIL
[Parsing: <tel:1234567890> against <http://example.org/foo/bar>]
expected: FAIL