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>2013-11-22 16:27:49 +0400
committerFelix Geyer <debfx@fobos.de>2013-11-22 16:32:13 +0400
commitf2dfef8c41b263901d5b5c44bc68f42117ede933 (patch)
tree59098b952ba0dfb646ed6e758bb56ca62191f0af /tests/TestEntry.cpp
parentcb804eb143922d0ac7b7272345b75f125de5ba22 (diff)
Add flags to Entry::clone() for customized cloning.
Diffstat (limited to 'tests/TestEntry.cpp')
-rw-r--r--tests/TestEntry.cpp48
1 files changed, 48 insertions, 0 deletions
diff --git a/tests/TestEntry.cpp b/tests/TestEntry.cpp
index e3c46b100..9c027b6a2 100644
--- a/tests/TestEntry.cpp
+++ b/tests/TestEntry.cpp
@@ -21,6 +21,12 @@
#include "tests.h"
#include "core/Entry.h"
+#include "crypto/Crypto.h"
+
+void TestEntry::initTestCase()
+{
+ Crypto::init();
+}
void TestEntry::testHistoryItemDeletion()
{
@@ -74,4 +80,46 @@ void TestEntry::testCopyDataFrom()
QCOMPARE(entry2->autoTypeAssociations()->get(1).window, QString("3"));
}
+void TestEntry::testClone()
+{
+ Entry* entryOrg = new Entry();
+ entryOrg->setUuid(Uuid::random());
+ entryOrg->setTitle("Original Title");
+ entryOrg->beginUpdate();
+ entryOrg->setTitle("New Title");
+ entryOrg->endUpdate();
+ TimeInfo entryOrgTime = entryOrg->timeInfo();
+ QDateTime dateTime;
+ dateTime.setTimeSpec(Qt::UTC);
+ dateTime.setMSecsSinceEpoch(60);
+ entryOrgTime.setCreationTime(dateTime);
+ entryOrg->setTimeInfo(entryOrgTime);
+
+ Entry* entryCloneNone = entryOrg->clone(Entry::CloneNoFlags);
+ QCOMPARE(entryCloneNone->uuid(), entryOrg->uuid());
+ QCOMPARE(entryCloneNone->title(), QString("New Title"));
+ QCOMPARE(entryCloneNone->historyItems().size(), 0);
+ QCOMPARE(entryCloneNone->timeInfo().creationTime(), entryOrg->timeInfo().creationTime());
+
+ Entry* entryCloneNewUuid = entryOrg->clone(Entry::CloneNewUuid);
+ QVERIFY(entryCloneNewUuid->uuid() != entryOrg->uuid());
+ QVERIFY(!entryCloneNewUuid->uuid().isNull());
+ QCOMPARE(entryCloneNewUuid->title(), QString("New Title"));
+ QCOMPARE(entryCloneNewUuid->historyItems().size(), 0);
+ QCOMPARE(entryCloneNewUuid->timeInfo().creationTime(), entryOrg->timeInfo().creationTime());
+
+ Entry* entryCloneResetTime = entryOrg->clone(Entry::CloneResetTimeInfo);
+ QCOMPARE(entryCloneNone->uuid(), entryOrg->uuid());
+ QCOMPARE(entryCloneResetTime->title(), QString("New Title"));
+ QCOMPARE(entryCloneResetTime->historyItems().size(), 0);
+ QVERIFY(entryCloneResetTime->timeInfo().creationTime() != entryOrg->timeInfo().creationTime());
+
+ Entry* entryCloneHistory = entryOrg->clone(Entry::CloneIncludeHistory);
+ QCOMPARE(entryCloneNone->uuid(), entryOrg->uuid());
+ QCOMPARE(entryCloneHistory->title(), QString("New Title"));
+ QCOMPARE(entryCloneHistory->historyItems().size(), 1);
+ QCOMPARE(entryCloneHistory->historyItems().first()->title(), QString("Original Title"));
+ QCOMPARE(entryCloneHistory->timeInfo().creationTime(), entryOrg->timeInfo().creationTime());
+}
+
QTEST_GUILESS_MAIN(TestEntry)