diff options
author | Daniel Baumann <daniel.baumann@progress-linux.org> | 2024-04-07 19:33:14 +0000 |
---|---|---|
committer | Daniel Baumann <daniel.baumann@progress-linux.org> | 2024-04-07 19:33:14 +0000 |
commit | 36d22d82aa202bb199967e9512281e9a53db42c9 (patch) | |
tree | 105e8c98ddea1c1e4784a60a5a6410fa416be2de /testing/web-platform/meta/urlpattern | |
parent | Initial commit. (diff) | |
download | firefox-esr-36d22d82aa202bb199967e9512281e9a53db42c9.tar.xz firefox-esr-36d22d82aa202bb199967e9512281e9a53db42c9.zip |
Adding upstream version 115.7.0esr.upstream/115.7.0esrupstream
Signed-off-by: Daniel Baumann <daniel.baumann@progress-linux.org>
Diffstat (limited to 'testing/web-platform/meta/urlpattern')
4 files changed, 8696 insertions, 0 deletions
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 |