diff options
author | Felix Geyer <debfx@fobos.de> | 2013-11-22 16:27:49 +0400 |
---|---|---|
committer | Felix Geyer <debfx@fobos.de> | 2013-11-22 16:32:13 +0400 |
commit | f2dfef8c41b263901d5b5c44bc68f42117ede933 (patch) | |
tree | 59098b952ba0dfb646ed6e758bb56ca62191f0af /tests/TestEntry.cpp | |
parent | cb804eb143922d0ac7b7272345b75f125de5ba22 (diff) |
Add flags to Entry::clone() for customized cloning.
Diffstat (limited to 'tests/TestEntry.cpp')
-rw-r--r-- | tests/TestEntry.cpp | 48 |
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) |