Welcome to mirror list, hosted at ThFree Co, Russian Federation.

github.com/keepassxreboot/keepassxc.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorFelix Geyer <debfx@fobos.de>2012-05-10 01:14:27 +0400
committerFelix Geyer <debfx@fobos.de>2012-05-10 01:16:32 +0400
commit79b15e2ac6ec33d5d6406964bfb54c19344e92a3 (patch)
tree76c063e9af067cb7b0ddfc4730efe30151251aea /tests/TestKeePass1Reader.cpp
parent623406589882612037cbb6c5d947d9cfba7b9c95 (diff)
Implement support for parsing groups and entries from KeePass 1 databases.
Still missing: - Key files. - Twofish encryption. Refs #2
Diffstat (limited to 'tests/TestKeePass1Reader.cpp')
-rw-r--r--tests/TestKeePass1Reader.cpp44
1 files changed, 44 insertions, 0 deletions
diff --git a/tests/TestKeePass1Reader.cpp b/tests/TestKeePass1Reader.cpp
index 1dc31ee2a..54f7ac1f3 100644
--- a/tests/TestKeePass1Reader.cpp
+++ b/tests/TestKeePass1Reader.cpp
@@ -22,6 +22,8 @@
#include "config-keepassx-tests.h"
#include "tests.h"
#include "core/Database.h"
+#include "core/Entry.h"
+#include "core/Group.h"
#include "crypto/Crypto.h"
#include "format/KeePass1Reader.h"
@@ -39,7 +41,49 @@ void TestKeePass1Reader::testBasic()
QVERIFY(db);
QVERIFY(!reader.hasError());
+ QCOMPARE(db->rootGroup()->children().size(), 2);
+
+ Group* group1 = db->rootGroup()->children().at(0);
+ QCOMPARE(group1->name(), QString("Internet"));
+ QCOMPARE(group1->iconNumber(), 1);
+ QCOMPARE(group1->entries().size(), 2);
+
+ Entry* entry11 = group1->entries().at(0);
+ QCOMPARE(entry11->title(), QString("Test entry"));
+ QCOMPARE(entry11->iconNumber(), 1);
+ QCOMPARE(entry11->username(), QString("I"));
+ QCOMPARE(entry11->url(), QString("http://example.com/"));
+ QCOMPARE(entry11->password(), QString("secretpassword"));
+ QCOMPARE(entry11->notes(), QString("Lorem ipsum\ndolor sit amet"));
+ QVERIFY(entry11->timeInfo().expires());
+ QCOMPARE(entry11->timeInfo().expiryTime(), genDT(2012, 5, 9, 10, 32));
+ QCOMPARE(entry11->attachments()->keys().size(), 1);
+ QCOMPARE(entry11->attachments()->keys().first(), QString("attachment.txt"));
+ QCOMPARE(entry11->attachments()->value("attachment.txt"), QByteArray("hello world\n"));
+
+ Entry* entry12 = group1->entries().at(1);
+ QCOMPARE(entry12->title(), QString(""));
+ QCOMPARE(entry12->iconNumber(), 0);
+ QCOMPARE(entry12->username(), QString(""));
+ QCOMPARE(entry12->url(), QString(""));
+ QCOMPARE(entry12->password(), QString(""));
+ QCOMPARE(entry12->notes(), QString(""));
+ 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);
+
delete db;
}
+QDateTime TestKeePass1Reader::genDT(int year, int month, int day, int hour, int min)
+{
+ QDate date(year, month, day);
+ QTime time(hour, min, 0);
+ return QDateTime(date, time, Qt::UTC);
+}
+
KEEPASSX_QTEST_CORE_MAIN(TestKeePass1Reader)