diff options
Diffstat (limited to 'test/uri.cc')
| -rw-r--r-- | test/uri.cc | 23 |
1 files changed, 23 insertions, 0 deletions
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 <gtest/gtest.h> +#include <string> + +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")); +} |
