#include "utility.hpp" #include "gmock/gmock.h" TEST(Utility, Base64DecodeAuthString) { std::string authString("dXNlcm40bWU6cGFzc3cwcmQ="); std::string result; EXPECT_TRUE(crow::utility::base64Decode(authString, result)); EXPECT_EQ(result, "usern4me:passw0rd"); } TEST(Utility, Base64DecodeNonAscii) { std::string junkString("\xff\xee\xdd\xcc\x01\x11\x22\x33"); 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); }