summaryrefslogtreecommitdiff
path: root/test
diff options
context:
space:
mode:
Diffstat (limited to 'test')
-rw-r--r--test/uri.cc23
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"));
+}