WHATWG URLPattern Conformance Report¶
Generated by scripts/generate_compliance_report.py on 2026-05-13 04:26:17 UTC, running against web-platform-tests/wpt/urlpattern/ pinned at dd54691 with regex engine regex (set-operation support: yes). Suite names match the upstream WPT runner basenames.
Legend. ✓ pass · ✗ fail · ◐ xfail (known engine gap) · ◑ skip · ⚠ error.
Summary¶
| Suite | Total | Pass | XFail | Skip | Fail | Error |
|---|---|---|---|---|---|---|
| urlpattern.any.js | 366 | 366 | 0 | 0 | 0 | 0 |
| urlpattern-constructor.any.js | 4 | 4 | 0 | 0 | 0 | 0 |
| urlpattern-hasregexpgroups.any.js | 55 | 55 | 0 | 0 | 0 | 0 |
| urlpattern-compare.tentative.any.js | 25 | 25 | 0 | 0 | 0 | 0 |
| urlpattern-generate.tentative.any.js | 19 | 19 | 0 | 0 | 0 | 0 |
| All suites | 469 | 469 | 0 | 0 | 0 | 0 |
urlpattern.any.js¶
Runner: urlpattern.any.js · Data: urlpatterntestdata.json
366 cases — 366 pass
| # | Case | Status | Detail |
|---|---|---|---|
| 0 | 000-pathname='/foo/bar' |
✓ pass | |
| 1 | 001-pathname='/foo/bar' |
✓ pass | |
| 2 | 002-pathname='/foo/bar' |
✓ pass | |
| 3 | 003-pathname='/foo/bar' |
✓ pass | |
| 4 | 004-pathname='/foo/bar' |
✓ pass | |
| 5 | 005-pathname='/foo/bar' |
✓ pass | |
| 6 | 006-pathname='/foo/bar' |
✓ pass | |
| 7 | 007-pathname='/foo/bar' |
✓ pass | |
| 8 | 008-pathname='/foo/bar' |
✓ pass | |
| 9 | 009-pathname='/foo/bar' |
✓ pass | |
| 10 | 010-pathname='/foo/bar',baseURL='https://example.com?query#hash' |
✓ pass | |
| 11 | 011-pathname='/foo/bar',baseURL='https://example.com?query#hash' |
✓ pass | |
| 12 | 012-pathname='/foo/bar',baseURL='https://example.com?query#hash' |
✓ pass | |
| 13 | 013-pathname='/foo/bar',baseURL='https://example.com' |
✓ pass | |
| 14 | 014-pathname='/foo/bar',baseURL='https://example.com' |
✓ pass | |
| 15 | 015-pathname='/foo/bar',baseURL='https://example.com?query#hash' |
✓ pass | |
| 16 | 016-pathname='/foo/bar',baseURL='https://example.com' |
✓ pass | |
| 17 | 017-pathname='/foo/bar',baseURL='https://example.com?otherquery#otherhash' |
✓ pass | |
| 18 | 018-pathname='/foo/bar',baseURL='https://example.com?query#hash' |
✓ pass | |
| 19 | 019-pathname='/foo/bar',baseURL='https://example.com?query#hash' |
✓ pass | |
| 20 | 020-pathname='/foo/bar',baseURL='https://example.com?query#hash' |
✓ pass | |
| 21 | 021-pathname='/foo/bar',baseURL='https://example.com?query#hash' |
✓ pass | |
| 22 | 022-pathname='/foo/bar',baseURL='https://example.com?query#hash' |
✓ pass | |
| 23 | 023-pathname='/foo/bar',baseURL='https://example.com?query#hash' |
✓ pass | |
| 24 | 024-pathname='/foo/bar',baseURL='https://example.com?query#hash' |
✓ pass | |
| 25 | 025-pathname='/foo/bar',baseURL='https://example.com?query#hash' |
✓ pass | |
| 26 | 026-pathname='/foo/bar',baseURL='https://example.com?query#hash' |
✓ pass | |
| 27 | 027-pathname='/foo/bar',baseURL='https://example.com?query#hash' |
✓ pass | |
| 28 | 028-pathname='/foo/bar',baseURL='https://example.com?query#hash' |
✓ pass | |
| 29 | 029-pathname='/foo/:bar' |
✓ pass | |
| 30 | 030-pathname='/foo/([^\\/]+?)' |
✓ pass | |
| 31 | 031-pathname='/foo/:bar' |
✓ pass | |
| 32 | 032-pathname='/foo/:bar' |
✓ pass | |
| 33 | 033-pathname='/foo/:bar' |
✓ pass | |
| 34 | 034-pathname='/foo/(.*)' |
✓ pass | |
| 35 | 035-pathname='/foo/*' |
✓ pass | |
| 36 | 036-pathname='/foo/(.*)' |
✓ pass | |
| 37 | 037-pathname='/foo/*' |
✓ pass | |
| 38 | 038-pathname='/foo/(.*)' |
✓ pass | |
| 39 | 039-pathname='/foo/*' |
✓ pass | |
| 40 | 040-pathname='/foo/(.*)' |
✓ pass | |
| 41 | 041-pathname='/foo/*' |
✓ pass | |
| 42 | 042-pathname='/foo/:bar(.*)' |
✓ pass | |
| 43 | 043-pathname='/foo/:bar(.*)' |
✓ pass | |
| 44 | 044-pathname='/foo/:bar(.*)' |
✓ pass | |
| 45 | 045-pathname='/foo/:bar(.*)' |
✓ pass | |
| 46 | 046-pathname='/foo/:bar?' |
✓ pass | |
| 47 | 047-pathname='/foo/:bar?' |
✓ pass | |
| 48 | 048-pathname='/foo/:bar?' |
✓ pass | |
| 49 | 049-pathname='/foo/:bar?' |
✓ pass | |
| 50 | 050-pathname='/foo/:bar?' |
✓ pass | |
| 51 | 051-pathname='/foo/:bar+' |
✓ pass | |
| 52 | 052-pathname='/foo/:bar+' |
✓ pass | |
| 53 | 053-pathname='/foo/:bar+' |
✓ pass | |
| 54 | 054-pathname='/foo/:bar+' |
✓ pass | |
| 55 | 055-pathname='/foo/:bar+' |
✓ pass | |
| 56 | 056-pathname='/foo/:bar*' |
✓ pass | |
| 57 | 057-pathname='/foo/:bar*' |
✓ pass | |
| 58 | 058-pathname='/foo/:bar*' |
✓ pass | |
| 59 | 059-pathname='/foo/:bar*' |
✓ pass | |
| 60 | 060-pathname='/foo/:bar*' |
✓ pass | |
| 61 | 061-pathname='/foo/(.*)?' |
✓ pass | |
| 62 | 062-pathname='/foo/*?' |
✓ pass | |
| 63 | 063-pathname='/foo/(.*)?' |
✓ pass | |
| 64 | 064-pathname='/foo/*?' |
✓ pass | |
| 65 | 065-pathname='/foo/(.*)?' |
✓ pass | |
| 66 | 066-pathname='/foo/*?' |
✓ pass | |
| 67 | 067-pathname='/foo/(.*)?' |
✓ pass | |
| 68 | 068-pathname='/foo/*?' |
✓ pass | |
| 69 | 069-pathname='/foo/(.*)?' |
✓ pass | |
| 70 | 070-pathname='/foo/*?' |
✓ pass | |
| 71 | 071-pathname='/foo/(.*)?' |
✓ pass | |
| 72 | 072-pathname='/foo/*?' |
✓ pass | |
| 73 | 073-pathname='/foo/(.*)+' |
✓ pass | |
| 74 | 074-pathname='/foo/*+' |
✓ pass | |
| 75 | 075-pathname='/foo/(.*)+' |
✓ pass | |
| 76 | 076-pathname='/foo/*+' |
✓ pass | |
| 77 | 077-pathname='/foo/(.*)+' |
✓ pass | |
| 78 | 078-pathname='/foo/*+' |
✓ pass | |
| 79 | 079-pathname='/foo/(.*)+' |
✓ pass | |
| 80 | 080-pathname='/foo/*+' |
✓ pass | |
| 81 | 081-pathname='/foo/(.*)+' |
✓ pass | |
| 82 | 082-pathname='/foo/*+' |
✓ pass | |
| 83 | 083-pathname='/foo/(.*)+' |
✓ pass | |
| 84 | 084-pathname='/foo/*+' |
✓ pass | |
| 85 | 085-pathname='/foo/(.*)*' |
✓ pass | |
| 86 | 086-pathname='/foo/**' |
✓ pass | |
| 87 | 087-pathname='/foo/(.*)*' |
✓ pass | |
| 88 | 088-pathname='/foo/**' |
✓ pass | |
| 89 | 089-pathname='/foo/(.*)*' |
✓ pass | |
| 90 | 090-pathname='/foo/**' |
✓ pass | |
| 91 | 091-pathname='/foo/(.*)*' |
✓ pass | |
| 92 | 092-pathname='/foo/**' |
✓ pass | |
| 93 | 093-pathname='/foo/(.*)*' |
✓ pass | |
| 94 | 094-pathname='/foo/**' |
✓ pass | |
| 95 | 095-pathname='/foo/(.*)*' |
✓ pass | |
| 96 | 096-pathname='/foo/**' |
✓ pass | |
| 97 | 097-pathname='/foo{/bar}' |
✓ pass | |
| 98 | 098-pathname='/foo{/bar}' |
✓ pass | |
| 99 | 099-pathname='/foo{/bar}' |
✓ pass | |
| 100 | 100-pathname='/foo{/bar}' |
✓ pass | |
| 101 | 101-pathname='/foo{/bar}?' |
✓ pass | |
| 102 | 102-pathname='/foo{/bar}?' |
✓ pass | |
| 103 | 103-pathname='/foo{/bar}?' |
✓ pass | |
| 104 | 104-pathname='/foo{/bar}?' |
✓ pass | |
| 105 | 105-pathname='/foo{/bar}+' |
✓ pass | |
| 106 | 106-pathname='/foo{/bar}+' |
✓ pass | |
| 107 | 107-pathname='/foo{/bar}+' |
✓ pass | |
| 108 | 108-pathname='/foo{/bar}+' |
✓ pass | |
| 109 | 109-pathname='/foo{/bar}+' |
✓ pass | |
| 110 | 110-pathname='/foo{/bar}*' |
✓ pass | |
| 111 | 111-pathname='/foo{/bar}*' |
✓ pass | |
| 112 | 112-pathname='/foo{/bar}*' |
✓ pass | |
| 113 | 113-pathname='/foo{/bar}*' |
✓ pass | |
| 114 | 114-pathname='/foo{/bar}*' |
✓ pass | |
| 115 | 115-protocol='(café)' |
✓ pass | |
| 116 | 116-username='(café)' |
✓ pass | |
| 117 | 117-password='(café)' |
✓ pass | |
| 118 | 118-hostname='(café)' |
✓ pass | |
| 119 | 119-pathname='(café)' |
✓ pass | |
| 120 | 120-search='(café)' |
✓ pass | |
| 121 | 121-hash='(café)' |
✓ pass | |
| 122 | 122-protocol=':café' |
✓ pass | |
| 123 | 123-username=':café' |
✓ pass | |
| 124 | 124-password=':café' |
✓ pass | |
| 125 | 125-hostname=':café' |
✓ pass | |
| 126 | 126-pathname='/:café' |
✓ pass | |
| 127 | 127-search=':café' |
✓ pass | |
| 128 | 128-hash=':café' |
✓ pass | |
| 129 | 129-protocol=':℘' |
✓ pass | |
| 130 | 130-username=':℘' |
✓ pass | |
| 131 | 131-password=':℘' |
✓ pass | |
| 132 | 132-hostname=':℘' |
✓ pass | |
| 133 | 133-pathname='/:℘' |
✓ pass | |
| 134 | 134-search=':℘' |
✓ pass | |
| 135 | 135-hash=':℘' |
✓ pass | |
| 136 | 136-protocol=':㐀' |
✓ pass | |
| 137 | 137-username=':㐀' |
✓ pass | |
| 138 | 138-password=':㐀' |
✓ pass | |
| 139 | 139-hostname=':㐀' |
✓ pass | |
| 140 | 140-pathname='/:㐀' |
✓ pass | |
| 141 | 141-search=':㐀' |
✓ pass | |
| 142 | 142-hash=':㐀' |
✓ pass | |
| 143 | 143-protocol='(.*)' |
✓ pass | |
| 144 | 144-protocol='(.*)' |
✓ pass | |
| 145 | 145-protocol='foo-bar' |
✓ pass | |
| 146 | 146-username='caf%C3%A9' |
✓ pass | |
| 147 | 147-username='café' |
✓ pass | |
| 148 | 148-username='caf%c3%a9' |
✓ pass | |
| 149 | 149-password='caf%C3%A9' |
✓ pass | |
| 150 | 150-password='café' |
✓ pass | |
| 151 | 151-password='caf%c3%a9' |
✓ pass | |
| 152 | 152-hostname='xn--caf-dma.com' |
✓ pass | |
| 153 | 153-hostname='café.com' |
✓ pass | |
| 154 | 154-http://🚲.com/ |
✓ pass | |
| 155 | 155-http://\ud83d\udeb2 |
✓ pass | |
| 156 | 156-hostname='\ud83d\udeb2' |
✓ pass | |
| 157 | 157-pathname='\ud83d\udeb2' |
✓ pass | |
| 158 | 158-pathname=':\ud83d\udeb2' |
✓ pass | |
| 159 | 159-pathname=':a󠄀b' |
✓ pass | |
| 160 | 160-pathname='test/:a𐑐b' |
✓ pass | |
| 161 | 161-pathname=':🚲' |
✓ pass | |
| 162 | 162-port='' |
✓ pass | |
| 163 | 163-protocol='http',port='80' |
✓ pass | |
| 164 | 164-protocol='http',port='80{20}?' |
✓ pass | |
| 165 | 165-protocol='http',port='80' |
✓ pass | |
| 166 | 166-protocol='http',port='100000' |
✓ pass | |
| 167 | 167-port='80' |
✓ pass | |
| 168 | 168-protocol='http{s}?',port='80' |
✓ pass | |
| 169 | 169-port='80' |
✓ pass | |
| 170 | 170-port='80' |
✓ pass | |
| 171 | 171-port='80' |
✓ pass | |
| 172 | 172-port='80' |
✓ pass | |
| 173 | 173-port='80' |
✓ pass | |
| 174 | 174-port='(.*)' |
✓ pass | |
| 175 | 175-pathname='/foo/bar' |
✓ pass | |
| 176 | 176-pathname='/foo/baz' |
✓ pass | |
| 177 | 177-pathname='/caf%C3%A9' |
✓ pass | |
| 178 | 178-pathname='/café' |
✓ pass | |
| 179 | 179-pathname='/caf%c3%a9' |
✓ pass | |
| 180 | 180-pathname='/foo/bar' |
✓ pass | |
| 181 | 181-pathname='/foo/bar' |
✓ pass | |
| 182 | 182-pathname='/foo/../bar' |
✓ pass | |
| 183 | 183-pathname='./foo/bar',baseURL='https://example.com' |
✓ pass | |
| 184 | 184-pathname='',baseURL='https://example.com' |
✓ pass | |
| 185 | 185-pathname='{/bar}',baseURL='https://example.com/foo/' |
✓ pass | |
| 186 | 186-pathname='\\/bar',baseURL='https://example.com/foo/' |
✓ pass | |
| 187 | 187-pathname='b',baseURL='https://example.com/foo/' |
✓ pass | |
| 188 | 188-pathname='foo/bar' |
✓ pass | |
| 189 | 189-pathname='foo/bar',baseURL='https://example.com' |
✓ pass | |
| 190 | 190-pathname=':name.html',baseURL='https://example.com' |
✓ pass | |
| 191 | 191-search='q=caf%C3%A9' |
✓ pass | |
| 192 | 192-search='q=café' |
✓ pass | |
| 193 | 193-search='q=caf%c3%a9' |
✓ pass | |
| 194 | 194-hash='caf%C3%A9' |
✓ pass | |
| 195 | 195-hash='café' |
✓ pass | |
| 196 | 196-hash='caf%c3%a9' |
✓ pass | |
| 197 | 197-protocol='about',pathname='(blank\|sourcedoc)' |
✓ pass | |
| 198 | 198-protocol='data',pathname=':number([0-9]+)' |
✓ pass | |
| 199 | 199-pathname='/(\\m)' |
✓ pass | |
| 200 | 200-pathname='/foo!' |
✓ pass | |
| 201 | 201-pathname='/foo\\:' |
✓ pass | |
| 202 | 202-pathname='/foo\\{' |
✓ pass | |
| 203 | 203-pathname='/foo\\(' |
✓ pass | |
| 204 | 204-protocol='javascript',pathname='varx=1;' |
✓ pass | |
| 205 | 205-pathname='varx=1;' |
✓ pass | |
| 206 | 206-protocol='javascript',pathname='varx=1;' |
✓ pass | |
| 207 | 207-protocol='(data\|javascript)',pathname='varx=1;' |
✓ pass | |
| 208 | 208-protocol='(https\|javascript)',pathname='varx=1;' |
✓ pass | |
| 209 | 209-pathname='varx=1;' |
✓ pass | |
| 210 | 210-pathname='/foo/bar' |
✓ pass | |
| 211 | 211-pathname='/foo/bar' |
✓ pass | |
| 212 | 212-https://example.com:8080/foo?bar#baz |
✓ pass | |
| 213 | 213-/foo?bar#baz |
✓ pass | |
| 214 | 214-/foo |
✓ pass | |
| 215 | 215-example.com/foo |
✓ pass | |
| 216 | 216-http{s}?://{*.}?example.com/:product/:endpoint |
✓ pass | |
| 217 | 217-https://example.com?foo |
✓ pass | |
| 218 | 218-https://example.com#foo |
✓ pass | |
| 219 | 219-https://example.com:8080?foo |
✓ pass | |
| 220 | 220-https://example.com:8080#foo |
✓ pass | |
| 221 | 221-https://example.com/?foo |
✓ pass | |
| 222 | 222-https://example.com/#foo |
✓ pass | |
| 223 | 223-https://example.com/*?foo |
✓ pass | |
| 224 | 224-https://example.com/*\?foo |
✓ pass | |
| 225 | 225-https://example.com/:name?foo |
✓ pass | |
| 226 | 226-https://example.com/:name\?foo |
✓ pass | |
| 227 | 227-https://example.com/(bar)?foo |
✓ pass | |
| 228 | 228-https://example.com/(bar)\?foo |
✓ pass | |
| 229 | 229-https://example.com/{bar}?foo |
✓ pass | |
| 230 | 230-https://example.com/{bar}\?foo |
✓ pass | |
| 231 | 231-https://example.com/ |
✓ pass | |
| 232 | 232-data:foobar |
✓ pass | |
| 233 | 233-data\:foobar |
✓ pass | |
| 234 | 234-https://{sub.}?example.com/foo |
✓ pass | |
| 235 | 235-https://{sub.}?example{.com/}foo |
✓ pass | |
| 236 | 236-{https://}example.com/foo |
✓ pass | |
| 237 | 237-https://(sub.)?example.com/foo |
✓ pass | |
| 238 | 238-https://(sub.)?example(.com/)foo |
✓ pass | |
| 239 | 239-(https://)example.com/foo |
✓ pass | |
| 240 | 240-https://{sub{.}}example.com/foo |
✓ pass | |
| 241 | 241-https://(sub(?:.))?example.com/foo |
✓ pass | |
| 242 | 242-file:///foo/bar |
✓ pass | |
| 243 | 243-data: |
✓ pass | |
| 244 | 244-foo://bar |
✓ pass | |
| 245 | 245-(café)://foo |
✓ pass | |
| 246 | 246-https://example.com/foo?bar#baz |
✓ pass | |
| 247 | 247-protocol='http{s}?:',search='?bar',hash='#baz' |
✓ pass | |
| 248 | 248-?bar#baz |
✓ pass | |
| 249 | 249-?bar |
✓ pass | |
| 250 | 250-#baz |
✓ pass | |
| 251 | 251-#baz |
✓ pass | |
| 252 | 252-pathname='*' |
✓ pass | |
| 253 | 253-pathname='*' |
✓ pass | |
| 254 | 254-https://foo\:bar@example.com |
✓ pass | |
| 255 | 255-https://foo@example.com |
✓ pass | |
| 256 | 256-https://\:bar@example.com |
✓ pass | |
| 257 | 257-https://:user::pass@example.com |
✓ pass | |
| 258 | 258-https\:foo\:bar@example.com |
✓ pass | |
| 259 | 259-data\:foo\:bar@example.com |
✓ pass | |
| 260 | 260-https://foo{\:}bar@example.com |
✓ pass | |
| 261 | 261-data{\:}channel.html |
✓ pass | |
| 262 | 262-http://[\:\:1]/ |
✓ pass | |
| 263 | 263-http://[\:\:1]:8080/ |
✓ pass | |
| 264 | 264-http://[\:\:a]/ |
✓ pass | |
| 265 | 265-http://[:address]/ |
✓ pass | |
| 266 | 266-http://[\:\:AB\::num]/ |
✓ pass | |
| 267 | 267-hostname='[\\:\\:AB\\::num]' |
✓ pass | |
| 268 | 268-hostname='[\\:\\:xY\\::num]' |
✓ pass | |
| 269 | 269-hostname='{[\\:\\:ab\\::num]}' |
✓ pass | |
| 270 | 270-hostname='{[\\:\\:fé\\::num]}' |
✓ pass | |
| 271 | 271-hostname='{[\\:\\::num\\:1]}' |
✓ pass | |
| 272 | 272-hostname='{[\\:\\::num\\:fé]}' |
✓ pass | |
| 273 | 273-hostname='[*\\:1]' |
✓ pass | |
| 274 | 274-hostname='*\\:1]' |
✓ pass | |
| 275 | 275-https://foo{{@}}example.com |
✓ pass | |
| 276 | 276-https://foo{@example.com |
✓ pass | |
| 277 | 277-data\:text/javascript,letx=100/:tens?5; |
✓ pass | |
| 278 | 278-pathname='/:id/:id' |
✓ pass | |
| 279 | 279-pathname='/foo',baseURL='' |
✓ pass | |
| 280 | 280-/foo |
✓ pass | |
| 281 | 281-pathname='/foo' |
✓ pass | |
| 282 | 282-pathname=':name*' |
✓ pass | |
| 283 | 283-pathname=':name+' |
✓ pass | |
| 284 | 284-pathname=':name' |
✓ pass | |
| 285 | 285-protocol=':name*' |
✓ pass | |
| 286 | 286-protocol=':name+' |
✓ pass | |
| 287 | 287-protocol=':name' |
✓ pass | |
| 288 | 288-hostname='badhostname' |
✓ pass | |
| 289 | 289-hostname='bad#hostname' |
✓ pass | |
| 290 | 290-hostname='bad%hostname' |
✓ pass | |
| 291 | 291-hostname='bad/hostname' |
✓ pass | |
| 292 | 292-hostname='bad\\:hostname' |
✓ pass | |
| 293 | 293-hostname='bad<hostname' |
✓ pass | |
| 294 | 294-hostname='bad>hostname' |
✓ pass | |
| 295 | 295-hostname='bad?hostname' |
✓ pass | |
| 296 | 296-hostname='bad@hostname' |
✓ pass | |
| 297 | 297-hostname='bad[hostname' |
✓ pass | |
| 298 | 298-hostname='bad]hostname' |
✓ pass | |
| 299 | 299-hostname='bad\\\\hostname' |
✓ pass | |
| 300 | 300-hostname='bad^hostname' |
✓ pass | |
| 301 | 301-hostname='bad\|hostname' |
✓ pass | |
| 302 | 302-hostname='bad\nhostname' |
✓ pass | |
| 303 | 303-hostname='bad\rhostname' |
✓ pass | |
| 304 | 304-hostname='bad\thostname' |
✓ pass | |
| 305 | 305- |
✓ pass | |
| 306 | 306-<no-pattern> |
✓ pass | |
| 307 | 307-<no-pattern> |
✓ pass | |
| 308 | 308-<no-pattern> |
✓ pass | |
| 309 | 309-pathname='(foo)(.*)' |
✓ pass | |
| 310 | 310-pathname='{(foo)bar}(.*)' |
✓ pass | |
| 311 | 311-pathname='(foo)?(.*)' |
✓ pass | |
| 312 | 312-pathname='{:foo}(.*)' |
✓ pass | |
| 313 | 313-pathname='{:foo}(barbaz)' |
✓ pass | |
| 314 | 314-pathname='{:foo}{(.*)}' |
✓ pass | |
| 315 | 315-pathname='{:foo}{(.*)bar}' |
✓ pass | |
| 316 | 316-pathname='{:foo}{bar(.*)}' |
✓ pass | |
| 317 | 317-pathname='{:foo}:bar(.*)' |
✓ pass | |
| 318 | 318-pathname='{:foo}?(.*)' |
✓ pass | |
| 319 | 319-pathname='{:foo\\bar}' |
✓ pass | |
| 320 | 320-pathname='{:foo\\.bar}' |
✓ pass | |
| 321 | 321-pathname='{:foo(foo)bar}' |
✓ pass | |
| 322 | 322-pathname='{:foo}bar' |
✓ pass | |
| 323 | 323-pathname=':foo\\bar' |
✓ pass | |
| 324 | 324-pathname=':foo{}(.*)' |
✓ pass | |
| 325 | 325-pathname=':foo{}bar' |
✓ pass | |
| 326 | 326-pathname=':foo{}?bar' |
✓ pass | |
| 327 | 327-pathname='*{}**?' |
✓ pass | |
| 328 | 328-pathname=':foo(baz)(.*)' |
✓ pass | |
| 329 | 329-pathname=':foo(baz)bar' |
✓ pass | |
| 330 | 330-pathname='*/*' |
✓ pass | |
| 331 | 331-pathname='*\\/*' |
✓ pass | |
| 332 | 332-pathname='*/{*}' |
✓ pass | |
| 333 | 333-pathname='*//*' |
✓ pass | |
| 334 | 334-pathname='/:foo.' |
✓ pass | |
| 335 | 335-pathname='/:foo..' |
✓ pass | |
| 336 | 336-pathname='./foo' |
✓ pass | |
| 337 | 337-pathname='../foo' |
✓ pass | |
| 338 | 338-pathname=':foo./' |
✓ pass | |
| 339 | 339-pathname=':foo../' |
✓ pass | |
| 340 | 340-pathname='/:foo\\bar' |
✓ pass | |
| 341 | 341-pathname='/foo/bar' |
✓ pass | |
| 342 | 342-ignoreCase=True |
✓ pass | |
| 343 | 343-https://example.com:8080/foo?bar#baz |
✓ pass | |
| 344 | 344-/foo?bar#baz |
✓ pass | |
| 345 | 345-/foo?bar#baz |
✓ pass | |
| 346 | 346-search='foo',baseURL='https://example.com/a/+/b' |
✓ pass | |
| 347 | 347-hash='foo',baseURL='https://example.com/?q=*&v=?&hmm={}&umm=()' |
✓ pass | |
| 348 | 348-#foo |
✓ pass | |
| 349 | 349-pathname='/([[a-z]--a])' |
✓ pass | |
| 350 | 350-pathname='/([[a-z]--a])' |
✓ pass | |
| 351 | 351-pathname='/([\\d&&[0-1]])' |
✓ pass | |
| 352 | 352-pathname='/([\\d&&[0-1]])' |
✓ pass | |
| 353 | 353-protocol='http',hostname='example.com/ignoredpath' |
✓ pass | |
| 354 | 354-protocol='http',hostname='example.com\\?ignoredsearch' |
✓ pass | |
| 355 | 355-protocol='http',hostname='example.com#ignoredhash' |
✓ pass | |
| 356 | 356-https://www.example.com/* |
✓ pass | |
| 357 | 357-https://www.example.com/* |
✓ pass | |
| 358 | 358-https://www.example.com/* |
✓ pass | |
| 359 | 359-https://www.example.com/* |
✓ pass | |
| 360 | 360-https://www.example.com/* |
✓ pass | |
| 361 | 361-hostname=':domain(.*)' |
✓ pass | |
| 362 | 362-((?R)): |
✓ pass | |
| 363 | 363-(\H): |
✓ pass | |
| 364 | 364-pathname='/:foo((?<x>a))' |
✓ pass | |
| 365 | 365-pathname='/foo/(bar(?<x>baz))' |
✓ pass |
urlpattern-constructor.any.js¶
Runner: urlpattern-constructor.any.js
4 cases — 4 pass
| # | Case | Status | Detail |
|---|---|---|---|
| 0 | unclosed_token_paren |
✓ pass | |
| 1 | unclosed_token_double_paren |
✓ pass | |
| 2 | unclosed_escape |
✓ pass | |
| 3 | constructor_with_undefined |
✓ pass |
urlpattern-hasregexpgroups.any.js¶
Runner: urlpattern-hasregexpgroups.any.js · Data: urlpattern-hasregexpgroups-tests.js
55 cases — 55 pass
| # | Case | Status | Detail |
|---|---|---|---|
| 0 | empty-init-has-no-regex-groups |
✓ pass | |
| 1 | wildcard-protocol |
✓ pass | |
| 2 | segment-protocol |
✓ pass | |
| 3 | optional-segment-protocol |
✓ pass | |
| 4 | named-regex-protocol |
✓ pass | |
| 5 | anon-regex-protocol |
✓ pass | |
| 6 | wildcard-username |
✓ pass | |
| 7 | segment-username |
✓ pass | |
| 8 | optional-segment-username |
✓ pass | |
| 9 | named-regex-username |
✓ pass | |
| 10 | anon-regex-username |
✓ pass | |
| 11 | wildcard-password |
✓ pass | |
| 12 | segment-password |
✓ pass | |
| 13 | optional-segment-password |
✓ pass | |
| 14 | named-regex-password |
✓ pass | |
| 15 | anon-regex-password |
✓ pass | |
| 16 | wildcard-hostname |
✓ pass | |
| 17 | segment-hostname |
✓ pass | |
| 18 | optional-segment-hostname |
✓ pass | |
| 19 | named-regex-hostname |
✓ pass | |
| 20 | anon-regex-hostname |
✓ pass | |
| 21 | wildcard-port |
✓ pass | |
| 22 | segment-port |
✓ pass | |
| 23 | optional-segment-port |
✓ pass | |
| 24 | named-regex-port |
✓ pass | |
| 25 | anon-regex-port |
✓ pass | |
| 26 | wildcard-pathname |
✓ pass | |
| 27 | segment-pathname |
✓ pass | |
| 28 | optional-segment-pathname |
✓ pass | |
| 29 | named-regex-pathname |
✓ pass | |
| 30 | anon-regex-pathname |
✓ pass | |
| 31 | wildcard-search |
✓ pass | |
| 32 | segment-search |
✓ pass | |
| 33 | optional-segment-search |
✓ pass | |
| 34 | named-regex-search |
✓ pass | |
| 35 | anon-regex-search |
✓ pass | |
| 36 | wildcard-hash |
✓ pass | |
| 37 | segment-hash |
✓ pass | |
| 38 | optional-segment-hash |
✓ pass | |
| 39 | named-regex-hash |
✓ pass | |
| 40 | anon-regex-hash |
✓ pass | |
| 41 | mixed-wildcard-username |
✓ pass | |
| 42 | mixed-regex-username |
✓ pass | |
| 43 | mixed-wildcard-password |
✓ pass | |
| 44 | mixed-regex-password |
✓ pass | |
| 45 | mixed-wildcard-hostname |
✓ pass | |
| 46 | mixed-regex-hostname |
✓ pass | |
| 47 | mixed-wildcard-pathname |
✓ pass | |
| 48 | mixed-regex-pathname |
✓ pass | |
| 49 | mixed-wildcard-search |
✓ pass | |
| 50 | mixed-regex-search |
✓ pass | |
| 51 | mixed-wildcard-hash |
✓ pass | |
| 52 | mixed-regex-hash |
✓ pass | |
| 53 | complex-pathname-no-regex |
✓ pass | |
| 54 | complex-pathname-with-regex |
✓ pass |
urlpattern-compare.tentative.any.js¶
Runner: urlpattern-compare.tentative.any.js · Data: urlpattern-compare-test-data.json
25 cases — 25 pass
| # | Case | Status | Detail |
|---|---|---|---|
| 0 | 000-pathname |
✓ pass | |
| 1 | 001-pathname |
✓ pass | |
| 2 | 002-pathname |
✓ pass | |
| 3 | 003-pathname |
✓ pass | |
| 4 | 004-pathname |
✓ pass | |
| 5 | 005-pathname |
✓ pass | |
| 6 | 006-pathname |
✓ pass | |
| 7 | 007-pathname |
✓ pass | |
| 8 | 008-pathname |
✓ pass | |
| 9 | 009-pathname |
✓ pass | |
| 10 | 010-pathname |
✓ pass | |
| 11 | 011-pathname |
✓ pass | |
| 12 | 012-port |
✓ pass | |
| 13 | 013-pathname |
✓ pass | |
| 14 | 014-pathname |
✓ pass | |
| 15 | 015-pathname |
✓ pass | |
| 16 | 016-pathname |
✓ pass | |
| 17 | 017-pathname |
✓ pass | |
| 18 | 018-pathname |
✓ pass | |
| 19 | 019-protocol |
✓ pass | |
| 20 | 020-username |
✓ pass | |
| 21 | 021-password |
✓ pass | |
| 22 | 022-hostname |
✓ pass | |
| 23 | 023-search |
✓ pass | |
| 24 | 024-hash |
✓ pass |
urlpattern-generate.tentative.any.js¶
Runner: urlpattern-generate.tentative.any.js · Data: urlpattern-generate-test-data.json
19 cases — 19 pass
| # | Case | Status | Detail |
|---|---|---|---|
| 0 | 000-invalid |
✓ pass | |
| 1 | 001-pathname |
✓ pass | |
| 2 | 002-pathname |
✓ pass | |
| 3 | 003-pathname |
✓ pass | |
| 4 | 004-hostname |
✓ pass | |
| 5 | 005-pathname |
✓ pass | |
| 6 | 006-pathname |
✓ pass | |
| 7 | 007-pathname |
✓ pass | |
| 8 | 008-pathname |
✓ pass | |
| 9 | 009-pathname |
✓ pass | |
| 10 | 010-pathname |
✓ pass | |
| 11 | 011-pathname |
✓ pass | |
| 12 | 012-pathname |
✓ pass | |
| 13 | 013-pathname |
✓ pass | |
| 14 | 014-pathname |
✓ pass | |
| 15 | 015-pathname |
✓ pass | |
| 16 | 016-pathname |
✓ pass | |
| 17 | 017-pathname |
✓ pass | |
| 18 | 018-port |
✓ pass |