40 lines
1.6 KiB
C++
40 lines
1.6 KiB
C++
#include "TestSuite.h"
|
|
#include "../Source/JSON_Base64.h"
|
|
|
|
#if defined(JSON_BINARY) || defined(JSON_EXPOSE_BASE64)
|
|
void TestSuite::TestBase64(void){
|
|
UnitTest::SetPrefix("TestBinary.cpp - Base 64");
|
|
|
|
assertEquals(JSONBase64::json_decode64(JSONBase64::json_encode64((unsigned char *)"A", 1)), "A");
|
|
assertEquals(JSONBase64::json_decode64(JSONBase64::json_encode64((unsigned char *)"AB", 2)), "AB");
|
|
assertEquals(JSONBase64::json_decode64(JSONBase64::json_encode64((unsigned char *)"ABC", 3)), "ABC");
|
|
assertEquals(JSONBase64::json_decode64(JSONBase64::json_encode64((unsigned char *)"ABCD", 4)), "ABCD");
|
|
#ifdef JSON_SAFE
|
|
assertEquals(JSONBase64::json_decode64(JSONBase64::json_encode64((unsigned char *)"", 0)), "");
|
|
assertEquals(JSONBase64::json_decode64(JSON_TEXT("123!abc")), "");
|
|
assertEquals(JSONBase64::json_decode64(JSON_TEXT("123=abc")), "");
|
|
assertEquals(JSONBase64::json_decode64(JSON_TEXT("123abc===")), "");
|
|
#endif
|
|
|
|
unsigned char temp[255];
|
|
for(unsigned int i = 0; i < 255; ++i){
|
|
temp[i] = (unsigned char)i;
|
|
}
|
|
json_string ts = JSONBase64::json_encode64(temp, 255);
|
|
std::string rs = JSONBase64::json_decode64(ts);
|
|
assertEquals(rs.size(), 255);
|
|
assertEquals(memcmp(rs.data(), temp, 255), 0);
|
|
|
|
#if defined(JSON_LIBRARY) && defined(JSON_EXPOSE_BASE64)
|
|
json_char * test = json_encode64(temp, 255);
|
|
assertNotNull(test);
|
|
unsigned long _size;
|
|
void * bin = json_decode64(test, & _size);
|
|
assertNotNull(bin);
|
|
assertEquals(_size, 255);
|
|
assertEquals(memcmp(bin, temp, 255), 0);
|
|
json_free(test);
|
|
json_free(bin);
|
|
#endif
|
|
}
|
|
#endif
|