0
0
mirror of https://github.com/keepassxreboot/keepassxc.git synced 2024-09-20 04:12:15 +02:00

Add tests for broken databases.

Make sure we detect the error and don't crash.
This commit is contained in:
Felix Geyer 2013-04-20 19:03:27 +02:00
parent e16720d06d
commit f1bebe904a
5 changed files with 50 additions and 0 deletions

View File

@ -17,6 +17,7 @@
#include "TestKeePass2XmlReader.h"
#include <QtCore/QFile>
#include <QtTest/QTest>
#include "tests.h"
@ -351,6 +352,26 @@ void TestKeePass2XmlReader::testDeletedObjects()
QVERIFY(objList.isEmpty());
}
void TestKeePass2XmlReader::testBroken()
{
QFETCH(QString, baseName);
KeePass2XmlReader reader;
QString xmlFile = QString("%1/%2.xml").arg(KEEPASSX_TEST_DATA_DIR, baseName);
QVERIFY(QFile::exists(xmlFile));
QScopedPointer<Database> db(reader.readDatabase(xmlFile));
QVERIFY(reader.hasError());
}
void TestKeePass2XmlReader::testBroken_data()
{
QTest::addColumn<QString>("baseName");
QTest::newRow("BrokenNoGroupUuid") << "BrokenNoGroupUuid";
QTest::newRow("BrokenNoEntryUuid") << "BrokenNoEntryUuid";
QTest::newRow("BrokenNoRootGroup") << "BrokenNoRootGroup";
}
void TestKeePass2XmlReader::cleanupTestCase()
{
delete m_db;

View File

@ -39,6 +39,8 @@ private Q_SLOTS:
void testEntry2();
void testEntryHistory();
void testDeletedObjects();
void testBroken();
void testBroken_data();
void cleanupTestCase();
private:

View File

@ -0,0 +1,14 @@
<?xml version="1.0" encoding="utf-8" standalone="yes"?>
<KeePassFile>
<Root>
<Group>
<UUID>lmU+9n0aeESKZvcEze+bRg==</UUID>
<Name>Test</Name>
<Entry>
<String>
<Key>Title</Key>
<Value>Sample Entry 1</Value>
</String>
</Group>
</Root>
</KeePassFile>

View File

@ -0,0 +1,8 @@
<?xml version="1.0" encoding="utf-8" standalone="yes"?>
<KeePassFile>
<Root>
<Group>
<Name>Test</Name>
</Group>
</Root>
</KeePassFile>

View File

@ -0,0 +1,5 @@
<?xml version="1.0" encoding="utf-8" standalone="yes"?>
<KeePassFile>
<Root>
</Root>
</KeePassFile>