diff options
author | Sébastien Helleu <flashcode@flashtux.org> | 2014-08-02 16:54:24 +0200 |
---|---|---|
committer | Sébastien Helleu <flashcode@flashtux.org> | 2014-08-02 16:54:24 +0200 |
commit | 28cb1ae6f5f08baf224a4d1ac57a38af5a9e36f8 (patch) | |
tree | c39e3148abda59153e6146bb28069c083684ebc1 /tests | |
parent | cf3e0ccbfd0547473c53c2f465e099972e87cc4d (diff) | |
download | weechat-28cb1ae6f5f08baf224a4d1ac57a38af5a9e36f8.zip |
tests: add tests of base 16/64 decoding/encoding
Diffstat (limited to 'tests')
-rw-r--r-- | tests/unit/core/test-string.cpp | 77 |
1 files changed, 76 insertions, 1 deletions
diff --git a/tests/unit/core/test-string.cpp b/tests/unit/core/test-string.cpp index 4ffe28761..4551c5945 100644 --- a/tests/unit/core/test-string.cpp +++ b/tests/unit/core/test-string.cpp @@ -737,7 +737,82 @@ TEST(String, FormatSize) TEST(String, BaseN) { - /* TODO: write tests */ + char str[1024]; + const char *str_abc = "abc"; + const char *str_abc_base64 = "YWJj"; + const char *str_base64[][2] = + { { "", "" }, + { "A", "QQ==" }, + { "B", "Qg==" }, + { "C", "Qw==" }, + { "D", "RA==" }, + { "abc", "YWJj" }, + { "This is a test.", "VGhpcyBpcyBhIHRlc3Qu" }, + { "This is a test..", "VGhpcyBpcyBhIHRlc3QuLg==" }, + { "This is a test...", "VGhpcyBpcyBhIHRlc3QuLi4=" }, + { "This is a test....", "VGhpcyBpcyBhIHRlc3QuLi4u" }, + { "This is a long long long sentence here...", + "VGhpcyBpcyBhIGxvbmcgbG9uZyBsb25nIHNlbnRlbmNlIGhlcmUuLi4=" }, + { "Another example for base64", + "QW5vdGhlciBleGFtcGxlIGZvciBiYXNlNjQ=" }, + { "Another example for base64.", + "QW5vdGhlciBleGFtcGxlIGZvciBiYXNlNjQu" }, + { "Another example for base64..", + "QW5vdGhlciBleGFtcGxlIGZvciBiYXNlNjQuLg==" }, + { "Another example for base64...", + "QW5vdGhlciBleGFtcGxlIGZvciBiYXNlNjQuLi4=" }, + { NULL, NULL } }; + int i, length; + + /* string_encode_base16 */ + string_encode_base16 (NULL, 0, NULL); + string_encode_base16 (NULL, 0, str); + string_encode_base16 ("", 0, NULL); + str[0] = 0xAA; + string_encode_base16 ("", -1, str); + BYTES_EQUAL(0x0, str[0]); + str[0] = 0xAA; + string_encode_base16 ("", 0, str); + BYTES_EQUAL(0x0, str[0]); + string_encode_base16 ("abc", 3, str); + STRCMP_EQUAL("616263", str); + + /* string_decode_base16 */ + LONGS_EQUAL(0, string_decode_base16 (NULL, NULL)); + LONGS_EQUAL(0, string_decode_base16 (NULL, str)); + LONGS_EQUAL(0, string_decode_base16 ("", NULL)); + LONGS_EQUAL(0, string_decode_base16 ("", str)); + LONGS_EQUAL(3, string_decode_base16 ("616263", str)); + STRCMP_EQUAL("abc", str); + + /* string_encode_base64 */ + string_encode_base64 (NULL, 0, NULL); + string_encode_base64 (NULL, 0, str); + string_encode_base64 ("", 0, NULL); + str[0] = 0xAA; + string_encode_base64 ("", -1, str); + BYTES_EQUAL(0x0, str[0]); + str[0] = 0xAA; + string_encode_base64 ("", 0, str); + BYTES_EQUAL(0x0, str[0]); + for (i = 0; str_base64[i][0]; i++) + { + string_encode_base64 (str_base64[i][0], strlen (str_base64[i][0]), + str); + STRCMP_EQUAL(str_base64[i][1], str); + } + + /* string_decode_base64 */ + LONGS_EQUAL(0, string_decode_base64 (NULL, NULL)); + LONGS_EQUAL(0, string_decode_base64 (NULL, str)); + LONGS_EQUAL(0, string_decode_base64 ("", NULL)); + LONGS_EQUAL(0, string_decode_base64 ("", str)); + for (i = 0; str_base64[i][0]; i++) + { + length = string_decode_base64 (str_base64[i][1], str); + STRCMP_EQUAL(str_base64[i][0], str); + LONGS_EQUAL(strlen (str_base64[i][0]), length); + } } /* |