Fix duplicate icon add in export

SharedObserver did not check for already added icons add during export
leading to duplicate icons in the target db.
This commit is contained in:
Christian Kieschnick 2019-04-12 12:21:20 +02:00 committed by Jonathan White
parent 771ecdba12
commit 05bee40f0a
5 changed files with 37 additions and 5 deletions

View file

@ -1127,6 +1127,34 @@ void TestMerge::testMergeCustomIcons()
QVERIFY(dbDestination->metadata()->containsCustomIcon(customIconId));
}
/**
* No duplicate icons should be created
*/
void TestMerge::testMergeDuplicateCustomIcons()
{
QScopedPointer<Database> dbDestination(new Database());
QScopedPointer<Database> dbSource(createTestDatabase());
m_clock->advanceSecond(1);
QUuid customIconId = QUuid::createUuid();
QImage customIcon;
dbSource->metadata()->addCustomIcon(customIconId, customIcon);
dbDestination->metadata()->addCustomIcon(customIconId, customIcon);
// Sanity check.
QVERIFY(dbSource->metadata()->containsCustomIcon(customIconId));
QVERIFY(dbDestination->metadata()->containsCustomIcon(customIconId));
m_clock->advanceSecond(1);
Merger merger(dbSource.data(), dbDestination.data());
merger.merge();
QVERIFY(dbDestination->metadata()->containsCustomIcon(customIconId));
QCOMPARE(dbDestination->metadata()->customIcons().count(), 1);
}
void TestMerge::testMetadata()
{
QSKIP("Sophisticated merging for Metadata not implemented");