X-Git-Url: https://git.saurik.com/wxWidgets.git/blobdiff_plain/7bac0684f586a7d2a0601f57407402a735bc75b0..5dec941a5ba3c08870ab4b415dd6e5be368fa0f0:/tests/base64/base64.cpp diff --git a/tests/base64/base64.cpp b/tests/base64/base64.cpp index a63512aca2..9d7475a627 100644 --- a/tests/base64/base64.cpp +++ b/tests/base64/base64.cpp @@ -111,7 +111,7 @@ private: // register in the unnamed registry so that these tests are run by default CPPUNIT_TEST_SUITE_REGISTRATION( Base64TestCase ); -// also include in it's own registry so that these tests can be run alone +// also include in its own registry so that these tests can be run alone CPPUNIT_TEST_SUITE_NAMED_REGISTRATION( Base64TestCase, "Base64TestCase" ); void Base64TestCase::EncodeDecodeEmpty() @@ -131,7 +131,7 @@ void Base64TestCase::EncodeDecodeEmpty() CPPUNIT_ASSERT(resultEmpty.empty()); bufmt = wxBase64Decode(resultEmpty); - WX_ASSERT_SIZET_EQUAL(0, bufmt.GetDataLen()); + CPPUNIT_ASSERT_EQUAL(0, bufmt.GetDataLen()); } void Base64TestCase::EncodeDecodeA() @@ -140,8 +140,15 @@ void Base64TestCase::EncodeDecodeA() CPPUNIT_ASSERT_EQUAL(wxString("QQ=="), str); wxMemoryBuffer buf = wxBase64Decode(str); - WX_ASSERT_SIZET_EQUAL(1, buf.GetDataLen()); + CPPUNIT_ASSERT_EQUAL(1, buf.GetDataLen()); CPPUNIT_ASSERT_EQUAL('A', *(char *)buf.GetData()); + + char cbuf[10]; + memset(cbuf, (char)-1, sizeof(cbuf)); + CPPUNIT_ASSERT_EQUAL( 1, wxBase64Decode(cbuf, 1, str) ); + CPPUNIT_ASSERT_EQUAL( 'A', cbuf[0] ); + CPPUNIT_ASSERT_EQUAL( (char)-1, cbuf[1] ); + CPPUNIT_ASSERT_EQUAL( (char)-1, cbuf[2] ); } void Base64TestCase::EncodeDecodeAB() @@ -150,9 +157,18 @@ void Base64TestCase::EncodeDecodeAB() CPPUNIT_ASSERT_EQUAL(wxString("QUI="), str); wxMemoryBuffer buf = wxBase64Decode(str); - WX_ASSERT_SIZET_EQUAL(2, buf.GetDataLen()); + CPPUNIT_ASSERT_EQUAL(2, buf.GetDataLen()); CPPUNIT_ASSERT_EQUAL('A', buf[0]); CPPUNIT_ASSERT_EQUAL('B', buf[1]); + + char cbuf[10]; + memset(cbuf, (char)-1, sizeof(cbuf)); + CPPUNIT_ASSERT_EQUAL( wxCONV_FAILED, wxBase64Decode(cbuf, 1, str) ); + CPPUNIT_ASSERT_EQUAL( 2, wxBase64Decode(cbuf, 2, str) ); + CPPUNIT_ASSERT_EQUAL( 'A', cbuf[0] ); + CPPUNIT_ASSERT_EQUAL( 'B', cbuf[1] ); + CPPUNIT_ASSERT_EQUAL( (char)-1, cbuf[2] ); + CPPUNIT_ASSERT_EQUAL( (char)-1, cbuf[3] ); } void Base64TestCase::EncodeDecodeABC() @@ -161,10 +177,20 @@ void Base64TestCase::EncodeDecodeABC() CPPUNIT_ASSERT_EQUAL(wxString("QUJD"), str); wxMemoryBuffer buf = wxBase64Decode(str); - WX_ASSERT_SIZET_EQUAL(3, buf.GetDataLen()); + CPPUNIT_ASSERT_EQUAL(3, buf.GetDataLen()); CPPUNIT_ASSERT_EQUAL('A', buf[0]); CPPUNIT_ASSERT_EQUAL('B', buf[1]); CPPUNIT_ASSERT_EQUAL('C', buf[2]); + + char cbuf[10]; + memset(cbuf, (char)-1, sizeof(cbuf)); + CPPUNIT_ASSERT_EQUAL( wxCONV_FAILED, wxBase64Decode(cbuf, 2, str) ); + CPPUNIT_ASSERT_EQUAL( 3, wxBase64Decode(cbuf, 3, str) ); + CPPUNIT_ASSERT_EQUAL( 'A', cbuf[0] ); + CPPUNIT_ASSERT_EQUAL( 'B', cbuf[1] ); + CPPUNIT_ASSERT_EQUAL( 'C', cbuf[2] ); + CPPUNIT_ASSERT_EQUAL( (char)-1, cbuf[3] ); + CPPUNIT_ASSERT_EQUAL( (char)-1, cbuf[4] ); } void Base64TestCase::EncodeDecodeABCD() @@ -173,11 +199,22 @@ void Base64TestCase::EncodeDecodeABCD() CPPUNIT_ASSERT_EQUAL(wxString("QUJDRA=="), str); wxMemoryBuffer buf = wxBase64Decode(str); - WX_ASSERT_SIZET_EQUAL(4, buf.GetDataLen()); + CPPUNIT_ASSERT_EQUAL(4, buf.GetDataLen()); CPPUNIT_ASSERT_EQUAL('A', buf[0]); CPPUNIT_ASSERT_EQUAL('B', buf[1]); CPPUNIT_ASSERT_EQUAL('C', buf[2]); CPPUNIT_ASSERT_EQUAL('D', buf[3]); + + char cbuf[10]; + memset(cbuf, (char)-1, sizeof(cbuf)); + CPPUNIT_ASSERT_EQUAL( wxCONV_FAILED, wxBase64Decode(cbuf, 3, str) ); + CPPUNIT_ASSERT_EQUAL( 4, wxBase64Decode(cbuf, 4, str) ); + CPPUNIT_ASSERT_EQUAL( 'A', cbuf[0] ); + CPPUNIT_ASSERT_EQUAL( 'B', cbuf[1] ); + CPPUNIT_ASSERT_EQUAL( 'C', cbuf[2] ); + CPPUNIT_ASSERT_EQUAL( 'D', cbuf[3] ); + CPPUNIT_ASSERT_EQUAL( (char)-1, cbuf[4] ); + CPPUNIT_ASSERT_EQUAL( (char)-1, cbuf[5] ); } void Base64TestCase::EncodeDecode0to255() @@ -241,28 +278,28 @@ void Base64TestCase::DecodeInvalid() rc = wxBase64Decode(NULL, 0, "one two!", wxNO_LEN, wxBase64DecodeMode_Strict, &posErr); CPPUNIT_ASSERT_EQUAL( wxCONV_FAILED, rc); - WX_ASSERT_SIZET_EQUAL( 3, posErr ); + CPPUNIT_ASSERT_EQUAL( 3, posErr ); rc = wxBase64Decode(NULL, 0, "one two!", wxNO_LEN, wxBase64DecodeMode_SkipWS, &posErr); CPPUNIT_ASSERT_EQUAL( wxCONV_FAILED, rc); - WX_ASSERT_SIZET_EQUAL( 7, posErr ); + CPPUNIT_ASSERT_EQUAL( 7, posErr ); rc = wxBase64Decode(NULL, 0, "? QQ==", wxNO_LEN, wxBase64DecodeMode_SkipWS, &posErr); CPPUNIT_ASSERT_EQUAL( wxCONV_FAILED, rc); - WX_ASSERT_SIZET_EQUAL( 0, posErr ); + CPPUNIT_ASSERT_EQUAL( 0, posErr ); posErr = (size_t)-1; rc = wxBase64Decode(NULL, 0, " QQ==", wxNO_LEN, wxBase64DecodeMode_SkipWS, &posErr); - WX_ASSERT_SIZET_EQUAL( 1, rc ); - WX_ASSERT_SIZET_EQUAL( -1, posErr ); + CPPUNIT_ASSERT_EQUAL( 1, rc ); + CPPUNIT_ASSERT_EQUAL( -1, posErr ); rc = wxBase64Decode(NULL, 0, "? QQ==", wxNO_LEN, wxBase64DecodeMode_Relaxed, &posErr); - WX_ASSERT_SIZET_EQUAL( 1, rc ); - WX_ASSERT_SIZET_EQUAL( -1, posErr ); + CPPUNIT_ASSERT_EQUAL( 1, rc ); + CPPUNIT_ASSERT_EQUAL( -1, posErr ); CPPUNIT_ASSERT( !wxBase64Decode("wxGetApp()").GetDataLen() ); }