diff options
Diffstat (limited to 'tests/TestMerge.cpp')
-rw-r--r-- | tests/TestMerge.cpp | 28 |
1 files changed, 20 insertions, 8 deletions
diff --git a/tests/TestMerge.cpp b/tests/TestMerge.cpp index 4d9aef211..4f96d3e6d 100644 --- a/tests/TestMerge.cpp +++ b/tests/TestMerge.cpp @@ -1159,12 +1159,12 @@ void TestMerge::testMetadata() { QSKIP("Sophisticated merging for Metadata not implemented"); // TODO HNH: I think a merge of recycle bins would be nice since duplicating them - // is not realy a good solution - the one to use as final recycle bin + // is not really a good solution - the one to use as final recycle bin // is determined by the merge method - if only one has a bin, this one // will be used - exception is the target has no recycle bin activated } -void TestMerge::testCustomdata() +void TestMerge::testCustomData() { QScopedPointer<Database> dbDestination(new Database()); QScopedPointer<Database> dbSource(createTestDatabase()); @@ -1172,7 +1172,7 @@ void TestMerge::testCustomdata() QScopedPointer<Database> dbSource2(createTestDatabase()); m_clock->advanceSecond(1); - + dbDestination->metadata()->customData()->set("toBeDeleted", "value"); dbDestination->metadata()->customData()->set("key3", "oldValue"); @@ -1198,10 +1198,9 @@ void TestMerge::testCustomdata() m_clock->advanceSecond(1); Merger merger(dbSource.data(), dbDestination.data()); - merger.merge(); + QStringList changes = merger.merge(); - Merger merger2(dbSource2.data(), dbDestination2.data()); - merger2.merge(); + QVERIFY(!changes.isEmpty()); // Source is newer, data should be merged QVERIFY(!dbDestination->metadata()->customData()->isEmpty()); @@ -1212,7 +1211,19 @@ void TestMerge::testCustomdata() QCOMPARE(dbDestination->metadata()->customData()->value("key1"), QString("value1")); QCOMPARE(dbDestination->metadata()->customData()->value("key2"), QString("value2")); QCOMPARE(dbDestination->metadata()->customData()->value("Browser"), QString("n'8=3W@L^6d->d.]St_>]")); - QCOMPARE(dbDestination->metadata()->customData()->value("key3"), QString("newValue")); // Old value should be replaced + QCOMPARE(dbDestination->metadata()->customData()->value("key3"), + QString("newValue")); // Old value should be replaced + + // Merging again should not do anything if the values are the same. + m_clock->advanceSecond(1); + dbSource->metadata()->customData()->set("key3", "oldValue"); + dbSource->metadata()->customData()->set("key3", "newValue"); + Merger merger2(dbSource.data(), dbDestination.data()); + QStringList changes2 = merger2.merge(); + QVERIFY(changes2.isEmpty()); + + Merger merger3(dbSource2.data(), dbDestination2.data()); + merger3.merge(); // Target is newer, no data is merged QVERIFY(!dbDestination2->metadata()->customData()->isEmpty()); @@ -1220,7 +1231,8 @@ void TestMerge::testCustomdata() QVERIFY(!dbDestination2->metadata()->customData()->contains("key2")); QVERIFY(!dbDestination2->metadata()->customData()->contains("Browser")); QVERIFY(dbDestination2->metadata()->customData()->contains("notToBeDeleted")); - QCOMPARE(dbDestination2->metadata()->customData()->value("key3"), QString("oldValue")); // Old value should not be replaced + QCOMPARE(dbDestination2->metadata()->customData()->value("key3"), + QString("oldValue")); // Old value should not be replaced } void TestMerge::testDeletedEntry() |