[wpt-sync] Sync PR 27679 - URLPattern: Add wildcard '*' support.
Categories
(Testing :: web-platform-tests, task, P4)
Tracking
(firefox88 fixed)
Tracking | Status | |
---|---|---|
firefox88 | --- | fixed |
People
(Reporter: mozilla.org, Unassigned)
References
()
Details
(Whiteboard: [wptsync downstream])
Sync web-platform-tests PR 27679 into mozilla-central (this bug is closed when the sync is complete).
PR: https://github.com/web-platform-tests/wpt/pull/27679
Details from upstream follow.
b'Ben Kelly <wanderview@chromium.org>' wrote:
URLPattern: Add wildcard '*' support.
This CL adds support for a wildcard
*
character in patterns. It is
treated as being equivalent to the(.*)
unnamed regexp group. This
means it can have its own following modifiers like*?
which can affect
how prefix characters are treated.This CL deviates from the current upstream path-to-regexp v6.2.0, but
we plan to upstream this change. Initial discussions suggest that its
possible this will be accepted.Bug: 1141510
Change-Id: I386b03e8bb05aab9586464986faf002e824e189eReviewed-on: https://chromium-review.googlesource.com/2673887
WPT-Export-Revision: 0c69f9500e01eb91b49ff762d7a5cfa4d25cc06a
Assignee | ||
Comment 1•3 years ago
|
||
Pushed to try (stability) https://treeherder.mozilla.org/#/jobs?repo=try&revision=746c37ee324b7575e10f02d828105446417f88eb
Assignee | ||
Comment 2•3 years ago
|
||
CI Results
Ran 15 Firefox configurations based on mozilla-central, and Firefox, Chrome, and Safari on GitHub CI
Total 4 tests and 143 subtests
Status Summary
Firefox
OK : 4
PASS : 4
FAIL : 568
Chrome
OK : 4
PASS : 484
FAIL : 88
Safari
OK : 3
PASS : 3
FAIL : 426
ERROR: 1
Links
Gecko CI (Treeherder)
GitHub PR Head
GitHub PR Base
Details
New Tests That Don't Pass
/urlpattern/urlpattern.https.any.worker.html
Pattern: {"pathname":"/foo/bar"} Input: {"pathname":"/foo/bar"}: FAIL (Chrome: PASS, Safari: FAIL)
Pattern: {"pathname":"/foo/bar"} Input: {"pathname":"/foo/ba"}: FAIL (Chrome: PASS, Safari: FAIL)
Pattern: {"pathname":"/foo/bar"} Input: {"pathname":"/foo/bar/"}: FAIL (Chrome: PASS, Safari: FAIL)
Pattern: {"pathname":"/foo/bar"} Input: {"pathname":"/foo/bar/baz"}: FAIL (Chrome: PASS, Safari: FAIL)
Pattern: {"pathname":"/foo/bar"} Input: "https://example.com/foo/bar": FAIL (Chrome: PASS, Safari: FAIL)
Pattern: {"pathname":"/foo/bar"} Input: "https://example.com/foo/bar/baz": FAIL (Chrome: PASS, Safari: FAIL)
Pattern: {"pathname":"/foo/bar"} Input: {"hostname":"example.com","pathname":"/foo/bar"}: FAIL (Chrome: PASS, Safari: FAIL)
Pattern: {"pathname":"/foo/bar"} Input: {"hostname":"example.com","pathname":"/foo/bar/baz"}: FAIL (Chrome: PASS, Safari: FAIL)
Pattern: {"pathname":"/foo/bar"} Input: {"pathname":"/foo/bar","baseURL":"https://example.com"}: FAIL (Chrome: PASS, Safari: FAIL)
Pattern: {"pathname":"/foo/bar"} Input: {"pathname":"/foo/bar/baz","baseURL":"https://example.com"}: FAIL (Chrome: PASS, Safari: FAIL)
Pattern: {"pathname":"/foo/bar","baseURL":"https://example.com?query#hash"} Input: {"pathname":"/foo/bar"}: FAIL (Chrome: PASS, Safari: FAIL)
Pattern: {"pathname":"/foo/bar","baseURL":"https://example.com?query#hash"} Input: {"hostname":"example.com","pathname":"/foo/bar"}: FAIL (Chrome: PASS, Safari: FAIL)
Pattern: {"pathname":"/foo/bar","baseURL":"https://example.com?query#hash"} Input: {"protocol":"https","hostname":"example.com","pathname":"/foo/bar"}: FAIL (Chrome: PASS, Safari: FAIL)
Pattern: {"pathname":"/foo/bar","baseURL":"https://example.com?query#hash"} Input: {"protocol":"https","hostname":"example.com","pathname":"/foo/bar/baz"}: FAIL (Chrome: PASS, Safari: FAIL)
Pattern: {"pathname":"/foo/bar","baseURL":"https://example.com?query#hash"} Input: {"protocol":"https","hostname":"example.com","pathname":"/foo/bar","search":"otherquery","hash":"otherhash"}: FAIL (Chrome: PASS, Safari: FAIL)
Pattern: {"pathname":"/foo/bar","baseURL":"https://example.com?query#hash"} Input: "https://example.com/foo/bar": FAIL (Chrome: PASS, Safari: FAIL)
Pattern: {"pathname":"/foo/bar","baseURL":"https://example.com?query#hash"} Input: "https://example.com/foo/bar?otherquery#otherhash": FAIL (Chrome: PASS, Safari: FAIL)
Pattern: {"pathname":"/foo/bar","baseURL":"https://example.com?query#hash"} Input: "https://example.com/foo/bar/baz": FAIL (Chrome: PASS, Safari: FAIL)
Pattern: {"pathname":"/foo/bar","baseURL":"https://example.com?query#hash"} Input: "https://other.com/foo/bar": FAIL (Chrome: PASS, Safari: FAIL)
Pattern: {"pathname":"/foo/bar","baseURL":"https://example.com?query#hash"} Input: "http://other.com/foo/bar": FAIL (Chrome: PASS, Safari: FAIL)
Pattern: {"pathname":"/foo/bar","baseURL":"https://example.com?query#hash"} Input: {"pathname":"/foo/bar","baseURL":"https://example.com"}: FAIL (Chrome: PASS, Safari: FAIL)
Pattern: {"pathname":"/foo/bar","baseURL":"https://example.com?query#hash"} Input: {"pathname":"/foo/bar/baz","baseURL":"https://example.com"}: FAIL (Chrome: PASS, Safari: FAIL)
Pattern: {"pathname":"/foo/bar","baseURL":"https://example.com?query#hash"} Input: {"pathname":"/foo/bar","baseURL":"https://other.com"}: FAIL (Chrome: PASS, Safari: FAIL)
Pattern: {"pathname":"/foo/bar","baseURL":"https://example.com?query#hash"} Input: {"pathname":"/foo/bar","baseURL":"http://example.com"}: FAIL (Chrome: PASS, Safari: FAIL)
Pattern: {"pathname":"/foo/:bar"} Input: {"pathname":"/foo/bar"}: FAIL (Chrome: PASS, Safari: FAIL)
Pattern: {"pathname":"/foo/:bar"} Input: {"pathname":"/foo/index.html"}: FAIL (Chrome: PASS, Safari: FAIL)
Pattern: {"pathname":"/foo/:bar"} Input: {"pathname":"/foo/bar/"}: FAIL (Chrome: PASS, Safari: FAIL)
Pattern: {"pathname":"/foo/:bar"} Input: {"pathname":"/foo/"}: FAIL (Chrome: PASS, Safari: FAIL)
Pattern: {"pathname":"/foo/(.)"} Input: {"pathname":"/foo/bar"}: FAIL (Chrome: PASS, Safari: FAIL)
Pattern: {"pathname":"/foo/"} Input: {"pathname":"/foo/bar"}: FAIL (Chrome: FAIL, Safari: FAIL)
Pattern: {"pathname":"/foo/(.)"} Input: {"pathname":"/foo/bar/baz"}: FAIL (Chrome: PASS, Safari: FAIL)
Pattern: {"pathname":"/foo/"} Input: {"pathname":"/foo/bar/baz"}: FAIL (Chrome: FAIL, Safari: FAIL)
Pattern: {"pathname":"/foo/(.)"} Input: {"pathname":"/foo/"}: FAIL (Chrome: PASS, Safari: FAIL)
Pattern: {"pathname":"/foo/"} Input: {"pathname":"/foo/"}: FAIL (Chrome: FAIL, Safari: FAIL)
Pattern: {"pathname":"/foo/(.)"} Input: {"pathname":"/foo"}: FAIL (Chrome: PASS, Safari: FAIL)
Pattern: {"pathname":"/foo/"} Input: {"pathname":"/foo"}: FAIL (Chrome: FAIL, Safari: FAIL)
Pattern: {"pathname":"/foo/:bar(.)"} Input: {"pathname":"/foo/bar"}: FAIL (Chrome: PASS, Safari: FAIL)
Pattern: {"pathname":"/foo/:bar(.)"} Input: {"pathname":"/foo/bar/baz"}: FAIL (Chrome: PASS, Safari: FAIL)
Pattern: {"pathname":"/foo/:bar(.)"} Input: {"pathname":"/foo/"}: FAIL (Chrome: PASS, Safari: FAIL)
Pattern: {"pathname":"/foo/:bar(.)"} Input: {"pathname":"/foo"}: FAIL (Chrome: PASS, Safari: FAIL)
Pattern: {"pathname":"/foo/:bar?"} Input: {"pathname":"/foo/bar"}: FAIL (Chrome: PASS, Safari: FAIL)
Pattern: {"pathname":"/foo/:bar?"} Input: {"pathname":"/foo"}: FAIL (Chrome: PASS, Safari: FAIL)
Pattern: {"pathname":"/foo/:bar?"} Input: {"pathname":"/foo/"}: FAIL (Chrome: PASS, Safari: FAIL)
Pattern: {"pathname":"/foo/:bar?"} Input: {"pathname":"/foobar"}: FAIL (Chrome: PASS, Safari: FAIL)
Pattern: {"pathname":"/foo/:bar?"} Input: {"pathname":"/foo/bar/baz"}: FAIL (Chrome: PASS, Safari: FAIL)
Pattern: {"pathname":"/foo/:bar+"} Input: {"pathname":"/foo/bar"}: FAIL (Chrome: PASS, Safari: FAIL)
Pattern: {"pathname":"/foo/:bar+"} Input: {"pathname":"/foo/bar/baz"}: FAIL (Chrome: PASS, Safari: FAIL)
Pattern: {"pathname":"/foo/:bar+"} Input: {"pathname":"/foo"}: FAIL (Chrome: PASS, Safari: FAIL)
Pattern: {"pathname":"/foo/:bar+"} Input: {"pathname":"/foo/"}: FAIL (Chrome: PASS, Safari: FAIL)
Pattern: {"pathname":"/foo/:bar+"} Input: {"pathname":"/foobar"}: FAIL (Chrome: PASS, Safari: FAIL)
Pattern: {"pathname":"/foo/:bar*"} Input: {"pathname":"/foo/bar"}: FAIL (Chrome: PASS, Safari: FAIL)
Pattern: {"pathname":"/foo/:bar*"} Input: {"pathname":"/foo/bar/baz"}: FAIL (Chrome: PASS, Safari: FAIL)
Pattern: {"pathname":"/foo/:bar*"} Input: {"pathname":"/foo"}: FAIL (Chrome: PASS, Safari: FAIL)
Pattern: {"pathname":"/foo/:bar*"} Input: {"pathname":"/foo/"}: FAIL (Chrome: PASS, Safari: FAIL)
Pattern: {"pathname":"/foo/:bar*"} Input: {"pathname":"/foobar"}: FAIL (Chrome: PASS, Safari: FAIL)
Pattern: {"pathname":"/foo/(.)?"} Input: {"pathname":"/foo/bar"}: FAIL (Chrome: PASS, Safari: FAIL)
Pattern: {"pathname":"/foo/?"} Input: {"pathname":"/foo/bar"}: FAIL (Chrome: FAIL, Safari: FAIL)
Pattern: {"pathname":"/foo/(.)?"} Input: {"pathname":"/foo/bar/baz"}: FAIL (Chrome: PASS, Safari: FAIL)
Pattern: {"pathname":"/foo/?"} Input: {"pathname":"/foo/bar/baz"}: FAIL (Chrome: FAIL, Safari: FAIL)
Pattern: {"pathname":"/foo/(.)?"} Input: {"pathname":"/foo"}: FAIL (Chrome: PASS, Safari: FAIL)
Pattern: {"pathname":"/foo/?"} Input: {"pathname":"/foo"}: FAIL (Chrome: FAIL, Safari: FAIL)
Pattern: {"pathname":"/foo/(.)?"} Input: {"pathname":"/foo/"}: FAIL (Chrome: PASS, Safari: FAIL)
Pattern: {"pathname":"/foo/?"} Input: {"pathname":"/foo/"}: FAIL (Chrome: FAIL, Safari: FAIL)
Pattern: {"pathname":"/foo/(.)?"} Input: {"pathname":"/foobar"}: FAIL (Chrome: PASS, Safari: FAIL)
Pattern: {"pathname":"/foo/?"} Input: {"pathname":"/foobar"}: FAIL (Chrome: FAIL, Safari: FAIL)
Pattern: {"pathname":"/foo/(.)?"} Input: {"pathname":"/fo"}: FAIL (Chrome: PASS, Safari: FAIL)
Pattern: {"pathname":"/foo/?"} Input: {"pathname":"/fo"}: FAIL (Chrome: FAIL, Safari: FAIL)
Pattern: {"pathname":"/foo/(.)+"} Input: {"pathname":"/foo/bar"}: FAIL (Chrome: PASS, Safari: FAIL)
Pattern: {"pathname":"/foo/+"} Input: {"pathname":"/foo/bar"}: FAIL (Chrome: FAIL, Safari: FAIL)
Pattern: {"pathname":"/foo/(.)+"} Input: {"pathname":"/foo/bar/baz"}: FAIL (Chrome: PASS, Safari: FAIL)
Pattern: {"pathname":"/foo/+"} Input: {"pathname":"/foo/bar/baz"}: FAIL (Chrome: FAIL, Safari: FAIL)
Pattern: {"pathname":"/foo/(.)+"} Input: {"pathname":"/foo"}: FAIL (Chrome: PASS, Safari: FAIL)
Pattern: {"pathname":"/foo/+"} Input: {"pathname":"/foo"}: FAIL (Chrome: FAIL, Safari: FAIL)
Pattern: {"pathname":"/foo/(.)+"} Input: {"pathname":"/foo/"}: FAIL (Chrome: PASS, Safari: FAIL)
Pattern: {"pathname":"/foo/+"} Input: {"pathname":"/foo/"}: FAIL (Chrome: FAIL, Safari: FAIL)
Pattern: {"pathname":"/foo/(.)+"} Input: {"pathname":"/foobar"}: FAIL (Chrome: PASS, Safari: FAIL)
Pattern: {"pathname":"/foo/+"} Input: {"pathname":"/foobar"}: FAIL (Chrome: FAIL, Safari: FAIL)
Pattern: {"pathname":"/foo/(.)+"} Input: {"pathname":"/fo"}: FAIL (Chrome: PASS, Safari: FAIL)
Pattern: {"pathname":"/foo/+"} Input: {"pathname":"/fo"}: FAIL (Chrome: FAIL, Safari: FAIL)
Pattern: {"pathname":"/foo/(.)"} Input: {"pathname":"/foo/bar"}: FAIL (Chrome: PASS, Safari: FAIL)
Pattern: {"pathname":"/foo/"} Input: {"pathname":"/foo/bar"}: FAIL (Chrome: FAIL, Safari: FAIL)
Pattern: {"pathname":"/foo/(.)"} Input: {"pathname":"/foo/bar/baz"}: FAIL (Chrome: PASS, Safari: FAIL)
Pattern: {"pathname":"/foo/"} Input: {"pathname":"/foo/bar/baz"}: FAIL (Chrome: FAIL, Safari: FAIL)
Pattern: {"pathname":"/foo/(.)"} Input: {"pathname":"/foo"}: FAIL (Chrome: PASS, Safari: FAIL)
Pattern: {"pathname":"/foo/"} Input: {"pathname":"/foo"}: FAIL (Chrome: FAIL, Safari: FAIL)
Pattern: {"pathname":"/foo/(.)"} Input: {"pathname":"/foo/"}: FAIL (Chrome: PASS, Safari: FAIL)
Pattern: {"pathname":"/foo/"} Input: {"pathname":"/foo/"}: FAIL (Chrome: FAIL, Safari: FAIL)
Pattern: {"pathname":"/foo/(.)"} Input: {"pathname":"/foobar"}: FAIL (Chrome: PASS, Safari: FAIL)
Pattern: {"pathname":"/foo/"} Input: {"pathname":"/foobar"}: FAIL (Chrome: FAIL, Safari: FAIL)
Pattern: {"pathname":"/foo/(.)"} Input: {"pathname":"/fo"}: FAIL (Chrome: PASS, Safari: FAIL)
Pattern: {"pathname":"/foo/"} Input: {"pathname":"/fo"}: FAIL (Chrome: FAIL, Safari: FAIL)
Pattern: {"pathname":"/foo{/bar}"} Input: {"pathname":"/foo/bar"}: FAIL (Chrome: PASS, Safari: FAIL)
Pattern: {"pathname":"/foo{/bar}"} Input: {"pathname":"/foo/bar/baz"}: FAIL (Chrome: PASS, Safari: FAIL)
Pattern: {"pathname":"/foo{/bar}"} Input: {"pathname":"/foo"}: FAIL (Chrome: PASS, Safari: FAIL)
Pattern: {"pathname":"/foo{/bar}"} Input: {"pathname":"/foo/"}: FAIL (Chrome: PASS, Safari: FAIL)
Pattern: {"pathname":"/foo{/bar}?"} Input: {"pathname":"/foo/bar"}: FAIL (Chrome: PASS, Safari: FAIL)
Pattern: {"pathname":"/foo{/bar}?"} Input: {"pathname":"/foo/bar/baz"}: FAIL (Chrome: PASS, Safari: FAIL)
Pattern: {"pathname":"/foo{/bar}?"} Input: {"pathname":"/foo"}: FAIL (Chrome: PASS, Safari: FAIL)
Pattern: {"pathname":"/foo{/bar}?"} Input: {"pathname":"/foo/"}: FAIL (Chrome: PASS, Safari: FAIL)
Pattern: {"pathname":"/foo{/bar}+"} Input: {"pathname":"/foo/bar"}: FAIL (Chrome: PASS, Safari: FAIL)
Pattern: {"pathname":"/foo{/bar}+"} Input: {"pathname":"/foo/bar/bar"}: FAIL (Chrome: PASS, Safari: FAIL)
Pattern: {"pathname":"/foo{/bar}+"} Input: {"pathname":"/foo/bar/baz"}: FAIL (Chrome: PASS, Safari: FAIL)
Pattern: {"pathname":"/foo{/bar}+"} Input: {"pathname":"/foo"}: FAIL (Chrome: PASS, Safari: FAIL)
Pattern: {"pathname":"/foo{/bar}+"} Input: {"pathname":"/foo/"}: FAIL (Chrome: PASS, Safari: FAIL)
Pattern: {"pathname":"/foo{/bar}"} Input: {"pathname":"/foo/bar"}: FAIL (Chrome: PASS, Safari: FAIL)
Pattern: {"pathname":"/foo{/bar}"} Input: {"pathname":"/foo/bar/bar"}: FAIL (Chrome: PASS, Safari: FAIL)
Pattern: {"pathname":"/foo{/bar}"} Input: {"pathname":"/foo/bar/baz"}: FAIL (Chrome: PASS, Safari: FAIL)
Pattern: {"pathname":"/foo{/bar}"} Input: {"pathname":"/foo"}: FAIL (Chrome: PASS, Safari: FAIL)
Pattern: {"pathname":"/foo{/bar}"} Input: {"pathname":"/foo/"}: FAIL (Chrome: PASS, Safari: FAIL)
Pattern: {"protocol":"(café)"} Input: undefined: FAIL (Chrome: PASS, Safari: FAIL)
Pattern: {"username":"(café)"} Input: undefined: FAIL (Chrome: PASS, Safari: FAIL)
Pattern: {"password":"(café)"} Input: undefined: FAIL (Chrome: PASS, Safari: FAIL)
Pattern: {"hostname":"(café)"} Input: undefined: FAIL (Chrome: PASS, Safari: FAIL)
Pattern: {"pathname":"(café)"} Input: undefined: FAIL (Chrome: PASS, Safari: FAIL)
Pattern: {"search":"(café)"} Input: undefined: FAIL (Chrome: PASS, Safari: FAIL)
Pattern: {"hash":"(café)"} Input: undefined: FAIL (Chrome: PASS, Safari: FAIL)
Pattern: {"protocol":"(.)"} Input: {"protocol":"café"}: FAIL (Chrome: PASS, Safari: FAIL)
Pattern: {"protocol":"(.)"} Input: {"protocol":"cafe"}: FAIL (Chrome: PASS, Safari: FAIL)
Pattern: {"protocol":"foo-bar"} Input: {"protocol":"foo-bar"}: FAIL (Chrome: PASS, Safari: FAIL)
Pattern: {"username":"caf%C3%A9"} Input: {"username":"café"}: FAIL (Chrome: PASS, Safari: FAIL)
Pattern: {"username":"caf%c3%a9"} Input: {"username":"café"}: FAIL (Chrome: PASS, Safari: FAIL)
Pattern: {"password":"caf%C3%A9"} Input: {"password":"café"}: FAIL (Chrome: PASS, Safari: FAIL)
Pattern: {"password":"caf%c3%a9"} Input: {"password":"café"}: FAIL (Chrome: PASS, Safari: FAIL)
Pattern: {"hostname":"xn--caf-dma.com"} Input: {"hostname":"café.com"}: FAIL (Chrome: PASS, Safari: FAIL)
Pattern: {"port":""} Input: {"protocol":"http","port":"80"}: FAIL (Chrome: PASS, Safari: FAIL)
Pattern: {"port":"80"} Input: {"port":"80"}: FAIL (Chrome: PASS, Safari: FAIL)
Pattern: {"port":"(.)"} Input: {"port":"invalid80"}: FAIL (Chrome: PASS, Safari: FAIL)
Pattern: {"pathname":"/foo/bar"} Input: {"pathname":"/foo/./bar"}: FAIL (Chrome: PASS, Safari: FAIL)
Pattern: {"pathname":"/foo/baz"} Input: {"pathname":"/foo/bar/../baz"}: FAIL (Chrome: PASS, Safari: FAIL)
Pattern: {"pathname":"/caf%C3%A9"} Input: {"pathname":"/café"}: FAIL (Chrome: PASS, Safari: FAIL)
Pattern: {"pathname":"/caf%c3%a9"} Input: {"pathname":"/café"}: FAIL (Chrome: PASS, Safari: FAIL)
Pattern: {"pathname":"/foo/bar"} Input: {"pathname":"foo/bar"}: FAIL (Chrome: PASS, Safari: FAIL)
Pattern: {"pathname":"/foo/bar"} Input: {"pathname":"foo/bar","baseURL":"https://example.com"}: FAIL (Chrome: PASS, Safari: FAIL)
Pattern: {"pathname":"foo/bar"} Input: "https://example.com/foo/bar": FAIL (Chrome: PASS, Safari: FAIL)
Pattern: {"pathname":"foo/bar","baseURL":"https://example.com"} Input: "https://example.com/foo/bar": FAIL (Chrome: PASS, Safari: FAIL)
Pattern: {"pathname":":name.html","baseURL":"https://example.com"} Input: "https://example.com/foo.html": FAIL (Chrome: PASS, Safari: FAIL)
Pattern: {"search":"q=caf%C3%A9"} Input: {"search":"q=café"}: FAIL (Chrome: PASS, Safari: FAIL)
Pattern: {"search":"q=caf%c3%a9"} Input: {"search":"q=café"}: FAIL (Chrome: PASS, Safari: FAIL)
Pattern: {"hash":"caf%C3%A9"} Input: {"hash":"café"}: FAIL (Chrome: PASS, Safari: FAIL)
Pattern: {"hash":"caf%c3%a9"} Input: {"hash":"café"}: FAIL (Chrome: PASS, Safari: FAIL)
Pattern: {"protocol":"about","pathname":"(blank|sourcedoc)"} Input: "about:blank": FAIL (Chrome: PASS, Safari: FAIL)
Pattern: {"protocol":"data","pathname":":number([0-9]+)"} Input: "data:8675309": FAIL (Chrome: PASS, Safari: FAIL)
/urlpattern/urlpattern.https.any.html
Pattern: {"pathname":"/foo/bar"} Input: {"pathname":"/foo/bar"}: FAIL (Chrome: PASS, Safari: FAIL)
Pattern: {"pathname":"/foo/bar"} Input: {"pathname":"/foo/ba"}: FAIL (Chrome: PASS, Safari: FAIL)
Pattern: {"pathname":"/foo/bar"} Input: {"pathname":"/foo/bar/"}: FAIL (Chrome: PASS, Safari: FAIL)
Pattern: {"pathname":"/foo/bar"} Input: {"pathname":"/foo/bar/baz"}: FAIL (Chrome: PASS, Safari: FAIL)
Pattern: {"pathname":"/foo/bar"} Input: "https://example.com/foo/bar": FAIL (Chrome: PASS, Safari: FAIL)
Pattern: {"pathname":"/foo/bar"} Input: "https://example.com/foo/bar/baz": FAIL (Chrome: PASS, Safari: FAIL)
Pattern: {"pathname":"/foo/bar"} Input: {"hostname":"example.com","pathname":"/foo/bar"}: FAIL (Chrome: PASS, Safari: FAIL)
Pattern: {"pathname":"/foo/bar"} Input: {"hostname":"example.com","pathname":"/foo/bar/baz"}: FAIL (Chrome: PASS, Safari: FAIL)
Pattern: {"pathname":"/foo/bar"} Input: {"pathname":"/foo/bar","baseURL":"https://example.com"}: FAIL (Chrome: PASS, Safari: FAIL)
Pattern: {"pathname":"/foo/bar"} Input: {"pathname":"/foo/bar/baz","baseURL":"https://example.com"}: FAIL (Chrome: PASS, Safari: FAIL)
Pattern: {"pathname":"/foo/bar","baseURL":"https://example.com?query#hash"} Input: {"pathname":"/foo/bar"}: FAIL (Chrome: PASS, Safari: FAIL)
Pattern: {"pathname":"/foo/bar","baseURL":"https://example.com?query#hash"} Input: {"hostname":"example.com","pathname":"/foo/bar"}: FAIL (Chrome: PASS, Safari: FAIL)
Pattern: {"pathname":"/foo/bar","baseURL":"https://example.com?query#hash"} Input: {"protocol":"https","hostname":"example.com","pathname":"/foo/bar"}: FAIL (Chrome: PASS, Safari: FAIL)
Pattern: {"pathname":"/foo/bar","baseURL":"https://example.com?query#hash"} Input: {"protocol":"https","hostname":"example.com","pathname":"/foo/bar/baz"}: FAIL (Chrome: PASS, Safari: FAIL)
Pattern: {"pathname":"/foo/bar","baseURL":"https://example.com?query#hash"} Input: {"protocol":"https","hostname":"example.com","pathname":"/foo/bar","search":"otherquery","hash":"otherhash"}: FAIL (Chrome: PASS, Safari: FAIL)
Pattern: {"pathname":"/foo/bar","baseURL":"https://example.com?query#hash"} Input: "https://example.com/foo/bar": FAIL (Chrome: PASS, Safari: FAIL)
Pattern: {"pathname":"/foo/bar","baseURL":"https://example.com?query#hash"} Input: "https://example.com/foo/bar?otherquery#otherhash": FAIL (Chrome: PASS, Safari: FAIL)
Pattern: {"pathname":"/foo/bar","baseURL":"https://example.com?query#hash"} Input: "https://example.com/foo/bar/baz": FAIL (Chrome: PASS, Safari: FAIL)
Pattern: {"pathname":"/foo/bar","baseURL":"https://example.com?query#hash"} Input: "https://other.com/foo/bar": FAIL (Chrome: PASS, Safari: FAIL)
Pattern: {"pathname":"/foo/bar","baseURL":"https://example.com?query#hash"} Input: "http://other.com/foo/bar": FAIL (Chrome: PASS, Safari: FAIL)
Pattern: {"pathname":"/foo/bar","baseURL":"https://example.com?query#hash"} Input: {"pathname":"/foo/bar","baseURL":"https://example.com"}: FAIL (Chrome: PASS, Safari: FAIL)
Pattern: {"pathname":"/foo/bar","baseURL":"https://example.com?query#hash"} Input: {"pathname":"/foo/bar/baz","baseURL":"https://example.com"}: FAIL (Chrome: PASS, Safari: FAIL)
Pattern: {"pathname":"/foo/bar","baseURL":"https://example.com?query#hash"} Input: {"pathname":"/foo/bar","baseURL":"https://other.com"}: FAIL (Chrome: PASS, Safari: FAIL)
Pattern: {"pathname":"/foo/bar","baseURL":"https://example.com?query#hash"} Input: {"pathname":"/foo/bar","baseURL":"http://example.com"}: FAIL (Chrome: PASS, Safari: FAIL)
Pattern: {"pathname":"/foo/:bar"} Input: {"pathname":"/foo/bar"}: FAIL (Chrome: PASS, Safari: FAIL)
Pattern: {"pathname":"/foo/:bar"} Input: {"pathname":"/foo/index.html"}: FAIL (Chrome: PASS, Safari: FAIL)
Pattern: {"pathname":"/foo/:bar"} Input: {"pathname":"/foo/bar/"}: FAIL (Chrome: PASS, Safari: FAIL)
Pattern: {"pathname":"/foo/:bar"} Input: {"pathname":"/foo/"}: FAIL (Chrome: PASS, Safari: FAIL)
Pattern: {"pathname":"/foo/(.)"} Input: {"pathname":"/foo/bar"}: FAIL (Chrome: PASS, Safari: FAIL)
Pattern: {"pathname":"/foo/"} Input: {"pathname":"/foo/bar"}: FAIL (Chrome: FAIL, Safari: FAIL)
Pattern: {"pathname":"/foo/(.)"} Input: {"pathname":"/foo/bar/baz"}: FAIL (Chrome: PASS, Safari: FAIL)
Pattern: {"pathname":"/foo/"} Input: {"pathname":"/foo/bar/baz"}: FAIL (Chrome: FAIL, Safari: FAIL)
Pattern: {"pathname":"/foo/(.)"} Input: {"pathname":"/foo/"}: FAIL (Chrome: PASS, Safari: FAIL)
Pattern: {"pathname":"/foo/"} Input: {"pathname":"/foo/"}: FAIL (Chrome: FAIL, Safari: FAIL)
Pattern: {"pathname":"/foo/(.)"} Input: {"pathname":"/foo"}: FAIL (Chrome: PASS, Safari: FAIL)
Pattern: {"pathname":"/foo/"} Input: {"pathname":"/foo"}: FAIL (Chrome: FAIL, Safari: FAIL)
Pattern: {"pathname":"/foo/:bar(.)"} Input: {"pathname":"/foo/bar"}: FAIL (Chrome: PASS, Safari: FAIL)
Pattern: {"pathname":"/foo/:bar(.)"} Input: {"pathname":"/foo/bar/baz"}: FAIL (Chrome: PASS, Safari: FAIL)
Pattern: {"pathname":"/foo/:bar(.)"} Input: {"pathname":"/foo/"}: FAIL (Chrome: PASS, Safari: FAIL)
Pattern: {"pathname":"/foo/:bar(.)"} Input: {"pathname":"/foo"}: FAIL (Chrome: PASS, Safari: FAIL)
Pattern: {"pathname":"/foo/:bar?"} Input: {"pathname":"/foo/bar"}: FAIL (Chrome: PASS, Safari: FAIL)
Pattern: {"pathname":"/foo/:bar?"} Input: {"pathname":"/foo"}: FAIL (Chrome: PASS, Safari: FAIL)
Pattern: {"pathname":"/foo/:bar?"} Input: {"pathname":"/foo/"}: FAIL (Chrome: PASS, Safari: FAIL)
Pattern: {"pathname":"/foo/:bar?"} Input: {"pathname":"/foobar"}: FAIL (Chrome: PASS, Safari: FAIL)
Pattern: {"pathname":"/foo/:bar?"} Input: {"pathname":"/foo/bar/baz"}: FAIL (Chrome: PASS, Safari: FAIL)
Pattern: {"pathname":"/foo/:bar+"} Input: {"pathname":"/foo/bar"}: FAIL (Chrome: PASS, Safari: FAIL)
Pattern: {"pathname":"/foo/:bar+"} Input: {"pathname":"/foo/bar/baz"}: FAIL (Chrome: PASS, Safari: FAIL)
Pattern: {"pathname":"/foo/:bar+"} Input: {"pathname":"/foo"}: FAIL (Chrome: PASS, Safari: FAIL)
Pattern: {"pathname":"/foo/:bar+"} Input: {"pathname":"/foo/"}: FAIL (Chrome: PASS, Safari: FAIL)
Pattern: {"pathname":"/foo/:bar+"} Input: {"pathname":"/foobar"}: FAIL (Chrome: PASS, Safari: FAIL)
Pattern: {"pathname":"/foo/:bar*"} Input: {"pathname":"/foo/bar"}: FAIL (Chrome: PASS, Safari: FAIL)
Pattern: {"pathname":"/foo/:bar*"} Input: {"pathname":"/foo/bar/baz"}: FAIL (Chrome: PASS, Safari: FAIL)
Pattern: {"pathname":"/foo/:bar*"} Input: {"pathname":"/foo"}: FAIL (Chrome: PASS, Safari: FAIL)
Pattern: {"pathname":"/foo/:bar*"} Input: {"pathname":"/foo/"}: FAIL (Chrome: PASS, Safari: FAIL)
Pattern: {"pathname":"/foo/:bar*"} Input: {"pathname":"/foobar"}: FAIL (Chrome: PASS, Safari: FAIL)
Pattern: {"pathname":"/foo/(.)?"} Input: {"pathname":"/foo/bar"}: FAIL (Chrome: PASS, Safari: FAIL)
Pattern: {"pathname":"/foo/?"} Input: {"pathname":"/foo/bar"}: FAIL (Chrome: FAIL, Safari: FAIL)
Pattern: {"pathname":"/foo/(.)?"} Input: {"pathname":"/foo/bar/baz"}: FAIL (Chrome: PASS, Safari: FAIL)
Pattern: {"pathname":"/foo/?"} Input: {"pathname":"/foo/bar/baz"}: FAIL (Chrome: FAIL, Safari: FAIL)
Pattern: {"pathname":"/foo/(.)?"} Input: {"pathname":"/foo"}: FAIL (Chrome: PASS, Safari: FAIL)
Pattern: {"pathname":"/foo/?"} Input: {"pathname":"/foo"}: FAIL (Chrome: FAIL, Safari: FAIL)
Pattern: {"pathname":"/foo/(.)?"} Input: {"pathname":"/foo/"}: FAIL (Chrome: PASS, Safari: FAIL)
Pattern: {"pathname":"/foo/?"} Input: {"pathname":"/foo/"}: FAIL (Chrome: FAIL, Safari: FAIL)
Pattern: {"pathname":"/foo/(.)?"} Input: {"pathname":"/foobar"}: FAIL (Chrome: PASS, Safari: FAIL)
Pattern: {"pathname":"/foo/?"} Input: {"pathname":"/foobar"}: FAIL (Chrome: FAIL, Safari: FAIL)
Pattern: {"pathname":"/foo/(.)?"} Input: {"pathname":"/fo"}: FAIL (Chrome: PASS, Safari: FAIL)
Pattern: {"pathname":"/foo/?"} Input: {"pathname":"/fo"}: FAIL (Chrome: FAIL, Safari: FAIL)
Pattern: {"pathname":"/foo/(.)+"} Input: {"pathname":"/foo/bar"}: FAIL (Chrome: PASS, Safari: FAIL)
Pattern: {"pathname":"/foo/+"} Input: {"pathname":"/foo/bar"}: FAIL (Chrome: FAIL, Safari: FAIL)
Pattern: {"pathname":"/foo/(.)+"} Input: {"pathname":"/foo/bar/baz"}: FAIL (Chrome: PASS, Safari: FAIL)
Pattern: {"pathname":"/foo/+"} Input: {"pathname":"/foo/bar/baz"}: FAIL (Chrome: FAIL, Safari: FAIL)
Pattern: {"pathname":"/foo/(.)+"} Input: {"pathname":"/foo"}: FAIL (Chrome: PASS, Safari: FAIL)
Pattern: {"pathname":"/foo/+"} Input: {"pathname":"/foo"}: FAIL (Chrome: FAIL, Safari: FAIL)
Pattern: {"pathname":"/foo/(.)+"} Input: {"pathname":"/foo/"}: FAIL (Chrome: PASS, Safari: FAIL)
Pattern: {"pathname":"/foo/+"} Input: {"pathname":"/foo/"}: FAIL (Chrome: FAIL, Safari: FAIL)
Pattern: {"pathname":"/foo/(.)+"} Input: {"pathname":"/foobar"}: FAIL (Chrome: PASS, Safari: FAIL)
Pattern: {"pathname":"/foo/+"} Input: {"pathname":"/foobar"}: FAIL (Chrome: FAIL, Safari: FAIL)
Pattern: {"pathname":"/foo/(.)+"} Input: {"pathname":"/fo"}: FAIL (Chrome: PASS, Safari: FAIL)
Pattern: {"pathname":"/foo/+"} Input: {"pathname":"/fo"}: FAIL (Chrome: FAIL, Safari: FAIL)
Pattern: {"pathname":"/foo/(.)"} Input: {"pathname":"/foo/bar"}: FAIL (Chrome: PASS, Safari: FAIL)
Pattern: {"pathname":"/foo/"} Input: {"pathname":"/foo/bar"}: FAIL (Chrome: FAIL, Safari: FAIL)
Pattern: {"pathname":"/foo/(.)"} Input: {"pathname":"/foo/bar/baz"}: FAIL (Chrome: PASS, Safari: FAIL)
Pattern: {"pathname":"/foo/"} Input: {"pathname":"/foo/bar/baz"}: FAIL (Chrome: FAIL, Safari: FAIL)
Pattern: {"pathname":"/foo/(.)"} Input: {"pathname":"/foo"}: FAIL (Chrome: PASS, Safari: FAIL)
Pattern: {"pathname":"/foo/"} Input: {"pathname":"/foo"}: FAIL (Chrome: FAIL, Safari: FAIL)
Pattern: {"pathname":"/foo/(.)"} Input: {"pathname":"/foo/"}: FAIL (Chrome: PASS, Safari: FAIL)
Pattern: {"pathname":"/foo/"} Input: {"pathname":"/foo/"}: FAIL (Chrome: FAIL, Safari: FAIL)
Pattern: {"pathname":"/foo/(.)"} Input: {"pathname":"/foobar"}: FAIL (Chrome: PASS, Safari: FAIL)
Pattern: {"pathname":"/foo/"} Input: {"pathname":"/foobar"}: FAIL (Chrome: FAIL, Safari: FAIL)
Pattern: {"pathname":"/foo/(.)"} Input: {"pathname":"/fo"}: FAIL (Chrome: PASS, Safari: FAIL)
Pattern: {"pathname":"/foo/"} Input: {"pathname":"/fo"}: FAIL (Chrome: FAIL, Safari: FAIL)
Pattern: {"pathname":"/foo{/bar}"} Input: {"pathname":"/foo/bar"}: FAIL (Chrome: PASS, Safari: FAIL)
Pattern: {"pathname":"/foo{/bar}"} Input: {"pathname":"/foo/bar/baz"}: FAIL (Chrome: PASS, Safari: FAIL)
Pattern: {"pathname":"/foo{/bar}"} Input: {"pathname":"/foo"}: FAIL (Chrome: PASS, Safari: FAIL)
Pattern: {"pathname":"/foo{/bar}"} Input: {"pathname":"/foo/"}: FAIL (Chrome: PASS, Safari: FAIL)
Pattern: {"pathname":"/foo{/bar}?"} Input: {"pathname":"/foo/bar"}: FAIL (Chrome: PASS, Safari: FAIL)
Pattern: {"pathname":"/foo{/bar}?"} Input: {"pathname":"/foo/bar/baz"}: FAIL (Chrome: PASS, Safari: FAIL)
Pattern: {"pathname":"/foo{/bar}?"} Input: {"pathname":"/foo"}: FAIL (Chrome: PASS, Safari: FAIL)
Pattern: {"pathname":"/foo{/bar}?"} Input: {"pathname":"/foo/"}: FAIL (Chrome: PASS, Safari: FAIL)
Pattern: {"pathname":"/foo{/bar}+"} Input: {"pathname":"/foo/bar"}: FAIL (Chrome: PASS, Safari: FAIL)
Pattern: {"pathname":"/foo{/bar}+"} Input: {"pathname":"/foo/bar/bar"}: FAIL (Chrome: PASS, Safari: FAIL)
Pattern: {"pathname":"/foo{/bar}+"} Input: {"pathname":"/foo/bar/baz"}: FAIL (Chrome: PASS, Safari: FAIL)
Pattern: {"pathname":"/foo{/bar}+"} Input: {"pathname":"/foo"}: FAIL (Chrome: PASS, Safari: FAIL)
Pattern: {"pathname":"/foo{/bar}+"} Input: {"pathname":"/foo/"}: FAIL (Chrome: PASS, Safari: FAIL)
Pattern: {"pathname":"/foo{/bar}"} Input: {"pathname":"/foo/bar"}: FAIL (Chrome: PASS, Safari: FAIL)
Pattern: {"pathname":"/foo{/bar}"} Input: {"pathname":"/foo/bar/bar"}: FAIL (Chrome: PASS, Safari: FAIL)
Pattern: {"pathname":"/foo{/bar}"} Input: {"pathname":"/foo/bar/baz"}: FAIL (Chrome: PASS, Safari: FAIL)
Pattern: {"pathname":"/foo{/bar}"} Input: {"pathname":"/foo"}: FAIL (Chrome: PASS, Safari: FAIL)
Pattern: {"pathname":"/foo{/bar}"} Input: {"pathname":"/foo/"}: FAIL (Chrome: PASS, Safari: FAIL)
Pattern: {"protocol":"(café)"} Input: undefined: FAIL (Chrome: PASS, Safari: FAIL)
Pattern: {"username":"(café)"} Input: undefined: FAIL (Chrome: PASS, Safari: FAIL)
Pattern: {"password":"(café)"} Input: undefined: FAIL (Chrome: PASS, Safari: FAIL)
Pattern: {"hostname":"(café)"} Input: undefined: FAIL (Chrome: PASS, Safari: FAIL)
Pattern: {"pathname":"(café)"} Input: undefined: FAIL (Chrome: PASS, Safari: FAIL)
Pattern: {"search":"(café)"} Input: undefined: FAIL (Chrome: PASS, Safari: FAIL)
Pattern: {"hash":"(café)"} Input: undefined: FAIL (Chrome: PASS, Safari: FAIL)
Pattern: {"protocol":"(.)"} Input: {"protocol":"café"}: FAIL (Chrome: PASS, Safari: FAIL)
Pattern: {"protocol":"(.)"} Input: {"protocol":"cafe"}: FAIL (Chrome: PASS, Safari: FAIL)
Pattern: {"protocol":"foo-bar"} Input: {"protocol":"foo-bar"}: FAIL (Chrome: PASS, Safari: FAIL)
Pattern: {"username":"caf%C3%A9"} Input: {"username":"café"}: FAIL (Chrome: PASS, Safari: FAIL)
Pattern: {"username":"caf%c3%a9"} Input: {"username":"café"}: FAIL (Chrome: PASS, Safari: FAIL)
Pattern: {"password":"caf%C3%A9"} Input: {"password":"café"}: FAIL (Chrome: PASS, Safari: FAIL)
Pattern: {"password":"caf%c3%a9"} Input: {"password":"café"}: FAIL (Chrome: PASS, Safari: FAIL)
Pattern: {"hostname":"xn--caf-dma.com"} Input: {"hostname":"café.com"}: FAIL (Chrome: PASS, Safari: FAIL)
Pattern: {"port":""} Input: {"protocol":"http","port":"80"}: FAIL (Chrome: PASS, Safari: FAIL)
Pattern: {"port":"80"} Input: {"port":"80"}: FAIL (Chrome: PASS, Safari: FAIL)
Pattern: {"port":"(.)"} Input: {"port":"invalid80"}: FAIL (Chrome: PASS, Safari: FAIL)
Pattern: {"pathname":"/foo/bar"} Input: {"pathname":"/foo/./bar"}: FAIL (Chrome: PASS, Safari: FAIL)
Pattern: {"pathname":"/foo/baz"} Input: {"pathname":"/foo/bar/../baz"}: FAIL (Chrome: PASS, Safari: FAIL)
Pattern: {"pathname":"/caf%C3%A9"} Input: {"pathname":"/café"}: FAIL (Chrome: PASS, Safari: FAIL)
Pattern: {"pathname":"/caf%c3%a9"} Input: {"pathname":"/café"}: FAIL (Chrome: PASS, Safari: FAIL)
Pattern: {"pathname":"/foo/bar"} Input: {"pathname":"foo/bar"}: FAIL (Chrome: PASS, Safari: FAIL)
Pattern: {"pathname":"/foo/bar"} Input: {"pathname":"foo/bar","baseURL":"https://example.com"}: FAIL (Chrome: PASS, Safari: FAIL)
Pattern: {"pathname":"foo/bar"} Input: "https://example.com/foo/bar": FAIL (Chrome: PASS, Safari: FAIL)
Pattern: {"pathname":"foo/bar","baseURL":"https://example.com"} Input: "https://example.com/foo/bar": FAIL (Chrome: PASS, Safari: FAIL)
Pattern: {"pathname":":name.html","baseURL":"https://example.com"} Input: "https://example.com/foo.html": FAIL (Chrome: PASS, Safari: FAIL)
Pattern: {"search":"q=caf%C3%A9"} Input: {"search":"q=café"}: FAIL (Chrome: PASS, Safari: FAIL)
Pattern: {"search":"q=caf%c3%a9"} Input: {"search":"q=café"}: FAIL (Chrome: PASS, Safari: FAIL)
Pattern: {"hash":"caf%C3%A9"} Input: {"hash":"café"}: FAIL (Chrome: PASS, Safari: FAIL)
Pattern: {"hash":"caf%c3%a9"} Input: {"hash":"café"}: FAIL (Chrome: PASS, Safari: FAIL)
Pattern: {"protocol":"about","pathname":"(blank|sourcedoc)"} Input: "about:blank": FAIL (Chrome: PASS, Safari: FAIL)
Pattern: {"protocol":"data","pathname":":number([0-9]+)"} Input: "data:8675309": FAIL (Chrome: PASS, Safari: FAIL)
/urlpattern/urlpattern.https.any.serviceworker.html
Pattern: {"pathname":"/foo/bar"} Input: {"pathname":"/foo/bar"}: FAIL (Chrome: PASS, Safari: FAIL)
Pattern: {"pathname":"/foo/bar"} Input: {"pathname":"/foo/ba"}: FAIL (Chrome: PASS, Safari: FAIL)
Pattern: {"pathname":"/foo/bar"} Input: {"pathname":"/foo/bar/"}: FAIL (Chrome: PASS, Safari: FAIL)
Pattern: {"pathname":"/foo/bar"} Input: {"pathname":"/foo/bar/baz"}: FAIL (Chrome: PASS, Safari: FAIL)
Pattern: {"pathname":"/foo/bar"} Input: "https://example.com/foo/bar": FAIL (Chrome: PASS, Safari: FAIL)
Pattern: {"pathname":"/foo/bar"} Input: "https://example.com/foo/bar/baz": FAIL (Chrome: PASS, Safari: FAIL)
Pattern: {"pathname":"/foo/bar"} Input: {"hostname":"example.com","pathname":"/foo/bar"}: FAIL (Chrome: PASS, Safari: FAIL)
Pattern: {"pathname":"/foo/bar"} Input: {"hostname":"example.com","pathname":"/foo/bar/baz"}: FAIL (Chrome: PASS, Safari: FAIL)
Pattern: {"pathname":"/foo/bar"} Input: {"pathname":"/foo/bar","baseURL":"https://example.com"}: FAIL (Chrome: PASS, Safari: FAIL)
Pattern: {"pathname":"/foo/bar"} Input: {"pathname":"/foo/bar/baz","baseURL":"https://example.com"}: FAIL (Chrome: PASS, Safari: FAIL)
Pattern: {"pathname":"/foo/bar","baseURL":"https://example.com?query#hash"} Input: {"pathname":"/foo/bar"}: FAIL (Chrome: PASS, Safari: FAIL)
Pattern: {"pathname":"/foo/bar","baseURL":"https://example.com?query#hash"} Input: {"hostname":"example.com","pathname":"/foo/bar"}: FAIL (Chrome: PASS, Safari: FAIL)
Pattern: {"pathname":"/foo/bar","baseURL":"https://example.com?query#hash"} Input: {"protocol":"https","hostname":"example.com","pathname":"/foo/bar"}: FAIL (Chrome: PASS, Safari: FAIL)
Pattern: {"pathname":"/foo/bar","baseURL":"https://example.com?query#hash"} Input: {"protocol":"https","hostname":"example.com","pathname":"/foo/bar/baz"}: FAIL (Chrome: PASS, Safari: FAIL)
Pattern: {"pathname":"/foo/bar","baseURL":"https://example.com?query#hash"} Input: {"protocol":"https","hostname":"example.com","pathname":"/foo/bar","search":"otherquery","hash":"otherhash"}: FAIL (Chrome: PASS, Safari: FAIL)
Pattern: {"pathname":"/foo/bar","baseURL":"https://example.com?query#hash"} Input: "https://example.com/foo/bar": FAIL (Chrome: PASS, Safari: FAIL)
Pattern: {"pathname":"/foo/bar","baseURL":"https://example.com?query#hash"} Input: "https://example.com/foo/bar?otherquery#otherhash": FAIL (Chrome: PASS, Safari: FAIL)
Pattern: {"pathname":"/foo/bar","baseURL":"https://example.com?query#hash"} Input: "https://example.com/foo/bar/baz": FAIL (Chrome: PASS, Safari: FAIL)
Pattern: {"pathname":"/foo/bar","baseURL":"https://example.com?query#hash"} Input: "https://other.com/foo/bar": FAIL (Chrome: PASS, Safari: FAIL)
Pattern: {"pathname":"/foo/bar","baseURL":"https://example.com?query#hash"} Input: "http://other.com/foo/bar": FAIL (Chrome: PASS, Safari: FAIL)
Pattern: {"pathname":"/foo/bar","baseURL":"https://example.com?query#hash"} Input: {"pathname":"/foo/bar","baseURL":"https://example.com"}: FAIL (Chrome: PASS, Safari: FAIL)
Pattern: {"pathname":"/foo/bar","baseURL":"https://example.com?query#hash"} Input: {"pathname":"/foo/bar/baz","baseURL":"https://example.com"}: FAIL (Chrome: PASS, Safari: FAIL)
Pattern: {"pathname":"/foo/bar","baseURL":"https://example.com?query#hash"} Input: {"pathname":"/foo/bar","baseURL":"https://other.com"}: FAIL (Chrome: PASS, Safari: FAIL)
Pattern: {"pathname":"/foo/bar","baseURL":"https://example.com?query#hash"} Input: {"pathname":"/foo/bar","baseURL":"http://example.com"}: FAIL (Chrome: PASS, Safari: FAIL)
Pattern: {"pathname":"/foo/:bar"} Input: {"pathname":"/foo/bar"}: FAIL (Chrome: PASS, Safari: FAIL)
Pattern: {"pathname":"/foo/:bar"} Input: {"pathname":"/foo/index.html"}: FAIL (Chrome: PASS, Safari: FAIL)
Pattern: {"pathname":"/foo/:bar"} Input: {"pathname":"/foo/bar/"}: FAIL (Chrome: PASS, Safari: FAIL)
Pattern: {"pathname":"/foo/:bar"} Input: {"pathname":"/foo/"}: FAIL (Chrome: PASS, Safari: FAIL)
Pattern: {"pathname":"/foo/(.)"} Input: {"pathname":"/foo/bar"}: FAIL (Chrome: PASS, Safari: FAIL)
Pattern: {"pathname":"/foo/"} Input: {"pathname":"/foo/bar"}: FAIL (Chrome: FAIL, Safari: FAIL)
Pattern: {"pathname":"/foo/(.)"} Input: {"pathname":"/foo/bar/baz"}: FAIL (Chrome: PASS, Safari: FAIL)
Pattern: {"pathname":"/foo/"} Input: {"pathname":"/foo/bar/baz"}: FAIL (Chrome: FAIL, Safari: FAIL)
Pattern: {"pathname":"/foo/(.)"} Input: {"pathname":"/foo/"}: FAIL (Chrome: PASS, Safari: FAIL)
Pattern: {"pathname":"/foo/"} Input: {"pathname":"/foo/"}: FAIL (Chrome: FAIL, Safari: FAIL)
Pattern: {"pathname":"/foo/(.)"} Input: {"pathname":"/foo"}: FAIL (Chrome: PASS, Safari: FAIL)
Pattern: {"pathname":"/foo/"} Input: {"pathname":"/foo"}: FAIL (Chrome: FAIL, Safari: FAIL)
Pattern: {"pathname":"/foo/:bar(.)"} Input: {"pathname":"/foo/bar"}: FAIL (Chrome: PASS, Safari: FAIL)
Pattern: {"pathname":"/foo/:bar(.)"} Input: {"pathname":"/foo/bar/baz"}: FAIL (Chrome: PASS, Safari: FAIL)
Pattern: {"pathname":"/foo/:bar(.)"} Input: {"pathname":"/foo/"}: FAIL (Chrome: PASS, Safari: FAIL)
Pattern: {"pathname":"/foo/:bar(.)"} Input: {"pathname":"/foo"}: FAIL (Chrome: PASS, Safari: FAIL)
Pattern: {"pathname":"/foo/:bar?"} Input: {"pathname":"/foo/bar"}: FAIL (Chrome: PASS, Safari: FAIL)
Pattern: {"pathname":"/foo/:bar?"} Input: {"pathname":"/foo"}: FAIL (Chrome: PASS, Safari: FAIL)
Pattern: {"pathname":"/foo/:bar?"} Input: {"pathname":"/foo/"}: FAIL (Chrome: PASS, Safari: FAIL)
Pattern: {"pathname":"/foo/:bar?"} Input: {"pathname":"/foobar"}: FAIL (Chrome: PASS, Safari: FAIL)
Pattern: {"pathname":"/foo/:bar?"} Input: {"pathname":"/foo/bar/baz"}: FAIL (Chrome: PASS, Safari: FAIL)
Pattern: {"pathname":"/foo/:bar+"} Input: {"pathname":"/foo/bar"}: FAIL (Chrome: PASS, Safari: FAIL)
Pattern: {"pathname":"/foo/:bar+"} Input: {"pathname":"/foo/bar/baz"}: FAIL (Chrome: PASS, Safari: FAIL)
Pattern: {"pathname":"/foo/:bar+"} Input: {"pathname":"/foo"}: FAIL (Chrome: PASS, Safari: FAIL)
Pattern: {"pathname":"/foo/:bar+"} Input: {"pathname":"/foo/"}: FAIL (Chrome: PASS, Safari: FAIL)
Pattern: {"pathname":"/foo/:bar+"} Input: {"pathname":"/foobar"}: FAIL (Chrome: PASS, Safari: FAIL)
Pattern: {"pathname":"/foo/:bar*"} Input: {"pathname":"/foo/bar"}: FAIL (Chrome: PASS, Safari: FAIL)
Pattern: {"pathname":"/foo/:bar*"} Input: {"pathname":"/foo/bar/baz"}: FAIL (Chrome: PASS, Safari: FAIL)
Pattern: {"pathname":"/foo/:bar*"} Input: {"pathname":"/foo"}: FAIL (Chrome: PASS, Safari: FAIL)
Pattern: {"pathname":"/foo/:bar*"} Input: {"pathname":"/foo/"}: FAIL (Chrome: PASS, Safari: FAIL)
Pattern: {"pathname":"/foo/:bar*"} Input: {"pathname":"/foobar"}: FAIL (Chrome: PASS, Safari: FAIL)
Pattern: {"pathname":"/foo/(.)?"} Input: {"pathname":"/foo/bar"}: FAIL (Chrome: PASS, Safari: FAIL)
Pattern: {"pathname":"/foo/?"} Input: {"pathname":"/foo/bar"}: FAIL (Chrome: FAIL, Safari: FAIL)
Pattern: {"pathname":"/foo/(.)?"} Input: {"pathname":"/foo/bar/baz"}: FAIL (Chrome: PASS, Safari: FAIL)
Pattern: {"pathname":"/foo/?"} Input: {"pathname":"/foo/bar/baz"}: FAIL (Chrome: FAIL, Safari: FAIL)
Pattern: {"pathname":"/foo/(.)?"} Input: {"pathname":"/foo"}: FAIL (Chrome: PASS, Safari: FAIL)
Pattern: {"pathname":"/foo/?"} Input: {"pathname":"/foo"}: FAIL (Chrome: FAIL, Safari: FAIL)
Pattern: {"pathname":"/foo/(.)?"} Input: {"pathname":"/foo/"}: FAIL (Chrome: PASS, Safari: FAIL)
Pattern: {"pathname":"/foo/?"} Input: {"pathname":"/foo/"}: FAIL (Chrome: FAIL, Safari: FAIL)
Pattern: {"pathname":"/foo/(.)?"} Input: {"pathname":"/foobar"}: FAIL (Chrome: PASS, Safari: FAIL)
Pattern: {"pathname":"/foo/?"} Input: {"pathname":"/foobar"}: FAIL (Chrome: FAIL, Safari: FAIL)
Pattern: {"pathname":"/foo/(.)?"} Input: {"pathname":"/fo"}: FAIL (Chrome: PASS, Safari: FAIL)
Pattern: {"pathname":"/foo/?"} Input: {"pathname":"/fo"}: FAIL (Chrome: FAIL, Safari: FAIL)
Pattern: {"pathname":"/foo/(.)+"} Input: {"pathname":"/foo/bar"}: FAIL (Chrome: PASS, Safari: FAIL)
Pattern: {"pathname":"/foo/+"} Input: {"pathname":"/foo/bar"}: FAIL (Chrome: FAIL, Safari: FAIL)
Pattern: {"pathname":"/foo/(.)+"} Input: {"pathname":"/foo/bar/baz"}: FAIL (Chrome: PASS, Safari: FAIL)
Pattern: {"pathname":"/foo/+"} Input: {"pathname":"/foo/bar/baz"}: FAIL (Chrome: FAIL, Safari: FAIL)
Pattern: {"pathname":"/foo/(.)+"} Input: {"pathname":"/foo"}: FAIL (Chrome: PASS, Safari: FAIL)
Pattern: {"pathname":"/foo/+"} Input: {"pathname":"/foo"}: FAIL (Chrome: FAIL, Safari: FAIL)
Pattern: {"pathname":"/foo/(.)+"} Input: {"pathname":"/foo/"}: FAIL (Chrome: PASS, Safari: FAIL)
Pattern: {"pathname":"/foo/+"} Input: {"pathname":"/foo/"}: FAIL (Chrome: FAIL, Safari: FAIL)
Pattern: {"pathname":"/foo/(.)+"} Input: {"pathname":"/foobar"}: FAIL (Chrome: PASS, Safari: FAIL)
Pattern: {"pathname":"/foo/+"} Input: {"pathname":"/foobar"}: FAIL (Chrome: FAIL, Safari: FAIL)
Pattern: {"pathname":"/foo/(.)+"} Input: {"pathname":"/fo"}: FAIL (Chrome: PASS, Safari: FAIL)
Pattern: {"pathname":"/foo/+"} Input: {"pathname":"/fo"}: FAIL (Chrome: FAIL, Safari: FAIL)
Pattern: {"pathname":"/foo/(.)"} Input: {"pathname":"/foo/bar"}: FAIL (Chrome: PASS, Safari: FAIL)
Pattern: {"pathname":"/foo/"} Input: {"pathname":"/foo/bar"}: FAIL (Chrome: FAIL, Safari: FAIL)
Pattern: {"pathname":"/foo/(.)"} Input: {"pathname":"/foo/bar/baz"}: FAIL (Chrome: PASS, Safari: FAIL)
Pattern: {"pathname":"/foo/"} Input: {"pathname":"/foo/bar/baz"}: FAIL (Chrome: FAIL, Safari: FAIL)
Pattern: {"pathname":"/foo/(.)"} Input: {"pathname":"/foo"}: FAIL (Chrome: PASS, Safari: FAIL)
Pattern: {"pathname":"/foo/"} Input: {"pathname":"/foo"}: FAIL (Chrome: FAIL, Safari: FAIL)
Pattern: {"pathname":"/foo/(.)"} Input: {"pathname":"/foo/"}: FAIL (Chrome: PASS, Safari: FAIL)
Pattern: {"pathname":"/foo/"} Input: {"pathname":"/foo/"}: FAIL (Chrome: FAIL, Safari: FAIL)
Pattern: {"pathname":"/foo/(.)"} Input: {"pathname":"/foobar"}: FAIL (Chrome: PASS, Safari: FAIL)
Pattern: {"pathname":"/foo/"} Input: {"pathname":"/foobar"}: FAIL (Chrome: FAIL, Safari: FAIL)
Pattern: {"pathname":"/foo/(.)"} Input: {"pathname":"/fo"}: FAIL (Chrome: PASS, Safari: FAIL)
Pattern: {"pathname":"/foo/"} Input: {"pathname":"/fo"}: FAIL (Chrome: FAIL, Safari: FAIL)
Pattern: {"pathname":"/foo{/bar}"} Input: {"pathname":"/foo/bar"}: FAIL (Chrome: PASS, Safari: FAIL)
Pattern: {"pathname":"/foo{/bar}"} Input: {"pathname":"/foo/bar/baz"}: FAIL (Chrome: PASS, Safari: FAIL)
Pattern: {"pathname":"/foo{/bar}"} Input: {"pathname":"/foo"}: FAIL (Chrome: PASS, Safari: FAIL)
Pattern: {"pathname":"/foo{/bar}"} Input: {"pathname":"/foo/"}: FAIL (Chrome: PASS, Safari: FAIL)
Pattern: {"pathname":"/foo{/bar}?"} Input: {"pathname":"/foo/bar"}: FAIL (Chrome: PASS, Safari: FAIL)
Pattern: {"pathname":"/foo{/bar}?"} Input: {"pathname":"/foo/bar/baz"}: FAIL (Chrome: PASS, Safari: FAIL)
Pattern: {"pathname":"/foo{/bar}?"} Input: {"pathname":"/foo"}: FAIL (Chrome: PASS, Safari: FAIL)
Pattern: {"pathname":"/foo{/bar}?"} Input: {"pathname":"/foo/"}: FAIL (Chrome: PASS, Safari: FAIL)
Pattern: {"pathname":"/foo{/bar}+"} Input: {"pathname":"/foo/bar"}: FAIL (Chrome: PASS, Safari: FAIL)
Pattern: {"pathname":"/foo{/bar}+"} Input: {"pathname":"/foo/bar/bar"}: FAIL (Chrome: PASS, Safari: FAIL)
Pattern: {"pathname":"/foo{/bar}+"} Input: {"pathname":"/foo/bar/baz"}: FAIL (Chrome: PASS, Safari: FAIL)
Pattern: {"pathname":"/foo{/bar}+"} Input: {"pathname":"/foo"}: FAIL (Chrome: PASS, Safari: FAIL)
Pattern: {"pathname":"/foo{/bar}+"} Input: {"pathname":"/foo/"}: FAIL (Chrome: PASS, Safari: FAIL)
Pattern: {"pathname":"/foo{/bar}"} Input: {"pathname":"/foo/bar"}: FAIL (Chrome: PASS, Safari: FAIL)
Pattern: {"pathname":"/foo{/bar}"} Input: {"pathname":"/foo/bar/bar"}: FAIL (Chrome: PASS, Safari: FAIL)
Pattern: {"pathname":"/foo{/bar}"} Input: {"pathname":"/foo/bar/baz"}: FAIL (Chrome: PASS, Safari: FAIL)
Pattern: {"pathname":"/foo{/bar}"} Input: {"pathname":"/foo"}: FAIL (Chrome: PASS, Safari: FAIL)
Pattern: {"pathname":"/foo{/bar}"} Input: {"pathname":"/foo/"}: FAIL (Chrome: PASS, Safari: FAIL)
Pattern: {"protocol":"(café)"} Input: undefined: FAIL (Chrome: PASS, Safari: FAIL)
Pattern: {"username":"(café)"} Input: undefined: FAIL (Chrome: PASS, Safari: FAIL)
Pattern: {"password":"(café)"} Input: undefined: FAIL (Chrome: PASS, Safari: FAIL)
Pattern: {"hostname":"(café)"} Input: undefined: FAIL (Chrome: PASS, Safari: FAIL)
Pattern: {"pathname":"(café)"} Input: undefined: FAIL (Chrome: PASS, Safari: FAIL)
Pattern: {"search":"(café)"} Input: undefined: FAIL (Chrome: PASS, Safari: FAIL)
Pattern: {"hash":"(café)"} Input: undefined: FAIL (Chrome: PASS, Safari: FAIL)
Pattern: {"protocol":"(.)"} Input: {"protocol":"café"}: FAIL (Chrome: PASS, Safari: FAIL)
Pattern: {"protocol":"(.)"} Input: {"protocol":"cafe"}: FAIL (Chrome: PASS, Safari: FAIL)
Pattern: {"protocol":"foo-bar"} Input: {"protocol":"foo-bar"}: FAIL (Chrome: PASS, Safari: FAIL)
Pattern: {"username":"caf%C3%A9"} Input: {"username":"café"}: FAIL (Chrome: PASS, Safari: FAIL)
Pattern: {"username":"caf%c3%a9"} Input: {"username":"café"}: FAIL (Chrome: PASS, Safari: FAIL)
Pattern: {"password":"caf%C3%A9"} Input: {"password":"café"}: FAIL (Chrome: PASS, Safari: FAIL)
Pattern: {"password":"caf%c3%a9"} Input: {"password":"café"}: FAIL (Chrome: PASS, Safari: FAIL)
Pattern: {"hostname":"xn--caf-dma.com"} Input: {"hostname":"café.com"}: FAIL (Chrome: PASS, Safari: FAIL)
Pattern: {"port":""} Input: {"protocol":"http","port":"80"}: FAIL (Chrome: PASS, Safari: FAIL)
Pattern: {"port":"80"} Input: {"port":"80"}: FAIL (Chrome: PASS, Safari: FAIL)
Pattern: {"port":"(.)"} Input: {"port":"invalid80"}: FAIL (Chrome: PASS, Safari: FAIL)
Pattern: {"pathname":"/foo/bar"} Input: {"pathname":"/foo/./bar"}: FAIL (Chrome: PASS, Safari: FAIL)
Pattern: {"pathname":"/foo/baz"} Input: {"pathname":"/foo/bar/../baz"}: FAIL (Chrome: PASS, Safari: FAIL)
Pattern: {"pathname":"/caf%C3%A9"} Input: {"pathname":"/café"}: FAIL (Chrome: PASS, Safari: FAIL)
Pattern: {"pathname":"/caf%c3%a9"} Input: {"pathname":"/café"}: FAIL (Chrome: PASS, Safari: FAIL)
Pattern: {"pathname":"/foo/bar"} Input: {"pathname":"foo/bar"}: FAIL (Chrome: PASS, Safari: FAIL)
Pattern: {"pathname":"/foo/bar"} Input: {"pathname":"foo/bar","baseURL":"https://example.com"}: FAIL (Chrome: PASS, Safari: FAIL)
Pattern: {"pathname":"foo/bar"} Input: "https://example.com/foo/bar": FAIL (Chrome: PASS, Safari: FAIL)
Pattern: {"pathname":"foo/bar","baseURL":"https://example.com"} Input: "https://example.com/foo/bar": FAIL (Chrome: PASS, Safari: FAIL)
Pattern: {"pathname":":name.html","baseURL":"https://example.com"} Input: "https://example.com/foo.html": FAIL (Chrome: PASS, Safari: FAIL)
Pattern: {"search":"q=caf%C3%A9"} Input: {"search":"q=café"}: FAIL (Chrome: PASS, Safari: FAIL)
Pattern: {"search":"q=caf%c3%a9"} Input: {"search":"q=café"}: FAIL (Chrome: PASS, Safari: FAIL)
Pattern: {"hash":"caf%C3%A9"} Input: {"hash":"café"}: FAIL (Chrome: PASS, Safari: FAIL)
Pattern: {"hash":"caf%c3%a9"} Input: {"hash":"café"}: FAIL (Chrome: PASS, Safari: FAIL)
Pattern: {"protocol":"about","pathname":"(blank|sourcedoc)"} Input: "about:blank": FAIL (Chrome: PASS, Safari: FAIL)
Pattern: {"protocol":"data","pathname":":number([0-9]+)"} Input: "data:8675309": FAIL (Chrome: PASS, Safari: FAIL)
/urlpattern/urlpattern.https.any.sharedworker.html
Pattern: {"pathname":"/foo/bar"} Input: {"pathname":"/foo/bar"}: FAIL (Chrome: PASS)
Pattern: {"pathname":"/foo/bar"} Input: {"pathname":"/foo/ba"}: FAIL (Chrome: PASS)
Pattern: {"pathname":"/foo/bar"} Input: {"pathname":"/foo/bar/"}: FAIL (Chrome: PASS)
Pattern: {"pathname":"/foo/bar"} Input: {"pathname":"/foo/bar/baz"}: FAIL (Chrome: PASS)
Pattern: {"pathname":"/foo/bar"} Input: "https://example.com/foo/bar": FAIL (Chrome: PASS)
Pattern: {"pathname":"/foo/bar"} Input: "https://example.com/foo/bar/baz": FAIL (Chrome: PASS)
Pattern: {"pathname":"/foo/bar"} Input: {"hostname":"example.com","pathname":"/foo/bar"}: FAIL (Chrome: PASS)
Pattern: {"pathname":"/foo/bar"} Input: {"hostname":"example.com","pathname":"/foo/bar/baz"}: FAIL (Chrome: PASS)
Pattern: {"pathname":"/foo/bar"} Input: {"pathname":"/foo/bar","baseURL":"https://example.com"}: FAIL (Chrome: PASS)
Pattern: {"pathname":"/foo/bar"} Input: {"pathname":"/foo/bar/baz","baseURL":"https://example.com"}: FAIL (Chrome: PASS)
Pattern: {"pathname":"/foo/bar","baseURL":"https://example.com?query#hash"} Input: {"pathname":"/foo/bar"}: FAIL (Chrome: PASS)
Pattern: {"pathname":"/foo/bar","baseURL":"https://example.com?query#hash"} Input: {"hostname":"example.com","pathname":"/foo/bar"}: FAIL (Chrome: PASS)
Pattern: {"pathname":"/foo/bar","baseURL":"https://example.com?query#hash"} Input: {"protocol":"https","hostname":"example.com","pathname":"/foo/bar"}: FAIL (Chrome: PASS)
Pattern: {"pathname":"/foo/bar","baseURL":"https://example.com?query#hash"} Input: {"protocol":"https","hostname":"example.com","pathname":"/foo/bar/baz"}: FAIL (Chrome: PASS)
Pattern: {"pathname":"/foo/bar","baseURL":"https://example.com?query#hash"} Input: {"protocol":"https","hostname":"example.com","pathname":"/foo/bar","search":"otherquery","hash":"otherhash"}: FAIL (Chrome: PASS)
Pattern: {"pathname":"/foo/bar","baseURL":"https://example.com?query#hash"} Input: "https://example.com/foo/bar": FAIL (Chrome: PASS)
Pattern: {"pathname":"/foo/bar","baseURL":"https://example.com?query#hash"} Input: "https://example.com/foo/bar?otherquery#otherhash": FAIL (Chrome: PASS)
Pattern: {"pathname":"/foo/bar","baseURL":"https://example.com?query#hash"} Input: "https://example.com/foo/bar/baz": FAIL (Chrome: PASS)
Pattern: {"pathname":"/foo/bar","baseURL":"https://example.com?query#hash"} Input: "https://other.com/foo/bar": FAIL (Chrome: PASS)
Pattern: {"pathname":"/foo/bar","baseURL":"https://example.com?query#hash"} Input: "http://other.com/foo/bar": FAIL (Chrome: PASS)
Pattern: {"pathname":"/foo/bar","baseURL":"https://example.com?query#hash"} Input: {"pathname":"/foo/bar","baseURL":"https://example.com"}: FAIL (Chrome: PASS)
Pattern: {"pathname":"/foo/bar","baseURL":"https://example.com?query#hash"} Input: {"pathname":"/foo/bar/baz","baseURL":"https://example.com"}: FAIL (Chrome: PASS)
Pattern: {"pathname":"/foo/bar","baseURL":"https://example.com?query#hash"} Input: {"pathname":"/foo/bar","baseURL":"https://other.com"}: FAIL (Chrome: PASS)
Pattern: {"pathname":"/foo/bar","baseURL":"https://example.com?query#hash"} Input: {"pathname":"/foo/bar","baseURL":"http://example.com"}: FAIL (Chrome: PASS)
Pattern: {"pathname":"/foo/:bar"} Input: {"pathname":"/foo/bar"}: FAIL (Chrome: PASS)
Pattern: {"pathname":"/foo/:bar"} Input: {"pathname":"/foo/index.html"}: FAIL (Chrome: PASS)
Pattern: {"pathname":"/foo/:bar"} Input: {"pathname":"/foo/bar/"}: FAIL (Chrome: PASS)
Pattern: {"pathname":"/foo/:bar"} Input: {"pathname":"/foo/"}: FAIL (Chrome: PASS)
Pattern: {"pathname":"/foo/(.)"} Input: {"pathname":"/foo/bar"}: FAIL (Chrome: PASS)
Pattern: {"pathname":"/foo/"} Input: {"pathname":"/foo/bar"}: FAIL (Chrome: FAIL)
Pattern: {"pathname":"/foo/(.)"} Input: {"pathname":"/foo/bar/baz"}: FAIL (Chrome: PASS)
Pattern: {"pathname":"/foo/"} Input: {"pathname":"/foo/bar/baz"}: FAIL (Chrome: FAIL)
Pattern: {"pathname":"/foo/(.)"} Input: {"pathname":"/foo/"}: FAIL (Chrome: PASS)
Pattern: {"pathname":"/foo/"} Input: {"pathname":"/foo/"}: FAIL (Chrome: FAIL)
Pattern: {"pathname":"/foo/(.)"} Input: {"pathname":"/foo"}: FAIL (Chrome: PASS)
Pattern: {"pathname":"/foo/"} Input: {"pathname":"/foo"}: FAIL (Chrome: FAIL)
Pattern: {"pathname":"/foo/:bar(.)"} Input: {"pathname":"/foo/bar"}: FAIL (Chrome: PASS)
Pattern: {"pathname":"/foo/:bar(.)"} Input: {"pathname":"/foo/bar/baz"}: FAIL (Chrome: PASS)
Pattern: {"pathname":"/foo/:bar(.)"} Input: {"pathname":"/foo/"}: FAIL (Chrome: PASS)
Pattern: {"pathname":"/foo/:bar(.)"} Input: {"pathname":"/foo"}: FAIL (Chrome: PASS)
Pattern: {"pathname":"/foo/:bar?"} Input: {"pathname":"/foo/bar"}: FAIL (Chrome: PASS)
Pattern: {"pathname":"/foo/:bar?"} Input: {"pathname":"/foo"}: FAIL (Chrome: PASS)
Pattern: {"pathname":"/foo/:bar?"} Input: {"pathname":"/foo/"}: FAIL (Chrome: PASS)
Pattern: {"pathname":"/foo/:bar?"} Input: {"pathname":"/foobar"}: FAIL (Chrome: PASS)
Pattern: {"pathname":"/foo/:bar?"} Input: {"pathname":"/foo/bar/baz"}: FAIL (Chrome: PASS)
Pattern: {"pathname":"/foo/:bar+"} Input: {"pathname":"/foo/bar"}: FAIL (Chrome: PASS)
Pattern: {"pathname":"/foo/:bar+"} Input: {"pathname":"/foo/bar/baz"}: FAIL (Chrome: PASS)
Pattern: {"pathname":"/foo/:bar+"} Input: {"pathname":"/foo"}: FAIL (Chrome: PASS)
Pattern: {"pathname":"/foo/:bar+"} Input: {"pathname":"/foo/"}: FAIL (Chrome: PASS)
Pattern: {"pathname":"/foo/:bar+"} Input: {"pathname":"/foobar"}: FAIL (Chrome: PASS)
Pattern: {"pathname":"/foo/:bar*"} Input: {"pathname":"/foo/bar"}: FAIL (Chrome: PASS)
Pattern: {"pathname":"/foo/:bar*"} Input: {"pathname":"/foo/bar/baz"}: FAIL (Chrome: PASS)
Pattern: {"pathname":"/foo/:bar*"} Input: {"pathname":"/foo"}: FAIL (Chrome: PASS)
Pattern: {"pathname":"/foo/:bar*"} Input: {"pathname":"/foo/"}: FAIL (Chrome: PASS)
Pattern: {"pathname":"/foo/:bar*"} Input: {"pathname":"/foobar"}: FAIL (Chrome: PASS)
Pattern: {"pathname":"/foo/(.)?"} Input: {"pathname":"/foo/bar"}: FAIL (Chrome: PASS)
Pattern: {"pathname":"/foo/?"} Input: {"pathname":"/foo/bar"}: FAIL (Chrome: FAIL)
Pattern: {"pathname":"/foo/(.)?"} Input: {"pathname":"/foo/bar/baz"}: FAIL (Chrome: PASS)
Pattern: {"pathname":"/foo/?"} Input: {"pathname":"/foo/bar/baz"}: FAIL (Chrome: FAIL)
Pattern: {"pathname":"/foo/(.)?"} Input: {"pathname":"/foo"}: FAIL (Chrome: PASS)
Pattern: {"pathname":"/foo/?"} Input: {"pathname":"/foo"}: FAIL (Chrome: FAIL)
Pattern: {"pathname":"/foo/(.)?"} Input: {"pathname":"/foo/"}: FAIL (Chrome: PASS)
Pattern: {"pathname":"/foo/?"} Input: {"pathname":"/foo/"}: FAIL (Chrome: FAIL)
Pattern: {"pathname":"/foo/(.)?"} Input: {"pathname":"/foobar"}: FAIL (Chrome: PASS)
Pattern: {"pathname":"/foo/?"} Input: {"pathname":"/foobar"}: FAIL (Chrome: FAIL)
Pattern: {"pathname":"/foo/(.)?"} Input: {"pathname":"/fo"}: FAIL (Chrome: PASS)
Pattern: {"pathname":"/foo/?"} Input: {"pathname":"/fo"}: FAIL (Chrome: FAIL)
Pattern: {"pathname":"/foo/(.)+"} Input: {"pathname":"/foo/bar"}: FAIL (Chrome: PASS)
Pattern: {"pathname":"/foo/+"} Input: {"pathname":"/foo/bar"}: FAIL (Chrome: FAIL)
Pattern: {"pathname":"/foo/(.)+"} Input: {"pathname":"/foo/bar/baz"}: FAIL (Chrome: PASS)
Pattern: {"pathname":"/foo/+"} Input: {"pathname":"/foo/bar/baz"}: FAIL (Chrome: FAIL)
Pattern: {"pathname":"/foo/(.)+"} Input: {"pathname":"/foo"}: FAIL (Chrome: PASS)
Pattern: {"pathname":"/foo/+"} Input: {"pathname":"/foo"}: FAIL (Chrome: FAIL)
Pattern: {"pathname":"/foo/(.)+"} Input: {"pathname":"/foo/"}: FAIL (Chrome: PASS)
Pattern: {"pathname":"/foo/+"} Input: {"pathname":"/foo/"}: FAIL (Chrome: FAIL)
Pattern: {"pathname":"/foo/(.)+"} Input: {"pathname":"/foobar"}: FAIL (Chrome: PASS)
Pattern: {"pathname":"/foo/+"} Input: {"pathname":"/foobar"}: FAIL (Chrome: FAIL)
Pattern: {"pathname":"/foo/(.)+"} Input: {"pathname":"/fo"}: FAIL (Chrome: PASS)
Pattern: {"pathname":"/foo/+"} Input: {"pathname":"/fo"}: FAIL (Chrome: FAIL)
Pattern: {"pathname":"/foo/(.)"} Input: {"pathname":"/foo/bar"}: FAIL (Chrome: PASS)
Pattern: {"pathname":"/foo/"} Input: {"pathname":"/foo/bar"}: FAIL (Chrome: FAIL)
Pattern: {"pathname":"/foo/(.)"} Input: {"pathname":"/foo/bar/baz"}: FAIL (Chrome: PASS)
Pattern: {"pathname":"/foo/"} Input: {"pathname":"/foo/bar/baz"}: FAIL (Chrome: FAIL)
Pattern: {"pathname":"/foo/(.)"} Input: {"pathname":"/foo"}: FAIL (Chrome: PASS)
Pattern: {"pathname":"/foo/"} Input: {"pathname":"/foo"}: FAIL (Chrome: FAIL)
Pattern: {"pathname":"/foo/(.)"} Input: {"pathname":"/foo/"}: FAIL (Chrome: PASS)
Pattern: {"pathname":"/foo/"} Input: {"pathname":"/foo/"}: FAIL (Chrome: FAIL)
Pattern: {"pathname":"/foo/(.)"} Input: {"pathname":"/foobar"}: FAIL (Chrome: PASS)
Pattern: {"pathname":"/foo/"} Input: {"pathname":"/foobar"}: FAIL (Chrome: FAIL)
Pattern: {"pathname":"/foo/(.)"} Input: {"pathname":"/fo"}: FAIL (Chrome: PASS)
Pattern: {"pathname":"/foo/"} Input: {"pathname":"/fo"}: FAIL (Chrome: FAIL)
Pattern: {"pathname":"/foo{/bar}"} Input: {"pathname":"/foo/bar"}: FAIL (Chrome: PASS)
Pattern: {"pathname":"/foo{/bar}"} Input: {"pathname":"/foo/bar/baz"}: FAIL (Chrome: PASS)
Pattern: {"pathname":"/foo{/bar}"} Input: {"pathname":"/foo"}: FAIL (Chrome: PASS)
Pattern: {"pathname":"/foo{/bar}"} Input: {"pathname":"/foo/"}: FAIL (Chrome: PASS)
Pattern: {"pathname":"/foo{/bar}?"} Input: {"pathname":"/foo/bar"}: FAIL (Chrome: PASS)
Pattern: {"pathname":"/foo{/bar}?"} Input: {"pathname":"/foo/bar/baz"}: FAIL (Chrome: PASS)
Pattern: {"pathname":"/foo{/bar}?"} Input: {"pathname":"/foo"}: FAIL (Chrome: PASS)
Pattern: {"pathname":"/foo{/bar}?"} Input: {"pathname":"/foo/"}: FAIL (Chrome: PASS)
Pattern: {"pathname":"/foo{/bar}+"} Input: {"pathname":"/foo/bar"}: FAIL (Chrome: PASS)
Pattern: {"pathname":"/foo{/bar}+"} Input: {"pathname":"/foo/bar/bar"}: FAIL (Chrome: PASS)
Pattern: {"pathname":"/foo{/bar}+"} Input: {"pathname":"/foo/bar/baz"}: FAIL (Chrome: PASS)
Pattern: {"pathname":"/foo{/bar}+"} Input: {"pathname":"/foo"}: FAIL (Chrome: PASS)
Pattern: {"pathname":"/foo{/bar}+"} Input: {"pathname":"/foo/"}: FAIL (Chrome: PASS)
Pattern: {"pathname":"/foo{/bar}"} Input: {"pathname":"/foo/bar"}: FAIL (Chrome: PASS)
Pattern: {"pathname":"/foo{/bar}"} Input: {"pathname":"/foo/bar/bar"}: FAIL (Chrome: PASS)
Pattern: {"pathname":"/foo{/bar}"} Input: {"pathname":"/foo/bar/baz"}: FAIL (Chrome: PASS)
Pattern: {"pathname":"/foo{/bar}"} Input: {"pathname":"/foo"}: FAIL (Chrome: PASS)
Pattern: {"pathname":"/foo{/bar}"} Input: {"pathname":"/foo/"}: FAIL (Chrome: PASS)
Pattern: {"protocol":"(café)"} Input: undefined: FAIL (Chrome: PASS)
Pattern: {"username":"(café)"} Input: undefined: FAIL (Chrome: PASS)
Pattern: {"password":"(café)"} Input: undefined: FAIL (Chrome: PASS)
Pattern: {"hostname":"(café)"} Input: undefined: FAIL (Chrome: PASS)
Pattern: {"pathname":"(café)"} Input: undefined: FAIL (Chrome: PASS)
Pattern: {"search":"(café)"} Input: undefined: FAIL (Chrome: PASS)
Pattern: {"hash":"(café)"} Input: undefined: FAIL (Chrome: PASS)
Pattern: {"protocol":"(.)"} Input: {"protocol":"café"}: FAIL (Chrome: PASS)
Pattern: {"protocol":"(.)"} Input: {"protocol":"cafe"}: FAIL (Chrome: PASS)
Pattern: {"protocol":"foo-bar"} Input: {"protocol":"foo-bar"}: FAIL (Chrome: PASS)
Pattern: {"username":"caf%C3%A9"} Input: {"username":"café"}: FAIL (Chrome: PASS)
Pattern: {"username":"caf%c3%a9"} Input: {"username":"café"}: FAIL (Chrome: PASS)
Pattern: {"password":"caf%C3%A9"} Input: {"password":"café"}: FAIL (Chrome: PASS)
Pattern: {"password":"caf%c3%a9"} Input: {"password":"café"}: FAIL (Chrome: PASS)
Pattern: {"hostname":"xn--caf-dma.com"} Input: {"hostname":"café.com"}: FAIL (Chrome: PASS)
Pattern: {"port":""} Input: {"protocol":"http","port":"80"}: FAIL (Chrome: PASS)
Pattern: {"port":"80"} Input: {"port":"80"}: FAIL (Chrome: PASS)
Pattern: {"port":"(.)"} Input: {"port":"invalid80"}: FAIL (Chrome: PASS)
Pattern: {"pathname":"/foo/bar"} Input: {"pathname":"/foo/./bar"}: FAIL (Chrome: PASS)
Pattern: {"pathname":"/foo/baz"} Input: {"pathname":"/foo/bar/../baz"}: FAIL (Chrome: PASS)
Pattern: {"pathname":"/caf%C3%A9"} Input: {"pathname":"/café"}: FAIL (Chrome: PASS)
Pattern: {"pathname":"/caf%c3%a9"} Input: {"pathname":"/café"}: FAIL (Chrome: PASS)
Pattern: {"pathname":"/foo/bar"} Input: {"pathname":"foo/bar"}: FAIL (Chrome: PASS)
Pattern: {"pathname":"/foo/bar"} Input: {"pathname":"foo/bar","baseURL":"https://example.com"}: FAIL (Chrome: PASS)
Pattern: {"pathname":"foo/bar"} Input: "https://example.com/foo/bar": FAIL (Chrome: PASS)
Pattern: {"pathname":"foo/bar","baseURL":"https://example.com"} Input: "https://example.com/foo/bar": FAIL (Chrome: PASS)
Pattern: {"pathname":":name.html","baseURL":"https://example.com"} Input: "https://example.com/foo.html": FAIL (Chrome: PASS)
Pattern: {"search":"q=caf%C3%A9"} Input: {"search":"q=café"}: FAIL (Chrome: PASS)
Pattern: {"search":"q=caf%c3%a9"} Input: {"search":"q=café"}: FAIL (Chrome: PASS)
Pattern: {"hash":"caf%C3%A9"} Input: {"hash":"café"}: FAIL (Chrome: PASS)
Pattern: {"hash":"caf%c3%a9"} Input: {"hash":"café"}: FAIL (Chrome: PASS)
Pattern: {"protocol":"about","pathname":"(blank|sourcedoc)"} Input: "about:blank": FAIL (Chrome: PASS)
Pattern: {"protocol":"data","pathname":":number([0-9]+)"} Input: "data:8675309": FAIL (Chrome: PASS)
Pushed by wptsync@mozilla.com: https://hg.mozilla.org/integration/autoland/rev/65b59209c58c [wpt PR 27679] - URLPattern: Add wildcard '*' support., a=testonly https://hg.mozilla.org/integration/autoland/rev/ad7f825013c7 [wpt PR 27679] - Update wpt metadata, a=testonly
Comment 4•3 years ago
|
||
bugherder |
https://hg.mozilla.org/mozilla-central/rev/65b59209c58c
https://hg.mozilla.org/mozilla-central/rev/ad7f825013c7
Description
•