Parse standard absolute URL paths

This commit is contained in:
udo
2026-07-13 09:31:45 +00:00
parent fe88d4143e
commit c1039f5094
3 changed files with 7 additions and 13 deletions
+5 -1
View File
@@ -33,6 +33,8 @@ RENDER(Request& context)
String decoded = uri_decode(encoded);
String malformed_percent = uri_decode("% %A %GG ok%20done");
URI empty_uri = parse_uri("");
URI full_uri = parse_uri("https://example.test/docs/page?name=Ada#part");
URI port_uri = parse_uri("https://example.test:8443/status");
String generated_session = session_id_create();
String csrf = "";
String csrf_rotated = "";
@@ -60,6 +62,8 @@ RENDER(Request& context)
check("uri_encode() / uri_decode()", decoded == uri_input, encoded + " => " + decoded);
check("uri_decode() malformed percent literals", malformed_percent == "% %A %GG ok done", malformed_percent);
check("parse_uri() empty input", empty_uri.parts["raw"] == "", var_dump(empty_uri));
check("parse_uri() standard URL", full_uri.parts["error"] == "" && full_uri.parts["scheme"] == "https" && full_uri.parts["host"] == "example.test" && full_uri.parts["path"] == "docs/page" && full_uri.query["name"] == "Ada" && full_uri.parts["fragment"] == "part", var_dump(full_uri));
check("parse_uri() URL with port", port_uri.parts["error"] == "" && port_uri.parts["host"] == "example.test" && port_uri.parts["port"] == "8443" && port_uri.parts["path"] == "status", var_dump(port_uri));
check("parse_query()", query["alpha"] == "1" && query["beta"] == "two words" && query["token"] == "a=b" && query["keyless"] == "" && query["empty"] == "" && query["trailing"] == "ok" && query.count("") == 0, query_dump);
StringMap encoded_query_map;
encoded_query_map["alpha"] = "one two";
@@ -86,4 +90,4 @@ RENDER(Request& context)
site_tests_summary(passed, failed, skipped, "This page mutates only response headers and the test cookie/session namespace used by the suite.");
site_tests_page_end();
}
}