From 4dddfd622977f84f0cf41847aec9e728d02bec65 Mon Sep 17 00:00:00 2001 From: Joel Klinghed Date: Mon, 20 Oct 2025 22:01:05 +0200 Subject: uri: New module Decode URI encoded string, validating both hex and that encoded data is valid UTF-8. --- test/uri.cc | 23 +++++++++++++++++++++++ 1 file changed, 23 insertions(+) create mode 100644 test/uri.cc (limited to 'test') diff --git a/test/uri.cc b/test/uri.cc new file mode 100644 index 0000000..44366b9 --- /dev/null +++ b/test/uri.cc @@ -0,0 +1,23 @@ +#include "uri.hh" + +#include +#include + +TEST(uri, empty) { + std::string tmp; + EXPECT_EQ("", uri::decode("", tmp).value_or("error")); +} + +TEST(uri, example) { + std::string tmp; + EXPECT_EQ("?x=test", uri::decode("%3Fx%3Dtest", tmp).value_or("error")); + EXPECT_EQ( + "шеллы", + uri::decode("%D1%88%D0%B5%D0%BB%D0%BB%D1%8B", tmp).value_or("error")); + EXPECT_EQ("JavaScript_шеллы", + uri::decode("JavaScript_%D1%88%D0%B5%D0%BB%D0%BB%D1%8B", tmp) + .value_or("error")); + EXPECT_FALSE(uri::decode("%E0%A4%A", tmp).has_value()); + EXPECT_EQ("search+query (correct)", + uri::decode("search+query%20%28correct%29", tmp).value_or("error")); +} -- cgit v1.2.3-70-g09d2