catberry-uri
Version:
URI parser strictly according to RFC 3986
272 lines (271 loc) • 15 kB
JSON
{
"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
}
}
]
}