Base32Test.cc 1.7 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556
  1. #include "base32.h"
  2. #include <cppunit/extensions/HelperMacros.h>
  3. #include "util.h"
  4. namespace aria2 {
  5. class Base32Test : public CppUnit::TestFixture {
  6. CPPUNIT_TEST_SUITE(Base32Test);
  7. CPPUNIT_TEST(testEncode);
  8. CPPUNIT_TEST(testDecode);
  9. CPPUNIT_TEST_SUITE_END();
  10. public:
  11. void testEncode();
  12. void testDecode();
  13. };
  14. CPPUNIT_TEST_SUITE_REGISTRATION(Base32Test);
  15. void Base32Test::testEncode()
  16. {
  17. CPPUNIT_ASSERT_EQUAL(std::string(), base32::encode(""));
  18. CPPUNIT_ASSERT_EQUAL(std::string("GE======"), base32::encode("1"));
  19. CPPUNIT_ASSERT_EQUAL(std::string("GEZA===="), base32::encode("12"));
  20. CPPUNIT_ASSERT_EQUAL(std::string("GEZDG==="), base32::encode("123"));
  21. CPPUNIT_ASSERT_EQUAL(std::string("GEZDGNA="), base32::encode("1234"));
  22. CPPUNIT_ASSERT_EQUAL(std::string("GEZDGNBV"), base32::encode("12345"));
  23. std::string s = "248d0a1cd08284";
  24. CPPUNIT_ASSERT_EQUAL(std::string("ESGQUHGQQKCA===="),
  25. base32::encode(util::fromHex(s.begin(), s.end())));
  26. }
  27. void Base32Test::testDecode()
  28. {
  29. std::string s = "";
  30. CPPUNIT_ASSERT_EQUAL(std::string(), base32::decode(s.begin(), s.end()));
  31. s = "GE======";
  32. CPPUNIT_ASSERT_EQUAL(std::string("1"), base32::decode(s.begin(), s.end()));
  33. s = "GEZA====";
  34. CPPUNIT_ASSERT_EQUAL(std::string("12"), base32::decode(s.begin(), s.end()));
  35. s = "GEZDG===";
  36. CPPUNIT_ASSERT_EQUAL(std::string("123"), base32::decode(s.begin(), s.end()));
  37. s = "GEZDGNA=";
  38. CPPUNIT_ASSERT_EQUAL(std::string("1234"), base32::decode(s.begin(), s.end()));
  39. s = "GEZDGNBV";
  40. CPPUNIT_ASSERT_EQUAL(std::string("12345"),
  41. base32::decode(s.begin(), s.end()));
  42. s = "gezdgnbv";
  43. CPPUNIT_ASSERT_EQUAL(std::string("12345"),
  44. base32::decode(s.begin(), s.end()));
  45. }
  46. } // namespace aria2