summaryrefslogtreecommitdiffstats
path: root/tests/auto/installer/shared/commonfunctions.h
diff options
context:
space:
mode:
authorArttu Tarkiainen <arttu.tarkiainen@qt.io>2020-04-07 14:35:24 +0300
committerArttu Tarkiainen <arttu.tarkiainen@qt.io>2020-04-08 15:17:54 +0300
commit3d402f1c16c8ad5d97f5e5eb03ebb0e000d74e1b (patch)
tree00e34c78c51a119628caa56e8896df3c38f499d3 /tests/auto/installer/shared/commonfunctions.h
parent39fc2b00fa981d3f67b8c142d59f69e2dddfa1e3 (diff)
Fix bugs in InstallIconsOperation and add unit tests
- Fix conflicting naming and reference of operation value in InstallIconsOperation::targetDirectory(). - Fix bug related to appending of "icons" suffix to paths in XDG_DATA_HOME, the logic was glued to old default values which have been since changed. - Remove unused variable in class destructor and remove unneeded default implementation. Also add unit and CLI tests for InstallIconsOperation and move addToFileMap() to common functions so it can be used in multiple tests. Task-number: QTIFW-1715 Task-number: QTIFW-1465 Change-Id: I5281ca7a5dec1453f49fbe2cb2852d6467bf0c97 Reviewed-by: Katja Marttila <katja.marttila@qt.io>
Diffstat (limited to 'tests/auto/installer/shared/commonfunctions.h')
-rw-r--r--tests/auto/installer/shared/commonfunctions.h24
1 files changed, 24 insertions, 0 deletions
diff --git a/tests/auto/installer/shared/commonfunctions.h b/tests/auto/installer/shared/commonfunctions.h
index bf96c5648..aac1e11e4 100644
--- a/tests/auto/installer/shared/commonfunctions.h
+++ b/tests/auto/installer/shared/commonfunctions.h
@@ -33,6 +33,8 @@
#include <QTest>
#include <QString>
#include <QStringList>
+#include <QCryptographicHash>
+#include <QFile>
struct VerifyInstaller
{
@@ -67,5 +69,27 @@ struct VerifyInstaller
QDir dir(installDir);
QCOMPARE(dir.entryList(QStringList() << "*.*", QDir::Files).count(), fileList.count());
}
+
+ static void addToFileMap(const QDir &baseDir, const QFileInfo &fileInfo, QMap<QString, QByteArray> &map)
+ {
+ QDir directory(fileInfo.absoluteFilePath());
+ directory.setFilter(QDir::NoDotAndDotDot | QDir::NoSymLinks | QDir::AllDirs | QDir::Files);
+ QFileInfoList fileInfoList = directory.entryInfoList();
+
+ foreach (const QFileInfo &info, fileInfoList) {
+ if (info.isDir()) {
+ map.insert(baseDir.relativeFilePath(info.filePath()), QByteArray());
+ addToFileMap(baseDir, info, map);
+ } else {
+ QCryptographicHash hash(QCryptographicHash::Sha1);
+ QFile file(info.absoluteFilePath());
+ QVERIFY(file.open(QIODevice::ReadOnly));
+ QVERIFY(hash.addData(&file));
+ map.insert(baseDir.relativeFilePath(info.filePath()), hash.result().toHex());
+ file.close();
+ }
+ }
+ }
+
};
#endif