Welcome to mirror list, hosted at ThFree Co, Russian Federation.

github.com/keepassxreboot/keepassxc.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
path: root/tests
diff options
context:
space:
mode:
authorlouib <code@louib.net>2021-03-13 22:07:49 +0300
committerJonathan White <support@dmapps.us>2021-11-12 15:41:30 +0300
commit004f2b6801d93116277778611920793b7dbe0afb (patch)
treeab328622af017c0e5735ffd0588480321bbed07d /tests
parent6f5bbf7ad1048abc3db7e378df654a61954f77e3 (diff)
Removing QWidget dependency from src/core.
Diffstat (limited to 'tests')
-rw-r--r--tests/TestEntryModel.cpp3
-rw-r--r--tests/TestGroup.cpp33
-rw-r--r--tests/TestKeePass1Reader.cpp18
-rw-r--r--tests/TestKeePass2Format.cpp16
-rw-r--r--tests/TestMerge.cpp15
-rw-r--r--tests/gui/TestGuiPixmaps.cpp36
6 files changed, 50 insertions, 71 deletions
diff --git a/tests/TestEntryModel.cpp b/tests/TestEntryModel.cpp
index 724d3f5c1..ce4b66881 100644
--- a/tests/TestEntryModel.cpp
+++ b/tests/TestEntryModel.cpp
@@ -20,9 +20,10 @@
#include <QSignalSpy>
#include <QTest>
-#include "core/DatabaseIcons.h"
+#include "core/Entry.h"
#include "core/Group.h"
#include "crypto/Crypto.h"
+#include "gui/DatabaseIcons.h"
#include "gui/IconModels.h"
#include "gui/SortFilterHideProxyModel.h"
#include "gui/entry/AutoTypeAssociationsModel.h"
diff --git a/tests/TestGroup.cpp b/tests/TestGroup.cpp
index ccc94cc90..55c54d821 100644
--- a/tests/TestGroup.cpp
+++ b/tests/TestGroup.cpp
@@ -315,36 +315,34 @@ void TestGroup::testCopyCustomIcon()
QScopedPointer<Database> dbSource(new Database());
QUuid groupIconUuid = QUuid::createUuid();
- QImage groupIcon(16, 16, QImage::Format_RGB32);
- groupIcon.setPixel(0, 0, qRgb(255, 0, 0));
+ QByteArray groupIcon("group icon");
dbSource->metadata()->addCustomIcon(groupIconUuid, groupIcon);
QUuid entryIconUuid = QUuid::createUuid();
- QImage entryIcon(16, 16, QImage::Format_RGB32);
- entryIcon.setPixel(0, 0, qRgb(255, 0, 0));
+ QByteArray entryIcon("entry icon");
dbSource->metadata()->addCustomIcon(entryIconUuid, entryIcon);
Group* group = new Group();
group->setParent(dbSource->rootGroup());
group->setIcon(groupIconUuid);
- QCOMPARE(group->icon(), groupIcon);
+ QCOMPARE(group->database()->metadata()->customIcon(groupIconUuid), groupIcon);
Entry* entry = new Entry();
entry->setGroup(dbSource->rootGroup());
entry->setIcon(entryIconUuid);
- QCOMPARE(entry->icon(), entryIcon);
+ QCOMPARE(entry->database()->metadata()->customIcon(entryIconUuid), entryIcon);
QScopedPointer<Database> dbTarget(new Database());
group->setParent(dbTarget->rootGroup());
QVERIFY(dbTarget->metadata()->hasCustomIcon(groupIconUuid));
QCOMPARE(dbTarget->metadata()->customIcon(groupIconUuid), groupIcon);
- QCOMPARE(group->icon(), groupIcon);
+ QCOMPARE(group->database()->metadata()->customIcon(groupIconUuid), groupIcon);
entry->setGroup(dbTarget->rootGroup());
QVERIFY(dbTarget->metadata()->hasCustomIcon(entryIconUuid));
QCOMPARE(dbTarget->metadata()->customIcon(entryIconUuid), entryIcon);
- QCOMPARE(entry->icon(), entryIcon);
+ QCOMPARE(entry->database()->metadata()->customIcon(entryIconUuid), entryIcon);
}
void TestGroup::testClone()
@@ -425,11 +423,9 @@ void TestGroup::testCopyCustomIcons()
QScopedPointer<Database> dbSource(new Database());
QScopedPointer<Database> dbTarget(new Database());
- QImage iconImage1(1, 1, QImage::Format_RGB32);
- iconImage1.setPixel(0, 0, qRgb(1, 2, 3));
+ QByteArray iconImage1("icon 1");
- QImage iconImage2(1, 1, QImage::Format_RGB32);
- iconImage2.setPixel(0, 0, qRgb(4, 5, 6));
+ QByteArray iconImage2("icon 2");
QScopedPointer<Group> group1(new Group());
group1->setParent(dbSource->rootGroup());
@@ -469,8 +465,8 @@ void TestGroup::testCopyCustomIcons()
QVERIFY(metaTarget->hasCustomIcon(entry1IconOld));
QVERIFY(metaTarget->hasCustomIcon(entry1IconNew));
- QCOMPARE(metaTarget->customIcon(group1Icon).pixel(0, 0), qRgb(1, 2, 3));
- QCOMPARE(metaTarget->customIcon(group2Icon).pixel(0, 0), qRgb(4, 5, 6));
+ QCOMPARE(metaTarget->customIcon(group1Icon), iconImage1);
+ QCOMPARE(metaTarget->customIcon(group2Icon), iconImage2);
}
void TestGroup::testFindEntry()
@@ -1075,21 +1071,18 @@ void TestGroup::testApplyGroupIconRecursively()
// Set an icon per UUID to the subgroup and apply recursively
// -> all groups and entries except the root group have the same icon
const QUuid subgroupIconUuid = QUuid::createUuid();
- QImage subgroupIcon(16, 16, QImage::Format_RGB32);
- subgroupIcon.setPixel(0, 0, qRgb(255, 0, 0));
+ QByteArray subgroupIcon("subgroup icon");
+
database.metadata()->addCustomIcon(subgroupIconUuid, subgroupIcon);
subgroup->setIcon(subgroupIconUuid);
subgroup->applyGroupIconToChildGroups();
subgroup->applyGroupIconToChildEntries();
QVERIFY(database.rootGroup()->iconNumber() == rootIconNumber);
QCOMPARE(subgroup->iconUuid(), subgroupIconUuid);
- QCOMPARE(subgroup->icon(), subgroupIcon);
QCOMPARE(subgroupEntry->iconUuid(), subgroupIconUuid);
- QCOMPARE(subgroupEntry->icon(), subgroupIcon);
QCOMPARE(subsubgroup->iconUuid(), subgroupIconUuid);
- QCOMPARE(subsubgroup->icon(), subgroupIcon);
QCOMPARE(subsubgroupEntry->iconUuid(), subgroupIconUuid);
- QCOMPARE(subsubgroupEntry->icon(), subgroupIcon);
+ QCOMPARE(subgroup->database()->metadata()->customIcon(subgroupIconUuid), subgroupIcon);
// Reset all icons to root icon
database.rootGroup()->setIcon(rootIconNumber);
diff --git a/tests/TestKeePass1Reader.cpp b/tests/TestKeePass1Reader.cpp
index 9983cf74c..d7a04bdbb 100644
--- a/tests/TestKeePass1Reader.cpp
+++ b/tests/TestKeePass1Reader.cpp
@@ -114,20 +114,12 @@ void TestKeePass1Reader::testMasterKey()
void TestKeePass1Reader::testCustomIcons()
{
QCOMPARE(m_db->metadata()->customIconsOrder().size(), 1);
+ QUuid uuid = m_db->metadata()->customIconsOrder().at(0);
+ QVERIFY(m_db->metadata()->hasCustomIcon(uuid));
+ QByteArray icon = m_db->metadata()->customIcon(uuid);
- Entry* entry = m_db->rootGroup()->children().at(1)->entries().at(0);
-
- QCOMPARE(entry->icon().width(), 16);
- QCOMPARE(entry->icon().height(), 16);
-
- for (int x = 0; x < 16; x++) {
- for (int y = 0; y < 16; y++) {
- QRgb rgb = entry->icon().pixel(x, y);
- QCOMPARE(qRed(rgb), 8);
- QCOMPARE(qGreen(rgb), 160);
- QCOMPARE(qBlue(rgb), 60);
- }
- }
+ QVERIFY(icon.startsWith(
+ "\x89PNG\r\n\x1A\n\x00\x00\x00\rIHDR\x00\x00\x00\x10\x00\x00\x00\x10\b\x06\x00\x00\x00\x1F\xF3\xFF"));
}
void TestKeePass1Reader::testGroupExpanded()
diff --git a/tests/TestKeePass2Format.cpp b/tests/TestKeePass2Format.cpp
index bbe9f3c3e..397c8bd1c 100644
--- a/tests/TestKeePass2Format.cpp
+++ b/tests/TestKeePass2Format.cpp
@@ -113,18 +113,10 @@ void TestKeePass2Format::testXmlCustomIcons()
QCOMPARE(m_xmlDb->metadata()->customIconsOrder().size(), 1);
QUuid uuid = QUuid::fromRfc4122(QByteArray::fromBase64("++vyI+daLk6omox4a6kQGA=="));
QVERIFY(m_xmlDb->metadata()->hasCustomIcon(uuid));
- QImage icon = m_xmlDb->metadata()->customIcon(uuid);
- QCOMPARE(icon.width(), 16);
- QCOMPARE(icon.height(), 16);
-
- for (int x = 0; x < 16; x++) {
- for (int y = 0; y < 16; y++) {
- QRgb rgb = icon.pixel(x, y);
- QCOMPARE(qRed(rgb), 128);
- QCOMPARE(qGreen(rgb), 0);
- QCOMPARE(qBlue(rgb), 128);
- }
- }
+ QByteArray icon = m_xmlDb->metadata()->customIcon(uuid);
+
+ QVERIFY(icon.startsWith(
+ "\x89PNG\r\n\x1A\n\x00\x00\x00\rIHDR\x00\x00\x00\x10\x00\x00\x00\x10\b\x06\x00\x00\x00\x1F\xF3\xFF"));
}
void TestKeePass2Format::testXmlGroupRoot()
diff --git a/tests/TestMerge.cpp b/tests/TestMerge.cpp
index 8018861e8..7fc1d1dc8 100644
--- a/tests/TestMerge.cpp
+++ b/tests/TestMerge.cpp
@@ -998,8 +998,7 @@ void TestMerge::testUpdateGroup()
groupSourceInitial->setName("group2 renamed");
groupSourceInitial->setNotes("updated notes");
QUuid customIconId = QUuid::createUuid();
- QImage customIcon;
- dbSource->metadata()->addCustomIcon(customIconId, customIcon);
+ dbSource->metadata()->addCustomIcon(customIconId, QString("custom icon").toLocal8Bit());
groupSourceInitial->setIcon(customIconId);
QPointer<Entry> entrySourceInitial = dbSource->rootGroup()->findEntryByPath("entry1");
@@ -1113,9 +1112,8 @@ void TestMerge::testMergeCustomIcons()
m_clock->advanceSecond(1);
QUuid customIconId = QUuid::createUuid();
- QImage customIcon;
- dbSource->metadata()->addCustomIcon(customIconId, customIcon);
+ dbSource->metadata()->addCustomIcon(customIconId, QString("custom icon").toLocal8Bit());
// Sanity check.
QVERIFY(dbSource->metadata()->hasCustomIcon(customIconId));
@@ -1138,10 +1136,12 @@ void TestMerge::testMergeDuplicateCustomIcons()
m_clock->advanceSecond(1);
QUuid customIconId = QUuid::createUuid();
- QImage customIcon;
- dbSource->metadata()->addCustomIcon(customIconId, customIcon);
- dbDestination->metadata()->addCustomIcon(customIconId, customIcon);
+ QByteArray customIcon1 = QString("custom icon 1").toLocal8Bit();
+ QByteArray customIcon2 = QString("custom icon 2").toLocal8Bit();
+
+ dbSource->metadata()->addCustomIcon(customIconId, customIcon1);
+ dbDestination->metadata()->addCustomIcon(customIconId, customIcon2);
// Sanity check.
QVERIFY(dbSource->metadata()->hasCustomIcon(customIconId));
QVERIFY(dbDestination->metadata()->hasCustomIcon(customIconId));
@@ -1153,6 +1153,7 @@ void TestMerge::testMergeDuplicateCustomIcons()
QVERIFY(dbDestination->metadata()->hasCustomIcon(customIconId));
QCOMPARE(dbDestination->metadata()->customIconsOrder().count(), 1);
+ QCOMPARE(dbDestination->metadata()->customIcon(customIconId), customIcon2);
}
void TestMerge::testMetadata()
diff --git a/tests/gui/TestGuiPixmaps.cpp b/tests/gui/TestGuiPixmaps.cpp
index 1c78b8962..f18cba221 100644
--- a/tests/gui/TestGuiPixmaps.cpp
+++ b/tests/gui/TestGuiPixmaps.cpp
@@ -16,12 +16,14 @@
*/
#include "TestGuiPixmaps.h"
-#include "core/DatabaseIcons.h"
#include "core/Metadata.h"
+#include <QTest>
+
#include "core/Group.h"
#include "crypto/Crypto.h"
-#include <QTest>
+#include "gui/DatabaseIcons.h"
+#include "gui/Icons.h"
void TestGuiPixmaps::initTestCase()
{
@@ -30,55 +32,53 @@ void TestGuiPixmaps::initTestCase()
void TestGuiPixmaps::testDatabaseIcons()
{
- // check if the cache works correctly
- auto pixmap = databaseIcons()->icon(0);
- auto pixmapCached = databaseIcons()->icon(0);
- QCOMPARE(pixmapCached.cacheKey(), pixmap.cacheKey());
+ QVERIFY(!databaseIcons()->icon(0).isNull());
}
void TestGuiPixmaps::testEntryIcons()
{
QScopedPointer<Database> db(new Database());
- Entry* entry = new Entry();
+ auto entry = new Entry();
entry->setGroup(db->rootGroup());
// Test setting standard icon
entry->setIcon(10);
- auto pixmap = entry->iconPixmap();
- QCOMPARE(pixmap.cacheKey(), databaseIcons()->icon(10).cacheKey());
+ auto pixmap = Icons::entryIconPixmap(entry);
+ QVERIFY(pixmap.toImage() == databaseIcons()->icon(10).toImage());
// Test setting custom icon
QUuid iconUuid = QUuid::createUuid();
QImage icon(2, 1, QImage::Format_RGB32);
icon.setPixel(0, 0, qRgb(0, 0, 0));
icon.setPixel(1, 0, qRgb(0, 0, 50));
- db->metadata()->addCustomIcon(iconUuid, icon);
+ db->metadata()->addCustomIcon(iconUuid, Icons::saveToBytes(icon));
+ QCOMPARE(db->metadata()->customIconsOrder().count(), 1);
entry->setIcon(iconUuid);
- pixmap = entry->iconPixmap();
- QCOMPARE(pixmap.cacheKey(), db->metadata()->customIconPixmap(iconUuid).cacheKey());
+ // Confirm the icon is the same as that stored in the database
+ QVERIFY(Icons::entryIconPixmap(entry).toImage() == Icons::customIconPixmap(db.data(), iconUuid).toImage());
}
void TestGuiPixmaps::testGroupIcons()
{
QScopedPointer<Database> db(new Database());
- Group* group = db->rootGroup();
+ auto group = db->rootGroup();
// Test setting standard icon
group->setIcon(10);
- auto pixmap = group->iconPixmap();
- QCOMPARE(pixmap.cacheKey(), databaseIcons()->icon(10).cacheKey());
+ auto pixmap = Icons::groupIconPixmap(group);
+ QVERIFY(pixmap.toImage() == databaseIcons()->icon(10).toImage());
// Test setting custom icon
QUuid iconUuid = QUuid::createUuid();
QImage icon(2, 1, QImage::Format_RGB32);
icon.setPixel(0, 0, qRgb(0, 0, 0));
icon.setPixel(1, 0, qRgb(0, 0, 50));
- db->metadata()->addCustomIcon(iconUuid, icon);
+ db->metadata()->addCustomIcon(iconUuid, Icons::saveToBytes(icon));
group->setIcon(iconUuid);
- pixmap = group->iconPixmap();
- QCOMPARE(pixmap.cacheKey(), db->metadata()->customIconPixmap(iconUuid).cacheKey());
+ // Confirm the icon is the same as that stored in the database
+ QVERIFY(Icons::groupIconPixmap(group).toImage() == Icons::customIconPixmap(db.data(), iconUuid).toImage());
}
QTEST_MAIN(TestGuiPixmaps)