diff options
author | Felix Geyer <debfx@fobos.de> | 2012-05-10 01:14:27 +0400 |
---|---|---|
committer | Felix Geyer <debfx@fobos.de> | 2012-05-10 01:16:32 +0400 |
commit | 79b15e2ac6ec33d5d6406964bfb54c19344e92a3 (patch) | |
tree | 76c063e9af067cb7b0ddfc4730efe30151251aea /tests | |
parent | 623406589882612037cbb6c5d947d9cfba7b9c95 (diff) |
Implement support for parsing groups and entries from KeePass 1 databases.
Still missing:
- Key files.
- Twofish encryption.
Refs #2
Diffstat (limited to 'tests')
-rw-r--r-- | tests/TestKeePass1Reader.cpp | 44 | ||||
-rw-r--r-- | tests/TestKeePass1Reader.h | 4 | ||||
-rw-r--r-- | tests/TestKeePass2XmlReader.h | 2 | ||||
-rw-r--r-- | tests/data/basic.kdb | bin | 876 -> 1100 bytes |
4 files changed, 49 insertions, 1 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) diff --git a/tests/TestKeePass1Reader.h b/tests/TestKeePass1Reader.h index 390174c4a..55f4a9fd3 100644 --- a/tests/TestKeePass1Reader.h +++ b/tests/TestKeePass1Reader.h @@ -18,6 +18,7 @@ #ifndef KEEPASSX_TESTKEEPASS1READER_H #define KEEPASSX_TESTKEEPASS1READER_H +#include <QtCore/QDateTime> #include <QtCore/QObject> class TestKeePass1Reader : public QObject @@ -27,6 +28,9 @@ class TestKeePass1Reader : public QObject private Q_SLOTS: void initTestCase(); void testBasic(); + +private: + static QDateTime genDT(int year, int month, int day, int hour, int min); }; #endif // KEEPASSX_TESTKEEPASS1READER_H diff --git a/tests/TestKeePass2XmlReader.h b/tests/TestKeePass2XmlReader.h index 415d734d1..2ed25fadb 100644 --- a/tests/TestKeePass2XmlReader.h +++ b/tests/TestKeePass2XmlReader.h @@ -42,7 +42,7 @@ private Q_SLOTS: void cleanupTestCase(); private: - QDateTime genDT(int year, int month, int day, int hour, int min, int second); + static QDateTime genDT(int year, int month, int day, int hour, int min, int second); Database* m_db; }; diff --git a/tests/data/basic.kdb b/tests/data/basic.kdb Binary files differindex 251c3edf0..76402e419 100644 --- a/tests/data/basic.kdb +++ b/tests/data/basic.kdb |