]>
Commit | Line | Data |
---|---|---|
38e0a9ac | 1 | #define BOOST_TEST_DYN_LINK |
2 | #define BOOST_TEST_NO_MAIN | |
870a0fe4 AT |
3 | #ifdef HAVE_CONFIG_H |
4 | #include "config.h" | |
5 | #endif | |
38e0a9ac | 6 | #include <boost/test/unit_test.hpp> |
41cd250d | 7 | #include <boost/assign/std/map.hpp> |
fa8fd4d2 | 8 | |
38e0a9ac | 9 | #include "base64.hh" |
41cd250d | 10 | |
11 | using namespace boost; | |
12 | ||
38e0a9ac | 13 | BOOST_AUTO_TEST_SUITE(base64_cc) |
14 | ||
15 | BOOST_AUTO_TEST_CASE(test_Base64_Roundtrip) { | |
16 | std::string before("Some Random String"), after; | |
17 | std::string encoded = Base64Encode(before); | |
18 | B64Decode(encoded, after); | |
19 | BOOST_CHECK_EQUAL(before, after); | |
20 | } | |
21 | ||
41cd250d | 22 | /* for a in $(seq 1 32); |
23 | do | |
24 | plain=$(pwgen -1 -s $a) | |
25 | echo \(\"$plain\",\"$(echo -n $plain | openssl enc -base64)\"\) ; | |
26 | done | |
27 | */ | |
28 | ||
29 | BOOST_AUTO_TEST_CASE(test_Base64_Encode) { | |
30 | typedef std::map<std::string, std::string> cases_t; | |
31 | cases_t cases; | |
48836055 KM |
32 | assign::insert(cases) |
33 | ("", "") | |
34 | ("z","eg==") | |
41cd250d | 35 | ("x4","eDQ=") |
36 | ("J07","SjA3") | |
37 | ("kl8F","a2w4Rg==") | |
38 | ("2NUx9","Mk5VeDk=") | |
39 | ("hwXQ8C","aHdYUThD") | |
40 | ("V7ZHmlG","VjdaSG1sRw==") | |
41 | ("FuNFLSd5","RnVORkxTZDU=") | |
42 | ("YVGwy3Vbi","WVZHd3kzVmJp") | |
43 | ("6ueW4V3oLG","NnVlVzRWM29MRw==") | |
44 | ("d5zR7AWIBIQ","ZDV6UjdBV0lCSVE=") | |
45 | ("WJjZ6xgpRMCD","V0pqWjZ4Z3BSTUNE") | |
46 | ("e8I52L0vC9Kfq","ZThJNTJMMHZDOUtmcQ==") | |
47 | ("ufxMi8EZgTDja8","dWZ4TWk4RVpnVERqYTg=") | |
48 | ("MiNPxzxUkNXCFg1","TWlOUHh6eFVrTlhDRmcx") | |
49 | ("abqIPosEky85gFVM","YWJxSVBvc0VreTg1Z0ZWTQ==") | |
50 | ("Qccuox8igoyRKEeTo","UWNjdW94OGlnb3lSS0VlVG8=") | |
51 | ("wbaw6g6WWo4iiYXosV","d2JhdzZnNldXbzRpaVlYb3NW") | |
52 | ("ZIfJZIA3Kd0a6iIr0vc","WklmSlpJQTNLZDBhNmlJcjB2Yw==") | |
53 | ("SUhE1RK7xrRfvYOiaPMQ","U1VoRTFSSzd4clJmdllPaWFQTVE=") | |
54 | ("ZAWsEeB4bcTUzTr828VTd","WkFXc0VlQjRiY1RVelRyODI4VlRk") | |
55 | ("xc9rpu0F5ztR7r3jElr2BS","eGM5cnB1MEY1enRSN3IzakVscjJCUw==") | |
56 | ("xvEWPkZjqVjIZwsL5WhijES","eHZFV1BrWmpxVmpJWndzTDVXaGlqRVM=") | |
57 | ("yy4yAmcBKCNF3hWriWbDnKmF","eXk0eUFtY0JLQ05GM2hXcmlXYkRuS21G") | |
58 | ("9wKEMpl8OlFvnD10wwhoK7BjY","OXdLRU1wbDhPbEZ2bkQxMHd3aG9LN0JqWQ==") | |
59 | ("SB6yLm39pDVIUiQ5g73BvyRzBs","U0I2eUxtMzlwRFZJVWlRNWc3M0J2eVJ6QnM=") | |
60 | ("Acu4kk1puF98lIzd1b9bt8ha7Er","QWN1NGtrMXB1Rjk4bEl6ZDFiOWJ0OGhhN0Vy") | |
61 | ("P4X6efItE6cn03ksLTvniqMQlel3","UDRYNmVmSXRFNmNuMDNrc0xUdm5pcU1RbGVsMw==") | |
62 | ("RnQSvhIOz3ywuHCoSotJGKjBdCVbx","Um5RU3ZoSU96M3l3dUhDb1NvdEpHS2pCZENWYng=") | |
63 | ("ykybXtN0lelsLSzyzd4DTP3sYp8YGu","eWt5Ylh0TjBsZWxzTFN6eXpkNERUUDNzWXA4WUd1") | |
64 | ("eSHBt7Xx5F7A4HFtabXEzDLD01bnSiG","ZVNIQnQ3WHg1RjdBNEhGdGFiWEV6RExEMDFiblNpRw==") | |
65 | ("dq4KydZjmcoQQ45VYBP2EDR8FqKaMul0","ZHE0S3lkWmptY29RUTQ1VllCUDJFRFI4RnFLYU11bDA="); | |
66 | ||
ef7cd021 | 67 | for(const cases_t::value_type& val : cases) { |
41cd250d | 68 | std::string encoded = Base64Encode(val.first), decoded; |
69 | BOOST_CHECK_EQUAL(encoded, val.second); | |
032edd21 KM |
70 | decoded.clear(); |
71 | B64Decode(val.second, decoded); | |
41cd250d | 72 | BOOST_CHECK_EQUAL(decoded, val.first); |
73 | } | |
74 | } | |
75 | ||
76 | ||
38e0a9ac | 77 | BOOST_AUTO_TEST_SUITE_END() |