• Skip to content
  • Skip to link menu
KDE 4.4 API Reference
  • KDE API Reference
  • KDE Support
  • Sitemap
  • Contact Us
 

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     // these are from the Botan test suite. Note that these are hex encoded!
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     // these are from Python 2.3's tests for base64
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     // these are generated by Python 2.3. I removed the trailing newline
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"

qca

Skip menu "qca"
  • Main Page
  • Modules
  • Namespace List
  • Class Hierarchy
  • Alphabetical List
  • Class List
  • File List
  • Namespace Members
  • Class Members
  • Related Pages

KDE Support

Skip menu "KDE Support"
  • akonadi
  • Decibel
  • grantlee
  • kdewin
  • phonon
  •     Backend
  • polkit-qt
  • qca
  • qimageblitz
  • soprano
  • strigi
  •     searchclient
  •     streamanalyzer
  •     streams
Generated for KDE Support by doxygen 1.5.9-20090814
This website is maintained by Adriaan de Groot and Allen Winter.
KDE® and the K Desktop Environment® logo are registered trademarks of KDE e.V. | Legal