From b1d481893ef133f121baef12c115f9c4de593710 Mon Sep 17 00:00:00 2001 From: louis Date: Sun, 4 Nov 2018 15:59:13 -0500 Subject: [PATCH] Adding tests for modified signal on merge. --- tests/TestMerge.cpp | 33 +++++++++++++++++++++++++++++++++ tests/TestMerge.h | 2 ++ 2 files changed, 35 insertions(+) diff --git a/tests/TestMerge.cpp b/tests/TestMerge.cpp index 728b0a75..60e3a9ea 100644 --- a/tests/TestMerge.cpp +++ b/tests/TestMerge.cpp @@ -23,6 +23,8 @@ #include "core/Metadata.h" #include "crypto/Crypto.h" +#include + QTEST_GUILESS_MAIN(TestMerge) namespace @@ -1355,6 +1357,37 @@ void TestMerge::testResolveGroupConflictOlder() QVERIFY(groupDestinationMerged != nullptr); } +void TestMerge::testMergeNotModified() +{ + QScopedPointer dbDestination(createTestDatabase()); + QScopedPointer dbSource( + createTestDatabaseStructureClone(dbDestination.data(), Entry::CloneNoFlags, Group::CloneIncludeEntries)); + + QSignalSpy modifiedSignalSpy(dbDestination.data(), SIGNAL(modified())); + Merger merger(dbSource.data(), dbDestination.data()); + merger.merge(); + QVERIFY(modifiedSignalSpy.empty()); +} + +void TestMerge::testMergeModified() +{ + QScopedPointer dbDestination(createTestDatabase()); + QScopedPointer dbSource( + createTestDatabaseStructureClone(dbDestination.data(), Entry::CloneNoFlags, Group::CloneIncludeEntries)); + + QSignalSpy modifiedSignalSpy(dbDestination.data(), SIGNAL(modified())); + // Make sure the two changes have a different timestamp. + QTest::qSleep(1); + Entry* entry = dbSource->rootGroup()->findEntryByPath("entry1"); + entry->beginUpdate(); + entry->setTitle("new title"); + entry->endUpdate(); + + Merger merger(dbSource.data(), dbDestination.data()); + merger.merge(); + QVERIFY(!modifiedSignalSpy.empty()); +} + Database* TestMerge::createTestDatabase() { Database* db = new Database(); diff --git a/tests/TestMerge.h b/tests/TestMerge.h index 15c18e43..7a18d2a3 100644 --- a/tests/TestMerge.h +++ b/tests/TestMerge.h @@ -36,6 +36,8 @@ private slots: void testResolveConflictNewer(); void testResolveConflictExisting(); void testResolveGroupConflictOlder(); + void testMergeNotModified(); + void testMergeModified(); void testResolveConflictDuplicate(); void testResolveConflictEntry_Synchronize(); void testResolveConflictEntry_KeepLocal();