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 21:34:55 +0400
committerFelix Geyer <debfx@fobos.de>2012-05-10 21:34:55 +0400
commit225e5dac660b3d0e7fa325c2de654e4278e67de9 (patch)
tree3b7f36b342d33bb087ffb05cb2ea3afce7c90c2e /tests/TestKeePass1Reader.cpp
parentc02b5abc6eb38213fb284e860ee86b1c5e8e8f8e (diff)
Add tests for opening KeePass 1 databases with different keyfiles.
Diffstat (limited to 'tests/TestKeePass1Reader.cpp')
-rw-r--r--tests/TestKeePass1Reader.cpp57
1 files changed, 57 insertions, 0 deletions
diff --git a/tests/TestKeePass1Reader.cpp b/tests/TestKeePass1Reader.cpp
index eff5093fc..cb0332fb8 100644
--- a/tests/TestKeePass1Reader.cpp
+++ b/tests/TestKeePass1Reader.cpp
@@ -17,6 +17,7 @@
#include "TestKeePass1Reader.h"
+#include <QtCore/QFile>
#include <QtTest/QTest>
#include "config-keepassx-tests.h"
@@ -122,6 +123,62 @@ void TestKeePass1Reader::testGroupExpanded()
false);
}
+void TestKeePass1Reader::testFileKey()
+{
+ QFETCH(QString, type);
+
+ QString name = QString("FileKey").append(type);
+
+ KeePass1Reader reader;
+
+ QString dbFilename = QString("%1/%2.kdb").arg(QString(KEEPASSX_TEST_DATA_DIR), name);
+ QString keyFilename = QString("%1/%2.key").arg(QString(KEEPASSX_TEST_DATA_DIR), name);
+
+ QFile file(keyFilename);
+ QVERIFY(file.open(QIODevice::ReadOnly));
+ QByteArray keyData = KeePass1Reader::readKeyfile(&file);
+ QVERIFY(!keyData.isEmpty());
+
+ Database* db = reader.readDatabase(dbFilename, QString(), keyData);
+ QVERIFY(db);
+ QVERIFY(!reader.hasError());
+ QCOMPARE(db->rootGroup()->children().size(), 1);
+ QCOMPARE(db->rootGroup()->children().at(0)->name(), name);
+
+ delete db;
+}
+
+void TestKeePass1Reader::testFileKey_data()
+{
+ QTest::addColumn<QString>("type");
+ QTest::newRow("Binary") << QString("Binary");
+ QTest::newRow("Hex") << QString("Hex");
+ QTest::newRow("Hashed") << QString("Hashed");
+}
+
+void TestKeePass1Reader::testCompositeKey()
+{
+ QString name = "CompositeKey";
+
+ KeePass1Reader reader;
+
+ QString dbFilename = QString("%1/%2.kdb").arg(QString(KEEPASSX_TEST_DATA_DIR), name);
+ QString keyFilename = QString("%1/FileKeyHex.key").arg(QString(KEEPASSX_TEST_DATA_DIR));
+
+ QFile file(keyFilename);
+ QVERIFY(file.open(QIODevice::ReadOnly));
+ QByteArray keyData = KeePass1Reader::readKeyfile(&file);
+ QVERIFY(!keyData.isEmpty());
+
+ Database* db = reader.readDatabase(dbFilename, "mypassword", keyData);
+ QVERIFY(db);
+ QVERIFY(!reader.hasError());
+ QCOMPARE(db->rootGroup()->children().size(), 1);
+ QCOMPARE(db->rootGroup()->children().at(0)->name(), name);
+
+ delete db;
+}
+
void TestKeePass1Reader::cleanupTestCase()
{
delete m_db;