From 7f3cca72453373e7a9785daeb1c1d7189605d56d Mon Sep 17 00:00:00 2001 From: Katja Marttila Date: Thu, 7 May 2020 13:34:16 +0300 Subject: UnitTests: Cleanup code Move recurred code to common functions, remove unnecessary includes Change-Id: Idfe3a0c952d1154470ecb229ff3c1e428beaa3ac Reviewed-by: Arttu Tarkiainen --- .../tst_appendfileoperation.cpp | 19 +-- .../installer/cliinterface/tst_cliinterface.cpp | 167 ++++++++++----------- .../commandlineupdate/tst_commandlineupdate.cpp | 19 +-- .../tst_consumeoutputoperationtest.cpp | 23 +-- .../tst_copydirectoryoperation.cpp | 21 +-- .../copyoperationtest/tst_copyoperationtest.cpp | 23 +-- .../tst_createdesktopentryoperation.cpp | 13 +- .../tst_createshortcutoperation.cpp | 2 +- .../deleteoperation/tst_deleteoperation.cpp | 20 +-- .../tst_environmentvariableoperation.cpp | 19 +-- .../tst_installiconsoperation.cpp | 20 +-- .../licenseagreement/tst_licenseagreement.cpp | 19 +-- .../tst_linereplaceoperation.cpp | 19 +-- .../messageboxhandler/tst_messageboxhandler.cpp | 2 +- .../installer/moveoperation/tst_moveoperation.cpp | 22 +-- .../tst_registerfiletypeoperation.cpp | 19 +-- .../replaceoperation/tst_replaceoperation.cpp | 18 +-- .../settingsoperation/tst_settingsoperation.cpp | 24 +-- tests/auto/installer/shared/commonfunctions.h | 95 ------------ tests/auto/installer/shared/packagemanager.h | 64 ++++++++ tests/auto/installer/shared/verifyinstaller.h | 92 ++++++++++++ .../tst_simplemovefileoperation.cpp | 17 +-- 22 files changed, 304 insertions(+), 433 deletions(-) delete mode 100644 tests/auto/installer/shared/commonfunctions.h create mode 100644 tests/auto/installer/shared/packagemanager.h create mode 100644 tests/auto/installer/shared/verifyinstaller.h (limited to 'tests') diff --git a/tests/auto/installer/appendfileoperation/tst_appendfileoperation.cpp b/tests/auto/installer/appendfileoperation/tst_appendfileoperation.cpp index a2670b332..27061fe4b 100644 --- a/tests/auto/installer/appendfileoperation/tst_appendfileoperation.cpp +++ b/tests/auto/installer/appendfileoperation/tst_appendfileoperation.cpp @@ -25,16 +25,11 @@ ** $QT_END_LICENSE$ ** **************************************************************************/ +#include "../shared/packagemanager.h" #include - #include -#include -#include -#include -#include -#include #include #include @@ -116,18 +111,10 @@ private slots: void testPerformingFromCLI() { - QInstaller::init(); //This will eat debug output - PackageManagerCore *core = new PackageManagerCore(BinaryContent::MagicInstallerMarker, QList ()); - core->setAllowedRunningProcesses(QStringList() << QCoreApplication::applicationFilePath()); - QSet repoList; - Repository repo = Repository::fromUserInput(":///data/repository"); - repoList.insert(repo); - core->settings().setDefaultRepositories(repoList); - QString installDir = QInstaller::generateTemporaryFileName(); QVERIFY(QDir().mkpath(installDir)); - - core->setValue(scTargetDir, installDir); + PackageManagerCore *core = PackageManager::getPackageManagerWithInit + (installDir, ":///data/repository"); core->installDefaultComponentsSilently(); QFile file(installDir + QDir::separator() + "A.txt"); diff --git a/tests/auto/installer/cliinterface/tst_cliinterface.cpp b/tests/auto/installer/cliinterface/tst_cliinterface.cpp index c38e0c850..6040927ea 100644 --- a/tests/auto/installer/cliinterface/tst_cliinterface.cpp +++ b/tests/auto/installer/cliinterface/tst_cliinterface.cpp @@ -25,18 +25,11 @@ ** $QT_END_LICENSE$ ** **************************************************************************/ +#include "../shared/packagemanager.h" +#include "../shared/verifyinstaller.h" -#include "metadatajob.h" -#include "settings.h" -#include "init.h" -#include "../shared/commonfunctions.h" - -#include #include -#include -#include #include -#include #include #include @@ -56,22 +49,6 @@ private: QTest::ignoreMessage(QtDebugMsg, "Id: AB"); } - PackageManagerCore &initPackagemanager(const QString &repository) - { - PackageManagerCore *core = new PackageManagerCore(BinaryContent::MagicInstallerMarker, QList ()); - QString appFilePath = QCoreApplication::applicationFilePath(); - core->setAllowedRunningProcesses(QStringList() << appFilePath); - QSet repoList; - Repository repo = Repository::fromUserInput(repository); - repoList.insert(repo); - core->settings().setDefaultRepositories(repoList); - - m_installDir = QInstaller::generateTemporaryFileName(); - QDir().mkpath(m_installDir); - core->setValue(scTargetDir, m_installDir); - return *core; - } - private slots: void testListAvailablePackages() { @@ -80,30 +57,31 @@ private slots: QTest::ignoreMessage(QtDebugMsg, "Operations sanity check succeeded."); - PackageManagerCore &core = initPackagemanager(":///data/repository"); + PackageManagerCore *core = PackageManager::getPackageManager + (m_installDir, ":///data/repository"); QLoggingCategory::setFilterRules(loggingRules); setIgnoreMessage(); - core.listAvailablePackages(QLatin1String(".")); + core->listAvailablePackages(QLatin1String(".")); QTest::ignoreMessage(QtDebugMsg, "Id: A"); QTest::ignoreMessage(QtDebugMsg, "Id: AB"); - core.listAvailablePackages(QLatin1String("A")); + core->listAvailablePackages(QLatin1String("A")); QTest::ignoreMessage(QtDebugMsg, "Id: A"); QTest::ignoreMessage(QtDebugMsg, "Id: AB"); - core.listAvailablePackages(QLatin1String("A.*")); + core->listAvailablePackages(QLatin1String("A.*")); QTest::ignoreMessage(QtDebugMsg, "Id: B"); - core.listAvailablePackages(QLatin1String("^B")); + core->listAvailablePackages(QLatin1String("^B")); QTest::ignoreMessage(QtDebugMsg, "Id: B"); - core.listAvailablePackages(QLatin1String("^B.*")); + core->listAvailablePackages(QLatin1String("^B.*")); QTest::ignoreMessage(QtDebugMsg, "Id: C"); - core.listAvailablePackages(QLatin1String("^C")); + core->listAvailablePackages(QLatin1String("^C")); } void testInstallPackageFails() @@ -111,25 +89,26 @@ private slots: QString loggingRules = (QLatin1String("ifw.* = false\n" "ifw.installer.installlog = true\n")); - PackageManagerCore &core = initPackagemanager(":///data/uninstallableComponentsRepository"); + PackageManagerCore *core = PackageManager::getPackageManager + (m_installDir, ":///data/uninstallableComponentsRepository"); QLoggingCategory::setFilterRules(loggingRules); QTest::ignoreMessage(QtDebugMsg, "\"Preparing meta information download...\""); QTest::ignoreMessage(QtDebugMsg, "Cannot install component A. Component is installed only as automatic dependency to autoDep."); - core.installSelectedComponentsSilently(QStringList() << QLatin1String("A")); + core->installSelectedComponentsSilently(QStringList() << QLatin1String("A")); QTest::ignoreMessage(QtDebugMsg, "\"Preparing meta information download...\""); QTest::ignoreMessage(QtDebugMsg, "Cannot install component AB. Component is not checkable meaning you have to select one of the subcomponents."); - core.installSelectedComponentsSilently(QStringList() << QLatin1String("AB")); + core->installSelectedComponentsSilently(QStringList() << QLatin1String("AB")); QTest::ignoreMessage(QtDebugMsg, "\"Preparing meta information download...\""); QTest::ignoreMessage(QtDebugMsg, "Cannot install B. Component is virtual."); - core.installSelectedComponentsSilently(QStringList() << QLatin1String("B")); + core->installSelectedComponentsSilently(QStringList() << QLatin1String("B")); QTest::ignoreMessage(QtDebugMsg, "\"Preparing meta information download...\""); QTest::ignoreMessage(QtDebugMsg, "Cannot install MissingComponent. Component not found."); - core.installSelectedComponentsSilently(QStringList() << QLatin1String("MissingComponent")); + core->installSelectedComponentsSilently(QStringList() << QLatin1String("MissingComponent")); } void testUninstallPackageFails() @@ -179,9 +158,9 @@ private slots: void testInstallPackageSilently() { - QInstaller::init(); //This will eat debug output - PackageManagerCore &core = initPackagemanager(":///data/installPackagesRepository"); - core.installSelectedComponentsSilently(QStringList() << QLatin1String("componentA")); + PackageManagerCore *core = PackageManager::getPackageManagerWithInit + (m_installDir, ":///data/installPackagesRepository"); + core->installSelectedComponentsSilently(QStringList() << QLatin1String("componentA")); VerifyInstaller::verifyInstallerResources(m_installDir, "componentA", "1.0.0content.txt"); VerifyInstaller::verifyInstallerResources(m_installDir, "componentE", "1.0.0content.txt"); //ForcedInstall VerifyInstaller::verifyInstallerResources(m_installDir, "componentG", "1.0.0content.txt"); //Depends on componentA @@ -191,15 +170,15 @@ private slots: void testUninstallPackageSilently() { - QInstaller::init(); //This will eat debug output - PackageManagerCore &core = initPackagemanager(":///data/installPackagesRepository"); - core.installSelectedComponentsSilently(QStringList() << QLatin1String("componentA")); + PackageManagerCore *core = PackageManager::getPackageManagerWithInit + (m_installDir, ":///data/installPackagesRepository"); + core->installSelectedComponentsSilently(QStringList() << QLatin1String("componentA")); VerifyInstaller::verifyFileExistence(m_installDir, QStringList() << "components.xml" << "installcontentE.txt" << "installcontentA.txt" << "installcontent.txt" << "installcontentG.txt"); - core.commitSessionOperations(); - core.setPackageManager(); - core.uninstallComponentsSilently(QStringList() << QLatin1String("componentA")); + core->commitSessionOperations(); + core->setPackageManager(); + core->uninstallComponentsSilently(QStringList() << QLatin1String("componentA")); VerifyInstaller::verifyInstallerResources(m_installDir, "componentE", "1.0.0content.txt"); //ForcedInstall VerifyInstaller::verifyInstallerResourcesDeletion(m_installDir, "componentA"); VerifyInstaller::verifyInstallerResourcesDeletion(m_installDir, "componentG"); //Depends on componentA @@ -208,15 +187,15 @@ private slots: void testRemoveAllSilently() { - QInstaller::init(); //This will eat debug output - PackageManagerCore &core = initPackagemanager(":///data/installPackagesRepository"); - core.installSelectedComponentsSilently(QStringList() << QLatin1String("componentA")); + PackageManagerCore *core = PackageManager::getPackageManagerWithInit + (m_installDir, ":///data/installPackagesRepository"); + core->installSelectedComponentsSilently(QStringList() << QLatin1String("componentA")); VerifyInstaller::verifyFileExistence(m_installDir, QStringList() << "components.xml" << "installcontentE.txt" << "installcontentA.txt" << "installcontent.txt" << "installcontentG.txt"); - core.commitSessionOperations(); - core.setUninstaller(); - QVERIFY(core.removeInstallationSilently()); + core->commitSessionOperations(); + core->setUninstaller(); + QVERIFY(core->removeInstallationSilently()); VerifyInstaller::verifyInstallerResourcesDeletion(m_installDir, "componentA"); VerifyInstaller::verifyInstallerResourcesDeletion(m_installDir, "componentE"); VerifyInstaller::verifyInstallerResourcesDeletion(m_installDir, "componentG"); @@ -232,9 +211,9 @@ private slots: void testInstallWithDependencySilently() { - QInstaller::init(); //This will eat debug output - PackageManagerCore &core = initPackagemanager(":///data/installPackagesRepository"); - core.installSelectedComponentsSilently(QStringList() << QLatin1String("componentC")); + PackageManagerCore *core = PackageManager::getPackageManagerWithInit + (m_installDir, ":///data/installPackagesRepository"); + core->installSelectedComponentsSilently(QStringList() << QLatin1String("componentC")); VerifyInstaller::verifyInstallerResources(m_installDir, "componentA", "1.0.0content.txt"); //Dependency for componentC VerifyInstaller::verifyInstallerResources(m_installDir, "componentB", "1.0.0content.txt"); //Dependency for componentC VerifyInstaller::verifyInstallerResources(m_installDir, "componentE", "1.0.0content.txt"); //ForcedInstall @@ -247,16 +226,16 @@ private slots: void testUninstallWithDependencySilently() { - QInstaller::init(); //This will eat debug output - PackageManagerCore &core = initPackagemanager(":///data/installPackagesRepository"); - core.installSelectedComponentsSilently(QStringList() << QLatin1String("componentC")); + PackageManagerCore *core = PackageManager::getPackageManagerWithInit + (m_installDir, ":///data/installPackagesRepository"); + core->installSelectedComponentsSilently(QStringList() << QLatin1String("componentC")); VerifyInstaller::verifyFileExistence(m_installDir, QStringList() << "components.xml" << "installcontentC.txt" << "installcontent.txt" << "installcontentA.txt" << "installcontentB.txt" << "installcontentD.txt"<< "installcontentE.txt" << "installcontentG.txt"); - core.commitSessionOperations(); - core.setPackageManager(); - core.uninstallComponentsSilently(QStringList() << QLatin1String("componentC")); + core->commitSessionOperations(); + core->setPackageManager(); + core->uninstallComponentsSilently(QStringList() << QLatin1String("componentC")); VerifyInstaller::verifyInstallerResources(m_installDir, "componentA", "1.0.0content.txt"); //Dependency for componentC VerifyInstaller::verifyInstallerResources(m_installDir, "componentB", "1.0.0content.txt"); //Dependency for componentC VerifyInstaller::verifyInstallerResources(m_installDir, "componentE", "1.0.0content.txt"); //ForcedInstall @@ -270,9 +249,9 @@ private slots: void testInstallSubcomponentSilently() { - QInstaller::init(); //This will eat debug output - PackageManagerCore &core = initPackagemanager(":///data/installPackagesRepository"); - core.installSelectedComponentsSilently(QStringList() << QLatin1String("componentF.subcomponent2.subsubcomponent2")); + PackageManagerCore *core = PackageManager::getPackageManagerWithInit + (m_installDir, ":///data/installPackagesRepository"); + core->installSelectedComponentsSilently(QStringList() << QLatin1String("componentF.subcomponent2.subsubcomponent2")); VerifyInstaller::verifyInstallerResources(m_installDir, "componentF.subcomponent2.subsubcomponent2", "1.0.0content.txt"); VerifyInstaller::verifyInstallerResources(m_installDir, "componentF.subcomponent2", "1.0.0content.txt"); VerifyInstaller::verifyInstallerResources(m_installDir, "componentF", "1.0.0content.txt"); @@ -287,16 +266,16 @@ private slots: void testUninstallSubcomponentSilently() { - QInstaller::init(); //This will eat debug output - PackageManagerCore &core = initPackagemanager(":///data/installPackagesRepository"); - core.installSelectedComponentsSilently(QStringList() << QLatin1String("componentF.subcomponent2.subsubcomponent2")); + PackageManagerCore *core = PackageManager::getPackageManagerWithInit + (m_installDir, ":///data/installPackagesRepository"); + core->installSelectedComponentsSilently(QStringList() << QLatin1String("componentF.subcomponent2.subsubcomponent2")); VerifyInstaller::verifyFileExistence(m_installDir, QStringList() << "components.xml" << "installcontentF.txt" << "installcontentF_2.txt" << "installcontentF_2_2.txt" << "installcontent.txt" << "installcontentA.txt" << "installcontentE.txt" << "installcontentG.txt"); - core.commitSessionOperations(); - core.setPackageManager(); - core.uninstallComponentsSilently(QStringList() << QLatin1String("componentF.subcomponent2")); + core->commitSessionOperations(); + core->setPackageManager(); + core->uninstallComponentsSilently(QStringList() << QLatin1String("componentF.subcomponent2")); VerifyInstaller::verifyInstallerResources(m_installDir, "componentA", "1.0.0content.txt"); //Dependency for componentG VerifyInstaller::verifyInstallerResources(m_installDir, "componentE", "1.0.0content.txt"); //ForcedInstall VerifyInstaller::verifyInstallerResources(m_installDir, "componentG", "1.0.0content.txt"); //Default install @@ -310,9 +289,9 @@ private slots: void testInstallDefaultPackagesSilently() { - QInstaller::init(); //This will eat debug output - PackageManagerCore &core = initPackagemanager(":///data/installPackagesRepository"); - core.installDefaultComponentsSilently(); + PackageManagerCore *core = PackageManager::getPackageManagerWithInit + (m_installDir, ":///data/installPackagesRepository"); + core->installDefaultComponentsSilently(); VerifyInstaller::verifyInstallerResources(m_installDir, "componentA", "1.0.0content.txt"); //Dependency for componentG VerifyInstaller::verifyInstallerResources(m_installDir, "componentE", "1.0.0content.txt"); //ForcedInstall VerifyInstaller::verifyInstallerResources(m_installDir, "componentG", "1.0.0content.txt"); //Default @@ -322,15 +301,15 @@ private slots: void testUnInstallDefaultPackagesSilently() { - QInstaller::init(); //This will eat debug output - PackageManagerCore &core = initPackagemanager(":///data/installPackagesRepository"); - core.installDefaultComponentsSilently(); + PackageManagerCore *core = PackageManager::getPackageManagerWithInit + (m_installDir, ":///data/installPackagesRepository"); + core->installDefaultComponentsSilently(); VerifyInstaller::verifyFileExistence(m_installDir, QStringList() << "components.xml" << "installcontent.txt" << "installcontentA.txt" << "installcontentE.txt" << "installcontentG.txt"); - core.commitSessionOperations(); - core.setPackageManager(); - core.uninstallComponentsSilently(QStringList() << "componentG"); + core->commitSessionOperations(); + core->setPackageManager(); + core->uninstallComponentsSilently(QStringList() << "componentG"); VerifyInstaller::verifyInstallerResources(m_installDir, "componentA", "1.0.0content.txt"); //Dependency for componentG VerifyInstaller::verifyInstallerResources(m_installDir, "componentE", "1.0.0content.txt"); //ForcedInstall VerifyInstaller::verifyInstallerResourcesDeletion(m_installDir, "componentG"); @@ -340,12 +319,12 @@ private slots: void testUninstallForcedPackagesSilenly() { - QInstaller::init(); //This will eat debug output - PackageManagerCore &core = initPackagemanager(":///data/installPackagesRepository"); - core.installDefaultComponentsSilently(); - core.commitSessionOperations(); - core.setPackageManager(); - core.uninstallComponentsSilently(QStringList() << "componentE"); + PackageManagerCore *core = PackageManager::getPackageManagerWithInit + (m_installDir, ":///data/installPackagesRepository"); + core->installDefaultComponentsSilently(); + core->commitSessionOperations(); + core->setPackageManager(); + core->uninstallComponentsSilently(QStringList() << "componentE"); //Nothing is uninstalled as componentE is forced install and cannot be uninstalled VerifyInstaller::verifyInstallerResources(m_installDir, "componentA", "1.0.0content.txt"); //Dependency for componentG VerifyInstaller::verifyInstallerResources(m_installDir, "componentE", "1.0.0content.txt"); //ForcedInstall @@ -356,12 +335,12 @@ private slots: void testUninstallAutodependencyPackagesSilenly() { - QInstaller::init(); //This will eat debug output - PackageManagerCore &core = initPackagemanager(":///data/installPackagesRepository"); - core.installSelectedComponentsSilently(QStringList() << "componentA" << "componentB"); - core.commitSessionOperations(); - core.setPackageManager(); - core.uninstallComponentsSilently(QStringList() << "componentD"); + PackageManagerCore *core = PackageManager::getPackageManagerWithInit + (m_installDir, ":///data/installPackagesRepository"); + core->installSelectedComponentsSilently(QStringList() << "componentA" << "componentB"); + core->commitSessionOperations(); + core->setPackageManager(); + core->uninstallComponentsSilently(QStringList() << "componentD"); //Nothing is uninstalled as componentD is installed as autodependency to componentA and componentB VerifyInstaller::verifyInstallerResources(m_installDir, "componentA", "1.0.0content.txt"); VerifyInstaller::verifyInstallerResources(m_installDir, "componentB", "1.0.0content.txt"); @@ -373,6 +352,12 @@ private slots: << "installcontentB.txt" << "installcontentD.txt"); } + void init() + { + m_installDir = QInstaller::generateTemporaryFileName(); + QVERIFY(QDir().mkpath(m_installDir)); + } + void cleanup() { QDir dir(m_installDir); diff --git a/tests/auto/installer/commandlineupdate/tst_commandlineupdate.cpp b/tests/auto/installer/commandlineupdate/tst_commandlineupdate.cpp index d1d174377..78ee7b5b6 100644 --- a/tests/auto/installer/commandlineupdate/tst_commandlineupdate.cpp +++ b/tests/auto/installer/commandlineupdate/tst_commandlineupdate.cpp @@ -26,17 +26,11 @@ ** **************************************************************************/ -#include "metadatajob.h" -#include "settings.h" -#include "init.h" -#include "../shared/commonfunctions.h" +#include "../shared/packagemanager.h" +#include "../shared/verifyinstaller.h" -#include #include -#include -#include #include -#include #include #include @@ -62,17 +56,12 @@ private: private slots: void initTestCase() { - core = new PackageManagerCore(BinaryContent::MagicInstallerMarker, QList ()); - QString appFilePath = QCoreApplication::applicationFilePath(); - core->setAllowedRunningProcesses(QStringList() << appFilePath); m_installDir = QInstaller::generateTemporaryFileName(); - QDir().mkpath(m_installDir); - core->setValue(scTargetDir, m_installDir); + core = PackageManager::getPackageManagerWithInit(m_installDir); } void testUpdatePackageSilently() { - QInstaller::init(); //This will eat debug output setRepository(":///data/installPackagesRepository"); core->installSelectedComponentsSilently(QStringList() << "componentA" << "componentB"); VerifyInstaller::verifyInstallerResources(m_installDir, "componentA", "1.0.0content.txt"); @@ -94,7 +83,6 @@ private slots: void testUpdateTwoPackageSilently() { - QInstaller::init(); //This will eat debug output setRepository(":///data/installPackagesRepository"); core->installSelectedComponentsSilently(QStringList() << "componentA" << "componentB" << "componentG"); VerifyInstaller::verifyInstallerResources(m_installDir, "componentB", "1.0.0content.txt"); @@ -111,7 +99,6 @@ private slots: void testUpdateAllPackagesSilently() { - QInstaller::init(); //This will eat debug output setRepository(":///data/installPackagesRepository"); core->installSelectedComponentsSilently(QStringList() << "componentA" << "componentB" << "componentG" << "componentF"); VerifyInstaller::verifyInstallerResources(m_installDir, "componentF", "1.0.0content.txt"); diff --git a/tests/auto/installer/consumeoutputoperationtest/tst_consumeoutputoperationtest.cpp b/tests/auto/installer/consumeoutputoperationtest/tst_consumeoutputoperationtest.cpp index a6ac774a0..32f8c2d5c 100644 --- a/tests/auto/installer/consumeoutputoperationtest/tst_consumeoutputoperationtest.cpp +++ b/tests/auto/installer/consumeoutputoperationtest/tst_consumeoutputoperationtest.cpp @@ -25,21 +25,15 @@ ** $QT_END_LICENSE$ ** **************************************************************************/ -#include +#include "../shared/packagemanager.h" + #include #include #include -#include #include -#include -#include -#include #include #include -#include -#include -#include #define QUOTE_(x) #x #define QUOTE(x) QUOTE_(x) @@ -96,16 +90,11 @@ private slots: void testPerformingFromCLI() { - QInstaller::init(); //This will eat debug output - PackageManagerCore *core = new PackageManagerCore(BinaryContent::MagicInstallerMarker, QList ()); - QSet repoList; - Repository repo = Repository::fromUserInput(":///data/repository"); - repoList.insert(repo); - core->settings().setDefaultRepositories(repoList); - QString installDir = QInstaller::generateTemporaryFileName(); - QDir().mkpath(installDir); - core->setValue(scTargetDir, installDir); + QVERIFY(QDir().mkpath(installDir)); + PackageManagerCore *core = PackageManager::getPackageManagerWithInit + (installDir, ":///data/repository"); + core->installDefaultComponentsSilently(); QCOMPARE(core->value("testConsumeOutputKeyFromScript"), m_testOutput); diff --git a/tests/auto/installer/copydirectoryoperation/tst_copydirectoryoperation.cpp b/tests/auto/installer/copydirectoryoperation/tst_copydirectoryoperation.cpp index 02d95cfdb..19a8b36b7 100644 --- a/tests/auto/installer/copydirectoryoperation/tst_copydirectoryoperation.cpp +++ b/tests/auto/installer/copydirectoryoperation/tst_copydirectoryoperation.cpp @@ -26,16 +26,12 @@ ** **************************************************************************/ -#include "../shared/commonfunctions.h" +#include "../shared/packagemanager.h" +#include "../shared/verifyinstaller.h" -#include #include -#include #include -#include -#include -#include #include #include #include @@ -146,16 +142,11 @@ private slots: void testPerformingFromCLI() { - QInstaller::init(); //This will eat debug output - PackageManagerCore *core = new PackageManagerCore(BinaryContent::MagicInstallerMarker, QList ()); - core->setAllowedRunningProcesses(QStringList() << QCoreApplication::applicationFilePath()); - QSet repoList; - Repository repo = Repository::fromUserInput(":///data/repository"); - repoList.insert(repo); - core->settings().setDefaultRepositories(repoList); - QString installDir = QInstaller::generateTemporaryFileName(); - QDir().mkpath(installDir); + QVERIFY(QDir().mkpath(installDir)); + PackageManagerCore *core = PackageManager::getPackageManagerWithInit + (installDir, ":///data/repository"); + core->setValue(scTargetDir, installDir); core->installDefaultComponentsSilently(); diff --git a/tests/auto/installer/copyoperationtest/tst_copyoperationtest.cpp b/tests/auto/installer/copyoperationtest/tst_copyoperationtest.cpp index 1f42bcad2..aee192400 100644 --- a/tests/auto/installer/copyoperationtest/tst_copyoperationtest.cpp +++ b/tests/auto/installer/copyoperationtest/tst_copyoperationtest.cpp @@ -1,6 +1,6 @@ /************************************************************************** ** -** Copyright (C) 2017 The Qt Company Ltd. +** Copyright (C) 2020 The Qt Company Ltd. ** Contact: https://www.qt.io/licensing/ ** ** This file is part of the Qt Installer Framework. @@ -25,20 +25,13 @@ ** $QT_END_LICENSE$ ** **************************************************************************/ +#include "../shared/packagemanager.h" -#include #include #include -#include #include -#include -#include -#include -#include #include -#include -#include using namespace KDUpdater; using namespace QInstaller; @@ -141,17 +134,9 @@ private slots: void testPerformingFromCLI() { - QInstaller::init(); //This will eat debug output - PackageManagerCore *core = new PackageManagerCore(BinaryContent::MagicInstallerMarker, QList ()); - core->setAllowedRunningProcesses(QStringList() << QCoreApplication::applicationFilePath()); - QSet repoList; - Repository repo = Repository::fromUserInput(":///data/repository"); - repoList.insert(repo); - core->settings().setDefaultRepositories(repoList); - QString installDir = QInstaller::generateTemporaryFileName(); - QDir().mkpath(installDir); - core->setValue(scTargetDir, installDir); + QVERIFY(QDir().mkpath(installDir)); + PackageManagerCore *core = PackageManager::getPackageManagerWithInit(installDir, ":///data/repository"); core->installDefaultComponentsSilently(); QFile copiedFile(installDir + QDir::separator() + "AnotherFolder/A.txt"); diff --git a/tests/auto/installer/createdesktopentryoperation/tst_createdesktopentryoperation.cpp b/tests/auto/installer/createdesktopentryoperation/tst_createdesktopentryoperation.cpp index 55405163a..a1297e5a2 100644 --- a/tests/auto/installer/createdesktopentryoperation/tst_createdesktopentryoperation.cpp +++ b/tests/auto/installer/createdesktopentryoperation/tst_createdesktopentryoperation.cpp @@ -26,6 +26,8 @@ ** **************************************************************************/ +#include "../shared/packagemanager.h" + #include #include @@ -111,18 +113,11 @@ private slots: void testPerformingFromCLI() { - QInstaller::init(); //This will eat debug output - PackageManagerCore *core = new PackageManagerCore(BinaryContent::MagicInstallerMarker, QList ()); - core->setAllowedRunningProcesses(QStringList() << QCoreApplication::applicationFilePath()); - QSet repoList; - Repository repo = Repository::fromUserInput(":///data/repository"); - repoList.insert(repo); - core->settings().setDefaultRepositories(repoList); - QString installDir = QInstaller::generateTemporaryFileName(); QVERIFY(QDir().mkpath(installDir)); + PackageManagerCore *core = PackageManager::getPackageManagerWithInit + (installDir, ":///data/repository"); - core->setValue(scTargetDir, installDir); core->installDefaultComponentsSilently(); CreateDesktopEntryOperation *createDesktopEntryOp = nullptr; diff --git a/tests/auto/installer/createshortcutoperation/tst_createshortcutoperation.cpp b/tests/auto/installer/createshortcutoperation/tst_createshortcutoperation.cpp index 5b90c9628..f3c1132f3 100644 --- a/tests/auto/installer/createshortcutoperation/tst_createshortcutoperation.cpp +++ b/tests/auto/installer/createshortcutoperation/tst_createshortcutoperation.cpp @@ -76,7 +76,7 @@ private slots: core->settings().setDefaultRepositories(repoList); QString installDir = QInstaller::generateTemporaryFileName(); - QDir().mkpath(installDir); + QVERIFY(QDir().mkpath(installDir)); core->setValue(scTargetDir, installDir); core->installDefaultComponentsSilently(); diff --git a/tests/auto/installer/deleteoperation/tst_deleteoperation.cpp b/tests/auto/installer/deleteoperation/tst_deleteoperation.cpp index 93db333fe..72509f074 100644 --- a/tests/auto/installer/deleteoperation/tst_deleteoperation.cpp +++ b/tests/auto/installer/deleteoperation/tst_deleteoperation.cpp @@ -26,17 +26,13 @@ ** **************************************************************************/ -#include +#include "../shared/packagemanager.h" +#include #include -#include #include -#include #include -#include -#include -#include #include using namespace KDUpdater; @@ -108,23 +104,15 @@ private slots: void testPerformingFromCLI() { - QInstaller::init(); //This will eat debug output - PackageManagerCore *core = new PackageManagerCore(BinaryContent::MagicInstallerMarker, QList ()); - core->setAllowedRunningProcesses(QStringList() << QCoreApplication::applicationFilePath()); - QSet repoList; - Repository repo = Repository::fromUserInput(":///data/repository"); - repoList.insert(repo); - core->settings().setDefaultRepositories(repoList); - QString installDir = QInstaller::generateTemporaryFileName(); - QDir().mkpath(installDir); + QVERIFY(QDir().mkpath(installDir)); + PackageManagerCore *core = PackageManager::getPackageManagerWithInit(installDir, ":///data/repository"); // Matches filename in component install script QFile file(installDir + QDir::toNativeSeparators("/test")); QVERIFY(file.open(QIODevice::ReadWrite)); file.close(); - core->setValue(scTargetDir, installDir); core->installDefaultComponentsSilently(); QVERIFY(!file.exists()); diff --git a/tests/auto/installer/environmentvariableoperation/tst_environmentvariableoperation.cpp b/tests/auto/installer/environmentvariableoperation/tst_environmentvariableoperation.cpp index 32cc77043..6cddad2e5 100644 --- a/tests/auto/installer/environmentvariableoperation/tst_environmentvariableoperation.cpp +++ b/tests/auto/installer/environmentvariableoperation/tst_environmentvariableoperation.cpp @@ -26,13 +26,11 @@ ** **************************************************************************/ +#include "../shared/packagemanager.h" + #include -#include #include #include -#include -#include -#include #include #include @@ -139,17 +137,10 @@ private slots: void testPerformingFromCLI() { - QInstaller::init(); //This will eat debug output - PackageManagerCore *core = new PackageManagerCore(BinaryContent::MagicInstallerMarker, QList ()); - core->setAllowedRunningProcesses(QStringList() << QCoreApplication::applicationFilePath()); - QSet repoList; - Repository repo = Repository::fromUserInput(":///data/repository"); - repoList.insert(repo); - core->settings().setDefaultRepositories(repoList); - QString installDir = QInstaller::generateTemporaryFileName(); - QDir().mkpath(installDir); - core->setValue(scTargetDir, installDir); + QVERIFY(QDir().mkpath(installDir)); + PackageManagerCore *core = PackageManager::getPackageManagerWithInit + (installDir, ":///data/repository"); core->installDefaultComponentsSilently(); QVERIFY(m_settings->value("IFW_UNIT_TEST_LOCAL").toString().isEmpty()); diff --git a/tests/auto/installer/installiconsoperation/tst_installiconsoperation.cpp b/tests/auto/installer/installiconsoperation/tst_installiconsoperation.cpp index 1c68f25ab..cb95e49da 100644 --- a/tests/auto/installer/installiconsoperation/tst_installiconsoperation.cpp +++ b/tests/auto/installer/installiconsoperation/tst_installiconsoperation.cpp @@ -26,20 +26,15 @@ ** **************************************************************************/ -#include "../shared/commonfunctions.h" +#include "../shared/packagemanager.h" +#include "../shared/verifyinstaller.h" #include #include -#include -#include -#include -#include #include -#include #include -#include using namespace KDUpdater; using namespace QInstaller; @@ -84,17 +79,10 @@ private slots: void testPerformingFromCLI() { - QInstaller::init(); //This will eat debug output - PackageManagerCore *core = new PackageManagerCore(BinaryContent::MagicInstallerMarker, QList ()); - core->setAllowedRunningProcesses(QStringList() << QCoreApplication::applicationFilePath()); - QSet repoList; - Repository repo = Repository::fromUserInput(":///data/repository"); - repoList.insert(repo); - core->settings().setDefaultRepositories(repoList); - QString installDir = QInstaller::generateTemporaryFileName(); QVERIFY(QDir().mkpath(installDir)); - core->setValue(scTargetDir, installDir); + PackageManagerCore *core = PackageManager::getPackageManagerWithInit + (installDir, ":///data/repository"); core->installDefaultComponentsSilently(); InstallIconsOperation *installIconsOp = nullptr; diff --git a/tests/auto/installer/licenseagreement/tst_licenseagreement.cpp b/tests/auto/installer/licenseagreement/tst_licenseagreement.cpp index fad2faf0b..9ba729b10 100644 --- a/tests/auto/installer/licenseagreement/tst_licenseagreement.cpp +++ b/tests/auto/installer/licenseagreement/tst_licenseagreement.cpp @@ -25,14 +25,10 @@ ** $QT_END_LICENSE$ ** **************************************************************************/ +#include "../shared/packagemanager.h" #include -#include -#include -#include -#include -#include #include #include @@ -46,16 +42,11 @@ class tst_licenseagreement : public QObject private slots: void testAutoAcceptFromCLI() { - QInstaller::init(); //This will eat debug output - PackageManagerCore *core = new PackageManagerCore(BinaryContent::MagicInstallerMarker, QList ()); - QSet repoList; - Repository repo = Repository::fromUserInput(":///data/repository"); - repoList.insert(repo); - core->settings().setDefaultRepositories(repoList); - QString installDir = QInstaller::generateTemporaryFileName(); - QDir().mkpath(installDir); - core->setValue(scTargetDir, installDir); + QVERIFY(QDir().mkpath(installDir)); + PackageManagerCore *core = PackageManager::getPackageManagerWithInit + (installDir, ":///data/repository"); + core->setAutoAcceptLicenses(); core->installDefaultComponentsSilently(); diff --git a/tests/auto/installer/linereplaceoperation/tst_linereplaceoperation.cpp b/tests/auto/installer/linereplaceoperation/tst_linereplaceoperation.cpp index f30dbb014..0492bd104 100644 --- a/tests/auto/installer/linereplaceoperation/tst_linereplaceoperation.cpp +++ b/tests/auto/installer/linereplaceoperation/tst_linereplaceoperation.cpp @@ -25,16 +25,11 @@ ** $QT_END_LICENSE$ ** **************************************************************************/ +#include "../shared/packagemanager.h" #include - #include -#include -#include -#include -#include -#include #include #include @@ -122,16 +117,10 @@ private slots: void testPerformingFromCLI() { - QInstaller::init(); //This will eat debug output - PackageManagerCore *core = new PackageManagerCore(BinaryContent::MagicInstallerMarker, QList ()); - QSet repoList; - Repository repo = Repository::fromUserInput(":///data/repository"); - repoList.insert(repo); - core->settings().setDefaultRepositories(repoList); - QString installDir = QInstaller::generateTemporaryFileName(); - QDir().mkpath(installDir); - core->setValue(scTargetDir, installDir); + QVERIFY(QDir().mkpath(installDir)); + PackageManagerCore *core = PackageManager::getPackageManagerWithInit + (installDir, ":///data/repository"); core->installDefaultComponentsSilently(); QFile file(installDir + QDir::separator() + "A.txt"); diff --git a/tests/auto/installer/messageboxhandler/tst_messageboxhandler.cpp b/tests/auto/installer/messageboxhandler/tst_messageboxhandler.cpp index 4c8b5d93a..9dc3367f8 100644 --- a/tests/auto/installer/messageboxhandler/tst_messageboxhandler.cpp +++ b/tests/auto/installer/messageboxhandler/tst_messageboxhandler.cpp @@ -97,7 +97,7 @@ private slots: QHash(), true); core->setAllowedRunningProcesses(QStringList() << QCoreApplication::applicationFilePath()); m_installDir = QInstaller::generateTemporaryFileName(); - QDir().mkpath(m_installDir); + QVERIFY(QDir().mkpath(m_installDir)); core->setValue(scTargetDir, m_installDir); } diff --git a/tests/auto/installer/moveoperation/tst_moveoperation.cpp b/tests/auto/installer/moveoperation/tst_moveoperation.cpp index fb3458874..f5b7bbcd9 100644 --- a/tests/auto/installer/moveoperation/tst_moveoperation.cpp +++ b/tests/auto/installer/moveoperation/tst_moveoperation.cpp @@ -25,20 +25,12 @@ ** $QT_END_LICENSE$ ** **************************************************************************/ +#include "../shared/packagemanager.h" #include -#include #include -#include -#include -#include -#include -#include -#include #include -#include -#include using namespace KDUpdater; using namespace QInstaller; @@ -111,16 +103,8 @@ private slots: void testPerformingFromCLI() { - QInstaller::init(); //This will eat debug output - PackageManagerCore *core = new PackageManagerCore(BinaryContent::MagicInstallerMarker, QList ()); - QString appFilePath = QCoreApplication::applicationFilePath(); - core->setAllowedRunningProcesses(QStringList() << appFilePath); - QSet repoList; - Repository repo = Repository::fromUserInput(":///data/repository"); - repoList.insert(repo); - core->settings().setDefaultRepositories(repoList); - - core->setValue(scTargetDir, m_testDirectory); + PackageManagerCore *core = PackageManager::getPackageManagerWithInit + (m_testDirectory, ":///data/repository"); core->installDefaultComponentsSilently(); QFile movedFile(m_testDirectory + QDir::separator() + "DestinationFolder/testFile.txt"); diff --git a/tests/auto/installer/registerfiletypeoperation/tst_registerfiletypeoperation.cpp b/tests/auto/installer/registerfiletypeoperation/tst_registerfiletypeoperation.cpp index 7d4820f63..bbe391a0a 100644 --- a/tests/auto/installer/registerfiletypeoperation/tst_registerfiletypeoperation.cpp +++ b/tests/auto/installer/registerfiletypeoperation/tst_registerfiletypeoperation.cpp @@ -25,13 +25,10 @@ ** $QT_END_LICENSE$ ** **************************************************************************/ +#include "../shared/packagemanager.h" -#include #include #include -#include -#include -#include #include #include @@ -130,17 +127,11 @@ private slots: void testPerformingFromCLI() { - QInstaller::init(); //This will eat debug output - PackageManagerCore *core = new PackageManagerCore(BinaryContent::MagicInstallerMarker, QList ()); - core->setAllowedRunningProcesses(QStringList() << QCoreApplication::applicationFilePath()); - QSet repoList; - Repository repo = Repository::fromUserInput(":///data/repository"); - repoList.insert(repo); - core->settings().setDefaultRepositories(repoList); - QString installDir = QInstaller::generateTemporaryFileName(); - QDir().mkpath(installDir); - core->setValue(scTargetDir, installDir); + QVERIFY(QDir().mkpath(installDir)); + PackageManagerCore *core = PackageManager::getPackageManagerWithInit + (installDir, ":///data/repository"); + core->installDefaultComponentsSilently(); verifySettings(); diff --git a/tests/auto/installer/replaceoperation/tst_replaceoperation.cpp b/tests/auto/installer/replaceoperation/tst_replaceoperation.cpp index 88a3350a7..88dc2011b 100644 --- a/tests/auto/installer/replaceoperation/tst_replaceoperation.cpp +++ b/tests/auto/installer/replaceoperation/tst_replaceoperation.cpp @@ -25,16 +25,12 @@ ** $QT_END_LICENSE$ ** **************************************************************************/ +#include "../shared/packagemanager.h" #include #include -#include #include -#include -#include -#include -#include #include #include #include @@ -180,16 +176,10 @@ private slots: void testPerformingFromCLI() { - QInstaller::init(); //This will eat debug output - PackageManagerCore *core = new PackageManagerCore(BinaryContent::MagicInstallerMarker, - QList ()); - QSet repoList; - Repository repo = Repository::fromUserInput(":///data/repository"); - repoList.insert(repo); - core->settings().setDefaultRepositories(repoList); - QVERIFY(QDir().mkpath(m_testDirectory)); - core->setValue(scTargetDir, m_testDirectory); + PackageManagerCore *core = PackageManager::getPackageManagerWithInit + (m_testDirectory, ":///data/repository"); + core->installDefaultComponentsSilently(); QFile file(m_testDirectory + QDir::separator() + "A.txt"); diff --git a/tests/auto/installer/settingsoperation/tst_settingsoperation.cpp b/tests/auto/installer/settingsoperation/tst_settingsoperation.cpp index 521880db4..b7ea4fbc5 100644 --- a/tests/auto/installer/settingsoperation/tst_settingsoperation.cpp +++ b/tests/auto/installer/settingsoperation/tst_settingsoperation.cpp @@ -1,6 +1,6 @@ /************************************************************************** ** -** Copyright (C) 2017 The Qt Company Ltd. +** Copyright (C) 2020 The Qt Company Ltd. ** Contact: https://www.qt.io/licensing/ ** ** This file is part of the Qt Installer Framework. @@ -25,19 +25,15 @@ ** $QT_END_LICENSE$ ** **************************************************************************/ + +#include "../shared/packagemanager.h" #include #include -#include #include -#include #include -#include -#include -#include #include #include -#include using namespace KDUpdater; using namespace QInstaller; @@ -287,18 +283,10 @@ private slots: void testPerformingFromCLI() { - QInstaller::init(); //This will eat debug output - PackageManagerCore *core = new PackageManagerCore(BinaryContent::MagicInstallerMarker, QList ()); - - core->setAllowedRunningProcesses(QStringList() << QCoreApplication::applicationFilePath()); - QSet repoList; - Repository repo = Repository::fromUserInput(":///data/repository"); - repoList.insert(repo); - core->settings().setDefaultRepositories(repoList); - QString installDir = QInstaller::generateTemporaryFileName(); - QDir().mkpath(installDir); - core->setValue(scTargetDir, installDir); + QVERIFY(QDir().mkpath(installDir)); + PackageManagerCore *core = PackageManager::getPackageManagerWithInit + (installDir, ":///data/repository"); QSettings testSettings(QDir(m_testSettingsDirPath).filePath(m_testSettingsFilename), QSettings::IniFormat); diff --git a/tests/auto/installer/shared/commonfunctions.h b/tests/auto/installer/shared/commonfunctions.h deleted file mode 100644 index aac1e11e4..000000000 --- a/tests/auto/installer/shared/commonfunctions.h +++ /dev/null @@ -1,95 +0,0 @@ -/************************************************************************** -** -** Copyright (C) 2020 The Qt Company Ltd. -** Contact: https://www.qt.io/licensing/ -** -** This file is part of the Qt Installer Framework. -** -** $QT_BEGIN_LICENSE:GPL-EXCEPT$ -** Commercial License Usage -** Licensees holding valid commercial Qt licenses may use this file in -** accordance with the commercial license agreement provided with the -** Software or, alternatively, in accordance with the terms contained in -** a written agreement between you and The Qt Company. For licensing terms -** and conditions see https://www.qt.io/terms-conditions. For further -** information use the contact form at https://www.qt.io/contact-us. -** -** GNU General Public License Usage -** Alternatively, this file may be used under the terms of the GNU -** General Public License version 3 as published by the Free Software -** Foundation with exceptions as appearing in the file LICENSE.GPL3-EXCEPT -** included in the packaging of this file. Please review the following -** information to ensure the GNU General Public License requirements will -** be met: https://www.gnu.org/licenses/gpl-3.0.html. -** -** $QT_END_LICENSE$ -** -**************************************************************************/ - -#ifndef VERIFYINSTALLER_H -#define VERIFYINSTALLER_H - -#include -#include -#include -#include -#include -#include - -struct VerifyInstaller -{ - static void verifyInstallerResources(const QString &installDir, const QString &componentName, const QString &fileName) - { - QDir dir(installDir + QDir::separator() + "installerResources" + QDir::separator() + componentName); - QVERIFY(dir.exists()); - QFileInfo fileInfo; - fileInfo.setFile(dir, fileName); - QVERIFY(fileInfo.exists()); - } - - static void verifyInstallerResourcesDeletion(const QString &installDir, const QString &componentName) - { - QDir dir(installDir + QDir::separator() + "installerResources" + QDir::separator() + componentName); - QVERIFY(!dir.exists()); - } - - static void verifyInstallerResourceFileDeletion(const QString &installDir, const QString &componentName, const QString &fileName) - { - QDir dir(installDir + QDir::separator() + "installerResources" + QDir::separator() + componentName); - QFileInfo fileInfo; - fileInfo.setFile(dir, fileName); - QVERIFY(!fileInfo.exists()); - } - - static void verifyFileExistence(const QString &installDir, const QStringList &fileList) - { - for (int i = 0; i < fileList.count(); i++) - QVERIFY(QFileInfo::exists(installDir + QDir::separator() + fileList.at(i))); - - QDir dir(installDir); - QCOMPARE(dir.entryList(QStringList() << "*.*", QDir::Files).count(), fileList.count()); - } - - static void addToFileMap(const QDir &baseDir, const QFileInfo &fileInfo, QMap &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 diff --git a/tests/auto/installer/shared/packagemanager.h b/tests/auto/installer/shared/packagemanager.h new file mode 100644 index 000000000..762edc61f --- /dev/null +++ b/tests/auto/installer/shared/packagemanager.h @@ -0,0 +1,64 @@ +/************************************************************************** +** +** Copyright (C) 2020 The Qt Company Ltd. +** Contact: https://www.qt.io/licensing/ +** +** This file is part of the Qt Installer Framework. +** +** $QT_BEGIN_LICENSE:GPL-EXCEPT$ +** Commercial License Usage +** Licensees holding valid commercial Qt licenses may use this file in +** accordance with the commercial license agreement provided with the +** Software or, alternatively, in accordance with the terms contained in +** a written agreement between you and The Qt Company. For licensing terms +** and conditions see https://www.qt.io/terms-conditions. For further +** information use the contact form at https://www.qt.io/contact-us. +** +** GNU General Public License Usage +** Alternatively, this file may be used under the terms of the GNU +** General Public License version 3 as published by the Free Software +** Foundation with exceptions as appearing in the file LICENSE.GPL3-EXCEPT +** included in the packaging of this file. Please review the following +** information to ensure the GNU General Public License requirements will +** be met: https://www.gnu.org/licenses/gpl-3.0.html. +** +** $QT_END_LICENSE$ +** +**************************************************************************/ + +#ifndef PACKAGEMANAGER_H +#define PACKAGEMANAGER_H + +#include +#include +#include +#include +#include + +#include + +using namespace QInstaller; + +struct PackageManager +{ + static PackageManagerCore *getPackageManager(const QString &targetDir, const QString &repository = QString()) + { + PackageManagerCore *core = new PackageManagerCore(BinaryContent::MagicInstallerMarker, QList ()); + QString appFilePath = QCoreApplication::applicationFilePath(); + core->setAllowedRunningProcesses(QStringList() << appFilePath); + QSet repoList; + Repository repo = Repository::fromUserInput(repository); + repoList.insert(repo); + core->settings().setDefaultRepositories(repoList); + + core->setValue(scTargetDir, targetDir); + return core; + } + + static PackageManagerCore *getPackageManagerWithInit(const QString &targetDir, const QString &repository = QString()) + { + QInstaller::init(); + return getPackageManager(targetDir, repository); + } +}; +#endif diff --git a/tests/auto/installer/shared/verifyinstaller.h b/tests/auto/installer/shared/verifyinstaller.h new file mode 100644 index 000000000..91ab2f3cd --- /dev/null +++ b/tests/auto/installer/shared/verifyinstaller.h @@ -0,0 +1,92 @@ +/************************************************************************** +** +** Copyright (C) 2020 The Qt Company Ltd. +** Contact: https://www.qt.io/licensing/ +** +** This file is part of the Qt Installer Framework. +** +** $QT_BEGIN_LICENSE:GPL-EXCEPT$ +** Commercial License Usage +** Licensees holding valid commercial Qt licenses may use this file in +** accordance with the commercial license agreement provided with the +** Software or, alternatively, in accordance with the terms contained in +** a written agreement between you and The Qt Company. For licensing terms +** and conditions see https://www.qt.io/terms-conditions. For further +** information use the contact form at https://www.qt.io/contact-us. +** +** GNU General Public License Usage +** Alternatively, this file may be used under the terms of the GNU +** General Public License version 3 as published by the Free Software +** Foundation with exceptions as appearing in the file LICENSE.GPL3-EXCEPT +** included in the packaging of this file. Please review the following +** information to ensure the GNU General Public License requirements will +** be met: https://www.gnu.org/licenses/gpl-3.0.html. +** +** $QT_END_LICENSE$ +** +**************************************************************************/ + +#ifndef VERIFYINSTALLER_H +#define VERIFYINSTALLER_H + +#include +#include +#include +#include + +struct VerifyInstaller +{ + static void verifyInstallerResources(const QString &installDir, const QString &componentName, const QString &fileName) + { + QDir dir(installDir + QDir::separator() + "installerResources" + QDir::separator() + componentName); + QVERIFY(dir.exists()); + QFileInfo fileInfo; + fileInfo.setFile(dir, fileName); + QVERIFY(fileInfo.exists()); + } + + static void verifyInstallerResourcesDeletion(const QString &installDir, const QString &componentName) + { + QDir dir(installDir + QDir::separator() + "installerResources" + QDir::separator() + componentName); + QVERIFY(!dir.exists()); + } + + static void verifyInstallerResourceFileDeletion(const QString &installDir, const QString &componentName, const QString &fileName) + { + QDir dir(installDir + QDir::separator() + "installerResources" + QDir::separator() + componentName); + QFileInfo fileInfo; + fileInfo.setFile(dir, fileName); + QVERIFY(!fileInfo.exists()); + } + + static void verifyFileExistence(const QString &installDir, const QStringList &fileList) + { + for (int i = 0; i < fileList.count(); i++) + QVERIFY(QFileInfo::exists(installDir + QDir::separator() + fileList.at(i))); + + QDir dir(installDir); + QCOMPARE(dir.entryList(QStringList() << "*.*", QDir::Files).count(), fileList.count()); + } + + static void addToFileMap(const QDir &baseDir, const QFileInfo &fileInfo, QMap &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 diff --git a/tests/auto/installer/simplemovefileoperation/tst_simplemovefileoperation.cpp b/tests/auto/installer/simplemovefileoperation/tst_simplemovefileoperation.cpp index 482ed5d1a..3ac7eae9f 100644 --- a/tests/auto/installer/simplemovefileoperation/tst_simplemovefileoperation.cpp +++ b/tests/auto/installer/simplemovefileoperation/tst_simplemovefileoperation.cpp @@ -25,14 +25,12 @@ ** $QT_END_LICENSE$ ** **************************************************************************/ +#include "../shared/packagemanager.h" #include #include -#include -#include -#include -#include + #include #include @@ -117,16 +115,10 @@ private slots: void testPerformingFromCLI() { - QInstaller::init(); //This will eat debug output - PackageManagerCore *core = new PackageManagerCore(BinaryContent::MagicInstallerMarker, QList ()); - core->setAllowedRunningProcesses(QStringList() << QCoreApplication::applicationFilePath()); - QSet repoList; - Repository repo = Repository::fromUserInput(":///data/repository"); - repoList.insert(repo); - core->settings().setDefaultRepositories(repoList); - QString installDir = QInstaller::generateTemporaryFileName(); QVERIFY(QDir().mkpath(installDir)); + PackageManagerCore *core = PackageManager::getPackageManagerWithInit + (installDir, ":///data/repository"); QString destinationDir = installDir + QDir::separator() + "destination"; QVERIFY(QDir().mkpath(destinationDir)); @@ -136,7 +128,6 @@ private slots: QVERIFY(file.open(QIODevice::ReadWrite)); file.close(); - core->setValue(scTargetDir, installDir); core->installDefaultComponentsSilently(); QVERIFY(!file.exists()); -- cgit v1.2.3