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>2011-12-27 18:47:06 +0400
committerFelix Geyer <debfx@fobos.de>2011-12-27 18:47:06 +0400
commitbce46c5ecea53ff976a9e97e8638a847819082b3 (patch)
treea4fe8366b1f3cb21d934dd0a6972723504e252c7
parent4ebcd53801e6bfdeef04c2f82aa0157fb71b10b2 (diff)
Enforce that group/entry uuid is set when writing a database.
-rw-r--r--src/core/Database.cpp1
-rw-r--r--src/format/KeePass2XmlWriter.cpp4
-rw-r--r--tests/TestGroupModel.cpp2
-rw-r--r--tests/TestKeePass2Writer.cpp5
-rw-r--r--tests/TestKeePass2XmlReader.cpp3
5 files changed, 15 insertions, 0 deletions
diff --git a/src/core/Database.cpp b/src/core/Database.cpp
index 20fe8cbc7..6595cf83d 100644
--- a/src/core/Database.cpp
+++ b/src/core/Database.cpp
@@ -29,6 +29,7 @@ Database::Database()
{
m_metadata = new Metadata(this);
setRootGroup(new Group());
+ rootGroup()->setUuid(Uuid::random());
m_cipher = KeePass2::CIPHER_AES;
m_compressionAlgo = CompressionGZip;
diff --git a/src/format/KeePass2XmlWriter.cpp b/src/format/KeePass2XmlWriter.cpp
index e7a3938c3..e95d70fa3 100644
--- a/src/format/KeePass2XmlWriter.cpp
+++ b/src/format/KeePass2XmlWriter.cpp
@@ -169,6 +169,8 @@ void KeePass2XmlWriter::writeRoot()
void KeePass2XmlWriter::writeGroup(const Group* group)
{
+ Q_ASSERT(!group->uuid().isNull());
+
m_xml.writeStartElement("Group");
writeUuid("UUID", group->uuid());
@@ -237,6 +239,8 @@ void KeePass2XmlWriter::writeDeletedObject(const DeletedObject& delObj)
void KeePass2XmlWriter::writeEntry(const Entry* entry)
{
+ Q_ASSERT(!entry->uuid().isNull());
+
m_xml.writeStartElement("Entry");
writeUuid("UUID", entry->uuid());
diff --git a/tests/TestGroupModel.cpp b/tests/TestGroupModel.cpp
index 1b9a89843..70a6e4c66 100644
--- a/tests/TestGroupModel.cpp
+++ b/tests/TestGroupModel.cpp
@@ -23,11 +23,13 @@
#include "modeltest.h"
#include "core/Database.h"
#include "core/Group.h"
+#include "crypto/Crypto.h"
#include "gui/GroupModel.h"
void TestGroupModel::initTestCase()
{
qRegisterMetaType<QModelIndex>("QModelIndex");
+ Crypto::init();
}
void TestGroupModel::test()
diff --git a/tests/TestKeePass2Writer.cpp b/tests/TestKeePass2Writer.cpp
index 6955ba5c4..87ea72527 100644
--- a/tests/TestKeePass2Writer.cpp
+++ b/tests/TestKeePass2Writer.cpp
@@ -45,6 +45,10 @@ void TestKeePass2Writer::initTestCase()
entry->addAttribute("test", "protectedTest", true);
QVERIFY(entry->isAttributeProtected("test"));
entry->setGroup(group);
+ Group* groupNew = new Group();
+ groupNew->setUuid(Uuid::random());
+ groupNew->setName("TESTGROUP");
+ groupNew->setParent(group);
QBuffer buffer;
buffer.open(QBuffer::ReadWrite);
@@ -63,6 +67,7 @@ void TestKeePass2Writer::testBasic()
{
QCOMPARE(m_dbTest->metadata()->name(), m_dbOrg->metadata()->name());
QVERIFY(m_dbTest->rootGroup());
+ QCOMPARE(m_dbTest->rootGroup()->children()[0]->name(), m_dbOrg->rootGroup()->children()[0]->name());
}
void TestKeePass2Writer::testProtectedAttributes()
diff --git a/tests/TestKeePass2XmlReader.cpp b/tests/TestKeePass2XmlReader.cpp
index daf6cf390..c63f1253f 100644
--- a/tests/TestKeePass2XmlReader.cpp
+++ b/tests/TestKeePass2XmlReader.cpp
@@ -22,6 +22,7 @@
#include "core/Database.h"
#include "core/Group.h"
#include "core/Metadata.h"
+#include "crypto/Crypto.h"
#include "format/KeePass2XmlReader.h"
#include "config-keepassx-tests.h"
@@ -63,6 +64,8 @@ QDateTime TestKeePass2XmlReader::genDT(int year, int month, int day, int hour, i
void TestKeePass2XmlReader::initTestCase()
{
+ Crypto::init();
+
KeePass2XmlReader* reader = new KeePass2XmlReader();
QString xmlFile = QString(KEEPASSX_TEST_DATA_DIR).append("/NewDatabase.xml");
m_db = reader->readDatabase(xmlFile);