]> git.ipfire.org Git - thirdparty/pdns.git/blame - pdns/test-base64_cc.cc
Merge pull request #8223 from PowerDNS/omoerbeek-patch-1
[thirdparty/pdns.git] / pdns / test-base64_cc.cc
CommitLineData
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
11using namespace boost;
12
c7f29d3e 13BOOST_AUTO_TEST_SUITE(test_base64_cc)
38e0a9ac 14
15BOOST_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
29BOOST_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 77BOOST_AUTO_TEST_SUITE_END()