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