TestBinary.cpp 1.6 KB

12345678910111213141516171819202122232425262728293031323334353637383940
  1. #include "TestSuite.h"
  2. #include "../Source/JSON_Base64.h"
  3. #if defined(JSON_BINARY) || defined(JSON_EXPOSE_BASE64)
  4. void TestSuite::TestBase64(void){
  5. UnitTest::SetPrefix("TestBinary.cpp - Base 64");
  6. assertEquals(JSONBase64::json_decode64(JSONBase64::json_encode64((unsigned char *)"A", 1)), "A");
  7. assertEquals(JSONBase64::json_decode64(JSONBase64::json_encode64((unsigned char *)"AB", 2)), "AB");
  8. assertEquals(JSONBase64::json_decode64(JSONBase64::json_encode64((unsigned char *)"ABC", 3)), "ABC");
  9. assertEquals(JSONBase64::json_decode64(JSONBase64::json_encode64((unsigned char *)"ABCD", 4)), "ABCD");
  10. #ifdef JSON_SAFE
  11. assertEquals(JSONBase64::json_decode64(JSONBase64::json_encode64((unsigned char *)"", 0)), "");
  12. assertEquals(JSONBase64::json_decode64(JSON_TEXT("123!abc")), "");
  13. assertEquals(JSONBase64::json_decode64(JSON_TEXT("123=abc")), "");
  14. assertEquals(JSONBase64::json_decode64(JSON_TEXT("123abc===")), "");
  15. #endif
  16. unsigned char temp[255];
  17. for(unsigned int i = 0; i < 255; ++i){
  18. temp[i] = (unsigned char)i;
  19. }
  20. json_string ts = JSONBase64::json_encode64(temp, 255);
  21. std::string rs = JSONBase64::json_decode64(ts);
  22. assertEquals(rs.size(), 255);
  23. assertEquals(memcmp(rs.data(), temp, 255), 0);
  24. #if defined(JSON_LIBRARY) && defined(JSON_EXPOSE_BASE64)
  25. json_char * test = json_encode64(temp, 255);
  26. assertNotNull(test);
  27. unsigned long _size;
  28. void * bin = json_decode64(test, & _size);
  29. assertNotNull(bin);
  30. assertEquals(_size, 255);
  31. assertEquals(memcmp(bin, temp, 255), 0);
  32. json_free(test);
  33. json_free(bin);
  34. #endif
  35. }
  36. #endif