2012-01-06 15:55:50 +00:00

57 lines
2.2 KiB
C++

#include <gtest/gtest.h>
#include "base64.h"
#include "test_utils.h"
using namespace std;
using namespace Chromaprint;
TEST(Base64, Base64Encode)
{
ASSERT_EQ("eA", Base64Encode("x"));
ASSERT_EQ("eHg", Base64Encode("xx"));
ASSERT_EQ("eHh4", Base64Encode("xxx"));
ASSERT_EQ("eHh4eA", Base64Encode("xxxx"));
ASSERT_EQ("eHh4eHg", Base64Encode("xxxxx"));
ASSERT_EQ("eHh4eHh4", Base64Encode("xxxxxx"));
ASSERT_EQ("_-4", Base64Encode("\xff\xee"));
}
TEST(Base64, Base64Decode)
{
ASSERT_EQ("x", Base64Decode("eA"));
ASSERT_EQ("xx", Base64Decode("eHg"));
ASSERT_EQ("xxx", Base64Decode("eHh4"));
ASSERT_EQ("xxxx", Base64Decode("eHh4eA"));
ASSERT_EQ("xxxxx", Base64Decode("eHh4eHg"));
ASSERT_EQ("xxxxxx", Base64Decode("eHh4eHh4"));
ASSERT_EQ("\xff\xee", Base64Decode("_-4"));
}
TEST(Base64, Base64EncodeLong)
{
char original[] = {
1, 0, 1, 207, 17, 181, 36, 18, 19, 37, 65, 15, 31, 197, 149, 161, 63, 33, 22,
60, 141, 27, 202, 35, 184, 47, 254, 227, 135, 135, 11, 58, 139, 208, 65, 127,
52, 167, 241, 31, 99, 182, 25, 159, 96, 70, 71, 160, 251, 168, 75, 132, 185,
112, 230, 193, 133, 252, 42, 126, 66, 91, 121, 60, 135, 79, 24, 185, 210, 28,
199, 133, 255, 240, 113, 101, 67, 199, 23, 225, 181, 160, 121, 140, 67, 123,
161, 229, 184, 137, 30, 205, 135, 119, 70, 94, 252, 71, 120, 150
};
char encoded[] = "AQABzxG1JBITJUEPH8WVoT8hFjyNG8ojuC_-44eHCzqL0EF_NKfxH2O2GZ9gRkeg-6hLhLlw5sGF_Cp-Qlt5PIdPGLnSHMeF__BxZUPHF-G1oHmMQ3uh5biJHs2Hd0Ze_Ed4lg";
ASSERT_EQ(encoded, Base64Encode(string(original, NELEMS(original))));
}
TEST(Base64, Base64DecodeLong)
{
char original[] = {
1, 0, 1, 207, 17, 181, 36, 18, 19, 37, 65, 15, 31, 197, 149, 161, 63, 33, 22,
60, 141, 27, 202, 35, 184, 47, 254, 227, 135, 135, 11, 58, 139, 208, 65, 127,
52, 167, 241, 31, 99, 182, 25, 159, 96, 70, 71, 160, 251, 168, 75, 132, 185,
112, 230, 193, 133, 252, 42, 126, 66, 91, 121, 60, 135, 79, 24, 185, 210, 28,
199, 133, 255, 240, 113, 101, 67, 199, 23, 225, 181, 160, 121, 140, 67, 123,
161, 229, 184, 137, 30, 205, 135, 119, 70, 94, 252, 71, 120, 150
};
char encoded[] = "AQABzxG1JBITJUEPH8WVoT8hFjyNG8ojuC_-44eHCzqL0EF_NKfxH2O2GZ9gRkeg-6hLhLlw5sGF_Cp-Qlt5PIdPGLnSHMeF__BxZUPHF-G1oHmMQ3uh5biJHs2Hd0Ze_Ed4lg";
ASSERT_EQ(string(original, NELEMS(original)), Base64Decode(string(encoded)));
}