UNPKG

catberry-uri

Version:

URI parser strictly according to RFC 3986

272 lines (271 loc) 15 kB
{ "items": [ { "name": "full URI", "uri": "scheme-+.scheme1234567890://%40%23%25%5E%3C%3E%7B%7D%5B%5D%60%2F%3F%5C%22%3A%D0%BB%D0%BE%D0%B3%D0%B8%D0%BD:%40%23%25%5E%3C%3E%7B%7D%5B%5D%60%2F%3F%5C%22%3A%D0%BF%D0%B0%D1%80%D0%BE%D0%BB%D1%8C@xn--%40%23%25%5E%3C%3E%7B%7D%60%2F%3F%5C%22-u7k7bq2c:1234/%23%25%5E%3C%3E%7B%7D%5B%5D%60%3F%5C%22%D0%BF%D1%83%D1%82%D1%8C/%23%25%5E%3C%3E%7B%7D%5B%5D%60%3F%5C%22%D0%BF%D1%83%D1%82%D1%8C?%23%25%5E%26%3D%3C%3E%7B%7D%5B%5D%2B%60%5C%22%D0%BF%D0%B0%D1%80%D0%B0%D0%BC%D0%B5%D1%82%D1%801=%23%25%5E%26%3D%3C%3E%7B%7D%5B%5D%2B%60%5C%22%D0%B7%D0%BD%D0%B0%D1%87%D0%B5%D0%BD%D0%B8%D0%B51&%23%25%5E%26%3D%3C%3E%7B%7D%5B%5D%2B%60%5C%22%D0%BF%D0%B0%D1%80%D0%B0%D0%BC%D0%B5%D1%82%D1%802=%23%25%5E%26%3D%3C%3E%7B%7D%5B%5D%2B%60%5C%22%D0%B7%D0%BD%D0%B0%D1%87%D0%B5%D0%BD%D0%B8%D0%B52#%23%25%5E%3C%3E%7B%7D%5B%5D%60%5C%22", "expected": { "scheme": "scheme-+.scheme1234567890", "authority": { "userInfo": { "user": "@#%^<>{}[]`/?\\\":логин", "password": "@#%^<>{}[]`/?\\\":пароль" }, "host": "xn--@#%^<>{}`/?\\\"-u7k7bq2c", "port": "1234" }, "path": "/#%^<>{}[]`?\\\"путь/#%^<>{}[]`?\\\"путь", "query": { "#%^&=<>{}[]+`\\\"параметр1": "#%^&=<>{}[]+`\\\"значение1", "#%^&=<>{}[]+`\\\"параметр2": "#%^&=<>{}[]+`\\\"значение2" }, "fragment": "#%^<>{}[]`\\\"" } }, { "name": "URI without scheme", "uri": "//%40%23%25%5E%3C%3E%7B%7D%5B%5D%60%2F%3F%5C%22%3A%D0%BB%D0%BE%D0%B3%D0%B8%D0%BD:%40%23%25%5E%3C%3E%7B%7D%5B%5D%60%2F%3F%5C%22%3A%D0%BF%D0%B0%D1%80%D0%BE%D0%BB%D1%8C@xn--%40%23%25%5E%3C%3E%7B%7D%60%2F%3F%5C%22-u7k7bq2c:1234/%23%25%5E%3C%3E%7B%7D%5B%5D%60%3F%5C%22%D0%BF%D1%83%D1%82%D1%8C/%23%25%5E%3C%3E%7B%7D%5B%5D%60%3F%5C%22%D0%BF%D1%83%D1%82%D1%8C?%23%25%5E%26%3D%3C%3E%7B%7D%5B%5D%2B%60%5C%22%D0%BF%D0%B0%D1%80%D0%B0%D0%BC%D0%B5%D1%82%D1%801=%23%25%5E%26%3D%3C%3E%7B%7D%5B%5D%2B%60%5C%22%D0%B7%D0%BD%D0%B0%D1%87%D0%B5%D0%BD%D0%B8%D0%B51&%23%25%5E%26%3D%3C%3E%7B%7D%5B%5D%2B%60%5C%22%D0%BF%D0%B0%D1%80%D0%B0%D0%BC%D0%B5%D1%82%D1%802=%23%25%5E%26%3D%3C%3E%7B%7D%5B%5D%2B%60%5C%22%D0%B7%D0%BD%D0%B0%D1%87%D0%B5%D0%BD%D0%B8%D0%B52#%23%25%5E%3C%3E%7B%7D%5B%5D%60%5C%22", "expected": { "scheme": null, "authority": { "userInfo": { "user": "@#%^<>{}[]`/?\\\":логин", "password": "@#%^<>{}[]`/?\\\":пароль" }, "host": "xn--@#%^<>{}`/?\\\"-u7k7bq2c", "port": "1234" }, "path": "/#%^<>{}[]`?\\\"путь/#%^<>{}[]`?\\\"путь", "query": { "#%^&=<>{}[]+`\\\"параметр1": "#%^&=<>{}[]+`\\\"значение1", "#%^&=<>{}[]+`\\\"параметр2": "#%^&=<>{}[]+`\\\"значение2" }, "fragment": "#%^<>{}[]`\\\"" } }, { "name": "URI user info without password content", "uri": "//%40%23%25%5E%3C%3E%7B%7D%5B%5D%60%2F%3F%5C%22%3A%D0%BB%D0%BE%D0%B3%D0%B8%D0%BD:@xn--%40%23%25%5E%3C%3E%7B%7D%60%2F%3F%5C%22-u7k7bq2c:1234/%23%25%5E%3C%3E%7B%7D%5B%5D%60%3F%5C%22%D0%BF%D1%83%D1%82%D1%8C/%23%25%5E%3C%3E%7B%7D%5B%5D%60%3F%5C%22%D0%BF%D1%83%D1%82%D1%8C?%23%25%5E%26%3D%3C%3E%7B%7D%5B%5D%2B%60%5C%22%D0%BF%D0%B0%D1%80%D0%B0%D0%BC%D0%B5%D1%82%D1%801=%23%25%5E%26%3D%3C%3E%7B%7D%5B%5D%2B%60%5C%22%D0%B7%D0%BD%D0%B0%D1%87%D0%B5%D0%BD%D0%B8%D0%B51&%23%25%5E%26%3D%3C%3E%7B%7D%5B%5D%2B%60%5C%22%D0%BF%D0%B0%D1%80%D0%B0%D0%BC%D0%B5%D1%82%D1%802=%23%25%5E%26%3D%3C%3E%7B%7D%5B%5D%2B%60%5C%22%D0%B7%D0%BD%D0%B0%D1%87%D0%B5%D0%BD%D0%B8%D0%B52#%23%25%5E%3C%3E%7B%7D%5B%5D%60%5C%22", "expected": { "scheme": null, "authority": { "userInfo": { "user": "@#%^<>{}[]`/?\\\":логин", "password": "" }, "host": "xn--@#%^<>{}`/?\\\"-u7k7bq2c", "port": "1234" }, "path": "/#%^<>{}[]`?\\\"путь/#%^<>{}[]`?\\\"путь", "query": { "#%^&=<>{}[]+`\\\"параметр1": "#%^&=<>{}[]+`\\\"значение1", "#%^&=<>{}[]+`\\\"параметр2": "#%^&=<>{}[]+`\\\"значение2" }, "fragment": "#%^<>{}[]`\\\"" } }, { "name": "URI user info without password", "uri": "//%40%23%25%5E%3C%3E%7B%7D%5B%5D%60%2F%3F%5C%22%3A%D0%BB%D0%BE%D0%B3%D0%B8%D0%BD@xn--%40%23%25%5E%3C%3E%7B%7D%60%2F%3F%5C%22-u7k7bq2c:1234/%23%25%5E%3C%3E%7B%7D%5B%5D%60%3F%5C%22%D0%BF%D1%83%D1%82%D1%8C/%23%25%5E%3C%3E%7B%7D%5B%5D%60%3F%5C%22%D0%BF%D1%83%D1%82%D1%8C?%23%25%5E%26%3D%3C%3E%7B%7D%5B%5D%2B%60%5C%22%D0%BF%D0%B0%D1%80%D0%B0%D0%BC%D0%B5%D1%82%D1%801=%23%25%5E%26%3D%3C%3E%7B%7D%5B%5D%2B%60%5C%22%D0%B7%D0%BD%D0%B0%D1%87%D0%B5%D0%BD%D0%B8%D0%B51&%23%25%5E%26%3D%3C%3E%7B%7D%5B%5D%2B%60%5C%22%D0%BF%D0%B0%D1%80%D0%B0%D0%BC%D0%B5%D1%82%D1%802=%23%25%5E%26%3D%3C%3E%7B%7D%5B%5D%2B%60%5C%22%D0%B7%D0%BD%D0%B0%D1%87%D0%B5%D0%BD%D0%B8%D0%B52#%23%25%5E%3C%3E%7B%7D%5B%5D%60%5C%22", "expected": { "scheme": null, "authority": { "userInfo": { "user": "@#%^<>{}[]`/?\\\":логин", "password": null }, "host": "xn--@#%^<>{}`/?\\\"-u7k7bq2c", "port": "1234" }, "path": "/#%^<>{}[]`?\\\"путь/#%^<>{}[]`?\\\"путь", "query": { "#%^&=<>{}[]+`\\\"параметр1": "#%^&=<>{}[]+`\\\"значение1", "#%^&=<>{}[]+`\\\"параметр2": "#%^&=<>{}[]+`\\\"значение2" }, "fragment": "#%^<>{}[]`\\\"" } }, { "name": "URI user info without content", "uri": "//@xn--%40%23%25%5E%3C%3E%7B%7D%60%2F%3F%5C%22-u7k7bq2c:1234/%23%25%5E%3C%3E%7B%7D%5B%5D%60%3F%5C%22%D0%BF%D1%83%D1%82%D1%8C/%23%25%5E%3C%3E%7B%7D%5B%5D%60%3F%5C%22%D0%BF%D1%83%D1%82%D1%8C?%23%25%5E%26%3D%3C%3E%7B%7D%5B%5D%2B%60%5C%22%D0%BF%D0%B0%D1%80%D0%B0%D0%BC%D0%B5%D1%82%D1%801=%23%25%5E%26%3D%3C%3E%7B%7D%5B%5D%2B%60%5C%22%D0%B7%D0%BD%D0%B0%D1%87%D0%B5%D0%BD%D0%B8%D0%B51&%23%25%5E%26%3D%3C%3E%7B%7D%5B%5D%2B%60%5C%22%D0%BF%D0%B0%D1%80%D0%B0%D0%BC%D0%B5%D1%82%D1%802=%23%25%5E%26%3D%3C%3E%7B%7D%5B%5D%2B%60%5C%22%D0%B7%D0%BD%D0%B0%D1%87%D0%B5%D0%BD%D0%B8%D0%B52#%23%25%5E%3C%3E%7B%7D%5B%5D%60%5C%22", "expected": { "scheme": null, "authority": { "userInfo": { "user": null, "password": null }, "host": "xn--@#%^<>{}`/?\\\"-u7k7bq2c", "port": "1234" }, "path": "/#%^<>{}[]`?\\\"путь/#%^<>{}[]`?\\\"путь", "query": { "#%^&=<>{}[]+`\\\"параметр1": "#%^&=<>{}[]+`\\\"значение1", "#%^&=<>{}[]+`\\\"параметр2": "#%^&=<>{}[]+`\\\"значение2" }, "fragment": "#%^<>{}[]`\\\"" } }, { "name": "URI authority without user info", "uri": "//xn--%40%23%25%5E%3C%3E%7B%7D%60%2F%3F%5C%22-u7k7bq2c:1234/%23%25%5E%3C%3E%7B%7D%5B%5D%60%3F%5C%22%D0%BF%D1%83%D1%82%D1%8C/%23%25%5E%3C%3E%7B%7D%5B%5D%60%3F%5C%22%D0%BF%D1%83%D1%82%D1%8C?%23%25%5E%26%3D%3C%3E%7B%7D%5B%5D%2B%60%5C%22%D0%BF%D0%B0%D1%80%D0%B0%D0%BC%D0%B5%D1%82%D1%801=%23%25%5E%26%3D%3C%3E%7B%7D%5B%5D%2B%60%5C%22%D0%B7%D0%BD%D0%B0%D1%87%D0%B5%D0%BD%D0%B8%D0%B51&%23%25%5E%26%3D%3C%3E%7B%7D%5B%5D%2B%60%5C%22%D0%BF%D0%B0%D1%80%D0%B0%D0%BC%D0%B5%D1%82%D1%802=%23%25%5E%26%3D%3C%3E%7B%7D%5B%5D%2B%60%5C%22%D0%B7%D0%BD%D0%B0%D1%87%D0%B5%D0%BD%D0%B8%D0%B52#%23%25%5E%3C%3E%7B%7D%5B%5D%60%5C%22", "expected": { "scheme": null, "authority": { "userInfo": null, "host": "xn--@#%^<>{}`/?\\\"-u7k7bq2c", "port": "1234" }, "path": "/#%^<>{}[]`?\\\"путь/#%^<>{}[]`?\\\"путь", "query": { "#%^&=<>{}[]+`\\\"параметр1": "#%^&=<>{}[]+`\\\"значение1", "#%^&=<>{}[]+`\\\"параметр2": "#%^&=<>{}[]+`\\\"значение2" }, "fragment": "#%^<>{}[]`\\\"" } }, { "name": "URI authority without port content", "uri": "//xn--%40%23%25%5E%3C%3E%7B%7D%60%2F%3F%5C%22-u7k7bq2c:/%23%25%5E%3C%3E%7B%7D%5B%5D%60%3F%5C%22%D0%BF%D1%83%D1%82%D1%8C/%23%25%5E%3C%3E%7B%7D%5B%5D%60%3F%5C%22%D0%BF%D1%83%D1%82%D1%8C?%23%25%5E%26%3D%3C%3E%7B%7D%5B%5D%2B%60%5C%22%D0%BF%D0%B0%D1%80%D0%B0%D0%BC%D0%B5%D1%82%D1%801=%23%25%5E%26%3D%3C%3E%7B%7D%5B%5D%2B%60%5C%22%D0%B7%D0%BD%D0%B0%D1%87%D0%B5%D0%BD%D0%B8%D0%B51&%23%25%5E%26%3D%3C%3E%7B%7D%5B%5D%2B%60%5C%22%D0%BF%D0%B0%D1%80%D0%B0%D0%BC%D0%B5%D1%82%D1%802=%23%25%5E%26%3D%3C%3E%7B%7D%5B%5D%2B%60%5C%22%D0%B7%D0%BD%D0%B0%D1%87%D0%B5%D0%BD%D0%B8%D0%B52#%23%25%5E%3C%3E%7B%7D%5B%5D%60%5C%22", "expected": { "scheme": null, "authority": { "userInfo": null, "host": "xn--@#%^<>{}`/?\\\"-u7k7bq2c", "port": "" }, "path": "/#%^<>{}[]`?\\\"путь/#%^<>{}[]`?\\\"путь", "query": { "#%^&=<>{}[]+`\\\"параметр1": "#%^&=<>{}[]+`\\\"значение1", "#%^&=<>{}[]+`\\\"параметр2": "#%^&=<>{}[]+`\\\"значение2" }, "fragment": "#%^<>{}[]`\\\"" } }, { "name": "URI authority without port", "uri": "//xn--%40%23%25%5E%3C%3E%7B%7D%60%2F%3F%5C%22-u7k7bq2c/%23%25%5E%3C%3E%7B%7D%5B%5D%60%3F%5C%22%D0%BF%D1%83%D1%82%D1%8C/%23%25%5E%3C%3E%7B%7D%5B%5D%60%3F%5C%22%D0%BF%D1%83%D1%82%D1%8C?%23%25%5E%26%3D%3C%3E%7B%7D%5B%5D%2B%60%5C%22%D0%BF%D0%B0%D1%80%D0%B0%D0%BC%D0%B5%D1%82%D1%801=%23%25%5E%26%3D%3C%3E%7B%7D%5B%5D%2B%60%5C%22%D0%B7%D0%BD%D0%B0%D1%87%D0%B5%D0%BD%D0%B8%D0%B51&%23%25%5E%26%3D%3C%3E%7B%7D%5B%5D%2B%60%5C%22%D0%BF%D0%B0%D1%80%D0%B0%D0%BC%D0%B5%D1%82%D1%802=%23%25%5E%26%3D%3C%3E%7B%7D%5B%5D%2B%60%5C%22%D0%B7%D0%BD%D0%B0%D1%87%D0%B5%D0%BD%D0%B8%D0%B52#%23%25%5E%3C%3E%7B%7D%5B%5D%60%5C%22", "expected": { "scheme": null, "authority": { "userInfo": null, "host": "xn--@#%^<>{}`/?\\\"-u7k7bq2c", "port": null }, "path": "/#%^<>{}[]`?\\\"путь/#%^<>{}[]`?\\\"путь", "query": { "#%^&=<>{}[]+`\\\"параметр1": "#%^&=<>{}[]+`\\\"значение1", "#%^&=<>{}[]+`\\\"параметр2": "#%^&=<>{}[]+`\\\"значение2" }, "fragment": "#%^<>{}[]`\\\"" } }, { "name": "URI without authority content", "uri": "///%23%25%5E%3C%3E%7B%7D%5B%5D%60%3F%5C%22%D0%BF%D1%83%D1%82%D1%8C/%23%25%5E%3C%3E%7B%7D%5B%5D%60%3F%5C%22%D0%BF%D1%83%D1%82%D1%8C?%23%25%5E%26%3D%3C%3E%7B%7D%5B%5D%2B%60%5C%22%D0%BF%D0%B0%D1%80%D0%B0%D0%BC%D0%B5%D1%82%D1%801=%23%25%5E%26%3D%3C%3E%7B%7D%5B%5D%2B%60%5C%22%D0%B7%D0%BD%D0%B0%D1%87%D0%B5%D0%BD%D0%B8%D0%B51&%23%25%5E%26%3D%3C%3E%7B%7D%5B%5D%2B%60%5C%22%D0%BF%D0%B0%D1%80%D0%B0%D0%BC%D0%B5%D1%82%D1%802=%23%25%5E%26%3D%3C%3E%7B%7D%5B%5D%2B%60%5C%22%D0%B7%D0%BD%D0%B0%D1%87%D0%B5%D0%BD%D0%B8%D0%B52#%23%25%5E%3C%3E%7B%7D%5B%5D%60%5C%22", "expected": { "scheme": null, "authority": { "userInfo": null, "host": null, "port": null }, "path": "/#%^<>{}[]`?\\\"путь/#%^<>{}[]`?\\\"путь", "query": { "#%^&=<>{}[]+`\\\"параметр1": "#%^&=<>{}[]+`\\\"значение1", "#%^&=<>{}[]+`\\\"параметр2": "#%^&=<>{}[]+`\\\"значение2" }, "fragment": "#%^<>{}[]`\\\"" } }, { "name": "URI without authority", "uri": "/%23%25%5E%3C%3E%7B%7D%5B%5D%60%3F%5C%22%D0%BF%D1%83%D1%82%D1%8C/%23%25%5E%3C%3E%7B%7D%5B%5D%60%3F%5C%22%D0%BF%D1%83%D1%82%D1%8C?%23%25%5E%26%3D%3C%3E%7B%7D%5B%5D%2B%60%5C%22%D0%BF%D0%B0%D1%80%D0%B0%D0%BC%D0%B5%D1%82%D1%801=%23%25%5E%26%3D%3C%3E%7B%7D%5B%5D%2B%60%5C%22%D0%B7%D0%BD%D0%B0%D1%87%D0%B5%D0%BD%D0%B8%D0%B51&%23%25%5E%26%3D%3C%3E%7B%7D%5B%5D%2B%60%5C%22%D0%BF%D0%B0%D1%80%D0%B0%D0%BC%D0%B5%D1%82%D1%802=%23%25%5E%26%3D%3C%3E%7B%7D%5B%5D%2B%60%5C%22%D0%B7%D0%BD%D0%B0%D1%87%D0%B5%D0%BD%D0%B8%D0%B52#%23%25%5E%3C%3E%7B%7D%5B%5D%60%5C%22", "expected": { "scheme": null, "authority": null, "path": "/#%^<>{}[]`?\\\"путь/#%^<>{}[]`?\\\"путь", "query": { "#%^&=<>{}[]+`\\\"параметр1": "#%^&=<>{}[]+`\\\"значение1", "#%^&=<>{}[]+`\\\"параметр2": "#%^&=<>{}[]+`\\\"значение2" }, "fragment": "#%^<>{}[]`\\\"" } }, { "name": "URI without fragment content", "uri": "/%23%25%5E%3C%3E%7B%7D%5B%5D%60%3F%5C%22%D0%BF%D1%83%D1%82%D1%8C/%23%25%5E%3C%3E%7B%7D%5B%5D%60%3F%5C%22%D0%BF%D1%83%D1%82%D1%8C?%23%25%5E%26%3D%3C%3E%7B%7D%5B%5D%2B%60%5C%22%D0%BF%D0%B0%D1%80%D0%B0%D0%BC%D0%B5%D1%82%D1%801=%23%25%5E%26%3D%3C%3E%7B%7D%5B%5D%2B%60%5C%22%D0%B7%D0%BD%D0%B0%D1%87%D0%B5%D0%BD%D0%B8%D0%B51&%23%25%5E%26%3D%3C%3E%7B%7D%5B%5D%2B%60%5C%22%D0%BF%D0%B0%D1%80%D0%B0%D0%BC%D0%B5%D1%82%D1%802=%23%25%5E%26%3D%3C%3E%7B%7D%5B%5D%2B%60%5C%22%D0%B7%D0%BD%D0%B0%D1%87%D0%B5%D0%BD%D0%B8%D0%B52#", "expected": { "scheme": null, "authority": null, "path": "/#%^<>{}[]`?\\\"путь/#%^<>{}[]`?\\\"путь", "query": { "#%^&=<>{}[]+`\\\"параметр1": "#%^&=<>{}[]+`\\\"значение1", "#%^&=<>{}[]+`\\\"параметр2": "#%^&=<>{}[]+`\\\"значение2" }, "fragment": "" } }, { "name": "URI without fragment", "uri": "/%23%25%5E%3C%3E%7B%7D%5B%5D%60%3F%5C%22%D0%BF%D1%83%D1%82%D1%8C/%23%25%5E%3C%3E%7B%7D%5B%5D%60%3F%5C%22%D0%BF%D1%83%D1%82%D1%8C?%23%25%5E%26%3D%3C%3E%7B%7D%5B%5D%2B%60%5C%22%D0%BF%D0%B0%D1%80%D0%B0%D0%BC%D0%B5%D1%82%D1%801=%23%25%5E%26%3D%3C%3E%7B%7D%5B%5D%2B%60%5C%22%D0%B7%D0%BD%D0%B0%D1%87%D0%B5%D0%BD%D0%B8%D0%B51&%23%25%5E%26%3D%3C%3E%7B%7D%5B%5D%2B%60%5C%22%D0%BF%D0%B0%D1%80%D0%B0%D0%BC%D0%B5%D1%82%D1%802=%23%25%5E%26%3D%3C%3E%7B%7D%5B%5D%2B%60%5C%22%D0%B7%D0%BD%D0%B0%D1%87%D0%B5%D0%BD%D0%B8%D0%B52", "expected": { "scheme": null, "authority": null, "path": "/#%^<>{}[]`?\\\"путь/#%^<>{}[]`?\\\"путь", "query": { "#%^&=<>{}[]+`\\\"параметр1": "#%^&=<>{}[]+`\\\"значение1", "#%^&=<>{}[]+`\\\"параметр2": "#%^&=<>{}[]+`\\\"значение2" }, "fragment": null } }, { "name": "URI without query content", "uri": "/%23%25%5E%3C%3E%7B%7D%5B%5D%60%3F%5C%22%D0%BF%D1%83%D1%82%D1%8C/%23%25%5E%3C%3E%7B%7D%5B%5D%60%3F%5C%22%D0%BF%D1%83%D1%82%D1%8C?", "expected": { "scheme": null, "authority": null, "path": "/#%^<>{}[]`?\\\"путь/#%^<>{}[]`?\\\"путь", "query": {}, "fragment": null } }, { "name": "URI without query", "uri": "/%23%25%5E%3C%3E%7B%7D%5B%5D%60%3F%5C%22%D0%BF%D1%83%D1%82%D1%8C/%23%25%5E%3C%3E%7B%7D%5B%5D%60%3F%5C%22%D0%BF%D1%83%D1%82%D1%8C", "expected": { "scheme": null, "authority": null, "path": "/#%^<>{}[]`?\\\"путь/#%^<>{}[]`?\\\"путь", "query": null, "fragment": null } }, { "name": "URI without query and with %2F in path", "uri": "/%23%25%5E%3C%3E%7B%7D%5B%5D%60%2F%3F%5C%22%D0%BF%D1%83%D1%82%D1%8C/%23%25%5E%3C%3E%7B%7D%5B%5D%60%2F%3F%5C%22%D0%BF%D1%83%D1%82%D1%8C", "expected": { "scheme": null, "authority": null, "path": "/#%^<>{}[]`%2F?\\\"путь/#%^<>{}[]`%2F?\\\"путь", "query": null, "fragment": null } }, { "name": "URI with another URI in the path", "uri": "http://localhost:1337/pages/http:%2F%2Fstackoverflow.com%2F", "expected": { "scheme": "http", "authority": { "userInfo": null, "port": "1337", "host": "localhost" }, "path": "/pages/http:%2F%2Fstackoverflow.com%2F", "query": null, "fragment": null } } ] }