| 12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849 | 
							- #include "detail/base64.h"
 
- #include <gtest/gtest.h>
 
- #include <string>
 
- namespace prometheus {
 
- namespace {
 
- struct TestVector {
 
-   const std::string decoded;
 
-   const std::string encoded;
 
- };
 
- const TestVector testVector[] = {
 
-     {"", ""},
 
-     {"f", "Zg=="},
 
-     {"fo", "Zm8="},
 
-     {"foo", "Zm9v"},
 
-     {"foob", "Zm9vYg=="},
 
-     {"fooba", "Zm9vYmE="},
 
-     {"foobar", "Zm9vYmFy"},
 
- };
 
- const unsigned nVectors = sizeof(testVector) / sizeof(testVector[0]);
 
- using namespace testing;
 
- TEST(Base64Test, decodeTest) {
 
-   for (unsigned i = 0; i < nVectors; ++i) {
 
-     std::string decoded = detail::base64_decode(testVector[i].encoded);
 
-     EXPECT_EQ(testVector[i].decoded, decoded);
 
-   }
 
- }
 
- TEST(Base64Test, rejectInvalidSymbols) {
 
-   EXPECT_ANY_THROW(detail::base64_decode("...."));
 
- }
 
- TEST(Base64Test, rejectInvalidInputSize) {
 
-   EXPECT_ANY_THROW(detail::base64_decode("ABC"));
 
- }
 
- TEST(Base64Test, rejectInvalidPadding) {
 
-   EXPECT_ANY_THROW(detail::base64_decode("A==="));
 
- }
 
- }  // namespace
 
- }  // namespace prometheus
 
 
  |