diff options
author | Ed Tanous <ed.tanous@intel.com> | 2017-03-01 03:05:13 +0300 |
---|---|---|
committer | Ed Tanous <ed.tanous@intel.com> | 2017-03-01 03:05:13 +0300 |
commit | f927347406ef6ea49edf710897b213ccd8c8e284 (patch) | |
tree | f5fa40edeb9e177e07ff6b58939e9315ba667d5e /src/base64_test.cpp | |
parent | 5f34a9c5820b4a60352f40cb7fa86011012b9801 (diff) | |
download | bmcweb-f927347406ef6ea49edf710897b213ccd8c8e284.tar.xz |
incremental
Diffstat (limited to 'src/base64_test.cpp')
-rw-r--r-- | src/base64_test.cpp | 62 |
1 files changed, 62 insertions, 0 deletions
diff --git a/src/base64_test.cpp b/src/base64_test.cpp new file mode 100644 index 0000000000..3484976034 --- /dev/null +++ b/src/base64_test.cpp @@ -0,0 +1,62 @@ +#include "base64.hpp" +#include "gtest/gtest.h" +#include "big_list_of_naughty_strings.hpp" + +// Tests that Base64 basic strings work +TEST(Base64, EncodeBasicString) +{ + std::string output; + EXPECT_TRUE(base64::base64_encode("Foo", output)); +} + +// Tests the test vectors available in the base64 spec +TEST(Base64, EncodeRFC4648) +{ + std::string output; + EXPECT_TRUE(base64::base64_encode("", output)); + EXPECT_EQ(output, ""); + EXPECT_TRUE(base64::base64_encode("f", output)); + EXPECT_EQ(output, "Zg=="); + EXPECT_TRUE(base64::base64_encode("fo", output)); + EXPECT_EQ(output, "Zm8="); + EXPECT_TRUE(base64::base64_encode("foo", output)); + EXPECT_EQ(output, "Zm9v"); + EXPECT_TRUE(base64::base64_encode("foob", output)); + EXPECT_EQ(output, "Zm9vYg=="); + EXPECT_TRUE(base64::base64_encode("fooba", output)); + EXPECT_EQ(output, "Zm9vYmE="); + EXPECT_TRUE(base64::base64_encode("foobar", output)); + EXPECT_EQ(output, "Zm9vYmFy"); +} + +// Tests the test vectors available in the base64 spec +TEST(Base64, DecodeRFC4648) +{ + std::string output; + EXPECT_TRUE(base64::base64_decode("", output)); + EXPECT_EQ(output, ""); + EXPECT_TRUE(base64::base64_decode("Zg==", output)); + EXPECT_EQ(output, "f"); + EXPECT_TRUE(base64::base64_decode("Zm8=", output)); + EXPECT_EQ(output, "fo"); + EXPECT_TRUE(base64::base64_decode("Zm9v", output)); + EXPECT_EQ(output, "foo"); + EXPECT_TRUE(base64::base64_decode("Zm9vYg==", output)); + EXPECT_EQ(output, "foob"); + EXPECT_TRUE(base64::base64_decode("Zm9vYmE=", output)); + EXPECT_EQ(output, "fooba"); + EXPECT_TRUE(base64::base64_decode("Zm9vYmFy", output)); + EXPECT_EQ(output, "foobar"); +} + +// Tests using pathalogical cases for all escapings +TEST(Base64, NaugtyStrings){ + std::string base64_string; + std::string decoded_string; + for (auto& str: naughty_strings){ + EXPECT_TRUE(base64::base64_encode(str, base64_string)); + EXPECT_TRUE(base64::base64_decode(base64_string, decoded_string)); + EXPECT_EQ(str, decoded_string); + } +} + |