diff options
Diffstat (limited to '')
33 files changed, 17771 insertions, 0 deletions
diff --git a/testing/web-platform/meta/url/IdnaTestV2.window.js.ini b/testing/web-platform/meta/url/IdnaTestV2.window.js.ini new file mode 100644 index 0000000000..c87884c039 --- /dev/null +++ b/testing/web-platform/meta/url/IdnaTestV2.window.js.ini @@ -0,0 +1,156 @@ +[IdnaTestV2.window.html] + [ToASCII("ä..c") A4_2 (ignored)] + expected: FAIL + + [ToASCII("ä..c") A4_2 (ignored)] + expected: FAIL + + [ToASCII("Ä..C") A4_2 (ignored)] + expected: FAIL + + [ToASCII("Ä..C") A4_2 (ignored)] + expected: FAIL + + [ToASCII("ᡖ。̟ஂ-") P1; V5; V6; V3 (ignored)] + expected: FAIL + + [ToASCII("ᡖ。̟ஂ-") P1; V5; V6; V3 (ignored)] + expected: FAIL + + [ToASCII("-.ᢆ-") P1; V5; V6; V3 (ignored)] + expected: FAIL + + [ToASCII("⒈䰹-。웈") C2; P1; V6; V3 (ignored)] + expected: FAIL + + [ToASCII("⒈䰹-。웈") C2; P1; V6; V3 (ignored)] + expected: FAIL + + [ToASCII("1.䰹-。웈") C2; V3 (ignored)] + expected: FAIL + + [ToASCII("1.䰹-。웈") C2; V3 (ignored)] + expected: FAIL + + [ToASCII("1.xn----tgnz80r.xn--kp5b") C2; V3 (ignored)] + expected: FAIL + + [ToASCII("-𐋷𖾑。󠆬") V3 (ignored)] + expected: FAIL + + [ToASCII("ꡆ。Ↄྵ놮-") P1; V6; V3 (ignored)] + expected: FAIL + + [ToASCII("ꡆ。Ↄྵ놮-") P1; V6; V3 (ignored)] + expected: FAIL + + [ToASCII("︅。。𦀾᳠") A4_2 (ignored)] + expected: FAIL + + [ToASCII("ς-。𝟭-") C1; V3 (ignored)] + expected: FAIL + + [ToASCII("ς-。1-") C1; V3 (ignored)] + expected: FAIL + + [ToASCII("Σ-。1-") C1; V3 (ignored)] + expected: FAIL + + [ToASCII("σ-。1-") C1; V3 (ignored)] + expected: FAIL + + [ToASCII("xn----zmb.xn--1--i1t") C1; V3 (ignored)] + expected: FAIL + + [ToASCII("xn----xmb.xn--1--i1t") C1; V3 (ignored)] + expected: FAIL + + [ToASCII("Σ-。𝟭-") C1; V3 (ignored)] + expected: FAIL + + [ToASCII("σ-。𝟭-") C1; V3 (ignored)] + expected: FAIL + + [ToASCII("ς-.ⴣ𦟙") C2; V3 (ignored)] + expected: FAIL + + [ToASCII("σ-.ⴣ𦟙") C2; V3 (ignored)] + expected: FAIL + + [ToASCII("xn----zmb048s.xn--rlj2573p") C2; V3 (ignored)] + expected: FAIL + + [ToASCII("xn----xmb348s.xn--rlj2573p") C2; V3 (ignored)] + expected: FAIL + + [ToASCII("ᡲ-𝟹.ß--") C1; V3 (ignored)] + expected: FAIL + + [ToASCII("ᡲ-3.ß--") C1; V3 (ignored)] + expected: FAIL + + [ToASCII("ᡲ-3.SS--") C1; V3 (ignored)] + expected: FAIL + + [ToASCII("ᡲ-3.ss--") C1; V3 (ignored)] + expected: FAIL + + [ToASCII("ᡲ-3.Ss--") C1; V3 (ignored)] + expected: FAIL + + [ToASCII("xn---3-p9o.xn--ss---276a") C1; V3 (ignored)] + expected: FAIL + + [ToASCII("xn---3-p9o.xn-----fia9303a") C1; V3 (ignored)] + expected: FAIL + + [ToASCII("ᡲ-𝟹.SS--") C1; V3 (ignored)] + expected: FAIL + + [ToASCII("ᡲ-𝟹.ss--") C1; V3 (ignored)] + expected: FAIL + + [ToASCII("ᡲ-𝟹.Ss--") C1; V3 (ignored)] + expected: FAIL + + [ToASCII("-.-├") P1; V6; V3 (ignored)] + expected: FAIL + + [ToASCII("-፞𑜧.ᷫ-。") P1; V5; V6; V3 (ignored)] + expected: FAIL + + [ToASCII("-.ⴞ𐋷") C2; V3 (ignored)] + expected: FAIL + + [ToASCII("xn----ugn.xn--mlj8559d") C2; V3 (ignored)] + expected: FAIL + + [ToASCII("𝟛꣄𝆪。꣪-") V5; V3 (ignored)] + expected: FAIL + + [ToASCII("𝟛꣄𝆪。꣪-") V5; V3 (ignored)] + expected: FAIL + + [ToASCII("3꣄𝆪。꣪-") V5; V3 (ignored)] + expected: FAIL + + [ToASCII("xn--3-sl4eu679e.xn----xn4e") V5; V3 (ignored)] + expected: FAIL + + [ToASCII("ྔꡋ-.-𖬴") V5; V3 (ignored)] + expected: FAIL + + [ToASCII("ྔꡋ-.-𖬴") V5; V3 (ignored)] + expected: FAIL + + [ToASCII("xn----ukg9938i.xn----4u5m") V5; V3 (ignored)] + expected: FAIL + + [ToASCII("-.۠ᢚ-") P1; V5; V6; V3 (ignored)] + expected: FAIL + + [ToASCII("䃚蟥-。-⒈") P1; V6; V3 (ignored)] + expected: FAIL + + [ToASCII("䃚蟥-。-1.") P1; V6; V3 (ignored)] + expected: FAIL diff --git a/testing/web-platform/meta/url/__dir__.ini b/testing/web-platform/meta/url/__dir__.ini new file mode 100644 index 0000000000..61f482fa7a --- /dev/null +++ b/testing/web-platform/meta/url/__dir__.ini @@ -0,0 +1 @@ +leak-threshold: [default:51200, tab:51200] diff --git a/testing/web-platform/meta/url/a-element-origin-xhtml.xhtml.ini b/testing/web-platform/meta/url/a-element-origin-xhtml.xhtml.ini new file mode 100644 index 0000000000..4e6ef9d9ed --- /dev/null +++ b/testing/web-platform/meta/url/a-element-origin-xhtml.xhtml.ini @@ -0,0 +1,15 @@ +[a-element-origin-xhtml.xhtml] + [Parsing origin: <https://0x.0x.0> against <about:blank>] + expected: FAIL + + [Parsing origin: <ssh://example.com/foo/bar.git> against <http://example.org/>] + expected: FAIL + + [Parsing origin: <wss://!"$&'()*+,-.;=_`{}~/> against <about:blank>] + expected: FAIL + + [Parsing origin: <http://999999999.> against <http://other.com/>] + expected: FAIL + + [Parsing origin: <http://!"$&'()*+,-.;=_`{}~/> against <about:blank>] + expected: FAIL diff --git a/testing/web-platform/meta/url/a-element-origin.html.ini b/testing/web-platform/meta/url/a-element-origin.html.ini new file mode 100644 index 0000000000..2bd9c89f94 --- /dev/null +++ b/testing/web-platform/meta/url/a-element-origin.html.ini @@ -0,0 +1,15 @@ +[a-element-origin.html] + [Parsing origin: <https://0x.0x.0> against <about:blank>] + expected: FAIL + + [Parsing origin: <ssh://example.com/foo/bar.git> against <http://example.org/>] + expected: FAIL + + [Parsing origin: <wss://!"$&'()*+,-.;=_`{}~/> against <about:blank>] + expected: FAIL + + [Parsing origin: <http://999999999.> against <http://other.com/>] + expected: FAIL + + [Parsing origin: <http://!"$&'()*+,-.;=_`{}~/> against <about:blank>] + expected: FAIL diff --git a/testing/web-platform/meta/url/a-element-xhtml.xhtml.ini b/testing/web-platform/meta/url/a-element-xhtml.xhtml.ini new file mode 100644 index 0000000000..8d94602ad9 --- /dev/null +++ b/testing/web-platform/meta/url/a-element-xhtml.xhtml.ini @@ -0,0 +1,1517 @@ +[a-element-xhtml.xhtml] + [Parsing: <a:\t foo.com> against <http://example.org/foo/bar>] + expected: FAIL + + [Parsing: <http://foo.com:b@d/> 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: <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: <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: <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: <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: <data:text/html,test#test> against <http://example.org/foo/bar>] + expected: FAIL + + [Parsing: <file:c:\\foo\\bar.html> against <file:///tmp/mock/path>] + expected: FAIL + + [Parsing: < File:c|////foo\\bar.html> against <file:///tmp/mock/path>] + expected: FAIL + + [Parsing: <C|/foo/bar> against <file:///tmp/mock/path>] + expected: FAIL + + [Parsing: <//server/file> against <file:///tmp/mock/path>] + expected: FAIL + + [Parsing: <\\\\server\\file> against <file:///tmp/mock/path>] + expected: FAIL + + [Parsing: </\\server/file> against <file:///tmp/mock/path>] + expected: FAIL + + [Parsing: <file://test> against <file:///tmp/mock/path>] + expected: FAIL + + [Parsing: <http://example.com/foo/%2e> against <about:blank>] + expected: FAIL + + [Parsing: <data:test# »> against <about:blank>] + expected: FAIL + + [Parsing: <httpa://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: <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: <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: <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: <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.@pple.com> against <about:blank>] + expected: FAIL + + [Parsing: <file:..> against <http://www.example.com/test>] + expected: FAIL + + [Parsing: <http://192.168.0.257> 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: <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: <sc::a@example.net> against <about:blank>] + expected: FAIL + + [Parsing: <tel:1234567890> against <http://example.org/foo/bar>] + expected: FAIL + + [Parsing: <non-special://test:@test/x> against <about:blank>] + expected: FAIL + + [Parsing: <non-special://:@test/x> against <about:blank>] + expected: FAIL + + [Parsing: <http://10000000000> against <http://other.com/>] + expected: FAIL + + [Parsing: <http://4294967296> against <http://other.com/>] + expected: FAIL + + [Parsing: <http://0xffffffff1> against <http://other.com/>] + expected: FAIL + + [Parsing: <http://256.256.256.256> against <http://other.com/>] + expected: FAIL + + [Parsing: <..> against <file:///C:/>] + expected: FAIL + + [Parsing: <lolscheme:x x#x x> against <about:blank>] + expected: FAIL + + [Parsing: <file://example:1/> against <about:blank>] + expected: FAIL + + [Parsing: <file://example:test/> against <about:blank>] + expected: FAIL + + [Parsing: <file://example%/> against <about:blank>] + expected: FAIL + + [Parsing: <file://[example\]/> against <about:blank>] + expected: FAIL + + [Parsing: <sc://%/> against <about:blank>] + expected: FAIL + + [Parsing: <sc://@/> against <about:blank>] + expected: FAIL + + [Parsing: <sc://te@s:t@/> against <about:blank>] + expected: FAIL + + [Parsing: <sc://:/> against <about:blank>] + expected: FAIL + + [Parsing: <sc://:12/> against <about:blank>] + expected: FAIL + + [Parsing: <x> against <sc://ñ>] + expected: FAIL + + [Parsing: </> against <file:///C:/a/b>] + expected: FAIL + + [Parsing: <//d:> against <file:///C:/a/b>] + expected: + if os == "win": FAIL + + [Parsing: <sc://ñ> against <about:blank>] + expected: FAIL + + [Parsing: <sc://ñ?x> against <about:blank>] + expected: FAIL + + [Parsing: <sc://ñ#x> against <about:blank>] + expected: FAIL + + [Parsing: <#x> against <sc://ñ>] + expected: FAIL + + [Parsing: <?x> against <sc://ñ>] + expected: FAIL + + [Parsing: <///> against <sc://x/>] + expected: FAIL + + [Parsing: <////> against <sc://x/>] + expected: FAIL + + [Parsing: <////x/> against <sc://x/>] + expected: FAIL + + [Parsing: <tftp://foobar.com/someconfig;mode=netascii> against <about:blank>] + expected: FAIL + + [Parsing: <telnet://user:pass@foobar.com:23/> against <about:blank>] + expected: FAIL + + [Parsing: <ut2004://10.10.10.10:7777/Index.ut2> against <about:blank>] + expected: FAIL + + [Parsing: <redis://foo:bar@somehost:6379/0?baz=bam&qux=baz> against <about:blank>] + expected: FAIL + + [Parsing: <rsync://foo@host:911/sup> against <about:blank>] + expected: FAIL + + [Parsing: <git://github.com/foo/bar.git> against <about:blank>] + expected: FAIL + + [Parsing: <irc://myserver.com:6999/channel?passwd> against <about:blank>] + expected: FAIL + + [Parsing: <dns://fw.example.org:9999/foo.bar.org?type=TXT> against <about:blank>] + expected: FAIL + + [Parsing: <ldap://localhost:389/ou=People,o=JNDITutorial> against <about:blank>] + expected: FAIL + + [Parsing: <git+https://github.com/foo/bar> against <about:blank>] + expected: FAIL + + [Parsing: <urn:ietf:rfc:2648> against <about:blank>] + expected: FAIL + + [Parsing: <tag:joe@example.org,2001:foo/bar> against <about:blank>] + expected: FAIL + + [Parsing: <non-special://%E2%80%A0/> against <about:blank>] + expected: FAIL + + [Parsing: <non-special://H%4fSt/path> against <about:blank>] + expected: FAIL + + [Parsing: <non-special://[1:2:0:0:5:0:0:0\]/> against <about:blank>] + expected: FAIL + + [Parsing: <non-special://[1:2:0:0:0:0:0:3\]/> against <about:blank>] + expected: FAIL + + [Parsing: <non-special://[1:2::3\]:80/> against <about:blank>] + expected: FAIL + + [Parsing: <non-special://[:80/> against <about:blank>] + expected: FAIL + + [Parsing: <sc://faß.ExAmPlE/> against <about:blank>] + expected: FAIL + + [Parsing: <wow:%NBD> against <about:blank>] + expected: FAIL + + [Parsing: <wow:%1G> against <about:blank>] + expected: FAIL + + [Parsing: <https://0x.0x.0> against <about:blank>] + expected: FAIL + + [Parsing: <blob:https://example.com:443/> against <about:blank>] + expected: FAIL + + [Parsing: <blob:d3958f5c-0777-0845-9dcf-2cb28783acaf> against <about:blank>] + expected: FAIL + + [Parsing: <non-special://f:999999/c> against <http://example.org/foo/bar>] + expected: FAIL + + [Parsing: <file://spider///> against <about:blank>] + expected: FAIL + + [Parsing: </..//localhost//pig> against <file://lion/>] + expected: FAIL + + [Parsing: </rooibos> against <file://tea/>] + expected: FAIL + + [Parsing: </?chai> against <file://tea/>] + expected: FAIL + + [Parsing: <C|> against <file://host/dir/file>] + expected: FAIL + + [Parsing: <C|#> against <file://host/dir/file>] + expected: FAIL + + [Parsing: <C|?> against <file://host/dir/file>] + expected: FAIL + + [Parsing: <C|/> against <file://host/dir/file>] + expected: FAIL + + [Parsing: <C|\\> against <file://host/dir/file>] + expected: FAIL + + [Parsing: <C> against <file://host/dir/file>] + expected: FAIL + + [Parsing: <C|a> against <file://host/dir/file>] + expected: FAIL + + [Parsing: <C|\n/> against <file://host/dir/file>] + expected: FAIL + + [Parsing: <https://0x100000000/test> against <about:blank>] + expected: FAIL + + [Parsing: <https://256.0.0.1/test> against <about:blank>] + expected: FAIL + + [Parsing: <test-a-colon-slash.html> against <a:/>] + expected: FAIL + + [Parsing: <test-a-colon-slash-slash.html> against <a://>] + expected: FAIL + + [Parsing: <test-a-colon-slash-b.html> against <a:/b>] + expected: FAIL + + [Parsing: <test-a-colon-slash-slash-b.html> against <a://b>] + expected: FAIL + + [Parsing: <notspecial://host/?'> against <about:blank>] + expected: FAIL + + [Parsing: <sc://faß.ExAmPlE/> against <about:blank>] + expected: FAIL + + [Parsing: <sc://ñ> against <about:blank>] + expected: FAIL + + [Parsing: <sc://ñ.test/> against <about:blank>] + expected: FAIL + + [Parsing: <sc://ñ#x> against <about:blank>] + expected: FAIL + + [Parsing: <x> against <sc://ñ>] + expected: FAIL + + [Parsing: <data:test# »> against <about:blank>] + expected: FAIL + + [Parsing: <wow:> against <about:blank>] + expected: FAIL + + [Parsing: <sc://ñ?x> against <about:blank>] + expected: FAIL + + [Parsing: <?x> against <sc://ñ>] + expected: FAIL + + [Parsing: <#x> against <sc://ñ>] + expected: FAIL + + [Parsing: <a1234567890-+.:foo/bar> against <http://example.com/dir/file>] + expected: FAIL + + [Parsing: <non-spec://example.org/test?a#b\x00c> against <about:blank>] + expected: FAIL + + [Parsing: <non-spec:/test?a#b\x00c> against <about:blank>] + expected: FAIL + + [Parsing: <file:///p> against <about:blank>] + expected: FAIL + + [Parsing: <file://ab/p> against <about:blank>] + expected: FAIL + + [Parsing: <file://%C2%AD/p> against <about:blank>] + expected: FAIL + + [Parsing: <file://xn--/p> against <about:blank>] + expected: FAIL + + [Parsing: <file:///y:> against <about:blank>] + expected: + if os == "win": FAIL + + [Parsing: <file:///Y:> against <about:blank>] + expected: + if os == "win": FAIL + + [Parsing: <file://a%C2%ADb/p> against <about:blank>] + expected: FAIL + + [Parsing: <non-special:cannot-be-a-base-url-\x00\x01\x1f\x1e~> against <about:blank>] + expected: FAIL + + [Parsing: </..//path> against <non-spec:/p>] + expected: FAIL + + [Parsing: <non-spec:/a/..//path> against <about:blank>] + expected: FAIL + + [Parsing: <path> against <non-spec:/..//p>] + expected: FAIL + + [Parsing: <..//path> against <non-spec:/p>] + expected: FAIL + + [Parsing: <> against <non-spec:/..//p>] + expected: FAIL + + [Parsing: <non-spec:/.//> against <about:blank>] + expected: FAIL + + [Parsing: <non-spec:/..//path> against <about:blank>] + expected: FAIL + + [Parsing: <a/..//path> against <non-spec:/p>] + expected: FAIL + + [Parsing: </.//path> against <non-spec:/p>] + expected: FAIL + + [Parsing: <non-spec:/a/..//> against <about:blank>] + expected: FAIL + + [Parsing: <../path> against <non-spec:/.//p>] + expected: FAIL + + [Parsing: <non-spec:/.//path> against <about:blank>] + expected: FAIL + + [Parsing: <non-spec:/..//> against <about:blank>] + expected: FAIL + + [Parsing: <file://[1::8\]/C:/> against <about:blank>] + expected: FAIL + + [Parsing: <//one/two> against <file:///>] + expected: FAIL + + [Parsing: <file://1.2.3.4/C:/> against <about:blank>] + expected: FAIL + + [Parsing: <file://example.net/C:/> against <about:blank>] + expected: FAIL + + [Parsing: </c:/foo/bar> against <file://host/path>] + expected: FAIL + + [Parsing: <C|> against <file://host/D:/dir1/dir2/file>] + expected: FAIL + + [Parsing: </> against <file://h/C:/a/b>] + expected: FAIL + + [Parsing: </> against <file://h/a/b>] + expected: FAIL + + [Parsing: <foo:// !"$%&'()*+,-.;<=>@[\\\]^_`{|}~@host/> against <about:blank>] + expected: FAIL + + [Parsing: <wss:// !"$%&'()*+,-.;<=>@[\]^_`{|}~@host/> against <about:blank>] + expected: FAIL + + [Parsing: <foo://joe: !"$%&'()*+,-.:;<=>@[\\\]^_`{|}~@host/> against <about:blank>] + expected: FAIL + + [Parsing: <wss://joe: !"$%&'()*+,-.:;<=>@[\]^_`{|}~@host/> against <about:blank>] + expected: FAIL + + [Parsing: <foo://!"$%&'()*+,-.;=_`{}~/> against <about:blank>] + expected: FAIL + + [Parsing: <wss://!"$&'()*+,-.;=_`{}~/> against <about:blank>] + expected: FAIL + + [Parsing: <foo://host/ !"$%&'()*+,-./:;<=>@[\\\]^_`{|}~> against <about:blank>] + expected: FAIL + + [Parsing: <wss://host/ !"$%&'()*+,-./:;<=>@[\\\]^_`{|}~> against <about:blank>] + expected: FAIL + + [Parsing: <foo://host/dir/? !"$%&'()*+,-./:;<=>?@[\\\]^_`{|}~> against <about:blank>] + expected: FAIL + + [Parsing: <foo://host/dir/# !"#$%&'()*+,-./:;<=>?@[\\\]^_`{|}~> against <about:blank>] + expected: FAIL + + [Parsing: <file://%43%3A> against <about:blank>] + expected: FAIL + + [Parsing: <file://%43%7C> against <about:blank>] + expected: FAIL + + [Parsing: <file://%43|> against <about:blank>] + expected: FAIL + + [Parsing: <file://C%7C> against <about:blank>] + expected: FAIL + + [Parsing: <file://%43%7C/> against <about:blank>] + expected: FAIL + + [Parsing: <asdf://%43|/> against <about:blank>] + expected: FAIL + + [Parsing: <asdf://%43%7C/> against <about:blank>] + expected: FAIL + + [Parsing: <C|/> against <file://host/>] + expected: FAIL + + [Parsing: </C:/> against <file://host/>] + expected: FAIL + + [Parsing: <file:C:/> against <file://host/>] + expected: FAIL + + [Parsing: <file:/C:/> against <file://host/>] + expected: FAIL + + [Parsing: <foo://ho\tst/> against <about:blank>] + expected: FAIL + + [Parsing: <foo://ho\nst/> against <about:blank>] + expected: FAIL + + [Parsing: <foo://ho\rst/> against <about:blank>] + expected: FAIL + + [Parsing: <abc:rootless> against <abc://host/path>] + expected: FAIL + + [Parsing: <abc:rootless> against <abc:/path>] + expected: FAIL + + [Parsing: <abc:rootless> against <abc:path>] + expected: FAIL + + [Parsing: <abc:/rooted> against <abc://host/path>] + expected: FAIL + + [Parsing: <http://999999999.> against <http://other.com/>] + expected: FAIL + + [Parsing: <http://1.2.3.4.5> against <http://other.com/>] + expected: FAIL + + [Parsing: <http://1.2.3.4.5.> against <http://other.com/>] + expected: FAIL + + [Parsing: <http://0..0x300/> against <about:blank>] + expected: FAIL + + [Parsing: <http://0..0x300./> against <about:blank>] + expected: FAIL + + [Parsing: <http://256.256.256.256.256> against <http://other.com/>] + expected: FAIL + + [Parsing: <http://256.256.256.256.256.> against <http://other.com/>] + expected: FAIL + + [Parsing: <http://1.2.3.08> against <about:blank>] + expected: FAIL + + [Parsing: <http://1.2.3.08.> against <about:blank>] + expected: FAIL + + [Parsing: <http://1.2.3.09> against <about:blank>] + expected: FAIL + + [Parsing: <http://09.2.3.4> against <about:blank>] + expected: FAIL + + [Parsing: <http://09.2.3.4.> against <about:blank>] + expected: FAIL + + [Parsing: <http://01.2.3.4.5> against <about:blank>] + expected: FAIL + + [Parsing: <http://01.2.3.4.5.> against <about:blank>] + expected: FAIL + + [Parsing: <http://0x100.2.3.4> against <about:blank>] + expected: FAIL + + [Parsing: <http://0x100.2.3.4.> against <about:blank>] + expected: FAIL + + [Parsing: <http://0x1.2.3.4.5> against <about:blank>] + expected: FAIL + + [Parsing: <http://0x1.2.3.4.5.> against <about:blank>] + expected: FAIL + + [Parsing: <http://foo.1.2.3.4> against <about:blank>] + expected: FAIL + + [Parsing: <http://foo.1.2.3.4.> against <about:blank>] + expected: FAIL + + [Parsing: <http://foo.2.3.4> against <about:blank>] + expected: FAIL + + [Parsing: <http://foo.2.3.4.> against <about:blank>] + expected: FAIL + + [Parsing: <http://foo.09> against <about:blank>] + expected: FAIL + + [Parsing: <http://foo.09.> against <about:blank>] + expected: FAIL + + [Parsing: <http://foo.0x4> against <about:blank>] + expected: FAIL + + [Parsing: <http://foo.0x4.> against <about:blank>] + expected: FAIL + + [Parsing: <http://0999999999999999999/> against <about:blank>] + expected: FAIL + + [Parsing: <http://foo.0x> against <about:blank>] + expected: FAIL + + [Parsing: <http://foo.0XFfFfFfFfFfFfFfFfFfAcE123> against <about:blank>] + expected: FAIL + + [Parsing: <http://💩.123/> against <about:blank>] + expected: FAIL + + [Parsing: <http://a.b.c.XN--pokxncvks> against <about:blank>] + expected: FAIL + + [Parsing: <http://a.b.c.Xn--pokxncvks> against <about:blank>] + expected: FAIL + + [Parsing: <http://10.0.0.XN--pokxncvks> against <about:blank>] + expected: FAIL + + [Parsing: <http://10.0.0.xN--pokxncvks> against <about:blank>] + expected: FAIL + + [Parsing: <sc://a\x00b/> against <about:blank>] + expected: FAIL + + [Parsing: <sc://a b/> against <about:blank>] + expected: FAIL + + [Parsing: <sc://a<b> against <about:blank>] + expected: FAIL + + [Parsing: <sc://a>b> against <about:blank>] + expected: FAIL + + [Parsing: <sc://a[b/> against <about:blank>] + expected: FAIL + + [Parsing: <sc://a\\b/> against <about:blank>] + expected: FAIL + + [Parsing: <sc://a\]b/> against <about:blank>] + expected: FAIL + + [Parsing: <sc://a^b> against <about:blank>] + expected: FAIL + + [Parsing: <sc://a|b/> against <about:blank>] + expected: FAIL + + [Parsing: <http://!"$&'()*+,-.;=_`{}~/> against <about:blank>] + expected: FAIL + + [Parsing: <sc://\x01\x02\x03\x04\x05\x06\x07\x08\x0b\x0c\x0e\x0f\x10\x11\x12\x13\x14\x15\x16\x17\x18\x19\x1a\x1b\x1c\x1d\x1e\x1f!"$%&'()*+,-.;=_`{}~/> against <about:blank>] + expected: FAIL + + [Parsing: <h://.> against <about:blank>] + expected: FAIL + + +[a-element-xhtml.xhtml?include=file] + [Parsing: <file://example:1/> against <about:blank>] + expected: FAIL + + [Parsing: <file://example:test/> against <about:blank>] + expected: FAIL + + [Parsing: <file://example%/> against <about:blank>] + expected: FAIL + + [Parsing: <file://[example\]/> against <about:blank>] + expected: FAIL + + [Parsing: <file:c:\\foo\\bar.html> against <file:///tmp/mock/path>] + expected: FAIL + + [Parsing: < File:c|////foo\\bar.html> against <file:///tmp/mock/path>] + expected: FAIL + + [Parsing: <C|/foo/bar> against <file:///tmp/mock/path>] + expected: FAIL + + [Parsing: <//server/file> against <file:///tmp/mock/path>] + expected: FAIL + + [Parsing: <\\\\server\\file> against <file:///tmp/mock/path>] + expected: FAIL + + [Parsing: </\\server/file> against <file:///tmp/mock/path>] + expected: FAIL + + [Parsing: <file://test> against <file:///tmp/mock/path>] + expected: FAIL + + [Parsing: <file:..> against <http://www.example.com/test>] + expected: FAIL + + [Parsing: <file://%43%3A> against <about:blank>] + expected: FAIL + + [Parsing: <file://%43%7C> against <about:blank>] + expected: FAIL + + [Parsing: <file://%43|> against <about:blank>] + expected: FAIL + + [Parsing: <file://C%7C> against <about:blank>] + expected: FAIL + + [Parsing: <file://%43%7C/> against <about:blank>] + expected: FAIL + + [Parsing: <..> against <file:///C:/>] + expected: FAIL + + [Parsing: </> against <file:///C:/a/b>] + expected: FAIL + + [Parsing: </> against <file://h/C:/a/b>] + expected: FAIL + + [Parsing: </> against <file://h/a/b>] + expected: FAIL + + [Parsing: <//d:> against <file:///C:/a/b>] + expected: + if os == "win": FAIL + + [Parsing: <file://spider///> against <about:blank>] + expected: FAIL + + [Parsing: </..//localhost//pig> against <file://lion/>] + expected: FAIL + + [Parsing: </rooibos> against <file://tea/>] + expected: FAIL + + [Parsing: </?chai> against <file://tea/>] + expected: FAIL + + [Parsing: <C|> against <file://host/dir/file>] + expected: FAIL + + [Parsing: <C|> against <file://host/D:/dir1/dir2/file>] + expected: FAIL + + [Parsing: <C|#> against <file://host/dir/file>] + expected: FAIL + + [Parsing: <C|?> against <file://host/dir/file>] + expected: FAIL + + [Parsing: <C|/> against <file://host/dir/file>] + expected: FAIL + + [Parsing: <C|\n/> against <file://host/dir/file>] + expected: FAIL + + [Parsing: <C|\\> against <file://host/dir/file>] + expected: FAIL + + [Parsing: <C> against <file://host/dir/file>] + expected: FAIL + + [Parsing: <C|a> against <file://host/dir/file>] + expected: FAIL + + [Parsing: </c:/foo/bar> against <file://host/path>] + expected: FAIL + + [Parsing: <file://example.net/C:/> against <about:blank>] + expected: FAIL + + [Parsing: <file://1.2.3.4/C:/> against <about:blank>] + expected: FAIL + + [Parsing: <file://[1::8\]/C:/> against <about:blank>] + expected: FAIL + + [Parsing: <C|/> against <file://host/>] + expected: FAIL + + [Parsing: </C:/> against <file://host/>] + expected: FAIL + + [Parsing: <file:C:/> against <file://host/>] + expected: FAIL + + [Parsing: <file:/C:/> against <file://host/>] + expected: FAIL + + [Parsing: <file:///Y:> against <about:blank>] + expected: + if os == "win": FAIL + + [Parsing: <file:///y:> against <about:blank>] + expected: + if os == "win": FAIL + + [Parsing: <//one/two> against <file:///>] + expected: FAIL + + [Parsing: <file://ab/p> against <about:blank>] + expected: FAIL + + [Parsing: <file://a%C2%ADb/p> against <about:blank>] + expected: FAIL + + [Parsing: <file:///p> against <about:blank>] + expected: FAIL + + [Parsing: <file://%C2%AD/p> against <about:blank>] + expected: FAIL + + [Parsing: <file://xn--/p> against <about:blank>] + expected: FAIL + + +[a-element-xhtml.xhtml?include=javascript] + [Parsing: <javascript:/../> against <about:blank>] + expected: FAIL + + [Parsing: <javascript://example.com:8080/pathname?search#hash> against <about:blank>] + expected: FAIL + + [Parsing: <javascript:///test> against <about:blank>] + expected: FAIL + + [Parsing: <javascript://test/a/../b> against <about:blank>] + expected: FAIL + + [Parsing: <javascript://:443> against <about:blank>] + expected: FAIL + + [Parsing: <javascript://test:test> against <about:blank>] + expected: FAIL + + [Parsing: <javascript://[:1\]> against <about:blank>] + expected: FAIL + + +[a-element-xhtml.xhtml?exclude=(file|javascript|mailto)] + [Parsing: <non-special://test:@test/x> against <about:blank>] + expected: FAIL + + [Parsing: <non-special://:@test/x> against <about:blank>] + expected: FAIL + + [Parsing: <non-special://f:999999/c> against <http://example.org/foo/bar>] + expected: FAIL + + [Parsing: <http://foo.com:b@d/> 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: <http://example.com/foo/%2e> against <about:blank>] + expected: FAIL + + [Parsing: <httpa://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: <http://www.@pple.com> against <about:blank>] + expected: FAIL + + [Parsing: <sc://faß.ExAmPlE/> against <about:blank>] + expected: FAIL + + [Parsing: <http://192.168.0.257> against <http://other.com/>] + expected: FAIL + + [Parsing: <h://.> against <about:blank>] + expected: FAIL + + [Parsing: <notspecial://host/?'> against <about:blank>] + expected: FAIL + + [Parsing: <i> against <sc://ho/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://ho/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://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: <sc://ñ.test/> against <about:blank>] + expected: FAIL + + [Parsing: <sc://%/> against <about:blank>] + expected: FAIL + + [Parsing: <sc://@/> against <about:blank>] + expected: FAIL + + [Parsing: <sc://te@s:t@/> against <about:blank>] + expected: FAIL + + [Parsing: <sc://:/> against <about:blank>] + expected: FAIL + + [Parsing: <sc://:12/> against <about:blank>] + expected: FAIL + + [Parsing: <x> against <sc://ñ>] + expected: FAIL + + [Parsing: <sc://a\x00b/> against <about:blank>] + expected: FAIL + + [Parsing: <sc://a b/> against <about:blank>] + expected: FAIL + + [Parsing: <sc://a<b> against <about:blank>] + expected: FAIL + + [Parsing: <sc://a>b> against <about:blank>] + expected: FAIL + + [Parsing: <sc://a[b/> against <about:blank>] + expected: FAIL + + [Parsing: <sc://a\\b/> against <about:blank>] + expected: FAIL + + [Parsing: <sc://a\]b/> against <about:blank>] + expected: FAIL + + [Parsing: <sc://a^b> against <about:blank>] + expected: FAIL + + [Parsing: <sc://a|b/> against <about:blank>] + expected: FAIL + + [Parsing: <foo://ho\tst/> against <about:blank>] + expected: FAIL + + [Parsing: <foo://ho\nst/> against <about:blank>] + expected: FAIL + + [Parsing: <foo://ho\rst/> against <about:blank>] + expected: FAIL + + [Parsing: <http://!"$&'()*+,-.;=_`{}~/> against <about:blank>] + expected: FAIL + + [Parsing: <sc://\x01\x02\x03\x04\x05\x06\x07\x08\x0b\x0c\x0e\x0f\x10\x11\x12\x13\x14\x15\x16\x17\x18\x19\x1a\x1b\x1c\x1d\x1e\x1f!"$%&'()*+,-.;=_`{}~/> against <about:blank>] + expected: FAIL + + [Parsing: <http://999999999.> against <http://other.com/>] + expected: FAIL + + [Parsing: <http://10000000000> against <http://other.com/>] + expected: FAIL + + [Parsing: <http://4294967296> against <http://other.com/>] + expected: FAIL + + [Parsing: <http://0xffffffff1> against <http://other.com/>] + expected: FAIL + + [Parsing: <http://256.256.256.256> against <http://other.com/>] + expected: FAIL + + [Parsing: <https://0x.0x.0> against <about:blank>] + expected: FAIL + + [Parsing: <https://0x100000000/test> against <about:blank>] + expected: FAIL + + [Parsing: <https://256.0.0.1/test> against <about:blank>] + expected: FAIL + + [Parsing: <asdf://%43|/> against <about:blank>] + expected: FAIL + + [Parsing: <asdf://%43%7C/> against <about:blank>] + expected: FAIL + + [Parsing: <sc://ñ> against <about:blank>] + expected: FAIL + + [Parsing: <sc://ñ?x> against <about:blank>] + expected: FAIL + + [Parsing: <sc://ñ#x> against <about:blank>] + expected: FAIL + + [Parsing: <#x> against <sc://ñ>] + expected: FAIL + + [Parsing: <?x> against <sc://ñ>] + expected: FAIL + + [Parsing: <///> against <sc://x/>] + expected: FAIL + + [Parsing: <////> against <sc://x/>] + expected: FAIL + + [Parsing: <////x/> against <sc://x/>] + expected: FAIL + + [Parsing: <tftp://foobar.com/someconfig;mode=netascii> against <about:blank>] + expected: FAIL + + [Parsing: <telnet://user:pass@foobar.com:23/> against <about:blank>] + expected: FAIL + + [Parsing: <ut2004://10.10.10.10:7777/Index.ut2> against <about:blank>] + expected: FAIL + + [Parsing: <redis://foo:bar@somehost:6379/0?baz=bam&qux=baz> against <about:blank>] + expected: FAIL + + [Parsing: <rsync://foo@host:911/sup> against <about:blank>] + expected: FAIL + + [Parsing: <git://github.com/foo/bar.git> against <about:blank>] + expected: FAIL + + [Parsing: <irc://myserver.com:6999/channel?passwd> against <about:blank>] + expected: FAIL + + [Parsing: <dns://fw.example.org:9999/foo.bar.org?type=TXT> against <about:blank>] + expected: FAIL + + [Parsing: <ldap://localhost:389/ou=People,o=JNDITutorial> against <about:blank>] + expected: FAIL + + [Parsing: <git+https://github.com/foo/bar> against <about:blank>] + expected: FAIL + + [Parsing: <non-spec:/.//> against <about:blank>] + expected: FAIL + + [Parsing: <non-spec:/..//> against <about:blank>] + expected: FAIL + + [Parsing: <non-spec:/a/..//> against <about:blank>] + expected: FAIL + + [Parsing: <non-spec:/.//path> against <about:blank>] + expected: FAIL + + [Parsing: <non-spec:/..//path> against <about:blank>] + expected: FAIL + + [Parsing: <non-spec:/a/..//path> against <about:blank>] + expected: FAIL + + [Parsing: </.//path> against <non-spec:/p>] + expected: FAIL + + [Parsing: </..//path> against <non-spec:/p>] + expected: FAIL + + [Parsing: <..//path> against <non-spec:/p>] + expected: FAIL + + [Parsing: <a/..//path> against <non-spec:/p>] + expected: FAIL + + [Parsing: <> against <non-spec:/..//p>] + expected: FAIL + + [Parsing: <path> against <non-spec:/..//p>] + expected: FAIL + + [Parsing: <non-special://%E2%80%A0/> against <about:blank>] + expected: FAIL + + [Parsing: <non-special://H%4fSt/path> against <about:blank>] + expected: FAIL + + [Parsing: <non-special://[1:2:0:0:5:0:0:0\]/> against <about:blank>] + expected: FAIL + + [Parsing: <non-special://[1:2:0:0:0:0:0:3\]/> against <about:blank>] + expected: FAIL + + [Parsing: <non-special://[1:2::3\]:80/> against <about:blank>] + expected: FAIL + + [Parsing: <non-special://[:80/> against <about:blank>] + expected: FAIL + + [Parsing: <test-a-colon-slash-slash.html> against <a://>] + expected: FAIL + + [Parsing: <test-a-colon-slash-slash-b.html> against <a://b>] + expected: FAIL + + [Parsing: <non-spec://example.org/test?a#b\x00c> against <about:blank>] + expected: FAIL + + [Parsing: <foo:// !"$%&'()*+,-.;<=>@[\\\]^_`{|}~@host/> against <about:blank>] + expected: FAIL + + [Parsing: <wss:// !"$%&'()*+,-.;<=>@[\]^_`{|}~@host/> against <about:blank>] + expected: FAIL + + [Parsing: <foo://joe: !"$%&'()*+,-.:;<=>@[\\\]^_`{|}~@host/> against <about:blank>] + expected: FAIL + + [Parsing: <wss://joe: !"$%&'()*+,-.:;<=>@[\]^_`{|}~@host/> against <about:blank>] + expected: FAIL + + [Parsing: <foo://!"$%&'()*+,-.;=_`{}~/> against <about:blank>] + expected: FAIL + + [Parsing: <wss://!"$&'()*+,-.;=_`{}~/> against <about:blank>] + expected: FAIL + + [Parsing: <foo://host/ !"$%&'()*+,-./:;<=>@[\\\]^_`{|}~> against <about:blank>] + expected: FAIL + + [Parsing: <wss://host/ !"$%&'()*+,-./:;<=>@[\\\]^_`{|}~> against <about:blank>] + expected: FAIL + + [Parsing: <foo://host/dir/? !"$%&'()*+,-./:;<=>?@[\\\]^_`{|}~> against <about:blank>] + expected: FAIL + + [Parsing: <foo://host/dir/# !"#$%&'()*+,-./:;<=>?@[\\\]^_`{|}~> against <about:blank>] + expected: FAIL + + [Parsing: <http://1.2.3.4.5> against <http://other.com/>] + expected: FAIL + + [Parsing: <http://1.2.3.4.5.> against <http://other.com/>] + expected: FAIL + + [Parsing: <http://0..0x300/> against <about:blank>] + expected: FAIL + + [Parsing: <http://0..0x300./> against <about:blank>] + expected: FAIL + + [Parsing: <http://256.256.256.256.256> against <http://other.com/>] + expected: FAIL + + [Parsing: <http://256.256.256.256.256.> against <http://other.com/>] + expected: FAIL + + [Parsing: <http://1.2.3.08> against <about:blank>] + expected: FAIL + + [Parsing: <http://1.2.3.08.> against <about:blank>] + expected: FAIL + + [Parsing: <http://1.2.3.09> against <about:blank>] + expected: FAIL + + [Parsing: <http://09.2.3.4> against <about:blank>] + expected: FAIL + + [Parsing: <http://09.2.3.4.> against <about:blank>] + expected: FAIL + + [Parsing: <http://01.2.3.4.5> against <about:blank>] + expected: FAIL + + [Parsing: <http://01.2.3.4.5.> against <about:blank>] + expected: FAIL + + [Parsing: <http://0x100.2.3.4> against <about:blank>] + expected: FAIL + + [Parsing: <http://0x100.2.3.4.> against <about:blank>] + expected: FAIL + + [Parsing: <http://0x1.2.3.4.5> against <about:blank>] + expected: FAIL + + [Parsing: <http://0x1.2.3.4.5.> against <about:blank>] + expected: FAIL + + [Parsing: <http://foo.1.2.3.4> against <about:blank>] + expected: FAIL + + [Parsing: <http://foo.1.2.3.4.> against <about:blank>] + expected: FAIL + + [Parsing: <http://foo.2.3.4> against <about:blank>] + expected: FAIL + + [Parsing: <http://foo.2.3.4.> against <about:blank>] + expected: FAIL + + [Parsing: <http://foo.09> against <about:blank>] + expected: FAIL + + [Parsing: <http://foo.09.> against <about:blank>] + expected: FAIL + + [Parsing: <http://foo.0x4> against <about:blank>] + expected: FAIL + + [Parsing: <http://foo.0x4.> against <about:blank>] + expected: FAIL + + [Parsing: <http://0999999999999999999/> against <about:blank>] + expected: FAIL + + [Parsing: <http://foo.0x> against <about:blank>] + expected: FAIL + + [Parsing: <http://foo.0XFfFfFfFfFfFfFfFfFfAcE123> against <about:blank>] + expected: FAIL + + [Parsing: <http://💩.123/> against <about:blank>] + expected: FAIL + + [Parsing: <foo://> against <http://example.org/foo/bar>] + expected: FAIL + + [Parsing: <sc://?> against <about:blank>] + expected: FAIL + + [Parsing: <sc://#> against <about:blank>] + expected: FAIL + + [Parsing: <data://example.com:8080/pathname?search#hash> against <about:blank>] + expected: FAIL + + [Parsing: <data:///test> against <about:blank>] + expected: FAIL + + [Parsing: <data://test/a/../b> against <about:blank>] + expected: FAIL + + [Parsing: <data://:443> against <about:blank>] + expected: FAIL + + [Parsing: <data://test:test> against <about:blank>] + expected: FAIL + + [Parsing: <data://[:1\]> against <about:blank>] + expected: FAIL + + [Parsing: <intent://example.com:8080/pathname?search#hash> against <about:blank>] + expected: FAIL + + [Parsing: <intent:///test> against <about:blank>] + expected: FAIL + + [Parsing: <intent://test/a/../b> against <about:blank>] + expected: FAIL + + [Parsing: <intent://:443> against <about:blank>] + expected: FAIL + + [Parsing: <intent://test:test> against <about:blank>] + expected: FAIL + + [Parsing: <intent://[:1\]> against <about:blank>] + expected: FAIL + + [Parsing: <urn://example.com:8080/pathname?search#hash> against <about:blank>] + expected: FAIL + + [Parsing: <urn:///test> against <about:blank>] + expected: FAIL + + [Parsing: <urn://test/a/../b> against <about:blank>] + expected: FAIL + + [Parsing: <urn://:443> against <about:blank>] + expected: FAIL + + [Parsing: <urn://test:test> against <about:blank>] + expected: FAIL + + [Parsing: <urn://[:1\]> against <about:blank>] + expected: FAIL + + [Parsing: <turn://example.com:8080/pathname?search#hash> against <about:blank>] + expected: FAIL + + [Parsing: <turn:///test> against <about:blank>] + expected: FAIL + + [Parsing: <turn://test/a/../b> against <about:blank>] + expected: FAIL + + [Parsing: <turn://:443> against <about:blank>] + expected: FAIL + + [Parsing: <turn://test:test> against <about:blank>] + expected: FAIL + + [Parsing: <turn://[:1\]> against <about:blank>] + expected: FAIL + + [Parsing: <stun://example.com:8080/pathname?search#hash> against <about:blank>] + expected: FAIL + + [Parsing: <stun:///test> against <about:blank>] + expected: FAIL + + [Parsing: <stun://test/a/../b> against <about:blank>] + expected: FAIL + + [Parsing: <stun://:443> against <about:blank>] + expected: FAIL + + [Parsing: <stun://test:test> against <about:blank>] + expected: FAIL + + [Parsing: <stun://[:1\]> against <about:blank>] + expected: FAIL + + +[a-element-xhtml.xhtml?include=mailto] + [Parsing: <mailto:/../> against <about:blank>] + expected: FAIL + + [Parsing: <mailto://example.com:8080/pathname?search#hash> against <about:blank>] + expected: FAIL + + [Parsing: <mailto:///test> against <about:blank>] + expected: FAIL + + [Parsing: <mailto://test/a/../b> against <about:blank>] + expected: FAIL + + [Parsing: <mailto://:443> against <about:blank>] + expected: FAIL + + [Parsing: <mailto://test:test> against <about:blank>] + expected: FAIL + + [Parsing: <mailto://[:1\]> against <about:blank>] + expected: FAIL diff --git a/testing/web-platform/meta/url/a-element.html.ini b/testing/web-platform/meta/url/a-element.html.ini new file mode 100644 index 0000000000..d2c8785e5e --- /dev/null +++ b/testing/web-platform/meta/url/a-element.html.ini @@ -0,0 +1,1546 @@ +[a-element.html] + expected: + if (os == "android") and fission: [OK, TIMEOUT] + [Parsing: <a:\t foo.com> against <http://example.org/foo/bar>] + expected: FAIL + + [Parsing: <http://foo.com:b@d/> 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: <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: <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: <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: <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: <data:text/html,test#test> against <http://example.org/foo/bar>] + expected: FAIL + + [Parsing: <file:c:\\foo\\bar.html> against <file:///tmp/mock/path>] + expected: FAIL + + [Parsing: < File:c|////foo\\bar.html> against <file:///tmp/mock/path>] + expected: FAIL + + [Parsing: <C|/foo/bar> against <file:///tmp/mock/path>] + expected: FAIL + + [Parsing: <//server/file> against <file:///tmp/mock/path>] + expected: FAIL + + [Parsing: <\\\\server\\file> against <file:///tmp/mock/path>] + expected: FAIL + + [Parsing: </\\server/file> against <file:///tmp/mock/path>] + expected: FAIL + + [Parsing: <file://test> against <file:///tmp/mock/path>] + expected: FAIL + + [Parsing: <http://example.com/foo/%2e> against <about:blank>] + expected: FAIL + + [Parsing: <data:test# »> against <about:blank>] + expected: FAIL + + [Parsing: <httpa://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: <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: <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: <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: <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.@pple.com> against <about:blank>] + expected: FAIL + + [Parsing: <http://192.168.0.257> 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: <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: <file:..> against <http://www.example.com/test>] + expected: FAIL + + [Parsing: <sc::a@example.net> against <about:blank>] + expected: FAIL + + [Parsing: <tel:1234567890> against <http://example.org/foo/bar>] + expected: FAIL + + [Parsing: <non-special://test:@test/x> against <about:blank>] + expected: FAIL + + [Parsing: <non-special://:@test/x> against <about:blank>] + expected: FAIL + + [Parsing: <http://10000000000> against <http://other.com/>] + expected: FAIL + + [Parsing: <http://4294967296> against <http://other.com/>] + expected: FAIL + + [Parsing: <http://0xffffffff1> against <http://other.com/>] + expected: FAIL + + [Parsing: <http://256.256.256.256> against <http://other.com/>] + expected: FAIL + + [Parsing: <..> against <file:///C:/>] + expected: FAIL + + [Parsing: <lolscheme:x x#x x> against <about:blank>] + expected: FAIL + + [Parsing: <file://example:1/> against <about:blank>] + expected: FAIL + + [Parsing: <file://example:test/> against <about:blank>] + expected: FAIL + + [Parsing: <file://example%/> against <about:blank>] + expected: FAIL + + [Parsing: <file://[example\]/> against <about:blank>] + expected: FAIL + + [Parsing: <sc://%/> against <about:blank>] + expected: FAIL + + [Parsing: <sc://@/> against <about:blank>] + expected: FAIL + + [Parsing: <sc://te@s:t@/> against <about:blank>] + expected: FAIL + + [Parsing: <sc://:/> against <about:blank>] + expected: FAIL + + [Parsing: <sc://:12/> against <about:blank>] + expected: FAIL + + [Parsing: <x> against <sc://ñ>] + expected: FAIL + + [Parsing: </> against <file:///C:/a/b>] + expected: FAIL + + [Parsing: <//d:> against <file:///C:/a/b>] + expected: + if os == "win": FAIL + + [Parsing: <sc://ñ> against <about:blank>] + expected: FAIL + + [Parsing: <sc://ñ?x> against <about:blank>] + expected: FAIL + + [Parsing: <sc://ñ#x> against <about:blank>] + expected: FAIL + + [Parsing: <#x> against <sc://ñ>] + expected: FAIL + + [Parsing: <?x> against <sc://ñ>] + expected: FAIL + + [Parsing: <///> against <sc://x/>] + expected: FAIL + + [Parsing: <////> against <sc://x/>] + expected: FAIL + + [Parsing: <////x/> against <sc://x/>] + expected: FAIL + + [Parsing: <tftp://foobar.com/someconfig;mode=netascii> against <about:blank>] + expected: FAIL + + [Parsing: <telnet://user:pass@foobar.com:23/> against <about:blank>] + expected: FAIL + + [Parsing: <ut2004://10.10.10.10:7777/Index.ut2> against <about:blank>] + expected: FAIL + + [Parsing: <redis://foo:bar@somehost:6379/0?baz=bam&qux=baz> against <about:blank>] + expected: FAIL + + [Parsing: <rsync://foo@host:911/sup> against <about:blank>] + expected: FAIL + + [Parsing: <git://github.com/foo/bar.git> against <about:blank>] + expected: FAIL + + [Parsing: <irc://myserver.com:6999/channel?passwd> against <about:blank>] + expected: FAIL + + [Parsing: <dns://fw.example.org:9999/foo.bar.org?type=TXT> against <about:blank>] + expected: FAIL + + [Parsing: <ldap://localhost:389/ou=People,o=JNDITutorial> against <about:blank>] + expected: FAIL + + [Parsing: <git+https://github.com/foo/bar> against <about:blank>] + expected: FAIL + + [Parsing: <urn:ietf:rfc:2648> against <about:blank>] + expected: FAIL + + [Parsing: <tag:joe@example.org,2001:foo/bar> against <about:blank>] + expected: FAIL + + [Parsing: <non-special://%E2%80%A0/> against <about:blank>] + expected: FAIL + + [Parsing: <non-special://H%4fSt/path> against <about:blank>] + expected: FAIL + + [Parsing: <non-special://[1:2:0:0:5:0:0:0\]/> against <about:blank>] + expected: FAIL + + [Parsing: <non-special://[1:2:0:0:0:0:0:3\]/> against <about:blank>] + expected: FAIL + + [Parsing: <non-special://[1:2::3\]:80/> against <about:blank>] + expected: FAIL + + [Parsing: <non-special://[:80/> against <about:blank>] + expected: FAIL + + [Parsing: <sc://faß.ExAmPlE/> against <about:blank>] + expected: FAIL + + [Parsing: <wow:%NBD> against <about:blank>] + expected: FAIL + + [Parsing: <wow:%1G> against <about:blank>] + expected: FAIL + + [Parsing: <https://0x.0x.0> against <about:blank>] + expected: FAIL + + [Parsing: <blob:https://example.com:443/> against <about:blank>] + expected: FAIL + + [Parsing: <blob:d3958f5c-0777-0845-9dcf-2cb28783acaf> against <about:blank>] + expected: FAIL + + [Parsing: <non-special://f:999999/c> against <http://example.org/foo/bar>] + expected: FAIL + + [Parsing: <file://spider///> against <about:blank>] + expected: FAIL + + [Parsing: </..//localhost//pig> against <file://lion/>] + expected: FAIL + + [Parsing: </rooibos> against <file://tea/>] + expected: FAIL + + [Parsing: </?chai> against <file://tea/>] + expected: FAIL + + [Parsing: <C|> against <file://host/dir/file>] + expected: FAIL + + [Parsing: <C|#> against <file://host/dir/file>] + expected: FAIL + + [Parsing: <C|?> against <file://host/dir/file>] + expected: FAIL + + [Parsing: <C|/> against <file://host/dir/file>] + expected: FAIL + + [Parsing: <C|\\> against <file://host/dir/file>] + expected: FAIL + + [Parsing: <C> against <file://host/dir/file>] + expected: FAIL + + [Parsing: <C|a> against <file://host/dir/file>] + expected: FAIL + + [Parsing: <C|\n/> against <file://host/dir/file>] + expected: FAIL + + [Parsing: <https://0x100000000/test> against <about:blank>] + expected: FAIL + + [Parsing: <https://256.0.0.1/test> against <about:blank>] + expected: FAIL + + [Parsing: <test-a-colon-slash.html> against <a:/>] + expected: FAIL + + [Parsing: <test-a-colon-slash-slash.html> against <a://>] + expected: FAIL + + [Parsing: <test-a-colon-slash-b.html> against <a:/b>] + expected: FAIL + + [Parsing: <test-a-colon-slash-slash-b.html> against <a://b>] + expected: FAIL + + [Parsing: <notspecial://host/?'> against <about:blank>] + expected: FAIL + + [Parsing: <sc://faß.ExAmPlE/> against <about:blank>] + expected: FAIL + + [Parsing: <sc://ñ> against <about:blank>] + expected: FAIL + + [Parsing: <sc://ñ.test/> against <about:blank>] + expected: FAIL + + [Parsing: <sc://ñ#x> against <about:blank>] + expected: FAIL + + [Parsing: <x> against <sc://ñ>] + expected: FAIL + + [Parsing: <data:test# »> against <about:blank>] + expected: FAIL + + [Parsing: <sc://ñ?x> against <about:blank>] + expected: FAIL + + [Parsing: <?x> against <sc://ñ>] + expected: FAIL + + [Parsing: <#x> against <sc://ñ>] + expected: FAIL + + [Parsing: <sc://faß.ExAmPlE/> against <about:blank>] + expected: FAIL + + [Parsing: <sc://ñ> against <about:blank>] + expected: FAIL + + [Parsing: <sc://ñ.test/> against <about:blank>] + expected: FAIL + + [Parsing: <sc://ñ#x> against <about:blank>] + expected: FAIL + + [Parsing: <x> against <sc://ñ>] + expected: FAIL + + [Parsing: <data:test# »> against <about:blank>] + expected: FAIL + + [Parsing: <wow:> against <about:blank>] + expected: FAIL + + [Parsing: <sc://ñ?x> against <about:blank>] + expected: FAIL + + [Parsing: <?x> against <sc://ñ>] + expected: FAIL + + [Parsing: <#x> against <sc://ñ>] + expected: FAIL + + [Parsing: <a1234567890-+.:foo/bar> against <http://example.com/dir/file>] + expected: FAIL + + [Parsing: <non-spec://example.org/test?a#b\x00c> against <about:blank>] + expected: FAIL + + [Parsing: <non-spec:/test?a#b\x00c> against <about:blank>] + expected: FAIL + + [Parsing: <file:///p> against <about:blank>] + expected: FAIL + + [Parsing: <file://ab/p> against <about:blank>] + expected: FAIL + + [Parsing: <file://%C2%AD/p> against <about:blank>] + expected: FAIL + + [Parsing: <file://xn--/p> against <about:blank>] + expected: FAIL + + [Parsing: <file://a%C2%ADb/p> against <about:blank>] + expected: FAIL + + [Parsing: <file:///Y:> against <about:blank>] + expected: + if os == "win": FAIL + + [Parsing: <file:///y:> against <about:blank>] + expected: + if os == "win": FAIL + + [Parsing: <non-special:cannot-be-a-base-url-\x00\x01\x1f\x1e~> against <about:blank>] + expected: FAIL + + [Parsing: </..//path> against <non-spec:/p>] + expected: FAIL + + [Parsing: <non-spec:/a/..//path> against <about:blank>] + expected: FAIL + + [Parsing: <path> against <non-spec:/..//p>] + expected: FAIL + + [Parsing: <..//path> against <non-spec:/p>] + expected: FAIL + + [Parsing: <> against <non-spec:/..//p>] + expected: FAIL + + [Parsing: <non-spec:/.//> against <about:blank>] + expected: FAIL + + [Parsing: <non-spec:/..//path> against <about:blank>] + expected: FAIL + + [Parsing: <a/..//path> against <non-spec:/p>] + expected: FAIL + + [Parsing: </.//path> against <non-spec:/p>] + expected: FAIL + + [Parsing: <non-spec:/a/..//> against <about:blank>] + expected: FAIL + + [Parsing: <../path> against <non-spec:/.//p>] + expected: FAIL + + [Parsing: <non-spec:/.//path> against <about:blank>] + expected: FAIL + + [Parsing: <non-spec:/..//> against <about:blank>] + expected: FAIL + + [Parsing: <file://[1::8\]/C:/> against <about:blank>] + expected: FAIL + + [Parsing: <//one/two> against <file:///>] + expected: FAIL + + [Parsing: <file://1.2.3.4/C:/> against <about:blank>] + expected: FAIL + + [Parsing: <file://example.net/C:/> against <about:blank>] + expected: FAIL + + [Parsing: </c:/foo/bar> against <file://host/path>] + expected: FAIL + + [Parsing: <C|> against <file://host/D:/dir1/dir2/file>] + expected: FAIL + + [Parsing: </> against <file://h/C:/a/b>] + expected: FAIL + + [Parsing: </> against <file://h/a/b>] + expected: FAIL + + [Parsing: <foo:// !"$%&'()*+,-.;<=>@[\\\]^_`{|}~@host/> against <about:blank>] + expected: FAIL + + [Parsing: <wss:// !"$%&'()*+,-.;<=>@[\]^_`{|}~@host/> against <about:blank>] + expected: FAIL + + [Parsing: <foo://joe: !"$%&'()*+,-.:;<=>@[\\\]^_`{|}~@host/> against <about:blank>] + expected: FAIL + + [Parsing: <wss://joe: !"$%&'()*+,-.:;<=>@[\]^_`{|}~@host/> against <about:blank>] + expected: FAIL + + [Parsing: <foo://!"$%&'()*+,-.;=_`{}~/> against <about:blank>] + expected: FAIL + + [Parsing: <wss://!"$&'()*+,-.;=_`{}~/> against <about:blank>] + expected: FAIL + + [Parsing: <foo://host/ !"$%&'()*+,-./:;<=>@[\\\]^_`{|}~> against <about:blank>] + expected: FAIL + + [Parsing: <wss://host/ !"$%&'()*+,-./:;<=>@[\\\]^_`{|}~> against <about:blank>] + expected: FAIL + + [Parsing: <foo://host/dir/? !"$%&'()*+,-./:;<=>?@[\\\]^_`{|}~> against <about:blank>] + expected: FAIL + + [Parsing: <foo://host/dir/# !"#$%&'()*+,-./:;<=>?@[\\\]^_`{|}~> against <about:blank>] + expected: FAIL + + [Parsing: <file://%43%3A> against <about:blank>] + expected: FAIL + + [Parsing: <file://%43%7C> against <about:blank>] + expected: FAIL + + [Parsing: <file://%43|> against <about:blank>] + expected: FAIL + + [Parsing: <file://C%7C> against <about:blank>] + expected: FAIL + + [Parsing: <file://%43%7C/> against <about:blank>] + expected: FAIL + + [Parsing: <asdf://%43|/> against <about:blank>] + expected: FAIL + + [Parsing: <asdf://%43%7C/> against <about:blank>] + expected: FAIL + + [Parsing: <C|/> against <file://host/>] + expected: FAIL + + [Parsing: </C:/> against <file://host/>] + expected: FAIL + + [Parsing: <file:C:/> against <file://host/>] + expected: FAIL + + [Parsing: <file:/C:/> against <file://host/>] + expected: FAIL + + [Parsing: <foo://ho\tst/> against <about:blank>] + expected: FAIL + + [Parsing: <foo://ho\nst/> against <about:blank>] + expected: FAIL + + [Parsing: <foo://ho\rst/> against <about:blank>] + expected: FAIL + + [Parsing: <abc:rootless> against <abc://host/path>] + expected: FAIL + + [Parsing: <abc:rootless> against <abc:/path>] + expected: FAIL + + [Parsing: <abc:rootless> against <abc:path>] + expected: FAIL + + [Parsing: <abc:/rooted> against <abc://host/path>] + expected: FAIL + + [Parsing: <http://999999999.> against <http://other.com/>] + expected: FAIL + + [Parsing: <http://1.2.3.4.5> against <http://other.com/>] + expected: FAIL + + [Parsing: <http://1.2.3.4.5.> against <http://other.com/>] + expected: FAIL + + [Parsing: <http://0..0x300/> against <about:blank>] + expected: FAIL + + [Parsing: <http://0..0x300./> against <about:blank>] + expected: FAIL + + [Parsing: <http://256.256.256.256.256> against <http://other.com/>] + expected: FAIL + + [Parsing: <http://256.256.256.256.256.> against <http://other.com/>] + expected: FAIL + + [Parsing: <http://1.2.3.08> against <about:blank>] + expected: FAIL + + [Parsing: <http://1.2.3.08.> against <about:blank>] + expected: FAIL + + [Parsing: <http://1.2.3.09> against <about:blank>] + expected: FAIL + + [Parsing: <http://09.2.3.4> against <about:blank>] + expected: FAIL + + [Parsing: <http://09.2.3.4.> against <about:blank>] + expected: FAIL + + [Parsing: <http://01.2.3.4.5> against <about:blank>] + expected: FAIL + + [Parsing: <http://01.2.3.4.5.> against <about:blank>] + expected: FAIL + + [Parsing: <http://0x100.2.3.4> against <about:blank>] + expected: FAIL + + [Parsing: <http://0x100.2.3.4.> against <about:blank>] + expected: FAIL + + [Parsing: <http://0x1.2.3.4.5> against <about:blank>] + expected: FAIL + + [Parsing: <http://0x1.2.3.4.5.> against <about:blank>] + expected: FAIL + + [Parsing: <http://foo.1.2.3.4> against <about:blank>] + expected: FAIL + + [Parsing: <http://foo.1.2.3.4.> against <about:blank>] + expected: FAIL + + [Parsing: <http://foo.2.3.4> against <about:blank>] + expected: FAIL + + [Parsing: <http://foo.2.3.4.> against <about:blank>] + expected: FAIL + + [Parsing: <http://foo.09> against <about:blank>] + expected: FAIL + + [Parsing: <http://foo.09.> against <about:blank>] + expected: FAIL + + [Parsing: <http://foo.0x4> against <about:blank>] + expected: FAIL + + [Parsing: <http://foo.0x4.> against <about:blank>] + expected: FAIL + + [Parsing: <http://0999999999999999999/> against <about:blank>] + expected: FAIL + + [Parsing: <http://foo.0x> against <about:blank>] + expected: FAIL + + [Parsing: <http://foo.0XFfFfFfFfFfFfFfFfFfAcE123> against <about:blank>] + expected: FAIL + + [Parsing: <http://💩.123/> against <about:blank>] + expected: FAIL + + [Parsing: <http://a.b.c.XN--pokxncvks> against <about:blank>] + expected: FAIL + + [Parsing: <http://a.b.c.Xn--pokxncvks> against <about:blank>] + expected: FAIL + + [Parsing: <http://10.0.0.XN--pokxncvks> against <about:blank>] + expected: FAIL + + [Parsing: <http://10.0.0.xN--pokxncvks> against <about:blank>] + expected: FAIL + + [Parsing: <sc://a\x00b/> against <about:blank>] + expected: FAIL + + [Parsing: <sc://a b/> against <about:blank>] + expected: FAIL + + [Parsing: <sc://a<b> against <about:blank>] + expected: FAIL + + [Parsing: <sc://a>b> against <about:blank>] + expected: FAIL + + [Parsing: <sc://a[b/> against <about:blank>] + expected: FAIL + + [Parsing: <sc://a\\b/> against <about:blank>] + expected: FAIL + + [Parsing: <sc://a\]b/> against <about:blank>] + expected: FAIL + + [Parsing: <sc://a^b> against <about:blank>] + expected: FAIL + + [Parsing: <sc://a|b/> against <about:blank>] + expected: FAIL + + [Parsing: <http://!"$&'()*+,-.;=_`{}~/> against <about:blank>] + expected: FAIL + + [Parsing: <sc://\x01\x02\x03\x04\x05\x06\x07\x08\x0b\x0c\x0e\x0f\x10\x11\x12\x13\x14\x15\x16\x17\x18\x19\x1a\x1b\x1c\x1d\x1e\x1f!"$%&'()*+,-.;=_`{}~/> against <about:blank>] + expected: FAIL + + [Parsing: <h://.> against <about:blank>] + expected: FAIL + + +[a-element.html?include=javascript] + [Parsing: <javascript:/../> against <about:blank>] + expected: FAIL + + [Parsing: <javascript://example.com:8080/pathname?search#hash> against <about:blank>] + expected: FAIL + + [Parsing: <javascript:///test> against <about:blank>] + expected: FAIL + + [Parsing: <javascript://test/a/../b> against <about:blank>] + expected: FAIL + + [Parsing: <javascript://:443> against <about:blank>] + expected: FAIL + + [Parsing: <javascript://test:test> against <about:blank>] + expected: FAIL + + [Parsing: <javascript://[:1\]> against <about:blank>] + expected: FAIL + + +[a-element.html?include=file] + [Parsing: <file://example:1/> against <about:blank>] + expected: FAIL + + [Parsing: <file://example:test/> against <about:blank>] + expected: FAIL + + [Parsing: <file://example%/> against <about:blank>] + expected: FAIL + + [Parsing: <file://[example\]/> against <about:blank>] + expected: FAIL + + [Parsing: <file:c:\\foo\\bar.html> against <file:///tmp/mock/path>] + expected: FAIL + + [Parsing: < File:c|////foo\\bar.html> against <file:///tmp/mock/path>] + expected: FAIL + + [Parsing: <C|/foo/bar> against <file:///tmp/mock/path>] + expected: FAIL + + [Parsing: <//server/file> against <file:///tmp/mock/path>] + expected: FAIL + + [Parsing: <\\\\server\\file> against <file:///tmp/mock/path>] + expected: FAIL + + [Parsing: </\\server/file> against <file:///tmp/mock/path>] + expected: FAIL + + [Parsing: <file://test> against <file:///tmp/mock/path>] + expected: FAIL + + [Parsing: <file:..> against <http://www.example.com/test>] + expected: FAIL + + [Parsing: <file://%43%3A> against <about:blank>] + expected: FAIL + + [Parsing: <file://%43%7C> against <about:blank>] + expected: FAIL + + [Parsing: <file://%43|> against <about:blank>] + expected: FAIL + + [Parsing: <file://C%7C> against <about:blank>] + expected: FAIL + + [Parsing: <file://%43%7C/> against <about:blank>] + expected: FAIL + + [Parsing: <..> against <file:///C:/>] + expected: FAIL + + [Parsing: </> against <file:///C:/a/b>] + expected: FAIL + + [Parsing: </> against <file://h/C:/a/b>] + expected: FAIL + + [Parsing: </> against <file://h/a/b>] + expected: FAIL + + [Parsing: <//d:> against <file:///C:/a/b>] + expected: + if os == "win": FAIL + + [Parsing: <file://spider///> against <about:blank>] + expected: FAIL + + [Parsing: </..//localhost//pig> against <file://lion/>] + expected: FAIL + + [Parsing: </rooibos> against <file://tea/>] + expected: FAIL + + [Parsing: </?chai> against <file://tea/>] + expected: FAIL + + [Parsing: <C|> against <file://host/dir/file>] + expected: FAIL + + [Parsing: <C|> against <file://host/D:/dir1/dir2/file>] + expected: FAIL + + [Parsing: <C|#> against <file://host/dir/file>] + expected: FAIL + + [Parsing: <C|?> against <file://host/dir/file>] + expected: FAIL + + [Parsing: <C|/> against <file://host/dir/file>] + expected: FAIL + + [Parsing: <C|\n/> against <file://host/dir/file>] + expected: FAIL + + [Parsing: <C|\\> against <file://host/dir/file>] + expected: FAIL + + [Parsing: <C> against <file://host/dir/file>] + expected: FAIL + + [Parsing: <C|a> against <file://host/dir/file>] + expected: FAIL + + [Parsing: </c:/foo/bar> against <file://host/path>] + expected: FAIL + + [Parsing: <file://example.net/C:/> against <about:blank>] + expected: FAIL + + [Parsing: <file://1.2.3.4/C:/> against <about:blank>] + expected: FAIL + + [Parsing: <file://[1::8\]/C:/> against <about:blank>] + expected: FAIL + + [Parsing: <C|/> against <file://host/>] + expected: FAIL + + [Parsing: </C:/> against <file://host/>] + expected: FAIL + + [Parsing: <file:C:/> against <file://host/>] + expected: FAIL + + [Parsing: <file:/C:/> against <file://host/>] + expected: FAIL + + [Parsing: <file:///Y:> against <about:blank>] + expected: + if os == "win": FAIL + + [Parsing: <file:///y:> against <about:blank>] + expected: + if os == "win": FAIL + + [Parsing: <//one/two> against <file:///>] + expected: FAIL + + [Parsing: <file://ab/p> against <about:blank>] + expected: FAIL + + [Parsing: <file://a%C2%ADb/p> against <about:blank>] + expected: FAIL + + [Parsing: <file:///p> against <about:blank>] + expected: FAIL + + [Parsing: <file://%C2%AD/p> against <about:blank>] + expected: FAIL + + [Parsing: <file://xn--/p> against <about:blank>] + expected: FAIL + + +[a-element.html?exclude=(file|javascript|mailto)] + [Parsing: <non-special://test:@test/x> against <about:blank>] + expected: FAIL + + [Parsing: <non-special://:@test/x> against <about:blank>] + expected: FAIL + + [Parsing: <non-special://f:999999/c> against <http://example.org/foo/bar>] + expected: FAIL + + [Parsing: <http://foo.com:b@d/> 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: <http://example.com/foo/%2e> against <about:blank>] + expected: FAIL + + [Parsing: <httpa://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: <http://www.@pple.com> against <about:blank>] + expected: FAIL + + [Parsing: <sc://faß.ExAmPlE/> against <about:blank>] + expected: FAIL + + [Parsing: <http://192.168.0.257> against <http://other.com/>] + expected: FAIL + + [Parsing: <h://.> against <about:blank>] + expected: FAIL + + [Parsing: <notspecial://host/?'> against <about:blank>] + expected: FAIL + + [Parsing: <i> against <sc://ho/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://ho/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://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: <sc://ñ.test/> against <about:blank>] + expected: FAIL + + [Parsing: <sc://%/> against <about:blank>] + expected: FAIL + + [Parsing: <sc://@/> against <about:blank>] + expected: FAIL + + [Parsing: <sc://te@s:t@/> against <about:blank>] + expected: FAIL + + [Parsing: <sc://:/> against <about:blank>] + expected: FAIL + + [Parsing: <sc://:12/> against <about:blank>] + expected: FAIL + + [Parsing: <x> against <sc://ñ>] + expected: FAIL + + [Parsing: <sc://a\x00b/> against <about:blank>] + expected: FAIL + + [Parsing: <sc://a b/> against <about:blank>] + expected: FAIL + + [Parsing: <sc://a<b> against <about:blank>] + expected: FAIL + + [Parsing: <sc://a>b> against <about:blank>] + expected: FAIL + + [Parsing: <sc://a[b/> against <about:blank>] + expected: FAIL + + [Parsing: <sc://a\\b/> against <about:blank>] + expected: FAIL + + [Parsing: <sc://a\]b/> against <about:blank>] + expected: FAIL + + [Parsing: <sc://a^b> against <about:blank>] + expected: FAIL + + [Parsing: <sc://a|b/> against <about:blank>] + expected: FAIL + + [Parsing: <foo://ho\tst/> against <about:blank>] + expected: FAIL + + [Parsing: <foo://ho\nst/> against <about:blank>] + expected: FAIL + + [Parsing: <foo://ho\rst/> against <about:blank>] + expected: FAIL + + [Parsing: <http://!"$&'()*+,-.;=_`{}~/> against <about:blank>] + expected: FAIL + + [Parsing: <sc://\x01\x02\x03\x04\x05\x06\x07\x08\x0b\x0c\x0e\x0f\x10\x11\x12\x13\x14\x15\x16\x17\x18\x19\x1a\x1b\x1c\x1d\x1e\x1f!"$%&'()*+,-.;=_`{}~/> against <about:blank>] + expected: FAIL + + [Parsing: <http://999999999.> against <http://other.com/>] + expected: FAIL + + [Parsing: <http://10000000000> against <http://other.com/>] + expected: FAIL + + [Parsing: <http://4294967296> against <http://other.com/>] + expected: FAIL + + [Parsing: <http://0xffffffff1> against <http://other.com/>] + expected: FAIL + + [Parsing: <http://256.256.256.256> against <http://other.com/>] + expected: FAIL + + [Parsing: <https://0x.0x.0> against <about:blank>] + expected: FAIL + + [Parsing: <https://0x100000000/test> against <about:blank>] + expected: FAIL + + [Parsing: <https://256.0.0.1/test> against <about:blank>] + expected: FAIL + + [Parsing: <asdf://%43|/> against <about:blank>] + expected: FAIL + + [Parsing: <asdf://%43%7C/> against <about:blank>] + expected: FAIL + + [Parsing: <sc://ñ> against <about:blank>] + expected: FAIL + + [Parsing: <sc://ñ?x> against <about:blank>] + expected: FAIL + + [Parsing: <sc://ñ#x> against <about:blank>] + expected: FAIL + + [Parsing: <#x> against <sc://ñ>] + expected: FAIL + + [Parsing: <?x> against <sc://ñ>] + expected: FAIL + + [Parsing: <///> against <sc://x/>] + expected: FAIL + + [Parsing: <////> against <sc://x/>] + expected: FAIL + + [Parsing: <////x/> against <sc://x/>] + expected: FAIL + + [Parsing: <tftp://foobar.com/someconfig;mode=netascii> against <about:blank>] + expected: FAIL + + [Parsing: <telnet://user:pass@foobar.com:23/> against <about:blank>] + expected: FAIL + + [Parsing: <ut2004://10.10.10.10:7777/Index.ut2> against <about:blank>] + expected: FAIL + + [Parsing: <redis://foo:bar@somehost:6379/0?baz=bam&qux=baz> against <about:blank>] + expected: FAIL + + [Parsing: <rsync://foo@host:911/sup> against <about:blank>] + expected: FAIL + + [Parsing: <git://github.com/foo/bar.git> against <about:blank>] + expected: FAIL + + [Parsing: <irc://myserver.com:6999/channel?passwd> against <about:blank>] + expected: FAIL + + [Parsing: <dns://fw.example.org:9999/foo.bar.org?type=TXT> against <about:blank>] + expected: FAIL + + [Parsing: <ldap://localhost:389/ou=People,o=JNDITutorial> against <about:blank>] + expected: FAIL + + [Parsing: <git+https://github.com/foo/bar> against <about:blank>] + expected: FAIL + + [Parsing: <non-spec:/.//> against <about:blank>] + expected: FAIL + + [Parsing: <non-spec:/..//> against <about:blank>] + expected: FAIL + + [Parsing: <non-spec:/a/..//> against <about:blank>] + expected: FAIL + + [Parsing: <non-spec:/.//path> against <about:blank>] + expected: FAIL + + [Parsing: <non-spec:/..//path> against <about:blank>] + expected: FAIL + + [Parsing: <non-spec:/a/..//path> against <about:blank>] + expected: FAIL + + [Parsing: </.//path> against <non-spec:/p>] + expected: FAIL + + [Parsing: </..//path> against <non-spec:/p>] + expected: FAIL + + [Parsing: <..//path> against <non-spec:/p>] + expected: FAIL + + [Parsing: <a/..//path> against <non-spec:/p>] + expected: FAIL + + [Parsing: <> against <non-spec:/..//p>] + expected: FAIL + + [Parsing: <path> against <non-spec:/..//p>] + expected: FAIL + + [Parsing: <non-special://%E2%80%A0/> against <about:blank>] + expected: FAIL + + [Parsing: <non-special://H%4fSt/path> against <about:blank>] + expected: FAIL + + [Parsing: <non-special://[1:2:0:0:5:0:0:0\]/> against <about:blank>] + expected: FAIL + + [Parsing: <non-special://[1:2:0:0:0:0:0:3\]/> against <about:blank>] + expected: FAIL + + [Parsing: <non-special://[1:2::3\]:80/> against <about:blank>] + expected: FAIL + + [Parsing: <non-special://[:80/> against <about:blank>] + expected: FAIL + + [Parsing: <test-a-colon-slash-slash.html> against <a://>] + expected: FAIL + + [Parsing: <test-a-colon-slash-slash-b.html> against <a://b>] + expected: FAIL + + [Parsing: <non-spec://example.org/test?a#b\x00c> against <about:blank>] + expected: FAIL + + [Parsing: <foo:// !"$%&'()*+,-.;<=>@[\\\]^_`{|}~@host/> against <about:blank>] + expected: FAIL + + [Parsing: <wss:// !"$%&'()*+,-.;<=>@[\]^_`{|}~@host/> against <about:blank>] + expected: FAIL + + [Parsing: <foo://joe: !"$%&'()*+,-.:;<=>@[\\\]^_`{|}~@host/> against <about:blank>] + expected: FAIL + + [Parsing: <wss://joe: !"$%&'()*+,-.:;<=>@[\]^_`{|}~@host/> against <about:blank>] + expected: FAIL + + [Parsing: <foo://!"$%&'()*+,-.;=_`{}~/> against <about:blank>] + expected: FAIL + + [Parsing: <wss://!"$&'()*+,-.;=_`{}~/> against <about:blank>] + expected: FAIL + + [Parsing: <foo://host/ !"$%&'()*+,-./:;<=>@[\\\]^_`{|}~> against <about:blank>] + expected: FAIL + + [Parsing: <wss://host/ !"$%&'()*+,-./:;<=>@[\\\]^_`{|}~> against <about:blank>] + expected: FAIL + + [Parsing: <foo://host/dir/? !"$%&'()*+,-./:;<=>?@[\\\]^_`{|}~> against <about:blank>] + expected: FAIL + + [Parsing: <foo://host/dir/# !"#$%&'()*+,-./:;<=>?@[\\\]^_`{|}~> against <about:blank>] + expected: FAIL + + [Parsing: <http://1.2.3.4.5> against <http://other.com/>] + expected: FAIL + + [Parsing: <http://1.2.3.4.5.> against <http://other.com/>] + expected: FAIL + + [Parsing: <http://0..0x300/> against <about:blank>] + expected: FAIL + + [Parsing: <http://0..0x300./> against <about:blank>] + expected: FAIL + + [Parsing: <http://256.256.256.256.256> against <http://other.com/>] + expected: FAIL + + [Parsing: <http://256.256.256.256.256.> against <http://other.com/>] + expected: FAIL + + [Parsing: <http://1.2.3.08> against <about:blank>] + expected: FAIL + + [Parsing: <http://1.2.3.08.> against <about:blank>] + expected: FAIL + + [Parsing: <http://1.2.3.09> against <about:blank>] + expected: FAIL + + [Parsing: <http://09.2.3.4> against <about:blank>] + expected: FAIL + + [Parsing: <http://09.2.3.4.> against <about:blank>] + expected: FAIL + + [Parsing: <http://01.2.3.4.5> against <about:blank>] + expected: FAIL + + [Parsing: <http://01.2.3.4.5.> against <about:blank>] + expected: FAIL + + [Parsing: <http://0x100.2.3.4> against <about:blank>] + expected: FAIL + + [Parsing: <http://0x100.2.3.4.> against <about:blank>] + expected: FAIL + + [Parsing: <http://0x1.2.3.4.5> against <about:blank>] + expected: FAIL + + [Parsing: <http://0x1.2.3.4.5.> against <about:blank>] + expected: FAIL + + [Parsing: <http://foo.1.2.3.4> against <about:blank>] + expected: FAIL + + [Parsing: <http://foo.1.2.3.4.> against <about:blank>] + expected: FAIL + + [Parsing: <http://foo.2.3.4> against <about:blank>] + expected: FAIL + + [Parsing: <http://foo.2.3.4.> against <about:blank>] + expected: FAIL + + [Parsing: <http://foo.09> against <about:blank>] + expected: FAIL + + [Parsing: <http://foo.09.> against <about:blank>] + expected: FAIL + + [Parsing: <http://foo.0x4> against <about:blank>] + expected: FAIL + + [Parsing: <http://foo.0x4.> against <about:blank>] + expected: FAIL + + [Parsing: <http://0999999999999999999/> against <about:blank>] + expected: FAIL + + [Parsing: <http://foo.0x> against <about:blank>] + expected: FAIL + + [Parsing: <http://foo.0XFfFfFfFfFfFfFfFfFfAcE123> against <about:blank>] + expected: FAIL + + [Parsing: <http://💩.123/> against <about:blank>] + expected: FAIL + + [Parsing: <foo://> against <http://example.org/foo/bar>] + expected: FAIL + + [Parsing: <sc://?> against <about:blank>] + expected: FAIL + + [Parsing: <sc://#> against <about:blank>] + expected: FAIL + + [Parsing: <data://example.com:8080/pathname?search#hash> against <about:blank>] + expected: FAIL + + [Parsing: <data:///test> against <about:blank>] + expected: FAIL + + [Parsing: <data://test/a/../b> against <about:blank>] + expected: FAIL + + [Parsing: <data://:443> against <about:blank>] + expected: FAIL + + [Parsing: <data://test:test> against <about:blank>] + expected: FAIL + + [Parsing: <data://[:1\]> against <about:blank>] + expected: FAIL + + [Parsing: <intent://example.com:8080/pathname?search#hash> against <about:blank>] + expected: FAIL + + [Parsing: <intent:///test> against <about:blank>] + expected: FAIL + + [Parsing: <intent://test/a/../b> against <about:blank>] + expected: FAIL + + [Parsing: <intent://:443> against <about:blank>] + expected: FAIL + + [Parsing: <intent://test:test> against <about:blank>] + expected: FAIL + + [Parsing: <intent://[:1\]> against <about:blank>] + expected: FAIL + + [Parsing: <urn://example.com:8080/pathname?search#hash> against <about:blank>] + expected: FAIL + + [Parsing: <urn:///test> against <about:blank>] + expected: FAIL + + [Parsing: <urn://test/a/../b> against <about:blank>] + expected: FAIL + + [Parsing: <urn://:443> against <about:blank>] + expected: FAIL + + [Parsing: <urn://test:test> against <about:blank>] + expected: FAIL + + [Parsing: <urn://[:1\]> against <about:blank>] + expected: FAIL + + [Parsing: <turn://example.com:8080/pathname?search#hash> against <about:blank>] + expected: FAIL + + [Parsing: <turn:///test> against <about:blank>] + expected: FAIL + + [Parsing: <turn://test/a/../b> against <about:blank>] + expected: FAIL + + [Parsing: <turn://:443> against <about:blank>] + expected: FAIL + + [Parsing: <turn://test:test> against <about:blank>] + expected: FAIL + + [Parsing: <turn://[:1\]> against <about:blank>] + expected: FAIL + + [Parsing: <stun://example.com:8080/pathname?search#hash> against <about:blank>] + expected: FAIL + + [Parsing: <stun:///test> against <about:blank>] + expected: FAIL + + [Parsing: <stun://test/a/../b> against <about:blank>] + expected: FAIL + + [Parsing: <stun://:443> against <about:blank>] + expected: FAIL + + [Parsing: <stun://test:test> against <about:blank>] + expected: FAIL + + [Parsing: <stun://[:1\]> against <about:blank>] + expected: FAIL + + +[a-element.html?include=mailto] + [Parsing: <mailto:/../> against <about:blank>] + expected: FAIL + + [Parsing: <mailto://example.com:8080/pathname?search#hash> against <about:blank>] + expected: FAIL + + [Parsing: <mailto:///test> against <about:blank>] + expected: FAIL + + [Parsing: <mailto://test/a/../b> against <about:blank>] + expected: FAIL + + [Parsing: <mailto://:443> against <about:blank>] + expected: FAIL + + [Parsing: <mailto://test:test> against <about:blank>] + expected: FAIL + + [Parsing: <mailto://[:1\]> against <about:blank>] + expected: FAIL diff --git a/testing/web-platform/meta/url/data-uri-fragment.html.ini b/testing/web-platform/meta/url/data-uri-fragment.html.ini new file mode 100644 index 0000000000..27e507a2e5 --- /dev/null +++ b/testing/web-platform/meta/url/data-uri-fragment.html.ini @@ -0,0 +1,3 @@ +[data-uri-fragment.html] + expected: + if (os == "android") and fission: [OK, TIMEOUT] diff --git a/testing/web-platform/meta/url/failure.html.ini b/testing/web-platform/meta/url/failure.html.ini new file mode 100644 index 0000000000..25c28c67e7 --- /dev/null +++ b/testing/web-platform/meta/url/failure.html.ini @@ -0,0 +1,12 @@ +[failure.html] + expected: + if os == "mac": [CRASH, OK] + if os == "android": [CRASH, OK] + if os == "win": [TIMEOUT, OK, CRASH] + [CRASH, OK] + disabled: + if (os == "linux"): https://bugzilla.mozilla.org/show_bug.cgi?id=1810360 + if (os == "win"): https://bugzilla.mozilla.org/show_bug.cgi?id=1810360 + if (os == "linux") and asan: https://bugzilla.mozilla.org/show_bug.cgi?id=1723277 + if (os == "mac") and not debug and not nightly_build: https://bugzilla.mozilla.org/show_bug.cgi?id=1818234 + max-asserts: 3 diff --git a/testing/web-platform/meta/url/historical.any.js.ini b/testing/web-platform/meta/url/historical.any.js.ini new file mode 100644 index 0000000000..e309b19e1b --- /dev/null +++ b/testing/web-platform/meta/url/historical.any.js.ini @@ -0,0 +1,8 @@ +[historical.any.worker.html] + [URLSearchParams: no structured serialize/deserialize support] + expected: FAIL + + +[historical.any.html] + [URLSearchParams: no structured serialize/deserialize support] + expected: FAIL diff --git a/testing/web-platform/meta/url/idlharness-shadowrealm.window.js.ini b/testing/web-platform/meta/url/idlharness-shadowrealm.window.js.ini new file mode 100644 index 0000000000..9093453c6a --- /dev/null +++ b/testing/web-platform/meta/url/idlharness-shadowrealm.window.js.ini @@ -0,0 +1,112 @@ +[idlharness-shadowrealm.window.html] + prefs: [javascript.options.experimental.shadow_realms:true] + [URL interface: existence and properties of interface object] + expected: FAIL + + [URL interface object length] + expected: FAIL + + [URL interface object name] + expected: FAIL + + [URL interface: existence and properties of interface prototype object] + expected: FAIL + + [URL interface: existence and properties of interface prototype object's "constructor" property] + expected: FAIL + + [URL interface: existence and properties of interface prototype object's @@unscopables property] + expected: FAIL + + [URL interface: attribute href] + expected: FAIL + + [URL interface: stringifier] + expected: FAIL + + [URL interface: attribute origin] + expected: FAIL + + [URL interface: attribute protocol] + expected: FAIL + + [URL interface: attribute username] + expected: FAIL + + [URL interface: attribute password] + expected: FAIL + + [URL interface: attribute host] + expected: FAIL + + [URL interface: attribute hostname] + expected: FAIL + + [URL interface: attribute port] + expected: FAIL + + [URL interface: attribute pathname] + expected: FAIL + + [URL interface: attribute search] + expected: FAIL + + [URL interface: attribute searchParams] + expected: FAIL + + [URL interface: attribute hash] + expected: FAIL + + [URL interface: operation toJSON()] + expected: FAIL + + [URLSearchParams interface: existence and properties of interface object] + expected: FAIL + + [URLSearchParams interface object length] + expected: FAIL + + [URLSearchParams interface object name] + expected: FAIL + + [URLSearchParams interface: existence and properties of interface prototype object] + expected: FAIL + + [URLSearchParams interface: existence and properties of interface prototype object's "constructor" property] + expected: FAIL + + [URLSearchParams interface: existence and properties of interface prototype object's @@unscopables property] + expected: FAIL + + [URLSearchParams interface: operation append(USVString, USVString)] + expected: FAIL + + [URLSearchParams interface: operation get(USVString)] + expected: FAIL + + [URLSearchParams interface: operation getAll(USVString)] + expected: FAIL + + [URLSearchParams interface: operation set(USVString, USVString)] + expected: FAIL + + [URLSearchParams interface: operation sort()] + expected: FAIL + + [URLSearchParams interface: iterable<USVString, USVString>] + expected: FAIL + + [URLSearchParams interface: stringifier] + expected: FAIL + + [URL interface: operation canParse(USVString, optional USVString)] + expected: FAIL + + [URLSearchParams interface: attribute size] + expected: FAIL + + [URLSearchParams interface: operation delete(USVString, optional USVString)] + expected: FAIL + + [URLSearchParams interface: operation has(USVString, optional USVString)] + expected: FAIL diff --git a/testing/web-platform/meta/url/javascript-urls.window.js.ini b/testing/web-platform/meta/url/javascript-urls.window.js.ini new file mode 100644 index 0000000000..7ecd75be3b --- /dev/null +++ b/testing/web-platform/meta/url/javascript-urls.window.js.ini @@ -0,0 +1,2 @@ +[javascript-urls.window.html] + expected: ERROR diff --git a/testing/web-platform/meta/url/percent-encoding.window.js.ini b/testing/web-platform/meta/url/percent-encoding.window.js.ini new file mode 100644 index 0000000000..b34a282f00 --- /dev/null +++ b/testing/web-platform/meta/url/percent-encoding.window.js.ini @@ -0,0 +1,8 @@ +[percent-encoding.window.html] + expected: + if (os == "android") and fission: [OK, TIMEOUT] + [Input − with encoding shift_jis] + expected: FAIL + + [Input á| with encoding utf-8] + expected: FAIL diff --git a/testing/web-platform/meta/url/toascii.window.js.ini b/testing/web-platform/meta/url/toascii.window.js.ini new file mode 100644 index 0000000000..ce436e92ab --- /dev/null +++ b/testing/web-platform/meta/url/toascii.window.js.ini @@ -0,0 +1,3 @@ +[toascii.window.html] + expected: + if (os == "android") and fission: [OK, TIMEOUT] diff --git a/testing/web-platform/meta/url/url-constructor.any.js.ini b/testing/web-platform/meta/url/url-constructor.any.js.ini new file mode 100644 index 0000000000..930f095625 --- /dev/null +++ b/testing/web-platform/meta/url/url-constructor.any.js.ini @@ -0,0 +1,2626 @@ +[url-constructor.any.worker.html] + expected: + if (os == "android") and fission: [OK, TIMEOUT] + [Parsing: <non-special://test:@test/x> against <about:blank>] + expected: FAIL + + [Parsing: <non-special://:@test/x> against <about:blank>] + expected: FAIL + + [Parsing: <non-special://f:999999/c> against <http://example.org/foo/bar>] + expected: FAIL + + [Parsing: <foo://> against <http://example.org/foo/bar>] + expected: FAIL + + [Parsing: <http://foo.com:b@d/> 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: <file://example:1/> against <about:blank>] + expected: FAIL + + [Parsing: <file://example:test/> against <about:blank>] + expected: FAIL + + [Parsing: <file://example%/> against <about:blank>] + expected: FAIL + + [Parsing: <file://[example\]/> against <about:blank>] + expected: FAIL + + [Parsing: <file:c:\\foo\\bar.html> against <file:///tmp/mock/path>] + expected: FAIL + + [Parsing: < File:c|////foo\\bar.html> against <file:///tmp/mock/path>] + expected: FAIL + + [Parsing: <C|/foo/bar> against <file:///tmp/mock/path>] + expected: FAIL + + [Parsing: <//server/file> against <file:///tmp/mock/path>] + expected: FAIL + + [Parsing: <\\\\server\\file> against <file:///tmp/mock/path>] + expected: FAIL + + [Parsing: </\\server/file> against <file:///tmp/mock/path>] + expected: FAIL + + [Parsing: <file://test> against <file:///tmp/mock/path>] + expected: FAIL + + [Parsing: <http://example.com/foo/%2e> against <about:blank>] + expected: FAIL + + [Parsing: <httpa://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: <http://www.@pple.com> against <about:blank>] + expected: FAIL + + [Parsing: <file:..> against <http://www.example.com/test>] + expected: FAIL + + [Parsing: <sc://faß.ExAmPlE/> against <about:blank>] + expected: FAIL + + [Parsing: <http://192.168.0.257> against <http://other.com/>] + expected: FAIL + + [Parsing: <notspecial://host/?'> against <about:blank>] + expected: FAIL + + [Parsing: <i> against <sc://ho/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://ho/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://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: <sc://@/> against <about:blank>] + expected: FAIL + + [Parsing: <sc://te@s:t@/> against <about:blank>] + expected: FAIL + + [Parsing: <sc://:/> against <about:blank>] + expected: FAIL + + [Parsing: <sc://:12/> against <about:blank>] + expected: FAIL + + [Parsing: <x> against <sc://ñ>] + expected: FAIL + + [Parsing: <http://10000000000> against <http://other.com/>] + expected: FAIL + + [Parsing: <http://4294967296> against <http://other.com/>] + expected: FAIL + + [Parsing: <http://0xffffffff1> against <http://other.com/>] + expected: FAIL + + [Parsing: <http://256.256.256.256> against <http://other.com/>] + expected: FAIL + + [Parsing: <https://0x.0x.0> against <about:blank>] + expected: FAIL + + [Parsing: <https://0x100000000/test> against <about:blank>] + expected: FAIL + + [Parsing: <https://256.0.0.1/test> against <about:blank>] + expected: FAIL + + [Parsing: <..> against <file:///C:/>] + expected: FAIL + + [Parsing: </> against <file:///C:/a/b>] + expected: FAIL + + [Parsing: </> against <file://h/C:/a/b>] + expected: FAIL + + [Parsing: </> against <file://h/a/b>] + expected: FAIL + + [Parsing: <//d:> against <file:///C:/a/b>] + expected: + if os == "win": FAIL + + [Parsing: <file://spider///> against <about:blank>] + expected: FAIL + + [Parsing: </..//localhost//pig> against <file://lion/>] + expected: FAIL + + [Parsing: </rooibos> against <file://tea/>] + expected: FAIL + + [Parsing: </?chai> against <file://tea/>] + expected: FAIL + + [Parsing: <C|> against <file://host/dir/file>] + expected: FAIL + + [Parsing: <C|> against <file://host/D:/dir1/dir2/file>] + expected: FAIL + + [Parsing: <C|#> against <file://host/dir/file>] + expected: FAIL + + [Parsing: <C|?> against <file://host/dir/file>] + expected: FAIL + + [Parsing: <C|/> against <file://host/dir/file>] + expected: FAIL + + [Parsing: <C|\n/> against <file://host/dir/file>] + expected: FAIL + + [Parsing: <C|\\> against <file://host/dir/file>] + expected: FAIL + + [Parsing: <C> against <file://host/dir/file>] + expected: FAIL + + [Parsing: <C|a> against <file://host/dir/file>] + expected: FAIL + + [Parsing: </c:/foo/bar> against <file://host/path>] + expected: FAIL + + [Parsing: <file://example.net/C:/> against <about:blank>] + expected: FAIL + + [Parsing: <file://1.2.3.4/C:/> against <about:blank>] + expected: FAIL + + [Parsing: <file://[1::8\]/C:/> against <about:blank>] + expected: FAIL + + [Parsing: <file:///Y:> against <about:blank>] + expected: + if os == "win": FAIL + + [Parsing: <file:///y:> against <about:blank>] + expected: + if os == "win": FAIL + + [Parsing: <//one/two> against <file:///>] + expected: FAIL + + [Parsing: <sc://ñ> against <about:blank>] + expected: FAIL + + [Parsing: <sc://ñ?x> against <about:blank>] + expected: FAIL + + [Parsing: <sc://ñ#x> against <about:blank>] + expected: FAIL + + [Parsing: <#x> against <sc://ñ>] + expected: FAIL + + [Parsing: <?x> against <sc://ñ>] + expected: FAIL + + [Parsing: <sc://?> against <about:blank>] + expected: FAIL + + [Parsing: <sc://#> against <about:blank>] + expected: FAIL + + [Parsing: <///> against <sc://x/>] + expected: FAIL + + [Parsing: <////> against <sc://x/>] + expected: FAIL + + [Parsing: <////x/> against <sc://x/>] + expected: FAIL + + [Parsing: <tftp://foobar.com/someconfig;mode=netascii> against <about:blank>] + expected: FAIL + + [Parsing: <telnet://user:pass@foobar.com:23/> against <about:blank>] + expected: FAIL + + [Parsing: <ut2004://10.10.10.10:7777/Index.ut2> against <about:blank>] + expected: FAIL + + [Parsing: <redis://foo:bar@somehost:6379/0?baz=bam&qux=baz> against <about:blank>] + expected: FAIL + + [Parsing: <rsync://foo@host:911/sup> against <about:blank>] + expected: FAIL + + [Parsing: <git://github.com/foo/bar.git> against <about:blank>] + expected: FAIL + + [Parsing: <irc://myserver.com:6999/channel?passwd> against <about:blank>] + expected: FAIL + + [Parsing: <dns://fw.example.org:9999/foo.bar.org?type=TXT> against <about:blank>] + expected: FAIL + + [Parsing: <ldap://localhost:389/ou=People,o=JNDITutorial> against <about:blank>] + expected: FAIL + + [Parsing: <git+https://github.com/foo/bar> against <about:blank>] + expected: FAIL + + [Parsing: <non-spec:/.//> against <about:blank>] + expected: FAIL + + [Parsing: <non-spec:/..//> against <about:blank>] + expected: FAIL + + [Parsing: <non-spec:/a/..//> against <about:blank>] + expected: FAIL + + [Parsing: <non-spec:/.//path> against <about:blank>] + expected: FAIL + + [Parsing: <non-spec:/..//path> against <about:blank>] + expected: FAIL + + [Parsing: <non-spec:/a/..//path> against <about:blank>] + expected: FAIL + + [Parsing: </.//path> against <non-spec:/p>] + expected: FAIL + + [Parsing: </..//path> against <non-spec:/p>] + expected: FAIL + + [Parsing: <..//path> against <non-spec:/p>] + expected: FAIL + + [Parsing: <a/..//path> against <non-spec:/p>] + expected: FAIL + + [Parsing: <> against <non-spec:/..//p>] + expected: FAIL + + [Parsing: <path> against <non-spec:/..//p>] + expected: FAIL + + [Parsing: <non-special://%E2%80%A0/> against <about:blank>] + expected: FAIL + + [Parsing: <non-special://H%4fSt/path> against <about:blank>] + expected: FAIL + + [Parsing: <non-special://[1:2:0:0:5:0:0:0\]/> against <about:blank>] + expected: FAIL + + [Parsing: <non-special://[1:2:0:0:0:0:0:3\]/> against <about:blank>] + expected: FAIL + + [Parsing: <non-special://[1:2::3\]:80/> against <about:blank>] + expected: FAIL + + [Parsing: <non-special://[:80/> against <about:blank>] + expected: FAIL + + [Parsing: <test-a-colon-slash-slash.html> against <a://>] + expected: FAIL + + [Parsing: <test-a-colon-slash-slash-b.html> against <a://b>] + expected: FAIL + + [Parsing: <non-spec://example.org/test?a#b\x00c> against <about:blank>] + expected: FAIL + + [Parsing: <file://ab/p> against <about:blank>] + expected: FAIL + + [Parsing: <file://a%C2%ADb/p> against <about:blank>] + expected: FAIL + + [Parsing: <file:///p> against <about:blank>] + expected: FAIL + + [Parsing: <file://%C2%AD/p> against <about:blank>] + expected: FAIL + + [Parsing: <file://xn--/p> against <about:blank>] + expected: FAIL + + [Parsing: <foo:// !"$%&'()*+,-.;<=>@[\\\]^_`{|}~@host/> against <about:blank>] + expected: FAIL + + [Parsing: <wss:// !"$%&'()*+,-.;<=>@[\]^_`{|}~@host/> against <about:blank>] + expected: FAIL + + [Parsing: <foo://joe: !"$%&'()*+,-.:;<=>@[\\\]^_`{|}~@host/> against <about:blank>] + expected: FAIL + + [Parsing: <wss://joe: !"$%&'()*+,-.:;<=>@[\]^_`{|}~@host/> against <about:blank>] + expected: FAIL + + [Parsing: <foo://!"$%&'()*+,-.;=_`{}~/> against <about:blank>] + expected: FAIL + + [Parsing: <wss://!"$&'()*+,-.;=_`{}~/> against <about:blank>] + expected: FAIL + + [Parsing: <foo://host/ !"$%&'()*+,-./:;<=>@[\\\]^_`{|}~> against <about:blank>] + expected: FAIL + + [Parsing: <wss://host/ !"$%&'()*+,-./:;<=>@[\\\]^_`{|}~> against <about:blank>] + expected: FAIL + + [Parsing: <foo://host/dir/? !"$%&'()*+,-./:;<=>?@[\\\]^_`{|}~> against <about:blank>] + expected: FAIL + + [Parsing: <foo://host/dir/# !"#$%&'()*+,-./:;<=>?@[\\\]^_`{|}~> against <about:blank>] + expected: FAIL + + [Parsing: <file://%43%3A> against <about:blank>] + expected: FAIL + + [Parsing: <file://%43%7C> against <about:blank>] + expected: FAIL + + [Parsing: <file://%43|> against <about:blank>] + expected: FAIL + + [Parsing: <file://C%7C> against <about:blank>] + expected: FAIL + + [Parsing: <file://%43%7C/> against <about:blank>] + expected: FAIL + + [Parsing: <asdf://%43|/> against <about:blank>] + expected: FAIL + + [Parsing: <asdf://%43%7C/> against <about:blank>] + expected: FAIL + + [Parsing: <C|/> against <file://host/>] + expected: FAIL + + [Parsing: </C:/> against <file://host/>] + expected: FAIL + + [Parsing: <file:C:/> against <file://host/>] + expected: FAIL + + [Parsing: <file:/C:/> against <file://host/>] + expected: FAIL + + [Parsing: <foo://ho\tst/> against <about:blank>] + expected: FAIL + + [Parsing: <foo://ho\nst/> against <about:blank>] + expected: FAIL + + [Parsing: <foo://ho\rst/> against <about:blank>] + expected: FAIL + + [Parsing: <http://999999999.> against <http://other.com/>] + expected: FAIL + + [Parsing: <http://1.2.3.4.5> against <http://other.com/>] + expected: FAIL + + [Parsing: <http://1.2.3.4.5.> against <http://other.com/>] + expected: FAIL + + [Parsing: <http://0..0x300/> against <about:blank>] + expected: FAIL + + [Parsing: <http://0..0x300./> against <about:blank>] + expected: FAIL + + [Parsing: <http://256.256.256.256.256> against <http://other.com/>] + expected: FAIL + + [Parsing: <http://256.256.256.256.256.> against <http://other.com/>] + expected: FAIL + + [Parsing: <http://1.2.3.08> against <about:blank>] + expected: FAIL + + [Parsing: <http://1.2.3.08.> against <about:blank>] + expected: FAIL + + [Parsing: <http://1.2.3.09> against <about:blank>] + expected: FAIL + + [Parsing: <http://09.2.3.4> against <about:blank>] + expected: FAIL + + [Parsing: <http://09.2.3.4.> against <about:blank>] + expected: FAIL + + [Parsing: <http://01.2.3.4.5> against <about:blank>] + expected: FAIL + + [Parsing: <http://01.2.3.4.5.> against <about:blank>] + expected: FAIL + + [Parsing: <http://0x100.2.3.4> against <about:blank>] + expected: FAIL + + [Parsing: <http://0x100.2.3.4.> against <about:blank>] + expected: FAIL + + [Parsing: <http://0x1.2.3.4.5> against <about:blank>] + expected: FAIL + + [Parsing: <http://0x1.2.3.4.5.> against <about:blank>] + expected: FAIL + + [Parsing: <http://foo.1.2.3.4> against <about:blank>] + expected: FAIL + + [Parsing: <http://foo.1.2.3.4.> against <about:blank>] + expected: FAIL + + [Parsing: <http://foo.2.3.4> against <about:blank>] + expected: FAIL + + [Parsing: <http://foo.2.3.4.> against <about:blank>] + expected: FAIL + + [Parsing: <http://foo.09> against <about:blank>] + expected: FAIL + + [Parsing: <http://foo.09.> against <about:blank>] + expected: FAIL + + [Parsing: <http://foo.0x4> against <about:blank>] + expected: FAIL + + [Parsing: <http://foo.0x4.> against <about:blank>] + expected: FAIL + + [Parsing: <http://0999999999999999999/> against <about:blank>] + expected: FAIL + + [Parsing: <http://foo.0x> against <about:blank>] + expected: FAIL + + [Parsing: <http://foo.0XFfFfFfFfFfFfFfFfFfAcE123> against <about:blank>] + expected: FAIL + + [Parsing: <http://💩.123/> against <about:blank>] + expected: FAIL + + [Parsing: <http://a.b.c.XN--pokxncvks> against <about:blank>] + expected: FAIL + + [Parsing: <http://a.b.c.Xn--pokxncvks> against <about:blank>] + expected: FAIL + + [Parsing: <http://10.0.0.XN--pokxncvks> against <about:blank>] + expected: FAIL + + [Parsing: <http://10.0.0.xN--pokxncvks> against <about:blank>] + expected: FAIL + + [Parsing: <sc://a\x00b/> against <about:blank>] + expected: FAIL + + [Parsing: <sc://a b/> against <about:blank>] + expected: FAIL + + [Parsing: <sc://a<b> against <about:blank>] + expected: FAIL + + [Parsing: <sc://a>b> against <about:blank>] + expected: FAIL + + [Parsing: <sc://a[b/> against <about:blank>] + expected: FAIL + + [Parsing: <sc://a\\b/> against <about:blank>] + expected: FAIL + + [Parsing: <sc://a\]b/> against <about:blank>] + expected: FAIL + + [Parsing: <sc://a^b> against <about:blank>] + expected: FAIL + + [Parsing: <sc://a|b/> against <about:blank>] + expected: FAIL + + [Parsing: <http://!"$&'()*+,-.;=_`{}~/> against <about:blank>] + expected: FAIL + + [Parsing: <sc://\x01\x02\x03\x04\x05\x06\x07\x08\x0b\x0c\x0e\x0f\x10\x11\x12\x13\x14\x15\x16\x17\x18\x19\x1a\x1b\x1c\x1d\x1e\x1f!"$%&'()*+,-.;=_`{}~/> against <about:blank>] + expected: FAIL + + [Parsing: <h://.> against <about:blank>] + expected: FAIL + + +[url-constructor.any.html] + expected: + if (os == "android") and fission: [OK, TIMEOUT] + [Parsing: <non-special://test:@test/x> against <about:blank>] + expected: FAIL + + [Parsing: <non-special://:@test/x> against <about:blank>] + expected: FAIL + + [Parsing: <non-special://f:999999/c> against <http://example.org/foo/bar>] + expected: FAIL + + [Parsing: <foo://> against <http://example.org/foo/bar>] + expected: FAIL + + [Parsing: <http://foo.com:b@d/> 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: <file://example:1/> against <about:blank>] + expected: FAIL + + [Parsing: <file://example:test/> against <about:blank>] + expected: FAIL + + [Parsing: <file://example%/> against <about:blank>] + expected: FAIL + + [Parsing: <file://[example\]/> against <about:blank>] + expected: FAIL + + [Parsing: <file:c:\\foo\\bar.html> against <file:///tmp/mock/path>] + expected: FAIL + + [Parsing: < File:c|////foo\\bar.html> against <file:///tmp/mock/path>] + expected: FAIL + + [Parsing: <C|/foo/bar> against <file:///tmp/mock/path>] + expected: FAIL + + [Parsing: <//server/file> against <file:///tmp/mock/path>] + expected: FAIL + + [Parsing: <\\\\server\\file> against <file:///tmp/mock/path>] + expected: FAIL + + [Parsing: </\\server/file> against <file:///tmp/mock/path>] + expected: FAIL + + [Parsing: <file://test> against <file:///tmp/mock/path>] + expected: FAIL + + [Parsing: <http://example.com/foo/%2e> against <about:blank>] + expected: FAIL + + [Parsing: <httpa://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: <http://www.@pple.com> against <about:blank>] + expected: FAIL + + [Parsing: <file:..> against <http://www.example.com/test>] + expected: FAIL + + [Parsing: <sc://faß.ExAmPlE/> against <about:blank>] + expected: FAIL + + [Parsing: <http://192.168.0.257> against <http://other.com/>] + expected: FAIL + + [Parsing: <notspecial://host/?'> against <about:blank>] + expected: FAIL + + [Parsing: <i> against <sc://ho/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://ho/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://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: <sc://@/> against <about:blank>] + expected: FAIL + + [Parsing: <sc://te@s:t@/> against <about:blank>] + expected: FAIL + + [Parsing: <sc://:/> against <about:blank>] + expected: FAIL + + [Parsing: <sc://:12/> against <about:blank>] + expected: FAIL + + [Parsing: <x> against <sc://ñ>] + expected: FAIL + + [Parsing: <http://10000000000> against <http://other.com/>] + expected: FAIL + + [Parsing: <http://4294967296> against <http://other.com/>] + expected: FAIL + + [Parsing: <http://0xffffffff1> against <http://other.com/>] + expected: FAIL + + [Parsing: <http://256.256.256.256> against <http://other.com/>] + expected: FAIL + + [Parsing: <https://0x.0x.0> against <about:blank>] + expected: FAIL + + [Parsing: <https://0x100000000/test> against <about:blank>] + expected: FAIL + + [Parsing: <https://256.0.0.1/test> against <about:blank>] + expected: FAIL + + [Parsing: <..> against <file:///C:/>] + expected: FAIL + + [Parsing: </> against <file:///C:/a/b>] + expected: FAIL + + [Parsing: </> against <file://h/C:/a/b>] + expected: FAIL + + [Parsing: </> against <file://h/a/b>] + expected: FAIL + + [Parsing: <//d:> against <file:///C:/a/b>] + expected: + if os == "win": FAIL + + [Parsing: <file://spider///> against <about:blank>] + expected: FAIL + + [Parsing: </..//localhost//pig> against <file://lion/>] + expected: FAIL + + [Parsing: </rooibos> against <file://tea/>] + expected: FAIL + + [Parsing: </?chai> against <file://tea/>] + expected: FAIL + + [Parsing: <C|> against <file://host/dir/file>] + expected: FAIL + + [Parsing: <C|> against <file://host/D:/dir1/dir2/file>] + expected: FAIL + + [Parsing: <C|#> against <file://host/dir/file>] + expected: FAIL + + [Parsing: <C|?> against <file://host/dir/file>] + expected: FAIL + + [Parsing: <C|/> against <file://host/dir/file>] + expected: FAIL + + [Parsing: <C|\n/> against <file://host/dir/file>] + expected: FAIL + + [Parsing: <C|\\> against <file://host/dir/file>] + expected: FAIL + + [Parsing: <C> against <file://host/dir/file>] + expected: FAIL + + [Parsing: <C|a> against <file://host/dir/file>] + expected: FAIL + + [Parsing: </c:/foo/bar> against <file://host/path>] + expected: FAIL + + [Parsing: <file://example.net/C:/> against <about:blank>] + expected: FAIL + + [Parsing: <file://1.2.3.4/C:/> against <about:blank>] + expected: FAIL + + [Parsing: <file://[1::8\]/C:/> against <about:blank>] + expected: FAIL + + [Parsing: <file:///Y:> against <about:blank>] + expected: + if os == "win": FAIL + + [Parsing: <file:///y:> against <about:blank>] + expected: + if os == "win": FAIL + + [Parsing: <//one/two> against <file:///>] + expected: FAIL + + [Parsing: <sc://ñ> against <about:blank>] + expected: FAIL + + [Parsing: <sc://ñ?x> against <about:blank>] + expected: FAIL + + [Parsing: <sc://ñ#x> against <about:blank>] + expected: FAIL + + [Parsing: <#x> against <sc://ñ>] + expected: FAIL + + [Parsing: <?x> against <sc://ñ>] + expected: FAIL + + [Parsing: <sc://?> against <about:blank>] + expected: FAIL + + [Parsing: <sc://#> against <about:blank>] + expected: FAIL + + [Parsing: <///> against <sc://x/>] + expected: FAIL + + [Parsing: <////> against <sc://x/>] + expected: FAIL + + [Parsing: <////x/> against <sc://x/>] + expected: FAIL + + [Parsing: <tftp://foobar.com/someconfig;mode=netascii> against <about:blank>] + expected: FAIL + + [Parsing: <telnet://user:pass@foobar.com:23/> against <about:blank>] + expected: FAIL + + [Parsing: <ut2004://10.10.10.10:7777/Index.ut2> against <about:blank>] + expected: FAIL + + [Parsing: <redis://foo:bar@somehost:6379/0?baz=bam&qux=baz> against <about:blank>] + expected: FAIL + + [Parsing: <rsync://foo@host:911/sup> against <about:blank>] + expected: FAIL + + [Parsing: <git://github.com/foo/bar.git> against <about:blank>] + expected: FAIL + + [Parsing: <irc://myserver.com:6999/channel?passwd> against <about:blank>] + expected: FAIL + + [Parsing: <dns://fw.example.org:9999/foo.bar.org?type=TXT> against <about:blank>] + expected: FAIL + + [Parsing: <ldap://localhost:389/ou=People,o=JNDITutorial> against <about:blank>] + expected: FAIL + + [Parsing: <git+https://github.com/foo/bar> against <about:blank>] + expected: FAIL + + [Parsing: <non-spec:/.//> against <about:blank>] + expected: FAIL + + [Parsing: <non-spec:/..//> against <about:blank>] + expected: FAIL + + [Parsing: <non-spec:/a/..//> against <about:blank>] + expected: FAIL + + [Parsing: <non-spec:/.//path> against <about:blank>] + expected: FAIL + + [Parsing: <non-spec:/..//path> against <about:blank>] + expected: FAIL + + [Parsing: <non-spec:/a/..//path> against <about:blank>] + expected: FAIL + + [Parsing: </.//path> against <non-spec:/p>] + expected: FAIL + + [Parsing: </..//path> against <non-spec:/p>] + expected: FAIL + + [Parsing: <..//path> against <non-spec:/p>] + expected: FAIL + + [Parsing: <a/..//path> against <non-spec:/p>] + expected: FAIL + + [Parsing: <> against <non-spec:/..//p>] + expected: FAIL + + [Parsing: <path> against <non-spec:/..//p>] + expected: FAIL + + [Parsing: <non-special://%E2%80%A0/> against <about:blank>] + expected: FAIL + + [Parsing: <non-special://H%4fSt/path> against <about:blank>] + expected: FAIL + + [Parsing: <non-special://[1:2:0:0:5:0:0:0\]/> against <about:blank>] + expected: FAIL + + [Parsing: <non-special://[1:2:0:0:0:0:0:3\]/> against <about:blank>] + expected: FAIL + + [Parsing: <non-special://[1:2::3\]:80/> against <about:blank>] + expected: FAIL + + [Parsing: <non-special://[:80/> against <about:blank>] + expected: FAIL + + [Parsing: <test-a-colon-slash-slash.html> against <a://>] + expected: FAIL + + [Parsing: <test-a-colon-slash-slash-b.html> against <a://b>] + expected: FAIL + + [Parsing: <non-spec://example.org/test?a#b\x00c> against <about:blank>] + expected: FAIL + + [Parsing: <file://ab/p> against <about:blank>] + expected: FAIL + + [Parsing: <file://a%C2%ADb/p> against <about:blank>] + expected: FAIL + + [Parsing: <file:///p> against <about:blank>] + expected: FAIL + + [Parsing: <file://%C2%AD/p> against <about:blank>] + expected: FAIL + + [Parsing: <file://xn--/p> against <about:blank>] + expected: FAIL + + [Parsing: <foo:// !"$%&'()*+,-.;<=>@[\\\]^_`{|}~@host/> against <about:blank>] + expected: FAIL + + [Parsing: <wss:// !"$%&'()*+,-.;<=>@[\]^_`{|}~@host/> against <about:blank>] + expected: FAIL + + [Parsing: <foo://joe: !"$%&'()*+,-.:;<=>@[\\\]^_`{|}~@host/> against <about:blank>] + expected: FAIL + + [Parsing: <wss://joe: !"$%&'()*+,-.:;<=>@[\]^_`{|}~@host/> against <about:blank>] + expected: FAIL + + [Parsing: <foo://!"$%&'()*+,-.;=_`{}~/> against <about:blank>] + expected: FAIL + + [Parsing: <wss://!"$&'()*+,-.;=_`{}~/> against <about:blank>] + expected: FAIL + + [Parsing: <foo://host/ !"$%&'()*+,-./:;<=>@[\\\]^_`{|}~> against <about:blank>] + expected: FAIL + + [Parsing: <wss://host/ !"$%&'()*+,-./:;<=>@[\\\]^_`{|}~> against <about:blank>] + expected: FAIL + + [Parsing: <foo://host/dir/? !"$%&'()*+,-./:;<=>?@[\\\]^_`{|}~> against <about:blank>] + expected: FAIL + + [Parsing: <foo://host/dir/# !"#$%&'()*+,-./:;<=>?@[\\\]^_`{|}~> against <about:blank>] + expected: FAIL + + [Parsing: <file://%43%3A> against <about:blank>] + expected: FAIL + + [Parsing: <file://%43%7C> against <about:blank>] + expected: FAIL + + [Parsing: <file://%43|> against <about:blank>] + expected: FAIL + + [Parsing: <file://C%7C> against <about:blank>] + expected: FAIL + + [Parsing: <file://%43%7C/> against <about:blank>] + expected: FAIL + + [Parsing: <asdf://%43|/> against <about:blank>] + expected: FAIL + + [Parsing: <asdf://%43%7C/> against <about:blank>] + expected: FAIL + + [Parsing: <C|/> against <file://host/>] + expected: FAIL + + [Parsing: </C:/> against <file://host/>] + expected: FAIL + + [Parsing: <file:C:/> against <file://host/>] + expected: FAIL + + [Parsing: <file:/C:/> against <file://host/>] + expected: FAIL + + [Parsing: <foo://ho\tst/> against <about:blank>] + expected: FAIL + + [Parsing: <foo://ho\nst/> against <about:blank>] + expected: FAIL + + [Parsing: <foo://ho\rst/> against <about:blank>] + expected: FAIL + + [Parsing: <http://999999999.> against <http://other.com/>] + expected: FAIL + + [Parsing: <http://1.2.3.4.5> against <http://other.com/>] + expected: FAIL + + [Parsing: <http://1.2.3.4.5.> against <http://other.com/>] + expected: FAIL + + [Parsing: <http://0..0x300/> against <about:blank>] + expected: FAIL + + [Parsing: <http://0..0x300./> against <about:blank>] + expected: FAIL + + [Parsing: <http://256.256.256.256.256> against <http://other.com/>] + expected: FAIL + + [Parsing: <http://256.256.256.256.256.> against <http://other.com/>] + expected: FAIL + + [Parsing: <http://1.2.3.08> against <about:blank>] + expected: FAIL + + [Parsing: <http://1.2.3.08.> against <about:blank>] + expected: FAIL + + [Parsing: <http://1.2.3.09> against <about:blank>] + expected: FAIL + + [Parsing: <http://09.2.3.4> against <about:blank>] + expected: FAIL + + [Parsing: <http://09.2.3.4.> against <about:blank>] + expected: FAIL + + [Parsing: <http://01.2.3.4.5> against <about:blank>] + expected: FAIL + + [Parsing: <http://01.2.3.4.5.> against <about:blank>] + expected: FAIL + + [Parsing: <http://0x100.2.3.4> against <about:blank>] + expected: FAIL + + [Parsing: <http://0x100.2.3.4.> against <about:blank>] + expected: FAIL + + [Parsing: <http://0x1.2.3.4.5> against <about:blank>] + expected: FAIL + + [Parsing: <http://0x1.2.3.4.5.> against <about:blank>] + expected: FAIL + + [Parsing: <http://foo.1.2.3.4> against <about:blank>] + expected: FAIL + + [Parsing: <http://foo.1.2.3.4.> against <about:blank>] + expected: FAIL + + [Parsing: <http://foo.2.3.4> against <about:blank>] + expected: FAIL + + [Parsing: <http://foo.2.3.4.> against <about:blank>] + expected: FAIL + + [Parsing: <http://foo.09> against <about:blank>] + expected: FAIL + + [Parsing: <http://foo.09.> against <about:blank>] + expected: FAIL + + [Parsing: <http://foo.0x4> against <about:blank>] + expected: FAIL + + [Parsing: <http://foo.0x4.> against <about:blank>] + expected: FAIL + + [Parsing: <http://0999999999999999999/> against <about:blank>] + expected: FAIL + + [Parsing: <http://foo.0x> against <about:blank>] + expected: FAIL + + [Parsing: <http://foo.0XFfFfFfFfFfFfFfFfFfAcE123> against <about:blank>] + expected: FAIL + + [Parsing: <http://💩.123/> against <about:blank>] + expected: FAIL + + [Parsing: <http://a.b.c.XN--pokxncvks> against <about:blank>] + expected: FAIL + + [Parsing: <http://a.b.c.Xn--pokxncvks> against <about:blank>] + expected: FAIL + + [Parsing: <http://10.0.0.XN--pokxncvks> against <about:blank>] + expected: FAIL + + [Parsing: <http://10.0.0.xN--pokxncvks> against <about:blank>] + expected: FAIL + + [Parsing: <sc://a\x00b/> against <about:blank>] + expected: FAIL + + [Parsing: <sc://a b/> against <about:blank>] + expected: FAIL + + [Parsing: <sc://a<b> against <about:blank>] + expected: FAIL + + [Parsing: <sc://a>b> against <about:blank>] + expected: FAIL + + [Parsing: <sc://a[b/> against <about:blank>] + expected: FAIL + + [Parsing: <sc://a\\b/> against <about:blank>] + expected: FAIL + + [Parsing: <sc://a\]b/> against <about:blank>] + expected: FAIL + + [Parsing: <sc://a^b> against <about:blank>] + expected: FAIL + + [Parsing: <sc://a|b/> against <about:blank>] + expected: FAIL + + [Parsing: <http://!"$&'()*+,-.;=_`{}~/> against <about:blank>] + expected: FAIL + + [Parsing: <sc://\x01\x02\x03\x04\x05\x06\x07\x08\x0b\x0c\x0e\x0f\x10\x11\x12\x13\x14\x15\x16\x17\x18\x19\x1a\x1b\x1c\x1d\x1e\x1f!"$%&'()*+,-.;=_`{}~/> against <about:blank>] + expected: FAIL + + [Parsing: <h://.> against <about:blank>] + expected: FAIL + + +[url-constructor.any.worker.html?include=javascript] + [Parsing: <javascript:/../> without base] + expected: FAIL + + [Parsing: <javascript://example.com:8080/pathname?search#hash> without base] + expected: FAIL + + [Parsing: <javascript:///test> without base] + expected: FAIL + + [Parsing: <javascript://test/a/../b> without base] + expected: FAIL + + [Parsing: <javascript://:443> without base] + expected: FAIL + + [Parsing: <javascript://test:test> without base] + expected: FAIL + + [Parsing: <javascript://[:1\]> without base] + expected: FAIL + + +[url-constructor.any.worker.html?exclude=(file|javascript|mailto)] + [Parsing: <non-special://f:999999/c> against <http://example.org/foo/bar>] + expected: FAIL + + [Parsing: <foo://> against <http://example.org/foo/bar>] + expected: FAIL + + [Parsing: <http://foo.com:b@d/> 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: <http://192.168.0.257> against <http://other.com/>] + expected: FAIL + + [Parsing: <i> against <sc://ho/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://ho/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://ho/pa>] + expected: FAIL + + [Parsing: <#i> against <sc:///pa/pa>] + expected: FAIL + + [Parsing: <x> against <sc://ñ>] + expected: FAIL + + [Parsing: <http://999999999.> against <http://other.com/>] + expected: FAIL + + [Parsing: <http://10000000000> against <http://other.com/>] + expected: FAIL + + [Parsing: <http://4294967296> against <http://other.com/>] + expected: FAIL + + [Parsing: <http://0xffffffff1> against <http://other.com/>] + expected: FAIL + + [Parsing: <http://256.256.256.256> against <http://other.com/>] + expected: FAIL + + [Parsing: <#x> against <sc://ñ>] + expected: FAIL + + [Parsing: <?x> against <sc://ñ>] + expected: FAIL + + [Parsing: <///> against <sc://x/>] + expected: FAIL + + [Parsing: <////> against <sc://x/>] + expected: FAIL + + [Parsing: <////x/> against <sc://x/>] + expected: FAIL + + [Parsing: </.//path> against <non-spec:/p>] + expected: FAIL + + [Parsing: </..//path> against <non-spec:/p>] + expected: FAIL + + [Parsing: <..//path> against <non-spec:/p>] + expected: FAIL + + [Parsing: <a/..//path> against <non-spec:/p>] + expected: FAIL + + [Parsing: <> against <non-spec:/..//p>] + expected: FAIL + + [Parsing: <path> against <non-spec:/..//p>] + expected: FAIL + + [Parsing: <test-a-colon-slash-slash.html> against <a://>] + expected: FAIL + + [Parsing: <test-a-colon-slash-slash-b.html> against <a://b>] + expected: FAIL + + [Parsing: <http://1.2.3.4.5> against <http://other.com/>] + expected: FAIL + + [Parsing: <http://1.2.3.4.5.> against <http://other.com/>] + expected: FAIL + + [Parsing: <http://256.256.256.256.256> against <http://other.com/>] + expected: FAIL + + [Parsing: <http://256.256.256.256.256.> against <http://other.com/>] + expected: FAIL + + [Parsing: <non-special://test:@test/x> without base] + expected: FAIL + + [Parsing: <non-special://:@test/x> without base] + expected: FAIL + + [Parsing: <http://example.com/foo/%2e> without base] + expected: FAIL + + [Parsing: <httpa://foo:80/> without base] + expected: FAIL + + [Parsing: <gopher://foo:70/> without base] + expected: FAIL + + [Parsing: <gopher://foo:443/> without base] + expected: FAIL + + [Parsing: <http://www.@pple.com> without base] + expected: FAIL + + [Parsing: <sc://faß.ExAmPlE/> without base] + expected: FAIL + + [Parsing: <h://.> without base] + expected: FAIL + + [Parsing: <notspecial://host/?'> without base] + expected: FAIL + + [Parsing: <about:/../> without base] + expected: FAIL + + [Parsing: <data:/../> without base] + expected: FAIL + + [Parsing: <sc://ñ.test/> without base] + expected: FAIL + + [Parsing: <sc://%/> without base] + expected: FAIL + + [Parsing: <sc://@/> without base] + expected: FAIL + + [Parsing: <sc://te@s:t@/> without base] + expected: FAIL + + [Parsing: <sc://:/> without base] + expected: FAIL + + [Parsing: <sc://:12/> without base] + expected: FAIL + + [Parsing: <sc://a\x00b/> without base] + expected: FAIL + + [Parsing: <sc://a b/> without base] + expected: FAIL + + [Parsing: <sc://a<b> without base] + expected: FAIL + + [Parsing: <sc://a>b> without base] + expected: FAIL + + [Parsing: <sc://a[b/> without base] + expected: FAIL + + [Parsing: <sc://a\\b/> without base] + expected: FAIL + + [Parsing: <sc://a\]b/> without base] + expected: FAIL + + [Parsing: <sc://a^b> without base] + expected: FAIL + + [Parsing: <sc://a|b/> without base] + expected: FAIL + + [Parsing: <foo://ho\tst/> without base] + expected: FAIL + + [Parsing: <foo://ho\nst/> without base] + expected: FAIL + + [Parsing: <foo://ho\rst/> without base] + expected: FAIL + + [Parsing: <http://!"$&'()*+,-.;=_`{}~/> without base] + expected: FAIL + + [Parsing: <sc://\x01\x02\x03\x04\x05\x06\x07\x08\x0b\x0c\x0e\x0f\x10\x11\x12\x13\x14\x15\x16\x17\x18\x19\x1a\x1b\x1c\x1d\x1e\x1f!"$%&'()*+,-.;=_`{}~/> without base] + expected: FAIL + + [Parsing: <https://0x.0x.0> without base] + expected: FAIL + + [Parsing: <https://0x100000000/test> without base] + expected: FAIL + + [Parsing: <https://256.0.0.1/test> without base] + expected: FAIL + + [Parsing: <asdf://%43|/> without base] + expected: FAIL + + [Parsing: <asdf://%43%7C/> without base] + expected: FAIL + + [Parsing: <sc://ñ> without base] + expected: FAIL + + [Parsing: <sc://ñ?x> without base] + expected: FAIL + + [Parsing: <sc://ñ#x> without base] + expected: FAIL + + [Parsing: <sc://?> without base] + expected: FAIL + + [Parsing: <sc://#> without base] + expected: FAIL + + [Parsing: <tftp://foobar.com/someconfig;mode=netascii> without base] + expected: FAIL + + [Parsing: <telnet://user:pass@foobar.com:23/> without base] + expected: FAIL + + [Parsing: <ut2004://10.10.10.10:7777/Index.ut2> without base] + expected: FAIL + + [Parsing: <redis://foo:bar@somehost:6379/0?baz=bam&qux=baz> without base] + expected: FAIL + + [Parsing: <rsync://foo@host:911/sup> without base] + expected: FAIL + + [Parsing: <git://github.com/foo/bar.git> without base] + expected: FAIL + + [Parsing: <irc://myserver.com:6999/channel?passwd> without base] + expected: FAIL + + [Parsing: <dns://fw.example.org:9999/foo.bar.org?type=TXT> without base] + expected: FAIL + + [Parsing: <ldap://localhost:389/ou=People,o=JNDITutorial> without base] + expected: FAIL + + [Parsing: <git+https://github.com/foo/bar> without base] + expected: FAIL + + [Parsing: <non-spec:/.//> without base] + expected: FAIL + + [Parsing: <non-spec:/..//> without base] + expected: FAIL + + [Parsing: <non-spec:/a/..//> without base] + expected: FAIL + + [Parsing: <non-spec:/.//path> without base] + expected: FAIL + + [Parsing: <non-spec:/..//path> without base] + expected: FAIL + + [Parsing: <non-spec:/a/..//path> without base] + expected: FAIL + + [Parsing: <non-special://%E2%80%A0/> without base] + expected: FAIL + + [Parsing: <non-special://H%4fSt/path> without base] + expected: FAIL + + [Parsing: <non-special://[1:2:0:0:5:0:0:0\]/> without base] + expected: FAIL + + [Parsing: <non-special://[1:2:0:0:0:0:0:3\]/> without base] + expected: FAIL + + [Parsing: <non-special://[1:2::3\]:80/> without base] + expected: FAIL + + [Parsing: <non-special://[:80/> without base] + expected: FAIL + + [Parsing: <non-spec://example.org/test?a#b\x00c> without base] + expected: FAIL + + [Parsing: <foo:// !"$%&'()*+,-.;<=>@[\\\]^_`{|}~@host/> without base] + expected: FAIL + + [Parsing: <wss:// !"$%&'()*+,-.;<=>@[\]^_`{|}~@host/> without base] + expected: FAIL + + [Parsing: <foo://joe: !"$%&'()*+,-.:;<=>@[\\\]^_`{|}~@host/> without base] + expected: FAIL + + [Parsing: <wss://joe: !"$%&'()*+,-.:;<=>@[\]^_`{|}~@host/> without base] + expected: FAIL + + [Parsing: <foo://!"$%&'()*+,-.;=_`{}~/> without base] + expected: FAIL + + [Parsing: <wss://!"$&'()*+,-.;=_`{}~/> without base] + expected: FAIL + + [Parsing: <foo://host/ !"$%&'()*+,-./:;<=>@[\\\]^_`{|}~> without base] + expected: FAIL + + [Parsing: <wss://host/ !"$%&'()*+,-./:;<=>@[\\\]^_`{|}~> without base] + expected: FAIL + + [Parsing: <foo://host/dir/? !"$%&'()*+,-./:;<=>?@[\\\]^_`{|}~> without base] + expected: FAIL + + [Parsing: <foo://host/dir/# !"#$%&'()*+,-./:;<=>?@[\\\]^_`{|}~> without base] + expected: FAIL + + [Parsing: <http://0..0x300/> without base] + expected: FAIL + + [Parsing: <http://0..0x300./> without base] + expected: FAIL + + [Parsing: <http://1.2.3.08> without base] + expected: FAIL + + [Parsing: <http://1.2.3.08.> without base] + expected: FAIL + + [Parsing: <http://1.2.3.09> without base] + expected: FAIL + + [Parsing: <http://09.2.3.4> without base] + expected: FAIL + + [Parsing: <http://09.2.3.4.> without base] + expected: FAIL + + [Parsing: <http://01.2.3.4.5> without base] + expected: FAIL + + [Parsing: <http://01.2.3.4.5.> without base] + expected: FAIL + + [Parsing: <http://0x100.2.3.4> without base] + expected: FAIL + + [Parsing: <http://0x100.2.3.4.> without base] + expected: FAIL + + [Parsing: <http://0x1.2.3.4.5> without base] + expected: FAIL + + [Parsing: <http://0x1.2.3.4.5.> without base] + expected: FAIL + + [Parsing: <http://foo.1.2.3.4> without base] + expected: FAIL + + [Parsing: <http://foo.1.2.3.4.> without base] + expected: FAIL + + [Parsing: <http://foo.2.3.4> without base] + expected: FAIL + + [Parsing: <http://foo.2.3.4.> without base] + expected: FAIL + + [Parsing: <http://foo.09> without base] + expected: FAIL + + [Parsing: <http://foo.09.> without base] + expected: FAIL + + [Parsing: <http://foo.0x4> without base] + expected: FAIL + + [Parsing: <http://foo.0x4.> without base] + expected: FAIL + + [Parsing: <http://0999999999999999999/> without base] + expected: FAIL + + [Parsing: <http://foo.0x> without base] + expected: FAIL + + [Parsing: <http://foo.0XFfFfFfFfFfFfFfFfFfAcE123> without base] + expected: FAIL + + [Parsing: <http://💩.123/> without base] + expected: FAIL + + [Parsing: <data://example.com:8080/pathname?search#hash> without base] + expected: FAIL + + [Parsing: <data:///test> without base] + expected: FAIL + + [Parsing: <data://test/a/../b> without base] + expected: FAIL + + [Parsing: <data://:443> without base] + expected: FAIL + + [Parsing: <data://test:test> without base] + expected: FAIL + + [Parsing: <data://[:1\]> without base] + expected: FAIL + + [Parsing: <intent://example.com:8080/pathname?search#hash> without base] + expected: FAIL + + [Parsing: <intent:///test> without base] + expected: FAIL + + [Parsing: <intent://test/a/../b> without base] + expected: FAIL + + [Parsing: <intent://:443> without base] + expected: FAIL + + [Parsing: <intent://test:test> without base] + expected: FAIL + + [Parsing: <intent://[:1\]> without base] + expected: FAIL + + [Parsing: <urn://example.com:8080/pathname?search#hash> without base] + expected: FAIL + + [Parsing: <urn:///test> without base] + expected: FAIL + + [Parsing: <urn://test/a/../b> without base] + expected: FAIL + + [Parsing: <urn://:443> without base] + expected: FAIL + + [Parsing: <urn://test:test> without base] + expected: FAIL + + [Parsing: <urn://[:1\]> without base] + expected: FAIL + + [Parsing: <turn://example.com:8080/pathname?search#hash> without base] + expected: FAIL + + [Parsing: <turn:///test> without base] + expected: FAIL + + [Parsing: <turn://test/a/../b> without base] + expected: FAIL + + [Parsing: <turn://:443> without base] + expected: FAIL + + [Parsing: <turn://test:test> without base] + expected: FAIL + + [Parsing: <turn://[:1\]> without base] + expected: FAIL + + [Parsing: <stun://example.com:8080/pathname?search#hash> without base] + expected: FAIL + + [Parsing: <stun:///test> without base] + expected: FAIL + + [Parsing: <stun://test/a/../b> without base] + expected: FAIL + + [Parsing: <stun://:443> without base] + expected: FAIL + + [Parsing: <stun://test:test> without base] + expected: FAIL + + [Parsing: <stun://[:1\]> without base] + expected: FAIL + + +[url-constructor.any.html?include=file] + [Parsing: <file:c:\\foo\\bar.html> against <file:///tmp/mock/path>] + expected: FAIL + + [Parsing: < File:c|////foo\\bar.html> against <file:///tmp/mock/path>] + expected: FAIL + + [Parsing: <C|/foo/bar> against <file:///tmp/mock/path>] + expected: FAIL + + [Parsing: <//server/file> against <file:///tmp/mock/path>] + expected: FAIL + + [Parsing: <\\\\server\\file> against <file:///tmp/mock/path>] + expected: FAIL + + [Parsing: </\\server/file> against <file:///tmp/mock/path>] + expected: FAIL + + [Parsing: <file://test> against <file:///tmp/mock/path>] + expected: FAIL + + [Parsing: <file:..> against <http://www.example.com/test>] + expected: FAIL + + [Parsing: <..> against <file:///C:/>] + expected: FAIL + + [Parsing: </> against <file:///C:/a/b>] + expected: FAIL + + [Parsing: </> against <file://h/C:/a/b>] + expected: FAIL + + [Parsing: </> against <file://h/a/b>] + expected: FAIL + + [Parsing: <//d:> against <file:///C:/a/b>] + expected: + if os == "win": FAIL + + [Parsing: </..//localhost//pig> against <file://lion/>] + expected: FAIL + + [Parsing: </rooibos> against <file://tea/>] + expected: FAIL + + [Parsing: </?chai> against <file://tea/>] + expected: FAIL + + [Parsing: <C|> against <file://host/dir/file>] + expected: FAIL + + [Parsing: <C|> against <file://host/D:/dir1/dir2/file>] + expected: FAIL + + [Parsing: <C|#> against <file://host/dir/file>] + expected: FAIL + + [Parsing: <C|?> against <file://host/dir/file>] + expected: FAIL + + [Parsing: <C|/> against <file://host/dir/file>] + expected: FAIL + + [Parsing: <C|\n/> against <file://host/dir/file>] + expected: FAIL + + [Parsing: <C|\\> against <file://host/dir/file>] + expected: FAIL + + [Parsing: <C> against <file://host/dir/file>] + expected: FAIL + + [Parsing: <C|a> against <file://host/dir/file>] + expected: FAIL + + [Parsing: </c:/foo/bar> against <file://host/path>] + expected: FAIL + + [Parsing: <C|/> against <file://host/>] + expected: FAIL + + [Parsing: </C:/> against <file://host/>] + expected: FAIL + + [Parsing: <file:C:/> against <file://host/>] + expected: FAIL + + [Parsing: <file:/C:/> against <file://host/>] + expected: FAIL + + [Parsing: <//one/two> against <file:///>] + expected: FAIL + + [Parsing: <file://example:1/> without base] + expected: FAIL + + [Parsing: <file://example:test/> without base] + expected: FAIL + + [Parsing: <file://example%/> without base] + expected: FAIL + + [Parsing: <file://[example\]/> without base] + expected: FAIL + + [Parsing: <file://%43%3A> without base] + expected: FAIL + + [Parsing: <file://%43%7C> without base] + expected: FAIL + + [Parsing: <file://%43|> without base] + expected: FAIL + + [Parsing: <file://C%7C> without base] + expected: FAIL + + [Parsing: <file://%43%7C/> without base] + expected: FAIL + + [Parsing: <file://spider///> without base] + expected: FAIL + + [Parsing: <file://example.net/C:/> without base] + expected: FAIL + + [Parsing: <file://1.2.3.4/C:/> without base] + expected: FAIL + + [Parsing: <file://[1::8\]/C:/> without base] + expected: FAIL + + [Parsing: <file:///Y:> without base] + expected: + if os == "win": FAIL + + [Parsing: <file:///y:> without base] + expected: + if os == "win": FAIL + + [Parsing: <file://ab/p> without base] + expected: FAIL + + [Parsing: <file://a%C2%ADb/p> without base] + expected: FAIL + + [Parsing: <file:///p> without base] + expected: FAIL + + [Parsing: <file://%C2%AD/p> without base] + expected: FAIL + + [Parsing: <file://xn--/p> without base] + expected: FAIL + + +[url-constructor.any.worker.html?include=file] + [Parsing: <file:c:\\foo\\bar.html> against <file:///tmp/mock/path>] + expected: FAIL + + [Parsing: < File:c|////foo\\bar.html> against <file:///tmp/mock/path>] + expected: FAIL + + [Parsing: <C|/foo/bar> against <file:///tmp/mock/path>] + expected: FAIL + + [Parsing: <//server/file> against <file:///tmp/mock/path>] + expected: FAIL + + [Parsing: <\\\\server\\file> against <file:///tmp/mock/path>] + expected: FAIL + + [Parsing: </\\server/file> against <file:///tmp/mock/path>] + expected: FAIL + + [Parsing: <file://test> against <file:///tmp/mock/path>] + expected: FAIL + + [Parsing: <file:..> against <http://www.example.com/test>] + expected: FAIL + + [Parsing: <..> against <file:///C:/>] + expected: FAIL + + [Parsing: </> against <file:///C:/a/b>] + expected: FAIL + + [Parsing: </> against <file://h/C:/a/b>] + expected: FAIL + + [Parsing: </> against <file://h/a/b>] + expected: FAIL + + [Parsing: <//d:> against <file:///C:/a/b>] + expected: + if os == "win": FAIL + + [Parsing: </..//localhost//pig> against <file://lion/>] + expected: FAIL + + [Parsing: </rooibos> against <file://tea/>] + expected: FAIL + + [Parsing: </?chai> against <file://tea/>] + expected: FAIL + + [Parsing: <C|> against <file://host/dir/file>] + expected: FAIL + + [Parsing: <C|> against <file://host/D:/dir1/dir2/file>] + expected: FAIL + + [Parsing: <C|#> against <file://host/dir/file>] + expected: FAIL + + [Parsing: <C|?> against <file://host/dir/file>] + expected: FAIL + + [Parsing: <C|/> against <file://host/dir/file>] + expected: FAIL + + [Parsing: <C|\n/> against <file://host/dir/file>] + expected: FAIL + + [Parsing: <C|\\> against <file://host/dir/file>] + expected: FAIL + + [Parsing: <C> against <file://host/dir/file>] + expected: FAIL + + [Parsing: <C|a> against <file://host/dir/file>] + expected: FAIL + + [Parsing: </c:/foo/bar> against <file://host/path>] + expected: FAIL + + [Parsing: <C|/> against <file://host/>] + expected: FAIL + + [Parsing: </C:/> against <file://host/>] + expected: FAIL + + [Parsing: <file:C:/> against <file://host/>] + expected: FAIL + + [Parsing: <file:/C:/> against <file://host/>] + expected: FAIL + + [Parsing: <//one/two> against <file:///>] + expected: FAIL + + [Parsing: <file://example:1/> without base] + expected: FAIL + + [Parsing: <file://example:test/> without base] + expected: FAIL + + [Parsing: <file://example%/> without base] + expected: FAIL + + [Parsing: <file://[example\]/> without base] + expected: FAIL + + [Parsing: <file://%43%3A> without base] + expected: FAIL + + [Parsing: <file://%43%7C> without base] + expected: FAIL + + [Parsing: <file://%43|> without base] + expected: FAIL + + [Parsing: <file://C%7C> without base] + expected: FAIL + + [Parsing: <file://%43%7C/> without base] + expected: FAIL + + [Parsing: <file://spider///> without base] + expected: FAIL + + [Parsing: <file://example.net/C:/> without base] + expected: FAIL + + [Parsing: <file://1.2.3.4/C:/> without base] + expected: FAIL + + [Parsing: <file://[1::8\]/C:/> without base] + expected: FAIL + + [Parsing: <file:///Y:> without base] + expected: + if os == "win": FAIL + + [Parsing: <file:///y:> without base] + expected: + if os == "win": FAIL + + [Parsing: <file://ab/p> without base] + expected: FAIL + + [Parsing: <file://a%C2%ADb/p> without base] + expected: FAIL + + [Parsing: <file:///p> without base] + expected: FAIL + + [Parsing: <file://%C2%AD/p> without base] + expected: FAIL + + [Parsing: <file://xn--/p> without base] + expected: FAIL + + +[url-constructor.any.html?exclude=(file|javascript|mailto)] + [Parsing: <non-special://f:999999/c> against <http://example.org/foo/bar>] + expected: FAIL + + [Parsing: <foo://> against <http://example.org/foo/bar>] + expected: FAIL + + [Parsing: <http://foo.com:b@d/> 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: <http://192.168.0.257> against <http://other.com/>] + expected: FAIL + + [Parsing: <i> against <sc://ho/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://ho/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://ho/pa>] + expected: FAIL + + [Parsing: <#i> against <sc:///pa/pa>] + expected: FAIL + + [Parsing: <x> against <sc://ñ>] + expected: FAIL + + [Parsing: <http://999999999.> against <http://other.com/>] + expected: FAIL + + [Parsing: <http://10000000000> against <http://other.com/>] + expected: FAIL + + [Parsing: <http://4294967296> against <http://other.com/>] + expected: FAIL + + [Parsing: <http://0xffffffff1> against <http://other.com/>] + expected: FAIL + + [Parsing: <http://256.256.256.256> against <http://other.com/>] + expected: FAIL + + [Parsing: <#x> against <sc://ñ>] + expected: FAIL + + [Parsing: <?x> against <sc://ñ>] + expected: FAIL + + [Parsing: <///> against <sc://x/>] + expected: FAIL + + [Parsing: <////> against <sc://x/>] + expected: FAIL + + [Parsing: <////x/> against <sc://x/>] + expected: FAIL + + [Parsing: </.//path> against <non-spec:/p>] + expected: FAIL + + [Parsing: </..//path> against <non-spec:/p>] + expected: FAIL + + [Parsing: <..//path> against <non-spec:/p>] + expected: FAIL + + [Parsing: <a/..//path> against <non-spec:/p>] + expected: FAIL + + [Parsing: <> against <non-spec:/..//p>] + expected: FAIL + + [Parsing: <path> against <non-spec:/..//p>] + expected: FAIL + + [Parsing: <test-a-colon-slash-slash.html> against <a://>] + expected: FAIL + + [Parsing: <test-a-colon-slash-slash-b.html> against <a://b>] + expected: FAIL + + [Parsing: <http://1.2.3.4.5> against <http://other.com/>] + expected: FAIL + + [Parsing: <http://1.2.3.4.5.> against <http://other.com/>] + expected: FAIL + + [Parsing: <http://256.256.256.256.256> against <http://other.com/>] + expected: FAIL + + [Parsing: <http://256.256.256.256.256.> against <http://other.com/>] + expected: FAIL + + [Parsing: <non-special://test:@test/x> without base] + expected: FAIL + + [Parsing: <non-special://:@test/x> without base] + expected: FAIL + + [Parsing: <http://example.com/foo/%2e> without base] + expected: FAIL + + [Parsing: <httpa://foo:80/> without base] + expected: FAIL + + [Parsing: <gopher://foo:70/> without base] + expected: FAIL + + [Parsing: <gopher://foo:443/> without base] + expected: FAIL + + [Parsing: <http://www.@pple.com> without base] + expected: FAIL + + [Parsing: <sc://faß.ExAmPlE/> without base] + expected: FAIL + + [Parsing: <h://.> without base] + expected: FAIL + + [Parsing: <notspecial://host/?'> without base] + expected: FAIL + + [Parsing: <about:/../> without base] + expected: FAIL + + [Parsing: <data:/../> without base] + expected: FAIL + + [Parsing: <sc://ñ.test/> without base] + expected: FAIL + + [Parsing: <sc://%/> without base] + expected: FAIL + + [Parsing: <sc://@/> without base] + expected: FAIL + + [Parsing: <sc://te@s:t@/> without base] + expected: FAIL + + [Parsing: <sc://:/> without base] + expected: FAIL + + [Parsing: <sc://:12/> without base] + expected: FAIL + + [Parsing: <sc://a\x00b/> without base] + expected: FAIL + + [Parsing: <sc://a b/> without base] + expected: FAIL + + [Parsing: <sc://a<b> without base] + expected: FAIL + + [Parsing: <sc://a>b> without base] + expected: FAIL + + [Parsing: <sc://a[b/> without base] + expected: FAIL + + [Parsing: <sc://a\\b/> without base] + expected: FAIL + + [Parsing: <sc://a\]b/> without base] + expected: FAIL + + [Parsing: <sc://a^b> without base] + expected: FAIL + + [Parsing: <sc://a|b/> without base] + expected: FAIL + + [Parsing: <foo://ho\tst/> without base] + expected: FAIL + + [Parsing: <foo://ho\nst/> without base] + expected: FAIL + + [Parsing: <foo://ho\rst/> without base] + expected: FAIL + + [Parsing: <http://!"$&'()*+,-.;=_`{}~/> without base] + expected: FAIL + + [Parsing: <sc://\x01\x02\x03\x04\x05\x06\x07\x08\x0b\x0c\x0e\x0f\x10\x11\x12\x13\x14\x15\x16\x17\x18\x19\x1a\x1b\x1c\x1d\x1e\x1f!"$%&'()*+,-.;=_`{}~/> without base] + expected: FAIL + + [Parsing: <https://0x.0x.0> without base] + expected: FAIL + + [Parsing: <https://0x100000000/test> without base] + expected: FAIL + + [Parsing: <https://256.0.0.1/test> without base] + expected: FAIL + + [Parsing: <asdf://%43|/> without base] + expected: FAIL + + [Parsing: <asdf://%43%7C/> without base] + expected: FAIL + + [Parsing: <sc://ñ> without base] + expected: FAIL + + [Parsing: <sc://ñ?x> without base] + expected: FAIL + + [Parsing: <sc://ñ#x> without base] + expected: FAIL + + [Parsing: <sc://?> without base] + expected: FAIL + + [Parsing: <sc://#> without base] + expected: FAIL + + [Parsing: <tftp://foobar.com/someconfig;mode=netascii> without base] + expected: FAIL + + [Parsing: <telnet://user:pass@foobar.com:23/> without base] + expected: FAIL + + [Parsing: <ut2004://10.10.10.10:7777/Index.ut2> without base] + expected: FAIL + + [Parsing: <redis://foo:bar@somehost:6379/0?baz=bam&qux=baz> without base] + expected: FAIL + + [Parsing: <rsync://foo@host:911/sup> without base] + expected: FAIL + + [Parsing: <git://github.com/foo/bar.git> without base] + expected: FAIL + + [Parsing: <irc://myserver.com:6999/channel?passwd> without base] + expected: FAIL + + [Parsing: <dns://fw.example.org:9999/foo.bar.org?type=TXT> without base] + expected: FAIL + + [Parsing: <ldap://localhost:389/ou=People,o=JNDITutorial> without base] + expected: FAIL + + [Parsing: <git+https://github.com/foo/bar> without base] + expected: FAIL + + [Parsing: <non-spec:/.//> without base] + expected: FAIL + + [Parsing: <non-spec:/..//> without base] + expected: FAIL + + [Parsing: <non-spec:/a/..//> without base] + expected: FAIL + + [Parsing: <non-spec:/.//path> without base] + expected: FAIL + + [Parsing: <non-spec:/..//path> without base] + expected: FAIL + + [Parsing: <non-spec:/a/..//path> without base] + expected: FAIL + + [Parsing: <non-special://%E2%80%A0/> without base] + expected: FAIL + + [Parsing: <non-special://H%4fSt/path> without base] + expected: FAIL + + [Parsing: <non-special://[1:2:0:0:5:0:0:0\]/> without base] + expected: FAIL + + [Parsing: <non-special://[1:2:0:0:0:0:0:3\]/> without base] + expected: FAIL + + [Parsing: <non-special://[1:2::3\]:80/> without base] + expected: FAIL + + [Parsing: <non-special://[:80/> without base] + expected: FAIL + + [Parsing: <non-spec://example.org/test?a#b\x00c> without base] + expected: FAIL + + [Parsing: <foo:// !"$%&'()*+,-.;<=>@[\\\]^_`{|}~@host/> without base] + expected: FAIL + + [Parsing: <wss:// !"$%&'()*+,-.;<=>@[\]^_`{|}~@host/> without base] + expected: FAIL + + [Parsing: <foo://joe: !"$%&'()*+,-.:;<=>@[\\\]^_`{|}~@host/> without base] + expected: FAIL + + [Parsing: <wss://joe: !"$%&'()*+,-.:;<=>@[\]^_`{|}~@host/> without base] + expected: FAIL + + [Parsing: <foo://!"$%&'()*+,-.;=_`{}~/> without base] + expected: FAIL + + [Parsing: <wss://!"$&'()*+,-.;=_`{}~/> without base] + expected: FAIL + + [Parsing: <foo://host/ !"$%&'()*+,-./:;<=>@[\\\]^_`{|}~> without base] + expected: FAIL + + [Parsing: <wss://host/ !"$%&'()*+,-./:;<=>@[\\\]^_`{|}~> without base] + expected: FAIL + + [Parsing: <foo://host/dir/? !"$%&'()*+,-./:;<=>?@[\\\]^_`{|}~> without base] + expected: FAIL + + [Parsing: <foo://host/dir/# !"#$%&'()*+,-./:;<=>?@[\\\]^_`{|}~> without base] + expected: FAIL + + [Parsing: <http://0..0x300/> without base] + expected: FAIL + + [Parsing: <http://0..0x300./> without base] + expected: FAIL + + [Parsing: <http://1.2.3.08> without base] + expected: FAIL + + [Parsing: <http://1.2.3.08.> without base] + expected: FAIL + + [Parsing: <http://1.2.3.09> without base] + expected: FAIL + + [Parsing: <http://09.2.3.4> without base] + expected: FAIL + + [Parsing: <http://09.2.3.4.> without base] + expected: FAIL + + [Parsing: <http://01.2.3.4.5> without base] + expected: FAIL + + [Parsing: <http://01.2.3.4.5.> without base] + expected: FAIL + + [Parsing: <http://0x100.2.3.4> without base] + expected: FAIL + + [Parsing: <http://0x100.2.3.4.> without base] + expected: FAIL + + [Parsing: <http://0x1.2.3.4.5> without base] + expected: FAIL + + [Parsing: <http://0x1.2.3.4.5.> without base] + expected: FAIL + + [Parsing: <http://foo.1.2.3.4> without base] + expected: FAIL + + [Parsing: <http://foo.1.2.3.4.> without base] + expected: FAIL + + [Parsing: <http://foo.2.3.4> without base] + expected: FAIL + + [Parsing: <http://foo.2.3.4.> without base] + expected: FAIL + + [Parsing: <http://foo.09> without base] + expected: FAIL + + [Parsing: <http://foo.09.> without base] + expected: FAIL + + [Parsing: <http://foo.0x4> without base] + expected: FAIL + + [Parsing: <http://foo.0x4.> without base] + expected: FAIL + + [Parsing: <http://0999999999999999999/> without base] + expected: FAIL + + [Parsing: <http://foo.0x> without base] + expected: FAIL + + [Parsing: <http://foo.0XFfFfFfFfFfFfFfFfFfAcE123> without base] + expected: FAIL + + [Parsing: <http://💩.123/> without base] + expected: FAIL + + [Parsing: <data://example.com:8080/pathname?search#hash> without base] + expected: FAIL + + [Parsing: <data:///test> without base] + expected: FAIL + + [Parsing: <data://test/a/../b> without base] + expected: FAIL + + [Parsing: <data://:443> without base] + expected: FAIL + + [Parsing: <data://test:test> without base] + expected: FAIL + + [Parsing: <data://[:1\]> without base] + expected: FAIL + + [Parsing: <intent://example.com:8080/pathname?search#hash> without base] + expected: FAIL + + [Parsing: <intent:///test> without base] + expected: FAIL + + [Parsing: <intent://test/a/../b> without base] + expected: FAIL + + [Parsing: <intent://:443> without base] + expected: FAIL + + [Parsing: <intent://test:test> without base] + expected: FAIL + + [Parsing: <intent://[:1\]> without base] + expected: FAIL + + [Parsing: <urn://example.com:8080/pathname?search#hash> without base] + expected: FAIL + + [Parsing: <urn:///test> without base] + expected: FAIL + + [Parsing: <urn://test/a/../b> without base] + expected: FAIL + + [Parsing: <urn://:443> without base] + expected: FAIL + + [Parsing: <urn://test:test> without base] + expected: FAIL + + [Parsing: <urn://[:1\]> without base] + expected: FAIL + + [Parsing: <turn://example.com:8080/pathname?search#hash> without base] + expected: FAIL + + [Parsing: <turn:///test> without base] + expected: FAIL + + [Parsing: <turn://test/a/../b> without base] + expected: FAIL + + [Parsing: <turn://:443> without base] + expected: FAIL + + [Parsing: <turn://test:test> without base] + expected: FAIL + + [Parsing: <turn://[:1\]> without base] + expected: FAIL + + [Parsing: <stun://example.com:8080/pathname?search#hash> without base] + expected: FAIL + + [Parsing: <stun:///test> without base] + expected: FAIL + + [Parsing: <stun://test/a/../b> without base] + expected: FAIL + + [Parsing: <stun://:443> without base] + expected: FAIL + + [Parsing: <stun://test:test> without base] + expected: FAIL + + [Parsing: <stun://[:1\]> without base] + expected: FAIL + + +[url-constructor.any.html?include=javascript] + [Parsing: <javascript:/../> without base] + expected: FAIL + + [Parsing: <javascript://example.com:8080/pathname?search#hash> without base] + expected: FAIL + + [Parsing: <javascript:///test> without base] + expected: FAIL + + [Parsing: <javascript://test/a/../b> without base] + expected: FAIL + + [Parsing: <javascript://:443> without base] + expected: FAIL + + [Parsing: <javascript://test:test> without base] + expected: FAIL + + [Parsing: <javascript://[:1\]> without base] + expected: FAIL + + +[url-constructor.any.html?include=mailto] + [Parsing: <mailto:/../> without base] + expected: FAIL + + [Parsing: <mailto://example.com:8080/pathname?search#hash> without base] + expected: FAIL + + [Parsing: <mailto:///test> without base] + expected: FAIL + + [Parsing: <mailto://test/a/../b> without base] + expected: FAIL + + [Parsing: <mailto://:443> without base] + expected: FAIL + + [Parsing: <mailto://test:test> without base] + expected: FAIL + + [Parsing: <mailto://[:1\]> without base] + expected: FAIL + + +[url-constructor.any.worker.html?include=mailto] + [Parsing: <mailto:/../> without base] + expected: FAIL + + [Parsing: <mailto://example.com:8080/pathname?search#hash> without base] + expected: FAIL + + [Parsing: <mailto:///test> without base] + expected: FAIL + + [Parsing: <mailto://test/a/../b> without base] + expected: FAIL + + [Parsing: <mailto://:443> without base] + expected: FAIL + + [Parsing: <mailto://test:test> without base] + expected: FAIL + + [Parsing: <mailto://[:1\]> without base] + expected: FAIL diff --git a/testing/web-platform/meta/url/url-origin.any.js.ini b/testing/web-platform/meta/url/url-origin.any.js.ini new file mode 100644 index 0000000000..b363821858 --- /dev/null +++ b/testing/web-platform/meta/url/url-origin.any.js.ini @@ -0,0 +1,32 @@ +[url-origin.any.html] + [Origin parsing: <ssh://example.com/foo/bar.git> against <http://example.org/>] + expected: FAIL + + [Origin parsing: <http://999999999.> against <http://other.com/>] + expected: FAIL + + [Origin parsing: <http://!"$&'()*+,-.;=_`{}~/> without base] + expected: FAIL + + [Origin parsing: <https://0x.0x.0> without base] + expected: FAIL + + [Origin parsing: <wss://!"$&'()*+,-.;=_`{}~/> without base] + expected: FAIL + + +[url-origin.any.worker.html] + [Origin parsing: <ssh://example.com/foo/bar.git> against <http://example.org/>] + expected: FAIL + + [Origin parsing: <http://999999999.> against <http://other.com/>] + expected: FAIL + + [Origin parsing: <http://!"$&'()*+,-.;=_`{}~/> without base] + expected: FAIL + + [Origin parsing: <https://0x.0x.0> without base] + expected: FAIL + + [Origin parsing: <wss://!"$&'()*+,-.;=_`{}~/> without base] + expected: FAIL diff --git a/testing/web-platform/meta/url/url-searchparams.any.js.ini b/testing/web-platform/meta/url/url-searchparams.any.js.ini new file mode 100644 index 0000000000..52199c1b11 --- /dev/null +++ b/testing/web-platform/meta/url/url-searchparams.any.js.ini @@ -0,0 +1,7 @@ +[url-searchparams.any.worker.html] + expected: + if (os == "android") and fission: [OK, TIMEOUT] + +[url-searchparams.any.html] + expected: + if (os == "android") and fission: [OK, TIMEOUT] diff --git a/testing/web-platform/meta/url/url-setters-a-area.window.js.ini b/testing/web-platform/meta/url/url-setters-a-area.window.js.ini new file mode 100644 index 0000000000..8166f44a1c --- /dev/null +++ b/testing/web-platform/meta/url/url-setters-a-area.window.js.ini @@ -0,0 +1,1084 @@ +[url-setters-a-area.window.html] + expected: + if (os == "android") and fission: [OK, TIMEOUT] + [<a>: Setting <http://test@example.net>.protocol = 'file' Can’t switch from URL containing username/password/port to file] + expected: FAIL + + [<area>: Setting <http://test@example.net>.protocol = 'file' Can’t switch from URL containing username/password/port to file] + expected: FAIL + + [<a>: Setting <https://example.net:1234>.protocol = 'file'] + expected: FAIL + + [<area>: Setting <https://example.net:1234>.protocol = 'file'] + expected: FAIL + + [<a>: Setting <wss://x:x@example.net:1234>.protocol = 'file'] + expected: FAIL + + [<area>: Setting <wss://x:x@example.net:1234>.protocol = 'file'] + expected: FAIL + + [<a>: Setting <file://localhost/>.protocol = 'http' Can’t switch from file URL with no host] + expected: FAIL + + [<area>: Setting <file://localhost/>.protocol = 'http' Can’t switch from file URL with no host] + expected: FAIL + + [<a>: Setting <file:///test>.protocol = 'https'] + expected: FAIL + + [<area>: Setting <file:///test>.protocol = 'https'] + expected: FAIL + + [<a>: Setting <file:>.protocol = 'wss'] + expected: FAIL + + [<area>: Setting <file:>.protocol = 'wss'] + expected: FAIL + + [<a>: Setting <http://example.net>.protocol = 'b' Can’t switch from special scheme to non-special] + expected: FAIL + + [<area>: Setting <http://example.net>.protocol = 'b' Can’t switch from special scheme to non-special] + expected: FAIL + + [<a>: Setting <file://hi/path>.protocol = 's'] + expected: FAIL + + [<area>: Setting <file://hi/path>.protocol = 's'] + expected: FAIL + + [<a>: Setting <https://example.net>.protocol = 's'] + expected: FAIL + + [<area>: Setting <https://example.net>.protocol = 's'] + expected: FAIL + + [<a>: Setting <ftp://example.net>.protocol = 'test'] + expected: FAIL + + [<area>: Setting <ftp://example.net>.protocol = 'test'] + expected: FAIL + + [<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.] + expected: FAIL + + [<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.] + expected: FAIL + + [<a>: Setting <ssh://me@example.net>.protocol = 'http' Can’t switch from non-special scheme to special] + expected: FAIL + + [<area>: Setting <ssh://me@example.net>.protocol = 'http' Can’t switch from non-special scheme to special] + expected: FAIL + + [<a>: Setting <ssh://me@example.net>.protocol = 'https'] + expected: FAIL + + [<area>: Setting <ssh://me@example.net>.protocol = 'https'] + expected: FAIL + + [<a>: Setting <ssh://me@example.net>.protocol = 'file'] + expected: FAIL + + [<area>: Setting <ssh://me@example.net>.protocol = 'file'] + expected: FAIL + + [<a>: Setting <ssh://example.net>.protocol = 'file'] + expected: FAIL + + [<area>: Setting <ssh://example.net>.protocol = 'file'] + expected: FAIL + + [<a>: Setting <nonsense:///test>.protocol = 'https'] + expected: FAIL + + [<area>: Setting <nonsense:///test>.protocol = 'https'] + expected: FAIL + + [<a>: Setting <http://example.net>.username = '\x00\x01\t\n\r\x1f !"#$%&'()*+,-./09:;<=>?@AZ[\\\]^_`az{|}~Éé' UTF-8 percent encoding with the userinfo encode set.] + expected: FAIL + + [<area>: Setting <http://example.net>.username = '\x00\x01\t\n\r\x1f !"#$%&'()*+,-./09:;<=>?@AZ[\\\]^_`az{|}~Éé' UTF-8 percent encoding with the userinfo encode set.] + expected: FAIL + + [<a>: Setting <javascript://x/>.username = 'wario'] + expected: FAIL + + [<area>: Setting <javascript://x/>.username = 'wario'] + expected: FAIL + + [<a>: Setting <file://test/>.username = 'test'] + expected: FAIL + + [<area>: Setting <file://test/>.username = 'test'] + expected: FAIL + + [<a>: Setting <http://example.net>.password = '\x00\x01\t\n\r\x1f !"#$%&'()*+,-./09:;<=>?@AZ[\\\]^_`az{|}~Éé' UTF-8 percent encoding with the userinfo encode set.] + expected: FAIL + + [<area>: Setting <http://example.net>.password = '\x00\x01\t\n\r\x1f !"#$%&'()*+,-./09:;<=>?@AZ[\\\]^_`az{|}~Éé' UTF-8 percent encoding with the userinfo encode set.] + expected: FAIL + + [<a>: Setting <javascript://x/>.password = 'bowser'] + expected: FAIL + + [<area>: Setting <javascript://x/>.password = 'bowser'] + expected: FAIL + + [<a>: Setting <file://test/>.password = 'test'] + expected: FAIL + + [<area>: Setting <file://test/>.password = 'test'] + expected: FAIL + + [<a>: Setting <sc://x/>.host = '\x00' Non-special scheme] + expected: FAIL + + [<area>: Setting <sc://x/>.host = '\x00' Non-special scheme] + expected: FAIL + + [<a>: Setting <sc://x/>.host = '\t'] + expected: FAIL + + [<area>: Setting <sc://x/>.host = '\t'] + expected: FAIL + + [<a>: Setting <sc://x/>.host = '\n'] + expected: FAIL + + [<area>: Setting <sc://x/>.host = '\n'] + expected: FAIL + + [<a>: Setting <sc://x/>.host = '\r'] + expected: FAIL + + [<area>: Setting <sc://x/>.host = '\r'] + expected: FAIL + + [<a>: Setting <sc://x/>.host = ' '] + expected: FAIL + + [<area>: Setting <sc://x/>.host = ' '] + expected: FAIL + + [<a>: Setting <sc://x/>.host = '#'] + expected: FAIL + + [<area>: Setting <sc://x/>.host = '#'] + expected: FAIL + + [<a>: Setting <sc://x/>.host = '/'] + expected: FAIL + + [<area>: Setting <sc://x/>.host = '/'] + expected: FAIL + + [<a>: Setting <sc://x/>.host = '?'] + expected: FAIL + + [<area>: Setting <sc://x/>.host = '?'] + expected: FAIL + + [<a>: Setting <sc://x/>.host = '@'] + expected: FAIL + + [<area>: Setting <sc://x/>.host = '@'] + expected: FAIL + + [<a>: Setting <sc://x/>.host = 'ß'] + expected: FAIL + + [<area>: Setting <sc://x/>.host = 'ß'] + expected: FAIL + + [<a>: Setting <view-source+http://example.net/foo>.host = '' The empty host is OK for non-special schemes] + expected: FAIL + + [<area>: Setting <view-source+http://example.net/foo>.host = '' The empty host is OK for non-special schemes] + expected: FAIL + + [<a>: Setting <a:/foo>.host = 'example.net' Path-only URLs can gain a host] + expected: FAIL + + [<area>: Setting <a:/foo>.host = 'example.net' Path-only URLs can gain a host] + expected: 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] + expected: 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] + expected: FAIL + + [<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] + expected: FAIL + + [<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] + expected: FAIL + + [<a>: Setting <file://y/>.host = 'x:123'] + expected: FAIL + + [<area>: Setting <file://y/>.host = 'x:123'] + expected: FAIL + + [<a>: Setting <sc://test@test/>.host = ''] + expected: FAIL + + [<area>: Setting <sc://test@test/>.host = ''] + expected: FAIL + + [<a>: Setting <sc://test:12/>.host = ''] + expected: FAIL + + [<area>: Setting <sc://test:12/>.host = ''] + expected: FAIL + + [<a>: Setting <sc://x/>.hostname = '\x00' Non-special scheme] + expected: FAIL + + [<area>: Setting <sc://x/>.hostname = '\x00' Non-special scheme] + expected: FAIL + + [<a>: Setting <sc://x/>.hostname = '\t'] + expected: FAIL + + [<area>: Setting <sc://x/>.hostname = '\t'] + expected: FAIL + + [<a>: Setting <sc://x/>.hostname = '\n'] + expected: FAIL + + [<area>: Setting <sc://x/>.hostname = '\n'] + expected: FAIL + + [<a>: Setting <sc://x/>.hostname = '\r'] + expected: FAIL + + [<area>: Setting <sc://x/>.hostname = '\r'] + expected: FAIL + + [<a>: Setting <sc://x/>.hostname = ' '] + expected: FAIL + + [<area>: Setting <sc://x/>.hostname = ' '] + expected: FAIL + + [<a>: Setting <sc://x/>.hostname = '#'] + expected: FAIL + + [<area>: Setting <sc://x/>.hostname = '#'] + expected: FAIL + + [<a>: Setting <sc://x/>.hostname = '/'] + expected: FAIL + + [<area>: Setting <sc://x/>.hostname = '/'] + expected: FAIL + + [<a>: Setting <sc://x/>.hostname = '?'] + expected: FAIL + + [<area>: Setting <sc://x/>.hostname = '?'] + expected: FAIL + + [<a>: Setting <sc://x/>.hostname = '@'] + expected: FAIL + + [<area>: Setting <sc://x/>.hostname = '@'] + expected: FAIL + + [<a>: Setting <view-source+http://example.net/foo>.hostname = '' The empty host is OK for non-special schemes] + expected: FAIL + + [<area>: Setting <view-source+http://example.net/foo>.hostname = '' The empty host is OK for non-special schemes] + expected: FAIL + + [<a>: Setting <a:/foo>.hostname = 'example.net' Path-only URLs can gain a host] + expected: FAIL + + [<area>: Setting <a:/foo>.hostname = 'example.net' Path-only URLs can gain a host] + expected: 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] + expected: FAIL + + [<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] + expected: FAIL + + [<a>: Setting <file://y/>.hostname = 'x:123'] + expected: FAIL + + [<area>: Setting <file://y/>.hostname = 'x:123'] + expected: FAIL + + [<a>: Setting <sc://test@test/>.hostname = ''] + expected: FAIL + + [<area>: Setting <sc://test@test/>.hostname = ''] + expected: FAIL + + [<a>: Setting <sc://test:12/>.hostname = ''] + expected: FAIL + + [<area>: Setting <sc://test:12/>.hostname = ''] + expected: FAIL + + [<a>: Setting <non-spec:/.//p>.hostname = 'h' Drop /. from path] + expected: FAIL + + [<area>: Setting <non-spec:/.//p>.hostname = 'h' Drop /. from path] + expected: FAIL + + [<a>: Setting <non-spec:/.//p>.hostname = ''] + expected: FAIL + + [<area>: Setting <non-spec:/.//p>.hostname = ''] + expected: FAIL + + [<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] + expected: 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] + expected: FAIL + + [<a>: Setting <non-special://example.net:8080/path>.port = '65536' Port numbers are 16 bit integers, overflowing is an error] + expected: FAIL + + [<area>: Setting <non-special://example.net:8080/path>.port = '65536' Port numbers are 16 bit integers, overflowing is an error] + expected: FAIL + + [<a>: Setting <file://test/>.port = '12'] + expected: FAIL + + [<area>: Setting <file://test/>.port = '12'] + expected: FAIL + + [<a>: Setting <sc://x/>.port = '12'] + expected: FAIL + + [<area>: Setting <sc://x/>.port = '12'] + expected: FAIL + + [<a>: Setting <javascript://x/>.port = '12'] + expected: FAIL + + [<area>: Setting <javascript://x/>.port = '12'] + expected: FAIL + + [<a>: Setting <mailto:me@example.net>.pathname = '/foo' Cannot-be-a-base don’t have a path] + expected: FAIL + + [<area>: Setting <mailto:me@example.net>.pathname = '/foo' Cannot-be-a-base don’t have a path] + expected: FAIL + + [<a>: Setting <unix:/run/foo.socket?timeout=10>.pathname = '/var/log/../run/bar.socket'] + expected: FAIL + + [<area>: Setting <unix:/run/foo.socket?timeout=10>.pathname = '/var/log/../run/bar.socket'] + expected: FAIL + + [<a>: Setting <http://example.net/home?lang=fr#nav>.pathname = '\\a\\%2E\\b\\%2e.\\c' \\ is a segment delimiter for 'special' URLs] + expected: FAIL + + [<area>: Setting <http://example.net/home?lang=fr#nav>.pathname = '\\a\\%2E\\b\\%2e.\\c' \\ is a segment delimiter for 'special' URLs] + expected: 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] + expected: FAIL + + [<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] + expected: FAIL + + [<a>: Setting <a:/>.pathname = '\x00\x01\t\n\r\x1f !"#$%&'()*+,-./09:;<=>?@AZ[\\\]^_`az{|}~Éé' UTF-8 percent encoding with the default encode set. Tabs and newlines are removed.] + expected: FAIL + + [<area>: Setting <a:/>.pathname = '\x00\x01\t\n\r\x1f !"#$%&'()*+,-./09:;<=>?@AZ[\\\]^_`az{|}~Éé' UTF-8 percent encoding with the default encode set. Tabs and newlines are removed.] + expected: FAIL + + [<a>: Setting <sc://example.net>.pathname = '?' ? needs to be encoded, non-special scheme] + expected: FAIL + + [<area>: Setting <sc://example.net>.pathname = '?' ? needs to be encoded, non-special scheme] + expected: FAIL + + [<a>: Setting <sc://example.net>.pathname = '#' # needs to be encoded, non-special scheme] + expected: FAIL + + [<area>: Setting <sc://example.net>.pathname = '#' # needs to be encoded, non-special scheme] + expected: FAIL + + [<a>: Setting <file://monkey/>.pathname = '\\\\' File URLs and (back)slashes] + expected: FAIL + + [<area>: Setting <file://monkey/>.pathname = '\\\\' File URLs and (back)slashes] + expected: FAIL + + [<a>: Setting <file:///unicorn>.pathname = '//\\/' File URLs and (back)slashes] + expected: FAIL + + [<area>: Setting <file:///unicorn>.pathname = '//\\/' File URLs and (back)slashes] + expected: FAIL + + [<a>: Setting <non-spec:/>.pathname = '/.//p' Serialize /. in path] + expected: FAIL + + [<area>: Setting <non-spec:/>.pathname = '/.//p' Serialize /. in path] + expected: FAIL + + [<a>: Setting <non-spec:/>.pathname = '/..//p'] + expected: FAIL + + [<area>: Setting <non-spec:/>.pathname = '/..//p'] + expected: FAIL + + [<a>: Setting <non-spec:/>.pathname = '//p'] + expected: FAIL + + [<area>: Setting <non-spec:/>.pathname = '//p'] + expected: FAIL + + [<a>: Setting <non-spec:/.//>.pathname = 'p' Drop /. from path] + expected: FAIL + + [<area>: Setting <non-spec:/.//>.pathname = 'p' Drop /. from path] + expected: FAIL + + [<a>: Setting <a:/>.search = '\x00\x01\t\n\r\x1f !"#$%&'()*+,-./09:;<=>?@AZ[\\\]^_`az{|}~Éé' UTF-8 percent encoding with the query encode set. Tabs and newlines are removed.] + expected: FAIL + + [<area>: Setting <a:/>.search = '\x00\x01\t\n\r\x1f !"#$%&'()*+,-./09:;<=>?@AZ[\\\]^_`az{|}~Éé' UTF-8 percent encoding with the query encode set. Tabs and newlines are removed.] + expected: FAIL + + [<a>: Setting <a:/>.hash = '\x00\x01\t\n\r\x1f !"#$%&'()*+,-./09:;<=>?@AZ[\\\]^_`az{|}~Éé' Simple percent-encoding; tabs and newlines are removed] + expected: FAIL + + [<area>: Setting <a:/>.hash = '\x00\x01\t\n\r\x1f !"#$%&'()*+,-./09:;<=>?@AZ[\\\]^_`az{|}~Éé' Simple percent-encoding; tabs and newlines are removed] + expected: FAIL + + [<a>: Setting <sc://example.com/>.host = '///bad.com' Leading / is not stripped] + expected: FAIL + + [<area>: Setting <sc://example.com/>.host = '///bad.com' Leading / is not stripped] + expected: FAIL + + [<a>: Setting <sc://example.com/>.hostname = '///bad.com' Leading / is not stripped] + expected: FAIL + + [<area>: Setting <sc://example.com/>.hostname = '///bad.com' Leading / is not stripped] + expected: FAIL + + [<a>: Setting <foo://somehost/some/path>.pathname = '' Non-special URLs can have their paths erased] + expected: FAIL + + [<area>: Setting <foo://somehost/some/path>.pathname = '' Non-special URLs can have their paths erased] + expected: FAIL + + [<a>: Setting <foo:///some/path>.pathname = '' Non-special URLs with an empty host can have their paths erased] + expected: FAIL + + [<area>: Setting <foo:///some/path>.pathname = '' Non-special URLs with an empty host can have their paths erased] + expected: FAIL + + [<a>: Setting <foo:/some/path>.pathname = '' Path-only URLs cannot have their paths erased] + expected: FAIL + + [<area>: Setting <foo:/some/path>.pathname = '' Path-only URLs cannot have their paths erased] + expected: FAIL + + [<a>: Setting <foo:/some/path>.pathname = 'test' Path-only URLs always have an initial slash] + expected: FAIL + + [<area>: Setting <foo:/some/path>.pathname = 'test' Path-only URLs always have an initial slash] + expected: FAIL + + [<a>: Setting <mailto:me@example.net>.pathname = '/foo' Opaque paths cannot be set] + expected: FAIL + + [<area>: Setting <mailto:me@example.net>.pathname = '/foo' Opaque paths cannot be set] + expected: FAIL + + [<a>: Setting <data:original>.pathname = 'new value'] + expected: FAIL + + [<area>: Setting <data:original>.pathname = 'new value'] + expected: FAIL + + [<a>: Setting <sc:original>.pathname = 'new value'] + expected: FAIL + + [<area>: Setting <sc:original>.pathname = 'new value'] + expected: FAIL + + [<a>: Setting <data:/nospace>.pathname = 'space ' Non-special URLs with non-opaque paths percent-encode U+0020] + expected: FAIL + + [<area>: Setting <data:/nospace>.pathname = 'space ' Non-special URLs with non-opaque paths percent-encode U+0020] + expected: FAIL + + [<a>: Setting <sc:/nospace>.pathname = 'space '] + expected: FAIL + + [<area>: Setting <sc:/nospace>.pathname = 'space '] + expected: FAIL + + [<a>: Setting <data:space ?query>.search = '' Drop trailing spaces from trailing opaque paths] + expected: FAIL + + [<area>: Setting <data:space ?query>.search = '' Drop trailing spaces from trailing opaque paths] + expected: FAIL + + [<a>: Setting <sc:space ?query>.search = ''] + expected: FAIL + + [<area>: Setting <sc:space ?query>.search = ''] + expected: FAIL + + [<a>: Setting <data:space ?query#fragment>.search = '' Do not drop trailing spaces from non-trailing opaque paths] + expected: FAIL + + [<area>: Setting <data:space ?query#fragment>.search = '' Do not drop trailing spaces from non-trailing opaque paths] + expected: FAIL + + [<a>: Setting <sc:space ?query#fragment>.search = ''] + expected: FAIL + + [<area>: Setting <sc:space ?query#fragment>.search = ''] + expected: FAIL + + [<a>: Setting <data:space #fragment>.hash = '' Drop trailing spaces from trailing opaque paths] + expected: FAIL + + [<area>: Setting <data:space #fragment>.hash = '' Drop trailing spaces from trailing opaque paths] + expected: FAIL + + [<a>: Setting <sc:space #fragment>.hash = ''] + expected: FAIL + + [<area>: Setting <sc:space #fragment>.hash = ''] + expected: FAIL + + +[url-setters-a-area.window.html?include=mailto] + [<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.] + expected: FAIL + + [<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.] + expected: FAIL + + +[url-setters-a-area.window.html?include=file] + [<a>: Setting <file://localhost/>.protocol = 'http' Can’t switch from file URL with no host] + expected: FAIL + + [<area>: Setting <file://localhost/>.protocol = 'http' Can’t switch from file URL with no host] + expected: FAIL + + [<a>: Setting <file:///test>.protocol = 'https'] + expected: FAIL + + [<area>: Setting <file:///test>.protocol = 'https'] + expected: FAIL + + [<a>: Setting <file:>.protocol = 'wss'] + expected: FAIL + + [<area>: Setting <file:>.protocol = 'wss'] + expected: FAIL + + [<a>: Setting <file://hi/path>.protocol = 's'] + expected: FAIL + + [<area>: Setting <file://hi/path>.protocol = 's'] + expected: FAIL + + [<a>: Setting <file://test/>.username = 'test'] + expected: FAIL + + [<area>: Setting <file://test/>.username = 'test'] + expected: FAIL + + [<a>: Setting <file://test/>.password = 'test'] + expected: FAIL + + [<area>: Setting <file://test/>.password = 'test'] + expected: FAIL + + [<a>: Setting <file://y/>.host = 'x:123'] + expected: FAIL + + [<area>: Setting <file://y/>.host = 'x:123'] + expected: FAIL + + [<a>: Setting <file://y/>.hostname = 'x:123'] + expected: FAIL + + [<area>: Setting <file://y/>.hostname = 'x:123'] + expected: FAIL + + [<a>: Setting <file://test/>.port = '12'] + expected: FAIL + + [<area>: Setting <file://test/>.port = '12'] + expected: FAIL + + [<a>: Setting <file://monkey/>.pathname = '\\\\' File URLs and (back)slashes] + expected: FAIL + + [<area>: Setting <file://monkey/>.pathname = '\\\\' File URLs and (back)slashes] + expected: FAIL + + [<a>: Setting <file:///unicorn>.pathname = '//\\/' File URLs and (back)slashes] + expected: FAIL + + [<area>: Setting <file:///unicorn>.pathname = '//\\/' File URLs and (back)slashes] + expected: FAIL + + +[url-setters-a-area.window.html?exclude=(file|javascript|mailto)] + [<a>: Setting <http://test@example.net>.protocol = 'file' Can’t switch from URL containing username/password/port to file] + expected: FAIL + + [<area>: Setting <http://test@example.net>.protocol = 'file' Can’t switch from URL containing username/password/port to file] + expected: FAIL + + [<a>: Setting <https://example.net:1234>.protocol = 'file'] + expected: FAIL + + [<area>: Setting <https://example.net:1234>.protocol = 'file'] + expected: FAIL + + [<a>: Setting <wss://x:x@example.net:1234>.protocol = 'file'] + expected: FAIL + + [<area>: Setting <wss://x:x@example.net:1234>.protocol = 'file'] + expected: FAIL + + [<a>: Setting <http://example.net>.protocol = 'b' Can’t switch from special scheme to non-special] + expected: FAIL + + [<area>: Setting <http://example.net>.protocol = 'b' Can’t switch from special scheme to non-special] + expected: FAIL + + [<a>: Setting <https://example.net>.protocol = 's'] + expected: FAIL + + [<area>: Setting <https://example.net>.protocol = 's'] + expected: FAIL + + [<a>: Setting <ftp://example.net>.protocol = 'test'] + expected: FAIL + + [<area>: Setting <ftp://example.net>.protocol = 'test'] + expected: FAIL + + [<a>: Setting <ssh://me@example.net>.protocol = 'http' Can’t switch from non-special scheme to special] + expected: FAIL + + [<area>: Setting <ssh://me@example.net>.protocol = 'http' Can’t switch from non-special scheme to special] + expected: FAIL + + [<a>: Setting <ssh://me@example.net>.protocol = 'https'] + expected: FAIL + + [<area>: Setting <ssh://me@example.net>.protocol = 'https'] + expected: FAIL + + [<a>: Setting <ssh://me@example.net>.protocol = 'file'] + expected: FAIL + + [<area>: Setting <ssh://me@example.net>.protocol = 'file'] + expected: FAIL + + [<a>: Setting <ssh://example.net>.protocol = 'file'] + expected: FAIL + + [<area>: Setting <ssh://example.net>.protocol = 'file'] + expected: FAIL + + [<a>: Setting <nonsense:///test>.protocol = 'https'] + expected: FAIL + + [<area>: Setting <nonsense:///test>.protocol = 'https'] + expected: FAIL + + [<a>: Setting <http://example.net>.username = '\x00\x01\t\n\r\x1f !"#$%&'()*+,-./09:;<=>?@AZ[\\\]^_`az{|}~Éé' UTF-8 percent encoding with the userinfo encode set.] + expected: FAIL + + [<area>: Setting <http://example.net>.username = '\x00\x01\t\n\r\x1f !"#$%&'()*+,-./09:;<=>?@AZ[\\\]^_`az{|}~Éé' UTF-8 percent encoding with the userinfo encode set.] + expected: FAIL + + [<a>: Setting <http://example.net>.password = '\x00\x01\t\n\r\x1f !"#$%&'()*+,-./09:;<=>?@AZ[\\\]^_`az{|}~Éé' UTF-8 percent encoding with the userinfo encode set.] + expected: FAIL + + [<area>: Setting <http://example.net>.password = '\x00\x01\t\n\r\x1f !"#$%&'()*+,-./09:;<=>?@AZ[\\\]^_`az{|}~Éé' UTF-8 percent encoding with the userinfo encode set.] + expected: FAIL + + [<a>: Setting <sc://x/>.host = '\x00' Non-special scheme] + expected: FAIL + + [<area>: Setting <sc://x/>.host = '\x00' Non-special scheme] + expected: FAIL + + [<a>: Setting <sc://x/>.host = '\t'] + expected: FAIL + + [<area>: Setting <sc://x/>.host = '\t'] + expected: FAIL + + [<a>: Setting <sc://x/>.host = '\n'] + expected: FAIL + + [<area>: Setting <sc://x/>.host = '\n'] + expected: FAIL + + [<a>: Setting <sc://x/>.host = '\r'] + expected: FAIL + + [<area>: Setting <sc://x/>.host = '\r'] + expected: FAIL + + [<a>: Setting <sc://x/>.host = ' '] + expected: FAIL + + [<area>: Setting <sc://x/>.host = ' '] + expected: FAIL + + [<a>: Setting <sc://x/>.host = '#'] + expected: FAIL + + [<area>: Setting <sc://x/>.host = '#'] + expected: FAIL + + [<a>: Setting <sc://x/>.host = '/'] + expected: FAIL + + [<area>: Setting <sc://x/>.host = '/'] + expected: FAIL + + [<a>: Setting <sc://x/>.host = '?'] + expected: FAIL + + [<area>: Setting <sc://x/>.host = '?'] + expected: FAIL + + [<a>: Setting <sc://x/>.host = '@'] + expected: FAIL + + [<area>: Setting <sc://x/>.host = '@'] + expected: FAIL + + [<a>: Setting <sc://x/>.host = 'ß'] + expected: FAIL + + [<area>: Setting <sc://x/>.host = 'ß'] + expected: FAIL + + [<a>: Setting <view-source+http://example.net/foo>.host = '' The empty host is OK for non-special schemes] + expected: FAIL + + [<area>: Setting <view-source+http://example.net/foo>.host = '' The empty host is OK for non-special schemes] + expected: FAIL + + [<a>: Setting <a:/foo>.host = 'example.net' Path-only URLs can gain a host] + expected: FAIL + + [<area>: Setting <a:/foo>.host = 'example.net' Path-only URLs can gain a host] + expected: 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] + expected: 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] + expected: FAIL + + [<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] + expected: FAIL + + [<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] + expected: FAIL + + [<a>: Setting <sc://test@test/>.host = ''] + expected: FAIL + + [<area>: Setting <sc://test@test/>.host = ''] + expected: FAIL + + [<a>: Setting <sc://test:12/>.host = ''] + expected: FAIL + + [<area>: Setting <sc://test:12/>.host = ''] + expected: FAIL + + [<a>: Setting <sc://example.com/>.host = '///bad.com' Leading / is not stripped] + expected: FAIL + + [<area>: Setting <sc://example.com/>.host = '///bad.com' Leading / is not stripped] + expected: FAIL + + [<a>: Setting <sc://x/>.hostname = '\x00' Non-special scheme] + expected: FAIL + + [<area>: Setting <sc://x/>.hostname = '\x00' Non-special scheme] + expected: FAIL + + [<a>: Setting <sc://x/>.hostname = '\t'] + expected: FAIL + + [<area>: Setting <sc://x/>.hostname = '\t'] + expected: FAIL + + [<a>: Setting <sc://x/>.hostname = '\n'] + expected: FAIL + + [<area>: Setting <sc://x/>.hostname = '\n'] + expected: FAIL + + [<a>: Setting <sc://x/>.hostname = '\r'] + expected: FAIL + + [<area>: Setting <sc://x/>.hostname = '\r'] + expected: FAIL + + [<a>: Setting <sc://x/>.hostname = ' '] + expected: FAIL + + [<area>: Setting <sc://x/>.hostname = ' '] + expected: FAIL + + [<a>: Setting <sc://x/>.hostname = '#'] + expected: FAIL + + [<area>: Setting <sc://x/>.hostname = '#'] + expected: FAIL + + [<a>: Setting <sc://x/>.hostname = '/'] + expected: FAIL + + [<area>: Setting <sc://x/>.hostname = '/'] + expected: FAIL + + [<a>: Setting <sc://x/>.hostname = '?'] + expected: FAIL + + [<area>: Setting <sc://x/>.hostname = '?'] + expected: FAIL + + [<a>: Setting <sc://x/>.hostname = '@'] + expected: FAIL + + [<area>: Setting <sc://x/>.hostname = '@'] + expected: FAIL + + [<a>: Setting <view-source+http://example.net/foo>.hostname = '' The empty host is OK for non-special schemes] + expected: FAIL + + [<area>: Setting <view-source+http://example.net/foo>.hostname = '' The empty host is OK for non-special schemes] + expected: FAIL + + [<a>: Setting <a:/foo>.hostname = 'example.net' Path-only URLs can gain a host] + expected: FAIL + + [<area>: Setting <a:/foo>.hostname = 'example.net' Path-only URLs can gain a host] + expected: 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] + expected: FAIL + + [<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] + expected: FAIL + + [<a>: Setting <sc://test@test/>.hostname = ''] + expected: FAIL + + [<area>: Setting <sc://test@test/>.hostname = ''] + expected: FAIL + + [<a>: Setting <sc://test:12/>.hostname = ''] + expected: FAIL + + [<area>: Setting <sc://test:12/>.hostname = ''] + expected: FAIL + + [<a>: Setting <non-spec:/.//p>.hostname = 'h' Drop /. from path] + expected: FAIL + + [<area>: Setting <non-spec:/.//p>.hostname = 'h' Drop /. from path] + expected: FAIL + + [<a>: Setting <non-spec:/.//p>.hostname = ''] + expected: FAIL + + [<area>: Setting <non-spec:/.//p>.hostname = ''] + expected: FAIL + + [<a>: Setting <sc://example.com/>.hostname = '///bad.com' Leading / is not stripped] + expected: FAIL + + [<area>: Setting <sc://example.com/>.hostname = '///bad.com' Leading / is not stripped] + expected: FAIL + + [<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] + expected: 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] + expected: FAIL + + [<a>: Setting <non-special://example.net:8080/path>.port = '65536' Port numbers are 16 bit integers, overflowing is an error] + expected: FAIL + + [<area>: Setting <non-special://example.net:8080/path>.port = '65536' Port numbers are 16 bit integers, overflowing is an error] + expected: FAIL + + [<a>: Setting <sc://x/>.port = '12'] + expected: FAIL + + [<area>: Setting <sc://x/>.port = '12'] + expected: FAIL + + [<a>: Setting <foo://somehost/some/path>.pathname = '' Non-special URLs can have their paths erased] + expected: FAIL + + [<area>: Setting <foo://somehost/some/path>.pathname = '' Non-special URLs can have their paths erased] + expected: FAIL + + [<a>: Setting <foo:///some/path>.pathname = '' Non-special URLs with an empty host can have their paths erased] + expected: FAIL + + [<area>: Setting <foo:///some/path>.pathname = '' Non-special URLs with an empty host can have their paths erased] + expected: FAIL + + [<a>: Setting <foo:/some/path>.pathname = '' Path-only URLs cannot have their paths erased] + expected: FAIL + + [<area>: Setting <foo:/some/path>.pathname = '' Path-only URLs cannot have their paths erased] + expected: FAIL + + [<a>: Setting <foo:/some/path>.pathname = 'test' Path-only URLs always have an initial slash] + expected: FAIL + + [<area>: Setting <foo:/some/path>.pathname = 'test' Path-only URLs always have an initial slash] + expected: FAIL + + [<a>: Setting <unix:/run/foo.socket?timeout=10>.pathname = '/var/log/../run/bar.socket'] + expected: FAIL + + [<area>: Setting <unix:/run/foo.socket?timeout=10>.pathname = '/var/log/../run/bar.socket'] + expected: FAIL + + [<a>: Setting <http://example.net/home?lang=fr#nav>.pathname = '\\a\\%2E\\b\\%2e.\\c' \\ is a segment delimiter for 'special' URLs] + expected: FAIL + + [<area>: Setting <http://example.net/home?lang=fr#nav>.pathname = '\\a\\%2E\\b\\%2e.\\c' \\ is a segment delimiter for 'special' URLs] + expected: 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] + expected: FAIL + + [<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] + expected: FAIL + + [<a>: Setting <a:/>.pathname = '\x00\x01\t\n\r\x1f !"#$%&'()*+,-./09:;<=>?@AZ[\\\]^_`az{|}~Éé' UTF-8 percent encoding with the default encode set. Tabs and newlines are removed.] + expected: FAIL + + [<area>: Setting <a:/>.pathname = '\x00\x01\t\n\r\x1f !"#$%&'()*+,-./09:;<=>?@AZ[\\\]^_`az{|}~Éé' UTF-8 percent encoding with the default encode set. Tabs and newlines are removed.] + expected: FAIL + + [<a>: Setting <sc://example.net>.pathname = '?' ? needs to be encoded, non-special scheme] + expected: FAIL + + [<area>: Setting <sc://example.net>.pathname = '?' ? needs to be encoded, non-special scheme] + expected: FAIL + + [<a>: Setting <sc://example.net>.pathname = '#' # needs to be encoded, non-special scheme] + expected: FAIL + + [<area>: Setting <sc://example.net>.pathname = '#' # needs to be encoded, non-special scheme] + expected: FAIL + + [<a>: Setting <non-spec:/>.pathname = '/.//p' Serialize /. in path] + expected: FAIL + + [<area>: Setting <non-spec:/>.pathname = '/.//p' Serialize /. in path] + expected: FAIL + + [<a>: Setting <non-spec:/>.pathname = '/..//p'] + expected: FAIL + + [<area>: Setting <non-spec:/>.pathname = '/..//p'] + expected: FAIL + + [<a>: Setting <non-spec:/>.pathname = '//p'] + expected: FAIL + + [<area>: Setting <non-spec:/>.pathname = '//p'] + expected: FAIL + + [<a>: Setting <non-spec:/.//>.pathname = 'p' Drop /. from path] + expected: FAIL + + [<area>: Setting <non-spec:/.//>.pathname = 'p' Drop /. from path] + expected: FAIL + + [<a>: Setting <a:/>.search = '\x00\x01\t\n\r\x1f !"#$%&'()*+,-./09:;<=>?@AZ[\\\]^_`az{|}~Éé' UTF-8 percent encoding with the query encode set. Tabs and newlines are removed.] + expected: FAIL + + [<area>: Setting <a:/>.search = '\x00\x01\t\n\r\x1f !"#$%&'()*+,-./09:;<=>?@AZ[\\\]^_`az{|}~Éé' UTF-8 percent encoding with the query encode set. Tabs and newlines are removed.] + expected: FAIL + + [<a>: Setting <a:/>.hash = '\x00\x01\t\n\r\x1f !"#$%&'()*+,-./09:;<=>?@AZ[\\\]^_`az{|}~Éé' Simple percent-encoding; tabs and newlines are removed] + expected: FAIL + + [<area>: Setting <a:/>.hash = '\x00\x01\t\n\r\x1f !"#$%&'()*+,-./09:;<=>?@AZ[\\\]^_`az{|}~Éé' Simple percent-encoding; tabs and newlines are removed] + expected: FAIL + + [<a>: Setting <data:/nospace>.pathname = 'space ' Non-special URLs with non-opaque paths percent-encode U+0020] + expected: FAIL + + [<a>: Setting <sc:space ?query#fragment>.search = ''] + expected: FAIL + + [<area>: Setting <data:/nospace>.pathname = 'space ' Non-special URLs with non-opaque paths percent-encode U+0020] + expected: FAIL + + [<area>: Setting <data:space ?query#fragment>.search = '' Do not drop trailing spaces from non-trailing opaque paths] + expected: FAIL + + [<area>: Setting <sc:/nospace>.pathname = 'space '] + expected: FAIL + + [<a>: Setting <data:space ?query#fragment>.search = '' Do not drop trailing spaces from non-trailing opaque paths] + expected: FAIL + + [<area>: Setting <sc:space ?query#fragment>.search = ''] + expected: FAIL + + [<a>: Setting <sc:/nospace>.pathname = 'space '] + expected: FAIL + + [<a>: Setting <wpt++://domain.com:443>.port = '\t8080' Leading u0009 on non-special scheme] + expected: FAIL + + [<area>: Setting <wpt++://domain.com:443>.port = '\t8080' Leading u0009 on non-special scheme] + expected: FAIL + + +[url-setters-a-area.window.html?include=javascript] + [<a>: Setting <javascript://x/>.username = 'wario'] + expected: FAIL + + [<area>: Setting <javascript://x/>.username = 'wario'] + expected: FAIL + + [<a>: Setting <javascript://x/>.password = 'bowser'] + expected: FAIL + + [<area>: Setting <javascript://x/>.password = 'bowser'] + expected: FAIL + + [<a>: Setting <javascript://x/>.port = '12'] + expected: FAIL + + [<area>: Setting <javascript://x/>.port = '12'] + expected: FAIL diff --git a/testing/web-platform/meta/url/url-setters-stripping.any.js.ini b/testing/web-platform/meta/url/url-setters-stripping.any.js.ini new file mode 100644 index 0000000000..d8d5e07b2c --- /dev/null +++ b/testing/web-platform/meta/url/url-setters-stripping.any.js.ini @@ -0,0 +1,858 @@ +[url-setters-stripping.any.html] + expected: + if (os == "android") and fission: [OK, TIMEOUT] + [Setting search with middle U+000A (wpt++:)] + expected: FAIL + + [Setting port with trailing U+000A (wpt++:)] + expected: FAIL + + [Setting pathname with trailing U+000D (wpt++:)] + expected: FAIL + + [Setting hostname with middle U+001F (wpt++:)] + expected: FAIL + + [Setting host with leading U+0009 (https:)] + expected: FAIL + + [Setting pathname with leading U+001F (wpt++:)] + expected: FAIL + + [Setting host with leading U+000A (https:)] + expected: FAIL + + [Setting hostname with middle U+000D (wpt++:)] + expected: FAIL + + [Setting hostname with middle U+0000 (wpt++:)] + expected: FAIL + + [Setting search with trailing U+0009 (wpt++:)] + expected: FAIL + + [Setting hostname with leading U+0000 (wpt++:)] + expected: FAIL + + [Setting username with trailing U+0000 (wpt++:)] + expected: FAIL + + [Setting hostname with middle U+000D (https:)] + expected: FAIL + + [Setting hostname with middle U+0009 (https:)] + expected: FAIL + + [Setting port with middle U+0009 (https:)] + expected: FAIL + + [Setting pathname with trailing U+000D (https:)] + expected: FAIL + + [Setting hostname with trailing U+001F (wpt++:)] + expected: FAIL + + [Setting username with middle U+0009 (wpt++:)] + expected: FAIL + + [Setting pathname with leading U+000A (wpt++:)] + expected: FAIL + + [Setting username with trailing U+0009 (wpt++:)] + expected: FAIL + + [Setting hash with leading U+000A (wpt++:)] + expected: FAIL + + [Setting hash with middle U+0009 (wpt++:)] + expected: FAIL + + [Setting hash with middle U+000D (wpt++:)] + expected: FAIL + + [Setting hash with trailing U+000D (wpt++:)] + expected: FAIL + + [Setting host with trailing U+000A (https:)] + expected: FAIL + + [Setting pathname with middle U+0009 (wpt++:)] + expected: FAIL + + [Setting port with middle U+000A (wpt++:)] + expected: FAIL + + [Setting host with leading U+000D (https:)] + expected: FAIL + + [Setting pathname with middle U+000D (https:)] + expected: FAIL + + [Setting host with trailing U+0009 (wpt++:)] + expected: FAIL + + [Setting host with middle U+0009 (wpt++:)] + expected: FAIL + + [Setting host with middle U+0009 (https:)] + expected: FAIL + + [Setting hostname with middle U+000A (https:)] + expected: FAIL + + [Setting host with leading U+000A (wpt++:)] + expected: FAIL + + [Setting password with trailing U+000D (wpt++:)] + expected: FAIL + + [Setting search with trailing U+000D (wpt++:)] + expected: FAIL + + [Setting password with trailing U+0000 (wpt++:)] + expected: FAIL + + [Setting pathname with trailing U+001F (wpt++:)] + expected: FAIL + + [Setting pathname with middle U+000A (https:)] + expected: FAIL + + [Setting search with leading U+0000 (https:)] + expected: FAIL + + [Setting hostname with trailing U+000D (wpt++:)] + expected: FAIL + + [Setting username with middle U+0000 (wpt++:)] + expected: FAIL + + [Setting password with trailing U+0009 (wpt++:)] + expected: FAIL + + [Setting pathname with leading U+0000 (wpt++:)] + expected: FAIL + + [Setting host with middle U+0000 (wpt++:)] + expected: FAIL + + [Setting pathname with middle U+0000 (wpt++:)] + expected: FAIL + + [Setting pathname with trailing U+0009 (https:)] + expected: FAIL + + [Setting username with leading U+000D (wpt++:)] + expected: FAIL + + [Setting username with leading U+0000 (wpt++:)] + expected: FAIL + + [Setting host with leading U+000D (wpt++:)] + expected: FAIL + + [Setting host with middle U+000A (wpt++:)] + expected: FAIL + + [Setting password with middle U+0009 (wpt++:)] + expected: FAIL + + [Setting host with middle U+001F (wpt++:)] + expected: FAIL + + [Setting username with trailing U+001F (wpt++:)] + expected: FAIL + + [Setting port with middle U+0000 (wpt++:)] + expected: FAIL + + [Setting hash with trailing U+0009 (wpt++:)] + expected: FAIL + + [Setting password with leading U+0000 (wpt++:)] + expected: FAIL + + [Setting port with leading U+000D (wpt++:)] + expected: FAIL + + [Setting username with middle U+001F (wpt++:)] + expected: FAIL + + [Setting username with trailing U+000D (wpt++:)] + expected: FAIL + + [Setting password with leading U+000D (wpt++:)] + expected: FAIL + + [Setting hostname with leading U+000D (wpt++:)] + expected: FAIL + + [Setting password with middle U+0000 (wpt++:)] + expected: FAIL + + [Setting pathname with trailing U+000A (https:)] + expected: FAIL + + [Setting port with trailing U+0009 (wpt++:)] + expected: FAIL + + [Setting hostname with leading U+000A (wpt++:)] + expected: FAIL + + [Setting pathname with leading U+000D (https:)] + expected: FAIL + + [Setting hostname with middle U+0009 (wpt++:)] + expected: FAIL + + [Setting hostname with leading U+000D (https:)] + expected: FAIL + + [Setting pathname with trailing U+0009 (wpt++:)] + expected: FAIL + + [Setting port with middle U+001F (wpt++:)] + expected: FAIL + + [Setting host with middle U+000A (https:)] + expected: FAIL + + [Setting search with leading U+0009 (wpt++:)] + expected: FAIL + + [Setting search with trailing U+000A (wpt++:)] + expected: FAIL + + [Setting search with leading U+000D (wpt++:)] + expected: FAIL + + [Setting pathname with leading U+0009 (https:)] + expected: FAIL + + [Setting host with middle U+000D (wpt++:)] + expected: FAIL + + [Setting hostname with trailing U+0009 (https:)] + expected: FAIL + + [Setting pathname with leading U+0000 (https:)] + expected: FAIL + + [Setting password with trailing U+001F (wpt++:)] + expected: FAIL + + [Setting port with leading U+0000 (wpt++:)] + expected: FAIL + + [Setting pathname with middle U+0009 (https:)] + expected: FAIL + + [Setting search with middle U+0009 (wpt++:)] + expected: FAIL + + [Setting hash with middle U+000A (wpt++:)] + expected: FAIL + + [Setting pathname with trailing U+0000 (wpt++:)] + expected: FAIL + + [Setting port with leading U+0009 (wpt++:)] + expected: FAIL + + [Setting search with middle U+000D (wpt++:)] + expected: FAIL + + [Setting username with middle U+000D (wpt++:)] + expected: FAIL + + [Setting password with leading U+001F (wpt++:)] + expected: FAIL + + [Setting host with trailing U+0009 (https:)] + expected: FAIL + + [Setting hostname with leading U+0009 (wpt++:)] + expected: FAIL + + [Setting password with leading U+000A (wpt++:)] + expected: FAIL + + [Setting password with middle U+000D (wpt++:)] + expected: FAIL + + [Setting pathname with trailing U+000A (wpt++:)] + expected: FAIL + + [Setting host with leading U+001F (wpt++:)] + expected: FAIL + + [Setting username with leading U+0009 (wpt++:)] + expected: FAIL + + [Setting pathname with leading U+000A (https:)] + expected: FAIL + + [Setting hostname with trailing U+000A (wpt++:)] + expected: FAIL + + [Setting password with leading U+0009 (wpt++:)] + expected: FAIL + + [Setting port with trailing U+0000 (wpt++:)] + expected: FAIL + + [Setting port with leading U+000A (wpt++:)] + expected: FAIL + + [Setting hash with trailing U+000A (wpt++:)] + expected: FAIL + + [Setting pathname with middle U+000A (wpt++:)] + expected: FAIL + + [Setting host with trailing U+000D (https:)] + expected: FAIL + + [Setting port with leading U+0000 (https:)] + expected: FAIL + + [Setting pathname with leading U+000D (wpt++:)] + expected: FAIL + + [Setting pathname with leading U+0009 (wpt++:)] + expected: FAIL + + [Setting username with leading U+001F (wpt++:)] + expected: FAIL + + [Setting hostname with leading U+0009 (https:)] + expected: FAIL + + [Setting host with trailing U+0000 (wpt++:)] + expected: FAIL + + [Setting hostname with middle U+000A (wpt++:)] + expected: FAIL + + [Setting hash with leading U+000D (wpt++:)] + expected: FAIL + + [Setting hostname with trailing U+000A (https:)] + expected: FAIL + + [Setting port with middle U+0009 (wpt++:)] + expected: FAIL + + [Setting search with leading U+000A (wpt++:)] + expected: FAIL + + [Setting hostname with trailing U+000D (https:)] + expected: FAIL + + [Setting host with trailing U+000D (wpt++:)] + expected: FAIL + + [Setting port with trailing U+000D (wpt++:)] + expected: FAIL + + [Setting hostname with trailing U+0000 (wpt++:)] + expected: FAIL + + [Setting port with middle U+000D (wpt++:)] + expected: FAIL + + [Setting hostname with leading U+000A (https:)] + expected: FAIL + + [Setting pathname with middle U+001F (wpt++:)] + expected: FAIL + + [Setting port with leading U+001F (https:)] + expected: FAIL + + [Setting host with trailing U+000A (wpt++:)] + expected: FAIL + + [Setting password with middle U+001F (wpt++:)] + expected: FAIL + + [Setting hostname with trailing U+0009 (wpt++:)] + expected: FAIL + + [Setting port with middle U+000D (https:)] + expected: FAIL + + [Setting username with trailing U+000A (wpt++:)] + expected: FAIL + + [Setting username with leading U+000A (wpt++:)] + expected: FAIL + + [Setting host with leading U+0000 (wpt++:)] + expected: FAIL + + [Setting password with trailing U+000A (wpt++:)] + expected: FAIL + + [Setting hash with leading U+0009 (wpt++:)] + expected: FAIL + + [Setting host with middle U+000D (https:)] + expected: FAIL + + [Setting host with trailing U+001F (wpt++:)] + expected: FAIL + + [Setting username with middle U+000A (wpt++:)] + expected: FAIL + + [Setting host with leading U+0009 (wpt++:)] + expected: FAIL + + [Setting port with trailing U+001F (wpt++:)] + expected: FAIL + + [Setting password with middle U+000A (wpt++:)] + expected: FAIL + + [Setting pathname with middle U+000D (wpt++:)] + expected: FAIL + + [Setting port with middle U+000A (https:)] + expected: FAIL + + [Setting hostname with leading U+001F (wpt++:)] + expected: FAIL + + [Setting port with leading U+001F (wpt++:)] + expected: FAIL + + +[url-setters-stripping.any.worker.html] + expected: + if (os == "android") and fission: [OK, TIMEOUT] + [Setting search with middle U+000A (wpt++:)] + expected: FAIL + + [Setting port with trailing U+000A (wpt++:)] + expected: FAIL + + [Setting pathname with trailing U+000D (wpt++:)] + expected: FAIL + + [Setting hostname with middle U+001F (wpt++:)] + expected: FAIL + + [Setting host with leading U+0009 (https:)] + expected: FAIL + + [Setting pathname with leading U+001F (wpt++:)] + expected: FAIL + + [Setting host with leading U+000A (https:)] + expected: FAIL + + [Setting hostname with middle U+000D (wpt++:)] + expected: FAIL + + [Setting hostname with middle U+0000 (wpt++:)] + expected: FAIL + + [Setting search with trailing U+0009 (wpt++:)] + expected: FAIL + + [Setting hostname with leading U+0000 (wpt++:)] + expected: FAIL + + [Setting username with trailing U+0000 (wpt++:)] + expected: FAIL + + [Setting hostname with middle U+000D (https:)] + expected: FAIL + + [Setting hostname with middle U+0009 (https:)] + expected: FAIL + + [Setting port with middle U+0009 (https:)] + expected: FAIL + + [Setting pathname with trailing U+000D (https:)] + expected: FAIL + + [Setting hostname with trailing U+001F (wpt++:)] + expected: FAIL + + [Setting username with middle U+0009 (wpt++:)] + expected: FAIL + + [Setting pathname with leading U+000A (wpt++:)] + expected: FAIL + + [Setting username with trailing U+0009 (wpt++:)] + expected: FAIL + + [Setting hash with leading U+000A (wpt++:)] + expected: FAIL + + [Setting hash with middle U+0009 (wpt++:)] + expected: FAIL + + [Setting hash with middle U+000D (wpt++:)] + expected: FAIL + + [Setting hash with trailing U+000D (wpt++:)] + expected: FAIL + + [Setting host with trailing U+000A (https:)] + expected: FAIL + + [Setting pathname with middle U+0009 (wpt++:)] + expected: FAIL + + [Setting port with middle U+000A (wpt++:)] + expected: FAIL + + [Setting host with leading U+000D (https:)] + expected: FAIL + + [Setting pathname with middle U+000D (https:)] + expected: FAIL + + [Setting host with trailing U+0009 (wpt++:)] + expected: FAIL + + [Setting host with middle U+0009 (wpt++:)] + expected: FAIL + + [Setting host with middle U+0009 (https:)] + expected: FAIL + + [Setting hostname with middle U+000A (https:)] + expected: FAIL + + [Setting host with leading U+000A (wpt++:)] + expected: FAIL + + [Setting password with trailing U+000D (wpt++:)] + expected: FAIL + + [Setting search with trailing U+000D (wpt++:)] + expected: FAIL + + [Setting password with trailing U+0000 (wpt++:)] + expected: FAIL + + [Setting pathname with trailing U+001F (wpt++:)] + expected: FAIL + + [Setting pathname with middle U+000A (https:)] + expected: FAIL + + [Setting search with leading U+0000 (https:)] + expected: FAIL + + [Setting hostname with trailing U+000D (wpt++:)] + expected: FAIL + + [Setting username with middle U+0000 (wpt++:)] + expected: FAIL + + [Setting password with trailing U+0009 (wpt++:)] + expected: FAIL + + [Setting pathname with leading U+0000 (wpt++:)] + expected: FAIL + + [Setting host with middle U+0000 (wpt++:)] + expected: FAIL + + [Setting pathname with middle U+0000 (wpt++:)] + expected: FAIL + + [Setting pathname with trailing U+0009 (https:)] + expected: FAIL + + [Setting username with leading U+000D (wpt++:)] + expected: FAIL + + [Setting username with leading U+0000 (wpt++:)] + expected: FAIL + + [Setting host with leading U+000D (wpt++:)] + expected: FAIL + + [Setting host with middle U+000A (wpt++:)] + expected: FAIL + + [Setting password with middle U+0009 (wpt++:)] + expected: FAIL + + [Setting host with middle U+001F (wpt++:)] + expected: FAIL + + [Setting username with trailing U+001F (wpt++:)] + expected: FAIL + + [Setting port with middle U+0000 (wpt++:)] + expected: FAIL + + [Setting hash with trailing U+0009 (wpt++:)] + expected: FAIL + + [Setting password with leading U+0000 (wpt++:)] + expected: FAIL + + [Setting port with leading U+000D (wpt++:)] + expected: FAIL + + [Setting username with middle U+001F (wpt++:)] + expected: FAIL + + [Setting username with trailing U+000D (wpt++:)] + expected: FAIL + + [Setting password with leading U+000D (wpt++:)] + expected: FAIL + + [Setting hostname with leading U+000D (wpt++:)] + expected: FAIL + + [Setting password with middle U+0000 (wpt++:)] + expected: FAIL + + [Setting pathname with trailing U+000A (https:)] + expected: FAIL + + [Setting port with trailing U+0009 (wpt++:)] + expected: FAIL + + [Setting hostname with leading U+000A (wpt++:)] + expected: FAIL + + [Setting pathname with leading U+000D (https:)] + expected: FAIL + + [Setting hostname with middle U+0009 (wpt++:)] + expected: FAIL + + [Setting hostname with leading U+000D (https:)] + expected: FAIL + + [Setting pathname with trailing U+0009 (wpt++:)] + expected: FAIL + + [Setting port with middle U+001F (wpt++:)] + expected: FAIL + + [Setting host with middle U+000A (https:)] + expected: FAIL + + [Setting search with leading U+0009 (wpt++:)] + expected: FAIL + + [Setting search with trailing U+000A (wpt++:)] + expected: FAIL + + [Setting search with leading U+000D (wpt++:)] + expected: FAIL + + [Setting pathname with leading U+0009 (https:)] + expected: FAIL + + [Setting host with middle U+000D (wpt++:)] + expected: FAIL + + [Setting hostname with trailing U+0009 (https:)] + expected: FAIL + + [Setting pathname with leading U+0000 (https:)] + expected: FAIL + + [Setting password with trailing U+001F (wpt++:)] + expected: FAIL + + [Setting port with leading U+0000 (wpt++:)] + expected: FAIL + + [Setting pathname with middle U+0009 (https:)] + expected: FAIL + + [Setting search with middle U+0009 (wpt++:)] + expected: FAIL + + [Setting hash with middle U+000A (wpt++:)] + expected: FAIL + + [Setting pathname with trailing U+0000 (wpt++:)] + expected: FAIL + + [Setting port with leading U+0009 (wpt++:)] + expected: FAIL + + [Setting search with middle U+000D (wpt++:)] + expected: FAIL + + [Setting username with middle U+000D (wpt++:)] + expected: FAIL + + [Setting password with leading U+001F (wpt++:)] + expected: FAIL + + [Setting host with trailing U+0009 (https:)] + expected: FAIL + + [Setting hostname with leading U+0009 (wpt++:)] + expected: FAIL + + [Setting password with leading U+000A (wpt++:)] + expected: FAIL + + [Setting password with middle U+000D (wpt++:)] + expected: FAIL + + [Setting pathname with trailing U+000A (wpt++:)] + expected: FAIL + + [Setting host with leading U+001F (wpt++:)] + expected: FAIL + + [Setting username with leading U+0009 (wpt++:)] + expected: FAIL + + [Setting pathname with leading U+000A (https:)] + expected: FAIL + + [Setting hostname with trailing U+000A (wpt++:)] + expected: FAIL + + [Setting password with leading U+0009 (wpt++:)] + expected: FAIL + + [Setting port with trailing U+0000 (wpt++:)] + expected: FAIL + + [Setting port with leading U+000A (wpt++:)] + expected: FAIL + + [Setting hash with trailing U+000A (wpt++:)] + expected: FAIL + + [Setting pathname with middle U+000A (wpt++:)] + expected: FAIL + + [Setting host with trailing U+000D (https:)] + expected: FAIL + + [Setting port with leading U+0000 (https:)] + expected: FAIL + + [Setting pathname with leading U+000D (wpt++:)] + expected: FAIL + + [Setting pathname with leading U+0009 (wpt++:)] + expected: FAIL + + [Setting username with leading U+001F (wpt++:)] + expected: FAIL + + [Setting hostname with leading U+0009 (https:)] + expected: FAIL + + [Setting host with trailing U+0000 (wpt++:)] + expected: FAIL + + [Setting hostname with middle U+000A (wpt++:)] + expected: FAIL + + [Setting hash with leading U+000D (wpt++:)] + expected: FAIL + + [Setting hostname with trailing U+000A (https:)] + expected: FAIL + + [Setting port with middle U+0009 (wpt++:)] + expected: FAIL + + [Setting search with leading U+000A (wpt++:)] + expected: FAIL + + [Setting hostname with trailing U+000D (https:)] + expected: FAIL + + [Setting host with trailing U+000D (wpt++:)] + expected: FAIL + + [Setting port with trailing U+000D (wpt++:)] + expected: FAIL + + [Setting hostname with trailing U+0000 (wpt++:)] + expected: FAIL + + [Setting port with middle U+000D (wpt++:)] + expected: FAIL + + [Setting hostname with leading U+000A (https:)] + expected: FAIL + + [Setting pathname with middle U+001F (wpt++:)] + expected: FAIL + + [Setting port with leading U+001F (https:)] + expected: FAIL + + [Setting host with trailing U+000A (wpt++:)] + expected: FAIL + + [Setting password with middle U+001F (wpt++:)] + expected: FAIL + + [Setting hostname with trailing U+0009 (wpt++:)] + expected: FAIL + + [Setting port with middle U+000D (https:)] + expected: FAIL + + [Setting username with trailing U+000A (wpt++:)] + expected: FAIL + + [Setting username with leading U+000A (wpt++:)] + expected: FAIL + + [Setting host with leading U+0000 (wpt++:)] + expected: FAIL + + [Setting password with trailing U+000A (wpt++:)] + expected: FAIL + + [Setting hash with leading U+0009 (wpt++:)] + expected: FAIL + + [Setting host with middle U+000D (https:)] + expected: FAIL + + [Setting host with trailing U+001F (wpt++:)] + expected: FAIL + + [Setting username with middle U+000A (wpt++:)] + expected: FAIL + + [Setting host with leading U+0009 (wpt++:)] + expected: FAIL + + [Setting port with trailing U+001F (wpt++:)] + expected: FAIL + + [Setting password with middle U+000A (wpt++:)] + expected: FAIL + + [Setting pathname with middle U+000D (wpt++:)] + expected: FAIL + + [Setting port with middle U+000A (https:)] + expected: FAIL + + [Setting hostname with leading U+001F (wpt++:)] + expected: FAIL + + [Setting port with leading U+001F (wpt++:)] + expected: FAIL diff --git a/testing/web-platform/meta/url/url-setters.any.js.ini b/testing/web-platform/meta/url/url-setters.any.js.ini new file mode 100644 index 0000000000..eb384be3cf --- /dev/null +++ b/testing/web-platform/meta/url/url-setters.any.js.ini @@ -0,0 +1,1000 @@ +[url-setters.any.html] + expected: + if (os == "android") and fission: [OK, TIMEOUT] + [URL: Setting <http://test@example.net>.protocol = 'file' Can’t switch from URL containing username/password/port to file] + expected: FAIL + + [URL: Setting <https://example.net:1234>.protocol = 'file'] + expected: FAIL + + [URL: Setting <wss://x:x@example.net:1234>.protocol = 'file'] + expected: FAIL + + [URL: Setting <file:///test>.protocol = 'https'] + expected: FAIL + + [URL: Setting <http://example.net>.protocol = 'b' Can’t switch from special scheme to non-special] + expected: FAIL + + [URL: Setting <file://hi/path>.protocol = 's'] + expected: FAIL + + [URL: Setting <https://example.net>.protocol = 's'] + expected: FAIL + + [URL: Setting <ftp://example.net>.protocol = 'test'] + expected: FAIL + + [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.] + expected: FAIL + + [URL: Setting <ssh://me@example.net>.protocol = 'http' Can’t switch from non-special scheme to special] + expected: FAIL + + [URL: Setting <ssh://me@example.net>.protocol = 'https'] + expected: FAIL + + [URL: Setting <ssh://me@example.net>.protocol = 'file'] + expected: FAIL + + [URL: Setting <ssh://example.net>.protocol = 'file'] + expected: FAIL + + [URL: Setting <nonsense:///test>.protocol = 'https'] + expected: FAIL + + [URL: Setting <http://example.net>.username = '\x00\x01\t\n\r\x1f !"#$%&'()*+,-./09:;<=>?@AZ[\\\]^_`az{|}~Éé' UTF-8 percent encoding with the userinfo encode set.] + expected: FAIL + + [URL: Setting <javascript://x/>.username = 'wario'] + expected: FAIL + + [URL: Setting <file://test/>.username = 'test'] + expected: FAIL + + [URL: Setting <http://example.net>.password = '\x00\x01\t\n\r\x1f !"#$%&'()*+,-./09:;<=>?@AZ[\\\]^_`az{|}~Éé' UTF-8 percent encoding with the userinfo encode set.] + expected: FAIL + + [URL: Setting <javascript://x/>.password = 'bowser'] + expected: FAIL + + [URL: Setting <file://test/>.password = 'test'] + expected: FAIL + + [URL: Setting <sc://x/>.host = '\x00' Non-special scheme] + expected: FAIL + + [URL: Setting <sc://x/>.host = '\t'] + expected: FAIL + + [URL: Setting <sc://x/>.host = '\n'] + expected: FAIL + + [URL: Setting <sc://x/>.host = '\r'] + expected: FAIL + + [URL: Setting <sc://x/>.host = ' '] + expected: FAIL + + [URL: Setting <sc://x/>.host = '#'] + expected: FAIL + + [URL: Setting <sc://x/>.host = '/'] + expected: FAIL + + [URL: Setting <sc://x/>.host = '?'] + expected: FAIL + + [URL: Setting <sc://x/>.host = '@'] + expected: FAIL + + [URL: Setting <sc://x/>.host = 'ß'] + expected: FAIL + + [URL: Setting <view-source+http://example.net/foo>.host = '' The empty host is OK for non-special schemes] + expected: FAIL + + [URL: Setting <a:/foo>.host = 'example.net' Path-only URLs can gain a host] + expected: 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] + expected: 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] + expected: FAIL + + [URL: Setting <file://y/>.host = 'x:123'] + expected: FAIL + + [URL: Setting <sc://test@test/>.host = ''] + expected: FAIL + + [URL: Setting <sc://test:12/>.host = ''] + expected: FAIL + + [URL: Setting <sc://x/>.hostname = '\x00' Non-special scheme] + expected: FAIL + + [URL: Setting <sc://x/>.hostname = '\t'] + expected: FAIL + + [URL: Setting <sc://x/>.hostname = '\n'] + expected: FAIL + + [URL: Setting <sc://x/>.hostname = '\r'] + expected: FAIL + + [URL: Setting <sc://x/>.hostname = ' '] + expected: FAIL + + [URL: Setting <sc://x/>.hostname = '#'] + expected: FAIL + + [URL: Setting <sc://x/>.hostname = '/'] + expected: FAIL + + [URL: Setting <sc://x/>.hostname = '?'] + expected: FAIL + + [URL: Setting <sc://x/>.hostname = '@'] + expected: FAIL + + [URL: Setting <view-source+http://example.net/foo>.hostname = '' The empty host is OK for non-special schemes] + expected: FAIL + + [URL: Setting <a:/foo>.hostname = 'example.net' Path-only URLs can gain a host] + expected: FAIL + + [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] + expected: FAIL + + [URL: Setting <file://y/>.hostname = 'x:123'] + expected: FAIL + + [URL: Setting <sc://test@test/>.hostname = ''] + expected: FAIL + + [URL: Setting <sc://test:12/>.hostname = ''] + expected: FAIL + + [URL: Setting <non-spec:/.//p>.hostname = 'h' Drop /. from path] + expected: FAIL + + [URL: Setting <non-spec:/.//p>.hostname = ''] + expected: 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] + expected: FAIL + + [URL: Setting <non-special://example.net:8080/path>.port = '65536' Port numbers are 16 bit integers, overflowing is an error] + expected: FAIL + + [URL: Setting <file://test/>.port = '12'] + expected: FAIL + + [URL: Setting <sc://x/>.port = '12'] + expected: FAIL + + [URL: Setting <javascript://x/>.port = '12'] + expected: FAIL + + [URL: Setting <unix:/run/foo.socket?timeout=10>.pathname = '/var/log/../run/bar.socket'] + expected: FAIL + + [URL: Setting <http://example.net/home?lang=fr#nav>.pathname = '\\a\\%2E\\b\\%2e.\\c' \\ is a segment delimiter for 'special' URLs] + expected: 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] + expected: FAIL + + [URL: Setting <a:/>.pathname = '\x00\x01\t\n\r\x1f !"#$%&'()*+,-./09:;<=>?@AZ[\\\]^_`az{|}~Éé' UTF-8 percent encoding with the default encode set. Tabs and newlines are removed.] + expected: FAIL + + [URL: Setting <sc://example.net>.pathname = '?' ? needs to be encoded, non-special scheme] + expected: FAIL + + [URL: Setting <sc://example.net>.pathname = '#' # needs to be encoded, non-special scheme] + expected: FAIL + + [URL: Setting <file://monkey/>.pathname = '\\\\' File URLs and (back)slashes] + expected: FAIL + + [URL: Setting <file:///unicorn>.pathname = '//\\/' File URLs and (back)slashes] + expected: FAIL + + [URL: Setting <non-spec:/>.pathname = '/.//p' Serialize /. in path] + expected: FAIL + + [URL: Setting <non-spec:/>.pathname = '/..//p'] + expected: FAIL + + [URL: Setting <non-spec:/>.pathname = '//p'] + expected: FAIL + + [URL: Setting <non-spec:/.//>.pathname = 'p' Drop /. from path] + expected: FAIL + + [URL: Setting <a:/>.search = '\x00\x01\t\n\r\x1f !"#$%&'()*+,-./09:;<=>?@AZ[\\\]^_`az{|}~Éé' UTF-8 percent encoding with the query encode set. Tabs and newlines are removed.] + expected: FAIL + + [URL: Setting <a:/>.hash = '\x00\x01\t\n\r\x1f !"#$%&'()*+,-./09:;<=>?@AZ[\\\]^_`az{|}~Éé' Simple percent-encoding; tabs and newlines are removed] + expected: FAIL + + [URL: Setting <sc://example.com/>.host = '///bad.com' Leading / is not stripped] + expected: FAIL + + [URL: Setting <sc://example.com/>.hostname = '///bad.com' Leading / is not stripped] + expected: FAIL + + [URL: Setting <foo://somehost/some/path>.pathname = '' Non-special URLs can have their paths erased] + expected: FAIL + + [URL: Setting <foo:///some/path>.pathname = '' Non-special URLs with an empty host can have their paths erased] + expected: FAIL + + [URL: Setting <foo:/some/path>.pathname = '' Path-only URLs cannot have their paths erased] + expected: FAIL + + [URL: Setting <foo:/some/path>.pathname = 'test' Path-only URLs always have an initial slash] + expected: FAIL + + [URL: Setting <data:/nospace>.pathname = 'space ' Non-special URLs with non-opaque paths percent-encode U+0020] + expected: FAIL + + [URL: Setting <sc:/nospace>.pathname = 'space '] + expected: FAIL + + +[url-setters.any.worker.html] + expected: + if (os == "android") and fission: [OK, TIMEOUT] + [URL: Setting <http://test@example.net>.protocol = 'file' Can’t switch from URL containing username/password/port to file] + expected: FAIL + + [URL: Setting <https://example.net:1234>.protocol = 'file'] + expected: FAIL + + [URL: Setting <wss://x:x@example.net:1234>.protocol = 'file'] + expected: FAIL + + [URL: Setting <file:///test>.protocol = 'https'] + expected: FAIL + + [URL: Setting <http://example.net>.protocol = 'b' Can’t switch from special scheme to non-special] + expected: FAIL + + [URL: Setting <file://hi/path>.protocol = 's'] + expected: FAIL + + [URL: Setting <https://example.net>.protocol = 's'] + expected: FAIL + + [URL: Setting <ftp://example.net>.protocol = 'test'] + expected: FAIL + + [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.] + expected: FAIL + + [URL: Setting <ssh://me@example.net>.protocol = 'http' Can’t switch from non-special scheme to special] + expected: FAIL + + [URL: Setting <ssh://me@example.net>.protocol = 'https'] + expected: FAIL + + [URL: Setting <ssh://me@example.net>.protocol = 'file'] + expected: FAIL + + [URL: Setting <ssh://example.net>.protocol = 'file'] + expected: FAIL + + [URL: Setting <nonsense:///test>.protocol = 'https'] + expected: FAIL + + [URL: Setting <http://example.net>.username = '\x00\x01\t\n\r\x1f !"#$%&'()*+,-./09:;<=>?@AZ[\\\]^_`az{|}~Éé' UTF-8 percent encoding with the userinfo encode set.] + expected: FAIL + + [URL: Setting <javascript://x/>.username = 'wario'] + expected: FAIL + + [URL: Setting <file://test/>.username = 'test'] + expected: FAIL + + [URL: Setting <http://example.net>.password = '\x00\x01\t\n\r\x1f !"#$%&'()*+,-./09:;<=>?@AZ[\\\]^_`az{|}~Éé' UTF-8 percent encoding with the userinfo encode set.] + expected: FAIL + + [URL: Setting <javascript://x/>.password = 'bowser'] + expected: FAIL + + [URL: Setting <file://test/>.password = 'test'] + expected: FAIL + + [URL: Setting <sc://x/>.host = '\x00' Non-special scheme] + expected: FAIL + + [URL: Setting <sc://x/>.host = '\t'] + expected: FAIL + + [URL: Setting <sc://x/>.host = '\n'] + expected: FAIL + + [URL: Setting <sc://x/>.host = '\r'] + expected: FAIL + + [URL: Setting <sc://x/>.host = ' '] + expected: FAIL + + [URL: Setting <sc://x/>.host = '#'] + expected: FAIL + + [URL: Setting <sc://x/>.host = '/'] + expected: FAIL + + [URL: Setting <sc://x/>.host = '?'] + expected: FAIL + + [URL: Setting <sc://x/>.host = '@'] + expected: FAIL + + [URL: Setting <sc://x/>.host = 'ß'] + expected: FAIL + + [URL: Setting <view-source+http://example.net/foo>.host = '' The empty host is OK for non-special schemes] + expected: FAIL + + [URL: Setting <a:/foo>.host = 'example.net' Path-only URLs can gain a host] + expected: 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] + expected: 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] + expected: FAIL + + [URL: Setting <file://y/>.host = 'x:123'] + expected: FAIL + + [URL: Setting <sc://test@test/>.host = ''] + expected: FAIL + + [URL: Setting <sc://test:12/>.host = ''] + expected: FAIL + + [URL: Setting <sc://x/>.hostname = '\x00' Non-special scheme] + expected: FAIL + + [URL: Setting <sc://x/>.hostname = '\t'] + expected: FAIL + + [URL: Setting <sc://x/>.hostname = '\n'] + expected: FAIL + + [URL: Setting <sc://x/>.hostname = '\r'] + expected: FAIL + + [URL: Setting <sc://x/>.hostname = ' '] + expected: FAIL + + [URL: Setting <sc://x/>.hostname = '#'] + expected: FAIL + + [URL: Setting <sc://x/>.hostname = '/'] + expected: FAIL + + [URL: Setting <sc://x/>.hostname = '?'] + expected: FAIL + + [URL: Setting <sc://x/>.hostname = '@'] + expected: FAIL + + [URL: Setting <view-source+http://example.net/foo>.hostname = '' The empty host is OK for non-special schemes] + expected: FAIL + + [URL: Setting <a:/foo>.hostname = 'example.net' Path-only URLs can gain a host] + expected: FAIL + + [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] + expected: FAIL + + [URL: Setting <file://y/>.hostname = 'x:123'] + expected: FAIL + + [URL: Setting <sc://test@test/>.hostname = ''] + expected: FAIL + + [URL: Setting <sc://test:12/>.hostname = ''] + expected: FAIL + + [URL: Setting <non-spec:/.//p>.hostname = 'h' Drop /. from path] + expected: FAIL + + [URL: Setting <non-spec:/.//p>.hostname = ''] + expected: 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] + expected: FAIL + + [URL: Setting <non-special://example.net:8080/path>.port = '65536' Port numbers are 16 bit integers, overflowing is an error] + expected: FAIL + + [URL: Setting <file://test/>.port = '12'] + expected: FAIL + + [URL: Setting <sc://x/>.port = '12'] + expected: FAIL + + [URL: Setting <javascript://x/>.port = '12'] + expected: FAIL + + [URL: Setting <unix:/run/foo.socket?timeout=10>.pathname = '/var/log/../run/bar.socket'] + expected: FAIL + + [URL: Setting <http://example.net/home?lang=fr#nav>.pathname = '\\a\\%2E\\b\\%2e.\\c' \\ is a segment delimiter for 'special' URLs] + expected: 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] + expected: FAIL + + [URL: Setting <a:/>.pathname = '\x00\x01\t\n\r\x1f !"#$%&'()*+,-./09:;<=>?@AZ[\\\]^_`az{|}~Éé' UTF-8 percent encoding with the default encode set. Tabs and newlines are removed.] + expected: FAIL + + [URL: Setting <sc://example.net>.pathname = '?' ? needs to be encoded, non-special scheme] + expected: FAIL + + [URL: Setting <sc://example.net>.pathname = '#' # needs to be encoded, non-special scheme] + expected: FAIL + + [URL: Setting <file://monkey/>.pathname = '\\\\' File URLs and (back)slashes] + expected: FAIL + + [URL: Setting <file:///unicorn>.pathname = '//\\/' File URLs and (back)slashes] + expected: FAIL + + [URL: Setting <non-spec:/>.pathname = '/.//p' Serialize /. in path] + expected: FAIL + + [URL: Setting <non-spec:/>.pathname = '/..//p'] + expected: FAIL + + [URL: Setting <non-spec:/>.pathname = '//p'] + expected: FAIL + + [URL: Setting <non-spec:/.//>.pathname = 'p' Drop /. from path] + expected: FAIL + + [URL: Setting <a:/>.search = '\x00\x01\t\n\r\x1f !"#$%&'()*+,-./09:;<=>?@AZ[\\\]^_`az{|}~Éé' UTF-8 percent encoding with the query encode set. Tabs and newlines are removed.] + expected: FAIL + + [URL: Setting <a:/>.hash = '\x00\x01\t\n\r\x1f !"#$%&'()*+,-./09:;<=>?@AZ[\\\]^_`az{|}~Éé' Simple percent-encoding; tabs and newlines are removed] + expected: FAIL + + [URL: Setting <sc://example.com/>.host = '///bad.com' Leading / is not stripped] + expected: FAIL + + [URL: Setting <sc://example.com/>.hostname = '///bad.com' Leading / is not stripped] + expected: FAIL + + [URL: Setting <foo://somehost/some/path>.pathname = '' Non-special URLs can have their paths erased] + expected: FAIL + + [URL: Setting <foo:///some/path>.pathname = '' Non-special URLs with an empty host can have their paths erased] + expected: FAIL + + [URL: Setting <foo:/some/path>.pathname = '' Path-only URLs cannot have their paths erased] + expected: FAIL + + [URL: Setting <foo:/some/path>.pathname = 'test' Path-only URLs always have an initial slash] + expected: FAIL + + [URL: Setting <data:/nospace>.pathname = 'space ' Non-special URLs with non-opaque paths percent-encode U+0020] + expected: FAIL + + [URL: Setting <sc:/nospace>.pathname = 'space '] + expected: FAIL + + +[url-setters.any.html?include=javascript] + [URL: Setting <javascript://x/>.username = 'wario'] + expected: FAIL + + [URL: Setting <javascript://x/>.password = 'bowser'] + expected: FAIL + + [URL: Setting <javascript://x/>.port = '12'] + expected: FAIL + + +[url-setters.any.worker.html?exclude=(file|javascript|mailto)] + [URL: Setting <http://test@example.net>.protocol = 'file' Can’t switch from URL containing username/password/port to file] + expected: FAIL + + [URL: Setting <https://example.net:1234>.protocol = 'file'] + expected: FAIL + + [URL: Setting <wss://x:x@example.net:1234>.protocol = 'file'] + expected: FAIL + + [URL: Setting <http://example.net>.protocol = 'b' Can’t switch from special scheme to non-special] + expected: FAIL + + [URL: Setting <https://example.net>.protocol = 's'] + expected: FAIL + + [URL: Setting <ftp://example.net>.protocol = 'test'] + expected: FAIL + + [URL: Setting <ssh://me@example.net>.protocol = 'http' Can’t switch from non-special scheme to special] + expected: FAIL + + [URL: Setting <ssh://me@example.net>.protocol = 'https'] + expected: FAIL + + [URL: Setting <ssh://me@example.net>.protocol = 'file'] + expected: FAIL + + [URL: Setting <ssh://example.net>.protocol = 'file'] + expected: FAIL + + [URL: Setting <nonsense:///test>.protocol = 'https'] + expected: FAIL + + [URL: Setting <http://example.net>.username = '\x00\x01\t\n\r\x1f !"#$%&'()*+,-./09:;<=>?@AZ[\\\]^_`az{|}~Éé' UTF-8 percent encoding with the userinfo encode set.] + expected: FAIL + + [URL: Setting <http://example.net>.password = '\x00\x01\t\n\r\x1f !"#$%&'()*+,-./09:;<=>?@AZ[\\\]^_`az{|}~Éé' UTF-8 percent encoding with the userinfo encode set.] + expected: FAIL + + [URL: Setting <sc://x/>.host = '\x00' Non-special scheme] + expected: FAIL + + [URL: Setting <sc://x/>.host = '\t'] + expected: FAIL + + [URL: Setting <sc://x/>.host = '\n'] + expected: FAIL + + [URL: Setting <sc://x/>.host = '\r'] + expected: FAIL + + [URL: Setting <sc://x/>.host = ' '] + expected: FAIL + + [URL: Setting <sc://x/>.host = '#'] + expected: FAIL + + [URL: Setting <sc://x/>.host = '/'] + expected: FAIL + + [URL: Setting <sc://x/>.host = '?'] + expected: FAIL + + [URL: Setting <sc://x/>.host = '@'] + expected: FAIL + + [URL: Setting <sc://x/>.host = 'ß'] + expected: FAIL + + [URL: Setting <view-source+http://example.net/foo>.host = '' The empty host is OK for non-special schemes] + expected: FAIL + + [URL: Setting <a:/foo>.host = 'example.net' Path-only URLs can gain a host] + expected: 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] + expected: 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] + expected: FAIL + + [URL: Setting <sc://test@test/>.host = ''] + expected: FAIL + + [URL: Setting <sc://test:12/>.host = ''] + expected: FAIL + + [URL: Setting <sc://example.com/>.host = '///bad.com' Leading / is not stripped] + expected: FAIL + + [URL: Setting <sc://x/>.hostname = '\x00' Non-special scheme] + expected: FAIL + + [URL: Setting <sc://x/>.hostname = '\t'] + expected: FAIL + + [URL: Setting <sc://x/>.hostname = '\n'] + expected: FAIL + + [URL: Setting <sc://x/>.hostname = '\r'] + expected: FAIL + + [URL: Setting <sc://x/>.hostname = ' '] + expected: FAIL + + [URL: Setting <sc://x/>.hostname = '#'] + expected: FAIL + + [URL: Setting <sc://x/>.hostname = '/'] + expected: FAIL + + [URL: Setting <sc://x/>.hostname = '?'] + expected: FAIL + + [URL: Setting <sc://x/>.hostname = '@'] + expected: FAIL + + [URL: Setting <view-source+http://example.net/foo>.hostname = '' The empty host is OK for non-special schemes] + expected: FAIL + + [URL: Setting <a:/foo>.hostname = 'example.net' Path-only URLs can gain a host] + expected: FAIL + + [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] + expected: FAIL + + [URL: Setting <sc://test@test/>.hostname = ''] + expected: FAIL + + [URL: Setting <sc://test:12/>.hostname = ''] + expected: FAIL + + [URL: Setting <non-spec:/.//p>.hostname = 'h' Drop /. from path] + expected: FAIL + + [URL: Setting <non-spec:/.//p>.hostname = ''] + expected: FAIL + + [URL: Setting <sc://example.com/>.hostname = '///bad.com' Leading / is not stripped] + expected: 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] + expected: FAIL + + [URL: Setting <non-special://example.net:8080/path>.port = '65536' Port numbers are 16 bit integers, overflowing is an error] + expected: FAIL + + [URL: Setting <sc://x/>.port = '12'] + expected: FAIL + + [URL: Setting <foo://somehost/some/path>.pathname = '' Non-special URLs can have their paths erased] + expected: FAIL + + [URL: Setting <foo:///some/path>.pathname = '' Non-special URLs with an empty host can have their paths erased] + expected: FAIL + + [URL: Setting <foo:/some/path>.pathname = '' Path-only URLs cannot have their paths erased] + expected: FAIL + + [URL: Setting <foo:/some/path>.pathname = 'test' Path-only URLs always have an initial slash] + expected: FAIL + + [URL: Setting <unix:/run/foo.socket?timeout=10>.pathname = '/var/log/../run/bar.socket'] + expected: FAIL + + [URL: Setting <http://example.net/home?lang=fr#nav>.pathname = '\\a\\%2E\\b\\%2e.\\c' \\ is a segment delimiter for 'special' URLs] + expected: 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] + expected: FAIL + + [URL: Setting <a:/>.pathname = '\x00\x01\t\n\r\x1f !"#$%&'()*+,-./09:;<=>?@AZ[\\\]^_`az{|}~Éé' UTF-8 percent encoding with the default encode set. Tabs and newlines are removed.] + expected: FAIL + + [URL: Setting <sc://example.net>.pathname = '?' ? needs to be encoded, non-special scheme] + expected: FAIL + + [URL: Setting <sc://example.net>.pathname = '#' # needs to be encoded, non-special scheme] + expected: FAIL + + [URL: Setting <non-spec:/>.pathname = '/.//p' Serialize /. in path] + expected: FAIL + + [URL: Setting <non-spec:/>.pathname = '/..//p'] + expected: FAIL + + [URL: Setting <non-spec:/>.pathname = '//p'] + expected: FAIL + + [URL: Setting <non-spec:/.//>.pathname = 'p' Drop /. from path] + expected: FAIL + + [URL: Setting <a:/>.search = '\x00\x01\t\n\r\x1f !"#$%&'()*+,-./09:;<=>?@AZ[\\\]^_`az{|}~Éé' UTF-8 percent encoding with the query encode set. Tabs and newlines are removed.] + expected: FAIL + + [URL: Setting <a:/>.hash = '\x00\x01\t\n\r\x1f !"#$%&'()*+,-./09:;<=>?@AZ[\\\]^_`az{|}~Éé' Simple percent-encoding; tabs and newlines are removed] + expected: FAIL + + [URL: Setting <sc:/nospace>.pathname = 'space '] + expected: FAIL + + [URL: Setting <data:/nospace>.pathname = 'space ' Non-special URLs with non-opaque paths percent-encode U+0020] + expected: FAIL + + [URL: Setting <wpt++://domain.com:443>.port = '\t8080' Leading u0009 on non-special scheme] + expected: FAIL + + +[url-setters.any.html?include=file] + [URL: Setting <file:///test>.protocol = 'https'] + expected: FAIL + + [URL: Setting <file://hi/path>.protocol = 's'] + expected: FAIL + + [URL: Setting <file://test/>.username = 'test'] + expected: FAIL + + [URL: Setting <file://test/>.password = 'test'] + expected: FAIL + + [URL: Setting <file://y/>.host = 'x:123'] + expected: FAIL + + [URL: Setting <file://y/>.hostname = 'x:123'] + expected: FAIL + + [URL: Setting <file://test/>.port = '12'] + expected: FAIL + + [URL: Setting <file://monkey/>.pathname = '\\\\' File URLs and (back)slashes] + expected: FAIL + + [URL: Setting <file:///unicorn>.pathname = '//\\/' File URLs and (back)slashes] + expected: FAIL + + +[url-setters.any.worker.html?include=javascript] + [URL: Setting <javascript://x/>.username = 'wario'] + expected: FAIL + + [URL: Setting <javascript://x/>.password = 'bowser'] + expected: FAIL + + [URL: Setting <javascript://x/>.port = '12'] + expected: FAIL + + +[url-setters.any.html?exclude=(file|javascript|mailto)] + [URL: Setting <http://test@example.net>.protocol = 'file' Can’t switch from URL containing username/password/port to file] + expected: FAIL + + [URL: Setting <https://example.net:1234>.protocol = 'file'] + expected: FAIL + + [URL: Setting <wss://x:x@example.net:1234>.protocol = 'file'] + expected: FAIL + + [URL: Setting <http://example.net>.protocol = 'b' Can’t switch from special scheme to non-special] + expected: FAIL + + [URL: Setting <https://example.net>.protocol = 's'] + expected: FAIL + + [URL: Setting <ftp://example.net>.protocol = 'test'] + expected: FAIL + + [URL: Setting <ssh://me@example.net>.protocol = 'http' Can’t switch from non-special scheme to special] + expected: FAIL + + [URL: Setting <ssh://me@example.net>.protocol = 'https'] + expected: FAIL + + [URL: Setting <ssh://me@example.net>.protocol = 'file'] + expected: FAIL + + [URL: Setting <ssh://example.net>.protocol = 'file'] + expected: FAIL + + [URL: Setting <nonsense:///test>.protocol = 'https'] + expected: FAIL + + [URL: Setting <http://example.net>.username = '\x00\x01\t\n\r\x1f !"#$%&'()*+,-./09:;<=>?@AZ[\\\]^_`az{|}~Éé' UTF-8 percent encoding with the userinfo encode set.] + expected: FAIL + + [URL: Setting <http://example.net>.password = '\x00\x01\t\n\r\x1f !"#$%&'()*+,-./09:;<=>?@AZ[\\\]^_`az{|}~Éé' UTF-8 percent encoding with the userinfo encode set.] + expected: FAIL + + [URL: Setting <sc://x/>.host = '\x00' Non-special scheme] + expected: FAIL + + [URL: Setting <sc://x/>.host = '\t'] + expected: FAIL + + [URL: Setting <sc://x/>.host = '\n'] + expected: FAIL + + [URL: Setting <sc://x/>.host = '\r'] + expected: FAIL + + [URL: Setting <sc://x/>.host = ' '] + expected: FAIL + + [URL: Setting <sc://x/>.host = '#'] + expected: FAIL + + [URL: Setting <sc://x/>.host = '/'] + expected: FAIL + + [URL: Setting <sc://x/>.host = '?'] + expected: FAIL + + [URL: Setting <sc://x/>.host = '@'] + expected: FAIL + + [URL: Setting <sc://x/>.host = 'ß'] + expected: FAIL + + [URL: Setting <view-source+http://example.net/foo>.host = '' The empty host is OK for non-special schemes] + expected: FAIL + + [URL: Setting <a:/foo>.host = 'example.net' Path-only URLs can gain a host] + expected: 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] + expected: 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] + expected: FAIL + + [URL: Setting <sc://test@test/>.host = ''] + expected: FAIL + + [URL: Setting <sc://test:12/>.host = ''] + expected: FAIL + + [URL: Setting <sc://example.com/>.host = '///bad.com' Leading / is not stripped] + expected: FAIL + + [URL: Setting <sc://x/>.hostname = '\x00' Non-special scheme] + expected: FAIL + + [URL: Setting <sc://x/>.hostname = '\t'] + expected: FAIL + + [URL: Setting <sc://x/>.hostname = '\n'] + expected: FAIL + + [URL: Setting <sc://x/>.hostname = '\r'] + expected: FAIL + + [URL: Setting <sc://x/>.hostname = ' '] + expected: FAIL + + [URL: Setting <sc://x/>.hostname = '#'] + expected: FAIL + + [URL: Setting <sc://x/>.hostname = '/'] + expected: FAIL + + [URL: Setting <sc://x/>.hostname = '?'] + expected: FAIL + + [URL: Setting <sc://x/>.hostname = '@'] + expected: FAIL + + [URL: Setting <view-source+http://example.net/foo>.hostname = '' The empty host is OK for non-special schemes] + expected: FAIL + + [URL: Setting <a:/foo>.hostname = 'example.net' Path-only URLs can gain a host] + expected: FAIL + + [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] + expected: FAIL + + [URL: Setting <sc://test@test/>.hostname = ''] + expected: FAIL + + [URL: Setting <sc://test:12/>.hostname = ''] + expected: FAIL + + [URL: Setting <non-spec:/.//p>.hostname = 'h' Drop /. from path] + expected: FAIL + + [URL: Setting <non-spec:/.//p>.hostname = ''] + expected: FAIL + + [URL: Setting <sc://example.com/>.hostname = '///bad.com' Leading / is not stripped] + expected: 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] + expected: FAIL + + [URL: Setting <non-special://example.net:8080/path>.port = '65536' Port numbers are 16 bit integers, overflowing is an error] + expected: FAIL + + [URL: Setting <sc://x/>.port = '12'] + expected: FAIL + + [URL: Setting <foo://somehost/some/path>.pathname = '' Non-special URLs can have their paths erased] + expected: FAIL + + [URL: Setting <foo:///some/path>.pathname = '' Non-special URLs with an empty host can have their paths erased] + expected: FAIL + + [URL: Setting <foo:/some/path>.pathname = '' Path-only URLs cannot have their paths erased] + expected: FAIL + + [URL: Setting <foo:/some/path>.pathname = 'test' Path-only URLs always have an initial slash] + expected: FAIL + + [URL: Setting <unix:/run/foo.socket?timeout=10>.pathname = '/var/log/../run/bar.socket'] + expected: FAIL + + [URL: Setting <http://example.net/home?lang=fr#nav>.pathname = '\\a\\%2E\\b\\%2e.\\c' \\ is a segment delimiter for 'special' URLs] + expected: 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] + expected: FAIL + + [URL: Setting <a:/>.pathname = '\x00\x01\t\n\r\x1f !"#$%&'()*+,-./09:;<=>?@AZ[\\\]^_`az{|}~Éé' UTF-8 percent encoding with the default encode set. Tabs and newlines are removed.] + expected: FAIL + + [URL: Setting <sc://example.net>.pathname = '?' ? needs to be encoded, non-special scheme] + expected: FAIL + + [URL: Setting <sc://example.net>.pathname = '#' # needs to be encoded, non-special scheme] + expected: FAIL + + [URL: Setting <non-spec:/>.pathname = '/.//p' Serialize /. in path] + expected: FAIL + + [URL: Setting <non-spec:/>.pathname = '/..//p'] + expected: FAIL + + [URL: Setting <non-spec:/>.pathname = '//p'] + expected: FAIL + + [URL: Setting <non-spec:/.//>.pathname = 'p' Drop /. from path] + expected: FAIL + + [URL: Setting <a:/>.search = '\x00\x01\t\n\r\x1f !"#$%&'()*+,-./09:;<=>?@AZ[\\\]^_`az{|}~Éé' UTF-8 percent encoding with the query encode set. Tabs and newlines are removed.] + expected: FAIL + + [URL: Setting <a:/>.hash = '\x00\x01\t\n\r\x1f !"#$%&'()*+,-./09:;<=>?@AZ[\\\]^_`az{|}~Éé' Simple percent-encoding; tabs and newlines are removed] + expected: FAIL + + [URL: Setting <sc:/nospace>.pathname = 'space '] + expected: FAIL + + [URL: Setting <data:/nospace>.pathname = 'space ' Non-special URLs with non-opaque paths percent-encode U+0020] + expected: FAIL + + [URL: Setting <wpt++://domain.com:443>.port = '\t8080' Leading u0009 on non-special scheme] + expected: FAIL + + +[url-setters.any.worker.html?include=file] + [URL: Setting <file:///test>.protocol = 'https'] + expected: FAIL + + [URL: Setting <file://hi/path>.protocol = 's'] + expected: FAIL + + [URL: Setting <file://test/>.username = 'test'] + expected: FAIL + + [URL: Setting <file://test/>.password = 'test'] + expected: FAIL + + [URL: Setting <file://y/>.host = 'x:123'] + expected: FAIL + + [URL: Setting <file://y/>.hostname = 'x:123'] + expected: FAIL + + [URL: Setting <file://test/>.port = '12'] + expected: FAIL + + [URL: Setting <file://monkey/>.pathname = '\\\\' File URLs and (back)slashes] + expected: FAIL + + [URL: Setting <file:///unicorn>.pathname = '//\\/' File URLs and (back)slashes] + expected: FAIL + + +[url-setters.any.html?include=mailto] + [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.] + expected: FAIL + + +[url-setters.any.worker.html?include=mailto] + [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.] + expected: FAIL diff --git a/testing/web-platform/meta/url/url-tojson.any.js.ini b/testing/web-platform/meta/url/url-tojson.any.js.ini new file mode 100644 index 0000000000..49b21c3abd --- /dev/null +++ b/testing/web-platform/meta/url/url-tojson.any.js.ini @@ -0,0 +1,7 @@ +[url-tojson.any.worker.html] + expected: + if (os == "android") and fission: [OK, TIMEOUT] + +[url-tojson.any.html] + expected: + if (os == "android") and fission: [OK, TIMEOUT] diff --git a/testing/web-platform/meta/url/urlencoded-parser.any.js.ini b/testing/web-platform/meta/url/urlencoded-parser.any.js.ini new file mode 100644 index 0000000000..f9c7288181 --- /dev/null +++ b/testing/web-platform/meta/url/urlencoded-parser.any.js.ini @@ -0,0 +1,7 @@ +[urlencoded-parser.any.worker.html] + expected: + if (os == "android") and fission: [TIMEOUT, OK] + +[urlencoded-parser.any.html] + expected: + if (os == "android") and fission: [OK, TIMEOUT] diff --git a/testing/web-platform/meta/url/urlsearchparams-append.any.js.ini b/testing/web-platform/meta/url/urlsearchparams-append.any.js.ini new file mode 100644 index 0000000000..e86d059193 --- /dev/null +++ b/testing/web-platform/meta/url/urlsearchparams-append.any.js.ini @@ -0,0 +1,7 @@ +[urlsearchparams-append.any.html] + expected: + if (os == "android") and fission: [OK, TIMEOUT] + +[urlsearchparams-append.any.worker.html] + expected: + if (os == "android") and fission: [OK, TIMEOUT] diff --git a/testing/web-platform/meta/url/urlsearchparams-constructor.any.js.ini b/testing/web-platform/meta/url/urlsearchparams-constructor.any.js.ini new file mode 100644 index 0000000000..4e771bca95 --- /dev/null +++ b/testing/web-platform/meta/url/urlsearchparams-constructor.any.js.ini @@ -0,0 +1,7 @@ +[urlsearchparams-constructor.any.worker.html] + expected: + if (os == "android") and fission: [OK, TIMEOUT] + +[urlsearchparams-constructor.any.html] + expected: + if (os == "android") and fission: [OK, TIMEOUT] diff --git a/testing/web-platform/meta/url/urlsearchparams-foreach.any.js.ini b/testing/web-platform/meta/url/urlsearchparams-foreach.any.js.ini new file mode 100644 index 0000000000..24b1e2db33 --- /dev/null +++ b/testing/web-platform/meta/url/urlsearchparams-foreach.any.js.ini @@ -0,0 +1,7 @@ +[urlsearchparams-foreach.any.worker.html] + expected: + if (os == "android") and fission: [OK, TIMEOUT] + +[urlsearchparams-foreach.any.html] + expected: + if (os == "android") and fission: [OK, TIMEOUT] diff --git a/testing/web-platform/meta/url/urlsearchparams-get.any.js.ini b/testing/web-platform/meta/url/urlsearchparams-get.any.js.ini new file mode 100644 index 0000000000..1c7b486c77 --- /dev/null +++ b/testing/web-platform/meta/url/urlsearchparams-get.any.js.ini @@ -0,0 +1,7 @@ +[urlsearchparams-get.any.worker.html] + expected: + if (os == "android") and fission: [OK, TIMEOUT] + +[urlsearchparams-get.any.html] + expected: + if (os == "android") and fission: [OK, TIMEOUT] diff --git a/testing/web-platform/meta/url/urlsearchparams-getall.any.js.ini b/testing/web-platform/meta/url/urlsearchparams-getall.any.js.ini new file mode 100644 index 0000000000..7e0f092935 --- /dev/null +++ b/testing/web-platform/meta/url/urlsearchparams-getall.any.js.ini @@ -0,0 +1,7 @@ +[urlsearchparams-getall.any.html] + expected: + if (os == "android") and fission: [OK, TIMEOUT] + +[urlsearchparams-getall.any.worker.html] + expected: + if (os == "android") and fission: [OK, TIMEOUT] diff --git a/testing/web-platform/meta/url/urlsearchparams-set.any.js.ini b/testing/web-platform/meta/url/urlsearchparams-set.any.js.ini new file mode 100644 index 0000000000..baadea85cc --- /dev/null +++ b/testing/web-platform/meta/url/urlsearchparams-set.any.js.ini @@ -0,0 +1,7 @@ +[urlsearchparams-set.any.worker.html] + expected: + if (os == "android") and fission: [OK, TIMEOUT] + +[urlsearchparams-set.any.html] + expected: + if (os == "android") and fission: [OK, TIMEOUT] diff --git a/testing/web-platform/meta/url/urlsearchparams-sort.any.js.ini b/testing/web-platform/meta/url/urlsearchparams-sort.any.js.ini new file mode 100644 index 0000000000..f1c2464868 --- /dev/null +++ b/testing/web-platform/meta/url/urlsearchparams-sort.any.js.ini @@ -0,0 +1,7 @@ +[urlsearchparams-sort.any.html] + expected: + if (os == "android") and fission: [TIMEOUT, OK] + +[urlsearchparams-sort.any.worker.html] + expected: + if (os == "android") and fission: [OK, TIMEOUT] diff --git a/testing/web-platform/meta/url/urlsearchparams-stringifier.any.js.ini b/testing/web-platform/meta/url/urlsearchparams-stringifier.any.js.ini new file mode 100644 index 0000000000..eb46396a1e --- /dev/null +++ b/testing/web-platform/meta/url/urlsearchparams-stringifier.any.js.ini @@ -0,0 +1,7 @@ +[urlsearchparams-stringifier.any.worker.html] + expected: + if (os == "android") and fission: [OK, TIMEOUT] + +[urlsearchparams-stringifier.any.html] + expected: + if (os == "android") and fission: [OK, TIMEOUT] diff --git a/testing/web-platform/meta/urlpattern/urlpattern-compare.any.js.ini b/testing/web-platform/meta/urlpattern/urlpattern-compare.any.js.ini new file mode 100644 index 0000000000..4e5f5bc6f4 --- /dev/null +++ b/testing/web-platform/meta/urlpattern/urlpattern-compare.any.js.ini @@ -0,0 +1,308 @@ +[urlpattern-compare.any.sharedworker.html] + [Component: pathname Left: {"pathname":"/foo/a"} Right: {"pathname":"/foo/b"}] + expected: FAIL + + [Component: pathname Left: {"pathname":"/foo/b"} Right: {"pathname":"/foo/bar"}] + expected: FAIL + + [Component: pathname Left: {"pathname":"/foo/bar"} Right: {"pathname":"/foo/:bar"}] + expected: FAIL + + [Component: pathname Left: {"pathname":"/foo/"} Right: {"pathname":"/foo/:bar"}] + expected: FAIL + + [Component: pathname Left: {"pathname":"/foo/:bar"} Right: {"pathname":"/foo/*"}] + expected: FAIL + + [Component: pathname Left: {"pathname":"/foo/{bar}"} Right: {"pathname":"/foo/(bar)"}] + expected: FAIL + + [Component: pathname Left: {"pathname":"/foo/{bar}"} Right: {"pathname":"/foo/{bar}+"}] + expected: FAIL + + [Component: pathname Left: {"pathname":"/foo/{bar}+"} Right: {"pathname":"/foo/{bar}?"}] + expected: FAIL + + [Component: pathname Left: {"pathname":"/foo/{bar}?"} Right: {"pathname":"/foo/{bar}*"}] + expected: FAIL + + [Component: pathname Left: {"pathname":"/foo/(123)"} Right: {"pathname":"/foo/(12)"}] + expected: FAIL + + [Component: pathname Left: {"pathname":"/foo/:b"} Right: {"pathname":"/foo/:a"}] + expected: FAIL + + [Component: pathname Left: {"pathname":"*/foo"} Right: {"pathname":"*"}] + expected: FAIL + + [Component: port Left: {"port":"9"} Right: {"port":"100"}] + expected: FAIL + + [Component: pathname Left: {"pathname":"foo/:bar?/baz"} Right: {"pathname":"foo/{:bar}?/baz"}] + expected: FAIL + + [Component: pathname Left: {"pathname":"foo/:bar?/baz"} Right: {"pathname":"foo{/:bar}?/baz"}] + expected: FAIL + + [Component: pathname Left: {"pathname":"foo/:bar?/baz"} Right: {"pathname":"fo{o/:bar}?/baz"}] + expected: FAIL + + [Component: pathname Left: {"pathname":"foo/:bar?/baz"} Right: {"pathname":"foo{/:bar/}?baz"}] + expected: FAIL + + [Component: pathname Left: "https://a.example.com/b?a" Right: "https://b.example.com/a?b"] + expected: FAIL + + [Component: pathname Left: {"pathname":"/foo/{bar}/baz"} Right: {"pathname":"/foo/bar/baz"}] + expected: FAIL + + [Component: username Left: {"username":"a"} Right: {"username":"b"}] + expected: FAIL + + [Component: password Left: {"password":"a"} Right: {"password":"b"}] + expected: FAIL + + [Component: protocol Left: {"protocol":"a"} Right: {"protocol":"b"}] + expected: FAIL + + [Component: search Left: {"search":"a"} Right: {"search":"b"}] + expected: FAIL + + [Component: hash Left: {"hash":"a"} Right: {"hash":"b"}] + expected: FAIL + + [Component: hostname Left: {"hostname":"a"} Right: {"hostname":"b"}] + expected: FAIL + + +[urlpattern-compare.any.worker.html] + [Component: pathname Left: {"pathname":"/foo/a"} Right: {"pathname":"/foo/b"}] + expected: FAIL + + [Component: pathname Left: {"pathname":"/foo/b"} Right: {"pathname":"/foo/bar"}] + expected: FAIL + + [Component: pathname Left: {"pathname":"/foo/bar"} Right: {"pathname":"/foo/:bar"}] + expected: FAIL + + [Component: pathname Left: {"pathname":"/foo/"} Right: {"pathname":"/foo/:bar"}] + expected: FAIL + + [Component: pathname Left: {"pathname":"/foo/:bar"} Right: {"pathname":"/foo/*"}] + expected: FAIL + + [Component: pathname Left: {"pathname":"/foo/{bar}"} Right: {"pathname":"/foo/(bar)"}] + expected: FAIL + + [Component: pathname Left: {"pathname":"/foo/{bar}"} Right: {"pathname":"/foo/{bar}+"}] + expected: FAIL + + [Component: pathname Left: {"pathname":"/foo/{bar}+"} Right: {"pathname":"/foo/{bar}?"}] + expected: FAIL + + [Component: pathname Left: {"pathname":"/foo/{bar}?"} Right: {"pathname":"/foo/{bar}*"}] + expected: FAIL + + [Component: pathname Left: {"pathname":"/foo/(123)"} Right: {"pathname":"/foo/(12)"}] + expected: FAIL + + [Component: pathname Left: {"pathname":"/foo/:b"} Right: {"pathname":"/foo/:a"}] + expected: FAIL + + [Component: pathname Left: {"pathname":"*/foo"} Right: {"pathname":"*"}] + expected: FAIL + + [Component: port Left: {"port":"9"} Right: {"port":"100"}] + expected: FAIL + + [Component: pathname Left: {"pathname":"foo/:bar?/baz"} Right: {"pathname":"foo/{:bar}?/baz"}] + expected: FAIL + + [Component: pathname Left: {"pathname":"foo/:bar?/baz"} Right: {"pathname":"foo{/:bar}?/baz"}] + expected: FAIL + + [Component: pathname Left: {"pathname":"foo/:bar?/baz"} Right: {"pathname":"fo{o/:bar}?/baz"}] + expected: FAIL + + [Component: pathname Left: {"pathname":"foo/:bar?/baz"} Right: {"pathname":"foo{/:bar/}?baz"}] + expected: FAIL + + [Component: pathname Left: "https://a.example.com/b?a" Right: "https://b.example.com/a?b"] + expected: FAIL + + [Component: pathname Left: {"pathname":"/foo/{bar}/baz"} Right: {"pathname":"/foo/bar/baz"}] + expected: FAIL + + [Component: username Left: {"username":"a"} Right: {"username":"b"}] + expected: FAIL + + [Component: password Left: {"password":"a"} Right: {"password":"b"}] + expected: FAIL + + [Component: protocol Left: {"protocol":"a"} Right: {"protocol":"b"}] + expected: FAIL + + [Component: search Left: {"search":"a"} Right: {"search":"b"}] + expected: FAIL + + [Component: hash Left: {"hash":"a"} Right: {"hash":"b"}] + expected: FAIL + + [Component: hostname Left: {"hostname":"a"} Right: {"hostname":"b"}] + expected: FAIL + + +[urlpattern-compare.any.serviceworker.html] + expected: + if (processor == "x86") and (os == "win") and not debug: [OK, TIMEOUT] + [Component: pathname Left: {"pathname":"/foo/a"} Right: {"pathname":"/foo/b"}] + expected: FAIL + + [Component: pathname Left: {"pathname":"/foo/b"} Right: {"pathname":"/foo/bar"}] + expected: FAIL + + [Component: pathname Left: {"pathname":"/foo/bar"} Right: {"pathname":"/foo/:bar"}] + expected: FAIL + + [Component: pathname Left: {"pathname":"/foo/"} Right: {"pathname":"/foo/:bar"}] + expected: FAIL + + [Component: pathname Left: {"pathname":"/foo/:bar"} Right: {"pathname":"/foo/*"}] + expected: FAIL + + [Component: pathname Left: {"pathname":"/foo/{bar}"} Right: {"pathname":"/foo/(bar)"}] + expected: FAIL + + [Component: pathname Left: {"pathname":"/foo/{bar}"} Right: {"pathname":"/foo/{bar}+"}] + expected: FAIL + + [Component: pathname Left: {"pathname":"/foo/{bar}+"} Right: {"pathname":"/foo/{bar}?"}] + expected: FAIL + + [Component: pathname Left: {"pathname":"/foo/{bar}?"} Right: {"pathname":"/foo/{bar}*"}] + expected: FAIL + + [Component: pathname Left: {"pathname":"/foo/(123)"} Right: {"pathname":"/foo/(12)"}] + expected: FAIL + + [Component: pathname Left: {"pathname":"/foo/:b"} Right: {"pathname":"/foo/:a"}] + expected: FAIL + + [Component: pathname Left: {"pathname":"*/foo"} Right: {"pathname":"*"}] + expected: FAIL + + [Component: port Left: {"port":"9"} Right: {"port":"100"}] + expected: FAIL + + [Component: pathname Left: {"pathname":"foo/:bar?/baz"} Right: {"pathname":"foo/{:bar}?/baz"}] + expected: FAIL + + [Component: pathname Left: {"pathname":"foo/:bar?/baz"} Right: {"pathname":"foo{/:bar}?/baz"}] + expected: FAIL + + [Component: pathname Left: {"pathname":"foo/:bar?/baz"} Right: {"pathname":"fo{o/:bar}?/baz"}] + expected: FAIL + + [Component: pathname Left: {"pathname":"foo/:bar?/baz"} Right: {"pathname":"foo{/:bar/}?baz"}] + expected: FAIL + + [Component: pathname Left: "https://a.example.com/b?a" Right: "https://b.example.com/a?b"] + expected: FAIL + + [Component: pathname Left: {"pathname":"/foo/{bar}/baz"} Right: {"pathname":"/foo/bar/baz"}] + expected: FAIL + + [Component: username Left: {"username":"a"} Right: {"username":"b"}] + expected: FAIL + + [Component: password Left: {"password":"a"} Right: {"password":"b"}] + expected: FAIL + + [Component: protocol Left: {"protocol":"a"} Right: {"protocol":"b"}] + expected: FAIL + + [Component: search Left: {"search":"a"} Right: {"search":"b"}] + expected: FAIL + + [Component: hash Left: {"hash":"a"} Right: {"hash":"b"}] + expected: FAIL + + [Component: hostname Left: {"hostname":"a"} Right: {"hostname":"b"}] + expected: FAIL + + +[urlpattern-compare.any.html] + [Component: pathname Left: {"pathname":"/foo/a"} Right: {"pathname":"/foo/b"}] + expected: FAIL + + [Component: pathname Left: {"pathname":"/foo/b"} Right: {"pathname":"/foo/bar"}] + expected: FAIL + + [Component: pathname Left: {"pathname":"/foo/bar"} Right: {"pathname":"/foo/:bar"}] + expected: FAIL + + [Component: pathname Left: {"pathname":"/foo/"} Right: {"pathname":"/foo/:bar"}] + expected: FAIL + + [Component: pathname Left: {"pathname":"/foo/:bar"} Right: {"pathname":"/foo/*"}] + expected: FAIL + + [Component: pathname Left: {"pathname":"/foo/{bar}"} Right: {"pathname":"/foo/(bar)"}] + expected: FAIL + + [Component: pathname Left: {"pathname":"/foo/{bar}"} Right: {"pathname":"/foo/{bar}+"}] + expected: FAIL + + [Component: pathname Left: {"pathname":"/foo/{bar}+"} Right: {"pathname":"/foo/{bar}?"}] + expected: FAIL + + [Component: pathname Left: {"pathname":"/foo/{bar}?"} Right: {"pathname":"/foo/{bar}*"}] + expected: FAIL + + [Component: pathname Left: {"pathname":"/foo/(123)"} Right: {"pathname":"/foo/(12)"}] + expected: FAIL + + [Component: pathname Left: {"pathname":"/foo/:b"} Right: {"pathname":"/foo/:a"}] + expected: FAIL + + [Component: pathname Left: {"pathname":"*/foo"} Right: {"pathname":"*"}] + expected: FAIL + + [Component: port Left: {"port":"9"} Right: {"port":"100"}] + expected: FAIL + + [Component: pathname Left: {"pathname":"foo/:bar?/baz"} Right: {"pathname":"foo/{:bar}?/baz"}] + expected: FAIL + + [Component: pathname Left: {"pathname":"foo/:bar?/baz"} Right: {"pathname":"foo{/:bar}?/baz"}] + expected: FAIL + + [Component: pathname Left: {"pathname":"foo/:bar?/baz"} Right: {"pathname":"fo{o/:bar}?/baz"}] + expected: FAIL + + [Component: pathname Left: {"pathname":"foo/:bar?/baz"} Right: {"pathname":"foo{/:bar/}?baz"}] + expected: FAIL + + [Component: pathname Left: "https://a.example.com/b?a" Right: "https://b.example.com/a?b"] + expected: FAIL + + [Component: pathname Left: {"pathname":"/foo/{bar}/baz"} Right: {"pathname":"/foo/bar/baz"}] + expected: FAIL + + [Component: username Left: {"username":"a"} Right: {"username":"b"}] + expected: FAIL + + [Component: password Left: {"password":"a"} Right: {"password":"b"}] + expected: FAIL + + [Component: protocol Left: {"protocol":"a"} Right: {"protocol":"b"}] + expected: FAIL + + [Component: search Left: {"search":"a"} Right: {"search":"b"}] + expected: FAIL + + [Component: hash Left: {"hash":"a"} Right: {"hash":"b"}] + expected: FAIL + + [Component: hostname Left: {"hostname":"a"} Right: {"hostname":"b"}] + expected: FAIL diff --git a/testing/web-platform/meta/urlpattern/urlpattern-compare.https.any.js.ini b/testing/web-platform/meta/urlpattern/urlpattern-compare.https.any.js.ini new file mode 100644 index 0000000000..0df254d275 --- /dev/null +++ b/testing/web-platform/meta/urlpattern/urlpattern-compare.https.any.js.ini @@ -0,0 +1,308 @@ +[urlpattern-compare.https.any.serviceworker.html] + expected: + if (processor == "x86") and (os == "win") and not debug: [OK, TIMEOUT] + [Component: pathname Left: {"pathname":"/foo/a"} Right: {"pathname":"/foo/b"}] + expected: FAIL + + [Component: pathname Left: {"pathname":"/foo/b"} Right: {"pathname":"/foo/bar"}] + expected: FAIL + + [Component: pathname Left: {"pathname":"/foo/bar"} Right: {"pathname":"/foo/:bar"}] + expected: FAIL + + [Component: pathname Left: {"pathname":"/foo/"} Right: {"pathname":"/foo/:bar"}] + expected: FAIL + + [Component: pathname Left: {"pathname":"/foo/:bar"} Right: {"pathname":"/foo/*"}] + expected: FAIL + + [Component: pathname Left: {"pathname":"/foo/{bar}"} Right: {"pathname":"/foo/(bar)"}] + expected: FAIL + + [Component: pathname Left: {"pathname":"/foo/{bar}"} Right: {"pathname":"/foo/{bar}+"}] + expected: FAIL + + [Component: pathname Left: {"pathname":"/foo/{bar}+"} Right: {"pathname":"/foo/{bar}?"}] + expected: FAIL + + [Component: pathname Left: {"pathname":"/foo/{bar}?"} Right: {"pathname":"/foo/{bar}*"}] + expected: FAIL + + [Component: pathname Left: {"pathname":"/foo/(123)"} Right: {"pathname":"/foo/(12)"}] + expected: FAIL + + [Component: pathname Left: {"pathname":"/foo/:b"} Right: {"pathname":"/foo/:a"}] + expected: FAIL + + [Component: pathname Left: {"pathname":"*/foo"} Right: {"pathname":"*"}] + expected: FAIL + + [Component: port Left: {"port":"9"} Right: {"port":"100"}] + expected: FAIL + + [Component: pathname Left: {"pathname":"foo/:bar?/baz"} Right: {"pathname":"foo/{:bar}?/baz"}] + expected: FAIL + + [Component: pathname Left: {"pathname":"foo/:bar?/baz"} Right: {"pathname":"foo{/:bar}?/baz"}] + expected: FAIL + + [Component: pathname Left: {"pathname":"foo/:bar?/baz"} Right: {"pathname":"fo{o/:bar}?/baz"}] + expected: FAIL + + [Component: pathname Left: {"pathname":"foo/:bar?/baz"} Right: {"pathname":"foo{/:bar/}?baz"}] + expected: FAIL + + [Component: pathname Left: "https://a.example.com/b?a" Right: "https://b.example.com/a?b"] + expected: FAIL + + [Component: pathname Left: {"pathname":"/foo/{bar}/baz"} Right: {"pathname":"/foo/bar/baz"}] + expected: FAIL + + [Component: username Left: {"username":"a"} Right: {"username":"b"}] + expected: FAIL + + [Component: password Left: {"password":"a"} Right: {"password":"b"}] + expected: FAIL + + [Component: protocol Left: {"protocol":"a"} Right: {"protocol":"b"}] + expected: FAIL + + [Component: search Left: {"search":"a"} Right: {"search":"b"}] + expected: FAIL + + [Component: hash Left: {"hash":"a"} Right: {"hash":"b"}] + expected: FAIL + + [Component: hostname Left: {"hostname":"a"} Right: {"hostname":"b"}] + expected: FAIL + + +[urlpattern-compare.https.any.html] + [Component: pathname Left: {"pathname":"/foo/a"} Right: {"pathname":"/foo/b"}] + expected: FAIL + + [Component: pathname Left: {"pathname":"/foo/b"} Right: {"pathname":"/foo/bar"}] + expected: FAIL + + [Component: pathname Left: {"pathname":"/foo/bar"} Right: {"pathname":"/foo/:bar"}] + expected: FAIL + + [Component: pathname Left: {"pathname":"/foo/"} Right: {"pathname":"/foo/:bar"}] + expected: FAIL + + [Component: pathname Left: {"pathname":"/foo/:bar"} Right: {"pathname":"/foo/*"}] + expected: FAIL + + [Component: pathname Left: {"pathname":"/foo/{bar}"} Right: {"pathname":"/foo/(bar)"}] + expected: FAIL + + [Component: pathname Left: {"pathname":"/foo/{bar}"} Right: {"pathname":"/foo/{bar}+"}] + expected: FAIL + + [Component: pathname Left: {"pathname":"/foo/{bar}+"} Right: {"pathname":"/foo/{bar}?"}] + expected: FAIL + + [Component: pathname Left: {"pathname":"/foo/{bar}?"} Right: {"pathname":"/foo/{bar}*"}] + expected: FAIL + + [Component: pathname Left: {"pathname":"/foo/(123)"} Right: {"pathname":"/foo/(12)"}] + expected: FAIL + + [Component: pathname Left: {"pathname":"/foo/:b"} Right: {"pathname":"/foo/:a"}] + expected: FAIL + + [Component: pathname Left: {"pathname":"*/foo"} Right: {"pathname":"*"}] + expected: FAIL + + [Component: port Left: {"port":"9"} Right: {"port":"100"}] + expected: FAIL + + [Component: pathname Left: {"pathname":"foo/:bar?/baz"} Right: {"pathname":"foo/{:bar}?/baz"}] + expected: FAIL + + [Component: pathname Left: {"pathname":"foo/:bar?/baz"} Right: {"pathname":"foo{/:bar}?/baz"}] + expected: FAIL + + [Component: pathname Left: {"pathname":"foo/:bar?/baz"} Right: {"pathname":"fo{o/:bar}?/baz"}] + expected: FAIL + + [Component: pathname Left: {"pathname":"foo/:bar?/baz"} Right: {"pathname":"foo{/:bar/}?baz"}] + expected: FAIL + + [Component: pathname Left: "https://a.example.com/b?a" Right: "https://b.example.com/a?b"] + expected: FAIL + + [Component: pathname Left: {"pathname":"/foo/{bar}/baz"} Right: {"pathname":"/foo/bar/baz"}] + expected: FAIL + + [Component: username Left: {"username":"a"} Right: {"username":"b"}] + expected: FAIL + + [Component: password Left: {"password":"a"} Right: {"password":"b"}] + expected: FAIL + + [Component: protocol Left: {"protocol":"a"} Right: {"protocol":"b"}] + expected: FAIL + + [Component: search Left: {"search":"a"} Right: {"search":"b"}] + expected: FAIL + + [Component: hash Left: {"hash":"a"} Right: {"hash":"b"}] + expected: FAIL + + [Component: hostname Left: {"hostname":"a"} Right: {"hostname":"b"}] + expected: FAIL + + +[urlpattern-compare.https.any.worker.html] + [Component: pathname Left: {"pathname":"/foo/a"} Right: {"pathname":"/foo/b"}] + expected: FAIL + + [Component: pathname Left: {"pathname":"/foo/b"} Right: {"pathname":"/foo/bar"}] + expected: FAIL + + [Component: pathname Left: {"pathname":"/foo/bar"} Right: {"pathname":"/foo/:bar"}] + expected: FAIL + + [Component: pathname Left: {"pathname":"/foo/"} Right: {"pathname":"/foo/:bar"}] + expected: FAIL + + [Component: pathname Left: {"pathname":"/foo/:bar"} Right: {"pathname":"/foo/*"}] + expected: FAIL + + [Component: pathname Left: {"pathname":"/foo/{bar}"} Right: {"pathname":"/foo/(bar)"}] + expected: FAIL + + [Component: pathname Left: {"pathname":"/foo/{bar}"} Right: {"pathname":"/foo/{bar}+"}] + expected: FAIL + + [Component: pathname Left: {"pathname":"/foo/{bar}+"} Right: {"pathname":"/foo/{bar}?"}] + expected: FAIL + + [Component: pathname Left: {"pathname":"/foo/{bar}?"} Right: {"pathname":"/foo/{bar}*"}] + expected: FAIL + + [Component: pathname Left: {"pathname":"/foo/(123)"} Right: {"pathname":"/foo/(12)"}] + expected: FAIL + + [Component: pathname Left: {"pathname":"/foo/:b"} Right: {"pathname":"/foo/:a"}] + expected: FAIL + + [Component: pathname Left: {"pathname":"*/foo"} Right: {"pathname":"*"}] + expected: FAIL + + [Component: port Left: {"port":"9"} Right: {"port":"100"}] + expected: FAIL + + [Component: pathname Left: {"pathname":"foo/:bar?/baz"} Right: {"pathname":"foo/{:bar}?/baz"}] + expected: FAIL + + [Component: pathname Left: {"pathname":"foo/:bar?/baz"} Right: {"pathname":"foo{/:bar}?/baz"}] + expected: FAIL + + [Component: pathname Left: {"pathname":"foo/:bar?/baz"} Right: {"pathname":"fo{o/:bar}?/baz"}] + expected: FAIL + + [Component: pathname Left: {"pathname":"foo/:bar?/baz"} Right: {"pathname":"foo{/:bar/}?baz"}] + expected: FAIL + + [Component: pathname Left: "https://a.example.com/b?a" Right: "https://b.example.com/a?b"] + expected: FAIL + + [Component: pathname Left: {"pathname":"/foo/{bar}/baz"} Right: {"pathname":"/foo/bar/baz"}] + expected: FAIL + + [Component: username Left: {"username":"a"} Right: {"username":"b"}] + expected: FAIL + + [Component: password Left: {"password":"a"} Right: {"password":"b"}] + expected: FAIL + + [Component: protocol Left: {"protocol":"a"} Right: {"protocol":"b"}] + expected: FAIL + + [Component: search Left: {"search":"a"} Right: {"search":"b"}] + expected: FAIL + + [Component: hash Left: {"hash":"a"} Right: {"hash":"b"}] + expected: FAIL + + [Component: hostname Left: {"hostname":"a"} Right: {"hostname":"b"}] + expected: FAIL + + +[urlpattern-compare.https.any.sharedworker.html] + [Component: pathname Left: {"pathname":"/foo/a"} Right: {"pathname":"/foo/b"}] + expected: FAIL + + [Component: pathname Left: {"pathname":"/foo/b"} Right: {"pathname":"/foo/bar"}] + expected: FAIL + + [Component: pathname Left: {"pathname":"/foo/bar"} Right: {"pathname":"/foo/:bar"}] + expected: FAIL + + [Component: pathname Left: {"pathname":"/foo/"} Right: {"pathname":"/foo/:bar"}] + expected: FAIL + + [Component: pathname Left: {"pathname":"/foo/:bar"} Right: {"pathname":"/foo/*"}] + expected: FAIL + + [Component: pathname Left: {"pathname":"/foo/{bar}"} Right: {"pathname":"/foo/(bar)"}] + expected: FAIL + + [Component: pathname Left: {"pathname":"/foo/{bar}"} Right: {"pathname":"/foo/{bar}+"}] + expected: FAIL + + [Component: pathname Left: {"pathname":"/foo/{bar}+"} Right: {"pathname":"/foo/{bar}?"}] + expected: FAIL + + [Component: pathname Left: {"pathname":"/foo/{bar}?"} Right: {"pathname":"/foo/{bar}*"}] + expected: FAIL + + [Component: pathname Left: {"pathname":"/foo/(123)"} Right: {"pathname":"/foo/(12)"}] + expected: FAIL + + [Component: pathname Left: {"pathname":"/foo/:b"} Right: {"pathname":"/foo/:a"}] + expected: FAIL + + [Component: pathname Left: {"pathname":"*/foo"} Right: {"pathname":"*"}] + expected: FAIL + + [Component: port Left: {"port":"9"} Right: {"port":"100"}] + expected: FAIL + + [Component: pathname Left: {"pathname":"foo/:bar?/baz"} Right: {"pathname":"foo/{:bar}?/baz"}] + expected: FAIL + + [Component: pathname Left: {"pathname":"foo/:bar?/baz"} Right: {"pathname":"foo{/:bar}?/baz"}] + expected: FAIL + + [Component: pathname Left: {"pathname":"foo/:bar?/baz"} Right: {"pathname":"fo{o/:bar}?/baz"}] + expected: FAIL + + [Component: pathname Left: {"pathname":"foo/:bar?/baz"} Right: {"pathname":"foo{/:bar/}?baz"}] + expected: FAIL + + [Component: pathname Left: "https://a.example.com/b?a" Right: "https://b.example.com/a?b"] + expected: FAIL + + [Component: pathname Left: {"pathname":"/foo/{bar}/baz"} Right: {"pathname":"/foo/bar/baz"}] + expected: FAIL + + [Component: username Left: {"username":"a"} Right: {"username":"b"}] + expected: FAIL + + [Component: password Left: {"password":"a"} Right: {"password":"b"}] + expected: FAIL + + [Component: protocol Left: {"protocol":"a"} Right: {"protocol":"b"}] + expected: FAIL + + [Component: search Left: {"search":"a"} Right: {"search":"b"}] + expected: FAIL + + [Component: hash Left: {"hash":"a"} Right: {"hash":"b"}] + expected: FAIL + + [Component: hostname Left: {"hostname":"a"} Right: {"hostname":"b"}] + expected: FAIL diff --git a/testing/web-platform/meta/urlpattern/urlpattern.any.js.ini b/testing/web-platform/meta/urlpattern/urlpattern.any.js.ini new file mode 100644 index 0000000000..32d6285baf --- /dev/null +++ b/testing/web-platform/meta/urlpattern/urlpattern.any.js.ini @@ -0,0 +1,4040 @@ +[urlpattern.any.worker.html] + [Pattern: [{"pathname":"/foo/bar"}\] Inputs: [{"pathname":"/foo/bar"}\]] + expected: FAIL + + [Pattern: [{"pathname":"/foo/bar"}\] Inputs: [{"pathname":"/foo/ba"}\]] + expected: FAIL + + [Pattern: [{"pathname":"/foo/bar"}\] Inputs: [{"pathname":"/foo/bar/"}\]] + expected: FAIL + + [Pattern: [{"pathname":"/foo/bar"}\] Inputs: [{"pathname":"/foo/bar/baz"}\]] + expected: FAIL + + [Pattern: [{"pathname":"/foo/bar"}\] Inputs: ["https://example.com/foo/bar"\]] + expected: FAIL + + [Pattern: [{"pathname":"/foo/bar"}\] Inputs: ["https://example.com/foo/bar/baz"\]] + expected: FAIL + + [Pattern: [{"pathname":"/foo/bar"}\] Inputs: [{"hostname":"example.com","pathname":"/foo/bar"}\]] + expected: FAIL + + [Pattern: [{"pathname":"/foo/bar"}\] Inputs: [{"hostname":"example.com","pathname":"/foo/bar/baz"}\]] + expected: FAIL + + [Pattern: [{"pathname":"/foo/bar"}\] Inputs: [{"pathname":"/foo/bar","baseURL":"https://example.com"}\]] + expected: FAIL + + [Pattern: [{"pathname":"/foo/bar"}\] Inputs: [{"pathname":"/foo/bar/baz","baseURL":"https://example.com"}\]] + expected: FAIL + + [Pattern: [{"pathname":"/foo/bar","baseURL":"https://example.com?query#hash"}\] Inputs: [{"pathname":"/foo/bar"}\]] + expected: FAIL + + [Pattern: [{"pathname":"/foo/bar","baseURL":"https://example.com?query#hash"}\] Inputs: [{"hostname":"example.com","pathname":"/foo/bar"}\]] + expected: FAIL + + [Pattern: [{"pathname":"/foo/bar","baseURL":"https://example.com?query#hash"}\] Inputs: [{"protocol":"https","hostname":"example.com","pathname":"/foo/bar"}\]] + expected: FAIL + + [Pattern: [{"pathname":"/foo/bar","baseURL":"https://example.com"}\] Inputs: [{"protocol":"https","hostname":"example.com","pathname":"/foo/bar"}\]] + expected: FAIL + + [Pattern: [{"pathname":"/foo/bar","baseURL":"https://example.com"}\] Inputs: [{"protocol":"https","hostname":"example.com","pathname":"/foo/bar/baz"}\]] + expected: FAIL + + [Pattern: [{"pathname":"/foo/bar","baseURL":"https://example.com?query#hash"}\] Inputs: [{"protocol":"https","hostname":"example.com","pathname":"/foo/bar","search":"otherquery","hash":"otherhash"}\]] + expected: FAIL + + [Pattern: [{"pathname":"/foo/bar","baseURL":"https://example.com"}\] Inputs: [{"protocol":"https","hostname":"example.com","pathname":"/foo/bar","search":"otherquery","hash":"otherhash"}\]] + expected: FAIL + + [Pattern: [{"pathname":"/foo/bar","baseURL":"https://example.com?otherquery#otherhash"}\] Inputs: [{"protocol":"https","hostname":"example.com","pathname":"/foo/bar","search":"otherquery","hash":"otherhash"}\]] + expected: FAIL + + [Pattern: [{"pathname":"/foo/bar","baseURL":"https://example.com?query#hash"}\] Inputs: ["https://example.com/foo/bar"\]] + expected: FAIL + + [Pattern: [{"pathname":"/foo/bar","baseURL":"https://example.com?query#hash"}\] Inputs: ["https://example.com/foo/bar?otherquery#otherhash"\]] + expected: FAIL + + [Pattern: [{"pathname":"/foo/bar","baseURL":"https://example.com?query#hash"}\] Inputs: ["https://example.com/foo/bar?query#hash"\]] + expected: FAIL + + [Pattern: [{"pathname":"/foo/bar","baseURL":"https://example.com?query#hash"}\] Inputs: ["https://example.com/foo/bar/baz"\]] + expected: FAIL + + [Pattern: [{"pathname":"/foo/bar","baseURL":"https://example.com?query#hash"}\] Inputs: ["https://other.com/foo/bar"\]] + expected: FAIL + + [Pattern: [{"pathname":"/foo/bar","baseURL":"https://example.com?query#hash"}\] Inputs: ["http://other.com/foo/bar"\]] + expected: FAIL + + [Pattern: [{"pathname":"/foo/bar","baseURL":"https://example.com?query#hash"}\] Inputs: [{"pathname":"/foo/bar","baseURL":"https://example.com"}\]] + expected: FAIL + + [Pattern: [{"pathname":"/foo/bar","baseURL":"https://example.com?query#hash"}\] Inputs: [{"pathname":"/foo/bar","baseURL":"https://example.com?query#hash"}\]] + expected: FAIL + + [Pattern: [{"pathname":"/foo/bar","baseURL":"https://example.com?query#hash"}\] Inputs: [{"pathname":"/foo/bar/baz","baseURL":"https://example.com"}\]] + expected: FAIL + + [Pattern: [{"pathname":"/foo/bar","baseURL":"https://example.com?query#hash"}\] Inputs: [{"pathname":"/foo/bar","baseURL":"https://other.com"}\]] + expected: FAIL + + [Pattern: [{"pathname":"/foo/bar","baseURL":"https://example.com?query#hash"}\] Inputs: [{"pathname":"/foo/bar","baseURL":"http://example.com"}\]] + expected: FAIL + + [Pattern: [{"pathname":"/foo/:bar"}\] Inputs: [{"pathname":"/foo/bar"}\]] + expected: FAIL + + [Pattern: [{"pathname":"/foo/:bar"}\] Inputs: [{"pathname":"/foo/index.html"}\]] + expected: FAIL + + [Pattern: [{"pathname":"/foo/:bar"}\] Inputs: [{"pathname":"/foo/bar/"}\]] + expected: FAIL + + [Pattern: [{"pathname":"/foo/:bar"}\] Inputs: [{"pathname":"/foo/"}\]] + expected: FAIL + + [Pattern: [{"pathname":"/foo/(.*)"}\] Inputs: [{"pathname":"/foo/bar"}\]] + expected: FAIL + + [Pattern: [{"pathname":"/foo/*"}\] Inputs: [{"pathname":"/foo/bar"}\]] + expected: FAIL + + [Pattern: [{"pathname":"/foo/(.*)"}\] Inputs: [{"pathname":"/foo/bar/baz"}\]] + expected: FAIL + + [Pattern: [{"pathname":"/foo/*"}\] Inputs: [{"pathname":"/foo/bar/baz"}\]] + expected: FAIL + + [Pattern: [{"pathname":"/foo/(.*)"}\] Inputs: [{"pathname":"/foo/"}\]] + expected: FAIL + + [Pattern: [{"pathname":"/foo/*"}\] Inputs: [{"pathname":"/foo/"}\]] + expected: FAIL + + [Pattern: [{"pathname":"/foo/(.*)"}\] Inputs: [{"pathname":"/foo"}\]] + expected: FAIL + + [Pattern: [{"pathname":"/foo/*"}\] Inputs: [{"pathname":"/foo"}\]] + expected: FAIL + + [Pattern: [{"pathname":"/foo/:bar(.*)"}\] Inputs: [{"pathname":"/foo/bar"}\]] + expected: FAIL + + [Pattern: [{"pathname":"/foo/:bar(.*)"}\] Inputs: [{"pathname":"/foo/bar/baz"}\]] + expected: FAIL + + [Pattern: [{"pathname":"/foo/:bar(.*)"}\] Inputs: [{"pathname":"/foo/"}\]] + expected: FAIL + + [Pattern: [{"pathname":"/foo/:bar(.*)"}\] Inputs: [{"pathname":"/foo"}\]] + expected: FAIL + + [Pattern: [{"pathname":"/foo/:bar?"}\] Inputs: [{"pathname":"/foo/bar"}\]] + expected: FAIL + + [Pattern: [{"pathname":"/foo/:bar?"}\] Inputs: [{"pathname":"/foo"}\]] + expected: FAIL + + [Pattern: [{"pathname":"/foo/:bar?"}\] Inputs: [{"pathname":"/foo/"}\]] + expected: FAIL + + [Pattern: [{"pathname":"/foo/:bar?"}\] Inputs: [{"pathname":"/foobar"}\]] + expected: FAIL + + [Pattern: [{"pathname":"/foo/:bar?"}\] Inputs: [{"pathname":"/foo/bar/baz"}\]] + expected: FAIL + + [Pattern: [{"pathname":"/foo/:bar+"}\] Inputs: [{"pathname":"/foo/bar"}\]] + expected: FAIL + + [Pattern: [{"pathname":"/foo/:bar+"}\] Inputs: [{"pathname":"/foo/bar/baz"}\]] + expected: FAIL + + [Pattern: [{"pathname":"/foo/:bar+"}\] Inputs: [{"pathname":"/foo"}\]] + expected: FAIL + + [Pattern: [{"pathname":"/foo/:bar+"}\] Inputs: [{"pathname":"/foo/"}\]] + expected: FAIL + + [Pattern: [{"pathname":"/foo/:bar+"}\] Inputs: [{"pathname":"/foobar"}\]] + expected: FAIL + + [Pattern: [{"pathname":"/foo/:bar*"}\] Inputs: [{"pathname":"/foo/bar"}\]] + expected: FAIL + + [Pattern: [{"pathname":"/foo/:bar*"}\] Inputs: [{"pathname":"/foo/bar/baz"}\]] + expected: FAIL + + [Pattern: [{"pathname":"/foo/:bar*"}\] Inputs: [{"pathname":"/foo"}\]] + expected: FAIL + + [Pattern: [{"pathname":"/foo/:bar*"}\] Inputs: [{"pathname":"/foo/"}\]] + expected: FAIL + + [Pattern: [{"pathname":"/foo/:bar*"}\] Inputs: [{"pathname":"/foobar"}\]] + expected: FAIL + + [Pattern: [{"pathname":"/foo/(.*)?"}\] Inputs: [{"pathname":"/foo/bar"}\]] + expected: FAIL + + [Pattern: [{"pathname":"/foo/*?"}\] Inputs: [{"pathname":"/foo/bar"}\]] + expected: FAIL + + [Pattern: [{"pathname":"/foo/(.*)?"}\] Inputs: [{"pathname":"/foo/bar/baz"}\]] + expected: FAIL + + [Pattern: [{"pathname":"/foo/*?"}\] Inputs: [{"pathname":"/foo/bar/baz"}\]] + expected: FAIL + + [Pattern: [{"pathname":"/foo/(.*)?"}\] Inputs: [{"pathname":"/foo"}\]] + expected: FAIL + + [Pattern: [{"pathname":"/foo/*?"}\] Inputs: [{"pathname":"/foo"}\]] + expected: FAIL + + [Pattern: [{"pathname":"/foo/(.*)?"}\] Inputs: [{"pathname":"/foo/"}\]] + expected: FAIL + + [Pattern: [{"pathname":"/foo/*?"}\] Inputs: [{"pathname":"/foo/"}\]] + expected: FAIL + + [Pattern: [{"pathname":"/foo/(.*)?"}\] Inputs: [{"pathname":"/foobar"}\]] + expected: FAIL + + [Pattern: [{"pathname":"/foo/*?"}\] Inputs: [{"pathname":"/foobar"}\]] + expected: FAIL + + [Pattern: [{"pathname":"/foo/(.*)?"}\] Inputs: [{"pathname":"/fo"}\]] + expected: FAIL + + [Pattern: [{"pathname":"/foo/*?"}\] Inputs: [{"pathname":"/fo"}\]] + expected: FAIL + + [Pattern: [{"pathname":"/foo/(.*)+"}\] Inputs: [{"pathname":"/foo/bar"}\]] + expected: FAIL + + [Pattern: [{"pathname":"/foo/*+"}\] Inputs: [{"pathname":"/foo/bar"}\]] + expected: FAIL + + [Pattern: [{"pathname":"/foo/(.*)+"}\] Inputs: [{"pathname":"/foo/bar/baz"}\]] + expected: FAIL + + [Pattern: [{"pathname":"/foo/*+"}\] Inputs: [{"pathname":"/foo/bar/baz"}\]] + expected: FAIL + + [Pattern: [{"pathname":"/foo/(.*)+"}\] Inputs: [{"pathname":"/foo"}\]] + expected: FAIL + + [Pattern: [{"pathname":"/foo/*+"}\] Inputs: [{"pathname":"/foo"}\]] + expected: FAIL + + [Pattern: [{"pathname":"/foo/(.*)+"}\] Inputs: [{"pathname":"/foo/"}\]] + expected: FAIL + + [Pattern: [{"pathname":"/foo/*+"}\] Inputs: [{"pathname":"/foo/"}\]] + expected: FAIL + + [Pattern: [{"pathname":"/foo/(.*)+"}\] Inputs: [{"pathname":"/foobar"}\]] + expected: FAIL + + [Pattern: [{"pathname":"/foo/*+"}\] Inputs: [{"pathname":"/foobar"}\]] + expected: FAIL + + [Pattern: [{"pathname":"/foo/(.*)+"}\] Inputs: [{"pathname":"/fo"}\]] + expected: FAIL + + [Pattern: [{"pathname":"/foo/*+"}\] Inputs: [{"pathname":"/fo"}\]] + expected: FAIL + + [Pattern: [{"pathname":"/foo/(.*)*"}\] Inputs: [{"pathname":"/foo/bar"}\]] + expected: FAIL + + [Pattern: [{"pathname":"/foo/**"}\] Inputs: [{"pathname":"/foo/bar"}\]] + expected: FAIL + + [Pattern: [{"pathname":"/foo/(.*)*"}\] Inputs: [{"pathname":"/foo/bar/baz"}\]] + expected: FAIL + + [Pattern: [{"pathname":"/foo/**"}\] Inputs: [{"pathname":"/foo/bar/baz"}\]] + expected: FAIL + + [Pattern: [{"pathname":"/foo/(.*)*"}\] Inputs: [{"pathname":"/foo"}\]] + expected: FAIL + + [Pattern: [{"pathname":"/foo/**"}\] Inputs: [{"pathname":"/foo"}\]] + expected: FAIL + + [Pattern: [{"pathname":"/foo/(.*)*"}\] Inputs: [{"pathname":"/foo/"}\]] + expected: FAIL + + [Pattern: [{"pathname":"/foo/**"}\] Inputs: [{"pathname":"/foo/"}\]] + expected: FAIL + + [Pattern: [{"pathname":"/foo/(.*)*"}\] Inputs: [{"pathname":"/foobar"}\]] + expected: FAIL + + [Pattern: [{"pathname":"/foo/**"}\] Inputs: [{"pathname":"/foobar"}\]] + expected: FAIL + + [Pattern: [{"pathname":"/foo/(.*)*"}\] Inputs: [{"pathname":"/fo"}\]] + expected: FAIL + + [Pattern: [{"pathname":"/foo/**"}\] Inputs: [{"pathname":"/fo"}\]] + expected: FAIL + + [Pattern: [{"pathname":"/foo{/bar}"}\] Inputs: [{"pathname":"/foo/bar"}\]] + expected: FAIL + + [Pattern: [{"pathname":"/foo{/bar}"}\] Inputs: [{"pathname":"/foo/bar/baz"}\]] + expected: FAIL + + [Pattern: [{"pathname":"/foo{/bar}"}\] Inputs: [{"pathname":"/foo"}\]] + expected: FAIL + + [Pattern: [{"pathname":"/foo{/bar}"}\] Inputs: [{"pathname":"/foo/"}\]] + expected: FAIL + + [Pattern: [{"pathname":"/foo{/bar}?"}\] Inputs: [{"pathname":"/foo/bar"}\]] + expected: FAIL + + [Pattern: [{"pathname":"/foo{/bar}?"}\] Inputs: [{"pathname":"/foo/bar/baz"}\]] + expected: FAIL + + [Pattern: [{"pathname":"/foo{/bar}?"}\] Inputs: [{"pathname":"/foo"}\]] + expected: FAIL + + [Pattern: [{"pathname":"/foo{/bar}?"}\] Inputs: [{"pathname":"/foo/"}\]] + expected: FAIL + + [Pattern: [{"pathname":"/foo{/bar}+"}\] Inputs: [{"pathname":"/foo/bar"}\]] + expected: FAIL + + [Pattern: [{"pathname":"/foo{/bar}+"}\] Inputs: [{"pathname":"/foo/bar/bar"}\]] + expected: FAIL + + [Pattern: [{"pathname":"/foo{/bar}+"}\] Inputs: [{"pathname":"/foo/bar/baz"}\]] + expected: FAIL + + [Pattern: [{"pathname":"/foo{/bar}+"}\] Inputs: [{"pathname":"/foo"}\]] + expected: FAIL + + [Pattern: [{"pathname":"/foo{/bar}+"}\] Inputs: [{"pathname":"/foo/"}\]] + expected: FAIL + + [Pattern: [{"pathname":"/foo{/bar}*"}\] Inputs: [{"pathname":"/foo/bar"}\]] + expected: FAIL + + [Pattern: [{"pathname":"/foo{/bar}*"}\] Inputs: [{"pathname":"/foo/bar/bar"}\]] + expected: FAIL + + [Pattern: [{"pathname":"/foo{/bar}*"}\] Inputs: [{"pathname":"/foo/bar/baz"}\]] + expected: FAIL + + [Pattern: [{"pathname":"/foo{/bar}*"}\] Inputs: [{"pathname":"/foo"}\]] + expected: FAIL + + [Pattern: [{"pathname":"/foo{/bar}*"}\] Inputs: [{"pathname":"/foo/"}\]] + expected: FAIL + + [Pattern: [{"protocol":"(café)"}\] Inputs: undefined] + expected: FAIL + + [Pattern: [{"username":"(café)"}\] Inputs: undefined] + expected: FAIL + + [Pattern: [{"password":"(café)"}\] Inputs: undefined] + expected: FAIL + + [Pattern: [{"hostname":"(café)"}\] Inputs: undefined] + expected: FAIL + + [Pattern: [{"pathname":"(café)"}\] Inputs: undefined] + expected: FAIL + + [Pattern: [{"search":"(café)"}\] Inputs: undefined] + expected: FAIL + + [Pattern: [{"hash":"(café)"}\] Inputs: undefined] + expected: FAIL + + [Pattern: [{"protocol":":café"}\] Inputs: [{"protocol":"foo"}\]] + expected: FAIL + + [Pattern: [{"username":":café"}\] Inputs: [{"username":"foo"}\]] + expected: FAIL + + [Pattern: [{"password":":café"}\] Inputs: [{"password":"foo"}\]] + expected: FAIL + + [Pattern: [{"hostname":":café"}\] Inputs: [{"hostname":"foo"}\]] + expected: FAIL + + [Pattern: [{"pathname":"/:café"}\] Inputs: [{"pathname":"/foo"}\]] + expected: FAIL + + [Pattern: [{"search":":café"}\] Inputs: [{"search":"foo"}\]] + expected: FAIL + + [Pattern: [{"hash":":café"}\] Inputs: [{"hash":"foo"}\]] + expected: FAIL + + [Pattern: [{"protocol":":℘"}\] Inputs: [{"protocol":"foo"}\]] + expected: FAIL + + [Pattern: [{"username":":℘"}\] Inputs: [{"username":"foo"}\]] + expected: FAIL + + [Pattern: [{"password":":℘"}\] Inputs: [{"password":"foo"}\]] + expected: FAIL + + [Pattern: [{"hostname":":℘"}\] Inputs: [{"hostname":"foo"}\]] + expected: FAIL + + [Pattern: [{"pathname":"/:℘"}\] Inputs: [{"pathname":"/foo"}\]] + expected: FAIL + + [Pattern: [{"search":":℘"}\] Inputs: [{"search":"foo"}\]] + expected: FAIL + + [Pattern: [{"hash":":℘"}\] Inputs: [{"hash":"foo"}\]] + expected: FAIL + + [Pattern: [{"protocol":":㐀"}\] Inputs: [{"protocol":"foo"}\]] + expected: FAIL + + [Pattern: [{"username":":㐀"}\] Inputs: [{"username":"foo"}\]] + expected: FAIL + + [Pattern: [{"password":":㐀"}\] Inputs: [{"password":"foo"}\]] + expected: FAIL + + [Pattern: [{"hostname":":㐀"}\] Inputs: [{"hostname":"foo"}\]] + expected: FAIL + + [Pattern: [{"pathname":"/:㐀"}\] Inputs: [{"pathname":"/foo"}\]] + expected: FAIL + + [Pattern: [{"search":":㐀"}\] Inputs: [{"search":"foo"}\]] + expected: FAIL + + [Pattern: [{"hash":":㐀"}\] Inputs: [{"hash":"foo"}\]] + expected: FAIL + + [Pattern: [{"protocol":"(.*)"}\] Inputs: [{"protocol":"café"}\]] + expected: FAIL + + [Pattern: [{"protocol":"(.*)"}\] Inputs: [{"protocol":"cafe"}\]] + expected: FAIL + + [Pattern: [{"protocol":"foo-bar"}\] Inputs: [{"protocol":"foo-bar"}\]] + expected: FAIL + + [Pattern: [{"username":"caf%C3%A9"}\] Inputs: [{"username":"café"}\]] + expected: FAIL + + [Pattern: [{"username":"café"}\] Inputs: [{"username":"café"}\]] + expected: FAIL + + [Pattern: [{"username":"caf%c3%a9"}\] Inputs: [{"username":"café"}\]] + expected: FAIL + + [Pattern: [{"password":"caf%C3%A9"}\] Inputs: [{"password":"café"}\]] + expected: FAIL + + [Pattern: [{"password":"café"}\] Inputs: [{"password":"café"}\]] + expected: FAIL + + [Pattern: [{"password":"caf%c3%a9"}\] Inputs: [{"password":"café"}\]] + expected: FAIL + + [Pattern: [{"hostname":"xn--caf-dma.com"}\] Inputs: [{"hostname":"café.com"}\]] + expected: FAIL + + [Pattern: [{"hostname":"café.com"}\] Inputs: [{"hostname":"café.com"}\]] + expected: FAIL + + [Pattern: [{"port":""}\] Inputs: [{"protocol":"http","port":"80"}\]] + expected: FAIL + + [Pattern: [{"protocol":"http","port":"80"}\] Inputs: [{"protocol":"http","port":"80"}\]] + expected: FAIL + + [Pattern: [{"protocol":"http","port":"80{20}?"}\] Inputs: [{"protocol":"http","port":"80"}\]] + expected: FAIL + + [Pattern: [{"protocol":"http","port":"80 "}\] Inputs: [{"protocol":"http","port":"80"}\]] + expected: FAIL + + [Pattern: [{"port":"80"}\] Inputs: [{"protocol":"http","port":"80"}\]] + expected: FAIL + + [Pattern: [{"protocol":"http{s}?","port":"80"}\] Inputs: [{"protocol":"http","port":"80"}\]] + expected: FAIL + + [Pattern: [{"port":"80"}\] Inputs: [{"port":"80"}\]] + expected: FAIL + + [Pattern: [{"port":"(.*)"}\] Inputs: [{"port":"invalid80"}\]] + expected: FAIL + + [Pattern: [{"pathname":"/foo/bar"}\] Inputs: [{"pathname":"/foo/./bar"}\]] + expected: FAIL + + [Pattern: [{"pathname":"/foo/baz"}\] Inputs: [{"pathname":"/foo/bar/../baz"}\]] + expected: FAIL + + [Pattern: [{"pathname":"/caf%C3%A9"}\] Inputs: [{"pathname":"/café"}\]] + expected: FAIL + + [Pattern: [{"pathname":"/café"}\] Inputs: [{"pathname":"/café"}\]] + expected: FAIL + + [Pattern: [{"pathname":"/caf%c3%a9"}\] Inputs: [{"pathname":"/café"}\]] + expected: FAIL + + [Pattern: [{"pathname":"/foo/bar"}\] Inputs: [{"pathname":"foo/bar"}\]] + expected: FAIL + + [Pattern: [{"pathname":"/foo/bar"}\] Inputs: [{"pathname":"foo/bar","baseURL":"https://example.com"}\]] + expected: FAIL + + [Pattern: [{"pathname":"/foo/../bar"}\] Inputs: [{"pathname":"/bar"}\]] + expected: FAIL + + [Pattern: [{"pathname":"./foo/bar","baseURL":"https://example.com"}\] Inputs: [{"pathname":"foo/bar","baseURL":"https://example.com"}\]] + expected: FAIL + + [Pattern: [{"pathname":"foo/bar"}\] Inputs: ["https://example.com/foo/bar"\]] + expected: FAIL + + [Pattern: [{"pathname":"foo/bar","baseURL":"https://example.com"}\] Inputs: ["https://example.com/foo/bar"\]] + expected: FAIL + + [Pattern: [{"pathname":":name.html","baseURL":"https://example.com"}\] Inputs: ["https://example.com/foo.html"\]] + expected: FAIL + + [Pattern: [{"search":"q=caf%C3%A9"}\] Inputs: [{"search":"q=café"}\]] + expected: FAIL + + [Pattern: [{"search":"q=café"}\] Inputs: [{"search":"q=café"}\]] + expected: FAIL + + [Pattern: [{"search":"q=caf%c3%a9"}\] Inputs: [{"search":"q=café"}\]] + expected: FAIL + + [Pattern: [{"hash":"caf%C3%A9"}\] Inputs: [{"hash":"café"}\]] + expected: FAIL + + [Pattern: [{"hash":"café"}\] Inputs: [{"hash":"café"}\]] + expected: FAIL + + [Pattern: [{"hash":"caf%c3%a9"}\] Inputs: [{"hash":"café"}\]] + expected: FAIL + + [Pattern: [{"protocol":"about","pathname":"(blank|sourcedoc)"}\] Inputs: ["about:blank"\]] + expected: FAIL + + [Pattern: [{"protocol":"data","pathname":":number([0-9\]+)"}\] Inputs: ["data:8675309"\]] + expected: FAIL + + [Pattern: [{"pathname":"/(\\\\m)"}\] Inputs: undefined] + expected: FAIL + + [Pattern: [{"pathname":"/foo!"}\] Inputs: [{"pathname":"/foo!"}\]] + expected: FAIL + + [Pattern: [{"pathname":"/foo\\\\:"}\] Inputs: [{"pathname":"/foo:"}\]] + expected: FAIL + + [Pattern: [{"pathname":"/foo\\\\{"}\] Inputs: [{"pathname":"/foo{"}\]] + expected: FAIL + + [Pattern: [{"pathname":"/foo\\\\("}\] Inputs: [{"pathname":"/foo("}\]] + expected: FAIL + + [Pattern: [{"protocol":"javascript","pathname":"var x = 1;"}\] Inputs: [{"protocol":"javascript","pathname":"var x = 1;"}\]] + expected: FAIL + + [Pattern: [{"pathname":"var x = 1;"}\] Inputs: [{"protocol":"javascript","pathname":"var x = 1;"}\]] + expected: FAIL + + [Pattern: [{"protocol":"javascript","pathname":"var x = 1;"}\] Inputs: [{"baseURL":"javascript:var x = 1;"}\]] + expected: FAIL + + [Pattern: [{"protocol":"(data|javascript)","pathname":"var x = 1;"}\] Inputs: [{"protocol":"javascript","pathname":"var x = 1;"}\]] + expected: FAIL + + [Pattern: [{"protocol":"(https|javascript)","pathname":"var x = 1;"}\] Inputs: [{"protocol":"javascript","pathname":"var x = 1;"}\]] + expected: FAIL + + [Pattern: [{"pathname":"var x = 1;"}\] Inputs: [{"pathname":"var x = 1;"}\]] + expected: FAIL + + [Pattern: [{"pathname":"/foo/bar"}\] Inputs: ["./foo/bar","https://example.com"\]] + expected: FAIL + + [Pattern: [{"pathname":"/foo/bar"}\] Inputs: [{"pathname":"/foo/bar"},"https://example.com"\]] + expected: FAIL + + [Pattern: ["https://example.com:8080/foo?bar#baz"\] Inputs: [{"pathname":"/foo","search":"bar","hash":"baz","baseURL":"https://example.com:8080"}\]] + expected: FAIL + + [Pattern: ["/foo?bar#baz","https://example.com:8080"\] Inputs: [{"pathname":"/foo","search":"bar","hash":"baz","baseURL":"https://example.com:8080"}\]] + expected: FAIL + + [Pattern: ["/foo"\] Inputs: undefined] + expected: FAIL + + [Pattern: ["example.com/foo"\] Inputs: undefined] + expected: FAIL + + [Pattern: ["http{s}?://{*.}?example.com/:product/:endpoint"\] Inputs: ["https://sub.example.com/foo/bar"\]] + expected: FAIL + + [Pattern: ["https://example.com?foo"\] Inputs: ["https://example.com/?foo"\]] + expected: FAIL + + [Pattern: ["https://example.com#foo"\] Inputs: ["https://example.com/#foo"\]] + expected: FAIL + + [Pattern: ["https://example.com:8080?foo"\] Inputs: ["https://example.com:8080/?foo"\]] + expected: FAIL + + [Pattern: ["https://example.com:8080#foo"\] Inputs: ["https://example.com:8080/#foo"\]] + expected: FAIL + + [Pattern: ["https://example.com/?foo"\] Inputs: ["https://example.com/?foo"\]] + expected: FAIL + + [Pattern: ["https://example.com/#foo"\] Inputs: ["https://example.com/#foo"\]] + expected: FAIL + + [Pattern: ["https://example.com/*?foo"\] Inputs: ["https://example.com/?foo"\]] + expected: FAIL + + [Pattern: ["https://example.com/*\\\\?foo"\] Inputs: ["https://example.com/?foo"\]] + expected: FAIL + + [Pattern: ["https://example.com/:name?foo"\] Inputs: ["https://example.com/bar?foo"\]] + expected: FAIL + + [Pattern: ["https://example.com/:name\\\\?foo"\] Inputs: ["https://example.com/bar?foo"\]] + expected: FAIL + + [Pattern: ["https://example.com/(bar)?foo"\] Inputs: ["https://example.com/bar?foo"\]] + expected: FAIL + + [Pattern: ["https://example.com/(bar)\\\\?foo"\] Inputs: ["https://example.com/bar?foo"\]] + expected: FAIL + + [Pattern: ["https://example.com/{bar}?foo"\] Inputs: ["https://example.com/bar?foo"\]] + expected: FAIL + + [Pattern: ["https://example.com/{bar}\\\\?foo"\] Inputs: ["https://example.com/bar?foo"\]] + expected: FAIL + + [Pattern: ["https://example.com/"\] Inputs: ["https://example.com:8080/"\]] + expected: FAIL + + [Pattern: ["data:foobar"\] Inputs: ["data:foobar"\]] + expected: FAIL + + [Pattern: ["data\\\\:foobar"\] Inputs: ["data:foobar"\]] + expected: FAIL + + [Pattern: ["https://{sub.}?example.com/foo"\] Inputs: ["https://example.com/foo"\]] + expected: FAIL + + [Pattern: ["https://{sub.}?example{.com/}foo"\] Inputs: ["https://example.com/foo"\]] + expected: FAIL + + [Pattern: ["{https://}example.com/foo"\] Inputs: ["https://example.com/foo"\]] + expected: FAIL + + [Pattern: ["https://(sub.)?example.com/foo"\] Inputs: ["https://example.com/foo"\]] + expected: FAIL + + [Pattern: ["https://(sub.)?example(.com/)foo"\] Inputs: ["https://example.com/foo"\]] + expected: FAIL + + [Pattern: ["(https://)example.com/foo"\] Inputs: ["https://example.com/foo"\]] + expected: FAIL + + [Pattern: ["https://{sub{.}}example.com/foo"\] Inputs: ["https://example.com/foo"\]] + expected: FAIL + + [Pattern: ["https://(sub(?:.))?example.com/foo"\] Inputs: ["https://example.com/foo"\]] + expected: FAIL + + [Pattern: ["file:///foo/bar"\] Inputs: ["file:///foo/bar"\]] + expected: FAIL + + [Pattern: ["data:"\] Inputs: ["data:"\]] + expected: FAIL + + [Pattern: ["foo://bar"\] Inputs: ["foo://bad_url_browser_interop"\]] + expected: FAIL + + [Pattern: ["(café)://foo"\] Inputs: undefined] + expected: FAIL + + [Pattern: ["https://example.com/foo?bar#baz"\] Inputs: [{"protocol":"https:","search":"?bar","hash":"#baz","baseURL":"http://example.com/foo"}\]] + expected: FAIL + + [Pattern: [{"protocol":"http{s}?:","search":"?bar","hash":"#baz"}\] Inputs: ["http://example.com/foo?bar#baz"\]] + expected: FAIL + + [Pattern: ["?bar#baz","https://example.com/foo"\] Inputs: ["?bar#baz","https://example.com/foo"\]] + expected: FAIL + + [Pattern: ["?bar","https://example.com/foo#baz"\] Inputs: ["?bar","https://example.com/foo#snafu"\]] + expected: FAIL + + [Pattern: ["#baz","https://example.com/foo?bar"\] Inputs: ["#baz","https://example.com/foo?bar"\]] + expected: FAIL + + [Pattern: ["#baz","https://example.com/foo"\] Inputs: ["#baz","https://example.com/foo"\]] + expected: FAIL + + [Pattern: ["https://foo\\\\:bar@example.com"\] Inputs: ["https://foo:bar@example.com"\]] + expected: FAIL + + [Pattern: ["https://foo@example.com"\] Inputs: ["https://foo@example.com"\]] + expected: FAIL + + [Pattern: ["https://\\\\:bar@example.com"\] Inputs: ["https://:bar@example.com"\]] + expected: FAIL + + [Pattern: ["https://:user::pass@example.com"\] Inputs: ["https://foo:bar@example.com"\]] + expected: FAIL + + [Pattern: ["https\\\\:foo\\\\:bar@example.com"\] Inputs: ["https:foo:bar@example.com"\]] + expected: FAIL + + [Pattern: ["data\\\\:foo\\\\:bar@example.com"\] Inputs: ["data:foo:bar@example.com"\]] + expected: FAIL + + [Pattern: ["https://foo{\\\\:}bar@example.com"\] Inputs: ["https://foo:bar@example.com"\]] + expected: FAIL + + [Pattern: ["data{\\\\:}channel.html","https://example.com"\] Inputs: ["https://example.com/data:channel.html"\]] + expected: FAIL + + [Pattern: ["https://foo{{@}}example.com"\] Inputs: ["https://foo@example.com"\]] + expected: FAIL + + [Pattern: ["https://foo{@example.com"\] Inputs: ["https://foo@example.com"\]] + expected: FAIL + + [Pattern: [{"pathname":"*"}\] Inputs: ["foo","data:data-urls-cannot-be-base-urls"\]] + expected: FAIL + + [Pattern: [{"pathname":"\\\\/bar","baseURL":"https://example.com/foo/"}\] Inputs: [{"pathname":"./bar","baseURL":"https://example.com/foo/"}\]] + expected: FAIL + + [Pattern: [{"pathname":"/foo"},"https://example.com"\] Inputs: undefined] + expected: FAIL + + [Pattern: [{"pathname":":name"}\] Inputs: [{"pathname":"foobar"}\]] + expected: FAIL + + [Pattern: [{"pathname":"/:id/:id"}\] Inputs: undefined] + expected: FAIL + + [Pattern: [{"pathname":":name+"}\] Inputs: [{"pathname":"foobar"}\]] + expected: FAIL + + [Pattern: [{"pathname":"*"}\] Inputs: ["foo","not|a|valid|url"\]] + expected: FAIL + + [Pattern: [{"pathname":":name*"}\] Inputs: [{"pathname":"foobar"}\]] + expected: FAIL + + [Pattern: [{"pathname":"/foo/([^\\\\/\]+?)"}\] Inputs: [{"pathname":"/foo/bar"}\]] + expected: FAIL + + [Pattern: [{"pathname":"","baseURL":"https://example.com"}\] Inputs: [{"pathname":"/","baseURL":"https://example.com"}\]] + expected: FAIL + + [Pattern: [{"pathname":"{/bar}","baseURL":"https://example.com/foo/"}\] Inputs: [{"pathname":"./bar","baseURL":"https://example.com/foo/"}\]] + expected: FAIL + + [Pattern: [{"pathname":"b","baseURL":"https://example.com/foo/"}\] Inputs: [{"pathname":"./b","baseURL":"https://example.com/foo/"}\]] + expected: FAIL + + [Pattern: [{"pathname":"/foo","baseURL":""}\] Inputs: undefined] + expected: FAIL + + [Pattern: ["data\\\\:text/javascript,let x = 100/:tens?5;"\] Inputs: ["data:text/javascript,let x = 100/5;"\]] + expected: FAIL + + [Pattern: ["/foo",""\] Inputs: undefined] + expected: FAIL + + [Pattern: [{"protocol":":name"}\] Inputs: [{"protocol":"foobar"}\]] + expected: FAIL + + [Pattern: [{"protocol":":name*"}\] Inputs: [{"protocol":"foobar"}\]] + expected: FAIL + + [Pattern: [{"protocol":":name+"}\] Inputs: [{"protocol":"foobar"}\]] + expected: FAIL + + [Pattern: ["http://[\\\\:\\\\:a\]/"\] Inputs: ["http://[::a\]/"\]] + expected: FAIL + + [Pattern: ["http://[\\\\:\\\\:1\]:8080/"\] Inputs: ["http://[::1\]:8080/"\]] + expected: FAIL + + [Pattern: ["http://[\\\\:\\\\:1\]/"\] Inputs: ["http://[::1\]/"\]] + expected: FAIL + + [Pattern: ["http://[:address\]/"\] Inputs: ["http://[::1\]/"\]] + expected: FAIL + + [Pattern: ["http://[\\\\:\\\\:AB\\\\::num\]/"\] Inputs: ["http://[::ab:1\]/"\]] + expected: FAIL + + [Pattern: [{"hostname":"[\\\\:\\\\:AB\\\\::num\]"}\] Inputs: [{"hostname":"[::ab:1\]"}\]] + expected: FAIL + + [Pattern: [{"hostname":"[\\\\:\\\\:xY\\\\::num\]"}\] Inputs: undefined] + expected: FAIL + + [Pattern: [{"hostname":"{[\\\\:\\\\:ab\\\\::num\]}"}\] Inputs: [{"hostname":"[::ab:1\]"}\]] + expected: FAIL + + [Pattern: [{"hostname":"{[\\\\:\\\\:fé\\\\::num\]}"}\] Inputs: undefined] + expected: FAIL + + [Pattern: [{"hostname":"{[\\\\:\\\\::num\\\\:1\]}"}\] Inputs: [{"hostname":"[::ab:1\]"}\]] + expected: FAIL + + [Pattern: [{"hostname":"{[\\\\:\\\\::num\\\\:fé\]}"}\] Inputs: undefined] + expected: FAIL + + [Pattern: [{"hostname":"[*\\\\:1\]"}\] Inputs: [{"hostname":"[::ab:1\]"}\]] + expected: FAIL + + [Pattern: [{"hostname":"*\\\\:1\]"}\] Inputs: undefined] + expected: FAIL + + [Pattern: [{"hostname":"bad hostname"}\] Inputs: undefined] + expected: FAIL + + [Pattern: [{"hostname":"bad#hostname"}\] Inputs: undefined] + expected: FAIL + + [Pattern: [{"hostname":"bad%hostname"}\] Inputs: undefined] + expected: FAIL + + [Pattern: [{"hostname":"bad/hostname"}\] Inputs: undefined] + expected: FAIL + + [Pattern: [{"hostname":"bad\\\\:hostname"}\] Inputs: undefined] + expected: FAIL + + [Pattern: [{"hostname":"bad<hostname"}\] Inputs: undefined] + expected: FAIL + + [Pattern: [{"hostname":"bad>hostname"}\] Inputs: undefined] + expected: FAIL + + [Pattern: [{"hostname":"bad?hostname"}\] Inputs: undefined] + expected: FAIL + + [Pattern: [{"hostname":"bad@hostname"}\] Inputs: undefined] + expected: FAIL + + [Pattern: [{"hostname":"bad[hostname"}\] Inputs: undefined] + expected: FAIL + + [Pattern: [{"hostname":"bad\]hostname"}\] Inputs: undefined] + expected: FAIL + + [Pattern: [{"hostname":"bad\\\\\\\\hostname"}\] Inputs: undefined] + expected: FAIL + + [Pattern: [{"hostname":"bad^hostname"}\] Inputs: undefined] + expected: FAIL + + [Pattern: [{"hostname":"bad|hostname"}\] Inputs: undefined] + expected: FAIL + + [Pattern: [{"hostname":"bad\\nhostname"}\] Inputs: undefined] + expected: FAIL + + [Pattern: [{"hostname":"bad\\rhostname"}\] Inputs: undefined] + expected: FAIL + + [Pattern: [{"hostname":"bad\\thostname"}\] Inputs: undefined] + expected: FAIL + + [Pattern: [{}\] Inputs: ["https://example.com/"\]] + expected: FAIL + + [Pattern: [\] Inputs: ["https://example.com/"\]] + expected: FAIL + + [Pattern: [\] Inputs: [{}\]] + expected: FAIL + + [Pattern: [\] Inputs: [\]] + expected: FAIL + + [Pattern: [{"pathname":"{:foo}(barbaz)"}\] Inputs: [{"pathname":"foobarbaz"}\]] + expected: FAIL + + [Pattern: [{"pathname":"{:foo\\\\bar}"}\] Inputs: [{"pathname":"foobar"}\]] + expected: FAIL + + [Pattern: [{"pathname":"{:foo}{(.*)}"}\] Inputs: [{"pathname":"foobarbaz"}\]] + expected: FAIL + + [Pattern: [{"pathname":"(foo)(.*)"}\] Inputs: [{"pathname":"foobarbaz"}\]] + expected: FAIL + + [Pattern: [{"pathname":"{:foo(foo)bar}"}\] Inputs: [{"pathname":"foobar"}\]] + expected: FAIL + + [Pattern: [{"pathname":"{:foo}{bar(.*)}"}\] Inputs: [{"pathname":"foobarbaz"}\]] + expected: FAIL + + [Pattern: [{"pathname":"(foo)?(.*)"}\] Inputs: [{"pathname":"foobarbaz"}\]] + expected: FAIL + + [Pattern: [{"pathname":"{:foo\\\\.bar}"}\] Inputs: [{"pathname":"foo.bar"}\]] + expected: FAIL + + [Pattern: [{"pathname":"{(foo)bar}(.*)"}\] Inputs: [{"pathname":"foobarbaz"}\]] + expected: FAIL + + [Pattern: [{"pathname":"{:foo}?(.*)"}\] Inputs: [{"pathname":"foobarbaz"}\]] + expected: FAIL + + [Pattern: [{"pathname":"{:foo}{(.*)bar}"}\] Inputs: [{"pathname":"foobarbaz"}\]] + expected: FAIL + + [Pattern: [{"pathname":"{:foo}:bar(.*)"}\] Inputs: [{"pathname":"foobarbaz"}\]] + expected: FAIL + + [Pattern: [{"pathname":"{:foo}(.*)"}\] Inputs: [{"pathname":"foobarbaz"}\]] + expected: FAIL + + [Pattern: [{"pathname":":foo{}?bar"}\] Inputs: [{"pathname":"foobar"}\]] + expected: FAIL + + [Pattern: [{"pathname":":foo(baz)(.*)"}\] Inputs: [{"pathname":"bazbar"}\]] + expected: FAIL + + [Pattern: [{"pathname":":foo{}(.*)"}\] Inputs: [{"pathname":"foobar"}\]] + expected: FAIL + + [Pattern: [{"pathname":":foo\\\\bar"}\] Inputs: [{"pathname":"foobar"}\]] + expected: FAIL + + [Pattern: [{"pathname":"*{}**?"}\] Inputs: [{"pathname":"foobar"}\]] + expected: FAIL + + [Pattern: [{"pathname":":foo(baz)bar"}\] Inputs: [{"pathname":"bazbar"}\]] + expected: FAIL + + [Pattern: [{"pathname":"{:foo}bar"}\] Inputs: [{"pathname":"foobar"}\]] + expected: FAIL + + [Pattern: [{"pathname":":foo{}bar"}\] Inputs: [{"pathname":"foobar"}\]] + expected: FAIL + + [Pattern: [{"pathname":"*//*"}\] Inputs: [{"pathname":"foo/bar"}\]] + expected: FAIL + + [Pattern: [{"pathname":"/:foo."}\] Inputs: [{"pathname":"/bar."}\]] + expected: FAIL + + [Pattern: [{"pathname":"*/{*}"}\] Inputs: [{"pathname":"foo/bar"}\]] + expected: FAIL + + [Pattern: [{"pathname":"./foo"}\] Inputs: [{"pathname":"./foo"}\]] + expected: FAIL + + [Pattern: [{"pathname":":foo./"}\] Inputs: [{"pathname":"bar./"}\]] + expected: FAIL + + [Pattern: [{"pathname":"/:foo\\\\bar"}\] Inputs: [{"pathname":"/bazbar"}\]] + expected: FAIL + + [Pattern: [{"pathname":"../foo"}\] Inputs: [{"pathname":"../foo"}\]] + expected: FAIL + + [Pattern: [{"pathname":"/:foo.."}\] Inputs: [{"pathname":"/bar.."}\]] + expected: FAIL + + [Pattern: [{"pathname":":foo../"}\] Inputs: [{"pathname":"bar../"}\]] + expected: FAIL + + [Pattern: [{"pathname":"*\\\\/*"}\] Inputs: [{"pathname":"foo/bar"}\]] + expected: FAIL + + [Pattern: [{"pathname":"*/*"}\] Inputs: [{"pathname":"foo/bar"}\]] + expected: FAIL + + [Pattern: ["https://example.com:8080/foo?bar#baz",{"ignoreCase":true}\] Inputs: [{"pathname":"/FOO","search":"BAR","hash":"BAZ","baseURL":"https://example.com:8080"}\]] + expected: FAIL + + [Pattern: ["/foo?bar#baz","https://example.com:8080",{"ignoreCase":true}\] Inputs: [{"pathname":"/FOO","search":"BAR","hash":"BAZ","baseURL":"https://example.com:8080"}\]] + expected: FAIL + + [Pattern: [{"ignoreCase":true}\] Inputs: [{"pathname":"/FOO/BAR"}\]] + expected: FAIL + + [Pattern: ["/foo?bar#baz",{"ignoreCase":true},"https://example.com:8080"\] Inputs: [{"pathname":"/FOO","search":"BAR","hash":"BAZ","baseURL":"https://example.com:8080"}\]] + expected: FAIL + + [Pattern: [{"pathname":"/foo/bar"},{"ignoreCase":true}\] Inputs: [{"pathname":"/FOO/BAR"}\]] + expected: FAIL + + [Pattern: ["#foo","https://example.com/?q=*&v=?&hmm={}&umm=()"\] Inputs: ["https://example.com/?q=*&v=?&hmm={}&umm=()#foo"\]] + expected: FAIL + + [Pattern: [{"search":"foo","baseURL":"https://example.com/a/+/b"}\] Inputs: [{"search":"foo","baseURL":"https://example.com/a/+/b"}\]] + expected: FAIL + + [Pattern: [{"hash":"foo","baseURL":"https://example.com/?q=*&v=?&hmm={}&umm=()"}\] Inputs: [{"hash":"foo","baseURL":"https://example.com/?q=*&v=?&hmm={}&umm=()"}\]] + expected: FAIL + + +[urlpattern.any.html] + [Pattern: [{"pathname":"/foo/bar"}\] Inputs: [{"pathname":"/foo/bar"}\]] + expected: FAIL + + [Pattern: [{"pathname":"/foo/bar"}\] Inputs: [{"pathname":"/foo/ba"}\]] + expected: FAIL + + [Pattern: [{"pathname":"/foo/bar"}\] Inputs: [{"pathname":"/foo/bar/"}\]] + expected: FAIL + + [Pattern: [{"pathname":"/foo/bar"}\] Inputs: [{"pathname":"/foo/bar/baz"}\]] + expected: FAIL + + [Pattern: [{"pathname":"/foo/bar"}\] Inputs: ["https://example.com/foo/bar"\]] + expected: FAIL + + [Pattern: [{"pathname":"/foo/bar"}\] Inputs: ["https://example.com/foo/bar/baz"\]] + expected: FAIL + + [Pattern: [{"pathname":"/foo/bar"}\] Inputs: [{"hostname":"example.com","pathname":"/foo/bar"}\]] + expected: FAIL + + [Pattern: [{"pathname":"/foo/bar"}\] Inputs: [{"hostname":"example.com","pathname":"/foo/bar/baz"}\]] + expected: FAIL + + [Pattern: [{"pathname":"/foo/bar"}\] Inputs: [{"pathname":"/foo/bar","baseURL":"https://example.com"}\]] + expected: FAIL + + [Pattern: [{"pathname":"/foo/bar"}\] Inputs: [{"pathname":"/foo/bar/baz","baseURL":"https://example.com"}\]] + expected: FAIL + + [Pattern: [{"pathname":"/foo/bar","baseURL":"https://example.com?query#hash"}\] Inputs: [{"pathname":"/foo/bar"}\]] + expected: FAIL + + [Pattern: [{"pathname":"/foo/bar","baseURL":"https://example.com?query#hash"}\] Inputs: [{"hostname":"example.com","pathname":"/foo/bar"}\]] + expected: FAIL + + [Pattern: [{"pathname":"/foo/bar","baseURL":"https://example.com?query#hash"}\] Inputs: [{"protocol":"https","hostname":"example.com","pathname":"/foo/bar"}\]] + expected: FAIL + + [Pattern: [{"pathname":"/foo/bar","baseURL":"https://example.com"}\] Inputs: [{"protocol":"https","hostname":"example.com","pathname":"/foo/bar"}\]] + expected: FAIL + + [Pattern: [{"pathname":"/foo/bar","baseURL":"https://example.com"}\] Inputs: [{"protocol":"https","hostname":"example.com","pathname":"/foo/bar/baz"}\]] + expected: FAIL + + [Pattern: [{"pathname":"/foo/bar","baseURL":"https://example.com?query#hash"}\] Inputs: [{"protocol":"https","hostname":"example.com","pathname":"/foo/bar","search":"otherquery","hash":"otherhash"}\]] + expected: FAIL + + [Pattern: [{"pathname":"/foo/bar","baseURL":"https://example.com"}\] Inputs: [{"protocol":"https","hostname":"example.com","pathname":"/foo/bar","search":"otherquery","hash":"otherhash"}\]] + expected: FAIL + + [Pattern: [{"pathname":"/foo/bar","baseURL":"https://example.com?otherquery#otherhash"}\] Inputs: [{"protocol":"https","hostname":"example.com","pathname":"/foo/bar","search":"otherquery","hash":"otherhash"}\]] + expected: FAIL + + [Pattern: [{"pathname":"/foo/bar","baseURL":"https://example.com?query#hash"}\] Inputs: ["https://example.com/foo/bar"\]] + expected: FAIL + + [Pattern: [{"pathname":"/foo/bar","baseURL":"https://example.com?query#hash"}\] Inputs: ["https://example.com/foo/bar?otherquery#otherhash"\]] + expected: FAIL + + [Pattern: [{"pathname":"/foo/bar","baseURL":"https://example.com?query#hash"}\] Inputs: ["https://example.com/foo/bar?query#hash"\]] + expected: FAIL + + [Pattern: [{"pathname":"/foo/bar","baseURL":"https://example.com?query#hash"}\] Inputs: ["https://example.com/foo/bar/baz"\]] + expected: FAIL + + [Pattern: [{"pathname":"/foo/bar","baseURL":"https://example.com?query#hash"}\] Inputs: ["https://other.com/foo/bar"\]] + expected: FAIL + + [Pattern: [{"pathname":"/foo/bar","baseURL":"https://example.com?query#hash"}\] Inputs: ["http://other.com/foo/bar"\]] + expected: FAIL + + [Pattern: [{"pathname":"/foo/bar","baseURL":"https://example.com?query#hash"}\] Inputs: [{"pathname":"/foo/bar","baseURL":"https://example.com"}\]] + expected: FAIL + + [Pattern: [{"pathname":"/foo/bar","baseURL":"https://example.com?query#hash"}\] Inputs: [{"pathname":"/foo/bar","baseURL":"https://example.com?query#hash"}\]] + expected: FAIL + + [Pattern: [{"pathname":"/foo/bar","baseURL":"https://example.com?query#hash"}\] Inputs: [{"pathname":"/foo/bar/baz","baseURL":"https://example.com"}\]] + expected: FAIL + + [Pattern: [{"pathname":"/foo/bar","baseURL":"https://example.com?query#hash"}\] Inputs: [{"pathname":"/foo/bar","baseURL":"https://other.com"}\]] + expected: FAIL + + [Pattern: [{"pathname":"/foo/bar","baseURL":"https://example.com?query#hash"}\] Inputs: [{"pathname":"/foo/bar","baseURL":"http://example.com"}\]] + expected: FAIL + + [Pattern: [{"pathname":"/foo/:bar"}\] Inputs: [{"pathname":"/foo/bar"}\]] + expected: FAIL + + [Pattern: [{"pathname":"/foo/:bar"}\] Inputs: [{"pathname":"/foo/index.html"}\]] + expected: FAIL + + [Pattern: [{"pathname":"/foo/:bar"}\] Inputs: [{"pathname":"/foo/bar/"}\]] + expected: FAIL + + [Pattern: [{"pathname":"/foo/:bar"}\] Inputs: [{"pathname":"/foo/"}\]] + expected: FAIL + + [Pattern: [{"pathname":"/foo/(.*)"}\] Inputs: [{"pathname":"/foo/bar"}\]] + expected: FAIL + + [Pattern: [{"pathname":"/foo/*"}\] Inputs: [{"pathname":"/foo/bar"}\]] + expected: FAIL + + [Pattern: [{"pathname":"/foo/(.*)"}\] Inputs: [{"pathname":"/foo/bar/baz"}\]] + expected: FAIL + + [Pattern: [{"pathname":"/foo/*"}\] Inputs: [{"pathname":"/foo/bar/baz"}\]] + expected: FAIL + + [Pattern: [{"pathname":"/foo/(.*)"}\] Inputs: [{"pathname":"/foo/"}\]] + expected: FAIL + + [Pattern: [{"pathname":"/foo/*"}\] Inputs: [{"pathname":"/foo/"}\]] + expected: FAIL + + [Pattern: [{"pathname":"/foo/(.*)"}\] Inputs: [{"pathname":"/foo"}\]] + expected: FAIL + + [Pattern: [{"pathname":"/foo/*"}\] Inputs: [{"pathname":"/foo"}\]] + expected: FAIL + + [Pattern: [{"pathname":"/foo/:bar(.*)"}\] Inputs: [{"pathname":"/foo/bar"}\]] + expected: FAIL + + [Pattern: [{"pathname":"/foo/:bar(.*)"}\] Inputs: [{"pathname":"/foo/bar/baz"}\]] + expected: FAIL + + [Pattern: [{"pathname":"/foo/:bar(.*)"}\] Inputs: [{"pathname":"/foo/"}\]] + expected: FAIL + + [Pattern: [{"pathname":"/foo/:bar(.*)"}\] Inputs: [{"pathname":"/foo"}\]] + expected: FAIL + + [Pattern: [{"pathname":"/foo/:bar?"}\] Inputs: [{"pathname":"/foo/bar"}\]] + expected: FAIL + + [Pattern: [{"pathname":"/foo/:bar?"}\] Inputs: [{"pathname":"/foo"}\]] + expected: FAIL + + [Pattern: [{"pathname":"/foo/:bar?"}\] Inputs: [{"pathname":"/foo/"}\]] + expected: FAIL + + [Pattern: [{"pathname":"/foo/:bar?"}\] Inputs: [{"pathname":"/foobar"}\]] + expected: FAIL + + [Pattern: [{"pathname":"/foo/:bar?"}\] Inputs: [{"pathname":"/foo/bar/baz"}\]] + expected: FAIL + + [Pattern: [{"pathname":"/foo/:bar+"}\] Inputs: [{"pathname":"/foo/bar"}\]] + expected: FAIL + + [Pattern: [{"pathname":"/foo/:bar+"}\] Inputs: [{"pathname":"/foo/bar/baz"}\]] + expected: FAIL + + [Pattern: [{"pathname":"/foo/:bar+"}\] Inputs: [{"pathname":"/foo"}\]] + expected: FAIL + + [Pattern: [{"pathname":"/foo/:bar+"}\] Inputs: [{"pathname":"/foo/"}\]] + expected: FAIL + + [Pattern: [{"pathname":"/foo/:bar+"}\] Inputs: [{"pathname":"/foobar"}\]] + expected: FAIL + + [Pattern: [{"pathname":"/foo/:bar*"}\] Inputs: [{"pathname":"/foo/bar"}\]] + expected: FAIL + + [Pattern: [{"pathname":"/foo/:bar*"}\] Inputs: [{"pathname":"/foo/bar/baz"}\]] + expected: FAIL + + [Pattern: [{"pathname":"/foo/:bar*"}\] Inputs: [{"pathname":"/foo"}\]] + expected: FAIL + + [Pattern: [{"pathname":"/foo/:bar*"}\] Inputs: [{"pathname":"/foo/"}\]] + expected: FAIL + + [Pattern: [{"pathname":"/foo/:bar*"}\] Inputs: [{"pathname":"/foobar"}\]] + expected: FAIL + + [Pattern: [{"pathname":"/foo/(.*)?"}\] Inputs: [{"pathname":"/foo/bar"}\]] + expected: FAIL + + [Pattern: [{"pathname":"/foo/*?"}\] Inputs: [{"pathname":"/foo/bar"}\]] + expected: FAIL + + [Pattern: [{"pathname":"/foo/(.*)?"}\] Inputs: [{"pathname":"/foo/bar/baz"}\]] + expected: FAIL + + [Pattern: [{"pathname":"/foo/*?"}\] Inputs: [{"pathname":"/foo/bar/baz"}\]] + expected: FAIL + + [Pattern: [{"pathname":"/foo/(.*)?"}\] Inputs: [{"pathname":"/foo"}\]] + expected: FAIL + + [Pattern: [{"pathname":"/foo/*?"}\] Inputs: [{"pathname":"/foo"}\]] + expected: FAIL + + [Pattern: [{"pathname":"/foo/(.*)?"}\] Inputs: [{"pathname":"/foo/"}\]] + expected: FAIL + + [Pattern: [{"pathname":"/foo/*?"}\] Inputs: [{"pathname":"/foo/"}\]] + expected: FAIL + + [Pattern: [{"pathname":"/foo/(.*)?"}\] Inputs: [{"pathname":"/foobar"}\]] + expected: FAIL + + [Pattern: [{"pathname":"/foo/*?"}\] Inputs: [{"pathname":"/foobar"}\]] + expected: FAIL + + [Pattern: [{"pathname":"/foo/(.*)?"}\] Inputs: [{"pathname":"/fo"}\]] + expected: FAIL + + [Pattern: [{"pathname":"/foo/*?"}\] Inputs: [{"pathname":"/fo"}\]] + expected: FAIL + + [Pattern: [{"pathname":"/foo/(.*)+"}\] Inputs: [{"pathname":"/foo/bar"}\]] + expected: FAIL + + [Pattern: [{"pathname":"/foo/*+"}\] Inputs: [{"pathname":"/foo/bar"}\]] + expected: FAIL + + [Pattern: [{"pathname":"/foo/(.*)+"}\] Inputs: [{"pathname":"/foo/bar/baz"}\]] + expected: FAIL + + [Pattern: [{"pathname":"/foo/*+"}\] Inputs: [{"pathname":"/foo/bar/baz"}\]] + expected: FAIL + + [Pattern: [{"pathname":"/foo/(.*)+"}\] Inputs: [{"pathname":"/foo"}\]] + expected: FAIL + + [Pattern: [{"pathname":"/foo/*+"}\] Inputs: [{"pathname":"/foo"}\]] + expected: FAIL + + [Pattern: [{"pathname":"/foo/(.*)+"}\] Inputs: [{"pathname":"/foo/"}\]] + expected: FAIL + + [Pattern: [{"pathname":"/foo/*+"}\] Inputs: [{"pathname":"/foo/"}\]] + expected: FAIL + + [Pattern: [{"pathname":"/foo/(.*)+"}\] Inputs: [{"pathname":"/foobar"}\]] + expected: FAIL + + [Pattern: [{"pathname":"/foo/*+"}\] Inputs: [{"pathname":"/foobar"}\]] + expected: FAIL + + [Pattern: [{"pathname":"/foo/(.*)+"}\] Inputs: [{"pathname":"/fo"}\]] + expected: FAIL + + [Pattern: [{"pathname":"/foo/*+"}\] Inputs: [{"pathname":"/fo"}\]] + expected: FAIL + + [Pattern: [{"pathname":"/foo/(.*)*"}\] Inputs: [{"pathname":"/foo/bar"}\]] + expected: FAIL + + [Pattern: [{"pathname":"/foo/**"}\] Inputs: [{"pathname":"/foo/bar"}\]] + expected: FAIL + + [Pattern: [{"pathname":"/foo/(.*)*"}\] Inputs: [{"pathname":"/foo/bar/baz"}\]] + expected: FAIL + + [Pattern: [{"pathname":"/foo/**"}\] Inputs: [{"pathname":"/foo/bar/baz"}\]] + expected: FAIL + + [Pattern: [{"pathname":"/foo/(.*)*"}\] Inputs: [{"pathname":"/foo"}\]] + expected: FAIL + + [Pattern: [{"pathname":"/foo/**"}\] Inputs: [{"pathname":"/foo"}\]] + expected: FAIL + + [Pattern: [{"pathname":"/foo/(.*)*"}\] Inputs: [{"pathname":"/foo/"}\]] + expected: FAIL + + [Pattern: [{"pathname":"/foo/**"}\] Inputs: [{"pathname":"/foo/"}\]] + expected: FAIL + + [Pattern: [{"pathname":"/foo/(.*)*"}\] Inputs: [{"pathname":"/foobar"}\]] + expected: FAIL + + [Pattern: [{"pathname":"/foo/**"}\] Inputs: [{"pathname":"/foobar"}\]] + expected: FAIL + + [Pattern: [{"pathname":"/foo/(.*)*"}\] Inputs: [{"pathname":"/fo"}\]] + expected: FAIL + + [Pattern: [{"pathname":"/foo/**"}\] Inputs: [{"pathname":"/fo"}\]] + expected: FAIL + + [Pattern: [{"pathname":"/foo{/bar}"}\] Inputs: [{"pathname":"/foo/bar"}\]] + expected: FAIL + + [Pattern: [{"pathname":"/foo{/bar}"}\] Inputs: [{"pathname":"/foo/bar/baz"}\]] + expected: FAIL + + [Pattern: [{"pathname":"/foo{/bar}"}\] Inputs: [{"pathname":"/foo"}\]] + expected: FAIL + + [Pattern: [{"pathname":"/foo{/bar}"}\] Inputs: [{"pathname":"/foo/"}\]] + expected: FAIL + + [Pattern: [{"pathname":"/foo{/bar}?"}\] Inputs: [{"pathname":"/foo/bar"}\]] + expected: FAIL + + [Pattern: [{"pathname":"/foo{/bar}?"}\] Inputs: [{"pathname":"/foo/bar/baz"}\]] + expected: FAIL + + [Pattern: [{"pathname":"/foo{/bar}?"}\] Inputs: [{"pathname":"/foo"}\]] + expected: FAIL + + [Pattern: [{"pathname":"/foo{/bar}?"}\] Inputs: [{"pathname":"/foo/"}\]] + expected: FAIL + + [Pattern: [{"pathname":"/foo{/bar}+"}\] Inputs: [{"pathname":"/foo/bar"}\]] + expected: FAIL + + [Pattern: [{"pathname":"/foo{/bar}+"}\] Inputs: [{"pathname":"/foo/bar/bar"}\]] + expected: FAIL + + [Pattern: [{"pathname":"/foo{/bar}+"}\] Inputs: [{"pathname":"/foo/bar/baz"}\]] + expected: FAIL + + [Pattern: [{"pathname":"/foo{/bar}+"}\] Inputs: [{"pathname":"/foo"}\]] + expected: FAIL + + [Pattern: [{"pathname":"/foo{/bar}+"}\] Inputs: [{"pathname":"/foo/"}\]] + expected: FAIL + + [Pattern: [{"pathname":"/foo{/bar}*"}\] Inputs: [{"pathname":"/foo/bar"}\]] + expected: FAIL + + [Pattern: [{"pathname":"/foo{/bar}*"}\] Inputs: [{"pathname":"/foo/bar/bar"}\]] + expected: FAIL + + [Pattern: [{"pathname":"/foo{/bar}*"}\] Inputs: [{"pathname":"/foo/bar/baz"}\]] + expected: FAIL + + [Pattern: [{"pathname":"/foo{/bar}*"}\] Inputs: [{"pathname":"/foo"}\]] + expected: FAIL + + [Pattern: [{"pathname":"/foo{/bar}*"}\] Inputs: [{"pathname":"/foo/"}\]] + expected: FAIL + + [Pattern: [{"protocol":"(café)"}\] Inputs: undefined] + expected: FAIL + + [Pattern: [{"username":"(café)"}\] Inputs: undefined] + expected: FAIL + + [Pattern: [{"password":"(café)"}\] Inputs: undefined] + expected: FAIL + + [Pattern: [{"hostname":"(café)"}\] Inputs: undefined] + expected: FAIL + + [Pattern: [{"pathname":"(café)"}\] Inputs: undefined] + expected: FAIL + + [Pattern: [{"search":"(café)"}\] Inputs: undefined] + expected: FAIL + + [Pattern: [{"hash":"(café)"}\] Inputs: undefined] + expected: FAIL + + [Pattern: [{"protocol":":café"}\] Inputs: [{"protocol":"foo"}\]] + expected: FAIL + + [Pattern: [{"username":":café"}\] Inputs: [{"username":"foo"}\]] + expected: FAIL + + [Pattern: [{"password":":café"}\] Inputs: [{"password":"foo"}\]] + expected: FAIL + + [Pattern: [{"hostname":":café"}\] Inputs: [{"hostname":"foo"}\]] + expected: FAIL + + [Pattern: [{"pathname":"/:café"}\] Inputs: [{"pathname":"/foo"}\]] + expected: FAIL + + [Pattern: [{"search":":café"}\] Inputs: [{"search":"foo"}\]] + expected: FAIL + + [Pattern: [{"hash":":café"}\] Inputs: [{"hash":"foo"}\]] + expected: FAIL + + [Pattern: [{"protocol":":℘"}\] Inputs: [{"protocol":"foo"}\]] + expected: FAIL + + [Pattern: [{"username":":℘"}\] Inputs: [{"username":"foo"}\]] + expected: FAIL + + [Pattern: [{"password":":℘"}\] Inputs: [{"password":"foo"}\]] + expected: FAIL + + [Pattern: [{"hostname":":℘"}\] Inputs: [{"hostname":"foo"}\]] + expected: FAIL + + [Pattern: [{"pathname":"/:℘"}\] Inputs: [{"pathname":"/foo"}\]] + expected: FAIL + + [Pattern: [{"search":":℘"}\] Inputs: [{"search":"foo"}\]] + expected: FAIL + + [Pattern: [{"hash":":℘"}\] Inputs: [{"hash":"foo"}\]] + expected: FAIL + + [Pattern: [{"protocol":":㐀"}\] Inputs: [{"protocol":"foo"}\]] + expected: FAIL + + [Pattern: [{"username":":㐀"}\] Inputs: [{"username":"foo"}\]] + expected: FAIL + + [Pattern: [{"password":":㐀"}\] Inputs: [{"password":"foo"}\]] + expected: FAIL + + [Pattern: [{"hostname":":㐀"}\] Inputs: [{"hostname":"foo"}\]] + expected: FAIL + + [Pattern: [{"pathname":"/:㐀"}\] Inputs: [{"pathname":"/foo"}\]] + expected: FAIL + + [Pattern: [{"search":":㐀"}\] Inputs: [{"search":"foo"}\]] + expected: FAIL + + [Pattern: [{"hash":":㐀"}\] Inputs: [{"hash":"foo"}\]] + expected: FAIL + + [Pattern: [{"protocol":"(.*)"}\] Inputs: [{"protocol":"café"}\]] + expected: FAIL + + [Pattern: [{"protocol":"(.*)"}\] Inputs: [{"protocol":"cafe"}\]] + expected: FAIL + + [Pattern: [{"protocol":"foo-bar"}\] Inputs: [{"protocol":"foo-bar"}\]] + expected: FAIL + + [Pattern: [{"username":"caf%C3%A9"}\] Inputs: [{"username":"café"}\]] + expected: FAIL + + [Pattern: [{"username":"café"}\] Inputs: [{"username":"café"}\]] + expected: FAIL + + [Pattern: [{"username":"caf%c3%a9"}\] Inputs: [{"username":"café"}\]] + expected: FAIL + + [Pattern: [{"password":"caf%C3%A9"}\] Inputs: [{"password":"café"}\]] + expected: FAIL + + [Pattern: [{"password":"café"}\] Inputs: [{"password":"café"}\]] + expected: FAIL + + [Pattern: [{"password":"caf%c3%a9"}\] Inputs: [{"password":"café"}\]] + expected: FAIL + + [Pattern: [{"hostname":"xn--caf-dma.com"}\] Inputs: [{"hostname":"café.com"}\]] + expected: FAIL + + [Pattern: [{"hostname":"café.com"}\] Inputs: [{"hostname":"café.com"}\]] + expected: FAIL + + [Pattern: [{"port":""}\] Inputs: [{"protocol":"http","port":"80"}\]] + expected: FAIL + + [Pattern: [{"protocol":"http","port":"80"}\] Inputs: [{"protocol":"http","port":"80"}\]] + expected: FAIL + + [Pattern: [{"protocol":"http","port":"80{20}?"}\] Inputs: [{"protocol":"http","port":"80"}\]] + expected: FAIL + + [Pattern: [{"protocol":"http","port":"80 "}\] Inputs: [{"protocol":"http","port":"80"}\]] + expected: FAIL + + [Pattern: [{"port":"80"}\] Inputs: [{"protocol":"http","port":"80"}\]] + expected: FAIL + + [Pattern: [{"protocol":"http{s}?","port":"80"}\] Inputs: [{"protocol":"http","port":"80"}\]] + expected: FAIL + + [Pattern: [{"port":"80"}\] Inputs: [{"port":"80"}\]] + expected: FAIL + + [Pattern: [{"port":"(.*)"}\] Inputs: [{"port":"invalid80"}\]] + expected: FAIL + + [Pattern: [{"pathname":"/foo/bar"}\] Inputs: [{"pathname":"/foo/./bar"}\]] + expected: FAIL + + [Pattern: [{"pathname":"/foo/baz"}\] Inputs: [{"pathname":"/foo/bar/../baz"}\]] + expected: FAIL + + [Pattern: [{"pathname":"/caf%C3%A9"}\] Inputs: [{"pathname":"/café"}\]] + expected: FAIL + + [Pattern: [{"pathname":"/café"}\] Inputs: [{"pathname":"/café"}\]] + expected: FAIL + + [Pattern: [{"pathname":"/caf%c3%a9"}\] Inputs: [{"pathname":"/café"}\]] + expected: FAIL + + [Pattern: [{"pathname":"/foo/bar"}\] Inputs: [{"pathname":"foo/bar"}\]] + expected: FAIL + + [Pattern: [{"pathname":"/foo/bar"}\] Inputs: [{"pathname":"foo/bar","baseURL":"https://example.com"}\]] + expected: FAIL + + [Pattern: [{"pathname":"/foo/../bar"}\] Inputs: [{"pathname":"/bar"}\]] + expected: FAIL + + [Pattern: [{"pathname":"./foo/bar","baseURL":"https://example.com"}\] Inputs: [{"pathname":"foo/bar","baseURL":"https://example.com"}\]] + expected: FAIL + + [Pattern: [{"pathname":"foo/bar"}\] Inputs: ["https://example.com/foo/bar"\]] + expected: FAIL + + [Pattern: [{"pathname":"foo/bar","baseURL":"https://example.com"}\] Inputs: ["https://example.com/foo/bar"\]] + expected: FAIL + + [Pattern: [{"pathname":":name.html","baseURL":"https://example.com"}\] Inputs: ["https://example.com/foo.html"\]] + expected: FAIL + + [Pattern: [{"search":"q=caf%C3%A9"}\] Inputs: [{"search":"q=café"}\]] + expected: FAIL + + [Pattern: [{"search":"q=café"}\] Inputs: [{"search":"q=café"}\]] + expected: FAIL + + [Pattern: [{"search":"q=caf%c3%a9"}\] Inputs: [{"search":"q=café"}\]] + expected: FAIL + + [Pattern: [{"hash":"caf%C3%A9"}\] Inputs: [{"hash":"café"}\]] + expected: FAIL + + [Pattern: [{"hash":"café"}\] Inputs: [{"hash":"café"}\]] + expected: FAIL + + [Pattern: [{"hash":"caf%c3%a9"}\] Inputs: [{"hash":"café"}\]] + expected: FAIL + + [Pattern: [{"protocol":"about","pathname":"(blank|sourcedoc)"}\] Inputs: ["about:blank"\]] + expected: FAIL + + [Pattern: [{"protocol":"data","pathname":":number([0-9\]+)"}\] Inputs: ["data:8675309"\]] + expected: FAIL + + [Pattern: [{"pathname":"/(\\\\m)"}\] Inputs: undefined] + expected: FAIL + + [Pattern: [{"pathname":"/foo!"}\] Inputs: [{"pathname":"/foo!"}\]] + expected: FAIL + + [Pattern: [{"pathname":"/foo\\\\:"}\] Inputs: [{"pathname":"/foo:"}\]] + expected: FAIL + + [Pattern: [{"pathname":"/foo\\\\{"}\] Inputs: [{"pathname":"/foo{"}\]] + expected: FAIL + + [Pattern: [{"pathname":"/foo\\\\("}\] Inputs: [{"pathname":"/foo("}\]] + expected: FAIL + + [Pattern: [{"protocol":"javascript","pathname":"var x = 1;"}\] Inputs: [{"protocol":"javascript","pathname":"var x = 1;"}\]] + expected: FAIL + + [Pattern: [{"pathname":"var x = 1;"}\] Inputs: [{"protocol":"javascript","pathname":"var x = 1;"}\]] + expected: FAIL + + [Pattern: [{"protocol":"javascript","pathname":"var x = 1;"}\] Inputs: [{"baseURL":"javascript:var x = 1;"}\]] + expected: FAIL + + [Pattern: [{"protocol":"(data|javascript)","pathname":"var x = 1;"}\] Inputs: [{"protocol":"javascript","pathname":"var x = 1;"}\]] + expected: FAIL + + [Pattern: [{"protocol":"(https|javascript)","pathname":"var x = 1;"}\] Inputs: [{"protocol":"javascript","pathname":"var x = 1;"}\]] + expected: FAIL + + [Pattern: [{"pathname":"var x = 1;"}\] Inputs: [{"pathname":"var x = 1;"}\]] + expected: FAIL + + [Pattern: [{"pathname":"/foo/bar"}\] Inputs: ["./foo/bar","https://example.com"\]] + expected: FAIL + + [Pattern: [{"pathname":"/foo/bar"}\] Inputs: [{"pathname":"/foo/bar"},"https://example.com"\]] + expected: FAIL + + [Pattern: ["https://example.com:8080/foo?bar#baz"\] Inputs: [{"pathname":"/foo","search":"bar","hash":"baz","baseURL":"https://example.com:8080"}\]] + expected: FAIL + + [Pattern: ["/foo?bar#baz","https://example.com:8080"\] Inputs: [{"pathname":"/foo","search":"bar","hash":"baz","baseURL":"https://example.com:8080"}\]] + expected: FAIL + + [Pattern: ["/foo"\] Inputs: undefined] + expected: FAIL + + [Pattern: ["example.com/foo"\] Inputs: undefined] + expected: FAIL + + [Pattern: ["http{s}?://{*.}?example.com/:product/:endpoint"\] Inputs: ["https://sub.example.com/foo/bar"\]] + expected: FAIL + + [Pattern: ["https://example.com?foo"\] Inputs: ["https://example.com/?foo"\]] + expected: FAIL + + [Pattern: ["https://example.com#foo"\] Inputs: ["https://example.com/#foo"\]] + expected: FAIL + + [Pattern: ["https://example.com:8080?foo"\] Inputs: ["https://example.com:8080/?foo"\]] + expected: FAIL + + [Pattern: ["https://example.com:8080#foo"\] Inputs: ["https://example.com:8080/#foo"\]] + expected: FAIL + + [Pattern: ["https://example.com/?foo"\] Inputs: ["https://example.com/?foo"\]] + expected: FAIL + + [Pattern: ["https://example.com/#foo"\] Inputs: ["https://example.com/#foo"\]] + expected: FAIL + + [Pattern: ["https://example.com/*?foo"\] Inputs: ["https://example.com/?foo"\]] + expected: FAIL + + [Pattern: ["https://example.com/*\\\\?foo"\] Inputs: ["https://example.com/?foo"\]] + expected: FAIL + + [Pattern: ["https://example.com/:name?foo"\] Inputs: ["https://example.com/bar?foo"\]] + expected: FAIL + + [Pattern: ["https://example.com/:name\\\\?foo"\] Inputs: ["https://example.com/bar?foo"\]] + expected: FAIL + + [Pattern: ["https://example.com/(bar)?foo"\] Inputs: ["https://example.com/bar?foo"\]] + expected: FAIL + + [Pattern: ["https://example.com/(bar)\\\\?foo"\] Inputs: ["https://example.com/bar?foo"\]] + expected: FAIL + + [Pattern: ["https://example.com/{bar}?foo"\] Inputs: ["https://example.com/bar?foo"\]] + expected: FAIL + + [Pattern: ["https://example.com/{bar}\\\\?foo"\] Inputs: ["https://example.com/bar?foo"\]] + expected: FAIL + + [Pattern: ["https://example.com/"\] Inputs: ["https://example.com:8080/"\]] + expected: FAIL + + [Pattern: ["data:foobar"\] Inputs: ["data:foobar"\]] + expected: FAIL + + [Pattern: ["data\\\\:foobar"\] Inputs: ["data:foobar"\]] + expected: FAIL + + [Pattern: ["https://{sub.}?example.com/foo"\] Inputs: ["https://example.com/foo"\]] + expected: FAIL + + [Pattern: ["https://{sub.}?example{.com/}foo"\] Inputs: ["https://example.com/foo"\]] + expected: FAIL + + [Pattern: ["{https://}example.com/foo"\] Inputs: ["https://example.com/foo"\]] + expected: FAIL + + [Pattern: ["https://(sub.)?example.com/foo"\] Inputs: ["https://example.com/foo"\]] + expected: FAIL + + [Pattern: ["https://(sub.)?example(.com/)foo"\] Inputs: ["https://example.com/foo"\]] + expected: FAIL + + [Pattern: ["(https://)example.com/foo"\] Inputs: ["https://example.com/foo"\]] + expected: FAIL + + [Pattern: ["https://{sub{.}}example.com/foo"\] Inputs: ["https://example.com/foo"\]] + expected: FAIL + + [Pattern: ["https://(sub(?:.))?example.com/foo"\] Inputs: ["https://example.com/foo"\]] + expected: FAIL + + [Pattern: ["file:///foo/bar"\] Inputs: ["file:///foo/bar"\]] + expected: FAIL + + [Pattern: ["data:"\] Inputs: ["data:"\]] + expected: FAIL + + [Pattern: ["foo://bar"\] Inputs: ["foo://bad_url_browser_interop"\]] + expected: FAIL + + [Pattern: ["(café)://foo"\] Inputs: undefined] + expected: FAIL + + [Pattern: ["https://example.com/foo?bar#baz"\] Inputs: [{"protocol":"https:","search":"?bar","hash":"#baz","baseURL":"http://example.com/foo"}\]] + expected: FAIL + + [Pattern: [{"protocol":"http{s}?:","search":"?bar","hash":"#baz"}\] Inputs: ["http://example.com/foo?bar#baz"\]] + expected: FAIL + + [Pattern: ["?bar#baz","https://example.com/foo"\] Inputs: ["?bar#baz","https://example.com/foo"\]] + expected: FAIL + + [Pattern: ["?bar","https://example.com/foo#baz"\] Inputs: ["?bar","https://example.com/foo#snafu"\]] + expected: FAIL + + [Pattern: ["#baz","https://example.com/foo?bar"\] Inputs: ["#baz","https://example.com/foo?bar"\]] + expected: FAIL + + [Pattern: ["#baz","https://example.com/foo"\] Inputs: ["#baz","https://example.com/foo"\]] + expected: FAIL + + [Pattern: ["https://foo\\\\:bar@example.com"\] Inputs: ["https://foo:bar@example.com"\]] + expected: FAIL + + [Pattern: ["https://foo@example.com"\] Inputs: ["https://foo@example.com"\]] + expected: FAIL + + [Pattern: ["https://\\\\:bar@example.com"\] Inputs: ["https://:bar@example.com"\]] + expected: FAIL + + [Pattern: ["https://:user::pass@example.com"\] Inputs: ["https://foo:bar@example.com"\]] + expected: FAIL + + [Pattern: ["https\\\\:foo\\\\:bar@example.com"\] Inputs: ["https:foo:bar@example.com"\]] + expected: FAIL + + [Pattern: ["data\\\\:foo\\\\:bar@example.com"\] Inputs: ["data:foo:bar@example.com"\]] + expected: FAIL + + [Pattern: ["https://foo{\\\\:}bar@example.com"\] Inputs: ["https://foo:bar@example.com"\]] + expected: FAIL + + [Pattern: ["data{\\\\:}channel.html","https://example.com"\] Inputs: ["https://example.com/data:channel.html"\]] + expected: FAIL + + [Pattern: ["https://foo{{@}}example.com"\] Inputs: ["https://foo@example.com"\]] + expected: FAIL + + [Pattern: ["https://foo{@example.com"\] Inputs: ["https://foo@example.com"\]] + expected: FAIL + + [Pattern: [{"pathname":"*"}\] Inputs: ["foo","data:data-urls-cannot-be-base-urls"\]] + expected: FAIL + + [Pattern: [{"pathname":"\\\\/bar","baseURL":"https://example.com/foo/"}\] Inputs: [{"pathname":"./bar","baseURL":"https://example.com/foo/"}\]] + expected: FAIL + + [Pattern: [{"pathname":"/foo"},"https://example.com"\] Inputs: undefined] + expected: FAIL + + [Pattern: [{"pathname":":name"}\] Inputs: [{"pathname":"foobar"}\]] + expected: FAIL + + [Pattern: [{"pathname":"/:id/:id"}\] Inputs: undefined] + expected: FAIL + + [Pattern: [{"pathname":":name+"}\] Inputs: [{"pathname":"foobar"}\]] + expected: FAIL + + [Pattern: [{"pathname":"*"}\] Inputs: ["foo","not|a|valid|url"\]] + expected: FAIL + + [Pattern: [{"pathname":":name*"}\] Inputs: [{"pathname":"foobar"}\]] + expected: FAIL + + [Pattern: [{"pathname":"/foo/([^\\\\/\]+?)"}\] Inputs: [{"pathname":"/foo/bar"}\]] + expected: FAIL + + [Pattern: [{"pathname":"","baseURL":"https://example.com"}\] Inputs: [{"pathname":"/","baseURL":"https://example.com"}\]] + expected: FAIL + + [Pattern: [{"pathname":"{/bar}","baseURL":"https://example.com/foo/"}\] Inputs: [{"pathname":"./bar","baseURL":"https://example.com/foo/"}\]] + expected: FAIL + + [Pattern: [{"pathname":"b","baseURL":"https://example.com/foo/"}\] Inputs: [{"pathname":"./b","baseURL":"https://example.com/foo/"}\]] + expected: FAIL + + [Pattern: [{"pathname":"/foo","baseURL":""}\] Inputs: undefined] + expected: FAIL + + [Pattern: ["data\\\\:text/javascript,let x = 100/:tens?5;"\] Inputs: ["data:text/javascript,let x = 100/5;"\]] + expected: FAIL + + [Pattern: ["/foo",""\] Inputs: undefined] + expected: FAIL + + [Pattern: [{"protocol":":name"}\] Inputs: [{"protocol":"foobar"}\]] + expected: FAIL + + [Pattern: [{"protocol":":name*"}\] Inputs: [{"protocol":"foobar"}\]] + expected: FAIL + + [Pattern: [{"protocol":":name+"}\] Inputs: [{"protocol":"foobar"}\]] + expected: FAIL + + [Pattern: ["http://[\\\\:\\\\:a\]/"\] Inputs: ["http://[::a\]/"\]] + expected: FAIL + + [Pattern: ["http://[\\\\:\\\\:1\]:8080/"\] Inputs: ["http://[::1\]:8080/"\]] + expected: FAIL + + [Pattern: ["http://[\\\\:\\\\:1\]/"\] Inputs: ["http://[::1\]/"\]] + expected: FAIL + + [Pattern: ["http://[:address\]/"\] Inputs: ["http://[::1\]/"\]] + expected: FAIL + + [Pattern: ["http://[\\\\:\\\\:AB\\\\::num\]/"\] Inputs: ["http://[::ab:1\]/"\]] + expected: FAIL + + [Pattern: [{"hostname":"[\\\\:\\\\:AB\\\\::num\]"}\] Inputs: [{"hostname":"[::ab:1\]"}\]] + expected: FAIL + + [Pattern: [{"hostname":"[\\\\:\\\\:xY\\\\::num\]"}\] Inputs: undefined] + expected: FAIL + + [Pattern: [{"hostname":"{[\\\\:\\\\:ab\\\\::num\]}"}\] Inputs: [{"hostname":"[::ab:1\]"}\]] + expected: FAIL + + [Pattern: [{"hostname":"{[\\\\:\\\\:fé\\\\::num\]}"}\] Inputs: undefined] + expected: FAIL + + [Pattern: [{"hostname":"{[\\\\:\\\\::num\\\\:1\]}"}\] Inputs: [{"hostname":"[::ab:1\]"}\]] + expected: FAIL + + [Pattern: [{"hostname":"{[\\\\:\\\\::num\\\\:fé\]}"}\] Inputs: undefined] + expected: FAIL + + [Pattern: [{"hostname":"[*\\\\:1\]"}\] Inputs: [{"hostname":"[::ab:1\]"}\]] + expected: FAIL + + [Pattern: [{"hostname":"*\\\\:1\]"}\] Inputs: undefined] + expected: FAIL + + [Pattern: [{"hostname":"bad hostname"}\] Inputs: undefined] + expected: FAIL + + [Pattern: [{"hostname":"bad#hostname"}\] Inputs: undefined] + expected: FAIL + + [Pattern: [{"hostname":"bad%hostname"}\] Inputs: undefined] + expected: FAIL + + [Pattern: [{"hostname":"bad/hostname"}\] Inputs: undefined] + expected: FAIL + + [Pattern: [{"hostname":"bad\\\\:hostname"}\] Inputs: undefined] + expected: FAIL + + [Pattern: [{"hostname":"bad<hostname"}\] Inputs: undefined] + expected: FAIL + + [Pattern: [{"hostname":"bad>hostname"}\] Inputs: undefined] + expected: FAIL + + [Pattern: [{"hostname":"bad?hostname"}\] Inputs: undefined] + expected: FAIL + + [Pattern: [{"hostname":"bad@hostname"}\] Inputs: undefined] + expected: FAIL + + [Pattern: [{"hostname":"bad[hostname"}\] Inputs: undefined] + expected: FAIL + + [Pattern: [{"hostname":"bad\]hostname"}\] Inputs: undefined] + expected: FAIL + + [Pattern: [{"hostname":"bad\\\\\\\\hostname"}\] Inputs: undefined] + expected: FAIL + + [Pattern: [{"hostname":"bad^hostname"}\] Inputs: undefined] + expected: FAIL + + [Pattern: [{"hostname":"bad|hostname"}\] Inputs: undefined] + expected: FAIL + + [Pattern: [{"hostname":"bad\\nhostname"}\] Inputs: undefined] + expected: FAIL + + [Pattern: [{"hostname":"bad\\rhostname"}\] Inputs: undefined] + expected: FAIL + + [Pattern: [{"hostname":"bad\\thostname"}\] Inputs: undefined] + expected: FAIL + + [Pattern: [{}\] Inputs: ["https://example.com/"\]] + expected: FAIL + + [Pattern: [\] Inputs: ["https://example.com/"\]] + expected: FAIL + + [Pattern: [\] Inputs: [{}\]] + expected: FAIL + + [Pattern: [\] Inputs: [\]] + expected: FAIL + + [Pattern: [{"pathname":"{:foo}(barbaz)"}\] Inputs: [{"pathname":"foobarbaz"}\]] + expected: FAIL + + [Pattern: [{"pathname":"{:foo\\\\bar}"}\] Inputs: [{"pathname":"foobar"}\]] + expected: FAIL + + [Pattern: [{"pathname":"{:foo}{(.*)}"}\] Inputs: [{"pathname":"foobarbaz"}\]] + expected: FAIL + + [Pattern: [{"pathname":"(foo)(.*)"}\] Inputs: [{"pathname":"foobarbaz"}\]] + expected: FAIL + + [Pattern: [{"pathname":"{:foo(foo)bar}"}\] Inputs: [{"pathname":"foobar"}\]] + expected: FAIL + + [Pattern: [{"pathname":"{:foo}{bar(.*)}"}\] Inputs: [{"pathname":"foobarbaz"}\]] + expected: FAIL + + [Pattern: [{"pathname":"(foo)?(.*)"}\] Inputs: [{"pathname":"foobarbaz"}\]] + expected: FAIL + + [Pattern: [{"pathname":"{:foo\\\\.bar}"}\] Inputs: [{"pathname":"foo.bar"}\]] + expected: FAIL + + [Pattern: [{"pathname":"{(foo)bar}(.*)"}\] Inputs: [{"pathname":"foobarbaz"}\]] + expected: FAIL + + [Pattern: [{"pathname":"{:foo}?(.*)"}\] Inputs: [{"pathname":"foobarbaz"}\]] + expected: FAIL + + [Pattern: [{"pathname":"{:foo}{(.*)bar}"}\] Inputs: [{"pathname":"foobarbaz"}\]] + expected: FAIL + + [Pattern: [{"pathname":"{:foo}:bar(.*)"}\] Inputs: [{"pathname":"foobarbaz"}\]] + expected: FAIL + + [Pattern: [{"pathname":"{:foo}(.*)"}\] Inputs: [{"pathname":"foobarbaz"}\]] + expected: FAIL + + [Pattern: [{"pathname":":foo{}?bar"}\] Inputs: [{"pathname":"foobar"}\]] + expected: FAIL + + [Pattern: [{"pathname":":foo(baz)(.*)"}\] Inputs: [{"pathname":"bazbar"}\]] + expected: FAIL + + [Pattern: [{"pathname":":foo{}(.*)"}\] Inputs: [{"pathname":"foobar"}\]] + expected: FAIL + + [Pattern: [{"pathname":":foo\\\\bar"}\] Inputs: [{"pathname":"foobar"}\]] + expected: FAIL + + [Pattern: [{"pathname":"*{}**?"}\] Inputs: [{"pathname":"foobar"}\]] + expected: FAIL + + [Pattern: [{"pathname":":foo(baz)bar"}\] Inputs: [{"pathname":"bazbar"}\]] + expected: FAIL + + [Pattern: [{"pathname":"{:foo}bar"}\] Inputs: [{"pathname":"foobar"}\]] + expected: FAIL + + [Pattern: [{"pathname":":foo{}bar"}\] Inputs: [{"pathname":"foobar"}\]] + expected: FAIL + + [Pattern: [{"pathname":"*//*"}\] Inputs: [{"pathname":"foo/bar"}\]] + expected: FAIL + + [Pattern: [{"pathname":"/:foo."}\] Inputs: [{"pathname":"/bar."}\]] + expected: FAIL + + [Pattern: [{"pathname":"*/{*}"}\] Inputs: [{"pathname":"foo/bar"}\]] + expected: FAIL + + [Pattern: [{"pathname":"./foo"}\] Inputs: [{"pathname":"./foo"}\]] + expected: FAIL + + [Pattern: [{"pathname":":foo./"}\] Inputs: [{"pathname":"bar./"}\]] + expected: FAIL + + [Pattern: [{"pathname":"/:foo\\\\bar"}\] Inputs: [{"pathname":"/bazbar"}\]] + expected: FAIL + + [Pattern: [{"pathname":"../foo"}\] Inputs: [{"pathname":"../foo"}\]] + expected: FAIL + + [Pattern: [{"pathname":"/:foo.."}\] Inputs: [{"pathname":"/bar.."}\]] + expected: FAIL + + [Pattern: [{"pathname":":foo../"}\] Inputs: [{"pathname":"bar../"}\]] + expected: FAIL + + [Pattern: [{"pathname":"*\\\\/*"}\] Inputs: [{"pathname":"foo/bar"}\]] + expected: FAIL + + [Pattern: [{"pathname":"*/*"}\] Inputs: [{"pathname":"foo/bar"}\]] + expected: FAIL + + [Pattern: ["https://example.com:8080/foo?bar#baz",{"ignoreCase":true}\] Inputs: [{"pathname":"/FOO","search":"BAR","hash":"BAZ","baseURL":"https://example.com:8080"}\]] + expected: FAIL + + [Pattern: ["/foo?bar#baz","https://example.com:8080",{"ignoreCase":true}\] Inputs: [{"pathname":"/FOO","search":"BAR","hash":"BAZ","baseURL":"https://example.com:8080"}\]] + expected: FAIL + + [Pattern: [{"ignoreCase":true}\] Inputs: [{"pathname":"/FOO/BAR"}\]] + expected: FAIL + + [Pattern: ["/foo?bar#baz",{"ignoreCase":true},"https://example.com:8080"\] Inputs: [{"pathname":"/FOO","search":"BAR","hash":"BAZ","baseURL":"https://example.com:8080"}\]] + expected: FAIL + + [Pattern: [{"pathname":"/foo/bar"},{"ignoreCase":true}\] Inputs: [{"pathname":"/FOO/BAR"}\]] + expected: FAIL + + [Pattern: ["#foo","https://example.com/?q=*&v=?&hmm={}&umm=()"\] Inputs: ["https://example.com/?q=*&v=?&hmm={}&umm=()#foo"\]] + expected: FAIL + + [Pattern: [{"search":"foo","baseURL":"https://example.com/a/+/b"}\] Inputs: [{"search":"foo","baseURL":"https://example.com/a/+/b"}\]] + expected: FAIL + + [Pattern: [{"hash":"foo","baseURL":"https://example.com/?q=*&v=?&hmm={}&umm=()"}\] Inputs: [{"hash":"foo","baseURL":"https://example.com/?q=*&v=?&hmm={}&umm=()"}\]] + expected: FAIL + + +[urlpattern.any.sharedworker.html] + [Pattern: [{"pathname":"/foo/bar"}\] Inputs: [{"pathname":"/foo/bar"}\]] + expected: FAIL + + [Pattern: [{"pathname":"/foo/bar"}\] Inputs: [{"pathname":"/foo/ba"}\]] + expected: FAIL + + [Pattern: [{"pathname":"/foo/bar"}\] Inputs: [{"pathname":"/foo/bar/"}\]] + expected: FAIL + + [Pattern: [{"pathname":"/foo/bar"}\] Inputs: [{"pathname":"/foo/bar/baz"}\]] + expected: FAIL + + [Pattern: [{"pathname":"/foo/bar"}\] Inputs: ["https://example.com/foo/bar"\]] + expected: FAIL + + [Pattern: [{"pathname":"/foo/bar"}\] Inputs: ["https://example.com/foo/bar/baz"\]] + expected: FAIL + + [Pattern: [{"pathname":"/foo/bar"}\] Inputs: [{"hostname":"example.com","pathname":"/foo/bar"}\]] + expected: FAIL + + [Pattern: [{"pathname":"/foo/bar"}\] Inputs: [{"hostname":"example.com","pathname":"/foo/bar/baz"}\]] + expected: FAIL + + [Pattern: [{"pathname":"/foo/bar"}\] Inputs: [{"pathname":"/foo/bar","baseURL":"https://example.com"}\]] + expected: FAIL + + [Pattern: [{"pathname":"/foo/bar"}\] Inputs: [{"pathname":"/foo/bar/baz","baseURL":"https://example.com"}\]] + expected: FAIL + + [Pattern: [{"pathname":"/foo/bar","baseURL":"https://example.com?query#hash"}\] Inputs: [{"pathname":"/foo/bar"}\]] + expected: FAIL + + [Pattern: [{"pathname":"/foo/bar","baseURL":"https://example.com?query#hash"}\] Inputs: [{"hostname":"example.com","pathname":"/foo/bar"}\]] + expected: FAIL + + [Pattern: [{"pathname":"/foo/bar","baseURL":"https://example.com?query#hash"}\] Inputs: [{"protocol":"https","hostname":"example.com","pathname":"/foo/bar"}\]] + expected: FAIL + + [Pattern: [{"pathname":"/foo/bar","baseURL":"https://example.com"}\] Inputs: [{"protocol":"https","hostname":"example.com","pathname":"/foo/bar"}\]] + expected: FAIL + + [Pattern: [{"pathname":"/foo/bar","baseURL":"https://example.com"}\] Inputs: [{"protocol":"https","hostname":"example.com","pathname":"/foo/bar/baz"}\]] + expected: FAIL + + [Pattern: [{"pathname":"/foo/bar","baseURL":"https://example.com?query#hash"}\] Inputs: [{"protocol":"https","hostname":"example.com","pathname":"/foo/bar","search":"otherquery","hash":"otherhash"}\]] + expected: FAIL + + [Pattern: [{"pathname":"/foo/bar","baseURL":"https://example.com"}\] Inputs: [{"protocol":"https","hostname":"example.com","pathname":"/foo/bar","search":"otherquery","hash":"otherhash"}\]] + expected: FAIL + + [Pattern: [{"pathname":"/foo/bar","baseURL":"https://example.com?otherquery#otherhash"}\] Inputs: [{"protocol":"https","hostname":"example.com","pathname":"/foo/bar","search":"otherquery","hash":"otherhash"}\]] + expected: FAIL + + [Pattern: [{"pathname":"/foo/bar","baseURL":"https://example.com?query#hash"}\] Inputs: ["https://example.com/foo/bar"\]] + expected: FAIL + + [Pattern: [{"pathname":"/foo/bar","baseURL":"https://example.com?query#hash"}\] Inputs: ["https://example.com/foo/bar?otherquery#otherhash"\]] + expected: FAIL + + [Pattern: [{"pathname":"/foo/bar","baseURL":"https://example.com?query#hash"}\] Inputs: ["https://example.com/foo/bar?query#hash"\]] + expected: FAIL + + [Pattern: [{"pathname":"/foo/bar","baseURL":"https://example.com?query#hash"}\] Inputs: ["https://example.com/foo/bar/baz"\]] + expected: FAIL + + [Pattern: [{"pathname":"/foo/bar","baseURL":"https://example.com?query#hash"}\] Inputs: ["https://other.com/foo/bar"\]] + expected: FAIL + + [Pattern: [{"pathname":"/foo/bar","baseURL":"https://example.com?query#hash"}\] Inputs: ["http://other.com/foo/bar"\]] + expected: FAIL + + [Pattern: [{"pathname":"/foo/bar","baseURL":"https://example.com?query#hash"}\] Inputs: [{"pathname":"/foo/bar","baseURL":"https://example.com"}\]] + expected: FAIL + + [Pattern: [{"pathname":"/foo/bar","baseURL":"https://example.com?query#hash"}\] Inputs: [{"pathname":"/foo/bar","baseURL":"https://example.com?query#hash"}\]] + expected: FAIL + + [Pattern: [{"pathname":"/foo/bar","baseURL":"https://example.com?query#hash"}\] Inputs: [{"pathname":"/foo/bar/baz","baseURL":"https://example.com"}\]] + expected: FAIL + + [Pattern: [{"pathname":"/foo/bar","baseURL":"https://example.com?query#hash"}\] Inputs: [{"pathname":"/foo/bar","baseURL":"https://other.com"}\]] + expected: FAIL + + [Pattern: [{"pathname":"/foo/bar","baseURL":"https://example.com?query#hash"}\] Inputs: [{"pathname":"/foo/bar","baseURL":"http://example.com"}\]] + expected: FAIL + + [Pattern: [{"pathname":"/foo/:bar"}\] Inputs: [{"pathname":"/foo/bar"}\]] + expected: FAIL + + [Pattern: [{"pathname":"/foo/:bar"}\] Inputs: [{"pathname":"/foo/index.html"}\]] + expected: FAIL + + [Pattern: [{"pathname":"/foo/:bar"}\] Inputs: [{"pathname":"/foo/bar/"}\]] + expected: FAIL + + [Pattern: [{"pathname":"/foo/:bar"}\] Inputs: [{"pathname":"/foo/"}\]] + expected: FAIL + + [Pattern: [{"pathname":"/foo/(.*)"}\] Inputs: [{"pathname":"/foo/bar"}\]] + expected: FAIL + + [Pattern: [{"pathname":"/foo/*"}\] Inputs: [{"pathname":"/foo/bar"}\]] + expected: FAIL + + [Pattern: [{"pathname":"/foo/(.*)"}\] Inputs: [{"pathname":"/foo/bar/baz"}\]] + expected: FAIL + + [Pattern: [{"pathname":"/foo/*"}\] Inputs: [{"pathname":"/foo/bar/baz"}\]] + expected: FAIL + + [Pattern: [{"pathname":"/foo/(.*)"}\] Inputs: [{"pathname":"/foo/"}\]] + expected: FAIL + + [Pattern: [{"pathname":"/foo/*"}\] Inputs: [{"pathname":"/foo/"}\]] + expected: FAIL + + [Pattern: [{"pathname":"/foo/(.*)"}\] Inputs: [{"pathname":"/foo"}\]] + expected: FAIL + + [Pattern: [{"pathname":"/foo/*"}\] Inputs: [{"pathname":"/foo"}\]] + expected: FAIL + + [Pattern: [{"pathname":"/foo/:bar(.*)"}\] Inputs: [{"pathname":"/foo/bar"}\]] + expected: FAIL + + [Pattern: [{"pathname":"/foo/:bar(.*)"}\] Inputs: [{"pathname":"/foo/bar/baz"}\]] + expected: FAIL + + [Pattern: [{"pathname":"/foo/:bar(.*)"}\] Inputs: [{"pathname":"/foo/"}\]] + expected: FAIL + + [Pattern: [{"pathname":"/foo/:bar(.*)"}\] Inputs: [{"pathname":"/foo"}\]] + expected: FAIL + + [Pattern: [{"pathname":"/foo/:bar?"}\] Inputs: [{"pathname":"/foo/bar"}\]] + expected: FAIL + + [Pattern: [{"pathname":"/foo/:bar?"}\] Inputs: [{"pathname":"/foo"}\]] + expected: FAIL + + [Pattern: [{"pathname":"/foo/:bar?"}\] Inputs: [{"pathname":"/foo/"}\]] + expected: FAIL + + [Pattern: [{"pathname":"/foo/:bar?"}\] Inputs: [{"pathname":"/foobar"}\]] + expected: FAIL + + [Pattern: [{"pathname":"/foo/:bar?"}\] Inputs: [{"pathname":"/foo/bar/baz"}\]] + expected: FAIL + + [Pattern: [{"pathname":"/foo/:bar+"}\] Inputs: [{"pathname":"/foo/bar"}\]] + expected: FAIL + + [Pattern: [{"pathname":"/foo/:bar+"}\] Inputs: [{"pathname":"/foo/bar/baz"}\]] + expected: FAIL + + [Pattern: [{"pathname":"/foo/:bar+"}\] Inputs: [{"pathname":"/foo"}\]] + expected: FAIL + + [Pattern: [{"pathname":"/foo/:bar+"}\] Inputs: [{"pathname":"/foo/"}\]] + expected: FAIL + + [Pattern: [{"pathname":"/foo/:bar+"}\] Inputs: [{"pathname":"/foobar"}\]] + expected: FAIL + + [Pattern: [{"pathname":"/foo/:bar*"}\] Inputs: [{"pathname":"/foo/bar"}\]] + expected: FAIL + + [Pattern: [{"pathname":"/foo/:bar*"}\] Inputs: [{"pathname":"/foo/bar/baz"}\]] + expected: FAIL + + [Pattern: [{"pathname":"/foo/:bar*"}\] Inputs: [{"pathname":"/foo"}\]] + expected: FAIL + + [Pattern: [{"pathname":"/foo/:bar*"}\] Inputs: [{"pathname":"/foo/"}\]] + expected: FAIL + + [Pattern: [{"pathname":"/foo/:bar*"}\] Inputs: [{"pathname":"/foobar"}\]] + expected: FAIL + + [Pattern: [{"pathname":"/foo/(.*)?"}\] Inputs: [{"pathname":"/foo/bar"}\]] + expected: FAIL + + [Pattern: [{"pathname":"/foo/*?"}\] Inputs: [{"pathname":"/foo/bar"}\]] + expected: FAIL + + [Pattern: [{"pathname":"/foo/(.*)?"}\] Inputs: [{"pathname":"/foo/bar/baz"}\]] + expected: FAIL + + [Pattern: [{"pathname":"/foo/*?"}\] Inputs: [{"pathname":"/foo/bar/baz"}\]] + expected: FAIL + + [Pattern: [{"pathname":"/foo/(.*)?"}\] Inputs: [{"pathname":"/foo"}\]] + expected: FAIL + + [Pattern: [{"pathname":"/foo/*?"}\] Inputs: [{"pathname":"/foo"}\]] + expected: FAIL + + [Pattern: [{"pathname":"/foo/(.*)?"}\] Inputs: [{"pathname":"/foo/"}\]] + expected: FAIL + + [Pattern: [{"pathname":"/foo/*?"}\] Inputs: [{"pathname":"/foo/"}\]] + expected: FAIL + + [Pattern: [{"pathname":"/foo/(.*)?"}\] Inputs: [{"pathname":"/foobar"}\]] + expected: FAIL + + [Pattern: [{"pathname":"/foo/*?"}\] Inputs: [{"pathname":"/foobar"}\]] + expected: FAIL + + [Pattern: [{"pathname":"/foo/(.*)?"}\] Inputs: [{"pathname":"/fo"}\]] + expected: FAIL + + [Pattern: [{"pathname":"/foo/*?"}\] Inputs: [{"pathname":"/fo"}\]] + expected: FAIL + + [Pattern: [{"pathname":"/foo/(.*)+"}\] Inputs: [{"pathname":"/foo/bar"}\]] + expected: FAIL + + [Pattern: [{"pathname":"/foo/*+"}\] Inputs: [{"pathname":"/foo/bar"}\]] + expected: FAIL + + [Pattern: [{"pathname":"/foo/(.*)+"}\] Inputs: [{"pathname":"/foo/bar/baz"}\]] + expected: FAIL + + [Pattern: [{"pathname":"/foo/*+"}\] Inputs: [{"pathname":"/foo/bar/baz"}\]] + expected: FAIL + + [Pattern: [{"pathname":"/foo/(.*)+"}\] Inputs: [{"pathname":"/foo"}\]] + expected: FAIL + + [Pattern: [{"pathname":"/foo/*+"}\] Inputs: [{"pathname":"/foo"}\]] + expected: FAIL + + [Pattern: [{"pathname":"/foo/(.*)+"}\] Inputs: [{"pathname":"/foo/"}\]] + expected: FAIL + + [Pattern: [{"pathname":"/foo/*+"}\] Inputs: [{"pathname":"/foo/"}\]] + expected: FAIL + + [Pattern: [{"pathname":"/foo/(.*)+"}\] Inputs: [{"pathname":"/foobar"}\]] + expected: FAIL + + [Pattern: [{"pathname":"/foo/*+"}\] Inputs: [{"pathname":"/foobar"}\]] + expected: FAIL + + [Pattern: [{"pathname":"/foo/(.*)+"}\] Inputs: [{"pathname":"/fo"}\]] + expected: FAIL + + [Pattern: [{"pathname":"/foo/*+"}\] Inputs: [{"pathname":"/fo"}\]] + expected: FAIL + + [Pattern: [{"pathname":"/foo/(.*)*"}\] Inputs: [{"pathname":"/foo/bar"}\]] + expected: FAIL + + [Pattern: [{"pathname":"/foo/**"}\] Inputs: [{"pathname":"/foo/bar"}\]] + expected: FAIL + + [Pattern: [{"pathname":"/foo/(.*)*"}\] Inputs: [{"pathname":"/foo/bar/baz"}\]] + expected: FAIL + + [Pattern: [{"pathname":"/foo/**"}\] Inputs: [{"pathname":"/foo/bar/baz"}\]] + expected: FAIL + + [Pattern: [{"pathname":"/foo/(.*)*"}\] Inputs: [{"pathname":"/foo"}\]] + expected: FAIL + + [Pattern: [{"pathname":"/foo/**"}\] Inputs: [{"pathname":"/foo"}\]] + expected: FAIL + + [Pattern: [{"pathname":"/foo/(.*)*"}\] Inputs: [{"pathname":"/foo/"}\]] + expected: FAIL + + [Pattern: [{"pathname":"/foo/**"}\] Inputs: [{"pathname":"/foo/"}\]] + expected: FAIL + + [Pattern: [{"pathname":"/foo/(.*)*"}\] Inputs: [{"pathname":"/foobar"}\]] + expected: FAIL + + [Pattern: [{"pathname":"/foo/**"}\] Inputs: [{"pathname":"/foobar"}\]] + expected: FAIL + + [Pattern: [{"pathname":"/foo/(.*)*"}\] Inputs: [{"pathname":"/fo"}\]] + expected: FAIL + + [Pattern: [{"pathname":"/foo/**"}\] Inputs: [{"pathname":"/fo"}\]] + expected: FAIL + + [Pattern: [{"pathname":"/foo{/bar}"}\] Inputs: [{"pathname":"/foo/bar"}\]] + expected: FAIL + + [Pattern: [{"pathname":"/foo{/bar}"}\] Inputs: [{"pathname":"/foo/bar/baz"}\]] + expected: FAIL + + [Pattern: [{"pathname":"/foo{/bar}"}\] Inputs: [{"pathname":"/foo"}\]] + expected: FAIL + + [Pattern: [{"pathname":"/foo{/bar}"}\] Inputs: [{"pathname":"/foo/"}\]] + expected: FAIL + + [Pattern: [{"pathname":"/foo{/bar}?"}\] Inputs: [{"pathname":"/foo/bar"}\]] + expected: FAIL + + [Pattern: [{"pathname":"/foo{/bar}?"}\] Inputs: [{"pathname":"/foo/bar/baz"}\]] + expected: FAIL + + [Pattern: [{"pathname":"/foo{/bar}?"}\] Inputs: [{"pathname":"/foo"}\]] + expected: FAIL + + [Pattern: [{"pathname":"/foo{/bar}?"}\] Inputs: [{"pathname":"/foo/"}\]] + expected: FAIL + + [Pattern: [{"pathname":"/foo{/bar}+"}\] Inputs: [{"pathname":"/foo/bar"}\]] + expected: FAIL + + [Pattern: [{"pathname":"/foo{/bar}+"}\] Inputs: [{"pathname":"/foo/bar/bar"}\]] + expected: FAIL + + [Pattern: [{"pathname":"/foo{/bar}+"}\] Inputs: [{"pathname":"/foo/bar/baz"}\]] + expected: FAIL + + [Pattern: [{"pathname":"/foo{/bar}+"}\] Inputs: [{"pathname":"/foo"}\]] + expected: FAIL + + [Pattern: [{"pathname":"/foo{/bar}+"}\] Inputs: [{"pathname":"/foo/"}\]] + expected: FAIL + + [Pattern: [{"pathname":"/foo{/bar}*"}\] Inputs: [{"pathname":"/foo/bar"}\]] + expected: FAIL + + [Pattern: [{"pathname":"/foo{/bar}*"}\] Inputs: [{"pathname":"/foo/bar/bar"}\]] + expected: FAIL + + [Pattern: [{"pathname":"/foo{/bar}*"}\] Inputs: [{"pathname":"/foo/bar/baz"}\]] + expected: FAIL + + [Pattern: [{"pathname":"/foo{/bar}*"}\] Inputs: [{"pathname":"/foo"}\]] + expected: FAIL + + [Pattern: [{"pathname":"/foo{/bar}*"}\] Inputs: [{"pathname":"/foo/"}\]] + expected: FAIL + + [Pattern: [{"protocol":"(café)"}\] Inputs: undefined] + expected: FAIL + + [Pattern: [{"username":"(café)"}\] Inputs: undefined] + expected: FAIL + + [Pattern: [{"password":"(café)"}\] Inputs: undefined] + expected: FAIL + + [Pattern: [{"hostname":"(café)"}\] Inputs: undefined] + expected: FAIL + + [Pattern: [{"pathname":"(café)"}\] Inputs: undefined] + expected: FAIL + + [Pattern: [{"search":"(café)"}\] Inputs: undefined] + expected: FAIL + + [Pattern: [{"hash":"(café)"}\] Inputs: undefined] + expected: FAIL + + [Pattern: [{"protocol":":café"}\] Inputs: [{"protocol":"foo"}\]] + expected: FAIL + + [Pattern: [{"username":":café"}\] Inputs: [{"username":"foo"}\]] + expected: FAIL + + [Pattern: [{"password":":café"}\] Inputs: [{"password":"foo"}\]] + expected: FAIL + + [Pattern: [{"hostname":":café"}\] Inputs: [{"hostname":"foo"}\]] + expected: FAIL + + [Pattern: [{"pathname":"/:café"}\] Inputs: [{"pathname":"/foo"}\]] + expected: FAIL + + [Pattern: [{"search":":café"}\] Inputs: [{"search":"foo"}\]] + expected: FAIL + + [Pattern: [{"hash":":café"}\] Inputs: [{"hash":"foo"}\]] + expected: FAIL + + [Pattern: [{"protocol":":℘"}\] Inputs: [{"protocol":"foo"}\]] + expected: FAIL + + [Pattern: [{"username":":℘"}\] Inputs: [{"username":"foo"}\]] + expected: FAIL + + [Pattern: [{"password":":℘"}\] Inputs: [{"password":"foo"}\]] + expected: FAIL + + [Pattern: [{"hostname":":℘"}\] Inputs: [{"hostname":"foo"}\]] + expected: FAIL + + [Pattern: [{"pathname":"/:℘"}\] Inputs: [{"pathname":"/foo"}\]] + expected: FAIL + + [Pattern: [{"search":":℘"}\] Inputs: [{"search":"foo"}\]] + expected: FAIL + + [Pattern: [{"hash":":℘"}\] Inputs: [{"hash":"foo"}\]] + expected: FAIL + + [Pattern: [{"protocol":":㐀"}\] Inputs: [{"protocol":"foo"}\]] + expected: FAIL + + [Pattern: [{"username":":㐀"}\] Inputs: [{"username":"foo"}\]] + expected: FAIL + + [Pattern: [{"password":":㐀"}\] Inputs: [{"password":"foo"}\]] + expected: FAIL + + [Pattern: [{"hostname":":㐀"}\] Inputs: [{"hostname":"foo"}\]] + expected: FAIL + + [Pattern: [{"pathname":"/:㐀"}\] Inputs: [{"pathname":"/foo"}\]] + expected: FAIL + + [Pattern: [{"search":":㐀"}\] Inputs: [{"search":"foo"}\]] + expected: FAIL + + [Pattern: [{"hash":":㐀"}\] Inputs: [{"hash":"foo"}\]] + expected: FAIL + + [Pattern: [{"protocol":"(.*)"}\] Inputs: [{"protocol":"café"}\]] + expected: FAIL + + [Pattern: [{"protocol":"(.*)"}\] Inputs: [{"protocol":"cafe"}\]] + expected: FAIL + + [Pattern: [{"protocol":"foo-bar"}\] Inputs: [{"protocol":"foo-bar"}\]] + expected: FAIL + + [Pattern: [{"username":"caf%C3%A9"}\] Inputs: [{"username":"café"}\]] + expected: FAIL + + [Pattern: [{"username":"café"}\] Inputs: [{"username":"café"}\]] + expected: FAIL + + [Pattern: [{"username":"caf%c3%a9"}\] Inputs: [{"username":"café"}\]] + expected: FAIL + + [Pattern: [{"password":"caf%C3%A9"}\] Inputs: [{"password":"café"}\]] + expected: FAIL + + [Pattern: [{"password":"café"}\] Inputs: [{"password":"café"}\]] + expected: FAIL + + [Pattern: [{"password":"caf%c3%a9"}\] Inputs: [{"password":"café"}\]] + expected: FAIL + + [Pattern: [{"hostname":"xn--caf-dma.com"}\] Inputs: [{"hostname":"café.com"}\]] + expected: FAIL + + [Pattern: [{"hostname":"café.com"}\] Inputs: [{"hostname":"café.com"}\]] + expected: FAIL + + [Pattern: [{"port":""}\] Inputs: [{"protocol":"http","port":"80"}\]] + expected: FAIL + + [Pattern: [{"protocol":"http","port":"80"}\] Inputs: [{"protocol":"http","port":"80"}\]] + expected: FAIL + + [Pattern: [{"protocol":"http","port":"80{20}?"}\] Inputs: [{"protocol":"http","port":"80"}\]] + expected: FAIL + + [Pattern: [{"protocol":"http","port":"80 "}\] Inputs: [{"protocol":"http","port":"80"}\]] + expected: FAIL + + [Pattern: [{"port":"80"}\] Inputs: [{"protocol":"http","port":"80"}\]] + expected: FAIL + + [Pattern: [{"protocol":"http{s}?","port":"80"}\] Inputs: [{"protocol":"http","port":"80"}\]] + expected: FAIL + + [Pattern: [{"port":"80"}\] Inputs: [{"port":"80"}\]] + expected: FAIL + + [Pattern: [{"port":"(.*)"}\] Inputs: [{"port":"invalid80"}\]] + expected: FAIL + + [Pattern: [{"pathname":"/foo/bar"}\] Inputs: [{"pathname":"/foo/./bar"}\]] + expected: FAIL + + [Pattern: [{"pathname":"/foo/baz"}\] Inputs: [{"pathname":"/foo/bar/../baz"}\]] + expected: FAIL + + [Pattern: [{"pathname":"/caf%C3%A9"}\] Inputs: [{"pathname":"/café"}\]] + expected: FAIL + + [Pattern: [{"pathname":"/café"}\] Inputs: [{"pathname":"/café"}\]] + expected: FAIL + + [Pattern: [{"pathname":"/caf%c3%a9"}\] Inputs: [{"pathname":"/café"}\]] + expected: FAIL + + [Pattern: [{"pathname":"/foo/bar"}\] Inputs: [{"pathname":"foo/bar"}\]] + expected: FAIL + + [Pattern: [{"pathname":"/foo/bar"}\] Inputs: [{"pathname":"foo/bar","baseURL":"https://example.com"}\]] + expected: FAIL + + [Pattern: [{"pathname":"/foo/../bar"}\] Inputs: [{"pathname":"/bar"}\]] + expected: FAIL + + [Pattern: [{"pathname":"./foo/bar","baseURL":"https://example.com"}\] Inputs: [{"pathname":"foo/bar","baseURL":"https://example.com"}\]] + expected: FAIL + + [Pattern: [{"pathname":"foo/bar"}\] Inputs: ["https://example.com/foo/bar"\]] + expected: FAIL + + [Pattern: [{"pathname":"foo/bar","baseURL":"https://example.com"}\] Inputs: ["https://example.com/foo/bar"\]] + expected: FAIL + + [Pattern: [{"pathname":":name.html","baseURL":"https://example.com"}\] Inputs: ["https://example.com/foo.html"\]] + expected: FAIL + + [Pattern: [{"search":"q=caf%C3%A9"}\] Inputs: [{"search":"q=café"}\]] + expected: FAIL + + [Pattern: [{"search":"q=café"}\] Inputs: [{"search":"q=café"}\]] + expected: FAIL + + [Pattern: [{"search":"q=caf%c3%a9"}\] Inputs: [{"search":"q=café"}\]] + expected: FAIL + + [Pattern: [{"hash":"caf%C3%A9"}\] Inputs: [{"hash":"café"}\]] + expected: FAIL + + [Pattern: [{"hash":"café"}\] Inputs: [{"hash":"café"}\]] + expected: FAIL + + [Pattern: [{"hash":"caf%c3%a9"}\] Inputs: [{"hash":"café"}\]] + expected: FAIL + + [Pattern: [{"protocol":"about","pathname":"(blank|sourcedoc)"}\] Inputs: ["about:blank"\]] + expected: FAIL + + [Pattern: [{"protocol":"data","pathname":":number([0-9\]+)"}\] Inputs: ["data:8675309"\]] + expected: FAIL + + [Pattern: [{"pathname":"/(\\\\m)"}\] Inputs: undefined] + expected: FAIL + + [Pattern: [{"pathname":"/foo!"}\] Inputs: [{"pathname":"/foo!"}\]] + expected: FAIL + + [Pattern: [{"pathname":"/foo\\\\:"}\] Inputs: [{"pathname":"/foo:"}\]] + expected: FAIL + + [Pattern: [{"pathname":"/foo\\\\{"}\] Inputs: [{"pathname":"/foo{"}\]] + expected: FAIL + + [Pattern: [{"pathname":"/foo\\\\("}\] Inputs: [{"pathname":"/foo("}\]] + expected: FAIL + + [Pattern: [{"protocol":"javascript","pathname":"var x = 1;"}\] Inputs: [{"protocol":"javascript","pathname":"var x = 1;"}\]] + expected: FAIL + + [Pattern: [{"pathname":"var x = 1;"}\] Inputs: [{"protocol":"javascript","pathname":"var x = 1;"}\]] + expected: FAIL + + [Pattern: [{"protocol":"javascript","pathname":"var x = 1;"}\] Inputs: [{"baseURL":"javascript:var x = 1;"}\]] + expected: FAIL + + [Pattern: [{"protocol":"(data|javascript)","pathname":"var x = 1;"}\] Inputs: [{"protocol":"javascript","pathname":"var x = 1;"}\]] + expected: FAIL + + [Pattern: [{"protocol":"(https|javascript)","pathname":"var x = 1;"}\] Inputs: [{"protocol":"javascript","pathname":"var x = 1;"}\]] + expected: FAIL + + [Pattern: [{"pathname":"var x = 1;"}\] Inputs: [{"pathname":"var x = 1;"}\]] + expected: FAIL + + [Pattern: [{"pathname":"/foo/bar"}\] Inputs: ["./foo/bar","https://example.com"\]] + expected: FAIL + + [Pattern: [{"pathname":"/foo/bar"}\] Inputs: [{"pathname":"/foo/bar"},"https://example.com"\]] + expected: FAIL + + [Pattern: ["https://example.com:8080/foo?bar#baz"\] Inputs: [{"pathname":"/foo","search":"bar","hash":"baz","baseURL":"https://example.com:8080"}\]] + expected: FAIL + + [Pattern: ["/foo?bar#baz","https://example.com:8080"\] Inputs: [{"pathname":"/foo","search":"bar","hash":"baz","baseURL":"https://example.com:8080"}\]] + expected: FAIL + + [Pattern: ["/foo"\] Inputs: undefined] + expected: FAIL + + [Pattern: ["example.com/foo"\] Inputs: undefined] + expected: FAIL + + [Pattern: ["http{s}?://{*.}?example.com/:product/:endpoint"\] Inputs: ["https://sub.example.com/foo/bar"\]] + expected: FAIL + + [Pattern: ["https://example.com?foo"\] Inputs: ["https://example.com/?foo"\]] + expected: FAIL + + [Pattern: ["https://example.com#foo"\] Inputs: ["https://example.com/#foo"\]] + expected: FAIL + + [Pattern: ["https://example.com:8080?foo"\] Inputs: ["https://example.com:8080/?foo"\]] + expected: FAIL + + [Pattern: ["https://example.com:8080#foo"\] Inputs: ["https://example.com:8080/#foo"\]] + expected: FAIL + + [Pattern: ["https://example.com/?foo"\] Inputs: ["https://example.com/?foo"\]] + expected: FAIL + + [Pattern: ["https://example.com/#foo"\] Inputs: ["https://example.com/#foo"\]] + expected: FAIL + + [Pattern: ["https://example.com/*?foo"\] Inputs: ["https://example.com/?foo"\]] + expected: FAIL + + [Pattern: ["https://example.com/*\\\\?foo"\] Inputs: ["https://example.com/?foo"\]] + expected: FAIL + + [Pattern: ["https://example.com/:name?foo"\] Inputs: ["https://example.com/bar?foo"\]] + expected: FAIL + + [Pattern: ["https://example.com/:name\\\\?foo"\] Inputs: ["https://example.com/bar?foo"\]] + expected: FAIL + + [Pattern: ["https://example.com/(bar)?foo"\] Inputs: ["https://example.com/bar?foo"\]] + expected: FAIL + + [Pattern: ["https://example.com/(bar)\\\\?foo"\] Inputs: ["https://example.com/bar?foo"\]] + expected: FAIL + + [Pattern: ["https://example.com/{bar}?foo"\] Inputs: ["https://example.com/bar?foo"\]] + expected: FAIL + + [Pattern: ["https://example.com/{bar}\\\\?foo"\] Inputs: ["https://example.com/bar?foo"\]] + expected: FAIL + + [Pattern: ["https://example.com/"\] Inputs: ["https://example.com:8080/"\]] + expected: FAIL + + [Pattern: ["data:foobar"\] Inputs: ["data:foobar"\]] + expected: FAIL + + [Pattern: ["data\\\\:foobar"\] Inputs: ["data:foobar"\]] + expected: FAIL + + [Pattern: ["https://{sub.}?example.com/foo"\] Inputs: ["https://example.com/foo"\]] + expected: FAIL + + [Pattern: ["https://{sub.}?example{.com/}foo"\] Inputs: ["https://example.com/foo"\]] + expected: FAIL + + [Pattern: ["{https://}example.com/foo"\] Inputs: ["https://example.com/foo"\]] + expected: FAIL + + [Pattern: ["https://(sub.)?example.com/foo"\] Inputs: ["https://example.com/foo"\]] + expected: FAIL + + [Pattern: ["https://(sub.)?example(.com/)foo"\] Inputs: ["https://example.com/foo"\]] + expected: FAIL + + [Pattern: ["(https://)example.com/foo"\] Inputs: ["https://example.com/foo"\]] + expected: FAIL + + [Pattern: ["https://{sub{.}}example.com/foo"\] Inputs: ["https://example.com/foo"\]] + expected: FAIL + + [Pattern: ["https://(sub(?:.))?example.com/foo"\] Inputs: ["https://example.com/foo"\]] + expected: FAIL + + [Pattern: ["file:///foo/bar"\] Inputs: ["file:///foo/bar"\]] + expected: FAIL + + [Pattern: ["data:"\] Inputs: ["data:"\]] + expected: FAIL + + [Pattern: ["foo://bar"\] Inputs: ["foo://bad_url_browser_interop"\]] + expected: FAIL + + [Pattern: ["(café)://foo"\] Inputs: undefined] + expected: FAIL + + [Pattern: ["https://example.com/foo?bar#baz"\] Inputs: [{"protocol":"https:","search":"?bar","hash":"#baz","baseURL":"http://example.com/foo"}\]] + expected: FAIL + + [Pattern: [{"protocol":"http{s}?:","search":"?bar","hash":"#baz"}\] Inputs: ["http://example.com/foo?bar#baz"\]] + expected: FAIL + + [Pattern: ["?bar#baz","https://example.com/foo"\] Inputs: ["?bar#baz","https://example.com/foo"\]] + expected: FAIL + + [Pattern: ["?bar","https://example.com/foo#baz"\] Inputs: ["?bar","https://example.com/foo#snafu"\]] + expected: FAIL + + [Pattern: ["#baz","https://example.com/foo?bar"\] Inputs: ["#baz","https://example.com/foo?bar"\]] + expected: FAIL + + [Pattern: ["#baz","https://example.com/foo"\] Inputs: ["#baz","https://example.com/foo"\]] + expected: FAIL + + [Pattern: ["https://foo\\\\:bar@example.com"\] Inputs: ["https://foo:bar@example.com"\]] + expected: FAIL + + [Pattern: ["https://foo@example.com"\] Inputs: ["https://foo@example.com"\]] + expected: FAIL + + [Pattern: ["https://\\\\:bar@example.com"\] Inputs: ["https://:bar@example.com"\]] + expected: FAIL + + [Pattern: ["https://:user::pass@example.com"\] Inputs: ["https://foo:bar@example.com"\]] + expected: FAIL + + [Pattern: ["https\\\\:foo\\\\:bar@example.com"\] Inputs: ["https:foo:bar@example.com"\]] + expected: FAIL + + [Pattern: ["data\\\\:foo\\\\:bar@example.com"\] Inputs: ["data:foo:bar@example.com"\]] + expected: FAIL + + [Pattern: ["https://foo{\\\\:}bar@example.com"\] Inputs: ["https://foo:bar@example.com"\]] + expected: FAIL + + [Pattern: ["data{\\\\:}channel.html","https://example.com"\] Inputs: ["https://example.com/data:channel.html"\]] + expected: FAIL + + [Pattern: ["https://foo{{@}}example.com"\] Inputs: ["https://foo@example.com"\]] + expected: FAIL + + [Pattern: ["https://foo{@example.com"\] Inputs: ["https://foo@example.com"\]] + expected: FAIL + + [Pattern: [{"pathname":"*"}\] Inputs: ["foo","data:data-urls-cannot-be-base-urls"\]] + expected: FAIL + + [Pattern: [{"pathname":"\\\\/bar","baseURL":"https://example.com/foo/"}\] Inputs: [{"pathname":"./bar","baseURL":"https://example.com/foo/"}\]] + expected: FAIL + + [Pattern: [{"pathname":"/foo"},"https://example.com"\] Inputs: undefined] + expected: FAIL + + [Pattern: [{"pathname":":name"}\] Inputs: [{"pathname":"foobar"}\]] + expected: FAIL + + [Pattern: [{"pathname":"/:id/:id"}\] Inputs: undefined] + expected: FAIL + + [Pattern: [{"pathname":":name+"}\] Inputs: [{"pathname":"foobar"}\]] + expected: FAIL + + [Pattern: [{"pathname":"*"}\] Inputs: ["foo","not|a|valid|url"\]] + expected: FAIL + + [Pattern: [{"pathname":":name*"}\] Inputs: [{"pathname":"foobar"}\]] + expected: FAIL + + [Pattern: [{"pathname":"/foo/([^\\\\/\]+?)"}\] Inputs: [{"pathname":"/foo/bar"}\]] + expected: FAIL + + [Pattern: [{"pathname":"","baseURL":"https://example.com"}\] Inputs: [{"pathname":"/","baseURL":"https://example.com"}\]] + expected: FAIL + + [Pattern: [{"pathname":"{/bar}","baseURL":"https://example.com/foo/"}\] Inputs: [{"pathname":"./bar","baseURL":"https://example.com/foo/"}\]] + expected: FAIL + + [Pattern: [{"pathname":"b","baseURL":"https://example.com/foo/"}\] Inputs: [{"pathname":"./b","baseURL":"https://example.com/foo/"}\]] + expected: FAIL + + [Pattern: [{"pathname":"/foo","baseURL":""}\] Inputs: undefined] + expected: FAIL + + [Pattern: ["data\\\\:text/javascript,let x = 100/:tens?5;"\] Inputs: ["data:text/javascript,let x = 100/5;"\]] + expected: FAIL + + [Pattern: ["/foo",""\] Inputs: undefined] + expected: FAIL + + [Pattern: [{"protocol":":name"}\] Inputs: [{"protocol":"foobar"}\]] + expected: FAIL + + [Pattern: [{"protocol":":name*"}\] Inputs: [{"protocol":"foobar"}\]] + expected: FAIL + + [Pattern: [{"protocol":":name+"}\] Inputs: [{"protocol":"foobar"}\]] + expected: FAIL + + [Pattern: ["http://[\\\\:\\\\:a\]/"\] Inputs: ["http://[::a\]/"\]] + expected: FAIL + + [Pattern: ["http://[\\\\:\\\\:1\]:8080/"\] Inputs: ["http://[::1\]:8080/"\]] + expected: FAIL + + [Pattern: ["http://[\\\\:\\\\:1\]/"\] Inputs: ["http://[::1\]/"\]] + expected: FAIL + + [Pattern: ["http://[:address\]/"\] Inputs: ["http://[::1\]/"\]] + expected: FAIL + + [Pattern: ["http://[\\\\:\\\\:AB\\\\::num\]/"\] Inputs: ["http://[::ab:1\]/"\]] + expected: FAIL + + [Pattern: [{"hostname":"[\\\\:\\\\:AB\\\\::num\]"}\] Inputs: [{"hostname":"[::ab:1\]"}\]] + expected: FAIL + + [Pattern: [{"hostname":"[\\\\:\\\\:xY\\\\::num\]"}\] Inputs: undefined] + expected: FAIL + + [Pattern: [{"hostname":"{[\\\\:\\\\:ab\\\\::num\]}"}\] Inputs: [{"hostname":"[::ab:1\]"}\]] + expected: FAIL + + [Pattern: [{"hostname":"{[\\\\:\\\\:fé\\\\::num\]}"}\] Inputs: undefined] + expected: FAIL + + [Pattern: [{"hostname":"{[\\\\:\\\\::num\\\\:1\]}"}\] Inputs: [{"hostname":"[::ab:1\]"}\]] + expected: FAIL + + [Pattern: [{"hostname":"{[\\\\:\\\\::num\\\\:fé\]}"}\] Inputs: undefined] + expected: FAIL + + [Pattern: [{"hostname":"[*\\\\:1\]"}\] Inputs: [{"hostname":"[::ab:1\]"}\]] + expected: FAIL + + [Pattern: [{"hostname":"*\\\\:1\]"}\] Inputs: undefined] + expected: FAIL + + [Pattern: [{"hostname":"bad hostname"}\] Inputs: undefined] + expected: FAIL + + [Pattern: [{"hostname":"bad#hostname"}\] Inputs: undefined] + expected: FAIL + + [Pattern: [{"hostname":"bad%hostname"}\] Inputs: undefined] + expected: FAIL + + [Pattern: [{"hostname":"bad/hostname"}\] Inputs: undefined] + expected: FAIL + + [Pattern: [{"hostname":"bad\\\\:hostname"}\] Inputs: undefined] + expected: FAIL + + [Pattern: [{"hostname":"bad<hostname"}\] Inputs: undefined] + expected: FAIL + + [Pattern: [{"hostname":"bad>hostname"}\] Inputs: undefined] + expected: FAIL + + [Pattern: [{"hostname":"bad?hostname"}\] Inputs: undefined] + expected: FAIL + + [Pattern: [{"hostname":"bad@hostname"}\] Inputs: undefined] + expected: FAIL + + [Pattern: [{"hostname":"bad[hostname"}\] Inputs: undefined] + expected: FAIL + + [Pattern: [{"hostname":"bad\]hostname"}\] Inputs: undefined] + expected: FAIL + + [Pattern: [{"hostname":"bad\\\\\\\\hostname"}\] Inputs: undefined] + expected: FAIL + + [Pattern: [{"hostname":"bad^hostname"}\] Inputs: undefined] + expected: FAIL + + [Pattern: [{"hostname":"bad|hostname"}\] Inputs: undefined] + expected: FAIL + + [Pattern: [{"hostname":"bad\\nhostname"}\] Inputs: undefined] + expected: FAIL + + [Pattern: [{"hostname":"bad\\rhostname"}\] Inputs: undefined] + expected: FAIL + + [Pattern: [{"hostname":"bad\\thostname"}\] Inputs: undefined] + expected: FAIL + + [Pattern: [{}\] Inputs: ["https://example.com/"\]] + expected: FAIL + + [Pattern: [\] Inputs: ["https://example.com/"\]] + expected: FAIL + + [Pattern: [\] Inputs: [{}\]] + expected: FAIL + + [Pattern: [\] Inputs: [\]] + expected: FAIL + + [Pattern: [{"pathname":"{:foo}(barbaz)"}\] Inputs: [{"pathname":"foobarbaz"}\]] + expected: FAIL + + [Pattern: [{"pathname":"{:foo\\\\bar}"}\] Inputs: [{"pathname":"foobar"}\]] + expected: FAIL + + [Pattern: [{"pathname":"{:foo}{(.*)}"}\] Inputs: [{"pathname":"foobarbaz"}\]] + expected: FAIL + + [Pattern: [{"pathname":"(foo)(.*)"}\] Inputs: [{"pathname":"foobarbaz"}\]] + expected: FAIL + + [Pattern: [{"pathname":"{:foo(foo)bar}"}\] Inputs: [{"pathname":"foobar"}\]] + expected: FAIL + + [Pattern: [{"pathname":"{:foo}{bar(.*)}"}\] Inputs: [{"pathname":"foobarbaz"}\]] + expected: FAIL + + [Pattern: [{"pathname":"(foo)?(.*)"}\] Inputs: [{"pathname":"foobarbaz"}\]] + expected: FAIL + + [Pattern: [{"pathname":"{:foo\\\\.bar}"}\] Inputs: [{"pathname":"foo.bar"}\]] + expected: FAIL + + [Pattern: [{"pathname":"{(foo)bar}(.*)"}\] Inputs: [{"pathname":"foobarbaz"}\]] + expected: FAIL + + [Pattern: [{"pathname":"{:foo}?(.*)"}\] Inputs: [{"pathname":"foobarbaz"}\]] + expected: FAIL + + [Pattern: [{"pathname":"{:foo}{(.*)bar}"}\] Inputs: [{"pathname":"foobarbaz"}\]] + expected: FAIL + + [Pattern: [{"pathname":"{:foo}:bar(.*)"}\] Inputs: [{"pathname":"foobarbaz"}\]] + expected: FAIL + + [Pattern: [{"pathname":"{:foo}(.*)"}\] Inputs: [{"pathname":"foobarbaz"}\]] + expected: FAIL + + [Pattern: [{"pathname":":foo{}?bar"}\] Inputs: [{"pathname":"foobar"}\]] + expected: FAIL + + [Pattern: [{"pathname":":foo(baz)(.*)"}\] Inputs: [{"pathname":"bazbar"}\]] + expected: FAIL + + [Pattern: [{"pathname":":foo{}(.*)"}\] Inputs: [{"pathname":"foobar"}\]] + expected: FAIL + + [Pattern: [{"pathname":":foo\\\\bar"}\] Inputs: [{"pathname":"foobar"}\]] + expected: FAIL + + [Pattern: [{"pathname":"*{}**?"}\] Inputs: [{"pathname":"foobar"}\]] + expected: FAIL + + [Pattern: [{"pathname":":foo(baz)bar"}\] Inputs: [{"pathname":"bazbar"}\]] + expected: FAIL + + [Pattern: [{"pathname":"{:foo}bar"}\] Inputs: [{"pathname":"foobar"}\]] + expected: FAIL + + [Pattern: [{"pathname":":foo{}bar"}\] Inputs: [{"pathname":"foobar"}\]] + expected: FAIL + + [Pattern: [{"pathname":"*//*"}\] Inputs: [{"pathname":"foo/bar"}\]] + expected: FAIL + + [Pattern: [{"pathname":"/:foo."}\] Inputs: [{"pathname":"/bar."}\]] + expected: FAIL + + [Pattern: [{"pathname":"*/{*}"}\] Inputs: [{"pathname":"foo/bar"}\]] + expected: FAIL + + [Pattern: [{"pathname":"./foo"}\] Inputs: [{"pathname":"./foo"}\]] + expected: FAIL + + [Pattern: [{"pathname":":foo./"}\] Inputs: [{"pathname":"bar./"}\]] + expected: FAIL + + [Pattern: [{"pathname":"/:foo\\\\bar"}\] Inputs: [{"pathname":"/bazbar"}\]] + expected: FAIL + + [Pattern: [{"pathname":"../foo"}\] Inputs: [{"pathname":"../foo"}\]] + expected: FAIL + + [Pattern: [{"pathname":"/:foo.."}\] Inputs: [{"pathname":"/bar.."}\]] + expected: FAIL + + [Pattern: [{"pathname":":foo../"}\] Inputs: [{"pathname":"bar../"}\]] + expected: FAIL + + [Pattern: [{"pathname":"*\\\\/*"}\] Inputs: [{"pathname":"foo/bar"}\]] + expected: FAIL + + [Pattern: [{"pathname":"*/*"}\] Inputs: [{"pathname":"foo/bar"}\]] + expected: FAIL + + [Pattern: ["https://example.com:8080/foo?bar#baz",{"ignoreCase":true}\] Inputs: [{"pathname":"/FOO","search":"BAR","hash":"BAZ","baseURL":"https://example.com:8080"}\]] + expected: FAIL + + [Pattern: ["/foo?bar#baz","https://example.com:8080",{"ignoreCase":true}\] Inputs: [{"pathname":"/FOO","search":"BAR","hash":"BAZ","baseURL":"https://example.com:8080"}\]] + expected: FAIL + + [Pattern: [{"ignoreCase":true}\] Inputs: [{"pathname":"/FOO/BAR"}\]] + expected: FAIL + + [Pattern: ["/foo?bar#baz",{"ignoreCase":true},"https://example.com:8080"\] Inputs: [{"pathname":"/FOO","search":"BAR","hash":"BAZ","baseURL":"https://example.com:8080"}\]] + expected: FAIL + + [Pattern: [{"pathname":"/foo/bar"},{"ignoreCase":true}\] Inputs: [{"pathname":"/FOO/BAR"}\]] + expected: FAIL + + [Pattern: ["#foo","https://example.com/?q=*&v=?&hmm={}&umm=()"\] Inputs: ["https://example.com/?q=*&v=?&hmm={}&umm=()#foo"\]] + expected: FAIL + + [Pattern: [{"search":"foo","baseURL":"https://example.com/a/+/b"}\] Inputs: [{"search":"foo","baseURL":"https://example.com/a/+/b"}\]] + expected: FAIL + + [Pattern: [{"hash":"foo","baseURL":"https://example.com/?q=*&v=?&hmm={}&umm=()"}\] Inputs: [{"hash":"foo","baseURL":"https://example.com/?q=*&v=?&hmm={}&umm=()"}\]] + expected: FAIL + + +[urlpattern.any.serviceworker.html] + expected: + if (processor == "x86") and (os == "win") and not debug: [OK, TIMEOUT] + [Pattern: [{"pathname":"/foo/bar"}\] Inputs: [{"pathname":"/foo/bar"}\]] + expected: FAIL + + [Pattern: [{"pathname":"/foo/bar"}\] Inputs: [{"pathname":"/foo/ba"}\]] + expected: FAIL + + [Pattern: [{"pathname":"/foo/bar"}\] Inputs: [{"pathname":"/foo/bar/"}\]] + expected: FAIL + + [Pattern: [{"pathname":"/foo/bar"}\] Inputs: [{"pathname":"/foo/bar/baz"}\]] + expected: FAIL + + [Pattern: [{"pathname":"/foo/bar"}\] Inputs: ["https://example.com/foo/bar"\]] + expected: FAIL + + [Pattern: [{"pathname":"/foo/bar"}\] Inputs: ["https://example.com/foo/bar/baz"\]] + expected: FAIL + + [Pattern: [{"pathname":"/foo/bar"}\] Inputs: [{"hostname":"example.com","pathname":"/foo/bar"}\]] + expected: FAIL + + [Pattern: [{"pathname":"/foo/bar"}\] Inputs: [{"hostname":"example.com","pathname":"/foo/bar/baz"}\]] + expected: FAIL + + [Pattern: [{"pathname":"/foo/bar"}\] Inputs: [{"pathname":"/foo/bar","baseURL":"https://example.com"}\]] + expected: FAIL + + [Pattern: [{"pathname":"/foo/bar"}\] Inputs: [{"pathname":"/foo/bar/baz","baseURL":"https://example.com"}\]] + expected: FAIL + + [Pattern: [{"pathname":"/foo/bar","baseURL":"https://example.com?query#hash"}\] Inputs: [{"pathname":"/foo/bar"}\]] + expected: FAIL + + [Pattern: [{"pathname":"/foo/bar","baseURL":"https://example.com?query#hash"}\] Inputs: [{"hostname":"example.com","pathname":"/foo/bar"}\]] + expected: FAIL + + [Pattern: [{"pathname":"/foo/bar","baseURL":"https://example.com?query#hash"}\] Inputs: [{"protocol":"https","hostname":"example.com","pathname":"/foo/bar"}\]] + expected: FAIL + + [Pattern: [{"pathname":"/foo/bar","baseURL":"https://example.com"}\] Inputs: [{"protocol":"https","hostname":"example.com","pathname":"/foo/bar"}\]] + expected: FAIL + + [Pattern: [{"pathname":"/foo/bar","baseURL":"https://example.com"}\] Inputs: [{"protocol":"https","hostname":"example.com","pathname":"/foo/bar/baz"}\]] + expected: FAIL + + [Pattern: [{"pathname":"/foo/bar","baseURL":"https://example.com?query#hash"}\] Inputs: [{"protocol":"https","hostname":"example.com","pathname":"/foo/bar","search":"otherquery","hash":"otherhash"}\]] + expected: FAIL + + [Pattern: [{"pathname":"/foo/bar","baseURL":"https://example.com"}\] Inputs: [{"protocol":"https","hostname":"example.com","pathname":"/foo/bar","search":"otherquery","hash":"otherhash"}\]] + expected: FAIL + + [Pattern: [{"pathname":"/foo/bar","baseURL":"https://example.com?otherquery#otherhash"}\] Inputs: [{"protocol":"https","hostname":"example.com","pathname":"/foo/bar","search":"otherquery","hash":"otherhash"}\]] + expected: FAIL + + [Pattern: [{"pathname":"/foo/bar","baseURL":"https://example.com?query#hash"}\] Inputs: ["https://example.com/foo/bar"\]] + expected: FAIL + + [Pattern: [{"pathname":"/foo/bar","baseURL":"https://example.com?query#hash"}\] Inputs: ["https://example.com/foo/bar?otherquery#otherhash"\]] + expected: FAIL + + [Pattern: [{"pathname":"/foo/bar","baseURL":"https://example.com?query#hash"}\] Inputs: ["https://example.com/foo/bar?query#hash"\]] + expected: FAIL + + [Pattern: [{"pathname":"/foo/bar","baseURL":"https://example.com?query#hash"}\] Inputs: ["https://example.com/foo/bar/baz"\]] + expected: FAIL + + [Pattern: [{"pathname":"/foo/bar","baseURL":"https://example.com?query#hash"}\] Inputs: ["https://other.com/foo/bar"\]] + expected: FAIL + + [Pattern: [{"pathname":"/foo/bar","baseURL":"https://example.com?query#hash"}\] Inputs: ["http://other.com/foo/bar"\]] + expected: FAIL + + [Pattern: [{"pathname":"/foo/bar","baseURL":"https://example.com?query#hash"}\] Inputs: [{"pathname":"/foo/bar","baseURL":"https://example.com"}\]] + expected: FAIL + + [Pattern: [{"pathname":"/foo/bar","baseURL":"https://example.com?query#hash"}\] Inputs: [{"pathname":"/foo/bar","baseURL":"https://example.com?query#hash"}\]] + expected: FAIL + + [Pattern: [{"pathname":"/foo/bar","baseURL":"https://example.com?query#hash"}\] Inputs: [{"pathname":"/foo/bar/baz","baseURL":"https://example.com"}\]] + expected: FAIL + + [Pattern: [{"pathname":"/foo/bar","baseURL":"https://example.com?query#hash"}\] Inputs: [{"pathname":"/foo/bar","baseURL":"https://other.com"}\]] + expected: FAIL + + [Pattern: [{"pathname":"/foo/bar","baseURL":"https://example.com?query#hash"}\] Inputs: [{"pathname":"/foo/bar","baseURL":"http://example.com"}\]] + expected: FAIL + + [Pattern: [{"pathname":"/foo/:bar"}\] Inputs: [{"pathname":"/foo/bar"}\]] + expected: FAIL + + [Pattern: [{"pathname":"/foo/:bar"}\] Inputs: [{"pathname":"/foo/index.html"}\]] + expected: FAIL + + [Pattern: [{"pathname":"/foo/:bar"}\] Inputs: [{"pathname":"/foo/bar/"}\]] + expected: FAIL + + [Pattern: [{"pathname":"/foo/:bar"}\] Inputs: [{"pathname":"/foo/"}\]] + expected: FAIL + + [Pattern: [{"pathname":"/foo/(.*)"}\] Inputs: [{"pathname":"/foo/bar"}\]] + expected: FAIL + + [Pattern: [{"pathname":"/foo/*"}\] Inputs: [{"pathname":"/foo/bar"}\]] + expected: FAIL + + [Pattern: [{"pathname":"/foo/(.*)"}\] Inputs: [{"pathname":"/foo/bar/baz"}\]] + expected: FAIL + + [Pattern: [{"pathname":"/foo/*"}\] Inputs: [{"pathname":"/foo/bar/baz"}\]] + expected: FAIL + + [Pattern: [{"pathname":"/foo/(.*)"}\] Inputs: [{"pathname":"/foo/"}\]] + expected: FAIL + + [Pattern: [{"pathname":"/foo/*"}\] Inputs: [{"pathname":"/foo/"}\]] + expected: FAIL + + [Pattern: [{"pathname":"/foo/(.*)"}\] Inputs: [{"pathname":"/foo"}\]] + expected: FAIL + + [Pattern: [{"pathname":"/foo/*"}\] Inputs: [{"pathname":"/foo"}\]] + expected: FAIL + + [Pattern: [{"pathname":"/foo/:bar(.*)"}\] Inputs: [{"pathname":"/foo/bar"}\]] + expected: FAIL + + [Pattern: [{"pathname":"/foo/:bar(.*)"}\] Inputs: [{"pathname":"/foo/bar/baz"}\]] + expected: FAIL + + [Pattern: [{"pathname":"/foo/:bar(.*)"}\] Inputs: [{"pathname":"/foo/"}\]] + expected: FAIL + + [Pattern: [{"pathname":"/foo/:bar(.*)"}\] Inputs: [{"pathname":"/foo"}\]] + expected: FAIL + + [Pattern: [{"pathname":"/foo/:bar?"}\] Inputs: [{"pathname":"/foo/bar"}\]] + expected: FAIL + + [Pattern: [{"pathname":"/foo/:bar?"}\] Inputs: [{"pathname":"/foo"}\]] + expected: FAIL + + [Pattern: [{"pathname":"/foo/:bar?"}\] Inputs: [{"pathname":"/foo/"}\]] + expected: FAIL + + [Pattern: [{"pathname":"/foo/:bar?"}\] Inputs: [{"pathname":"/foobar"}\]] + expected: FAIL + + [Pattern: [{"pathname":"/foo/:bar?"}\] Inputs: [{"pathname":"/foo/bar/baz"}\]] + expected: FAIL + + [Pattern: [{"pathname":"/foo/:bar+"}\] Inputs: [{"pathname":"/foo/bar"}\]] + expected: FAIL + + [Pattern: [{"pathname":"/foo/:bar+"}\] Inputs: [{"pathname":"/foo/bar/baz"}\]] + expected: FAIL + + [Pattern: [{"pathname":"/foo/:bar+"}\] Inputs: [{"pathname":"/foo"}\]] + expected: FAIL + + [Pattern: [{"pathname":"/foo/:bar+"}\] Inputs: [{"pathname":"/foo/"}\]] + expected: FAIL + + [Pattern: [{"pathname":"/foo/:bar+"}\] Inputs: [{"pathname":"/foobar"}\]] + expected: FAIL + + [Pattern: [{"pathname":"/foo/:bar*"}\] Inputs: [{"pathname":"/foo/bar"}\]] + expected: FAIL + + [Pattern: [{"pathname":"/foo/:bar*"}\] Inputs: [{"pathname":"/foo/bar/baz"}\]] + expected: FAIL + + [Pattern: [{"pathname":"/foo/:bar*"}\] Inputs: [{"pathname":"/foo"}\]] + expected: FAIL + + [Pattern: [{"pathname":"/foo/:bar*"}\] Inputs: [{"pathname":"/foo/"}\]] + expected: FAIL + + [Pattern: [{"pathname":"/foo/:bar*"}\] Inputs: [{"pathname":"/foobar"}\]] + expected: FAIL + + [Pattern: [{"pathname":"/foo/(.*)?"}\] Inputs: [{"pathname":"/foo/bar"}\]] + expected: FAIL + + [Pattern: [{"pathname":"/foo/*?"}\] Inputs: [{"pathname":"/foo/bar"}\]] + expected: FAIL + + [Pattern: [{"pathname":"/foo/(.*)?"}\] Inputs: [{"pathname":"/foo/bar/baz"}\]] + expected: FAIL + + [Pattern: [{"pathname":"/foo/*?"}\] Inputs: [{"pathname":"/foo/bar/baz"}\]] + expected: FAIL + + [Pattern: [{"pathname":"/foo/(.*)?"}\] Inputs: [{"pathname":"/foo"}\]] + expected: FAIL + + [Pattern: [{"pathname":"/foo/*?"}\] Inputs: [{"pathname":"/foo"}\]] + expected: FAIL + + [Pattern: [{"pathname":"/foo/(.*)?"}\] Inputs: [{"pathname":"/foo/"}\]] + expected: FAIL + + [Pattern: [{"pathname":"/foo/*?"}\] Inputs: [{"pathname":"/foo/"}\]] + expected: FAIL + + [Pattern: [{"pathname":"/foo/(.*)?"}\] Inputs: [{"pathname":"/foobar"}\]] + expected: FAIL + + [Pattern: [{"pathname":"/foo/*?"}\] Inputs: [{"pathname":"/foobar"}\]] + expected: FAIL + + [Pattern: [{"pathname":"/foo/(.*)?"}\] Inputs: [{"pathname":"/fo"}\]] + expected: FAIL + + [Pattern: [{"pathname":"/foo/*?"}\] Inputs: [{"pathname":"/fo"}\]] + expected: FAIL + + [Pattern: [{"pathname":"/foo/(.*)+"}\] Inputs: [{"pathname":"/foo/bar"}\]] + expected: FAIL + + [Pattern: [{"pathname":"/foo/*+"}\] Inputs: [{"pathname":"/foo/bar"}\]] + expected: FAIL + + [Pattern: [{"pathname":"/foo/(.*)+"}\] Inputs: [{"pathname":"/foo/bar/baz"}\]] + expected: FAIL + + [Pattern: [{"pathname":"/foo/*+"}\] Inputs: [{"pathname":"/foo/bar/baz"}\]] + expected: FAIL + + [Pattern: [{"pathname":"/foo/(.*)+"}\] Inputs: [{"pathname":"/foo"}\]] + expected: FAIL + + [Pattern: [{"pathname":"/foo/*+"}\] Inputs: [{"pathname":"/foo"}\]] + expected: FAIL + + [Pattern: [{"pathname":"/foo/(.*)+"}\] Inputs: [{"pathname":"/foo/"}\]] + expected: FAIL + + [Pattern: [{"pathname":"/foo/*+"}\] Inputs: [{"pathname":"/foo/"}\]] + expected: FAIL + + [Pattern: [{"pathname":"/foo/(.*)+"}\] Inputs: [{"pathname":"/foobar"}\]] + expected: FAIL + + [Pattern: [{"pathname":"/foo/*+"}\] Inputs: [{"pathname":"/foobar"}\]] + expected: FAIL + + [Pattern: [{"pathname":"/foo/(.*)+"}\] Inputs: [{"pathname":"/fo"}\]] + expected: FAIL + + [Pattern: [{"pathname":"/foo/*+"}\] Inputs: [{"pathname":"/fo"}\]] + expected: FAIL + + [Pattern: [{"pathname":"/foo/(.*)*"}\] Inputs: [{"pathname":"/foo/bar"}\]] + expected: FAIL + + [Pattern: [{"pathname":"/foo/**"}\] Inputs: [{"pathname":"/foo/bar"}\]] + expected: FAIL + + [Pattern: [{"pathname":"/foo/(.*)*"}\] Inputs: [{"pathname":"/foo/bar/baz"}\]] + expected: FAIL + + [Pattern: [{"pathname":"/foo/**"}\] Inputs: [{"pathname":"/foo/bar/baz"}\]] + expected: FAIL + + [Pattern: [{"pathname":"/foo/(.*)*"}\] Inputs: [{"pathname":"/foo"}\]] + expected: FAIL + + [Pattern: [{"pathname":"/foo/**"}\] Inputs: [{"pathname":"/foo"}\]] + expected: FAIL + + [Pattern: [{"pathname":"/foo/(.*)*"}\] Inputs: [{"pathname":"/foo/"}\]] + expected: FAIL + + [Pattern: [{"pathname":"/foo/**"}\] Inputs: [{"pathname":"/foo/"}\]] + expected: FAIL + + [Pattern: [{"pathname":"/foo/(.*)*"}\] Inputs: [{"pathname":"/foobar"}\]] + expected: FAIL + + [Pattern: [{"pathname":"/foo/**"}\] Inputs: [{"pathname":"/foobar"}\]] + expected: FAIL + + [Pattern: [{"pathname":"/foo/(.*)*"}\] Inputs: [{"pathname":"/fo"}\]] + expected: FAIL + + [Pattern: [{"pathname":"/foo/**"}\] Inputs: [{"pathname":"/fo"}\]] + expected: FAIL + + [Pattern: [{"pathname":"/foo{/bar}"}\] Inputs: [{"pathname":"/foo/bar"}\]] + expected: FAIL + + [Pattern: [{"pathname":"/foo{/bar}"}\] Inputs: [{"pathname":"/foo/bar/baz"}\]] + expected: FAIL + + [Pattern: [{"pathname":"/foo{/bar}"}\] Inputs: [{"pathname":"/foo"}\]] + expected: FAIL + + [Pattern: [{"pathname":"/foo{/bar}"}\] Inputs: [{"pathname":"/foo/"}\]] + expected: FAIL + + [Pattern: [{"pathname":"/foo{/bar}?"}\] Inputs: [{"pathname":"/foo/bar"}\]] + expected: FAIL + + [Pattern: [{"pathname":"/foo{/bar}?"}\] Inputs: [{"pathname":"/foo/bar/baz"}\]] + expected: FAIL + + [Pattern: [{"pathname":"/foo{/bar}?"}\] Inputs: [{"pathname":"/foo"}\]] + expected: FAIL + + [Pattern: [{"pathname":"/foo{/bar}?"}\] Inputs: [{"pathname":"/foo/"}\]] + expected: FAIL + + [Pattern: [{"pathname":"/foo{/bar}+"}\] Inputs: [{"pathname":"/foo/bar"}\]] + expected: FAIL + + [Pattern: [{"pathname":"/foo{/bar}+"}\] Inputs: [{"pathname":"/foo/bar/bar"}\]] + expected: FAIL + + [Pattern: [{"pathname":"/foo{/bar}+"}\] Inputs: [{"pathname":"/foo/bar/baz"}\]] + expected: FAIL + + [Pattern: [{"pathname":"/foo{/bar}+"}\] Inputs: [{"pathname":"/foo"}\]] + expected: FAIL + + [Pattern: [{"pathname":"/foo{/bar}+"}\] Inputs: [{"pathname":"/foo/"}\]] + expected: FAIL + + [Pattern: [{"pathname":"/foo{/bar}*"}\] Inputs: [{"pathname":"/foo/bar"}\]] + expected: FAIL + + [Pattern: [{"pathname":"/foo{/bar}*"}\] Inputs: [{"pathname":"/foo/bar/bar"}\]] + expected: FAIL + + [Pattern: [{"pathname":"/foo{/bar}*"}\] Inputs: [{"pathname":"/foo/bar/baz"}\]] + expected: FAIL + + [Pattern: [{"pathname":"/foo{/bar}*"}\] Inputs: [{"pathname":"/foo"}\]] + expected: FAIL + + [Pattern: [{"pathname":"/foo{/bar}*"}\] Inputs: [{"pathname":"/foo/"}\]] + expected: FAIL + + [Pattern: [{"protocol":"(café)"}\] Inputs: undefined] + expected: FAIL + + [Pattern: [{"username":"(café)"}\] Inputs: undefined] + expected: FAIL + + [Pattern: [{"password":"(café)"}\] Inputs: undefined] + expected: FAIL + + [Pattern: [{"hostname":"(café)"}\] Inputs: undefined] + expected: FAIL + + [Pattern: [{"pathname":"(café)"}\] Inputs: undefined] + expected: FAIL + + [Pattern: [{"search":"(café)"}\] Inputs: undefined] + expected: FAIL + + [Pattern: [{"hash":"(café)"}\] Inputs: undefined] + expected: FAIL + + [Pattern: [{"protocol":":café"}\] Inputs: [{"protocol":"foo"}\]] + expected: FAIL + + [Pattern: [{"username":":café"}\] Inputs: [{"username":"foo"}\]] + expected: FAIL + + [Pattern: [{"password":":café"}\] Inputs: [{"password":"foo"}\]] + expected: FAIL + + [Pattern: [{"hostname":":café"}\] Inputs: [{"hostname":"foo"}\]] + expected: FAIL + + [Pattern: [{"pathname":"/:café"}\] Inputs: [{"pathname":"/foo"}\]] + expected: FAIL + + [Pattern: [{"search":":café"}\] Inputs: [{"search":"foo"}\]] + expected: FAIL + + [Pattern: [{"hash":":café"}\] Inputs: [{"hash":"foo"}\]] + expected: FAIL + + [Pattern: [{"protocol":":℘"}\] Inputs: [{"protocol":"foo"}\]] + expected: FAIL + + [Pattern: [{"username":":℘"}\] Inputs: [{"username":"foo"}\]] + expected: FAIL + + [Pattern: [{"password":":℘"}\] Inputs: [{"password":"foo"}\]] + expected: FAIL + + [Pattern: [{"hostname":":℘"}\] Inputs: [{"hostname":"foo"}\]] + expected: FAIL + + [Pattern: [{"pathname":"/:℘"}\] Inputs: [{"pathname":"/foo"}\]] + expected: FAIL + + [Pattern: [{"search":":℘"}\] Inputs: [{"search":"foo"}\]] + expected: FAIL + + [Pattern: [{"hash":":℘"}\] Inputs: [{"hash":"foo"}\]] + expected: FAIL + + [Pattern: [{"protocol":":㐀"}\] Inputs: [{"protocol":"foo"}\]] + expected: FAIL + + [Pattern: [{"username":":㐀"}\] Inputs: [{"username":"foo"}\]] + expected: FAIL + + [Pattern: [{"password":":㐀"}\] Inputs: [{"password":"foo"}\]] + expected: FAIL + + [Pattern: [{"hostname":":㐀"}\] Inputs: [{"hostname":"foo"}\]] + expected: FAIL + + [Pattern: [{"pathname":"/:㐀"}\] Inputs: [{"pathname":"/foo"}\]] + expected: FAIL + + [Pattern: [{"search":":㐀"}\] Inputs: [{"search":"foo"}\]] + expected: FAIL + + [Pattern: [{"hash":":㐀"}\] Inputs: [{"hash":"foo"}\]] + expected: FAIL + + [Pattern: [{"protocol":"(.*)"}\] Inputs: [{"protocol":"café"}\]] + expected: FAIL + + [Pattern: [{"protocol":"(.*)"}\] Inputs: [{"protocol":"cafe"}\]] + expected: FAIL + + [Pattern: [{"protocol":"foo-bar"}\] Inputs: [{"protocol":"foo-bar"}\]] + expected: FAIL + + [Pattern: [{"username":"caf%C3%A9"}\] Inputs: [{"username":"café"}\]] + expected: FAIL + + [Pattern: [{"username":"café"}\] Inputs: [{"username":"café"}\]] + expected: FAIL + + [Pattern: [{"username":"caf%c3%a9"}\] Inputs: [{"username":"café"}\]] + expected: FAIL + + [Pattern: [{"password":"caf%C3%A9"}\] Inputs: [{"password":"café"}\]] + expected: FAIL + + [Pattern: [{"password":"café"}\] Inputs: [{"password":"café"}\]] + expected: FAIL + + [Pattern: [{"password":"caf%c3%a9"}\] Inputs: [{"password":"café"}\]] + expected: FAIL + + [Pattern: [{"hostname":"xn--caf-dma.com"}\] Inputs: [{"hostname":"café.com"}\]] + expected: FAIL + + [Pattern: [{"hostname":"café.com"}\] Inputs: [{"hostname":"café.com"}\]] + expected: FAIL + + [Pattern: [{"port":""}\] Inputs: [{"protocol":"http","port":"80"}\]] + expected: FAIL + + [Pattern: [{"protocol":"http","port":"80"}\] Inputs: [{"protocol":"http","port":"80"}\]] + expected: FAIL + + [Pattern: [{"protocol":"http","port":"80{20}?"}\] Inputs: [{"protocol":"http","port":"80"}\]] + expected: FAIL + + [Pattern: [{"protocol":"http","port":"80 "}\] Inputs: [{"protocol":"http","port":"80"}\]] + expected: FAIL + + [Pattern: [{"port":"80"}\] Inputs: [{"protocol":"http","port":"80"}\]] + expected: FAIL + + [Pattern: [{"protocol":"http{s}?","port":"80"}\] Inputs: [{"protocol":"http","port":"80"}\]] + expected: FAIL + + [Pattern: [{"port":"80"}\] Inputs: [{"port":"80"}\]] + expected: FAIL + + [Pattern: [{"port":"(.*)"}\] Inputs: [{"port":"invalid80"}\]] + expected: FAIL + + [Pattern: [{"pathname":"/foo/bar"}\] Inputs: [{"pathname":"/foo/./bar"}\]] + expected: FAIL + + [Pattern: [{"pathname":"/foo/baz"}\] Inputs: [{"pathname":"/foo/bar/../baz"}\]] + expected: FAIL + + [Pattern: [{"pathname":"/caf%C3%A9"}\] Inputs: [{"pathname":"/café"}\]] + expected: FAIL + + [Pattern: [{"pathname":"/café"}\] Inputs: [{"pathname":"/café"}\]] + expected: FAIL + + [Pattern: [{"pathname":"/caf%c3%a9"}\] Inputs: [{"pathname":"/café"}\]] + expected: FAIL + + [Pattern: [{"pathname":"/foo/bar"}\] Inputs: [{"pathname":"foo/bar"}\]] + expected: FAIL + + [Pattern: [{"pathname":"/foo/bar"}\] Inputs: [{"pathname":"foo/bar","baseURL":"https://example.com"}\]] + expected: FAIL + + [Pattern: [{"pathname":"/foo/../bar"}\] Inputs: [{"pathname":"/bar"}\]] + expected: FAIL + + [Pattern: [{"pathname":"./foo/bar","baseURL":"https://example.com"}\] Inputs: [{"pathname":"foo/bar","baseURL":"https://example.com"}\]] + expected: FAIL + + [Pattern: [{"pathname":"foo/bar"}\] Inputs: ["https://example.com/foo/bar"\]] + expected: FAIL + + [Pattern: [{"pathname":"foo/bar","baseURL":"https://example.com"}\] Inputs: ["https://example.com/foo/bar"\]] + expected: FAIL + + [Pattern: [{"pathname":":name.html","baseURL":"https://example.com"}\] Inputs: ["https://example.com/foo.html"\]] + expected: FAIL + + [Pattern: [{"search":"q=caf%C3%A9"}\] Inputs: [{"search":"q=café"}\]] + expected: FAIL + + [Pattern: [{"search":"q=café"}\] Inputs: [{"search":"q=café"}\]] + expected: FAIL + + [Pattern: [{"search":"q=caf%c3%a9"}\] Inputs: [{"search":"q=café"}\]] + expected: FAIL + + [Pattern: [{"hash":"caf%C3%A9"}\] Inputs: [{"hash":"café"}\]] + expected: FAIL + + [Pattern: [{"hash":"café"}\] Inputs: [{"hash":"café"}\]] + expected: FAIL + + [Pattern: [{"hash":"caf%c3%a9"}\] Inputs: [{"hash":"café"}\]] + expected: FAIL + + [Pattern: [{"protocol":"about","pathname":"(blank|sourcedoc)"}\] Inputs: ["about:blank"\]] + expected: FAIL + + [Pattern: [{"protocol":"data","pathname":":number([0-9\]+)"}\] Inputs: ["data:8675309"\]] + expected: FAIL + + [Pattern: [{"pathname":"/(\\\\m)"}\] Inputs: undefined] + expected: FAIL + + [Pattern: [{"pathname":"/foo!"}\] Inputs: [{"pathname":"/foo!"}\]] + expected: FAIL + + [Pattern: [{"pathname":"/foo\\\\:"}\] Inputs: [{"pathname":"/foo:"}\]] + expected: FAIL + + [Pattern: [{"pathname":"/foo\\\\{"}\] Inputs: [{"pathname":"/foo{"}\]] + expected: FAIL + + [Pattern: [{"pathname":"/foo\\\\("}\] Inputs: [{"pathname":"/foo("}\]] + expected: FAIL + + [Pattern: [{"protocol":"javascript","pathname":"var x = 1;"}\] Inputs: [{"protocol":"javascript","pathname":"var x = 1;"}\]] + expected: FAIL + + [Pattern: [{"pathname":"var x = 1;"}\] Inputs: [{"protocol":"javascript","pathname":"var x = 1;"}\]] + expected: FAIL + + [Pattern: [{"protocol":"javascript","pathname":"var x = 1;"}\] Inputs: [{"baseURL":"javascript:var x = 1;"}\]] + expected: FAIL + + [Pattern: [{"protocol":"(data|javascript)","pathname":"var x = 1;"}\] Inputs: [{"protocol":"javascript","pathname":"var x = 1;"}\]] + expected: FAIL + + [Pattern: [{"protocol":"(https|javascript)","pathname":"var x = 1;"}\] Inputs: [{"protocol":"javascript","pathname":"var x = 1;"}\]] + expected: FAIL + + [Pattern: [{"pathname":"var x = 1;"}\] Inputs: [{"pathname":"var x = 1;"}\]] + expected: FAIL + + [Pattern: [{"pathname":"/foo/bar"}\] Inputs: ["./foo/bar","https://example.com"\]] + expected: FAIL + + [Pattern: [{"pathname":"/foo/bar"}\] Inputs: [{"pathname":"/foo/bar"},"https://example.com"\]] + expected: FAIL + + [Pattern: ["https://example.com:8080/foo?bar#baz"\] Inputs: [{"pathname":"/foo","search":"bar","hash":"baz","baseURL":"https://example.com:8080"}\]] + expected: FAIL + + [Pattern: ["/foo?bar#baz","https://example.com:8080"\] Inputs: [{"pathname":"/foo","search":"bar","hash":"baz","baseURL":"https://example.com:8080"}\]] + expected: FAIL + + [Pattern: ["/foo"\] Inputs: undefined] + expected: FAIL + + [Pattern: ["example.com/foo"\] Inputs: undefined] + expected: FAIL + + [Pattern: ["http{s}?://{*.}?example.com/:product/:endpoint"\] Inputs: ["https://sub.example.com/foo/bar"\]] + expected: FAIL + + [Pattern: ["https://example.com?foo"\] Inputs: ["https://example.com/?foo"\]] + expected: FAIL + + [Pattern: ["https://example.com#foo"\] Inputs: ["https://example.com/#foo"\]] + expected: FAIL + + [Pattern: ["https://example.com:8080?foo"\] Inputs: ["https://example.com:8080/?foo"\]] + expected: FAIL + + [Pattern: ["https://example.com:8080#foo"\] Inputs: ["https://example.com:8080/#foo"\]] + expected: FAIL + + [Pattern: ["https://example.com/?foo"\] Inputs: ["https://example.com/?foo"\]] + expected: FAIL + + [Pattern: ["https://example.com/#foo"\] Inputs: ["https://example.com/#foo"\]] + expected: FAIL + + [Pattern: ["https://example.com/*?foo"\] Inputs: ["https://example.com/?foo"\]] + expected: FAIL + + [Pattern: ["https://example.com/*\\\\?foo"\] Inputs: ["https://example.com/?foo"\]] + expected: FAIL + + [Pattern: ["https://example.com/:name?foo"\] Inputs: ["https://example.com/bar?foo"\]] + expected: FAIL + + [Pattern: ["https://example.com/:name\\\\?foo"\] Inputs: ["https://example.com/bar?foo"\]] + expected: FAIL + + [Pattern: ["https://example.com/(bar)?foo"\] Inputs: ["https://example.com/bar?foo"\]] + expected: FAIL + + [Pattern: ["https://example.com/(bar)\\\\?foo"\] Inputs: ["https://example.com/bar?foo"\]] + expected: FAIL + + [Pattern: ["https://example.com/{bar}?foo"\] Inputs: ["https://example.com/bar?foo"\]] + expected: FAIL + + [Pattern: ["https://example.com/{bar}\\\\?foo"\] Inputs: ["https://example.com/bar?foo"\]] + expected: FAIL + + [Pattern: ["https://example.com/"\] Inputs: ["https://example.com:8080/"\]] + expected: FAIL + + [Pattern: ["data:foobar"\] Inputs: ["data:foobar"\]] + expected: FAIL + + [Pattern: ["data\\\\:foobar"\] Inputs: ["data:foobar"\]] + expected: FAIL + + [Pattern: ["https://{sub.}?example.com/foo"\] Inputs: ["https://example.com/foo"\]] + expected: FAIL + + [Pattern: ["https://{sub.}?example{.com/}foo"\] Inputs: ["https://example.com/foo"\]] + expected: FAIL + + [Pattern: ["{https://}example.com/foo"\] Inputs: ["https://example.com/foo"\]] + expected: FAIL + + [Pattern: ["https://(sub.)?example.com/foo"\] Inputs: ["https://example.com/foo"\]] + expected: FAIL + + [Pattern: ["https://(sub.)?example(.com/)foo"\] Inputs: ["https://example.com/foo"\]] + expected: FAIL + + [Pattern: ["(https://)example.com/foo"\] Inputs: ["https://example.com/foo"\]] + expected: FAIL + + [Pattern: ["https://{sub{.}}example.com/foo"\] Inputs: ["https://example.com/foo"\]] + expected: FAIL + + [Pattern: ["https://(sub(?:.))?example.com/foo"\] Inputs: ["https://example.com/foo"\]] + expected: FAIL + + [Pattern: ["file:///foo/bar"\] Inputs: ["file:///foo/bar"\]] + expected: FAIL + + [Pattern: ["data:"\] Inputs: ["data:"\]] + expected: FAIL + + [Pattern: ["foo://bar"\] Inputs: ["foo://bad_url_browser_interop"\]] + expected: FAIL + + [Pattern: ["(café)://foo"\] Inputs: undefined] + expected: FAIL + + [Pattern: ["https://example.com/foo?bar#baz"\] Inputs: [{"protocol":"https:","search":"?bar","hash":"#baz","baseURL":"http://example.com/foo"}\]] + expected: FAIL + + [Pattern: [{"protocol":"http{s}?:","search":"?bar","hash":"#baz"}\] Inputs: ["http://example.com/foo?bar#baz"\]] + expected: FAIL + + [Pattern: ["?bar#baz","https://example.com/foo"\] Inputs: ["?bar#baz","https://example.com/foo"\]] + expected: FAIL + + [Pattern: ["?bar","https://example.com/foo#baz"\] Inputs: ["?bar","https://example.com/foo#snafu"\]] + expected: FAIL + + [Pattern: ["#baz","https://example.com/foo?bar"\] Inputs: ["#baz","https://example.com/foo?bar"\]] + expected: FAIL + + [Pattern: ["#baz","https://example.com/foo"\] Inputs: ["#baz","https://example.com/foo"\]] + expected: FAIL + + [Pattern: ["https://foo\\\\:bar@example.com"\] Inputs: ["https://foo:bar@example.com"\]] + expected: FAIL + + [Pattern: ["https://foo@example.com"\] Inputs: ["https://foo@example.com"\]] + expected: FAIL + + [Pattern: ["https://\\\\:bar@example.com"\] Inputs: ["https://:bar@example.com"\]] + expected: FAIL + + [Pattern: ["https://:user::pass@example.com"\] Inputs: ["https://foo:bar@example.com"\]] + expected: FAIL + + [Pattern: ["https\\\\:foo\\\\:bar@example.com"\] Inputs: ["https:foo:bar@example.com"\]] + expected: FAIL + + [Pattern: ["data\\\\:foo\\\\:bar@example.com"\] Inputs: ["data:foo:bar@example.com"\]] + expected: FAIL + + [Pattern: ["https://foo{\\\\:}bar@example.com"\] Inputs: ["https://foo:bar@example.com"\]] + expected: FAIL + + [Pattern: ["data{\\\\:}channel.html","https://example.com"\] Inputs: ["https://example.com/data:channel.html"\]] + expected: FAIL + + [Pattern: ["https://foo{{@}}example.com"\] Inputs: ["https://foo@example.com"\]] + expected: FAIL + + [Pattern: ["https://foo{@example.com"\] Inputs: ["https://foo@example.com"\]] + expected: FAIL + + [Pattern: [{"pathname":"*"}\] Inputs: ["foo","data:data-urls-cannot-be-base-urls"\]] + expected: FAIL + + [Pattern: [{"pathname":"\\\\/bar","baseURL":"https://example.com/foo/"}\] Inputs: [{"pathname":"./bar","baseURL":"https://example.com/foo/"}\]] + expected: FAIL + + [Pattern: [{"pathname":"/foo"},"https://example.com"\] Inputs: undefined] + expected: FAIL + + [Pattern: [{"pathname":":name"}\] Inputs: [{"pathname":"foobar"}\]] + expected: FAIL + + [Pattern: [{"pathname":"/:id/:id"}\] Inputs: undefined] + expected: FAIL + + [Pattern: [{"pathname":":name+"}\] Inputs: [{"pathname":"foobar"}\]] + expected: FAIL + + [Pattern: [{"pathname":"*"}\] Inputs: ["foo","not|a|valid|url"\]] + expected: FAIL + + [Pattern: [{"pathname":":name*"}\] Inputs: [{"pathname":"foobar"}\]] + expected: FAIL + + [Pattern: [{"pathname":"/foo/([^\\\\/\]+?)"}\] Inputs: [{"pathname":"/foo/bar"}\]] + expected: FAIL + + [Pattern: [{"pathname":"","baseURL":"https://example.com"}\] Inputs: [{"pathname":"/","baseURL":"https://example.com"}\]] + expected: FAIL + + [Pattern: [{"pathname":"{/bar}","baseURL":"https://example.com/foo/"}\] Inputs: [{"pathname":"./bar","baseURL":"https://example.com/foo/"}\]] + expected: FAIL + + [Pattern: [{"pathname":"b","baseURL":"https://example.com/foo/"}\] Inputs: [{"pathname":"./b","baseURL":"https://example.com/foo/"}\]] + expected: FAIL + + [Pattern: [{"pathname":"/foo","baseURL":""}\] Inputs: undefined] + expected: FAIL + + [Pattern: ["data\\\\:text/javascript,let x = 100/:tens?5;"\] Inputs: ["data:text/javascript,let x = 100/5;"\]] + expected: FAIL + + [Pattern: ["/foo",""\] Inputs: undefined] + expected: FAIL + + [Pattern: [{"protocol":":name"}\] Inputs: [{"protocol":"foobar"}\]] + expected: FAIL + + [Pattern: [{"protocol":":name*"}\] Inputs: [{"protocol":"foobar"}\]] + expected: FAIL + + [Pattern: [{"protocol":":name+"}\] Inputs: [{"protocol":"foobar"}\]] + expected: FAIL + + [Pattern: ["http://[\\\\:\\\\:a\]/"\] Inputs: ["http://[::a\]/"\]] + expected: FAIL + + [Pattern: ["http://[\\\\:\\\\:1\]:8080/"\] Inputs: ["http://[::1\]:8080/"\]] + expected: FAIL + + [Pattern: ["http://[\\\\:\\\\:1\]/"\] Inputs: ["http://[::1\]/"\]] + expected: FAIL + + [Pattern: ["http://[:address\]/"\] Inputs: ["http://[::1\]/"\]] + expected: FAIL + + [Pattern: ["http://[\\\\:\\\\:AB\\\\::num\]/"\] Inputs: ["http://[::ab:1\]/"\]] + expected: FAIL + + [Pattern: [{"hostname":"[\\\\:\\\\:AB\\\\::num\]"}\] Inputs: [{"hostname":"[::ab:1\]"}\]] + expected: FAIL + + [Pattern: [{"hostname":"[\\\\:\\\\:xY\\\\::num\]"}\] Inputs: undefined] + expected: FAIL + + [Pattern: [{"hostname":"{[\\\\:\\\\:ab\\\\::num\]}"}\] Inputs: [{"hostname":"[::ab:1\]"}\]] + expected: FAIL + + [Pattern: [{"hostname":"{[\\\\:\\\\:fé\\\\::num\]}"}\] Inputs: undefined] + expected: FAIL + + [Pattern: [{"hostname":"{[\\\\:\\\\::num\\\\:1\]}"}\] Inputs: [{"hostname":"[::ab:1\]"}\]] + expected: FAIL + + [Pattern: [{"hostname":"{[\\\\:\\\\::num\\\\:fé\]}"}\] Inputs: undefined] + expected: FAIL + + [Pattern: [{"hostname":"[*\\\\:1\]"}\] Inputs: [{"hostname":"[::ab:1\]"}\]] + expected: FAIL + + [Pattern: [{"hostname":"*\\\\:1\]"}\] Inputs: undefined] + expected: FAIL + + [Pattern: [{"hostname":"bad hostname"}\] Inputs: undefined] + expected: FAIL + + [Pattern: [{"hostname":"bad#hostname"}\] Inputs: undefined] + expected: FAIL + + [Pattern: [{"hostname":"bad%hostname"}\] Inputs: undefined] + expected: FAIL + + [Pattern: [{"hostname":"bad/hostname"}\] Inputs: undefined] + expected: FAIL + + [Pattern: [{"hostname":"bad\\\\:hostname"}\] Inputs: undefined] + expected: FAIL + + [Pattern: [{"hostname":"bad<hostname"}\] Inputs: undefined] + expected: FAIL + + [Pattern: [{"hostname":"bad>hostname"}\] Inputs: undefined] + expected: FAIL + + [Pattern: [{"hostname":"bad?hostname"}\] Inputs: undefined] + expected: FAIL + + [Pattern: [{"hostname":"bad@hostname"}\] Inputs: undefined] + expected: FAIL + + [Pattern: [{"hostname":"bad[hostname"}\] Inputs: undefined] + expected: FAIL + + [Pattern: [{"hostname":"bad\]hostname"}\] Inputs: undefined] + expected: FAIL + + [Pattern: [{"hostname":"bad\\\\\\\\hostname"}\] Inputs: undefined] + expected: FAIL + + [Pattern: [{"hostname":"bad^hostname"}\] Inputs: undefined] + expected: FAIL + + [Pattern: [{"hostname":"bad|hostname"}\] Inputs: undefined] + expected: FAIL + + [Pattern: [{"hostname":"bad\\nhostname"}\] Inputs: undefined] + expected: FAIL + + [Pattern: [{"hostname":"bad\\rhostname"}\] Inputs: undefined] + expected: FAIL + + [Pattern: [{"hostname":"bad\\thostname"}\] Inputs: undefined] + expected: FAIL + + [Pattern: [{}\] Inputs: ["https://example.com/"\]] + expected: FAIL + + [Pattern: [\] Inputs: ["https://example.com/"\]] + expected: FAIL + + [Pattern: [\] Inputs: [{}\]] + expected: FAIL + + [Pattern: [\] Inputs: [\]] + expected: FAIL + + [Pattern: [{"pathname":"{:foo}(barbaz)"}\] Inputs: [{"pathname":"foobarbaz"}\]] + expected: FAIL + + [Pattern: [{"pathname":"{:foo\\\\bar}"}\] Inputs: [{"pathname":"foobar"}\]] + expected: FAIL + + [Pattern: [{"pathname":"{:foo}{(.*)}"}\] Inputs: [{"pathname":"foobarbaz"}\]] + expected: FAIL + + [Pattern: [{"pathname":"(foo)(.*)"}\] Inputs: [{"pathname":"foobarbaz"}\]] + expected: FAIL + + [Pattern: [{"pathname":"{:foo(foo)bar}"}\] Inputs: [{"pathname":"foobar"}\]] + expected: FAIL + + [Pattern: [{"pathname":"{:foo}{bar(.*)}"}\] Inputs: [{"pathname":"foobarbaz"}\]] + expected: FAIL + + [Pattern: [{"pathname":"(foo)?(.*)"}\] Inputs: [{"pathname":"foobarbaz"}\]] + expected: FAIL + + [Pattern: [{"pathname":"{:foo\\\\.bar}"}\] Inputs: [{"pathname":"foo.bar"}\]] + expected: FAIL + + [Pattern: [{"pathname":"{(foo)bar}(.*)"}\] Inputs: [{"pathname":"foobarbaz"}\]] + expected: FAIL + + [Pattern: [{"pathname":"{:foo}?(.*)"}\] Inputs: [{"pathname":"foobarbaz"}\]] + expected: FAIL + + [Pattern: [{"pathname":"{:foo}{(.*)bar}"}\] Inputs: [{"pathname":"foobarbaz"}\]] + expected: FAIL + + [Pattern: [{"pathname":"{:foo}:bar(.*)"}\] Inputs: [{"pathname":"foobarbaz"}\]] + expected: FAIL + + [Pattern: [{"pathname":"{:foo}(.*)"}\] Inputs: [{"pathname":"foobarbaz"}\]] + expected: FAIL + + [Pattern: [{"pathname":":foo{}?bar"}\] Inputs: [{"pathname":"foobar"}\]] + expected: FAIL + + [Pattern: [{"pathname":":foo(baz)(.*)"}\] Inputs: [{"pathname":"bazbar"}\]] + expected: FAIL + + [Pattern: [{"pathname":":foo{}(.*)"}\] Inputs: [{"pathname":"foobar"}\]] + expected: FAIL + + [Pattern: [{"pathname":":foo\\\\bar"}\] Inputs: [{"pathname":"foobar"}\]] + expected: FAIL + + [Pattern: [{"pathname":"*{}**?"}\] Inputs: [{"pathname":"foobar"}\]] + expected: FAIL + + [Pattern: [{"pathname":":foo(baz)bar"}\] Inputs: [{"pathname":"bazbar"}\]] + expected: FAIL + + [Pattern: [{"pathname":"{:foo}bar"}\] Inputs: [{"pathname":"foobar"}\]] + expected: FAIL + + [Pattern: [{"pathname":":foo{}bar"}\] Inputs: [{"pathname":"foobar"}\]] + expected: FAIL + + [Pattern: [{"pathname":"*//*"}\] Inputs: [{"pathname":"foo/bar"}\]] + expected: FAIL + + [Pattern: [{"pathname":"/:foo."}\] Inputs: [{"pathname":"/bar."}\]] + expected: FAIL + + [Pattern: [{"pathname":"*/{*}"}\] Inputs: [{"pathname":"foo/bar"}\]] + expected: FAIL + + [Pattern: [{"pathname":"./foo"}\] Inputs: [{"pathname":"./foo"}\]] + expected: FAIL + + [Pattern: [{"pathname":":foo./"}\] Inputs: [{"pathname":"bar./"}\]] + expected: FAIL + + [Pattern: [{"pathname":"/:foo\\\\bar"}\] Inputs: [{"pathname":"/bazbar"}\]] + expected: FAIL + + [Pattern: [{"pathname":"../foo"}\] Inputs: [{"pathname":"../foo"}\]] + expected: FAIL + + [Pattern: [{"pathname":"/:foo.."}\] Inputs: [{"pathname":"/bar.."}\]] + expected: FAIL + + [Pattern: [{"pathname":":foo../"}\] Inputs: [{"pathname":"bar../"}\]] + expected: FAIL + + [Pattern: [{"pathname":"*\\\\/*"}\] Inputs: [{"pathname":"foo/bar"}\]] + expected: FAIL + + [Pattern: [{"pathname":"*/*"}\] Inputs: [{"pathname":"foo/bar"}\]] + expected: FAIL + + [Pattern: ["https://example.com:8080/foo?bar#baz",{"ignoreCase":true}\] Inputs: [{"pathname":"/FOO","search":"BAR","hash":"BAZ","baseURL":"https://example.com:8080"}\]] + expected: FAIL + + [Pattern: ["/foo?bar#baz","https://example.com:8080",{"ignoreCase":true}\] Inputs: [{"pathname":"/FOO","search":"BAR","hash":"BAZ","baseURL":"https://example.com:8080"}\]] + expected: FAIL + + [Pattern: [{"ignoreCase":true}\] Inputs: [{"pathname":"/FOO/BAR"}\]] + expected: FAIL + + [Pattern: ["/foo?bar#baz",{"ignoreCase":true},"https://example.com:8080"\] Inputs: [{"pathname":"/FOO","search":"BAR","hash":"BAZ","baseURL":"https://example.com:8080"}\]] + expected: FAIL + + [Pattern: [{"pathname":"/foo/bar"},{"ignoreCase":true}\] Inputs: [{"pathname":"/FOO/BAR"}\]] + expected: FAIL + + [Pattern: ["#foo","https://example.com/?q=*&v=?&hmm={}&umm=()"\] Inputs: ["https://example.com/?q=*&v=?&hmm={}&umm=()#foo"\]] + expected: FAIL + + [Pattern: [{"search":"foo","baseURL":"https://example.com/a/+/b"}\] Inputs: [{"search":"foo","baseURL":"https://example.com/a/+/b"}\]] + expected: FAIL + + [Pattern: [{"hash":"foo","baseURL":"https://example.com/?q=*&v=?&hmm={}&umm=()"}\] Inputs: [{"hash":"foo","baseURL":"https://example.com/?q=*&v=?&hmm={}&umm=()"}\]] + expected: FAIL diff --git a/testing/web-platform/meta/urlpattern/urlpattern.https.any.js.ini b/testing/web-platform/meta/urlpattern/urlpattern.https.any.js.ini new file mode 100644 index 0000000000..0d971562e5 --- /dev/null +++ b/testing/web-platform/meta/urlpattern/urlpattern.https.any.js.ini @@ -0,0 +1,4040 @@ +[urlpattern.https.any.sharedworker.html] + [Pattern: [{"pathname":"/foo/bar"}\] Inputs: [{"pathname":"/foo/bar"}\]] + expected: FAIL + + [Pattern: [{"pathname":"/foo/bar"}\] Inputs: [{"pathname":"/foo/ba"}\]] + expected: FAIL + + [Pattern: [{"pathname":"/foo/bar"}\] Inputs: [{"pathname":"/foo/bar/"}\]] + expected: FAIL + + [Pattern: [{"pathname":"/foo/bar"}\] Inputs: [{"pathname":"/foo/bar/baz"}\]] + expected: FAIL + + [Pattern: [{"pathname":"/foo/bar"}\] Inputs: ["https://example.com/foo/bar"\]] + expected: FAIL + + [Pattern: [{"pathname":"/foo/bar"}\] Inputs: ["https://example.com/foo/bar/baz"\]] + expected: FAIL + + [Pattern: [{"pathname":"/foo/bar"}\] Inputs: [{"hostname":"example.com","pathname":"/foo/bar"}\]] + expected: FAIL + + [Pattern: [{"pathname":"/foo/bar"}\] Inputs: [{"hostname":"example.com","pathname":"/foo/bar/baz"}\]] + expected: FAIL + + [Pattern: [{"pathname":"/foo/bar"}\] Inputs: [{"pathname":"/foo/bar","baseURL":"https://example.com"}\]] + expected: FAIL + + [Pattern: [{"pathname":"/foo/bar"}\] Inputs: [{"pathname":"/foo/bar/baz","baseURL":"https://example.com"}\]] + expected: FAIL + + [Pattern: [{"pathname":"/foo/bar","baseURL":"https://example.com?query#hash"}\] Inputs: [{"pathname":"/foo/bar"}\]] + expected: FAIL + + [Pattern: [{"pathname":"/foo/bar","baseURL":"https://example.com?query#hash"}\] Inputs: [{"hostname":"example.com","pathname":"/foo/bar"}\]] + expected: FAIL + + [Pattern: [{"pathname":"/foo/bar","baseURL":"https://example.com?query#hash"}\] Inputs: [{"protocol":"https","hostname":"example.com","pathname":"/foo/bar"}\]] + expected: FAIL + + [Pattern: [{"pathname":"/foo/bar","baseURL":"https://example.com?query#hash"}\] Inputs: [{"protocol":"https","hostname":"example.com","pathname":"/foo/bar","search":"otherquery","hash":"otherhash"}\]] + expected: FAIL + + [Pattern: [{"pathname":"/foo/bar","baseURL":"https://example.com?query#hash"}\] Inputs: ["https://example.com/foo/bar"\]] + expected: FAIL + + [Pattern: [{"pathname":"/foo/bar","baseURL":"https://example.com?query#hash"}\] Inputs: ["https://example.com/foo/bar?otherquery#otherhash"\]] + expected: FAIL + + [Pattern: [{"pathname":"/foo/bar","baseURL":"https://example.com?query#hash"}\] Inputs: ["https://example.com/foo/bar/baz"\]] + expected: FAIL + + [Pattern: [{"pathname":"/foo/bar","baseURL":"https://example.com?query#hash"}\] Inputs: ["https://other.com/foo/bar"\]] + expected: FAIL + + [Pattern: [{"pathname":"/foo/bar","baseURL":"https://example.com?query#hash"}\] Inputs: ["http://other.com/foo/bar"\]] + expected: FAIL + + [Pattern: [{"pathname":"/foo/bar","baseURL":"https://example.com?query#hash"}\] Inputs: [{"pathname":"/foo/bar","baseURL":"https://example.com"}\]] + expected: FAIL + + [Pattern: [{"pathname":"/foo/bar","baseURL":"https://example.com?query#hash"}\] Inputs: [{"pathname":"/foo/bar/baz","baseURL":"https://example.com"}\]] + expected: FAIL + + [Pattern: [{"pathname":"/foo/bar","baseURL":"https://example.com?query#hash"}\] Inputs: [{"pathname":"/foo/bar","baseURL":"https://other.com"}\]] + expected: FAIL + + [Pattern: [{"pathname":"/foo/bar","baseURL":"https://example.com?query#hash"}\] Inputs: [{"pathname":"/foo/bar","baseURL":"http://example.com"}\]] + expected: FAIL + + [Pattern: [{"pathname":"/foo/:bar"}\] Inputs: [{"pathname":"/foo/bar"}\]] + expected: FAIL + + [Pattern: [{"pathname":"/foo/:bar"}\] Inputs: [{"pathname":"/foo/index.html"}\]] + expected: FAIL + + [Pattern: [{"pathname":"/foo/:bar"}\] Inputs: [{"pathname":"/foo/bar/"}\]] + expected: FAIL + + [Pattern: [{"pathname":"/foo/:bar"}\] Inputs: [{"pathname":"/foo/"}\]] + expected: FAIL + + [Pattern: [{"pathname":"/foo/(.*)"}\] Inputs: [{"pathname":"/foo/bar"}\]] + expected: FAIL + + [Pattern: [{"pathname":"/foo/*"}\] Inputs: [{"pathname":"/foo/bar"}\]] + expected: FAIL + + [Pattern: [{"pathname":"/foo/(.*)"}\] Inputs: [{"pathname":"/foo/bar/baz"}\]] + expected: FAIL + + [Pattern: [{"pathname":"/foo/*"}\] Inputs: [{"pathname":"/foo/bar/baz"}\]] + expected: FAIL + + [Pattern: [{"pathname":"/foo/(.*)"}\] Inputs: [{"pathname":"/foo/"}\]] + expected: FAIL + + [Pattern: [{"pathname":"/foo/*"}\] Inputs: [{"pathname":"/foo/"}\]] + expected: FAIL + + [Pattern: [{"pathname":"/foo/(.*)"}\] Inputs: [{"pathname":"/foo"}\]] + expected: FAIL + + [Pattern: [{"pathname":"/foo/*"}\] Inputs: [{"pathname":"/foo"}\]] + expected: FAIL + + [Pattern: [{"pathname":"/foo/:bar(.*)"}\] Inputs: [{"pathname":"/foo/bar"}\]] + expected: FAIL + + [Pattern: [{"pathname":"/foo/:bar(.*)"}\] Inputs: [{"pathname":"/foo/bar/baz"}\]] + expected: FAIL + + [Pattern: [{"pathname":"/foo/:bar(.*)"}\] Inputs: [{"pathname":"/foo/"}\]] + expected: FAIL + + [Pattern: [{"pathname":"/foo/:bar(.*)"}\] Inputs: [{"pathname":"/foo"}\]] + expected: FAIL + + [Pattern: [{"pathname":"/foo/:bar?"}\] Inputs: [{"pathname":"/foo/bar"}\]] + expected: FAIL + + [Pattern: [{"pathname":"/foo/:bar?"}\] Inputs: [{"pathname":"/foo"}\]] + expected: FAIL + + [Pattern: [{"pathname":"/foo/:bar?"}\] Inputs: [{"pathname":"/foo/"}\]] + expected: FAIL + + [Pattern: [{"pathname":"/foo/:bar?"}\] Inputs: [{"pathname":"/foobar"}\]] + expected: FAIL + + [Pattern: [{"pathname":"/foo/:bar?"}\] Inputs: [{"pathname":"/foo/bar/baz"}\]] + expected: FAIL + + [Pattern: [{"pathname":"/foo/:bar+"}\] Inputs: [{"pathname":"/foo/bar"}\]] + expected: FAIL + + [Pattern: [{"pathname":"/foo/:bar+"}\] Inputs: [{"pathname":"/foo/bar/baz"}\]] + expected: FAIL + + [Pattern: [{"pathname":"/foo/:bar+"}\] Inputs: [{"pathname":"/foo"}\]] + expected: FAIL + + [Pattern: [{"pathname":"/foo/:bar+"}\] Inputs: [{"pathname":"/foo/"}\]] + expected: FAIL + + [Pattern: [{"pathname":"/foo/:bar+"}\] Inputs: [{"pathname":"/foobar"}\]] + expected: FAIL + + [Pattern: [{"pathname":"/foo/:bar*"}\] Inputs: [{"pathname":"/foo/bar"}\]] + expected: FAIL + + [Pattern: [{"pathname":"/foo/:bar*"}\] Inputs: [{"pathname":"/foo/bar/baz"}\]] + expected: FAIL + + [Pattern: [{"pathname":"/foo/:bar*"}\] Inputs: [{"pathname":"/foo"}\]] + expected: FAIL + + [Pattern: [{"pathname":"/foo/:bar*"}\] Inputs: [{"pathname":"/foo/"}\]] + expected: FAIL + + [Pattern: [{"pathname":"/foo/:bar*"}\] Inputs: [{"pathname":"/foobar"}\]] + expected: FAIL + + [Pattern: [{"pathname":"/foo/(.*)?"}\] Inputs: [{"pathname":"/foo/bar"}\]] + expected: FAIL + + [Pattern: [{"pathname":"/foo/*?"}\] Inputs: [{"pathname":"/foo/bar"}\]] + expected: FAIL + + [Pattern: [{"pathname":"/foo/(.*)?"}\] Inputs: [{"pathname":"/foo/bar/baz"}\]] + expected: FAIL + + [Pattern: [{"pathname":"/foo/*?"}\] Inputs: [{"pathname":"/foo/bar/baz"}\]] + expected: FAIL + + [Pattern: [{"pathname":"/foo/(.*)?"}\] Inputs: [{"pathname":"/foo"}\]] + expected: FAIL + + [Pattern: [{"pathname":"/foo/*?"}\] Inputs: [{"pathname":"/foo"}\]] + expected: FAIL + + [Pattern: [{"pathname":"/foo/(.*)?"}\] Inputs: [{"pathname":"/foo/"}\]] + expected: FAIL + + [Pattern: [{"pathname":"/foo/*?"}\] Inputs: [{"pathname":"/foo/"}\]] + expected: FAIL + + [Pattern: [{"pathname":"/foo/(.*)?"}\] Inputs: [{"pathname":"/foobar"}\]] + expected: FAIL + + [Pattern: [{"pathname":"/foo/*?"}\] Inputs: [{"pathname":"/foobar"}\]] + expected: FAIL + + [Pattern: [{"pathname":"/foo/(.*)?"}\] Inputs: [{"pathname":"/fo"}\]] + expected: FAIL + + [Pattern: [{"pathname":"/foo/*?"}\] Inputs: [{"pathname":"/fo"}\]] + expected: FAIL + + [Pattern: [{"pathname":"/foo/(.*)+"}\] Inputs: [{"pathname":"/foo/bar"}\]] + expected: FAIL + + [Pattern: [{"pathname":"/foo/*+"}\] Inputs: [{"pathname":"/foo/bar"}\]] + expected: FAIL + + [Pattern: [{"pathname":"/foo/(.*)+"}\] Inputs: [{"pathname":"/foo/bar/baz"}\]] + expected: FAIL + + [Pattern: [{"pathname":"/foo/*+"}\] Inputs: [{"pathname":"/foo/bar/baz"}\]] + expected: FAIL + + [Pattern: [{"pathname":"/foo/(.*)+"}\] Inputs: [{"pathname":"/foo"}\]] + expected: FAIL + + [Pattern: [{"pathname":"/foo/*+"}\] Inputs: [{"pathname":"/foo"}\]] + expected: FAIL + + [Pattern: [{"pathname":"/foo/(.*)+"}\] Inputs: [{"pathname":"/foo/"}\]] + expected: FAIL + + [Pattern: [{"pathname":"/foo/*+"}\] Inputs: [{"pathname":"/foo/"}\]] + expected: FAIL + + [Pattern: [{"pathname":"/foo/(.*)+"}\] Inputs: [{"pathname":"/foobar"}\]] + expected: FAIL + + [Pattern: [{"pathname":"/foo/*+"}\] Inputs: [{"pathname":"/foobar"}\]] + expected: FAIL + + [Pattern: [{"pathname":"/foo/(.*)+"}\] Inputs: [{"pathname":"/fo"}\]] + expected: FAIL + + [Pattern: [{"pathname":"/foo/*+"}\] Inputs: [{"pathname":"/fo"}\]] + expected: FAIL + + [Pattern: [{"pathname":"/foo/(.*)*"}\] Inputs: [{"pathname":"/foo/bar"}\]] + expected: FAIL + + [Pattern: [{"pathname":"/foo/**"}\] Inputs: [{"pathname":"/foo/bar"}\]] + expected: FAIL + + [Pattern: [{"pathname":"/foo/(.*)*"}\] Inputs: [{"pathname":"/foo/bar/baz"}\]] + expected: FAIL + + [Pattern: [{"pathname":"/foo/**"}\] Inputs: [{"pathname":"/foo/bar/baz"}\]] + expected: FAIL + + [Pattern: [{"pathname":"/foo/(.*)*"}\] Inputs: [{"pathname":"/foo"}\]] + expected: FAIL + + [Pattern: [{"pathname":"/foo/**"}\] Inputs: [{"pathname":"/foo"}\]] + expected: FAIL + + [Pattern: [{"pathname":"/foo/(.*)*"}\] Inputs: [{"pathname":"/foo/"}\]] + expected: FAIL + + [Pattern: [{"pathname":"/foo/**"}\] Inputs: [{"pathname":"/foo/"}\]] + expected: FAIL + + [Pattern: [{"pathname":"/foo/(.*)*"}\] Inputs: [{"pathname":"/foobar"}\]] + expected: FAIL + + [Pattern: [{"pathname":"/foo/**"}\] Inputs: [{"pathname":"/foobar"}\]] + expected: FAIL + + [Pattern: [{"pathname":"/foo/(.*)*"}\] Inputs: [{"pathname":"/fo"}\]] + expected: FAIL + + [Pattern: [{"pathname":"/foo/**"}\] Inputs: [{"pathname":"/fo"}\]] + expected: FAIL + + [Pattern: [{"pathname":"/foo{/bar}"}\] Inputs: [{"pathname":"/foo/bar"}\]] + expected: FAIL + + [Pattern: [{"pathname":"/foo{/bar}"}\] Inputs: [{"pathname":"/foo/bar/baz"}\]] + expected: FAIL + + [Pattern: [{"pathname":"/foo{/bar}"}\] Inputs: [{"pathname":"/foo"}\]] + expected: FAIL + + [Pattern: [{"pathname":"/foo{/bar}"}\] Inputs: [{"pathname":"/foo/"}\]] + expected: FAIL + + [Pattern: [{"pathname":"/foo{/bar}?"}\] Inputs: [{"pathname":"/foo/bar"}\]] + expected: FAIL + + [Pattern: [{"pathname":"/foo{/bar}?"}\] Inputs: [{"pathname":"/foo/bar/baz"}\]] + expected: FAIL + + [Pattern: [{"pathname":"/foo{/bar}?"}\] Inputs: [{"pathname":"/foo"}\]] + expected: FAIL + + [Pattern: [{"pathname":"/foo{/bar}?"}\] Inputs: [{"pathname":"/foo/"}\]] + expected: FAIL + + [Pattern: [{"pathname":"/foo{/bar}+"}\] Inputs: [{"pathname":"/foo/bar"}\]] + expected: FAIL + + [Pattern: [{"pathname":"/foo{/bar}+"}\] Inputs: [{"pathname":"/foo/bar/bar"}\]] + expected: FAIL + + [Pattern: [{"pathname":"/foo{/bar}+"}\] Inputs: [{"pathname":"/foo/bar/baz"}\]] + expected: FAIL + + [Pattern: [{"pathname":"/foo{/bar}+"}\] Inputs: [{"pathname":"/foo"}\]] + expected: FAIL + + [Pattern: [{"pathname":"/foo{/bar}+"}\] Inputs: [{"pathname":"/foo/"}\]] + expected: FAIL + + [Pattern: [{"pathname":"/foo{/bar}*"}\] Inputs: [{"pathname":"/foo/bar"}\]] + expected: FAIL + + [Pattern: [{"pathname":"/foo{/bar}*"}\] Inputs: [{"pathname":"/foo/bar/bar"}\]] + expected: FAIL + + [Pattern: [{"pathname":"/foo{/bar}*"}\] Inputs: [{"pathname":"/foo/bar/baz"}\]] + expected: FAIL + + [Pattern: [{"pathname":"/foo{/bar}*"}\] Inputs: [{"pathname":"/foo"}\]] + expected: FAIL + + [Pattern: [{"pathname":"/foo{/bar}*"}\] Inputs: [{"pathname":"/foo/"}\]] + expected: FAIL + + [Pattern: [{"protocol":"(café)"}\] Inputs: undefined] + expected: FAIL + + [Pattern: [{"username":"(café)"}\] Inputs: undefined] + expected: FAIL + + [Pattern: [{"password":"(café)"}\] Inputs: undefined] + expected: FAIL + + [Pattern: [{"hostname":"(café)"}\] Inputs: undefined] + expected: FAIL + + [Pattern: [{"pathname":"(café)"}\] Inputs: undefined] + expected: FAIL + + [Pattern: [{"search":"(café)"}\] Inputs: undefined] + expected: FAIL + + [Pattern: [{"hash":"(café)"}\] Inputs: undefined] + expected: FAIL + + [Pattern: [{"protocol":":café"}\] Inputs: [{"protocol":"foo"}\]] + expected: FAIL + + [Pattern: [{"username":":café"}\] Inputs: [{"username":"foo"}\]] + expected: FAIL + + [Pattern: [{"password":":café"}\] Inputs: [{"password":"foo"}\]] + expected: FAIL + + [Pattern: [{"hostname":":café"}\] Inputs: [{"hostname":"foo"}\]] + expected: FAIL + + [Pattern: [{"pathname":"/:café"}\] Inputs: [{"pathname":"/foo"}\]] + expected: FAIL + + [Pattern: [{"search":":café"}\] Inputs: [{"search":"foo"}\]] + expected: FAIL + + [Pattern: [{"hash":":café"}\] Inputs: [{"hash":"foo"}\]] + expected: FAIL + + [Pattern: [{"protocol":":℘"}\] Inputs: [{"protocol":"foo"}\]] + expected: FAIL + + [Pattern: [{"username":":℘"}\] Inputs: [{"username":"foo"}\]] + expected: FAIL + + [Pattern: [{"password":":℘"}\] Inputs: [{"password":"foo"}\]] + expected: FAIL + + [Pattern: [{"hostname":":℘"}\] Inputs: [{"hostname":"foo"}\]] + expected: FAIL + + [Pattern: [{"pathname":"/:℘"}\] Inputs: [{"pathname":"/foo"}\]] + expected: FAIL + + [Pattern: [{"search":":℘"}\] Inputs: [{"search":"foo"}\]] + expected: FAIL + + [Pattern: [{"hash":":℘"}\] Inputs: [{"hash":"foo"}\]] + expected: FAIL + + [Pattern: [{"protocol":":㐀"}\] Inputs: [{"protocol":"foo"}\]] + expected: FAIL + + [Pattern: [{"username":":㐀"}\] Inputs: [{"username":"foo"}\]] + expected: FAIL + + [Pattern: [{"password":":㐀"}\] Inputs: [{"password":"foo"}\]] + expected: FAIL + + [Pattern: [{"hostname":":㐀"}\] Inputs: [{"hostname":"foo"}\]] + expected: FAIL + + [Pattern: [{"pathname":"/:㐀"}\] Inputs: [{"pathname":"/foo"}\]] + expected: FAIL + + [Pattern: [{"search":":㐀"}\] Inputs: [{"search":"foo"}\]] + expected: FAIL + + [Pattern: [{"hash":":㐀"}\] Inputs: [{"hash":"foo"}\]] + expected: FAIL + + [Pattern: [{"protocol":"(.*)"}\] Inputs: [{"protocol":"café"}\]] + expected: FAIL + + [Pattern: [{"protocol":"(.*)"}\] Inputs: [{"protocol":"cafe"}\]] + expected: FAIL + + [Pattern: [{"protocol":"foo-bar"}\] Inputs: [{"protocol":"foo-bar"}\]] + expected: FAIL + + [Pattern: [{"username":"caf%C3%A9"}\] Inputs: [{"username":"café"}\]] + expected: FAIL + + [Pattern: [{"username":"café"}\] Inputs: [{"username":"café"}\]] + expected: FAIL + + [Pattern: [{"username":"caf%c3%a9"}\] Inputs: [{"username":"café"}\]] + expected: FAIL + + [Pattern: [{"password":"caf%C3%A9"}\] Inputs: [{"password":"café"}\]] + expected: FAIL + + [Pattern: [{"password":"café"}\] Inputs: [{"password":"café"}\]] + expected: FAIL + + [Pattern: [{"password":"caf%c3%a9"}\] Inputs: [{"password":"café"}\]] + expected: FAIL + + [Pattern: [{"hostname":"xn--caf-dma.com"}\] Inputs: [{"hostname":"café.com"}\]] + expected: FAIL + + [Pattern: [{"hostname":"café.com"}\] Inputs: [{"hostname":"café.com"}\]] + expected: FAIL + + [Pattern: [{"port":""}\] Inputs: [{"protocol":"http","port":"80"}\]] + expected: FAIL + + [Pattern: [{"protocol":"http","port":"80"}\] Inputs: [{"protocol":"http","port":"80"}\]] + expected: FAIL + + [Pattern: [{"protocol":"http","port":"80{20}?"}\] Inputs: [{"protocol":"http","port":"80"}\]] + expected: FAIL + + [Pattern: [{"protocol":"http","port":"80 "}\] Inputs: [{"protocol":"http","port":"80"}\]] + expected: FAIL + + [Pattern: [{"port":"80"}\] Inputs: [{"protocol":"http","port":"80"}\]] + expected: FAIL + + [Pattern: [{"protocol":"http{s}?","port":"80"}\] Inputs: [{"protocol":"http","port":"80"}\]] + expected: FAIL + + [Pattern: [{"port":"80"}\] Inputs: [{"port":"80"}\]] + expected: FAIL + + [Pattern: [{"port":"(.*)"}\] Inputs: [{"port":"invalid80"}\]] + expected: FAIL + + [Pattern: [{"pathname":"/foo/bar"}\] Inputs: [{"pathname":"/foo/./bar"}\]] + expected: FAIL + + [Pattern: [{"pathname":"/foo/baz"}\] Inputs: [{"pathname":"/foo/bar/../baz"}\]] + expected: FAIL + + [Pattern: [{"pathname":"/caf%C3%A9"}\] Inputs: [{"pathname":"/café"}\]] + expected: FAIL + + [Pattern: [{"pathname":"/café"}\] Inputs: [{"pathname":"/café"}\]] + expected: FAIL + + [Pattern: [{"pathname":"/caf%c3%a9"}\] Inputs: [{"pathname":"/café"}\]] + expected: FAIL + + [Pattern: [{"pathname":"/foo/bar"}\] Inputs: [{"pathname":"foo/bar"}\]] + expected: FAIL + + [Pattern: [{"pathname":"/foo/bar"}\] Inputs: [{"pathname":"foo/bar","baseURL":"https://example.com"}\]] + expected: FAIL + + [Pattern: [{"pathname":"/foo/../bar"}\] Inputs: [{"pathname":"/bar"}\]] + expected: FAIL + + [Pattern: [{"pathname":"./foo/bar","baseURL":"https://example.com"}\] Inputs: [{"pathname":"foo/bar","baseURL":"https://example.com"}\]] + expected: FAIL + + [Pattern: [{"pathname":"foo/bar"}\] Inputs: ["https://example.com/foo/bar"\]] + expected: FAIL + + [Pattern: [{"pathname":"foo/bar","baseURL":"https://example.com"}\] Inputs: ["https://example.com/foo/bar"\]] + expected: FAIL + + [Pattern: [{"pathname":":name.html","baseURL":"https://example.com"}\] Inputs: ["https://example.com/foo.html"\]] + expected: FAIL + + [Pattern: [{"search":"q=caf%C3%A9"}\] Inputs: [{"search":"q=café"}\]] + expected: FAIL + + [Pattern: [{"search":"q=café"}\] Inputs: [{"search":"q=café"}\]] + expected: FAIL + + [Pattern: [{"search":"q=caf%c3%a9"}\] Inputs: [{"search":"q=café"}\]] + expected: FAIL + + [Pattern: [{"hash":"caf%C3%A9"}\] Inputs: [{"hash":"café"}\]] + expected: FAIL + + [Pattern: [{"hash":"café"}\] Inputs: [{"hash":"café"}\]] + expected: FAIL + + [Pattern: [{"hash":"caf%c3%a9"}\] Inputs: [{"hash":"café"}\]] + expected: FAIL + + [Pattern: [{"protocol":"about","pathname":"(blank|sourcedoc)"}\] Inputs: ["about:blank"\]] + expected: FAIL + + [Pattern: [{"protocol":"data","pathname":":number([0-9\]+)"}\] Inputs: ["data:8675309"\]] + expected: FAIL + + [Pattern: [{"pathname":"/(\\\\m)"}\] Inputs: undefined] + expected: FAIL + + [Pattern: [{"pathname":"/foo!"}\] Inputs: [{"pathname":"/foo!"}\]] + expected: FAIL + + [Pattern: [{"pathname":"/foo\\\\:"}\] Inputs: [{"pathname":"/foo:"}\]] + expected: FAIL + + [Pattern: [{"pathname":"/foo\\\\{"}\] Inputs: [{"pathname":"/foo{"}\]] + expected: FAIL + + [Pattern: [{"pathname":"/foo\\\\("}\] Inputs: [{"pathname":"/foo("}\]] + expected: FAIL + + [Pattern: [{"protocol":"javascript","pathname":"var x = 1;"}\] Inputs: [{"protocol":"javascript","pathname":"var x = 1;"}\]] + expected: FAIL + + [Pattern: [{"pathname":"var x = 1;"}\] Inputs: [{"protocol":"javascript","pathname":"var x = 1;"}\]] + expected: FAIL + + [Pattern: [{"protocol":"javascript","pathname":"var x = 1;"}\] Inputs: [{"baseURL":"javascript:var x = 1;"}\]] + expected: FAIL + + [Pattern: [{"protocol":"(data|javascript)","pathname":"var x = 1;"}\] Inputs: [{"protocol":"javascript","pathname":"var x = 1;"}\]] + expected: FAIL + + [Pattern: [{"protocol":"(https|javascript)","pathname":"var x = 1;"}\] Inputs: [{"protocol":"javascript","pathname":"var x = 1;"}\]] + expected: FAIL + + [Pattern: [{"pathname":"var x = 1;"}\] Inputs: [{"pathname":"var x = 1;"}\]] + expected: FAIL + + [Pattern: [{"pathname":"/foo/bar"}\] Inputs: ["./foo/bar","https://example.com"\]] + expected: FAIL + + [Pattern: [{"pathname":"/foo/bar"}\] Inputs: [{"pathname":"/foo/bar"},"https://example.com"\]] + expected: FAIL + + [Pattern: ["https://example.com:8080/foo?bar#baz"\] Inputs: [{"pathname":"/foo","search":"bar","hash":"baz","baseURL":"https://example.com:8080"}\]] + expected: FAIL + + [Pattern: ["/foo?bar#baz","https://example.com:8080"\] Inputs: [{"pathname":"/foo","search":"bar","hash":"baz","baseURL":"https://example.com:8080"}\]] + expected: FAIL + + [Pattern: ["/foo"\] Inputs: undefined] + expected: FAIL + + [Pattern: ["example.com/foo"\] Inputs: undefined] + expected: FAIL + + [Pattern: ["http{s}?://{*.}?example.com/:product/:endpoint"\] Inputs: ["https://sub.example.com/foo/bar"\]] + expected: FAIL + + [Pattern: ["https://example.com?foo"\] Inputs: ["https://example.com/?foo"\]] + expected: FAIL + + [Pattern: ["https://example.com#foo"\] Inputs: ["https://example.com/#foo"\]] + expected: FAIL + + [Pattern: ["https://example.com:8080?foo"\] Inputs: ["https://example.com:8080/?foo"\]] + expected: FAIL + + [Pattern: ["https://example.com:8080#foo"\] Inputs: ["https://example.com:8080/#foo"\]] + expected: FAIL + + [Pattern: ["https://example.com/?foo"\] Inputs: ["https://example.com/?foo"\]] + expected: FAIL + + [Pattern: ["https://example.com/#foo"\] Inputs: ["https://example.com/#foo"\]] + expected: FAIL + + [Pattern: ["https://example.com/*?foo"\] Inputs: ["https://example.com/?foo"\]] + expected: FAIL + + [Pattern: ["https://example.com/*\\\\?foo"\] Inputs: ["https://example.com/?foo"\]] + expected: FAIL + + [Pattern: ["https://example.com/:name?foo"\] Inputs: ["https://example.com/bar?foo"\]] + expected: FAIL + + [Pattern: ["https://example.com/:name\\\\?foo"\] Inputs: ["https://example.com/bar?foo"\]] + expected: FAIL + + [Pattern: ["https://example.com/(bar)?foo"\] Inputs: ["https://example.com/bar?foo"\]] + expected: FAIL + + [Pattern: ["https://example.com/(bar)\\\\?foo"\] Inputs: ["https://example.com/bar?foo"\]] + expected: FAIL + + [Pattern: ["https://example.com/{bar}?foo"\] Inputs: ["https://example.com/bar?foo"\]] + expected: FAIL + + [Pattern: ["https://example.com/{bar}\\\\?foo"\] Inputs: ["https://example.com/bar?foo"\]] + expected: FAIL + + [Pattern: ["https://example.com/"\] Inputs: ["https://example.com:8080/"\]] + expected: FAIL + + [Pattern: ["data:foobar"\] Inputs: ["data:foobar"\]] + expected: FAIL + + [Pattern: ["data\\\\:foobar"\] Inputs: ["data:foobar"\]] + expected: FAIL + + [Pattern: ["https://{sub.}?example.com/foo"\] Inputs: ["https://example.com/foo"\]] + expected: FAIL + + [Pattern: ["https://{sub.}?example{.com/}foo"\] Inputs: ["https://example.com/foo"\]] + expected: FAIL + + [Pattern: ["{https://}example.com/foo"\] Inputs: ["https://example.com/foo"\]] + expected: FAIL + + [Pattern: ["https://(sub.)?example.com/foo"\] Inputs: ["https://example.com/foo"\]] + expected: FAIL + + [Pattern: ["https://(sub.)?example(.com/)foo"\] Inputs: ["https://example.com/foo"\]] + expected: FAIL + + [Pattern: ["(https://)example.com/foo"\] Inputs: ["https://example.com/foo"\]] + expected: FAIL + + [Pattern: ["https://{sub{.}}example.com/foo"\] Inputs: ["https://example.com/foo"\]] + expected: FAIL + + [Pattern: ["https://(sub(?:.))?example.com/foo"\] Inputs: ["https://example.com/foo"\]] + expected: FAIL + + [Pattern: ["file:///foo/bar"\] Inputs: ["file:///foo/bar"\]] + expected: FAIL + + [Pattern: ["data:"\] Inputs: ["data:"\]] + expected: FAIL + + [Pattern: ["foo://bar"\] Inputs: ["foo://bad_url_browser_interop"\]] + expected: FAIL + + [Pattern: ["(café)://foo"\] Inputs: undefined] + expected: FAIL + + [Pattern: [{"pathname":"/foo/bar","baseURL":"https://example.com"}\] Inputs: [{"protocol":"https","hostname":"example.com","pathname":"/foo/bar"}\]] + expected: FAIL + + [Pattern: [{"pathname":"/foo/bar","baseURL":"https://example.com"}\] Inputs: [{"protocol":"https","hostname":"example.com","pathname":"/foo/bar/baz"}\]] + expected: FAIL + + [Pattern: [{"pathname":"/foo/bar","baseURL":"https://example.com"}\] Inputs: [{"protocol":"https","hostname":"example.com","pathname":"/foo/bar","search":"otherquery","hash":"otherhash"}\]] + expected: FAIL + + [Pattern: [{"pathname":"/foo/bar","baseURL":"https://example.com?otherquery#otherhash"}\] Inputs: [{"protocol":"https","hostname":"example.com","pathname":"/foo/bar","search":"otherquery","hash":"otherhash"}\]] + expected: FAIL + + [Pattern: [{"pathname":"/foo/bar","baseURL":"https://example.com?query#hash"}\] Inputs: ["https://example.com/foo/bar?query#hash"\]] + expected: FAIL + + [Pattern: [{"pathname":"/foo/bar","baseURL":"https://example.com?query#hash"}\] Inputs: [{"pathname":"/foo/bar","baseURL":"https://example.com?query#hash"}\]] + expected: FAIL + + [Pattern: ["https://example.com/foo?bar#baz"\] Inputs: [{"protocol":"https:","search":"?bar","hash":"#baz","baseURL":"http://example.com/foo"}\]] + expected: FAIL + + [Pattern: [{"protocol":"http{s}?:","search":"?bar","hash":"#baz"}\] Inputs: ["http://example.com/foo?bar#baz"\]] + expected: FAIL + + [Pattern: ["?bar#baz","https://example.com/foo"\] Inputs: ["?bar#baz","https://example.com/foo"\]] + expected: FAIL + + [Pattern: ["?bar","https://example.com/foo#baz"\] Inputs: ["?bar","https://example.com/foo#snafu"\]] + expected: FAIL + + [Pattern: ["#baz","https://example.com/foo?bar"\] Inputs: ["#baz","https://example.com/foo?bar"\]] + expected: FAIL + + [Pattern: ["#baz","https://example.com/foo"\] Inputs: ["#baz","https://example.com/foo"\]] + expected: FAIL + + [Pattern: ["https://foo\\\\:bar@example.com"\] Inputs: ["https://foo:bar@example.com"\]] + expected: FAIL + + [Pattern: ["https://foo@example.com"\] Inputs: ["https://foo@example.com"\]] + expected: FAIL + + [Pattern: ["https://\\\\:bar@example.com"\] Inputs: ["https://:bar@example.com"\]] + expected: FAIL + + [Pattern: ["https://:user::pass@example.com"\] Inputs: ["https://foo:bar@example.com"\]] + expected: FAIL + + [Pattern: ["https\\\\:foo\\\\:bar@example.com"\] Inputs: ["https:foo:bar@example.com"\]] + expected: FAIL + + [Pattern: ["data\\\\:foo\\\\:bar@example.com"\] Inputs: ["data:foo:bar@example.com"\]] + expected: FAIL + + [Pattern: ["https://foo{\\\\:}bar@example.com"\] Inputs: ["https://foo:bar@example.com"\]] + expected: FAIL + + [Pattern: ["data{\\\\:}channel.html","https://example.com"\] Inputs: ["https://example.com/data:channel.html"\]] + expected: FAIL + + [Pattern: ["https://foo{{@}}example.com"\] Inputs: ["https://foo@example.com"\]] + expected: FAIL + + [Pattern: ["https://foo{@example.com"\] Inputs: ["https://foo@example.com"\]] + expected: FAIL + + [Pattern: [{"pathname":"*"}\] Inputs: ["foo","data:data-urls-cannot-be-base-urls"\]] + expected: FAIL + + [Pattern: [{"pathname":"\\\\/bar","baseURL":"https://example.com/foo/"}\] Inputs: [{"pathname":"./bar","baseURL":"https://example.com/foo/"}\]] + expected: FAIL + + [Pattern: [{"pathname":"/foo"},"https://example.com"\] Inputs: undefined] + expected: FAIL + + [Pattern: [{"pathname":":name"}\] Inputs: [{"pathname":"foobar"}\]] + expected: FAIL + + [Pattern: [{"pathname":"/:id/:id"}\] Inputs: undefined] + expected: FAIL + + [Pattern: [{"pathname":":name+"}\] Inputs: [{"pathname":"foobar"}\]] + expected: FAIL + + [Pattern: [{"pathname":"*"}\] Inputs: ["foo","not|a|valid|url"\]] + expected: FAIL + + [Pattern: [{"pathname":":name*"}\] Inputs: [{"pathname":"foobar"}\]] + expected: FAIL + + [Pattern: [{"pathname":"/foo/([^\\\\/\]+?)"}\] Inputs: [{"pathname":"/foo/bar"}\]] + expected: FAIL + + [Pattern: [{"pathname":"","baseURL":"https://example.com"}\] Inputs: [{"pathname":"/","baseURL":"https://example.com"}\]] + expected: FAIL + + [Pattern: [{"pathname":"{/bar}","baseURL":"https://example.com/foo/"}\] Inputs: [{"pathname":"./bar","baseURL":"https://example.com/foo/"}\]] + expected: FAIL + + [Pattern: [{"pathname":"b","baseURL":"https://example.com/foo/"}\] Inputs: [{"pathname":"./b","baseURL":"https://example.com/foo/"}\]] + expected: FAIL + + [Pattern: [{"pathname":"/foo","baseURL":""}\] Inputs: undefined] + expected: FAIL + + [Pattern: ["data\\\\:text/javascript,let x = 100/:tens?5;"\] Inputs: ["data:text/javascript,let x = 100/5;"\]] + expected: FAIL + + [Pattern: ["/foo",""\] Inputs: undefined] + expected: FAIL + + [Pattern: [{"protocol":":name"}\] Inputs: [{"protocol":"foobar"}\]] + expected: FAIL + + [Pattern: [{"protocol":":name*"}\] Inputs: [{"protocol":"foobar"}\]] + expected: FAIL + + [Pattern: [{"protocol":":name+"}\] Inputs: [{"protocol":"foobar"}\]] + expected: FAIL + + [Pattern: ["http://[\\\\:\\\\:a\]/"\] Inputs: ["http://[::a\]/"\]] + expected: FAIL + + [Pattern: ["http://[\\\\:\\\\:1\]:8080/"\] Inputs: ["http://[::1\]:8080/"\]] + expected: FAIL + + [Pattern: ["http://[\\\\:\\\\:1\]/"\] Inputs: ["http://[::1\]/"\]] + expected: FAIL + + [Pattern: ["http://[:address\]/"\] Inputs: ["http://[::1\]/"\]] + expected: FAIL + + [Pattern: ["http://[\\\\:\\\\:AB\\\\::num\]/"\] Inputs: ["http://[::ab:1\]/"\]] + expected: FAIL + + [Pattern: [{"hostname":"[\\\\:\\\\:AB\\\\::num\]"}\] Inputs: [{"hostname":"[::ab:1\]"}\]] + expected: FAIL + + [Pattern: [{"hostname":"[\\\\:\\\\:xY\\\\::num\]"}\] Inputs: undefined] + expected: FAIL + + [Pattern: [{"hostname":"{[\\\\:\\\\:ab\\\\::num\]}"}\] Inputs: [{"hostname":"[::ab:1\]"}\]] + expected: FAIL + + [Pattern: [{"hostname":"{[\\\\:\\\\:fé\\\\::num\]}"}\] Inputs: undefined] + expected: FAIL + + [Pattern: [{"hostname":"{[\\\\:\\\\::num\\\\:1\]}"}\] Inputs: [{"hostname":"[::ab:1\]"}\]] + expected: FAIL + + [Pattern: [{"hostname":"{[\\\\:\\\\::num\\\\:fé\]}"}\] Inputs: undefined] + expected: FAIL + + [Pattern: [{"hostname":"[*\\\\:1\]"}\] Inputs: [{"hostname":"[::ab:1\]"}\]] + expected: FAIL + + [Pattern: [{"hostname":"*\\\\:1\]"}\] Inputs: undefined] + expected: FAIL + + [Pattern: [{"hostname":"bad hostname"}\] Inputs: undefined] + expected: FAIL + + [Pattern: [{"hostname":"bad#hostname"}\] Inputs: undefined] + expected: FAIL + + [Pattern: [{"hostname":"bad%hostname"}\] Inputs: undefined] + expected: FAIL + + [Pattern: [{"hostname":"bad/hostname"}\] Inputs: undefined] + expected: FAIL + + [Pattern: [{"hostname":"bad\\\\:hostname"}\] Inputs: undefined] + expected: FAIL + + [Pattern: [{"hostname":"bad<hostname"}\] Inputs: undefined] + expected: FAIL + + [Pattern: [{"hostname":"bad>hostname"}\] Inputs: undefined] + expected: FAIL + + [Pattern: [{"hostname":"bad?hostname"}\] Inputs: undefined] + expected: FAIL + + [Pattern: [{"hostname":"bad@hostname"}\] Inputs: undefined] + expected: FAIL + + [Pattern: [{"hostname":"bad[hostname"}\] Inputs: undefined] + expected: FAIL + + [Pattern: [{"hostname":"bad\]hostname"}\] Inputs: undefined] + expected: FAIL + + [Pattern: [{"hostname":"bad\\\\\\\\hostname"}\] Inputs: undefined] + expected: FAIL + + [Pattern: [{"hostname":"bad^hostname"}\] Inputs: undefined] + expected: FAIL + + [Pattern: [{"hostname":"bad|hostname"}\] Inputs: undefined] + expected: FAIL + + [Pattern: [{"hostname":"bad\\nhostname"}\] Inputs: undefined] + expected: FAIL + + [Pattern: [{"hostname":"bad\\rhostname"}\] Inputs: undefined] + expected: FAIL + + [Pattern: [{"hostname":"bad\\thostname"}\] Inputs: undefined] + expected: FAIL + + [Pattern: [{}\] Inputs: ["https://example.com/"\]] + expected: FAIL + + [Pattern: [\] Inputs: ["https://example.com/"\]] + expected: FAIL + + [Pattern: [\] Inputs: [{}\]] + expected: FAIL + + [Pattern: [\] Inputs: [\]] + expected: FAIL + + [Pattern: [{"pathname":"{:foo}(barbaz)"}\] Inputs: [{"pathname":"foobarbaz"}\]] + expected: FAIL + + [Pattern: [{"pathname":"{:foo\\\\bar}"}\] Inputs: [{"pathname":"foobar"}\]] + expected: FAIL + + [Pattern: [{"pathname":"{:foo}{(.*)}"}\] Inputs: [{"pathname":"foobarbaz"}\]] + expected: FAIL + + [Pattern: [{"pathname":"(foo)(.*)"}\] Inputs: [{"pathname":"foobarbaz"}\]] + expected: FAIL + + [Pattern: [{"pathname":"{:foo(foo)bar}"}\] Inputs: [{"pathname":"foobar"}\]] + expected: FAIL + + [Pattern: [{"pathname":"{:foo}{bar(.*)}"}\] Inputs: [{"pathname":"foobarbaz"}\]] + expected: FAIL + + [Pattern: [{"pathname":"(foo)?(.*)"}\] Inputs: [{"pathname":"foobarbaz"}\]] + expected: FAIL + + [Pattern: [{"pathname":"{:foo\\\\.bar}"}\] Inputs: [{"pathname":"foo.bar"}\]] + expected: FAIL + + [Pattern: [{"pathname":"{(foo)bar}(.*)"}\] Inputs: [{"pathname":"foobarbaz"}\]] + expected: FAIL + + [Pattern: [{"pathname":"{:foo}?(.*)"}\] Inputs: [{"pathname":"foobarbaz"}\]] + expected: FAIL + + [Pattern: [{"pathname":"{:foo}{(.*)bar}"}\] Inputs: [{"pathname":"foobarbaz"}\]] + expected: FAIL + + [Pattern: [{"pathname":"{:foo}:bar(.*)"}\] Inputs: [{"pathname":"foobarbaz"}\]] + expected: FAIL + + [Pattern: [{"pathname":"{:foo}(.*)"}\] Inputs: [{"pathname":"foobarbaz"}\]] + expected: FAIL + + [Pattern: [{"pathname":":foo{}?bar"}\] Inputs: [{"pathname":"foobar"}\]] + expected: FAIL + + [Pattern: [{"pathname":":foo(baz)(.*)"}\] Inputs: [{"pathname":"bazbar"}\]] + expected: FAIL + + [Pattern: [{"pathname":":foo{}(.*)"}\] Inputs: [{"pathname":"foobar"}\]] + expected: FAIL + + [Pattern: [{"pathname":":foo\\\\bar"}\] Inputs: [{"pathname":"foobar"}\]] + expected: FAIL + + [Pattern: [{"pathname":"*{}**?"}\] Inputs: [{"pathname":"foobar"}\]] + expected: FAIL + + [Pattern: [{"pathname":":foo(baz)bar"}\] Inputs: [{"pathname":"bazbar"}\]] + expected: FAIL + + [Pattern: [{"pathname":"{:foo}bar"}\] Inputs: [{"pathname":"foobar"}\]] + expected: FAIL + + [Pattern: [{"pathname":":foo{}bar"}\] Inputs: [{"pathname":"foobar"}\]] + expected: FAIL + + [Pattern: [{"pathname":"*//*"}\] Inputs: [{"pathname":"foo/bar"}\]] + expected: FAIL + + [Pattern: [{"pathname":"/:foo."}\] Inputs: [{"pathname":"/bar."}\]] + expected: FAIL + + [Pattern: [{"pathname":"*/{*}"}\] Inputs: [{"pathname":"foo/bar"}\]] + expected: FAIL + + [Pattern: [{"pathname":"./foo"}\] Inputs: [{"pathname":"./foo"}\]] + expected: FAIL + + [Pattern: [{"pathname":":foo./"}\] Inputs: [{"pathname":"bar./"}\]] + expected: FAIL + + [Pattern: [{"pathname":"/:foo\\\\bar"}\] Inputs: [{"pathname":"/bazbar"}\]] + expected: FAIL + + [Pattern: [{"pathname":"../foo"}\] Inputs: [{"pathname":"../foo"}\]] + expected: FAIL + + [Pattern: [{"pathname":"/:foo.."}\] Inputs: [{"pathname":"/bar.."}\]] + expected: FAIL + + [Pattern: [{"pathname":":foo../"}\] Inputs: [{"pathname":"bar../"}\]] + expected: FAIL + + [Pattern: [{"pathname":"*\\\\/*"}\] Inputs: [{"pathname":"foo/bar"}\]] + expected: FAIL + + [Pattern: [{"pathname":"*/*"}\] Inputs: [{"pathname":"foo/bar"}\]] + expected: FAIL + + [Pattern: ["https://example.com:8080/foo?bar#baz",{"ignoreCase":true}\] Inputs: [{"pathname":"/FOO","search":"BAR","hash":"BAZ","baseURL":"https://example.com:8080"}\]] + expected: FAIL + + [Pattern: ["/foo?bar#baz","https://example.com:8080",{"ignoreCase":true}\] Inputs: [{"pathname":"/FOO","search":"BAR","hash":"BAZ","baseURL":"https://example.com:8080"}\]] + expected: FAIL + + [Pattern: [{"ignoreCase":true}\] Inputs: [{"pathname":"/FOO/BAR"}\]] + expected: FAIL + + [Pattern: ["/foo?bar#baz",{"ignoreCase":true},"https://example.com:8080"\] Inputs: [{"pathname":"/FOO","search":"BAR","hash":"BAZ","baseURL":"https://example.com:8080"}\]] + expected: FAIL + + [Pattern: [{"pathname":"/foo/bar"},{"ignoreCase":true}\] Inputs: [{"pathname":"/FOO/BAR"}\]] + expected: FAIL + + [Pattern: ["#foo","https://example.com/?q=*&v=?&hmm={}&umm=()"\] Inputs: ["https://example.com/?q=*&v=?&hmm={}&umm=()#foo"\]] + expected: FAIL + + [Pattern: [{"search":"foo","baseURL":"https://example.com/a/+/b"}\] Inputs: [{"search":"foo","baseURL":"https://example.com/a/+/b"}\]] + expected: FAIL + + [Pattern: [{"hash":"foo","baseURL":"https://example.com/?q=*&v=?&hmm={}&umm=()"}\] Inputs: [{"hash":"foo","baseURL":"https://example.com/?q=*&v=?&hmm={}&umm=()"}\]] + expected: FAIL + + +[urlpattern.https.any.html] + [Pattern: [{"pathname":"/foo/bar"}\] Inputs: [{"pathname":"/foo/bar"}\]] + expected: FAIL + + [Pattern: [{"pathname":"/foo/bar"}\] Inputs: [{"pathname":"/foo/ba"}\]] + expected: FAIL + + [Pattern: [{"pathname":"/foo/bar"}\] Inputs: [{"pathname":"/foo/bar/"}\]] + expected: FAIL + + [Pattern: [{"pathname":"/foo/bar"}\] Inputs: [{"pathname":"/foo/bar/baz"}\]] + expected: FAIL + + [Pattern: [{"pathname":"/foo/bar"}\] Inputs: ["https://example.com/foo/bar"\]] + expected: FAIL + + [Pattern: [{"pathname":"/foo/bar"}\] Inputs: ["https://example.com/foo/bar/baz"\]] + expected: FAIL + + [Pattern: [{"pathname":"/foo/bar"}\] Inputs: [{"hostname":"example.com","pathname":"/foo/bar"}\]] + expected: FAIL + + [Pattern: [{"pathname":"/foo/bar"}\] Inputs: [{"hostname":"example.com","pathname":"/foo/bar/baz"}\]] + expected: FAIL + + [Pattern: [{"pathname":"/foo/bar"}\] Inputs: [{"pathname":"/foo/bar","baseURL":"https://example.com"}\]] + expected: FAIL + + [Pattern: [{"pathname":"/foo/bar"}\] Inputs: [{"pathname":"/foo/bar/baz","baseURL":"https://example.com"}\]] + expected: FAIL + + [Pattern: [{"pathname":"/foo/bar","baseURL":"https://example.com?query#hash"}\] Inputs: [{"pathname":"/foo/bar"}\]] + expected: FAIL + + [Pattern: [{"pathname":"/foo/bar","baseURL":"https://example.com?query#hash"}\] Inputs: [{"hostname":"example.com","pathname":"/foo/bar"}\]] + expected: FAIL + + [Pattern: [{"pathname":"/foo/bar","baseURL":"https://example.com?query#hash"}\] Inputs: [{"protocol":"https","hostname":"example.com","pathname":"/foo/bar"}\]] + expected: FAIL + + [Pattern: [{"pathname":"/foo/bar","baseURL":"https://example.com?query#hash"}\] Inputs: [{"protocol":"https","hostname":"example.com","pathname":"/foo/bar","search":"otherquery","hash":"otherhash"}\]] + expected: FAIL + + [Pattern: [{"pathname":"/foo/bar","baseURL":"https://example.com?query#hash"}\] Inputs: ["https://example.com/foo/bar"\]] + expected: FAIL + + [Pattern: [{"pathname":"/foo/bar","baseURL":"https://example.com?query#hash"}\] Inputs: ["https://example.com/foo/bar?otherquery#otherhash"\]] + expected: FAIL + + [Pattern: [{"pathname":"/foo/bar","baseURL":"https://example.com?query#hash"}\] Inputs: ["https://example.com/foo/bar/baz"\]] + expected: FAIL + + [Pattern: [{"pathname":"/foo/bar","baseURL":"https://example.com?query#hash"}\] Inputs: ["https://other.com/foo/bar"\]] + expected: FAIL + + [Pattern: [{"pathname":"/foo/bar","baseURL":"https://example.com?query#hash"}\] Inputs: ["http://other.com/foo/bar"\]] + expected: FAIL + + [Pattern: [{"pathname":"/foo/bar","baseURL":"https://example.com?query#hash"}\] Inputs: [{"pathname":"/foo/bar","baseURL":"https://example.com"}\]] + expected: FAIL + + [Pattern: [{"pathname":"/foo/bar","baseURL":"https://example.com?query#hash"}\] Inputs: [{"pathname":"/foo/bar/baz","baseURL":"https://example.com"}\]] + expected: FAIL + + [Pattern: [{"pathname":"/foo/bar","baseURL":"https://example.com?query#hash"}\] Inputs: [{"pathname":"/foo/bar","baseURL":"https://other.com"}\]] + expected: FAIL + + [Pattern: [{"pathname":"/foo/bar","baseURL":"https://example.com?query#hash"}\] Inputs: [{"pathname":"/foo/bar","baseURL":"http://example.com"}\]] + expected: FAIL + + [Pattern: [{"pathname":"/foo/:bar"}\] Inputs: [{"pathname":"/foo/bar"}\]] + expected: FAIL + + [Pattern: [{"pathname":"/foo/:bar"}\] Inputs: [{"pathname":"/foo/index.html"}\]] + expected: FAIL + + [Pattern: [{"pathname":"/foo/:bar"}\] Inputs: [{"pathname":"/foo/bar/"}\]] + expected: FAIL + + [Pattern: [{"pathname":"/foo/:bar"}\] Inputs: [{"pathname":"/foo/"}\]] + expected: FAIL + + [Pattern: [{"pathname":"/foo/(.*)"}\] Inputs: [{"pathname":"/foo/bar"}\]] + expected: FAIL + + [Pattern: [{"pathname":"/foo/*"}\] Inputs: [{"pathname":"/foo/bar"}\]] + expected: FAIL + + [Pattern: [{"pathname":"/foo/(.*)"}\] Inputs: [{"pathname":"/foo/bar/baz"}\]] + expected: FAIL + + [Pattern: [{"pathname":"/foo/*"}\] Inputs: [{"pathname":"/foo/bar/baz"}\]] + expected: FAIL + + [Pattern: [{"pathname":"/foo/(.*)"}\] Inputs: [{"pathname":"/foo/"}\]] + expected: FAIL + + [Pattern: [{"pathname":"/foo/*"}\] Inputs: [{"pathname":"/foo/"}\]] + expected: FAIL + + [Pattern: [{"pathname":"/foo/(.*)"}\] Inputs: [{"pathname":"/foo"}\]] + expected: FAIL + + [Pattern: [{"pathname":"/foo/*"}\] Inputs: [{"pathname":"/foo"}\]] + expected: FAIL + + [Pattern: [{"pathname":"/foo/:bar(.*)"}\] Inputs: [{"pathname":"/foo/bar"}\]] + expected: FAIL + + [Pattern: [{"pathname":"/foo/:bar(.*)"}\] Inputs: [{"pathname":"/foo/bar/baz"}\]] + expected: FAIL + + [Pattern: [{"pathname":"/foo/:bar(.*)"}\] Inputs: [{"pathname":"/foo/"}\]] + expected: FAIL + + [Pattern: [{"pathname":"/foo/:bar(.*)"}\] Inputs: [{"pathname":"/foo"}\]] + expected: FAIL + + [Pattern: [{"pathname":"/foo/:bar?"}\] Inputs: [{"pathname":"/foo/bar"}\]] + expected: FAIL + + [Pattern: [{"pathname":"/foo/:bar?"}\] Inputs: [{"pathname":"/foo"}\]] + expected: FAIL + + [Pattern: [{"pathname":"/foo/:bar?"}\] Inputs: [{"pathname":"/foo/"}\]] + expected: FAIL + + [Pattern: [{"pathname":"/foo/:bar?"}\] Inputs: [{"pathname":"/foobar"}\]] + expected: FAIL + + [Pattern: [{"pathname":"/foo/:bar?"}\] Inputs: [{"pathname":"/foo/bar/baz"}\]] + expected: FAIL + + [Pattern: [{"pathname":"/foo/:bar+"}\] Inputs: [{"pathname":"/foo/bar"}\]] + expected: FAIL + + [Pattern: [{"pathname":"/foo/:bar+"}\] Inputs: [{"pathname":"/foo/bar/baz"}\]] + expected: FAIL + + [Pattern: [{"pathname":"/foo/:bar+"}\] Inputs: [{"pathname":"/foo"}\]] + expected: FAIL + + [Pattern: [{"pathname":"/foo/:bar+"}\] Inputs: [{"pathname":"/foo/"}\]] + expected: FAIL + + [Pattern: [{"pathname":"/foo/:bar+"}\] Inputs: [{"pathname":"/foobar"}\]] + expected: FAIL + + [Pattern: [{"pathname":"/foo/:bar*"}\] Inputs: [{"pathname":"/foo/bar"}\]] + expected: FAIL + + [Pattern: [{"pathname":"/foo/:bar*"}\] Inputs: [{"pathname":"/foo/bar/baz"}\]] + expected: FAIL + + [Pattern: [{"pathname":"/foo/:bar*"}\] Inputs: [{"pathname":"/foo"}\]] + expected: FAIL + + [Pattern: [{"pathname":"/foo/:bar*"}\] Inputs: [{"pathname":"/foo/"}\]] + expected: FAIL + + [Pattern: [{"pathname":"/foo/:bar*"}\] Inputs: [{"pathname":"/foobar"}\]] + expected: FAIL + + [Pattern: [{"pathname":"/foo/(.*)?"}\] Inputs: [{"pathname":"/foo/bar"}\]] + expected: FAIL + + [Pattern: [{"pathname":"/foo/*?"}\] Inputs: [{"pathname":"/foo/bar"}\]] + expected: FAIL + + [Pattern: [{"pathname":"/foo/(.*)?"}\] Inputs: [{"pathname":"/foo/bar/baz"}\]] + expected: FAIL + + [Pattern: [{"pathname":"/foo/*?"}\] Inputs: [{"pathname":"/foo/bar/baz"}\]] + expected: FAIL + + [Pattern: [{"pathname":"/foo/(.*)?"}\] Inputs: [{"pathname":"/foo"}\]] + expected: FAIL + + [Pattern: [{"pathname":"/foo/*?"}\] Inputs: [{"pathname":"/foo"}\]] + expected: FAIL + + [Pattern: [{"pathname":"/foo/(.*)?"}\] Inputs: [{"pathname":"/foo/"}\]] + expected: FAIL + + [Pattern: [{"pathname":"/foo/*?"}\] Inputs: [{"pathname":"/foo/"}\]] + expected: FAIL + + [Pattern: [{"pathname":"/foo/(.*)?"}\] Inputs: [{"pathname":"/foobar"}\]] + expected: FAIL + + [Pattern: [{"pathname":"/foo/*?"}\] Inputs: [{"pathname":"/foobar"}\]] + expected: FAIL + + [Pattern: [{"pathname":"/foo/(.*)?"}\] Inputs: [{"pathname":"/fo"}\]] + expected: FAIL + + [Pattern: [{"pathname":"/foo/*?"}\] Inputs: [{"pathname":"/fo"}\]] + expected: FAIL + + [Pattern: [{"pathname":"/foo/(.*)+"}\] Inputs: [{"pathname":"/foo/bar"}\]] + expected: FAIL + + [Pattern: [{"pathname":"/foo/*+"}\] Inputs: [{"pathname":"/foo/bar"}\]] + expected: FAIL + + [Pattern: [{"pathname":"/foo/(.*)+"}\] Inputs: [{"pathname":"/foo/bar/baz"}\]] + expected: FAIL + + [Pattern: [{"pathname":"/foo/*+"}\] Inputs: [{"pathname":"/foo/bar/baz"}\]] + expected: FAIL + + [Pattern: [{"pathname":"/foo/(.*)+"}\] Inputs: [{"pathname":"/foo"}\]] + expected: FAIL + + [Pattern: [{"pathname":"/foo/*+"}\] Inputs: [{"pathname":"/foo"}\]] + expected: FAIL + + [Pattern: [{"pathname":"/foo/(.*)+"}\] Inputs: [{"pathname":"/foo/"}\]] + expected: FAIL + + [Pattern: [{"pathname":"/foo/*+"}\] Inputs: [{"pathname":"/foo/"}\]] + expected: FAIL + + [Pattern: [{"pathname":"/foo/(.*)+"}\] Inputs: [{"pathname":"/foobar"}\]] + expected: FAIL + + [Pattern: [{"pathname":"/foo/*+"}\] Inputs: [{"pathname":"/foobar"}\]] + expected: FAIL + + [Pattern: [{"pathname":"/foo/(.*)+"}\] Inputs: [{"pathname":"/fo"}\]] + expected: FAIL + + [Pattern: [{"pathname":"/foo/*+"}\] Inputs: [{"pathname":"/fo"}\]] + expected: FAIL + + [Pattern: [{"pathname":"/foo/(.*)*"}\] Inputs: [{"pathname":"/foo/bar"}\]] + expected: FAIL + + [Pattern: [{"pathname":"/foo/**"}\] Inputs: [{"pathname":"/foo/bar"}\]] + expected: FAIL + + [Pattern: [{"pathname":"/foo/(.*)*"}\] Inputs: [{"pathname":"/foo/bar/baz"}\]] + expected: FAIL + + [Pattern: [{"pathname":"/foo/**"}\] Inputs: [{"pathname":"/foo/bar/baz"}\]] + expected: FAIL + + [Pattern: [{"pathname":"/foo/(.*)*"}\] Inputs: [{"pathname":"/foo"}\]] + expected: FAIL + + [Pattern: [{"pathname":"/foo/**"}\] Inputs: [{"pathname":"/foo"}\]] + expected: FAIL + + [Pattern: [{"pathname":"/foo/(.*)*"}\] Inputs: [{"pathname":"/foo/"}\]] + expected: FAIL + + [Pattern: [{"pathname":"/foo/**"}\] Inputs: [{"pathname":"/foo/"}\]] + expected: FAIL + + [Pattern: [{"pathname":"/foo/(.*)*"}\] Inputs: [{"pathname":"/foobar"}\]] + expected: FAIL + + [Pattern: [{"pathname":"/foo/**"}\] Inputs: [{"pathname":"/foobar"}\]] + expected: FAIL + + [Pattern: [{"pathname":"/foo/(.*)*"}\] Inputs: [{"pathname":"/fo"}\]] + expected: FAIL + + [Pattern: [{"pathname":"/foo/**"}\] Inputs: [{"pathname":"/fo"}\]] + expected: FAIL + + [Pattern: [{"pathname":"/foo{/bar}"}\] Inputs: [{"pathname":"/foo/bar"}\]] + expected: FAIL + + [Pattern: [{"pathname":"/foo{/bar}"}\] Inputs: [{"pathname":"/foo/bar/baz"}\]] + expected: FAIL + + [Pattern: [{"pathname":"/foo{/bar}"}\] Inputs: [{"pathname":"/foo"}\]] + expected: FAIL + + [Pattern: [{"pathname":"/foo{/bar}"}\] Inputs: [{"pathname":"/foo/"}\]] + expected: FAIL + + [Pattern: [{"pathname":"/foo{/bar}?"}\] Inputs: [{"pathname":"/foo/bar"}\]] + expected: FAIL + + [Pattern: [{"pathname":"/foo{/bar}?"}\] Inputs: [{"pathname":"/foo/bar/baz"}\]] + expected: FAIL + + [Pattern: [{"pathname":"/foo{/bar}?"}\] Inputs: [{"pathname":"/foo"}\]] + expected: FAIL + + [Pattern: [{"pathname":"/foo{/bar}?"}\] Inputs: [{"pathname":"/foo/"}\]] + expected: FAIL + + [Pattern: [{"pathname":"/foo{/bar}+"}\] Inputs: [{"pathname":"/foo/bar"}\]] + expected: FAIL + + [Pattern: [{"pathname":"/foo{/bar}+"}\] Inputs: [{"pathname":"/foo/bar/bar"}\]] + expected: FAIL + + [Pattern: [{"pathname":"/foo{/bar}+"}\] Inputs: [{"pathname":"/foo/bar/baz"}\]] + expected: FAIL + + [Pattern: [{"pathname":"/foo{/bar}+"}\] Inputs: [{"pathname":"/foo"}\]] + expected: FAIL + + [Pattern: [{"pathname":"/foo{/bar}+"}\] Inputs: [{"pathname":"/foo/"}\]] + expected: FAIL + + [Pattern: [{"pathname":"/foo{/bar}*"}\] Inputs: [{"pathname":"/foo/bar"}\]] + expected: FAIL + + [Pattern: [{"pathname":"/foo{/bar}*"}\] Inputs: [{"pathname":"/foo/bar/bar"}\]] + expected: FAIL + + [Pattern: [{"pathname":"/foo{/bar}*"}\] Inputs: [{"pathname":"/foo/bar/baz"}\]] + expected: FAIL + + [Pattern: [{"pathname":"/foo{/bar}*"}\] Inputs: [{"pathname":"/foo"}\]] + expected: FAIL + + [Pattern: [{"pathname":"/foo{/bar}*"}\] Inputs: [{"pathname":"/foo/"}\]] + expected: FAIL + + [Pattern: [{"protocol":"(café)"}\] Inputs: undefined] + expected: FAIL + + [Pattern: [{"username":"(café)"}\] Inputs: undefined] + expected: FAIL + + [Pattern: [{"password":"(café)"}\] Inputs: undefined] + expected: FAIL + + [Pattern: [{"hostname":"(café)"}\] Inputs: undefined] + expected: FAIL + + [Pattern: [{"pathname":"(café)"}\] Inputs: undefined] + expected: FAIL + + [Pattern: [{"search":"(café)"}\] Inputs: undefined] + expected: FAIL + + [Pattern: [{"hash":"(café)"}\] Inputs: undefined] + expected: FAIL + + [Pattern: [{"protocol":":café"}\] Inputs: [{"protocol":"foo"}\]] + expected: FAIL + + [Pattern: [{"username":":café"}\] Inputs: [{"username":"foo"}\]] + expected: FAIL + + [Pattern: [{"password":":café"}\] Inputs: [{"password":"foo"}\]] + expected: FAIL + + [Pattern: [{"hostname":":café"}\] Inputs: [{"hostname":"foo"}\]] + expected: FAIL + + [Pattern: [{"pathname":"/:café"}\] Inputs: [{"pathname":"/foo"}\]] + expected: FAIL + + [Pattern: [{"search":":café"}\] Inputs: [{"search":"foo"}\]] + expected: FAIL + + [Pattern: [{"hash":":café"}\] Inputs: [{"hash":"foo"}\]] + expected: FAIL + + [Pattern: [{"protocol":":℘"}\] Inputs: [{"protocol":"foo"}\]] + expected: FAIL + + [Pattern: [{"username":":℘"}\] Inputs: [{"username":"foo"}\]] + expected: FAIL + + [Pattern: [{"password":":℘"}\] Inputs: [{"password":"foo"}\]] + expected: FAIL + + [Pattern: [{"hostname":":℘"}\] Inputs: [{"hostname":"foo"}\]] + expected: FAIL + + [Pattern: [{"pathname":"/:℘"}\] Inputs: [{"pathname":"/foo"}\]] + expected: FAIL + + [Pattern: [{"search":":℘"}\] Inputs: [{"search":"foo"}\]] + expected: FAIL + + [Pattern: [{"hash":":℘"}\] Inputs: [{"hash":"foo"}\]] + expected: FAIL + + [Pattern: [{"protocol":":㐀"}\] Inputs: [{"protocol":"foo"}\]] + expected: FAIL + + [Pattern: [{"username":":㐀"}\] Inputs: [{"username":"foo"}\]] + expected: FAIL + + [Pattern: [{"password":":㐀"}\] Inputs: [{"password":"foo"}\]] + expected: FAIL + + [Pattern: [{"hostname":":㐀"}\] Inputs: [{"hostname":"foo"}\]] + expected: FAIL + + [Pattern: [{"pathname":"/:㐀"}\] Inputs: [{"pathname":"/foo"}\]] + expected: FAIL + + [Pattern: [{"search":":㐀"}\] Inputs: [{"search":"foo"}\]] + expected: FAIL + + [Pattern: [{"hash":":㐀"}\] Inputs: [{"hash":"foo"}\]] + expected: FAIL + + [Pattern: [{"protocol":"(.*)"}\] Inputs: [{"protocol":"café"}\]] + expected: FAIL + + [Pattern: [{"protocol":"(.*)"}\] Inputs: [{"protocol":"cafe"}\]] + expected: FAIL + + [Pattern: [{"protocol":"foo-bar"}\] Inputs: [{"protocol":"foo-bar"}\]] + expected: FAIL + + [Pattern: [{"username":"caf%C3%A9"}\] Inputs: [{"username":"café"}\]] + expected: FAIL + + [Pattern: [{"username":"café"}\] Inputs: [{"username":"café"}\]] + expected: FAIL + + [Pattern: [{"username":"caf%c3%a9"}\] Inputs: [{"username":"café"}\]] + expected: FAIL + + [Pattern: [{"password":"caf%C3%A9"}\] Inputs: [{"password":"café"}\]] + expected: FAIL + + [Pattern: [{"password":"café"}\] Inputs: [{"password":"café"}\]] + expected: FAIL + + [Pattern: [{"password":"caf%c3%a9"}\] Inputs: [{"password":"café"}\]] + expected: FAIL + + [Pattern: [{"hostname":"xn--caf-dma.com"}\] Inputs: [{"hostname":"café.com"}\]] + expected: FAIL + + [Pattern: [{"hostname":"café.com"}\] Inputs: [{"hostname":"café.com"}\]] + expected: FAIL + + [Pattern: [{"port":""}\] Inputs: [{"protocol":"http","port":"80"}\]] + expected: FAIL + + [Pattern: [{"protocol":"http","port":"80"}\] Inputs: [{"protocol":"http","port":"80"}\]] + expected: FAIL + + [Pattern: [{"protocol":"http","port":"80{20}?"}\] Inputs: [{"protocol":"http","port":"80"}\]] + expected: FAIL + + [Pattern: [{"protocol":"http","port":"80 "}\] Inputs: [{"protocol":"http","port":"80"}\]] + expected: FAIL + + [Pattern: [{"port":"80"}\] Inputs: [{"protocol":"http","port":"80"}\]] + expected: FAIL + + [Pattern: [{"protocol":"http{s}?","port":"80"}\] Inputs: [{"protocol":"http","port":"80"}\]] + expected: FAIL + + [Pattern: [{"port":"80"}\] Inputs: [{"port":"80"}\]] + expected: FAIL + + [Pattern: [{"port":"(.*)"}\] Inputs: [{"port":"invalid80"}\]] + expected: FAIL + + [Pattern: [{"pathname":"/foo/bar"}\] Inputs: [{"pathname":"/foo/./bar"}\]] + expected: FAIL + + [Pattern: [{"pathname":"/foo/baz"}\] Inputs: [{"pathname":"/foo/bar/../baz"}\]] + expected: FAIL + + [Pattern: [{"pathname":"/caf%C3%A9"}\] Inputs: [{"pathname":"/café"}\]] + expected: FAIL + + [Pattern: [{"pathname":"/café"}\] Inputs: [{"pathname":"/café"}\]] + expected: FAIL + + [Pattern: [{"pathname":"/caf%c3%a9"}\] Inputs: [{"pathname":"/café"}\]] + expected: FAIL + + [Pattern: [{"pathname":"/foo/bar"}\] Inputs: [{"pathname":"foo/bar"}\]] + expected: FAIL + + [Pattern: [{"pathname":"/foo/bar"}\] Inputs: [{"pathname":"foo/bar","baseURL":"https://example.com"}\]] + expected: FAIL + + [Pattern: [{"pathname":"/foo/../bar"}\] Inputs: [{"pathname":"/bar"}\]] + expected: FAIL + + [Pattern: [{"pathname":"./foo/bar","baseURL":"https://example.com"}\] Inputs: [{"pathname":"foo/bar","baseURL":"https://example.com"}\]] + expected: FAIL + + [Pattern: [{"pathname":"foo/bar"}\] Inputs: ["https://example.com/foo/bar"\]] + expected: FAIL + + [Pattern: [{"pathname":"foo/bar","baseURL":"https://example.com"}\] Inputs: ["https://example.com/foo/bar"\]] + expected: FAIL + + [Pattern: [{"pathname":":name.html","baseURL":"https://example.com"}\] Inputs: ["https://example.com/foo.html"\]] + expected: FAIL + + [Pattern: [{"search":"q=caf%C3%A9"}\] Inputs: [{"search":"q=café"}\]] + expected: FAIL + + [Pattern: [{"search":"q=café"}\] Inputs: [{"search":"q=café"}\]] + expected: FAIL + + [Pattern: [{"search":"q=caf%c3%a9"}\] Inputs: [{"search":"q=café"}\]] + expected: FAIL + + [Pattern: [{"hash":"caf%C3%A9"}\] Inputs: [{"hash":"café"}\]] + expected: FAIL + + [Pattern: [{"hash":"café"}\] Inputs: [{"hash":"café"}\]] + expected: FAIL + + [Pattern: [{"hash":"caf%c3%a9"}\] Inputs: [{"hash":"café"}\]] + expected: FAIL + + [Pattern: [{"protocol":"about","pathname":"(blank|sourcedoc)"}\] Inputs: ["about:blank"\]] + expected: FAIL + + [Pattern: [{"protocol":"data","pathname":":number([0-9\]+)"}\] Inputs: ["data:8675309"\]] + expected: FAIL + + [Pattern: [{"pathname":"/(\\\\m)"}\] Inputs: undefined] + expected: FAIL + + [Pattern: [{"pathname":"/foo!"}\] Inputs: [{"pathname":"/foo!"}\]] + expected: FAIL + + [Pattern: [{"pathname":"/foo\\\\:"}\] Inputs: [{"pathname":"/foo:"}\]] + expected: FAIL + + [Pattern: [{"pathname":"/foo\\\\{"}\] Inputs: [{"pathname":"/foo{"}\]] + expected: FAIL + + [Pattern: [{"pathname":"/foo\\\\("}\] Inputs: [{"pathname":"/foo("}\]] + expected: FAIL + + [Pattern: [{"protocol":"javascript","pathname":"var x = 1;"}\] Inputs: [{"protocol":"javascript","pathname":"var x = 1;"}\]] + expected: FAIL + + [Pattern: [{"pathname":"var x = 1;"}\] Inputs: [{"protocol":"javascript","pathname":"var x = 1;"}\]] + expected: FAIL + + [Pattern: [{"protocol":"javascript","pathname":"var x = 1;"}\] Inputs: [{"baseURL":"javascript:var x = 1;"}\]] + expected: FAIL + + [Pattern: [{"protocol":"(data|javascript)","pathname":"var x = 1;"}\] Inputs: [{"protocol":"javascript","pathname":"var x = 1;"}\]] + expected: FAIL + + [Pattern: [{"protocol":"(https|javascript)","pathname":"var x = 1;"}\] Inputs: [{"protocol":"javascript","pathname":"var x = 1;"}\]] + expected: FAIL + + [Pattern: [{"pathname":"var x = 1;"}\] Inputs: [{"pathname":"var x = 1;"}\]] + expected: FAIL + + [Pattern: [{"pathname":"/foo/bar"}\] Inputs: ["./foo/bar","https://example.com"\]] + expected: FAIL + + [Pattern: [{"pathname":"/foo/bar"}\] Inputs: [{"pathname":"/foo/bar"},"https://example.com"\]] + expected: FAIL + + [Pattern: ["https://example.com:8080/foo?bar#baz"\] Inputs: [{"pathname":"/foo","search":"bar","hash":"baz","baseURL":"https://example.com:8080"}\]] + expected: FAIL + + [Pattern: ["/foo?bar#baz","https://example.com:8080"\] Inputs: [{"pathname":"/foo","search":"bar","hash":"baz","baseURL":"https://example.com:8080"}\]] + expected: FAIL + + [Pattern: ["/foo"\] Inputs: undefined] + expected: FAIL + + [Pattern: ["example.com/foo"\] Inputs: undefined] + expected: FAIL + + [Pattern: ["http{s}?://{*.}?example.com/:product/:endpoint"\] Inputs: ["https://sub.example.com/foo/bar"\]] + expected: FAIL + + [Pattern: ["https://example.com?foo"\] Inputs: ["https://example.com/?foo"\]] + expected: FAIL + + [Pattern: ["https://example.com#foo"\] Inputs: ["https://example.com/#foo"\]] + expected: FAIL + + [Pattern: ["https://example.com:8080?foo"\] Inputs: ["https://example.com:8080/?foo"\]] + expected: FAIL + + [Pattern: ["https://example.com:8080#foo"\] Inputs: ["https://example.com:8080/#foo"\]] + expected: FAIL + + [Pattern: ["https://example.com/?foo"\] Inputs: ["https://example.com/?foo"\]] + expected: FAIL + + [Pattern: ["https://example.com/#foo"\] Inputs: ["https://example.com/#foo"\]] + expected: FAIL + + [Pattern: ["https://example.com/*?foo"\] Inputs: ["https://example.com/?foo"\]] + expected: FAIL + + [Pattern: ["https://example.com/*\\\\?foo"\] Inputs: ["https://example.com/?foo"\]] + expected: FAIL + + [Pattern: ["https://example.com/:name?foo"\] Inputs: ["https://example.com/bar?foo"\]] + expected: FAIL + + [Pattern: ["https://example.com/:name\\\\?foo"\] Inputs: ["https://example.com/bar?foo"\]] + expected: FAIL + + [Pattern: ["https://example.com/(bar)?foo"\] Inputs: ["https://example.com/bar?foo"\]] + expected: FAIL + + [Pattern: ["https://example.com/(bar)\\\\?foo"\] Inputs: ["https://example.com/bar?foo"\]] + expected: FAIL + + [Pattern: ["https://example.com/{bar}?foo"\] Inputs: ["https://example.com/bar?foo"\]] + expected: FAIL + + [Pattern: ["https://example.com/{bar}\\\\?foo"\] Inputs: ["https://example.com/bar?foo"\]] + expected: FAIL + + [Pattern: ["https://example.com/"\] Inputs: ["https://example.com:8080/"\]] + expected: FAIL + + [Pattern: ["data:foobar"\] Inputs: ["data:foobar"\]] + expected: FAIL + + [Pattern: ["data\\\\:foobar"\] Inputs: ["data:foobar"\]] + expected: FAIL + + [Pattern: ["https://{sub.}?example.com/foo"\] Inputs: ["https://example.com/foo"\]] + expected: FAIL + + [Pattern: ["https://{sub.}?example{.com/}foo"\] Inputs: ["https://example.com/foo"\]] + expected: FAIL + + [Pattern: ["{https://}example.com/foo"\] Inputs: ["https://example.com/foo"\]] + expected: FAIL + + [Pattern: ["https://(sub.)?example.com/foo"\] Inputs: ["https://example.com/foo"\]] + expected: FAIL + + [Pattern: ["https://(sub.)?example(.com/)foo"\] Inputs: ["https://example.com/foo"\]] + expected: FAIL + + [Pattern: ["(https://)example.com/foo"\] Inputs: ["https://example.com/foo"\]] + expected: FAIL + + [Pattern: ["https://{sub{.}}example.com/foo"\] Inputs: ["https://example.com/foo"\]] + expected: FAIL + + [Pattern: ["https://(sub(?:.))?example.com/foo"\] Inputs: ["https://example.com/foo"\]] + expected: FAIL + + [Pattern: ["file:///foo/bar"\] Inputs: ["file:///foo/bar"\]] + expected: FAIL + + [Pattern: ["data:"\] Inputs: ["data:"\]] + expected: FAIL + + [Pattern: ["foo://bar"\] Inputs: ["foo://bad_url_browser_interop"\]] + expected: FAIL + + [Pattern: ["(café)://foo"\] Inputs: undefined] + expected: FAIL + + [Pattern: [{"pathname":"/foo/bar","baseURL":"https://example.com"}\] Inputs: [{"protocol":"https","hostname":"example.com","pathname":"/foo/bar"}\]] + expected: FAIL + + [Pattern: [{"pathname":"/foo/bar","baseURL":"https://example.com"}\] Inputs: [{"protocol":"https","hostname":"example.com","pathname":"/foo/bar/baz"}\]] + expected: FAIL + + [Pattern: [{"pathname":"/foo/bar","baseURL":"https://example.com"}\] Inputs: [{"protocol":"https","hostname":"example.com","pathname":"/foo/bar","search":"otherquery","hash":"otherhash"}\]] + expected: FAIL + + [Pattern: [{"pathname":"/foo/bar","baseURL":"https://example.com?otherquery#otherhash"}\] Inputs: [{"protocol":"https","hostname":"example.com","pathname":"/foo/bar","search":"otherquery","hash":"otherhash"}\]] + expected: FAIL + + [Pattern: [{"pathname":"/foo/bar","baseURL":"https://example.com?query#hash"}\] Inputs: ["https://example.com/foo/bar?query#hash"\]] + expected: FAIL + + [Pattern: [{"pathname":"/foo/bar","baseURL":"https://example.com?query#hash"}\] Inputs: [{"pathname":"/foo/bar","baseURL":"https://example.com?query#hash"}\]] + expected: FAIL + + [Pattern: ["https://example.com/foo?bar#baz"\] Inputs: [{"protocol":"https:","search":"?bar","hash":"#baz","baseURL":"http://example.com/foo"}\]] + expected: FAIL + + [Pattern: [{"protocol":"http{s}?:","search":"?bar","hash":"#baz"}\] Inputs: ["http://example.com/foo?bar#baz"\]] + expected: FAIL + + [Pattern: ["?bar#baz","https://example.com/foo"\] Inputs: ["?bar#baz","https://example.com/foo"\]] + expected: FAIL + + [Pattern: ["?bar","https://example.com/foo#baz"\] Inputs: ["?bar","https://example.com/foo#snafu"\]] + expected: FAIL + + [Pattern: ["#baz","https://example.com/foo?bar"\] Inputs: ["#baz","https://example.com/foo?bar"\]] + expected: FAIL + + [Pattern: ["#baz","https://example.com/foo"\] Inputs: ["#baz","https://example.com/foo"\]] + expected: FAIL + + [Pattern: ["https://foo\\\\:bar@example.com"\] Inputs: ["https://foo:bar@example.com"\]] + expected: FAIL + + [Pattern: ["https://foo@example.com"\] Inputs: ["https://foo@example.com"\]] + expected: FAIL + + [Pattern: ["https://\\\\:bar@example.com"\] Inputs: ["https://:bar@example.com"\]] + expected: FAIL + + [Pattern: ["https://:user::pass@example.com"\] Inputs: ["https://foo:bar@example.com"\]] + expected: FAIL + + [Pattern: ["https\\\\:foo\\\\:bar@example.com"\] Inputs: ["https:foo:bar@example.com"\]] + expected: FAIL + + [Pattern: ["data\\\\:foo\\\\:bar@example.com"\] Inputs: ["data:foo:bar@example.com"\]] + expected: FAIL + + [Pattern: ["https://foo{\\\\:}bar@example.com"\] Inputs: ["https://foo:bar@example.com"\]] + expected: FAIL + + [Pattern: ["data{\\\\:}channel.html","https://example.com"\] Inputs: ["https://example.com/data:channel.html"\]] + expected: FAIL + + [Pattern: ["https://foo{{@}}example.com"\] Inputs: ["https://foo@example.com"\]] + expected: FAIL + + [Pattern: ["https://foo{@example.com"\] Inputs: ["https://foo@example.com"\]] + expected: FAIL + + [Pattern: [{"pathname":"*"}\] Inputs: ["foo","data:data-urls-cannot-be-base-urls"\]] + expected: FAIL + + [Pattern: [{"pathname":"\\\\/bar","baseURL":"https://example.com/foo/"}\] Inputs: [{"pathname":"./bar","baseURL":"https://example.com/foo/"}\]] + expected: FAIL + + [Pattern: [{"pathname":"/foo"},"https://example.com"\] Inputs: undefined] + expected: FAIL + + [Pattern: [{"pathname":":name"}\] Inputs: [{"pathname":"foobar"}\]] + expected: FAIL + + [Pattern: [{"pathname":"/:id/:id"}\] Inputs: undefined] + expected: FAIL + + [Pattern: [{"pathname":":name+"}\] Inputs: [{"pathname":"foobar"}\]] + expected: FAIL + + [Pattern: [{"pathname":"*"}\] Inputs: ["foo","not|a|valid|url"\]] + expected: FAIL + + [Pattern: [{"pathname":":name*"}\] Inputs: [{"pathname":"foobar"}\]] + expected: FAIL + + [Pattern: [{"pathname":"/foo/([^\\\\/\]+?)"}\] Inputs: [{"pathname":"/foo/bar"}\]] + expected: FAIL + + [Pattern: [{"pathname":"","baseURL":"https://example.com"}\] Inputs: [{"pathname":"/","baseURL":"https://example.com"}\]] + expected: FAIL + + [Pattern: [{"pathname":"{/bar}","baseURL":"https://example.com/foo/"}\] Inputs: [{"pathname":"./bar","baseURL":"https://example.com/foo/"}\]] + expected: FAIL + + [Pattern: [{"pathname":"b","baseURL":"https://example.com/foo/"}\] Inputs: [{"pathname":"./b","baseURL":"https://example.com/foo/"}\]] + expected: FAIL + + [Pattern: [{"pathname":"/foo","baseURL":""}\] Inputs: undefined] + expected: FAIL + + [Pattern: ["data\\\\:text/javascript,let x = 100/:tens?5;"\] Inputs: ["data:text/javascript,let x = 100/5;"\]] + expected: FAIL + + [Pattern: ["/foo",""\] Inputs: undefined] + expected: FAIL + + [Pattern: [{"protocol":":name"}\] Inputs: [{"protocol":"foobar"}\]] + expected: FAIL + + [Pattern: [{"protocol":":name*"}\] Inputs: [{"protocol":"foobar"}\]] + expected: FAIL + + [Pattern: [{"protocol":":name+"}\] Inputs: [{"protocol":"foobar"}\]] + expected: FAIL + + [Pattern: ["http://[\\\\:\\\\:a\]/"\] Inputs: ["http://[::a\]/"\]] + expected: FAIL + + [Pattern: ["http://[\\\\:\\\\:1\]:8080/"\] Inputs: ["http://[::1\]:8080/"\]] + expected: FAIL + + [Pattern: ["http://[\\\\:\\\\:1\]/"\] Inputs: ["http://[::1\]/"\]] + expected: FAIL + + [Pattern: ["http://[:address\]/"\] Inputs: ["http://[::1\]/"\]] + expected: FAIL + + [Pattern: ["http://[\\\\:\\\\:AB\\\\::num\]/"\] Inputs: ["http://[::ab:1\]/"\]] + expected: FAIL + + [Pattern: [{"hostname":"[\\\\:\\\\:AB\\\\::num\]"}\] Inputs: [{"hostname":"[::ab:1\]"}\]] + expected: FAIL + + [Pattern: [{"hostname":"[\\\\:\\\\:xY\\\\::num\]"}\] Inputs: undefined] + expected: FAIL + + [Pattern: [{"hostname":"{[\\\\:\\\\:ab\\\\::num\]}"}\] Inputs: [{"hostname":"[::ab:1\]"}\]] + expected: FAIL + + [Pattern: [{"hostname":"{[\\\\:\\\\:fé\\\\::num\]}"}\] Inputs: undefined] + expected: FAIL + + [Pattern: [{"hostname":"{[\\\\:\\\\::num\\\\:1\]}"}\] Inputs: [{"hostname":"[::ab:1\]"}\]] + expected: FAIL + + [Pattern: [{"hostname":"{[\\\\:\\\\::num\\\\:fé\]}"}\] Inputs: undefined] + expected: FAIL + + [Pattern: [{"hostname":"[*\\\\:1\]"}\] Inputs: [{"hostname":"[::ab:1\]"}\]] + expected: FAIL + + [Pattern: [{"hostname":"*\\\\:1\]"}\] Inputs: undefined] + expected: FAIL + + [Pattern: [{"hostname":"bad hostname"}\] Inputs: undefined] + expected: FAIL + + [Pattern: [{"hostname":"bad#hostname"}\] Inputs: undefined] + expected: FAIL + + [Pattern: [{"hostname":"bad%hostname"}\] Inputs: undefined] + expected: FAIL + + [Pattern: [{"hostname":"bad/hostname"}\] Inputs: undefined] + expected: FAIL + + [Pattern: [{"hostname":"bad\\\\:hostname"}\] Inputs: undefined] + expected: FAIL + + [Pattern: [{"hostname":"bad<hostname"}\] Inputs: undefined] + expected: FAIL + + [Pattern: [{"hostname":"bad>hostname"}\] Inputs: undefined] + expected: FAIL + + [Pattern: [{"hostname":"bad?hostname"}\] Inputs: undefined] + expected: FAIL + + [Pattern: [{"hostname":"bad@hostname"}\] Inputs: undefined] + expected: FAIL + + [Pattern: [{"hostname":"bad[hostname"}\] Inputs: undefined] + expected: FAIL + + [Pattern: [{"hostname":"bad\]hostname"}\] Inputs: undefined] + expected: FAIL + + [Pattern: [{"hostname":"bad\\\\\\\\hostname"}\] Inputs: undefined] + expected: FAIL + + [Pattern: [{"hostname":"bad^hostname"}\] Inputs: undefined] + expected: FAIL + + [Pattern: [{"hostname":"bad|hostname"}\] Inputs: undefined] + expected: FAIL + + [Pattern: [{"hostname":"bad\\nhostname"}\] Inputs: undefined] + expected: FAIL + + [Pattern: [{"hostname":"bad\\rhostname"}\] Inputs: undefined] + expected: FAIL + + [Pattern: [{"hostname":"bad\\thostname"}\] Inputs: undefined] + expected: FAIL + + [Pattern: [{}\] Inputs: ["https://example.com/"\]] + expected: FAIL + + [Pattern: [\] Inputs: ["https://example.com/"\]] + expected: FAIL + + [Pattern: [\] Inputs: [{}\]] + expected: FAIL + + [Pattern: [\] Inputs: [\]] + expected: FAIL + + [Pattern: [{"pathname":"{:foo}(barbaz)"}\] Inputs: [{"pathname":"foobarbaz"}\]] + expected: FAIL + + [Pattern: [{"pathname":"{:foo\\\\bar}"}\] Inputs: [{"pathname":"foobar"}\]] + expected: FAIL + + [Pattern: [{"pathname":"{:foo}{(.*)}"}\] Inputs: [{"pathname":"foobarbaz"}\]] + expected: FAIL + + [Pattern: [{"pathname":"(foo)(.*)"}\] Inputs: [{"pathname":"foobarbaz"}\]] + expected: FAIL + + [Pattern: [{"pathname":"{:foo(foo)bar}"}\] Inputs: [{"pathname":"foobar"}\]] + expected: FAIL + + [Pattern: [{"pathname":"{:foo}{bar(.*)}"}\] Inputs: [{"pathname":"foobarbaz"}\]] + expected: FAIL + + [Pattern: [{"pathname":"(foo)?(.*)"}\] Inputs: [{"pathname":"foobarbaz"}\]] + expected: FAIL + + [Pattern: [{"pathname":"{:foo\\\\.bar}"}\] Inputs: [{"pathname":"foo.bar"}\]] + expected: FAIL + + [Pattern: [{"pathname":"{(foo)bar}(.*)"}\] Inputs: [{"pathname":"foobarbaz"}\]] + expected: FAIL + + [Pattern: [{"pathname":"{:foo}?(.*)"}\] Inputs: [{"pathname":"foobarbaz"}\]] + expected: FAIL + + [Pattern: [{"pathname":"{:foo}{(.*)bar}"}\] Inputs: [{"pathname":"foobarbaz"}\]] + expected: FAIL + + [Pattern: [{"pathname":"{:foo}:bar(.*)"}\] Inputs: [{"pathname":"foobarbaz"}\]] + expected: FAIL + + [Pattern: [{"pathname":"{:foo}(.*)"}\] Inputs: [{"pathname":"foobarbaz"}\]] + expected: FAIL + + [Pattern: [{"pathname":":foo{}?bar"}\] Inputs: [{"pathname":"foobar"}\]] + expected: FAIL + + [Pattern: [{"pathname":":foo(baz)(.*)"}\] Inputs: [{"pathname":"bazbar"}\]] + expected: FAIL + + [Pattern: [{"pathname":":foo{}(.*)"}\] Inputs: [{"pathname":"foobar"}\]] + expected: FAIL + + [Pattern: [{"pathname":":foo\\\\bar"}\] Inputs: [{"pathname":"foobar"}\]] + expected: FAIL + + [Pattern: [{"pathname":"*{}**?"}\] Inputs: [{"pathname":"foobar"}\]] + expected: FAIL + + [Pattern: [{"pathname":":foo(baz)bar"}\] Inputs: [{"pathname":"bazbar"}\]] + expected: FAIL + + [Pattern: [{"pathname":"{:foo}bar"}\] Inputs: [{"pathname":"foobar"}\]] + expected: FAIL + + [Pattern: [{"pathname":":foo{}bar"}\] Inputs: [{"pathname":"foobar"}\]] + expected: FAIL + + [Pattern: [{"pathname":"*//*"}\] Inputs: [{"pathname":"foo/bar"}\]] + expected: FAIL + + [Pattern: [{"pathname":"/:foo."}\] Inputs: [{"pathname":"/bar."}\]] + expected: FAIL + + [Pattern: [{"pathname":"*/{*}"}\] Inputs: [{"pathname":"foo/bar"}\]] + expected: FAIL + + [Pattern: [{"pathname":"./foo"}\] Inputs: [{"pathname":"./foo"}\]] + expected: FAIL + + [Pattern: [{"pathname":":foo./"}\] Inputs: [{"pathname":"bar./"}\]] + expected: FAIL + + [Pattern: [{"pathname":"/:foo\\\\bar"}\] Inputs: [{"pathname":"/bazbar"}\]] + expected: FAIL + + [Pattern: [{"pathname":"../foo"}\] Inputs: [{"pathname":"../foo"}\]] + expected: FAIL + + [Pattern: [{"pathname":"/:foo.."}\] Inputs: [{"pathname":"/bar.."}\]] + expected: FAIL + + [Pattern: [{"pathname":":foo../"}\] Inputs: [{"pathname":"bar../"}\]] + expected: FAIL + + [Pattern: [{"pathname":"*\\\\/*"}\] Inputs: [{"pathname":"foo/bar"}\]] + expected: FAIL + + [Pattern: [{"pathname":"*/*"}\] Inputs: [{"pathname":"foo/bar"}\]] + expected: FAIL + + [Pattern: ["https://example.com:8080/foo?bar#baz",{"ignoreCase":true}\] Inputs: [{"pathname":"/FOO","search":"BAR","hash":"BAZ","baseURL":"https://example.com:8080"}\]] + expected: FAIL + + [Pattern: ["/foo?bar#baz","https://example.com:8080",{"ignoreCase":true}\] Inputs: [{"pathname":"/FOO","search":"BAR","hash":"BAZ","baseURL":"https://example.com:8080"}\]] + expected: FAIL + + [Pattern: [{"ignoreCase":true}\] Inputs: [{"pathname":"/FOO/BAR"}\]] + expected: FAIL + + [Pattern: ["/foo?bar#baz",{"ignoreCase":true},"https://example.com:8080"\] Inputs: [{"pathname":"/FOO","search":"BAR","hash":"BAZ","baseURL":"https://example.com:8080"}\]] + expected: FAIL + + [Pattern: [{"pathname":"/foo/bar"},{"ignoreCase":true}\] Inputs: [{"pathname":"/FOO/BAR"}\]] + expected: FAIL + + [Pattern: ["#foo","https://example.com/?q=*&v=?&hmm={}&umm=()"\] Inputs: ["https://example.com/?q=*&v=?&hmm={}&umm=()#foo"\]] + expected: FAIL + + [Pattern: [{"search":"foo","baseURL":"https://example.com/a/+/b"}\] Inputs: [{"search":"foo","baseURL":"https://example.com/a/+/b"}\]] + expected: FAIL + + [Pattern: [{"hash":"foo","baseURL":"https://example.com/?q=*&v=?&hmm={}&umm=()"}\] Inputs: [{"hash":"foo","baseURL":"https://example.com/?q=*&v=?&hmm={}&umm=()"}\]] + expected: FAIL + + +[urlpattern.https.any.worker.html] + [Pattern: [{"pathname":"/foo/bar"}\] Inputs: [{"pathname":"/foo/bar"}\]] + expected: FAIL + + [Pattern: [{"pathname":"/foo/bar"}\] Inputs: [{"pathname":"/foo/ba"}\]] + expected: FAIL + + [Pattern: [{"pathname":"/foo/bar"}\] Inputs: [{"pathname":"/foo/bar/"}\]] + expected: FAIL + + [Pattern: [{"pathname":"/foo/bar"}\] Inputs: [{"pathname":"/foo/bar/baz"}\]] + expected: FAIL + + [Pattern: [{"pathname":"/foo/bar"}\] Inputs: ["https://example.com/foo/bar"\]] + expected: FAIL + + [Pattern: [{"pathname":"/foo/bar"}\] Inputs: ["https://example.com/foo/bar/baz"\]] + expected: FAIL + + [Pattern: [{"pathname":"/foo/bar"}\] Inputs: [{"hostname":"example.com","pathname":"/foo/bar"}\]] + expected: FAIL + + [Pattern: [{"pathname":"/foo/bar"}\] Inputs: [{"hostname":"example.com","pathname":"/foo/bar/baz"}\]] + expected: FAIL + + [Pattern: [{"pathname":"/foo/bar"}\] Inputs: [{"pathname":"/foo/bar","baseURL":"https://example.com"}\]] + expected: FAIL + + [Pattern: [{"pathname":"/foo/bar"}\] Inputs: [{"pathname":"/foo/bar/baz","baseURL":"https://example.com"}\]] + expected: FAIL + + [Pattern: [{"pathname":"/foo/bar","baseURL":"https://example.com?query#hash"}\] Inputs: [{"pathname":"/foo/bar"}\]] + expected: FAIL + + [Pattern: [{"pathname":"/foo/bar","baseURL":"https://example.com?query#hash"}\] Inputs: [{"hostname":"example.com","pathname":"/foo/bar"}\]] + expected: FAIL + + [Pattern: [{"pathname":"/foo/bar","baseURL":"https://example.com?query#hash"}\] Inputs: [{"protocol":"https","hostname":"example.com","pathname":"/foo/bar"}\]] + expected: FAIL + + [Pattern: [{"pathname":"/foo/bar","baseURL":"https://example.com?query#hash"}\] Inputs: [{"protocol":"https","hostname":"example.com","pathname":"/foo/bar","search":"otherquery","hash":"otherhash"}\]] + expected: FAIL + + [Pattern: [{"pathname":"/foo/bar","baseURL":"https://example.com?query#hash"}\] Inputs: ["https://example.com/foo/bar"\]] + expected: FAIL + + [Pattern: [{"pathname":"/foo/bar","baseURL":"https://example.com?query#hash"}\] Inputs: ["https://example.com/foo/bar?otherquery#otherhash"\]] + expected: FAIL + + [Pattern: [{"pathname":"/foo/bar","baseURL":"https://example.com?query#hash"}\] Inputs: ["https://example.com/foo/bar/baz"\]] + expected: FAIL + + [Pattern: [{"pathname":"/foo/bar","baseURL":"https://example.com?query#hash"}\] Inputs: ["https://other.com/foo/bar"\]] + expected: FAIL + + [Pattern: [{"pathname":"/foo/bar","baseURL":"https://example.com?query#hash"}\] Inputs: ["http://other.com/foo/bar"\]] + expected: FAIL + + [Pattern: [{"pathname":"/foo/bar","baseURL":"https://example.com?query#hash"}\] Inputs: [{"pathname":"/foo/bar","baseURL":"https://example.com"}\]] + expected: FAIL + + [Pattern: [{"pathname":"/foo/bar","baseURL":"https://example.com?query#hash"}\] Inputs: [{"pathname":"/foo/bar/baz","baseURL":"https://example.com"}\]] + expected: FAIL + + [Pattern: [{"pathname":"/foo/bar","baseURL":"https://example.com?query#hash"}\] Inputs: [{"pathname":"/foo/bar","baseURL":"https://other.com"}\]] + expected: FAIL + + [Pattern: [{"pathname":"/foo/bar","baseURL":"https://example.com?query#hash"}\] Inputs: [{"pathname":"/foo/bar","baseURL":"http://example.com"}\]] + expected: FAIL + + [Pattern: [{"pathname":"/foo/:bar"}\] Inputs: [{"pathname":"/foo/bar"}\]] + expected: FAIL + + [Pattern: [{"pathname":"/foo/:bar"}\] Inputs: [{"pathname":"/foo/index.html"}\]] + expected: FAIL + + [Pattern: [{"pathname":"/foo/:bar"}\] Inputs: [{"pathname":"/foo/bar/"}\]] + expected: FAIL + + [Pattern: [{"pathname":"/foo/:bar"}\] Inputs: [{"pathname":"/foo/"}\]] + expected: FAIL + + [Pattern: [{"pathname":"/foo/(.*)"}\] Inputs: [{"pathname":"/foo/bar"}\]] + expected: FAIL + + [Pattern: [{"pathname":"/foo/*"}\] Inputs: [{"pathname":"/foo/bar"}\]] + expected: FAIL + + [Pattern: [{"pathname":"/foo/(.*)"}\] Inputs: [{"pathname":"/foo/bar/baz"}\]] + expected: FAIL + + [Pattern: [{"pathname":"/foo/*"}\] Inputs: [{"pathname":"/foo/bar/baz"}\]] + expected: FAIL + + [Pattern: [{"pathname":"/foo/(.*)"}\] Inputs: [{"pathname":"/foo/"}\]] + expected: FAIL + + [Pattern: [{"pathname":"/foo/*"}\] Inputs: [{"pathname":"/foo/"}\]] + expected: FAIL + + [Pattern: [{"pathname":"/foo/(.*)"}\] Inputs: [{"pathname":"/foo"}\]] + expected: FAIL + + [Pattern: [{"pathname":"/foo/*"}\] Inputs: [{"pathname":"/foo"}\]] + expected: FAIL + + [Pattern: [{"pathname":"/foo/:bar(.*)"}\] Inputs: [{"pathname":"/foo/bar"}\]] + expected: FAIL + + [Pattern: [{"pathname":"/foo/:bar(.*)"}\] Inputs: [{"pathname":"/foo/bar/baz"}\]] + expected: FAIL + + [Pattern: [{"pathname":"/foo/:bar(.*)"}\] Inputs: [{"pathname":"/foo/"}\]] + expected: FAIL + + [Pattern: [{"pathname":"/foo/:bar(.*)"}\] Inputs: [{"pathname":"/foo"}\]] + expected: FAIL + + [Pattern: [{"pathname":"/foo/:bar?"}\] Inputs: [{"pathname":"/foo/bar"}\]] + expected: FAIL + + [Pattern: [{"pathname":"/foo/:bar?"}\] Inputs: [{"pathname":"/foo"}\]] + expected: FAIL + + [Pattern: [{"pathname":"/foo/:bar?"}\] Inputs: [{"pathname":"/foo/"}\]] + expected: FAIL + + [Pattern: [{"pathname":"/foo/:bar?"}\] Inputs: [{"pathname":"/foobar"}\]] + expected: FAIL + + [Pattern: [{"pathname":"/foo/:bar?"}\] Inputs: [{"pathname":"/foo/bar/baz"}\]] + expected: FAIL + + [Pattern: [{"pathname":"/foo/:bar+"}\] Inputs: [{"pathname":"/foo/bar"}\]] + expected: FAIL + + [Pattern: [{"pathname":"/foo/:bar+"}\] Inputs: [{"pathname":"/foo/bar/baz"}\]] + expected: FAIL + + [Pattern: [{"pathname":"/foo/:bar+"}\] Inputs: [{"pathname":"/foo"}\]] + expected: FAIL + + [Pattern: [{"pathname":"/foo/:bar+"}\] Inputs: [{"pathname":"/foo/"}\]] + expected: FAIL + + [Pattern: [{"pathname":"/foo/:bar+"}\] Inputs: [{"pathname":"/foobar"}\]] + expected: FAIL + + [Pattern: [{"pathname":"/foo/:bar*"}\] Inputs: [{"pathname":"/foo/bar"}\]] + expected: FAIL + + [Pattern: [{"pathname":"/foo/:bar*"}\] Inputs: [{"pathname":"/foo/bar/baz"}\]] + expected: FAIL + + [Pattern: [{"pathname":"/foo/:bar*"}\] Inputs: [{"pathname":"/foo"}\]] + expected: FAIL + + [Pattern: [{"pathname":"/foo/:bar*"}\] Inputs: [{"pathname":"/foo/"}\]] + expected: FAIL + + [Pattern: [{"pathname":"/foo/:bar*"}\] Inputs: [{"pathname":"/foobar"}\]] + expected: FAIL + + [Pattern: [{"pathname":"/foo/(.*)?"}\] Inputs: [{"pathname":"/foo/bar"}\]] + expected: FAIL + + [Pattern: [{"pathname":"/foo/*?"}\] Inputs: [{"pathname":"/foo/bar"}\]] + expected: FAIL + + [Pattern: [{"pathname":"/foo/(.*)?"}\] Inputs: [{"pathname":"/foo/bar/baz"}\]] + expected: FAIL + + [Pattern: [{"pathname":"/foo/*?"}\] Inputs: [{"pathname":"/foo/bar/baz"}\]] + expected: FAIL + + [Pattern: [{"pathname":"/foo/(.*)?"}\] Inputs: [{"pathname":"/foo"}\]] + expected: FAIL + + [Pattern: [{"pathname":"/foo/*?"}\] Inputs: [{"pathname":"/foo"}\]] + expected: FAIL + + [Pattern: [{"pathname":"/foo/(.*)?"}\] Inputs: [{"pathname":"/foo/"}\]] + expected: FAIL + + [Pattern: [{"pathname":"/foo/*?"}\] Inputs: [{"pathname":"/foo/"}\]] + expected: FAIL + + [Pattern: [{"pathname":"/foo/(.*)?"}\] Inputs: [{"pathname":"/foobar"}\]] + expected: FAIL + + [Pattern: [{"pathname":"/foo/*?"}\] Inputs: [{"pathname":"/foobar"}\]] + expected: FAIL + + [Pattern: [{"pathname":"/foo/(.*)?"}\] Inputs: [{"pathname":"/fo"}\]] + expected: FAIL + + [Pattern: [{"pathname":"/foo/*?"}\] Inputs: [{"pathname":"/fo"}\]] + expected: FAIL + + [Pattern: [{"pathname":"/foo/(.*)+"}\] Inputs: [{"pathname":"/foo/bar"}\]] + expected: FAIL + + [Pattern: [{"pathname":"/foo/*+"}\] Inputs: [{"pathname":"/foo/bar"}\]] + expected: FAIL + + [Pattern: [{"pathname":"/foo/(.*)+"}\] Inputs: [{"pathname":"/foo/bar/baz"}\]] + expected: FAIL + + [Pattern: [{"pathname":"/foo/*+"}\] Inputs: [{"pathname":"/foo/bar/baz"}\]] + expected: FAIL + + [Pattern: [{"pathname":"/foo/(.*)+"}\] Inputs: [{"pathname":"/foo"}\]] + expected: FAIL + + [Pattern: [{"pathname":"/foo/*+"}\] Inputs: [{"pathname":"/foo"}\]] + expected: FAIL + + [Pattern: [{"pathname":"/foo/(.*)+"}\] Inputs: [{"pathname":"/foo/"}\]] + expected: FAIL + + [Pattern: [{"pathname":"/foo/*+"}\] Inputs: [{"pathname":"/foo/"}\]] + expected: FAIL + + [Pattern: [{"pathname":"/foo/(.*)+"}\] Inputs: [{"pathname":"/foobar"}\]] + expected: FAIL + + [Pattern: [{"pathname":"/foo/*+"}\] Inputs: [{"pathname":"/foobar"}\]] + expected: FAIL + + [Pattern: [{"pathname":"/foo/(.*)+"}\] Inputs: [{"pathname":"/fo"}\]] + expected: FAIL + + [Pattern: [{"pathname":"/foo/*+"}\] Inputs: [{"pathname":"/fo"}\]] + expected: FAIL + + [Pattern: [{"pathname":"/foo/(.*)*"}\] Inputs: [{"pathname":"/foo/bar"}\]] + expected: FAIL + + [Pattern: [{"pathname":"/foo/**"}\] Inputs: [{"pathname":"/foo/bar"}\]] + expected: FAIL + + [Pattern: [{"pathname":"/foo/(.*)*"}\] Inputs: [{"pathname":"/foo/bar/baz"}\]] + expected: FAIL + + [Pattern: [{"pathname":"/foo/**"}\] Inputs: [{"pathname":"/foo/bar/baz"}\]] + expected: FAIL + + [Pattern: [{"pathname":"/foo/(.*)*"}\] Inputs: [{"pathname":"/foo"}\]] + expected: FAIL + + [Pattern: [{"pathname":"/foo/**"}\] Inputs: [{"pathname":"/foo"}\]] + expected: FAIL + + [Pattern: [{"pathname":"/foo/(.*)*"}\] Inputs: [{"pathname":"/foo/"}\]] + expected: FAIL + + [Pattern: [{"pathname":"/foo/**"}\] Inputs: [{"pathname":"/foo/"}\]] + expected: FAIL + + [Pattern: [{"pathname":"/foo/(.*)*"}\] Inputs: [{"pathname":"/foobar"}\]] + expected: FAIL + + [Pattern: [{"pathname":"/foo/**"}\] Inputs: [{"pathname":"/foobar"}\]] + expected: FAIL + + [Pattern: [{"pathname":"/foo/(.*)*"}\] Inputs: [{"pathname":"/fo"}\]] + expected: FAIL + + [Pattern: [{"pathname":"/foo/**"}\] Inputs: [{"pathname":"/fo"}\]] + expected: FAIL + + [Pattern: [{"pathname":"/foo{/bar}"}\] Inputs: [{"pathname":"/foo/bar"}\]] + expected: FAIL + + [Pattern: [{"pathname":"/foo{/bar}"}\] Inputs: [{"pathname":"/foo/bar/baz"}\]] + expected: FAIL + + [Pattern: [{"pathname":"/foo{/bar}"}\] Inputs: [{"pathname":"/foo"}\]] + expected: FAIL + + [Pattern: [{"pathname":"/foo{/bar}"}\] Inputs: [{"pathname":"/foo/"}\]] + expected: FAIL + + [Pattern: [{"pathname":"/foo{/bar}?"}\] Inputs: [{"pathname":"/foo/bar"}\]] + expected: FAIL + + [Pattern: [{"pathname":"/foo{/bar}?"}\] Inputs: [{"pathname":"/foo/bar/baz"}\]] + expected: FAIL + + [Pattern: [{"pathname":"/foo{/bar}?"}\] Inputs: [{"pathname":"/foo"}\]] + expected: FAIL + + [Pattern: [{"pathname":"/foo{/bar}?"}\] Inputs: [{"pathname":"/foo/"}\]] + expected: FAIL + + [Pattern: [{"pathname":"/foo{/bar}+"}\] Inputs: [{"pathname":"/foo/bar"}\]] + expected: FAIL + + [Pattern: [{"pathname":"/foo{/bar}+"}\] Inputs: [{"pathname":"/foo/bar/bar"}\]] + expected: FAIL + + [Pattern: [{"pathname":"/foo{/bar}+"}\] Inputs: [{"pathname":"/foo/bar/baz"}\]] + expected: FAIL + + [Pattern: [{"pathname":"/foo{/bar}+"}\] Inputs: [{"pathname":"/foo"}\]] + expected: FAIL + + [Pattern: [{"pathname":"/foo{/bar}+"}\] Inputs: [{"pathname":"/foo/"}\]] + expected: FAIL + + [Pattern: [{"pathname":"/foo{/bar}*"}\] Inputs: [{"pathname":"/foo/bar"}\]] + expected: FAIL + + [Pattern: [{"pathname":"/foo{/bar}*"}\] Inputs: [{"pathname":"/foo/bar/bar"}\]] + expected: FAIL + + [Pattern: [{"pathname":"/foo{/bar}*"}\] Inputs: [{"pathname":"/foo/bar/baz"}\]] + expected: FAIL + + [Pattern: [{"pathname":"/foo{/bar}*"}\] Inputs: [{"pathname":"/foo"}\]] + expected: FAIL + + [Pattern: [{"pathname":"/foo{/bar}*"}\] Inputs: [{"pathname":"/foo/"}\]] + expected: FAIL + + [Pattern: [{"protocol":"(café)"}\] Inputs: undefined] + expected: FAIL + + [Pattern: [{"username":"(café)"}\] Inputs: undefined] + expected: FAIL + + [Pattern: [{"password":"(café)"}\] Inputs: undefined] + expected: FAIL + + [Pattern: [{"hostname":"(café)"}\] Inputs: undefined] + expected: FAIL + + [Pattern: [{"pathname":"(café)"}\] Inputs: undefined] + expected: FAIL + + [Pattern: [{"search":"(café)"}\] Inputs: undefined] + expected: FAIL + + [Pattern: [{"hash":"(café)"}\] Inputs: undefined] + expected: FAIL + + [Pattern: [{"protocol":":café"}\] Inputs: [{"protocol":"foo"}\]] + expected: FAIL + + [Pattern: [{"username":":café"}\] Inputs: [{"username":"foo"}\]] + expected: FAIL + + [Pattern: [{"password":":café"}\] Inputs: [{"password":"foo"}\]] + expected: FAIL + + [Pattern: [{"hostname":":café"}\] Inputs: [{"hostname":"foo"}\]] + expected: FAIL + + [Pattern: [{"pathname":"/:café"}\] Inputs: [{"pathname":"/foo"}\]] + expected: FAIL + + [Pattern: [{"search":":café"}\] Inputs: [{"search":"foo"}\]] + expected: FAIL + + [Pattern: [{"hash":":café"}\] Inputs: [{"hash":"foo"}\]] + expected: FAIL + + [Pattern: [{"protocol":":℘"}\] Inputs: [{"protocol":"foo"}\]] + expected: FAIL + + [Pattern: [{"username":":℘"}\] Inputs: [{"username":"foo"}\]] + expected: FAIL + + [Pattern: [{"password":":℘"}\] Inputs: [{"password":"foo"}\]] + expected: FAIL + + [Pattern: [{"hostname":":℘"}\] Inputs: [{"hostname":"foo"}\]] + expected: FAIL + + [Pattern: [{"pathname":"/:℘"}\] Inputs: [{"pathname":"/foo"}\]] + expected: FAIL + + [Pattern: [{"search":":℘"}\] Inputs: [{"search":"foo"}\]] + expected: FAIL + + [Pattern: [{"hash":":℘"}\] Inputs: [{"hash":"foo"}\]] + expected: FAIL + + [Pattern: [{"protocol":":㐀"}\] Inputs: [{"protocol":"foo"}\]] + expected: FAIL + + [Pattern: [{"username":":㐀"}\] Inputs: [{"username":"foo"}\]] + expected: FAIL + + [Pattern: [{"password":":㐀"}\] Inputs: [{"password":"foo"}\]] + expected: FAIL + + [Pattern: [{"hostname":":㐀"}\] Inputs: [{"hostname":"foo"}\]] + expected: FAIL + + [Pattern: [{"pathname":"/:㐀"}\] Inputs: [{"pathname":"/foo"}\]] + expected: FAIL + + [Pattern: [{"search":":㐀"}\] Inputs: [{"search":"foo"}\]] + expected: FAIL + + [Pattern: [{"hash":":㐀"}\] Inputs: [{"hash":"foo"}\]] + expected: FAIL + + [Pattern: [{"protocol":"(.*)"}\] Inputs: [{"protocol":"café"}\]] + expected: FAIL + + [Pattern: [{"protocol":"(.*)"}\] Inputs: [{"protocol":"cafe"}\]] + expected: FAIL + + [Pattern: [{"protocol":"foo-bar"}\] Inputs: [{"protocol":"foo-bar"}\]] + expected: FAIL + + [Pattern: [{"username":"caf%C3%A9"}\] Inputs: [{"username":"café"}\]] + expected: FAIL + + [Pattern: [{"username":"café"}\] Inputs: [{"username":"café"}\]] + expected: FAIL + + [Pattern: [{"username":"caf%c3%a9"}\] Inputs: [{"username":"café"}\]] + expected: FAIL + + [Pattern: [{"password":"caf%C3%A9"}\] Inputs: [{"password":"café"}\]] + expected: FAIL + + [Pattern: [{"password":"café"}\] Inputs: [{"password":"café"}\]] + expected: FAIL + + [Pattern: [{"password":"caf%c3%a9"}\] Inputs: [{"password":"café"}\]] + expected: FAIL + + [Pattern: [{"hostname":"xn--caf-dma.com"}\] Inputs: [{"hostname":"café.com"}\]] + expected: FAIL + + [Pattern: [{"hostname":"café.com"}\] Inputs: [{"hostname":"café.com"}\]] + expected: FAIL + + [Pattern: [{"port":""}\] Inputs: [{"protocol":"http","port":"80"}\]] + expected: FAIL + + [Pattern: [{"protocol":"http","port":"80"}\] Inputs: [{"protocol":"http","port":"80"}\]] + expected: FAIL + + [Pattern: [{"protocol":"http","port":"80{20}?"}\] Inputs: [{"protocol":"http","port":"80"}\]] + expected: FAIL + + [Pattern: [{"protocol":"http","port":"80 "}\] Inputs: [{"protocol":"http","port":"80"}\]] + expected: FAIL + + [Pattern: [{"port":"80"}\] Inputs: [{"protocol":"http","port":"80"}\]] + expected: FAIL + + [Pattern: [{"protocol":"http{s}?","port":"80"}\] Inputs: [{"protocol":"http","port":"80"}\]] + expected: FAIL + + [Pattern: [{"port":"80"}\] Inputs: [{"port":"80"}\]] + expected: FAIL + + [Pattern: [{"port":"(.*)"}\] Inputs: [{"port":"invalid80"}\]] + expected: FAIL + + [Pattern: [{"pathname":"/foo/bar"}\] Inputs: [{"pathname":"/foo/./bar"}\]] + expected: FAIL + + [Pattern: [{"pathname":"/foo/baz"}\] Inputs: [{"pathname":"/foo/bar/../baz"}\]] + expected: FAIL + + [Pattern: [{"pathname":"/caf%C3%A9"}\] Inputs: [{"pathname":"/café"}\]] + expected: FAIL + + [Pattern: [{"pathname":"/café"}\] Inputs: [{"pathname":"/café"}\]] + expected: FAIL + + [Pattern: [{"pathname":"/caf%c3%a9"}\] Inputs: [{"pathname":"/café"}\]] + expected: FAIL + + [Pattern: [{"pathname":"/foo/bar"}\] Inputs: [{"pathname":"foo/bar"}\]] + expected: FAIL + + [Pattern: [{"pathname":"/foo/bar"}\] Inputs: [{"pathname":"foo/bar","baseURL":"https://example.com"}\]] + expected: FAIL + + [Pattern: [{"pathname":"/foo/../bar"}\] Inputs: [{"pathname":"/bar"}\]] + expected: FAIL + + [Pattern: [{"pathname":"./foo/bar","baseURL":"https://example.com"}\] Inputs: [{"pathname":"foo/bar","baseURL":"https://example.com"}\]] + expected: FAIL + + [Pattern: [{"pathname":"foo/bar"}\] Inputs: ["https://example.com/foo/bar"\]] + expected: FAIL + + [Pattern: [{"pathname":"foo/bar","baseURL":"https://example.com"}\] Inputs: ["https://example.com/foo/bar"\]] + expected: FAIL + + [Pattern: [{"pathname":":name.html","baseURL":"https://example.com"}\] Inputs: ["https://example.com/foo.html"\]] + expected: FAIL + + [Pattern: [{"search":"q=caf%C3%A9"}\] Inputs: [{"search":"q=café"}\]] + expected: FAIL + + [Pattern: [{"search":"q=café"}\] Inputs: [{"search":"q=café"}\]] + expected: FAIL + + [Pattern: [{"search":"q=caf%c3%a9"}\] Inputs: [{"search":"q=café"}\]] + expected: FAIL + + [Pattern: [{"hash":"caf%C3%A9"}\] Inputs: [{"hash":"café"}\]] + expected: FAIL + + [Pattern: [{"hash":"café"}\] Inputs: [{"hash":"café"}\]] + expected: FAIL + + [Pattern: [{"hash":"caf%c3%a9"}\] Inputs: [{"hash":"café"}\]] + expected: FAIL + + [Pattern: [{"protocol":"about","pathname":"(blank|sourcedoc)"}\] Inputs: ["about:blank"\]] + expected: FAIL + + [Pattern: [{"protocol":"data","pathname":":number([0-9\]+)"}\] Inputs: ["data:8675309"\]] + expected: FAIL + + [Pattern: [{"pathname":"/(\\\\m)"}\] Inputs: undefined] + expected: FAIL + + [Pattern: [{"pathname":"/foo!"}\] Inputs: [{"pathname":"/foo!"}\]] + expected: FAIL + + [Pattern: [{"pathname":"/foo\\\\:"}\] Inputs: [{"pathname":"/foo:"}\]] + expected: FAIL + + [Pattern: [{"pathname":"/foo\\\\{"}\] Inputs: [{"pathname":"/foo{"}\]] + expected: FAIL + + [Pattern: [{"pathname":"/foo\\\\("}\] Inputs: [{"pathname":"/foo("}\]] + expected: FAIL + + [Pattern: [{"protocol":"javascript","pathname":"var x = 1;"}\] Inputs: [{"protocol":"javascript","pathname":"var x = 1;"}\]] + expected: FAIL + + [Pattern: [{"pathname":"var x = 1;"}\] Inputs: [{"protocol":"javascript","pathname":"var x = 1;"}\]] + expected: FAIL + + [Pattern: [{"protocol":"javascript","pathname":"var x = 1;"}\] Inputs: [{"baseURL":"javascript:var x = 1;"}\]] + expected: FAIL + + [Pattern: [{"protocol":"(data|javascript)","pathname":"var x = 1;"}\] Inputs: [{"protocol":"javascript","pathname":"var x = 1;"}\]] + expected: FAIL + + [Pattern: [{"protocol":"(https|javascript)","pathname":"var x = 1;"}\] Inputs: [{"protocol":"javascript","pathname":"var x = 1;"}\]] + expected: FAIL + + [Pattern: [{"pathname":"var x = 1;"}\] Inputs: [{"pathname":"var x = 1;"}\]] + expected: FAIL + + [Pattern: [{"pathname":"/foo/bar"}\] Inputs: ["./foo/bar","https://example.com"\]] + expected: FAIL + + [Pattern: [{"pathname":"/foo/bar"}\] Inputs: [{"pathname":"/foo/bar"},"https://example.com"\]] + expected: FAIL + + [Pattern: ["https://example.com:8080/foo?bar#baz"\] Inputs: [{"pathname":"/foo","search":"bar","hash":"baz","baseURL":"https://example.com:8080"}\]] + expected: FAIL + + [Pattern: ["/foo?bar#baz","https://example.com:8080"\] Inputs: [{"pathname":"/foo","search":"bar","hash":"baz","baseURL":"https://example.com:8080"}\]] + expected: FAIL + + [Pattern: ["/foo"\] Inputs: undefined] + expected: FAIL + + [Pattern: ["example.com/foo"\] Inputs: undefined] + expected: FAIL + + [Pattern: ["http{s}?://{*.}?example.com/:product/:endpoint"\] Inputs: ["https://sub.example.com/foo/bar"\]] + expected: FAIL + + [Pattern: ["https://example.com?foo"\] Inputs: ["https://example.com/?foo"\]] + expected: FAIL + + [Pattern: ["https://example.com#foo"\] Inputs: ["https://example.com/#foo"\]] + expected: FAIL + + [Pattern: ["https://example.com:8080?foo"\] Inputs: ["https://example.com:8080/?foo"\]] + expected: FAIL + + [Pattern: ["https://example.com:8080#foo"\] Inputs: ["https://example.com:8080/#foo"\]] + expected: FAIL + + [Pattern: ["https://example.com/?foo"\] Inputs: ["https://example.com/?foo"\]] + expected: FAIL + + [Pattern: ["https://example.com/#foo"\] Inputs: ["https://example.com/#foo"\]] + expected: FAIL + + [Pattern: ["https://example.com/*?foo"\] Inputs: ["https://example.com/?foo"\]] + expected: FAIL + + [Pattern: ["https://example.com/*\\\\?foo"\] Inputs: ["https://example.com/?foo"\]] + expected: FAIL + + [Pattern: ["https://example.com/:name?foo"\] Inputs: ["https://example.com/bar?foo"\]] + expected: FAIL + + [Pattern: ["https://example.com/:name\\\\?foo"\] Inputs: ["https://example.com/bar?foo"\]] + expected: FAIL + + [Pattern: ["https://example.com/(bar)?foo"\] Inputs: ["https://example.com/bar?foo"\]] + expected: FAIL + + [Pattern: ["https://example.com/(bar)\\\\?foo"\] Inputs: ["https://example.com/bar?foo"\]] + expected: FAIL + + [Pattern: ["https://example.com/{bar}?foo"\] Inputs: ["https://example.com/bar?foo"\]] + expected: FAIL + + [Pattern: ["https://example.com/{bar}\\\\?foo"\] Inputs: ["https://example.com/bar?foo"\]] + expected: FAIL + + [Pattern: ["https://example.com/"\] Inputs: ["https://example.com:8080/"\]] + expected: FAIL + + [Pattern: ["data:foobar"\] Inputs: ["data:foobar"\]] + expected: FAIL + + [Pattern: ["data\\\\:foobar"\] Inputs: ["data:foobar"\]] + expected: FAIL + + [Pattern: ["https://{sub.}?example.com/foo"\] Inputs: ["https://example.com/foo"\]] + expected: FAIL + + [Pattern: ["https://{sub.}?example{.com/}foo"\] Inputs: ["https://example.com/foo"\]] + expected: FAIL + + [Pattern: ["{https://}example.com/foo"\] Inputs: ["https://example.com/foo"\]] + expected: FAIL + + [Pattern: ["https://(sub.)?example.com/foo"\] Inputs: ["https://example.com/foo"\]] + expected: FAIL + + [Pattern: ["https://(sub.)?example(.com/)foo"\] Inputs: ["https://example.com/foo"\]] + expected: FAIL + + [Pattern: ["(https://)example.com/foo"\] Inputs: ["https://example.com/foo"\]] + expected: FAIL + + [Pattern: ["https://{sub{.}}example.com/foo"\] Inputs: ["https://example.com/foo"\]] + expected: FAIL + + [Pattern: ["https://(sub(?:.))?example.com/foo"\] Inputs: ["https://example.com/foo"\]] + expected: FAIL + + [Pattern: ["file:///foo/bar"\] Inputs: ["file:///foo/bar"\]] + expected: FAIL + + [Pattern: ["data:"\] Inputs: ["data:"\]] + expected: FAIL + + [Pattern: ["foo://bar"\] Inputs: ["foo://bad_url_browser_interop"\]] + expected: FAIL + + [Pattern: ["(café)://foo"\] Inputs: undefined] + expected: FAIL + + [Pattern: [{"pathname":"/foo/bar","baseURL":"https://example.com"}\] Inputs: [{"protocol":"https","hostname":"example.com","pathname":"/foo/bar"}\]] + expected: FAIL + + [Pattern: [{"pathname":"/foo/bar","baseURL":"https://example.com"}\] Inputs: [{"protocol":"https","hostname":"example.com","pathname":"/foo/bar/baz"}\]] + expected: FAIL + + [Pattern: [{"pathname":"/foo/bar","baseURL":"https://example.com"}\] Inputs: [{"protocol":"https","hostname":"example.com","pathname":"/foo/bar","search":"otherquery","hash":"otherhash"}\]] + expected: FAIL + + [Pattern: [{"pathname":"/foo/bar","baseURL":"https://example.com?otherquery#otherhash"}\] Inputs: [{"protocol":"https","hostname":"example.com","pathname":"/foo/bar","search":"otherquery","hash":"otherhash"}\]] + expected: FAIL + + [Pattern: [{"pathname":"/foo/bar","baseURL":"https://example.com?query#hash"}\] Inputs: ["https://example.com/foo/bar?query#hash"\]] + expected: FAIL + + [Pattern: [{"pathname":"/foo/bar","baseURL":"https://example.com?query#hash"}\] Inputs: [{"pathname":"/foo/bar","baseURL":"https://example.com?query#hash"}\]] + expected: FAIL + + [Pattern: ["https://example.com/foo?bar#baz"\] Inputs: [{"protocol":"https:","search":"?bar","hash":"#baz","baseURL":"http://example.com/foo"}\]] + expected: FAIL + + [Pattern: [{"protocol":"http{s}?:","search":"?bar","hash":"#baz"}\] Inputs: ["http://example.com/foo?bar#baz"\]] + expected: FAIL + + [Pattern: ["?bar#baz","https://example.com/foo"\] Inputs: ["?bar#baz","https://example.com/foo"\]] + expected: FAIL + + [Pattern: ["?bar","https://example.com/foo#baz"\] Inputs: ["?bar","https://example.com/foo#snafu"\]] + expected: FAIL + + [Pattern: ["#baz","https://example.com/foo?bar"\] Inputs: ["#baz","https://example.com/foo?bar"\]] + expected: FAIL + + [Pattern: ["#baz","https://example.com/foo"\] Inputs: ["#baz","https://example.com/foo"\]] + expected: FAIL + + [Pattern: ["https://foo\\\\:bar@example.com"\] Inputs: ["https://foo:bar@example.com"\]] + expected: FAIL + + [Pattern: ["https://foo@example.com"\] Inputs: ["https://foo@example.com"\]] + expected: FAIL + + [Pattern: ["https://\\\\:bar@example.com"\] Inputs: ["https://:bar@example.com"\]] + expected: FAIL + + [Pattern: ["https://:user::pass@example.com"\] Inputs: ["https://foo:bar@example.com"\]] + expected: FAIL + + [Pattern: ["https\\\\:foo\\\\:bar@example.com"\] Inputs: ["https:foo:bar@example.com"\]] + expected: FAIL + + [Pattern: ["data\\\\:foo\\\\:bar@example.com"\] Inputs: ["data:foo:bar@example.com"\]] + expected: FAIL + + [Pattern: ["https://foo{\\\\:}bar@example.com"\] Inputs: ["https://foo:bar@example.com"\]] + expected: FAIL + + [Pattern: ["data{\\\\:}channel.html","https://example.com"\] Inputs: ["https://example.com/data:channel.html"\]] + expected: FAIL + + [Pattern: ["https://foo{{@}}example.com"\] Inputs: ["https://foo@example.com"\]] + expected: FAIL + + [Pattern: ["https://foo{@example.com"\] Inputs: ["https://foo@example.com"\]] + expected: FAIL + + [Pattern: [{"pathname":"*"}\] Inputs: ["foo","data:data-urls-cannot-be-base-urls"\]] + expected: FAIL + + [Pattern: [{"pathname":"\\\\/bar","baseURL":"https://example.com/foo/"}\] Inputs: [{"pathname":"./bar","baseURL":"https://example.com/foo/"}\]] + expected: FAIL + + [Pattern: [{"pathname":"/foo"},"https://example.com"\] Inputs: undefined] + expected: FAIL + + [Pattern: [{"pathname":":name"}\] Inputs: [{"pathname":"foobar"}\]] + expected: FAIL + + [Pattern: [{"pathname":"/:id/:id"}\] Inputs: undefined] + expected: FAIL + + [Pattern: [{"pathname":":name+"}\] Inputs: [{"pathname":"foobar"}\]] + expected: FAIL + + [Pattern: [{"pathname":"*"}\] Inputs: ["foo","not|a|valid|url"\]] + expected: FAIL + + [Pattern: [{"pathname":":name*"}\] Inputs: [{"pathname":"foobar"}\]] + expected: FAIL + + [Pattern: [{"pathname":"/foo/([^\\\\/\]+?)"}\] Inputs: [{"pathname":"/foo/bar"}\]] + expected: FAIL + + [Pattern: [{"pathname":"","baseURL":"https://example.com"}\] Inputs: [{"pathname":"/","baseURL":"https://example.com"}\]] + expected: FAIL + + [Pattern: [{"pathname":"{/bar}","baseURL":"https://example.com/foo/"}\] Inputs: [{"pathname":"./bar","baseURL":"https://example.com/foo/"}\]] + expected: FAIL + + [Pattern: [{"pathname":"b","baseURL":"https://example.com/foo/"}\] Inputs: [{"pathname":"./b","baseURL":"https://example.com/foo/"}\]] + expected: FAIL + + [Pattern: [{"pathname":"/foo","baseURL":""}\] Inputs: undefined] + expected: FAIL + + [Pattern: ["data\\\\:text/javascript,let x = 100/:tens?5;"\] Inputs: ["data:text/javascript,let x = 100/5;"\]] + expected: FAIL + + [Pattern: ["/foo",""\] Inputs: undefined] + expected: FAIL + + [Pattern: [{"protocol":":name"}\] Inputs: [{"protocol":"foobar"}\]] + expected: FAIL + + [Pattern: [{"protocol":":name*"}\] Inputs: [{"protocol":"foobar"}\]] + expected: FAIL + + [Pattern: [{"protocol":":name+"}\] Inputs: [{"protocol":"foobar"}\]] + expected: FAIL + + [Pattern: ["http://[\\\\:\\\\:a\]/"\] Inputs: ["http://[::a\]/"\]] + expected: FAIL + + [Pattern: ["http://[\\\\:\\\\:1\]:8080/"\] Inputs: ["http://[::1\]:8080/"\]] + expected: FAIL + + [Pattern: ["http://[\\\\:\\\\:1\]/"\] Inputs: ["http://[::1\]/"\]] + expected: FAIL + + [Pattern: ["http://[:address\]/"\] Inputs: ["http://[::1\]/"\]] + expected: FAIL + + [Pattern: ["http://[\\\\:\\\\:AB\\\\::num\]/"\] Inputs: ["http://[::ab:1\]/"\]] + expected: FAIL + + [Pattern: [{"hostname":"[\\\\:\\\\:AB\\\\::num\]"}\] Inputs: [{"hostname":"[::ab:1\]"}\]] + expected: FAIL + + [Pattern: [{"hostname":"[\\\\:\\\\:xY\\\\::num\]"}\] Inputs: undefined] + expected: FAIL + + [Pattern: [{"hostname":"{[\\\\:\\\\:ab\\\\::num\]}"}\] Inputs: [{"hostname":"[::ab:1\]"}\]] + expected: FAIL + + [Pattern: [{"hostname":"{[\\\\:\\\\:fé\\\\::num\]}"}\] Inputs: undefined] + expected: FAIL + + [Pattern: [{"hostname":"{[\\\\:\\\\::num\\\\:1\]}"}\] Inputs: [{"hostname":"[::ab:1\]"}\]] + expected: FAIL + + [Pattern: [{"hostname":"{[\\\\:\\\\::num\\\\:fé\]}"}\] Inputs: undefined] + expected: FAIL + + [Pattern: [{"hostname":"[*\\\\:1\]"}\] Inputs: [{"hostname":"[::ab:1\]"}\]] + expected: FAIL + + [Pattern: [{"hostname":"*\\\\:1\]"}\] Inputs: undefined] + expected: FAIL + + [Pattern: [{"hostname":"bad hostname"}\] Inputs: undefined] + expected: FAIL + + [Pattern: [{"hostname":"bad#hostname"}\] Inputs: undefined] + expected: FAIL + + [Pattern: [{"hostname":"bad%hostname"}\] Inputs: undefined] + expected: FAIL + + [Pattern: [{"hostname":"bad/hostname"}\] Inputs: undefined] + expected: FAIL + + [Pattern: [{"hostname":"bad\\\\:hostname"}\] Inputs: undefined] + expected: FAIL + + [Pattern: [{"hostname":"bad<hostname"}\] Inputs: undefined] + expected: FAIL + + [Pattern: [{"hostname":"bad>hostname"}\] Inputs: undefined] + expected: FAIL + + [Pattern: [{"hostname":"bad?hostname"}\] Inputs: undefined] + expected: FAIL + + [Pattern: [{"hostname":"bad@hostname"}\] Inputs: undefined] + expected: FAIL + + [Pattern: [{"hostname":"bad[hostname"}\] Inputs: undefined] + expected: FAIL + + [Pattern: [{"hostname":"bad\]hostname"}\] Inputs: undefined] + expected: FAIL + + [Pattern: [{"hostname":"bad\\\\\\\\hostname"}\] Inputs: undefined] + expected: FAIL + + [Pattern: [{"hostname":"bad^hostname"}\] Inputs: undefined] + expected: FAIL + + [Pattern: [{"hostname":"bad|hostname"}\] Inputs: undefined] + expected: FAIL + + [Pattern: [{"hostname":"bad\\nhostname"}\] Inputs: undefined] + expected: FAIL + + [Pattern: [{"hostname":"bad\\rhostname"}\] Inputs: undefined] + expected: FAIL + + [Pattern: [{"hostname":"bad\\thostname"}\] Inputs: undefined] + expected: FAIL + + [Pattern: [{}\] Inputs: ["https://example.com/"\]] + expected: FAIL + + [Pattern: [\] Inputs: ["https://example.com/"\]] + expected: FAIL + + [Pattern: [\] Inputs: [{}\]] + expected: FAIL + + [Pattern: [\] Inputs: [\]] + expected: FAIL + + [Pattern: [{"pathname":"{:foo}(barbaz)"}\] Inputs: [{"pathname":"foobarbaz"}\]] + expected: FAIL + + [Pattern: [{"pathname":"{:foo\\\\bar}"}\] Inputs: [{"pathname":"foobar"}\]] + expected: FAIL + + [Pattern: [{"pathname":"{:foo}{(.*)}"}\] Inputs: [{"pathname":"foobarbaz"}\]] + expected: FAIL + + [Pattern: [{"pathname":"(foo)(.*)"}\] Inputs: [{"pathname":"foobarbaz"}\]] + expected: FAIL + + [Pattern: [{"pathname":"{:foo(foo)bar}"}\] Inputs: [{"pathname":"foobar"}\]] + expected: FAIL + + [Pattern: [{"pathname":"{:foo}{bar(.*)}"}\] Inputs: [{"pathname":"foobarbaz"}\]] + expected: FAIL + + [Pattern: [{"pathname":"(foo)?(.*)"}\] Inputs: [{"pathname":"foobarbaz"}\]] + expected: FAIL + + [Pattern: [{"pathname":"{:foo\\\\.bar}"}\] Inputs: [{"pathname":"foo.bar"}\]] + expected: FAIL + + [Pattern: [{"pathname":"{(foo)bar}(.*)"}\] Inputs: [{"pathname":"foobarbaz"}\]] + expected: FAIL + + [Pattern: [{"pathname":"{:foo}?(.*)"}\] Inputs: [{"pathname":"foobarbaz"}\]] + expected: FAIL + + [Pattern: [{"pathname":"{:foo}{(.*)bar}"}\] Inputs: [{"pathname":"foobarbaz"}\]] + expected: FAIL + + [Pattern: [{"pathname":"{:foo}:bar(.*)"}\] Inputs: [{"pathname":"foobarbaz"}\]] + expected: FAIL + + [Pattern: [{"pathname":"{:foo}(.*)"}\] Inputs: [{"pathname":"foobarbaz"}\]] + expected: FAIL + + [Pattern: [{"pathname":":foo{}?bar"}\] Inputs: [{"pathname":"foobar"}\]] + expected: FAIL + + [Pattern: [{"pathname":":foo(baz)(.*)"}\] Inputs: [{"pathname":"bazbar"}\]] + expected: FAIL + + [Pattern: [{"pathname":":foo{}(.*)"}\] Inputs: [{"pathname":"foobar"}\]] + expected: FAIL + + [Pattern: [{"pathname":":foo\\\\bar"}\] Inputs: [{"pathname":"foobar"}\]] + expected: FAIL + + [Pattern: [{"pathname":"*{}**?"}\] Inputs: [{"pathname":"foobar"}\]] + expected: FAIL + + [Pattern: [{"pathname":":foo(baz)bar"}\] Inputs: [{"pathname":"bazbar"}\]] + expected: FAIL + + [Pattern: [{"pathname":"{:foo}bar"}\] Inputs: [{"pathname":"foobar"}\]] + expected: FAIL + + [Pattern: [{"pathname":":foo{}bar"}\] Inputs: [{"pathname":"foobar"}\]] + expected: FAIL + + [Pattern: [{"pathname":"*//*"}\] Inputs: [{"pathname":"foo/bar"}\]] + expected: FAIL + + [Pattern: [{"pathname":"/:foo."}\] Inputs: [{"pathname":"/bar."}\]] + expected: FAIL + + [Pattern: [{"pathname":"*/{*}"}\] Inputs: [{"pathname":"foo/bar"}\]] + expected: FAIL + + [Pattern: [{"pathname":"./foo"}\] Inputs: [{"pathname":"./foo"}\]] + expected: FAIL + + [Pattern: [{"pathname":":foo./"}\] Inputs: [{"pathname":"bar./"}\]] + expected: FAIL + + [Pattern: [{"pathname":"/:foo\\\\bar"}\] Inputs: [{"pathname":"/bazbar"}\]] + expected: FAIL + + [Pattern: [{"pathname":"../foo"}\] Inputs: [{"pathname":"../foo"}\]] + expected: FAIL + + [Pattern: [{"pathname":"/:foo.."}\] Inputs: [{"pathname":"/bar.."}\]] + expected: FAIL + + [Pattern: [{"pathname":":foo../"}\] Inputs: [{"pathname":"bar../"}\]] + expected: FAIL + + [Pattern: [{"pathname":"*\\\\/*"}\] Inputs: [{"pathname":"foo/bar"}\]] + expected: FAIL + + [Pattern: [{"pathname":"*/*"}\] Inputs: [{"pathname":"foo/bar"}\]] + expected: FAIL + + [Pattern: ["https://example.com:8080/foo?bar#baz",{"ignoreCase":true}\] Inputs: [{"pathname":"/FOO","search":"BAR","hash":"BAZ","baseURL":"https://example.com:8080"}\]] + expected: FAIL + + [Pattern: ["/foo?bar#baz","https://example.com:8080",{"ignoreCase":true}\] Inputs: [{"pathname":"/FOO","search":"BAR","hash":"BAZ","baseURL":"https://example.com:8080"}\]] + expected: FAIL + + [Pattern: [{"ignoreCase":true}\] Inputs: [{"pathname":"/FOO/BAR"}\]] + expected: FAIL + + [Pattern: ["/foo?bar#baz",{"ignoreCase":true},"https://example.com:8080"\] Inputs: [{"pathname":"/FOO","search":"BAR","hash":"BAZ","baseURL":"https://example.com:8080"}\]] + expected: FAIL + + [Pattern: [{"pathname":"/foo/bar"},{"ignoreCase":true}\] Inputs: [{"pathname":"/FOO/BAR"}\]] + expected: FAIL + + [Pattern: ["#foo","https://example.com/?q=*&v=?&hmm={}&umm=()"\] Inputs: ["https://example.com/?q=*&v=?&hmm={}&umm=()#foo"\]] + expected: FAIL + + [Pattern: [{"search":"foo","baseURL":"https://example.com/a/+/b"}\] Inputs: [{"search":"foo","baseURL":"https://example.com/a/+/b"}\]] + expected: FAIL + + [Pattern: [{"hash":"foo","baseURL":"https://example.com/?q=*&v=?&hmm={}&umm=()"}\] Inputs: [{"hash":"foo","baseURL":"https://example.com/?q=*&v=?&hmm={}&umm=()"}\]] + expected: FAIL + + +[urlpattern.https.any.serviceworker.html] + expected: + if (processor == "x86") and (os == "win") and not debug: [OK, TIMEOUT] + [Pattern: [{"pathname":"/foo/bar"}\] Inputs: [{"pathname":"/foo/bar"}\]] + expected: FAIL + + [Pattern: [{"pathname":"/foo/bar"}\] Inputs: [{"pathname":"/foo/ba"}\]] + expected: FAIL + + [Pattern: [{"pathname":"/foo/bar"}\] Inputs: [{"pathname":"/foo/bar/"}\]] + expected: FAIL + + [Pattern: [{"pathname":"/foo/bar"}\] Inputs: [{"pathname":"/foo/bar/baz"}\]] + expected: FAIL + + [Pattern: [{"pathname":"/foo/bar"}\] Inputs: ["https://example.com/foo/bar"\]] + expected: FAIL + + [Pattern: [{"pathname":"/foo/bar"}\] Inputs: ["https://example.com/foo/bar/baz"\]] + expected: FAIL + + [Pattern: [{"pathname":"/foo/bar"}\] Inputs: [{"hostname":"example.com","pathname":"/foo/bar"}\]] + expected: FAIL + + [Pattern: [{"pathname":"/foo/bar"}\] Inputs: [{"hostname":"example.com","pathname":"/foo/bar/baz"}\]] + expected: FAIL + + [Pattern: [{"pathname":"/foo/bar"}\] Inputs: [{"pathname":"/foo/bar","baseURL":"https://example.com"}\]] + expected: FAIL + + [Pattern: [{"pathname":"/foo/bar"}\] Inputs: [{"pathname":"/foo/bar/baz","baseURL":"https://example.com"}\]] + expected: FAIL + + [Pattern: [{"pathname":"/foo/bar","baseURL":"https://example.com?query#hash"}\] Inputs: [{"pathname":"/foo/bar"}\]] + expected: FAIL + + [Pattern: [{"pathname":"/foo/bar","baseURL":"https://example.com?query#hash"}\] Inputs: [{"hostname":"example.com","pathname":"/foo/bar"}\]] + expected: FAIL + + [Pattern: [{"pathname":"/foo/bar","baseURL":"https://example.com?query#hash"}\] Inputs: [{"protocol":"https","hostname":"example.com","pathname":"/foo/bar"}\]] + expected: FAIL + + [Pattern: [{"pathname":"/foo/bar","baseURL":"https://example.com?query#hash"}\] Inputs: [{"protocol":"https","hostname":"example.com","pathname":"/foo/bar","search":"otherquery","hash":"otherhash"}\]] + expected: FAIL + + [Pattern: [{"pathname":"/foo/bar","baseURL":"https://example.com?query#hash"}\] Inputs: ["https://example.com/foo/bar"\]] + expected: FAIL + + [Pattern: [{"pathname":"/foo/bar","baseURL":"https://example.com?query#hash"}\] Inputs: ["https://example.com/foo/bar?otherquery#otherhash"\]] + expected: FAIL + + [Pattern: [{"pathname":"/foo/bar","baseURL":"https://example.com?query#hash"}\] Inputs: ["https://example.com/foo/bar/baz"\]] + expected: FAIL + + [Pattern: [{"pathname":"/foo/bar","baseURL":"https://example.com?query#hash"}\] Inputs: ["https://other.com/foo/bar"\]] + expected: FAIL + + [Pattern: [{"pathname":"/foo/bar","baseURL":"https://example.com?query#hash"}\] Inputs: ["http://other.com/foo/bar"\]] + expected: FAIL + + [Pattern: [{"pathname":"/foo/bar","baseURL":"https://example.com?query#hash"}\] Inputs: [{"pathname":"/foo/bar","baseURL":"https://example.com"}\]] + expected: FAIL + + [Pattern: [{"pathname":"/foo/bar","baseURL":"https://example.com?query#hash"}\] Inputs: [{"pathname":"/foo/bar/baz","baseURL":"https://example.com"}\]] + expected: FAIL + + [Pattern: [{"pathname":"/foo/bar","baseURL":"https://example.com?query#hash"}\] Inputs: [{"pathname":"/foo/bar","baseURL":"https://other.com"}\]] + expected: FAIL + + [Pattern: [{"pathname":"/foo/bar","baseURL":"https://example.com?query#hash"}\] Inputs: [{"pathname":"/foo/bar","baseURL":"http://example.com"}\]] + expected: FAIL + + [Pattern: [{"pathname":"/foo/:bar"}\] Inputs: [{"pathname":"/foo/bar"}\]] + expected: FAIL + + [Pattern: [{"pathname":"/foo/:bar"}\] Inputs: [{"pathname":"/foo/index.html"}\]] + expected: FAIL + + [Pattern: [{"pathname":"/foo/:bar"}\] Inputs: [{"pathname":"/foo/bar/"}\]] + expected: FAIL + + [Pattern: [{"pathname":"/foo/:bar"}\] Inputs: [{"pathname":"/foo/"}\]] + expected: FAIL + + [Pattern: [{"pathname":"/foo/(.*)"}\] Inputs: [{"pathname":"/foo/bar"}\]] + expected: FAIL + + [Pattern: [{"pathname":"/foo/*"}\] Inputs: [{"pathname":"/foo/bar"}\]] + expected: FAIL + + [Pattern: [{"pathname":"/foo/(.*)"}\] Inputs: [{"pathname":"/foo/bar/baz"}\]] + expected: FAIL + + [Pattern: [{"pathname":"/foo/*"}\] Inputs: [{"pathname":"/foo/bar/baz"}\]] + expected: FAIL + + [Pattern: [{"pathname":"/foo/(.*)"}\] Inputs: [{"pathname":"/foo/"}\]] + expected: FAIL + + [Pattern: [{"pathname":"/foo/*"}\] Inputs: [{"pathname":"/foo/"}\]] + expected: FAIL + + [Pattern: [{"pathname":"/foo/(.*)"}\] Inputs: [{"pathname":"/foo"}\]] + expected: FAIL + + [Pattern: [{"pathname":"/foo/*"}\] Inputs: [{"pathname":"/foo"}\]] + expected: FAIL + + [Pattern: [{"pathname":"/foo/:bar(.*)"}\] Inputs: [{"pathname":"/foo/bar"}\]] + expected: FAIL + + [Pattern: [{"pathname":"/foo/:bar(.*)"}\] Inputs: [{"pathname":"/foo/bar/baz"}\]] + expected: FAIL + + [Pattern: [{"pathname":"/foo/:bar(.*)"}\] Inputs: [{"pathname":"/foo/"}\]] + expected: FAIL + + [Pattern: [{"pathname":"/foo/:bar(.*)"}\] Inputs: [{"pathname":"/foo"}\]] + expected: FAIL + + [Pattern: [{"pathname":"/foo/:bar?"}\] Inputs: [{"pathname":"/foo/bar"}\]] + expected: FAIL + + [Pattern: [{"pathname":"/foo/:bar?"}\] Inputs: [{"pathname":"/foo"}\]] + expected: FAIL + + [Pattern: [{"pathname":"/foo/:bar?"}\] Inputs: [{"pathname":"/foo/"}\]] + expected: FAIL + + [Pattern: [{"pathname":"/foo/:bar?"}\] Inputs: [{"pathname":"/foobar"}\]] + expected: FAIL + + [Pattern: [{"pathname":"/foo/:bar?"}\] Inputs: [{"pathname":"/foo/bar/baz"}\]] + expected: FAIL + + [Pattern: [{"pathname":"/foo/:bar+"}\] Inputs: [{"pathname":"/foo/bar"}\]] + expected: FAIL + + [Pattern: [{"pathname":"/foo/:bar+"}\] Inputs: [{"pathname":"/foo/bar/baz"}\]] + expected: FAIL + + [Pattern: [{"pathname":"/foo/:bar+"}\] Inputs: [{"pathname":"/foo"}\]] + expected: FAIL + + [Pattern: [{"pathname":"/foo/:bar+"}\] Inputs: [{"pathname":"/foo/"}\]] + expected: FAIL + + [Pattern: [{"pathname":"/foo/:bar+"}\] Inputs: [{"pathname":"/foobar"}\]] + expected: FAIL + + [Pattern: [{"pathname":"/foo/:bar*"}\] Inputs: [{"pathname":"/foo/bar"}\]] + expected: FAIL + + [Pattern: [{"pathname":"/foo/:bar*"}\] Inputs: [{"pathname":"/foo/bar/baz"}\]] + expected: FAIL + + [Pattern: [{"pathname":"/foo/:bar*"}\] Inputs: [{"pathname":"/foo"}\]] + expected: FAIL + + [Pattern: [{"pathname":"/foo/:bar*"}\] Inputs: [{"pathname":"/foo/"}\]] + expected: FAIL + + [Pattern: [{"pathname":"/foo/:bar*"}\] Inputs: [{"pathname":"/foobar"}\]] + expected: FAIL + + [Pattern: [{"pathname":"/foo/(.*)?"}\] Inputs: [{"pathname":"/foo/bar"}\]] + expected: FAIL + + [Pattern: [{"pathname":"/foo/*?"}\] Inputs: [{"pathname":"/foo/bar"}\]] + expected: FAIL + + [Pattern: [{"pathname":"/foo/(.*)?"}\] Inputs: [{"pathname":"/foo/bar/baz"}\]] + expected: FAIL + + [Pattern: [{"pathname":"/foo/*?"}\] Inputs: [{"pathname":"/foo/bar/baz"}\]] + expected: FAIL + + [Pattern: [{"pathname":"/foo/(.*)?"}\] Inputs: [{"pathname":"/foo"}\]] + expected: FAIL + + [Pattern: [{"pathname":"/foo/*?"}\] Inputs: [{"pathname":"/foo"}\]] + expected: FAIL + + [Pattern: [{"pathname":"/foo/(.*)?"}\] Inputs: [{"pathname":"/foo/"}\]] + expected: FAIL + + [Pattern: [{"pathname":"/foo/*?"}\] Inputs: [{"pathname":"/foo/"}\]] + expected: FAIL + + [Pattern: [{"pathname":"/foo/(.*)?"}\] Inputs: [{"pathname":"/foobar"}\]] + expected: FAIL + + [Pattern: [{"pathname":"/foo/*?"}\] Inputs: [{"pathname":"/foobar"}\]] + expected: FAIL + + [Pattern: [{"pathname":"/foo/(.*)?"}\] Inputs: [{"pathname":"/fo"}\]] + expected: FAIL + + [Pattern: [{"pathname":"/foo/*?"}\] Inputs: [{"pathname":"/fo"}\]] + expected: FAIL + + [Pattern: [{"pathname":"/foo/(.*)+"}\] Inputs: [{"pathname":"/foo/bar"}\]] + expected: FAIL + + [Pattern: [{"pathname":"/foo/*+"}\] Inputs: [{"pathname":"/foo/bar"}\]] + expected: FAIL + + [Pattern: [{"pathname":"/foo/(.*)+"}\] Inputs: [{"pathname":"/foo/bar/baz"}\]] + expected: FAIL + + [Pattern: [{"pathname":"/foo/*+"}\] Inputs: [{"pathname":"/foo/bar/baz"}\]] + expected: FAIL + + [Pattern: [{"pathname":"/foo/(.*)+"}\] Inputs: [{"pathname":"/foo"}\]] + expected: FAIL + + [Pattern: [{"pathname":"/foo/*+"}\] Inputs: [{"pathname":"/foo"}\]] + expected: FAIL + + [Pattern: [{"pathname":"/foo/(.*)+"}\] Inputs: [{"pathname":"/foo/"}\]] + expected: FAIL + + [Pattern: [{"pathname":"/foo/*+"}\] Inputs: [{"pathname":"/foo/"}\]] + expected: FAIL + + [Pattern: [{"pathname":"/foo/(.*)+"}\] Inputs: [{"pathname":"/foobar"}\]] + expected: FAIL + + [Pattern: [{"pathname":"/foo/*+"}\] Inputs: [{"pathname":"/foobar"}\]] + expected: FAIL + + [Pattern: [{"pathname":"/foo/(.*)+"}\] Inputs: [{"pathname":"/fo"}\]] + expected: FAIL + + [Pattern: [{"pathname":"/foo/*+"}\] Inputs: [{"pathname":"/fo"}\]] + expected: FAIL + + [Pattern: [{"pathname":"/foo/(.*)*"}\] Inputs: [{"pathname":"/foo/bar"}\]] + expected: FAIL + + [Pattern: [{"pathname":"/foo/**"}\] Inputs: [{"pathname":"/foo/bar"}\]] + expected: FAIL + + [Pattern: [{"pathname":"/foo/(.*)*"}\] Inputs: [{"pathname":"/foo/bar/baz"}\]] + expected: FAIL + + [Pattern: [{"pathname":"/foo/**"}\] Inputs: [{"pathname":"/foo/bar/baz"}\]] + expected: FAIL + + [Pattern: [{"pathname":"/foo/(.*)*"}\] Inputs: [{"pathname":"/foo"}\]] + expected: FAIL + + [Pattern: [{"pathname":"/foo/**"}\] Inputs: [{"pathname":"/foo"}\]] + expected: FAIL + + [Pattern: [{"pathname":"/foo/(.*)*"}\] Inputs: [{"pathname":"/foo/"}\]] + expected: FAIL + + [Pattern: [{"pathname":"/foo/**"}\] Inputs: [{"pathname":"/foo/"}\]] + expected: FAIL + + [Pattern: [{"pathname":"/foo/(.*)*"}\] Inputs: [{"pathname":"/foobar"}\]] + expected: FAIL + + [Pattern: [{"pathname":"/foo/**"}\] Inputs: [{"pathname":"/foobar"}\]] + expected: FAIL + + [Pattern: [{"pathname":"/foo/(.*)*"}\] Inputs: [{"pathname":"/fo"}\]] + expected: FAIL + + [Pattern: [{"pathname":"/foo/**"}\] Inputs: [{"pathname":"/fo"}\]] + expected: FAIL + + [Pattern: [{"pathname":"/foo{/bar}"}\] Inputs: [{"pathname":"/foo/bar"}\]] + expected: FAIL + + [Pattern: [{"pathname":"/foo{/bar}"}\] Inputs: [{"pathname":"/foo/bar/baz"}\]] + expected: FAIL + + [Pattern: [{"pathname":"/foo{/bar}"}\] Inputs: [{"pathname":"/foo"}\]] + expected: FAIL + + [Pattern: [{"pathname":"/foo{/bar}"}\] Inputs: [{"pathname":"/foo/"}\]] + expected: FAIL + + [Pattern: [{"pathname":"/foo{/bar}?"}\] Inputs: [{"pathname":"/foo/bar"}\]] + expected: FAIL + + [Pattern: [{"pathname":"/foo{/bar}?"}\] Inputs: [{"pathname":"/foo/bar/baz"}\]] + expected: FAIL + + [Pattern: [{"pathname":"/foo{/bar}?"}\] Inputs: [{"pathname":"/foo"}\]] + expected: FAIL + + [Pattern: [{"pathname":"/foo{/bar}?"}\] Inputs: [{"pathname":"/foo/"}\]] + expected: FAIL + + [Pattern: [{"pathname":"/foo{/bar}+"}\] Inputs: [{"pathname":"/foo/bar"}\]] + expected: FAIL + + [Pattern: [{"pathname":"/foo{/bar}+"}\] Inputs: [{"pathname":"/foo/bar/bar"}\]] + expected: FAIL + + [Pattern: [{"pathname":"/foo{/bar}+"}\] Inputs: [{"pathname":"/foo/bar/baz"}\]] + expected: FAIL + + [Pattern: [{"pathname":"/foo{/bar}+"}\] Inputs: [{"pathname":"/foo"}\]] + expected: FAIL + + [Pattern: [{"pathname":"/foo{/bar}+"}\] Inputs: [{"pathname":"/foo/"}\]] + expected: FAIL + + [Pattern: [{"pathname":"/foo{/bar}*"}\] Inputs: [{"pathname":"/foo/bar"}\]] + expected: FAIL + + [Pattern: [{"pathname":"/foo{/bar}*"}\] Inputs: [{"pathname":"/foo/bar/bar"}\]] + expected: FAIL + + [Pattern: [{"pathname":"/foo{/bar}*"}\] Inputs: [{"pathname":"/foo/bar/baz"}\]] + expected: FAIL + + [Pattern: [{"pathname":"/foo{/bar}*"}\] Inputs: [{"pathname":"/foo"}\]] + expected: FAIL + + [Pattern: [{"pathname":"/foo{/bar}*"}\] Inputs: [{"pathname":"/foo/"}\]] + expected: FAIL + + [Pattern: [{"protocol":"(café)"}\] Inputs: undefined] + expected: FAIL + + [Pattern: [{"username":"(café)"}\] Inputs: undefined] + expected: FAIL + + [Pattern: [{"password":"(café)"}\] Inputs: undefined] + expected: FAIL + + [Pattern: [{"hostname":"(café)"}\] Inputs: undefined] + expected: FAIL + + [Pattern: [{"pathname":"(café)"}\] Inputs: undefined] + expected: FAIL + + [Pattern: [{"search":"(café)"}\] Inputs: undefined] + expected: FAIL + + [Pattern: [{"hash":"(café)"}\] Inputs: undefined] + expected: FAIL + + [Pattern: [{"protocol":":café"}\] Inputs: [{"protocol":"foo"}\]] + expected: FAIL + + [Pattern: [{"username":":café"}\] Inputs: [{"username":"foo"}\]] + expected: FAIL + + [Pattern: [{"password":":café"}\] Inputs: [{"password":"foo"}\]] + expected: FAIL + + [Pattern: [{"hostname":":café"}\] Inputs: [{"hostname":"foo"}\]] + expected: FAIL + + [Pattern: [{"pathname":"/:café"}\] Inputs: [{"pathname":"/foo"}\]] + expected: FAIL + + [Pattern: [{"search":":café"}\] Inputs: [{"search":"foo"}\]] + expected: FAIL + + [Pattern: [{"hash":":café"}\] Inputs: [{"hash":"foo"}\]] + expected: FAIL + + [Pattern: [{"protocol":":℘"}\] Inputs: [{"protocol":"foo"}\]] + expected: FAIL + + [Pattern: [{"username":":℘"}\] Inputs: [{"username":"foo"}\]] + expected: FAIL + + [Pattern: [{"password":":℘"}\] Inputs: [{"password":"foo"}\]] + expected: FAIL + + [Pattern: [{"hostname":":℘"}\] Inputs: [{"hostname":"foo"}\]] + expected: FAIL + + [Pattern: [{"pathname":"/:℘"}\] Inputs: [{"pathname":"/foo"}\]] + expected: FAIL + + [Pattern: [{"search":":℘"}\] Inputs: [{"search":"foo"}\]] + expected: FAIL + + [Pattern: [{"hash":":℘"}\] Inputs: [{"hash":"foo"}\]] + expected: FAIL + + [Pattern: [{"protocol":":㐀"}\] Inputs: [{"protocol":"foo"}\]] + expected: FAIL + + [Pattern: [{"username":":㐀"}\] Inputs: [{"username":"foo"}\]] + expected: FAIL + + [Pattern: [{"password":":㐀"}\] Inputs: [{"password":"foo"}\]] + expected: FAIL + + [Pattern: [{"hostname":":㐀"}\] Inputs: [{"hostname":"foo"}\]] + expected: FAIL + + [Pattern: [{"pathname":"/:㐀"}\] Inputs: [{"pathname":"/foo"}\]] + expected: FAIL + + [Pattern: [{"search":":㐀"}\] Inputs: [{"search":"foo"}\]] + expected: FAIL + + [Pattern: [{"hash":":㐀"}\] Inputs: [{"hash":"foo"}\]] + expected: FAIL + + [Pattern: [{"protocol":"(.*)"}\] Inputs: [{"protocol":"café"}\]] + expected: FAIL + + [Pattern: [{"protocol":"(.*)"}\] Inputs: [{"protocol":"cafe"}\]] + expected: FAIL + + [Pattern: [{"protocol":"foo-bar"}\] Inputs: [{"protocol":"foo-bar"}\]] + expected: FAIL + + [Pattern: [{"username":"caf%C3%A9"}\] Inputs: [{"username":"café"}\]] + expected: FAIL + + [Pattern: [{"username":"café"}\] Inputs: [{"username":"café"}\]] + expected: FAIL + + [Pattern: [{"username":"caf%c3%a9"}\] Inputs: [{"username":"café"}\]] + expected: FAIL + + [Pattern: [{"password":"caf%C3%A9"}\] Inputs: [{"password":"café"}\]] + expected: FAIL + + [Pattern: [{"password":"café"}\] Inputs: [{"password":"café"}\]] + expected: FAIL + + [Pattern: [{"password":"caf%c3%a9"}\] Inputs: [{"password":"café"}\]] + expected: FAIL + + [Pattern: [{"hostname":"xn--caf-dma.com"}\] Inputs: [{"hostname":"café.com"}\]] + expected: FAIL + + [Pattern: [{"hostname":"café.com"}\] Inputs: [{"hostname":"café.com"}\]] + expected: FAIL + + [Pattern: [{"port":""}\] Inputs: [{"protocol":"http","port":"80"}\]] + expected: FAIL + + [Pattern: [{"protocol":"http","port":"80"}\] Inputs: [{"protocol":"http","port":"80"}\]] + expected: FAIL + + [Pattern: [{"protocol":"http","port":"80{20}?"}\] Inputs: [{"protocol":"http","port":"80"}\]] + expected: FAIL + + [Pattern: [{"protocol":"http","port":"80 "}\] Inputs: [{"protocol":"http","port":"80"}\]] + expected: FAIL + + [Pattern: [{"port":"80"}\] Inputs: [{"protocol":"http","port":"80"}\]] + expected: FAIL + + [Pattern: [{"protocol":"http{s}?","port":"80"}\] Inputs: [{"protocol":"http","port":"80"}\]] + expected: FAIL + + [Pattern: [{"port":"80"}\] Inputs: [{"port":"80"}\]] + expected: FAIL + + [Pattern: [{"port":"(.*)"}\] Inputs: [{"port":"invalid80"}\]] + expected: FAIL + + [Pattern: [{"pathname":"/foo/bar"}\] Inputs: [{"pathname":"/foo/./bar"}\]] + expected: FAIL + + [Pattern: [{"pathname":"/foo/baz"}\] Inputs: [{"pathname":"/foo/bar/../baz"}\]] + expected: FAIL + + [Pattern: [{"pathname":"/caf%C3%A9"}\] Inputs: [{"pathname":"/café"}\]] + expected: FAIL + + [Pattern: [{"pathname":"/café"}\] Inputs: [{"pathname":"/café"}\]] + expected: FAIL + + [Pattern: [{"pathname":"/caf%c3%a9"}\] Inputs: [{"pathname":"/café"}\]] + expected: FAIL + + [Pattern: [{"pathname":"/foo/bar"}\] Inputs: [{"pathname":"foo/bar"}\]] + expected: FAIL + + [Pattern: [{"pathname":"/foo/bar"}\] Inputs: [{"pathname":"foo/bar","baseURL":"https://example.com"}\]] + expected: FAIL + + [Pattern: [{"pathname":"/foo/../bar"}\] Inputs: [{"pathname":"/bar"}\]] + expected: FAIL + + [Pattern: [{"pathname":"./foo/bar","baseURL":"https://example.com"}\] Inputs: [{"pathname":"foo/bar","baseURL":"https://example.com"}\]] + expected: FAIL + + [Pattern: [{"pathname":"foo/bar"}\] Inputs: ["https://example.com/foo/bar"\]] + expected: FAIL + + [Pattern: [{"pathname":"foo/bar","baseURL":"https://example.com"}\] Inputs: ["https://example.com/foo/bar"\]] + expected: FAIL + + [Pattern: [{"pathname":":name.html","baseURL":"https://example.com"}\] Inputs: ["https://example.com/foo.html"\]] + expected: FAIL + + [Pattern: [{"search":"q=caf%C3%A9"}\] Inputs: [{"search":"q=café"}\]] + expected: FAIL + + [Pattern: [{"search":"q=café"}\] Inputs: [{"search":"q=café"}\]] + expected: FAIL + + [Pattern: [{"search":"q=caf%c3%a9"}\] Inputs: [{"search":"q=café"}\]] + expected: FAIL + + [Pattern: [{"hash":"caf%C3%A9"}\] Inputs: [{"hash":"café"}\]] + expected: FAIL + + [Pattern: [{"hash":"café"}\] Inputs: [{"hash":"café"}\]] + expected: FAIL + + [Pattern: [{"hash":"caf%c3%a9"}\] Inputs: [{"hash":"café"}\]] + expected: FAIL + + [Pattern: [{"protocol":"about","pathname":"(blank|sourcedoc)"}\] Inputs: ["about:blank"\]] + expected: FAIL + + [Pattern: [{"protocol":"data","pathname":":number([0-9\]+)"}\] Inputs: ["data:8675309"\]] + expected: FAIL + + [Pattern: [{"pathname":"/(\\\\m)"}\] Inputs: undefined] + expected: FAIL + + [Pattern: [{"pathname":"/foo!"}\] Inputs: [{"pathname":"/foo!"}\]] + expected: FAIL + + [Pattern: [{"pathname":"/foo\\\\:"}\] Inputs: [{"pathname":"/foo:"}\]] + expected: FAIL + + [Pattern: [{"pathname":"/foo\\\\{"}\] Inputs: [{"pathname":"/foo{"}\]] + expected: FAIL + + [Pattern: [{"pathname":"/foo\\\\("}\] Inputs: [{"pathname":"/foo("}\]] + expected: FAIL + + [Pattern: [{"protocol":"javascript","pathname":"var x = 1;"}\] Inputs: [{"protocol":"javascript","pathname":"var x = 1;"}\]] + expected: FAIL + + [Pattern: [{"pathname":"var x = 1;"}\] Inputs: [{"protocol":"javascript","pathname":"var x = 1;"}\]] + expected: FAIL + + [Pattern: [{"protocol":"javascript","pathname":"var x = 1;"}\] Inputs: [{"baseURL":"javascript:var x = 1;"}\]] + expected: FAIL + + [Pattern: [{"protocol":"(data|javascript)","pathname":"var x = 1;"}\] Inputs: [{"protocol":"javascript","pathname":"var x = 1;"}\]] + expected: FAIL + + [Pattern: [{"protocol":"(https|javascript)","pathname":"var x = 1;"}\] Inputs: [{"protocol":"javascript","pathname":"var x = 1;"}\]] + expected: FAIL + + [Pattern: [{"pathname":"var x = 1;"}\] Inputs: [{"pathname":"var x = 1;"}\]] + expected: FAIL + + [Pattern: [{"pathname":"/foo/bar"}\] Inputs: ["./foo/bar","https://example.com"\]] + expected: FAIL + + [Pattern: [{"pathname":"/foo/bar"}\] Inputs: [{"pathname":"/foo/bar"},"https://example.com"\]] + expected: FAIL + + [Pattern: ["https://example.com:8080/foo?bar#baz"\] Inputs: [{"pathname":"/foo","search":"bar","hash":"baz","baseURL":"https://example.com:8080"}\]] + expected: FAIL + + [Pattern: ["/foo?bar#baz","https://example.com:8080"\] Inputs: [{"pathname":"/foo","search":"bar","hash":"baz","baseURL":"https://example.com:8080"}\]] + expected: FAIL + + [Pattern: ["/foo"\] Inputs: undefined] + expected: FAIL + + [Pattern: ["example.com/foo"\] Inputs: undefined] + expected: FAIL + + [Pattern: ["http{s}?://{*.}?example.com/:product/:endpoint"\] Inputs: ["https://sub.example.com/foo/bar"\]] + expected: FAIL + + [Pattern: ["https://example.com?foo"\] Inputs: ["https://example.com/?foo"\]] + expected: FAIL + + [Pattern: ["https://example.com#foo"\] Inputs: ["https://example.com/#foo"\]] + expected: FAIL + + [Pattern: ["https://example.com:8080?foo"\] Inputs: ["https://example.com:8080/?foo"\]] + expected: FAIL + + [Pattern: ["https://example.com:8080#foo"\] Inputs: ["https://example.com:8080/#foo"\]] + expected: FAIL + + [Pattern: ["https://example.com/?foo"\] Inputs: ["https://example.com/?foo"\]] + expected: FAIL + + [Pattern: ["https://example.com/#foo"\] Inputs: ["https://example.com/#foo"\]] + expected: FAIL + + [Pattern: ["https://example.com/*?foo"\] Inputs: ["https://example.com/?foo"\]] + expected: FAIL + + [Pattern: ["https://example.com/*\\\\?foo"\] Inputs: ["https://example.com/?foo"\]] + expected: FAIL + + [Pattern: ["https://example.com/:name?foo"\] Inputs: ["https://example.com/bar?foo"\]] + expected: FAIL + + [Pattern: ["https://example.com/:name\\\\?foo"\] Inputs: ["https://example.com/bar?foo"\]] + expected: FAIL + + [Pattern: ["https://example.com/(bar)?foo"\] Inputs: ["https://example.com/bar?foo"\]] + expected: FAIL + + [Pattern: ["https://example.com/(bar)\\\\?foo"\] Inputs: ["https://example.com/bar?foo"\]] + expected: FAIL + + [Pattern: ["https://example.com/{bar}?foo"\] Inputs: ["https://example.com/bar?foo"\]] + expected: FAIL + + [Pattern: ["https://example.com/{bar}\\\\?foo"\] Inputs: ["https://example.com/bar?foo"\]] + expected: FAIL + + [Pattern: ["https://example.com/"\] Inputs: ["https://example.com:8080/"\]] + expected: FAIL + + [Pattern: ["data:foobar"\] Inputs: ["data:foobar"\]] + expected: FAIL + + [Pattern: ["data\\\\:foobar"\] Inputs: ["data:foobar"\]] + expected: FAIL + + [Pattern: ["https://{sub.}?example.com/foo"\] Inputs: ["https://example.com/foo"\]] + expected: FAIL + + [Pattern: ["https://{sub.}?example{.com/}foo"\] Inputs: ["https://example.com/foo"\]] + expected: FAIL + + [Pattern: ["{https://}example.com/foo"\] Inputs: ["https://example.com/foo"\]] + expected: FAIL + + [Pattern: ["https://(sub.)?example.com/foo"\] Inputs: ["https://example.com/foo"\]] + expected: FAIL + + [Pattern: ["https://(sub.)?example(.com/)foo"\] Inputs: ["https://example.com/foo"\]] + expected: FAIL + + [Pattern: ["(https://)example.com/foo"\] Inputs: ["https://example.com/foo"\]] + expected: FAIL + + [Pattern: ["https://{sub{.}}example.com/foo"\] Inputs: ["https://example.com/foo"\]] + expected: FAIL + + [Pattern: ["https://(sub(?:.))?example.com/foo"\] Inputs: ["https://example.com/foo"\]] + expected: FAIL + + [Pattern: ["file:///foo/bar"\] Inputs: ["file:///foo/bar"\]] + expected: FAIL + + [Pattern: ["data:"\] Inputs: ["data:"\]] + expected: FAIL + + [Pattern: ["foo://bar"\] Inputs: ["foo://bad_url_browser_interop"\]] + expected: FAIL + + [Pattern: ["(café)://foo"\] Inputs: undefined] + expected: FAIL + + [Pattern: [{"pathname":"/foo/bar","baseURL":"https://example.com"}\] Inputs: [{"protocol":"https","hostname":"example.com","pathname":"/foo/bar"}\]] + expected: FAIL + + [Pattern: [{"pathname":"/foo/bar","baseURL":"https://example.com"}\] Inputs: [{"protocol":"https","hostname":"example.com","pathname":"/foo/bar/baz"}\]] + expected: FAIL + + [Pattern: [{"pathname":"/foo/bar","baseURL":"https://example.com"}\] Inputs: [{"protocol":"https","hostname":"example.com","pathname":"/foo/bar","search":"otherquery","hash":"otherhash"}\]] + expected: FAIL + + [Pattern: [{"pathname":"/foo/bar","baseURL":"https://example.com?otherquery#otherhash"}\] Inputs: [{"protocol":"https","hostname":"example.com","pathname":"/foo/bar","search":"otherquery","hash":"otherhash"}\]] + expected: FAIL + + [Pattern: [{"pathname":"/foo/bar","baseURL":"https://example.com?query#hash"}\] Inputs: ["https://example.com/foo/bar?query#hash"\]] + expected: FAIL + + [Pattern: [{"pathname":"/foo/bar","baseURL":"https://example.com?query#hash"}\] Inputs: [{"pathname":"/foo/bar","baseURL":"https://example.com?query#hash"}\]] + expected: FAIL + + [Pattern: ["https://example.com/foo?bar#baz"\] Inputs: [{"protocol":"https:","search":"?bar","hash":"#baz","baseURL":"http://example.com/foo"}\]] + expected: FAIL + + [Pattern: [{"protocol":"http{s}?:","search":"?bar","hash":"#baz"}\] Inputs: ["http://example.com/foo?bar#baz"\]] + expected: FAIL + + [Pattern: ["?bar#baz","https://example.com/foo"\] Inputs: ["?bar#baz","https://example.com/foo"\]] + expected: FAIL + + [Pattern: ["?bar","https://example.com/foo#baz"\] Inputs: ["?bar","https://example.com/foo#snafu"\]] + expected: FAIL + + [Pattern: ["#baz","https://example.com/foo?bar"\] Inputs: ["#baz","https://example.com/foo?bar"\]] + expected: FAIL + + [Pattern: ["#baz","https://example.com/foo"\] Inputs: ["#baz","https://example.com/foo"\]] + expected: FAIL + + [Pattern: ["https://foo\\\\:bar@example.com"\] Inputs: ["https://foo:bar@example.com"\]] + expected: FAIL + + [Pattern: ["https://foo@example.com"\] Inputs: ["https://foo@example.com"\]] + expected: FAIL + + [Pattern: ["https://\\\\:bar@example.com"\] Inputs: ["https://:bar@example.com"\]] + expected: FAIL + + [Pattern: ["https://:user::pass@example.com"\] Inputs: ["https://foo:bar@example.com"\]] + expected: FAIL + + [Pattern: ["https\\\\:foo\\\\:bar@example.com"\] Inputs: ["https:foo:bar@example.com"\]] + expected: FAIL + + [Pattern: ["data\\\\:foo\\\\:bar@example.com"\] Inputs: ["data:foo:bar@example.com"\]] + expected: FAIL + + [Pattern: ["https://foo{\\\\:}bar@example.com"\] Inputs: ["https://foo:bar@example.com"\]] + expected: FAIL + + [Pattern: ["data{\\\\:}channel.html","https://example.com"\] Inputs: ["https://example.com/data:channel.html"\]] + expected: FAIL + + [Pattern: ["https://foo{{@}}example.com"\] Inputs: ["https://foo@example.com"\]] + expected: FAIL + + [Pattern: ["https://foo{@example.com"\] Inputs: ["https://foo@example.com"\]] + expected: FAIL + + [Pattern: [{"pathname":"*"}\] Inputs: ["foo","data:data-urls-cannot-be-base-urls"\]] + expected: FAIL + + [Pattern: [{"pathname":"\\\\/bar","baseURL":"https://example.com/foo/"}\] Inputs: [{"pathname":"./bar","baseURL":"https://example.com/foo/"}\]] + expected: FAIL + + [Pattern: [{"pathname":"/foo"},"https://example.com"\] Inputs: undefined] + expected: FAIL + + [Pattern: [{"pathname":":name"}\] Inputs: [{"pathname":"foobar"}\]] + expected: FAIL + + [Pattern: [{"pathname":"/:id/:id"}\] Inputs: undefined] + expected: FAIL + + [Pattern: [{"pathname":":name+"}\] Inputs: [{"pathname":"foobar"}\]] + expected: FAIL + + [Pattern: [{"pathname":"*"}\] Inputs: ["foo","not|a|valid|url"\]] + expected: FAIL + + [Pattern: [{"pathname":":name*"}\] Inputs: [{"pathname":"foobar"}\]] + expected: FAIL + + [Pattern: [{"pathname":"/foo/([^\\\\/\]+?)"}\] Inputs: [{"pathname":"/foo/bar"}\]] + expected: FAIL + + [Pattern: [{"pathname":"","baseURL":"https://example.com"}\] Inputs: [{"pathname":"/","baseURL":"https://example.com"}\]] + expected: FAIL + + [Pattern: [{"pathname":"{/bar}","baseURL":"https://example.com/foo/"}\] Inputs: [{"pathname":"./bar","baseURL":"https://example.com/foo/"}\]] + expected: FAIL + + [Pattern: [{"pathname":"b","baseURL":"https://example.com/foo/"}\] Inputs: [{"pathname":"./b","baseURL":"https://example.com/foo/"}\]] + expected: FAIL + + [Pattern: [{"pathname":"/foo","baseURL":""}\] Inputs: undefined] + expected: FAIL + + [Pattern: ["data\\\\:text/javascript,let x = 100/:tens?5;"\] Inputs: ["data:text/javascript,let x = 100/5;"\]] + expected: FAIL + + [Pattern: ["/foo",""\] Inputs: undefined] + expected: FAIL + + [Pattern: [{"protocol":":name"}\] Inputs: [{"protocol":"foobar"}\]] + expected: FAIL + + [Pattern: [{"protocol":":name*"}\] Inputs: [{"protocol":"foobar"}\]] + expected: FAIL + + [Pattern: [{"protocol":":name+"}\] Inputs: [{"protocol":"foobar"}\]] + expected: FAIL + + [Pattern: ["http://[\\\\:\\\\:a\]/"\] Inputs: ["http://[::a\]/"\]] + expected: FAIL + + [Pattern: ["http://[\\\\:\\\\:1\]:8080/"\] Inputs: ["http://[::1\]:8080/"\]] + expected: FAIL + + [Pattern: ["http://[\\\\:\\\\:1\]/"\] Inputs: ["http://[::1\]/"\]] + expected: FAIL + + [Pattern: ["http://[:address\]/"\] Inputs: ["http://[::1\]/"\]] + expected: FAIL + + [Pattern: ["http://[\\\\:\\\\:AB\\\\::num\]/"\] Inputs: ["http://[::ab:1\]/"\]] + expected: FAIL + + [Pattern: [{"hostname":"[\\\\:\\\\:AB\\\\::num\]"}\] Inputs: [{"hostname":"[::ab:1\]"}\]] + expected: FAIL + + [Pattern: [{"hostname":"[\\\\:\\\\:xY\\\\::num\]"}\] Inputs: undefined] + expected: FAIL + + [Pattern: [{"hostname":"{[\\\\:\\\\:ab\\\\::num\]}"}\] Inputs: [{"hostname":"[::ab:1\]"}\]] + expected: FAIL + + [Pattern: [{"hostname":"{[\\\\:\\\\:fé\\\\::num\]}"}\] Inputs: undefined] + expected: FAIL + + [Pattern: [{"hostname":"{[\\\\:\\\\::num\\\\:1\]}"}\] Inputs: [{"hostname":"[::ab:1\]"}\]] + expected: FAIL + + [Pattern: [{"hostname":"{[\\\\:\\\\::num\\\\:fé\]}"}\] Inputs: undefined] + expected: FAIL + + [Pattern: [{"hostname":"[*\\\\:1\]"}\] Inputs: [{"hostname":"[::ab:1\]"}\]] + expected: FAIL + + [Pattern: [{"hostname":"*\\\\:1\]"}\] Inputs: undefined] + expected: FAIL + + [Pattern: [{"hostname":"bad hostname"}\] Inputs: undefined] + expected: FAIL + + [Pattern: [{"hostname":"bad#hostname"}\] Inputs: undefined] + expected: FAIL + + [Pattern: [{"hostname":"bad%hostname"}\] Inputs: undefined] + expected: FAIL + + [Pattern: [{"hostname":"bad/hostname"}\] Inputs: undefined] + expected: FAIL + + [Pattern: [{"hostname":"bad\\\\:hostname"}\] Inputs: undefined] + expected: FAIL + + [Pattern: [{"hostname":"bad<hostname"}\] Inputs: undefined] + expected: FAIL + + [Pattern: [{"hostname":"bad>hostname"}\] Inputs: undefined] + expected: FAIL + + [Pattern: [{"hostname":"bad?hostname"}\] Inputs: undefined] + expected: FAIL + + [Pattern: [{"hostname":"bad@hostname"}\] Inputs: undefined] + expected: FAIL + + [Pattern: [{"hostname":"bad[hostname"}\] Inputs: undefined] + expected: FAIL + + [Pattern: [{"hostname":"bad\]hostname"}\] Inputs: undefined] + expected: FAIL + + [Pattern: [{"hostname":"bad\\\\\\\\hostname"}\] Inputs: undefined] + expected: FAIL + + [Pattern: [{"hostname":"bad^hostname"}\] Inputs: undefined] + expected: FAIL + + [Pattern: [{"hostname":"bad|hostname"}\] Inputs: undefined] + expected: FAIL + + [Pattern: [{"hostname":"bad\\nhostname"}\] Inputs: undefined] + expected: FAIL + + [Pattern: [{"hostname":"bad\\rhostname"}\] Inputs: undefined] + expected: FAIL + + [Pattern: [{"hostname":"bad\\thostname"}\] Inputs: undefined] + expected: FAIL + + [Pattern: [{}\] Inputs: ["https://example.com/"\]] + expected: FAIL + + [Pattern: [\] Inputs: ["https://example.com/"\]] + expected: FAIL + + [Pattern: [\] Inputs: [{}\]] + expected: FAIL + + [Pattern: [\] Inputs: [\]] + expected: FAIL + + [Pattern: [{"pathname":"{:foo}(barbaz)"}\] Inputs: [{"pathname":"foobarbaz"}\]] + expected: FAIL + + [Pattern: [{"pathname":"{:foo\\\\bar}"}\] Inputs: [{"pathname":"foobar"}\]] + expected: FAIL + + [Pattern: [{"pathname":"{:foo}{(.*)}"}\] Inputs: [{"pathname":"foobarbaz"}\]] + expected: FAIL + + [Pattern: [{"pathname":"(foo)(.*)"}\] Inputs: [{"pathname":"foobarbaz"}\]] + expected: FAIL + + [Pattern: [{"pathname":"{:foo(foo)bar}"}\] Inputs: [{"pathname":"foobar"}\]] + expected: FAIL + + [Pattern: [{"pathname":"{:foo}{bar(.*)}"}\] Inputs: [{"pathname":"foobarbaz"}\]] + expected: FAIL + + [Pattern: [{"pathname":"(foo)?(.*)"}\] Inputs: [{"pathname":"foobarbaz"}\]] + expected: FAIL + + [Pattern: [{"pathname":"{:foo\\\\.bar}"}\] Inputs: [{"pathname":"foo.bar"}\]] + expected: FAIL + + [Pattern: [{"pathname":"{(foo)bar}(.*)"}\] Inputs: [{"pathname":"foobarbaz"}\]] + expected: FAIL + + [Pattern: [{"pathname":"{:foo}?(.*)"}\] Inputs: [{"pathname":"foobarbaz"}\]] + expected: FAIL + + [Pattern: [{"pathname":"{:foo}{(.*)bar}"}\] Inputs: [{"pathname":"foobarbaz"}\]] + expected: FAIL + + [Pattern: [{"pathname":"{:foo}:bar(.*)"}\] Inputs: [{"pathname":"foobarbaz"}\]] + expected: FAIL + + [Pattern: [{"pathname":"{:foo}(.*)"}\] Inputs: [{"pathname":"foobarbaz"}\]] + expected: FAIL + + [Pattern: [{"pathname":":foo{}?bar"}\] Inputs: [{"pathname":"foobar"}\]] + expected: FAIL + + [Pattern: [{"pathname":":foo(baz)(.*)"}\] Inputs: [{"pathname":"bazbar"}\]] + expected: FAIL + + [Pattern: [{"pathname":":foo{}(.*)"}\] Inputs: [{"pathname":"foobar"}\]] + expected: FAIL + + [Pattern: [{"pathname":":foo\\\\bar"}\] Inputs: [{"pathname":"foobar"}\]] + expected: FAIL + + [Pattern: [{"pathname":"*{}**?"}\] Inputs: [{"pathname":"foobar"}\]] + expected: FAIL + + [Pattern: [{"pathname":":foo(baz)bar"}\] Inputs: [{"pathname":"bazbar"}\]] + expected: FAIL + + [Pattern: [{"pathname":"{:foo}bar"}\] Inputs: [{"pathname":"foobar"}\]] + expected: FAIL + + [Pattern: [{"pathname":":foo{}bar"}\] Inputs: [{"pathname":"foobar"}\]] + expected: FAIL + + [Pattern: [{"pathname":"*//*"}\] Inputs: [{"pathname":"foo/bar"}\]] + expected: FAIL + + [Pattern: [{"pathname":"/:foo."}\] Inputs: [{"pathname":"/bar."}\]] + expected: FAIL + + [Pattern: [{"pathname":"*/{*}"}\] Inputs: [{"pathname":"foo/bar"}\]] + expected: FAIL + + [Pattern: [{"pathname":"./foo"}\] Inputs: [{"pathname":"./foo"}\]] + expected: FAIL + + [Pattern: [{"pathname":":foo./"}\] Inputs: [{"pathname":"bar./"}\]] + expected: FAIL + + [Pattern: [{"pathname":"/:foo\\\\bar"}\] Inputs: [{"pathname":"/bazbar"}\]] + expected: FAIL + + [Pattern: [{"pathname":"../foo"}\] Inputs: [{"pathname":"../foo"}\]] + expected: FAIL + + [Pattern: [{"pathname":"/:foo.."}\] Inputs: [{"pathname":"/bar.."}\]] + expected: FAIL + + [Pattern: [{"pathname":":foo../"}\] Inputs: [{"pathname":"bar../"}\]] + expected: FAIL + + [Pattern: [{"pathname":"*\\\\/*"}\] Inputs: [{"pathname":"foo/bar"}\]] + expected: FAIL + + [Pattern: [{"pathname":"*/*"}\] Inputs: [{"pathname":"foo/bar"}\]] + expected: FAIL + + [Pattern: ["https://example.com:8080/foo?bar#baz",{"ignoreCase":true}\] Inputs: [{"pathname":"/FOO","search":"BAR","hash":"BAZ","baseURL":"https://example.com:8080"}\]] + expected: FAIL + + [Pattern: ["/foo?bar#baz","https://example.com:8080",{"ignoreCase":true}\] Inputs: [{"pathname":"/FOO","search":"BAR","hash":"BAZ","baseURL":"https://example.com:8080"}\]] + expected: FAIL + + [Pattern: [{"ignoreCase":true}\] Inputs: [{"pathname":"/FOO/BAR"}\]] + expected: FAIL + + [Pattern: ["/foo?bar#baz",{"ignoreCase":true},"https://example.com:8080"\] Inputs: [{"pathname":"/FOO","search":"BAR","hash":"BAZ","baseURL":"https://example.com:8080"}\]] + expected: FAIL + + [Pattern: [{"pathname":"/foo/bar"},{"ignoreCase":true}\] Inputs: [{"pathname":"/FOO/BAR"}\]] + expected: FAIL + + [Pattern: ["#foo","https://example.com/?q=*&v=?&hmm={}&umm=()"\] Inputs: ["https://example.com/?q=*&v=?&hmm={}&umm=()#foo"\]] + expected: FAIL + + [Pattern: [{"search":"foo","baseURL":"https://example.com/a/+/b"}\] Inputs: [{"search":"foo","baseURL":"https://example.com/a/+/b"}\]] + expected: FAIL + + [Pattern: [{"hash":"foo","baseURL":"https://example.com/?q=*&v=?&hmm={}&umm=()"}\] Inputs: [{"hash":"foo","baseURL":"https://example.com/?q=*&v=?&hmm={}&umm=()"}\]] + expected: FAIL |