Add unit test for Metadata::copyCustomIcons().

This commit is contained in:
Felix Geyer 2013-04-07 19:38:18 +02:00
parent fe42861bed
commit 5786e2620a
2 changed files with 54 additions and 0 deletions

View File

@ -480,4 +480,57 @@ void TestGroup::testClone()
delete db;
}
void TestGroup::testCopyCustomIcons()
{
Database* dbSource = new Database();
Database* dbTarget = new Database();
QImage iconImage1(1, 1, QImage::Format_RGB32);
iconImage1.setPixel(0, 0, qRgb(1, 2, 3));
QImage iconImage2(1, 1, QImage::Format_RGB32);
iconImage2.setPixel(0, 0, qRgb(4, 5, 6));
Group* group1 = new Group();
group1->setParent(dbSource->rootGroup());
Uuid group1Icon = Uuid::random();
dbSource->metadata()->addCustomIcon(group1Icon, iconImage1);
group1->setIcon(group1Icon);
Group* group2 = new Group();
group2->setParent(group1);
Uuid group2Icon = Uuid::random();
dbSource->metadata()->addCustomIcon(group2Icon, iconImage1);
group2->setIcon(group2Icon);
Entry* entry1 = new Entry();
entry1->setGroup(group2);
Uuid entry1IconOld = Uuid::random();
dbSource->metadata()->addCustomIcon(entry1IconOld, iconImage1);
entry1->setIcon(entry1IconOld);
// add history item
entry1->beginUpdate();
Uuid entry1IconNew = Uuid::random();
dbSource->metadata()->addCustomIcon(entry1IconNew, iconImage1);
entry1->setIcon(entry1IconNew);
entry1->endUpdate();
// test that we don't overwrite icons
dbTarget->metadata()->addCustomIcon(group2Icon, iconImage2);
dbTarget->metadata()->copyCustomIcons(group1->customIconsRecursive(), dbSource->metadata());
Metadata* metaTarget = dbTarget->metadata();
QCOMPARE(metaTarget->customIcons().size(), 4);
QVERIFY(metaTarget->containsCustomIcon(group1Icon));
QVERIFY(metaTarget->containsCustomIcon(group2Icon));
QVERIFY(metaTarget->containsCustomIcon(entry1IconOld));
QVERIFY(metaTarget->containsCustomIcon(entry1IconNew));
QCOMPARE(metaTarget->customIcon(group1Icon).pixel(0, 0), qRgb(1, 2, 3));
QCOMPARE(metaTarget->customIcon(group2Icon).pixel(0, 0), qRgb(4, 5, 6));
}
QTEST_GUILESS_MAIN(TestGroup)

View File

@ -34,6 +34,7 @@ private Q_SLOTS:
void testSearch();
void testAndConcatenationInSearch();
void testClone();
void testCopyCustomIcons();
};
#endif // KEEPASSX_TESTGROUP_H