| [ |
| { |
| "pattern": { "pathname": "/foo" }, |
| "component": "invalid", |
| "groups": {}, |
| "expected": null |
| }, |
| { |
| "pattern": { "pathname": "/foo" }, |
| "component": "pathname", |
| "groups": {}, |
| "expected": "/foo" |
| }, |
| { |
| "pattern": { "pathname": "/:foo" }, |
| "component": "pathname", |
| "groups": { "foo": "bar" }, |
| "expected": "/bar" |
| }, |
| { |
| "pattern": { "pathname": "/:foo" }, |
| "component": "pathname", |
| "groups": { "foo": "🍅" }, |
| "expected": "/%F0%9F%8D%85" |
| }, |
| { |
| "pattern": { "hostname": "{:foo}.example.com" }, |
| "component": "hostname", |
| "groups": { "foo": "🍅" }, |
| "expected": "xn--fi8h.example.com" |
| }, |
| { |
| "pattern": { "pathname": "/:foo" }, |
| "component": "pathname", |
| "groups": {}, |
| "expected": null |
| }, |
| { |
| "pattern": { "pathname": "/foo/:bar" }, |
| "component": "pathname", |
| "groups": { "bar": "baz" }, |
| "expected": "/foo/baz" |
| }, |
| { |
| "pattern": { "pathname": "/foo:bar" }, |
| "component": "pathname", |
| "groups": { "bar": "baz" }, |
| "expected": "/foobaz" |
| }, |
| { |
| "pattern": { "pathname": "/:foo/:bar" }, |
| "component": "pathname", |
| "groups": { "foo": "baz", "bar": "qux" }, |
| "expected": "/baz/qux" |
| }, |
| { |
| "pattern": "https://example.com/:foo", |
| "component": "pathname", |
| "groups": { "foo": " " }, |
| "expected": "/%20" |
| }, |
| { |
| "pattern": "original-scheme://example.com/:foo", |
| "component": "pathname", |
| "groups": { "foo": " " }, |
| "expected": "/ " |
| }, |
| { |
| "pattern": { "pathname": "/:foo" }, |
| "component": "pathname", |
| "groups": { "foo": "bar/baz" }, |
| "expected": null |
| }, |
| { |
| "pattern": { "pathname": "*" }, |
| "component": "pathname", |
| "groups": {}, |
| "expected": null |
| }, |
| { |
| "pattern": { "pathname": "/{foo}+" }, |
| "component": "pathname", |
| "groups": {}, |
| "expected": null |
| }, |
| { |
| "pattern": { "pathname": "/{foo}?" }, |
| "component": "pathname", |
| "groups": {}, |
| "expected": null |
| }, |
| { |
| "pattern": { "pathname": "/{foo}*" }, |
| "component": "pathname", |
| "groups": {}, |
| "expected": null |
| }, |
| { |
| "pattern": { "pathname": "/(regexp)" }, |
| "component": "pathname", |
| "groups": {}, |
| "expected": null |
| }, |
| { |
| "pattern": { "pathname": "/([^\\/]+?)" }, |
| "component": "pathname", |
| "groups": {}, |
| "expected": null |
| }, |
| { |
| "pattern": { "port": "([^\\:]+?)" }, |
| "component": "port", |
| "groups": {}, |
| "expected": null |
| } |
| ] |