@@ -24,29 +24,31 @@
|
||||
#include "core/Database.h"
|
||||
#include "core/Entry.h"
|
||||
#include "core/Group.h"
|
||||
#include "core/Metadata.h"
|
||||
#include "crypto/Crypto.h"
|
||||
#include "format/KeePass1Reader.h"
|
||||
|
||||
void TestKeePass1Reader::initTestCase()
|
||||
{
|
||||
Crypto::init();
|
||||
|
||||
QString filename = QString(KEEPASSX_TEST_DATA_DIR).append("/basic.kdb");
|
||||
|
||||
KeePass1Reader reader;
|
||||
m_db = reader.readDatabase(filename, "masterpw", QByteArray());
|
||||
QVERIFY(m_db);
|
||||
QVERIFY(!reader.hasError());
|
||||
}
|
||||
|
||||
void TestKeePass1Reader::testBasic()
|
||||
{
|
||||
QString filename = QString(KEEPASSX_TEST_DATA_DIR).append("/basic.kdb");
|
||||
QCOMPARE(m_db->rootGroup()->children().size(), 2);
|
||||
|
||||
KeePass1Reader reader;
|
||||
Database* db = reader.readDatabase(filename, "masterpw", QByteArray());
|
||||
QVERIFY(db);
|
||||
QVERIFY(!reader.hasError());
|
||||
|
||||
QCOMPARE(db->rootGroup()->children().size(), 2);
|
||||
|
||||
Group* group1 = db->rootGroup()->children().at(0);
|
||||
Group* group1 = m_db->rootGroup()->children().at(0);
|
||||
QCOMPARE(group1->name(), QString("Internet"));
|
||||
QCOMPARE(group1->iconNumber(), 1);
|
||||
QCOMPARE(group1->children().size(), 2);
|
||||
QCOMPARE(group1->entries().size(), 2);
|
||||
QCOMPARE(group1->iconNumber(), 1);
|
||||
|
||||
Entry* entry11 = group1->entries().at(0);
|
||||
QCOMPARE(entry11->title(), QString("Test entry"));
|
||||
@@ -71,12 +73,58 @@ void TestKeePass1Reader::testBasic()
|
||||
QVERIFY(!entry12->timeInfo().expires());
|
||||
QCOMPARE(entry12->attachments()->keys().size(), 0);
|
||||
|
||||
Group* group2 = db->rootGroup()->children().at(1);
|
||||
QCOMPARE(group2->name(), QString("eMail"));
|
||||
QCOMPARE(group2->iconNumber(), 19);
|
||||
QCOMPARE(group2->entries().size(), 0);
|
||||
Group* group11 = group1->children().at(0);
|
||||
QCOMPARE(group11->name(), QString("Subgroup 1"));
|
||||
QCOMPARE(group11->children().size(), 1);
|
||||
|
||||
delete db;
|
||||
Group* group111 = group11->children().at(0);
|
||||
QCOMPARE(group111->name(), QString("Unexpanded"));
|
||||
QCOMPARE(group111->children().size(), 1);
|
||||
|
||||
Group* group1111 = group111->children().at(0);
|
||||
QCOMPARE(group1111->name(), QString("abc"));
|
||||
QCOMPARE(group1111->children().size(), 0);
|
||||
|
||||
Group* group12 = group1->children().at(1);
|
||||
QCOMPARE(group12->name(), QString("Subgroup 2"));
|
||||
QCOMPARE(group12->children().size(), 0);
|
||||
|
||||
Group* group2 = m_db->rootGroup()->children().at(1);
|
||||
QCOMPARE(group2->name(), QString("eMail"));
|
||||
QCOMPARE(group2->entries().size(), 1);
|
||||
QCOMPARE(group2->iconNumber(), 19);
|
||||
}
|
||||
|
||||
void TestKeePass1Reader::testCustomIcons()
|
||||
{
|
||||
QCOMPARE(m_db->metadata()->customIcons().size(), 1);
|
||||
|
||||
Entry* entry = m_db->rootGroup()->children().at(1)->entries().first();
|
||||
|
||||
QCOMPARE(entry->icon().width(), 16);
|
||||
QCOMPARE(entry->icon().height(), 16);
|
||||
|
||||
for (int x = 0; x < 16; x++) {
|
||||
for (int y = 0; y < 16; y++) {
|
||||
QRgb rgb = entry->icon().pixel(x, y);
|
||||
QCOMPARE(qRed(rgb), 8);
|
||||
QCOMPARE(qGreen(rgb), 160);
|
||||
QCOMPARE(qBlue(rgb), 60);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
void TestKeePass1Reader::testGroupExpanded()
|
||||
{
|
||||
QCOMPARE(m_db->rootGroup()->children().at(0)->isExpanded(), true);
|
||||
QCOMPARE(m_db->rootGroup()->children().at(0)->children().at(0)->isExpanded(), true);
|
||||
QCOMPARE(m_db->rootGroup()->children().at(0)->children().at(0)->children().at(0)->isExpanded(),
|
||||
false);
|
||||
}
|
||||
|
||||
void TestKeePass1Reader::cleanupTestCase()
|
||||
{
|
||||
delete m_db;
|
||||
}
|
||||
|
||||
QDateTime TestKeePass1Reader::genDT(int year, int month, int day, int hour, int min)
|
||||
|
||||
@@ -21,6 +21,8 @@
|
||||
#include <QtCore/QDateTime>
|
||||
#include <QtCore/QObject>
|
||||
|
||||
class Database;
|
||||
|
||||
class TestKeePass1Reader : public QObject
|
||||
{
|
||||
Q_OBJECT
|
||||
@@ -28,9 +30,14 @@ class TestKeePass1Reader : public QObject
|
||||
private Q_SLOTS:
|
||||
void initTestCase();
|
||||
void testBasic();
|
||||
void testCustomIcons();
|
||||
void testGroupExpanded();
|
||||
void cleanupTestCase();
|
||||
|
||||
private:
|
||||
static QDateTime genDT(int year, int month, int day, int hour, int min);
|
||||
|
||||
Database* m_db;
|
||||
};
|
||||
|
||||
#endif // KEEPASSX_TESTKEEPASS1READER_H
|
||||
|
||||
Binary file not shown.
Reference in New Issue
Block a user