diff options
Diffstat (limited to 'http/ut/utility_test.cpp')
-rw-r--r-- | http/ut/utility_test.cpp | 40 |
1 files changed, 40 insertions, 0 deletions
diff --git a/http/ut/utility_test.cpp b/http/ut/utility_test.cpp index a81adf5198..191a16af86 100644 --- a/http/ut/utility_test.cpp +++ b/http/ut/utility_test.cpp @@ -16,3 +16,43 @@ TEST(Utility, Base64DecodeNonAscii) std::string result; EXPECT_FALSE(crow::utility::base64Decode(junkString, result)); } + +TEST(Utility, Base64EncodeString) +{ + using namespace std::string_literals; + std::string encoded; + + encoded = crow::utility::base64encode(""); + EXPECT_EQ(encoded, ""); + + encoded = crow::utility::base64encode("f"); + EXPECT_EQ(encoded, "Zg=="); + + encoded = crow::utility::base64encode("f0"); + EXPECT_EQ(encoded, "ZjA="); + + encoded = crow::utility::base64encode("f0\0"s); + EXPECT_EQ(encoded, "ZjAA"); + + encoded = crow::utility::base64encode("f0\0 "s); + EXPECT_EQ(encoded, "ZjAAIA=="); + + encoded = crow::utility::base64encode("f0\0 B"s); + EXPECT_EQ(encoded, "ZjAAIEI="); + + encoded = crow::utility::base64encode("f0\0 Ba"s); + EXPECT_EQ(encoded, "ZjAAIEJh"); + + encoded = crow::utility::base64encode("f0\0 Bar"s); + EXPECT_EQ(encoded, "ZjAAIEJhcg=="); +} + +TEST(Utility, Base64EncodeDecodeString) +{ + using namespace std::string_literals; + std::string data("Data fr\0m 90 reading a \nFile"s); + std::string encoded = crow::utility::base64encode(data); + std::string decoded; + EXPECT_TRUE(crow::utility::base64Decode(encoded, decoded)); + EXPECT_EQ(data, decoded); +} |