qca
base64unittest.cpp
Go to the documentation of this file.00001
00028 #include <QtCrypto>
00029 #include <QtTest/QtTest>
00030
00031 class Base64UnitTest : public QObject
00032 {
00033 Q_OBJECT
00034
00035 private slots:
00036 void initTestCase();
00037 void cleanupTestCase();
00038 void test1_data();
00039 void test1();
00040 void test2_data();
00041 void test2();
00042 private:
00043 QCA::Initializer* m_init;
00044 };
00045
00046 void Base64UnitTest::initTestCase()
00047 {
00048 m_init = new QCA::Initializer;
00049 #include "../fixpaths.include"
00050 }
00051
00052 void Base64UnitTest::cleanupTestCase()
00053 {
00054 delete m_init;
00055 }
00056
00057 void Base64UnitTest::test1_data()
00058 {
00059 QTest::addColumn<QString>("raw");
00060 QTest::addColumn<QString>("encoded");
00061
00062
00063 QTest::newRow("31") << QString("31") << QString("4d513d3d");
00064 QTest::newRow("235c91") << QString("235c91") << QString("49317952");
00065 QTest::newRow("414") << QString("4142634452313236")
00066 << QString("51554a6a524649784d6a593d");
00067 QTest::newRow("241") << QString("241bb300a3989a620659")
00068 << QString("4a42757a414b4f596d6d494757513d3d");
00069 QTest::newRow("313") << QString("31323537374343666671333435337836")
00070 << QString("4d5449314e7a644451325a6d63544d304e544e344e673d3d");
00071 QTest::newRow("60e") << QString("60e8e5ebb1a5eac95a01ec7f8796b2dce471")
00072 << QString("594f6a6c3637476c36736c614165782f68356179334f5278");
00073 QTest::newRow("3134") << QString("31346d354f33313333372c31274d754e7354307050346231333a29")
00074 << QString("4d5452744e55387a4d544d7a4e7977784a303131546e4e554d4842514e4749784d7a6f70");
00075 }
00076
00077
00078 void Base64UnitTest::test2_data()
00079 {
00080 QTest::addColumn<QString>("raw");
00081 QTest::addColumn<QString>("encoded");
00082
00083
00084 QTest::newRow("www.python.org") << QString("www.python.org")
00085 << QString("d3d3LnB5dGhvbi5vcmc=");
00086 QTest::newRow("a") << QString("a") << QString("YQ==");
00087 QTest::newRow("ab") << QString("ab") << QString("YWI=");
00088 QTest::newRow("abc") << QString("abc") << QString("YWJj");
00089 QTest::newRow("empty") << QString("") << QString("");
00090 QTest::newRow("a-Z") << QString("abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789!@#0^&*();:<>,. []{}")
00091 << QString("YWJjZGVmZ2hpamtsbW5vcHFyc3R1dnd4eXpBQkNERUZHSElKS0xNTk9QUVJTVFVWV1hZWjAxMjM0NTY3ODkhQCMwXiYqKCk7Ojw+LC4gW117fQ==");
00092
00093
00094 QTest::newRow("31") << QString("31") << QString("MzE=");
00095 QTest::newRow("QCA_2.0") << QString("QCA_2.0") << QString("UUNBXzIuMA==");
00096 QTest::newRow("j-0") << QString("jh/*-*/*-/4983589230")
00097 << QString("amgvKi0qLyotLzQ5ODM1ODkyMzA=");
00098 }
00099
00100 void Base64UnitTest::test1()
00101 {
00102 QCA::Base64 base64Object;
00103
00104 QFETCH(QString, raw);
00105 QFETCH(QString, encoded);
00106
00107 QCOMPARE(QCA::arrayToHex(base64Object.encode(QCA::hexToArray(raw)).toByteArray()), encoded);
00108 QCOMPARE(QCA::arrayToHex(base64Object.decode(QCA::hexToArray(encoded)).toByteArray()), raw);
00109 }
00110
00111 void Base64UnitTest::test2()
00112 {
00113 QCA::Base64 base64Object;
00114
00115 QFETCH(QString, raw);
00116 QFETCH(QString, encoded);
00117
00118 QCOMPARE( base64Object.encodeString(raw), encoded );
00119 QCOMPARE( base64Object.decodeString(encoded), raw );
00120 }
00121
00122 QTEST_MAIN(Base64UnitTest)
00123
00124 #include "base64unittest.moc"