diff options
17 files changed, 284 insertions, 24 deletions
diff --git a/tests/auto/installer/cliinterface/data/installPackagesRepository/Updates.xml b/tests/auto/installer/cliinterface/data/installPackagesRepository/Updates.xml new file mode 100644 index 000000000..824a6e21f --- /dev/null +++ b/tests/auto/installer/cliinterface/data/installPackagesRepository/Updates.xml @@ -0,0 +1,153 @@ +<Updates> + <ApplicationName>{AnyApplication}</ApplicationName> + <ApplicationVersion>1.0.0</ApplicationVersion> + <Checksum>false</Checksum> + <PackageUpdate> + <Name>componentA</Name> + <DisplayName>Component A</DisplayName> + <Description>This component does not depend on any other component.</Description> + <Version>1.0.0</Version> + <ReleaseDate>2014-08-25</ReleaseDate> + <SortingPriority>100</SortingPriority> + <UpdateFile OS="Any" CompressedSize="299" UncompressedSize="158"/> + <DownloadableArchives>content.7z</DownloadableArchives> + <SHA1>92b02a74d0886bc1569ff8b3a7edd1f9d828e56c</SHA1> + </PackageUpdate> + <PackageUpdate> + <Name>componentB</Name> + <DisplayName>Component B</DisplayName> + <Description>This component does not depend on any other component.</Description> + <Version>1.0.0</Version> + <ReleaseDate>2014-08-25</ReleaseDate> + <SortingPriority>90</SortingPriority> + <UpdateFile OS="Any" CompressedSize="281" UncompressedSize="99"/> + <DownloadableArchives>content.7z</DownloadableArchives> + <SHA1>aedfaef53cdc0f52353a8680009be405fa767811</SHA1> + </PackageUpdate> + <PackageUpdate> + <Name>componentC</Name> + <DisplayName>Component C (depends on A and B)</DisplayName> + <Description>This component depends on Component A and Component B. Selecting this component for installation also marks Component A and Component B for installation, which in turn marks Component D, because it has an automatic dependency on Component A and Component B.</Description> + <Dependencies>componentA, componentB</Dependencies> + <Version>1.0.0</Version> + <ReleaseDate>2014-08-25</ReleaseDate> + <SortingPriority>80</SortingPriority> + <UpdateFile OS="Any" CompressedSize="281" UncompressedSize="99"/> + <DownloadableArchives>content.7z</DownloadableArchives> + <SHA1>20b9463a5e06f373182b3c7c4cf879806d429409</SHA1> + </PackageUpdate> + <PackageUpdate> + <Name>componentD</Name> + <DisplayName>Component D (auto depends on A and B)</DisplayName> + <Description>This component has an automatic dependency on Component A and Component B. If both A and B are marked for installation, this component is also installed.</Description> + <AutoDependOn>componentA, componentB</AutoDependOn> + <Version>1.0.0</Version> + <ReleaseDate>2014-08-25</ReleaseDate> + <SortingPriority>70</SortingPriority> + <UpdateFile OS="Any" CompressedSize="281" UncompressedSize="99"/> + <DownloadableArchives>content.7z</DownloadableArchives> + <SHA1>99cf24c71559c75dfae9933826ed16051fca6ea1</SHA1> + </PackageUpdate> + <PackageUpdate> + <Name>componentE</Name> + <DisplayName>Component E (forced)</DisplayName> + <Description>This is a forced component that is always installed.</Description> + <ForcedInstallation>true</ForcedInstallation> + <Version>1.0.0</Version> + <ReleaseDate>2014-08-25</ReleaseDate> + <SortingPriority>60</SortingPriority> + <UpdateFile OS="Any" CompressedSize="281" UncompressedSize="99"/> + <DownloadableArchives>content.7z</DownloadableArchives> + <SHA1>926bf503ccdff93351744843a95e5e2172cad5ec</SHA1> + </PackageUpdate> + <PackageUpdate> + <Name>componentF</Name> + <DisplayName>Component F</DisplayName> + <Description>This component contains 2 subcomponents.</Description> + <Version>1.0.0</Version> + <ReleaseDate>2014-08-25</ReleaseDate> + <SortingPriority>40</SortingPriority> + <UpdateFile OS="Any" CompressedSize="281" UncompressedSize="99"/> + <DownloadableArchives>content.7z</DownloadableArchives> + <SHA1>e6443a8b5a5651f63c0604cae6d32431ca617f1a</SHA1> + </PackageUpdate> + <PackageUpdate> + <Name>componentF.subcomponent1</Name> + <DisplayName>Subcomponent 1</DisplayName> + <Description>This component contains 2 leaf components.</Description> + <Version>1.0.0</Version> + <ReleaseDate>2014-08-25</ReleaseDate> + <SortingPriority>100</SortingPriority> + <UpdateFile OS="Any" CompressedSize="281" UncompressedSize="99"/> + <DownloadableArchives>content.7z</DownloadableArchives> + <SHA1>a3bc5dce1c93add30c22e46436396c66b0b51001</SHA1> + </PackageUpdate> + <PackageUpdate> + <Name>componentF.subcomponent1.subsubcomponent1</Name> + <DisplayName>Subsubcomponent 1</DisplayName> + <Description>This component does not depend on any other component.</Description> + <Version>1.0.0</Version> + <ReleaseDate>2014-08-25</ReleaseDate> + <SortingPriority>100</SortingPriority> + <UpdateFile OS="Any" CompressedSize="289" UncompressedSize="99"/> + <DownloadableArchives>content.7z</DownloadableArchives> + <SHA1>ebe4d69414a1675a7f46887e15d9bffc275b7cc4</SHA1> + </PackageUpdate> + <PackageUpdate> + <Name>componentF.subcomponent1.subsubcomponent2</Name> + <DisplayName>Subsubcomponent 2</DisplayName> + <Description>This component does not depend on any other component.</Description> + <Version>1.0.0</Version> + <ReleaseDate>2014-08-25</ReleaseDate> + <SortingPriority>50</SortingPriority> + <UpdateFile OS="Any" CompressedSize="289" UncompressedSize="99"/> + <DownloadableArchives>content.7z</DownloadableArchives> + <SHA1>e4379d20320d4c173b2d8e228f5722e3f36e3114</SHA1> + </PackageUpdate> + <PackageUpdate> + <Name>componentF.subcomponent2</Name> + <DisplayName>Subcomponent 2</DisplayName> + <Description>This component contains 2 leaf components.</Description> + <Version>1.0.0</Version> + <ReleaseDate>2014-08-25</ReleaseDate> + <SortingPriority>50</SortingPriority> + <UpdateFile OS="Any" CompressedSize="281" UncompressedSize="99"/> + <DownloadableArchives>content.7z</DownloadableArchives> + <SHA1>6462be25912c490569a7c4f3931d978e78c69dc4</SHA1> + </PackageUpdate> + <PackageUpdate> + <Name>componentF.subcomponent2.subsubcomponent1</Name> + <DisplayName>Subsubcomponent 1</DisplayName> + <Description>This component does not depend on any other component.</Description> + <Version>1.0.0</Version> + <ReleaseDate>2014-08-25</ReleaseDate> + <SortingPriority>100</SortingPriority> + <UpdateFile OS="Any" CompressedSize="289" UncompressedSize="99"/> + <DownloadableArchives>content.7z</DownloadableArchives> + <SHA1>72b224bc8f3431210834ce6db373fc8d638a3546</SHA1> + </PackageUpdate> + <PackageUpdate> + <Name>componentF.subcomponent2.subsubcomponent2</Name> + <DisplayName>Subsubcomponent 2</DisplayName> + <Description>This component does not depend on any other component.</Description> + <Version>1.0.0</Version> + <ReleaseDate>2014-08-25</ReleaseDate> + <SortingPriority>50</SortingPriority> + <UpdateFile OS="Any" CompressedSize="289" UncompressedSize="99"/> + <DownloadableArchives>content.7z</DownloadableArchives> + <SHA1>3e2744edaef06af75b3248d5935523a6e2e61551</SHA1> + </PackageUpdate> + <PackageUpdate> + <Name>componentG</Name> + <DisplayName>Component G (default, depends on A, dependency added dynamically)</DisplayName> + <Description>By default, this component is selected for installation. It depends on component A. Dependency is added from inside component script.</Description> + <Default>true</Default> + <Version>1.0.0</Version> + <ReleaseDate>2014-08-25</ReleaseDate> + <Script>installscript.js</Script> + <SortingPriority>30</SortingPriority> + <UpdateFile OS="Any" CompressedSize="281" UncompressedSize="99"/> + <DownloadableArchives>content.7z</DownloadableArchives> + <SHA1>8cba36dd589492c28e0d04942b4f8aa0a09f59cc</SHA1> + </PackageUpdate> +</Updates> diff --git a/tests/auto/installer/cliinterface/data/installPackagesRepository/componentA/1.0.0content.7z b/tests/auto/installer/cliinterface/data/installPackagesRepository/componentA/1.0.0content.7z Binary files differnew file mode 100644 index 000000000..4ddbe565b --- /dev/null +++ b/tests/auto/installer/cliinterface/data/installPackagesRepository/componentA/1.0.0content.7z diff --git a/tests/auto/installer/cliinterface/data/installPackagesRepository/componentB/1.0.0content.7z b/tests/auto/installer/cliinterface/data/installPackagesRepository/componentB/1.0.0content.7z Binary files differnew file mode 100644 index 000000000..f84ffcdc5 --- /dev/null +++ b/tests/auto/installer/cliinterface/data/installPackagesRepository/componentB/1.0.0content.7z diff --git a/tests/auto/installer/cliinterface/data/installPackagesRepository/componentC/1.0.0content.7z b/tests/auto/installer/cliinterface/data/installPackagesRepository/componentC/1.0.0content.7z Binary files differnew file mode 100644 index 000000000..9ad11e06f --- /dev/null +++ b/tests/auto/installer/cliinterface/data/installPackagesRepository/componentC/1.0.0content.7z diff --git a/tests/auto/installer/cliinterface/data/installPackagesRepository/componentD/1.0.0content.7z b/tests/auto/installer/cliinterface/data/installPackagesRepository/componentD/1.0.0content.7z Binary files differnew file mode 100644 index 000000000..0c8c52e31 --- /dev/null +++ b/tests/auto/installer/cliinterface/data/installPackagesRepository/componentD/1.0.0content.7z diff --git a/tests/auto/installer/cliinterface/data/installPackagesRepository/componentE/1.0.0content.7z b/tests/auto/installer/cliinterface/data/installPackagesRepository/componentE/1.0.0content.7z Binary files differnew file mode 100644 index 000000000..f5abacf81 --- /dev/null +++ b/tests/auto/installer/cliinterface/data/installPackagesRepository/componentE/1.0.0content.7z diff --git a/tests/auto/installer/cliinterface/data/installPackagesRepository/componentF.subcomponent1.subsubcomponent1/1.0.0content.7z b/tests/auto/installer/cliinterface/data/installPackagesRepository/componentF.subcomponent1.subsubcomponent1/1.0.0content.7z Binary files differnew file mode 100644 index 000000000..3aced680f --- /dev/null +++ b/tests/auto/installer/cliinterface/data/installPackagesRepository/componentF.subcomponent1.subsubcomponent1/1.0.0content.7z diff --git a/tests/auto/installer/cliinterface/data/installPackagesRepository/componentF.subcomponent1.subsubcomponent2/1.0.0content.7z b/tests/auto/installer/cliinterface/data/installPackagesRepository/componentF.subcomponent1.subsubcomponent2/1.0.0content.7z Binary files differnew file mode 100644 index 000000000..e5385a163 --- /dev/null +++ b/tests/auto/installer/cliinterface/data/installPackagesRepository/componentF.subcomponent1.subsubcomponent2/1.0.0content.7z diff --git a/tests/auto/installer/cliinterface/data/installPackagesRepository/componentF.subcomponent1/1.0.0content.7z b/tests/auto/installer/cliinterface/data/installPackagesRepository/componentF.subcomponent1/1.0.0content.7z Binary files differnew file mode 100644 index 000000000..5bc549863 --- /dev/null +++ b/tests/auto/installer/cliinterface/data/installPackagesRepository/componentF.subcomponent1/1.0.0content.7z diff --git a/tests/auto/installer/cliinterface/data/installPackagesRepository/componentF.subcomponent2.subsubcomponent1/1.0.0content.7z b/tests/auto/installer/cliinterface/data/installPackagesRepository/componentF.subcomponent2.subsubcomponent1/1.0.0content.7z Binary files differnew file mode 100644 index 000000000..da9e9f340 --- /dev/null +++ b/tests/auto/installer/cliinterface/data/installPackagesRepository/componentF.subcomponent2.subsubcomponent1/1.0.0content.7z diff --git a/tests/auto/installer/cliinterface/data/installPackagesRepository/componentF.subcomponent2.subsubcomponent2/1.0.0content.7z b/tests/auto/installer/cliinterface/data/installPackagesRepository/componentF.subcomponent2.subsubcomponent2/1.0.0content.7z Binary files differnew file mode 100644 index 000000000..d0b013706 --- /dev/null +++ b/tests/auto/installer/cliinterface/data/installPackagesRepository/componentF.subcomponent2.subsubcomponent2/1.0.0content.7z diff --git a/tests/auto/installer/cliinterface/data/installPackagesRepository/componentF.subcomponent2/1.0.0content.7z b/tests/auto/installer/cliinterface/data/installPackagesRepository/componentF.subcomponent2/1.0.0content.7z Binary files differnew file mode 100644 index 000000000..74ab44033 --- /dev/null +++ b/tests/auto/installer/cliinterface/data/installPackagesRepository/componentF.subcomponent2/1.0.0content.7z diff --git a/tests/auto/installer/cliinterface/data/installPackagesRepository/componentF/1.0.0content.7z b/tests/auto/installer/cliinterface/data/installPackagesRepository/componentF/1.0.0content.7z Binary files differnew file mode 100644 index 000000000..4a04b1394 --- /dev/null +++ b/tests/auto/installer/cliinterface/data/installPackagesRepository/componentF/1.0.0content.7z diff --git a/tests/auto/installer/cliinterface/data/installPackagesRepository/componentG/1.0.0content.7z b/tests/auto/installer/cliinterface/data/installPackagesRepository/componentG/1.0.0content.7z Binary files differnew file mode 100644 index 000000000..81fc02052 --- /dev/null +++ b/tests/auto/installer/cliinterface/data/installPackagesRepository/componentG/1.0.0content.7z diff --git a/tests/auto/installer/cliinterface/data/installPackagesRepository/componentG/1.0.0meta.7z b/tests/auto/installer/cliinterface/data/installPackagesRepository/componentG/1.0.0meta.7z Binary files differnew file mode 100644 index 000000000..e5c446f64 --- /dev/null +++ b/tests/auto/installer/cliinterface/data/installPackagesRepository/componentG/1.0.0meta.7z diff --git a/tests/auto/installer/cliinterface/settings.qrc b/tests/auto/installer/cliinterface/settings.qrc index e95fff4a0..0f4d9814c 100644 --- a/tests/auto/installer/cliinterface/settings.qrc +++ b/tests/auto/installer/cliinterface/settings.qrc @@ -4,6 +4,21 @@ <file>data/repository/Updates.xml</file> <file>data/uninstallableComponentsRepository/Updates.xml</file> <file>data/components.xml</file> + <file>data/installPackagesRepository/Updates.xml</file> + <file>data/installPackagesRepository/componentA/1.0.0content.7z</file> + <file>data/installPackagesRepository/componentB/1.0.0content.7z</file> + <file>data/installPackagesRepository/componentC/1.0.0content.7z</file> + <file>data/installPackagesRepository/componentD/1.0.0content.7z</file> + <file>data/installPackagesRepository/componentE/1.0.0content.7z</file> + <file>data/installPackagesRepository/componentF/1.0.0content.7z</file> + <file>data/installPackagesRepository/componentG/1.0.0content.7z</file> + <file>data/installPackagesRepository/componentG/1.0.0meta.7z</file> + <file>data/installPackagesRepository/componentF.subcomponent1/1.0.0content.7z</file> + <file>data/installPackagesRepository/componentF.subcomponent2/1.0.0content.7z</file> + <file>data/installPackagesRepository/componentF.subcomponent1.subsubcomponent1/1.0.0content.7z</file> + <file>data/installPackagesRepository/componentF.subcomponent1.subsubcomponent2/1.0.0content.7z</file> + <file>data/installPackagesRepository/componentF.subcomponent2.subsubcomponent1/1.0.0content.7z</file> + <file>data/installPackagesRepository/componentF.subcomponent2.subsubcomponent2/1.0.0content.7z</file> </qresource> <qresource prefix="/metadata"> <file>installer-config/config.xml</file> diff --git a/tests/auto/installer/cliinterface/tst_cliinterface.cpp b/tests/auto/installer/cliinterface/tst_cliinterface.cpp index 9480732a9..dbec6f633 100644 --- a/tests/auto/installer/cliinterface/tst_cliinterface.cpp +++ b/tests/auto/installer/cliinterface/tst_cliinterface.cpp @@ -28,6 +28,7 @@ #include "metadatajob.h" #include "settings.h" +#include "init.h" #include <binarycontent.h> #include <component.h> @@ -54,69 +55,96 @@ private: QTest::ignoreMessage(QtDebugMsg, "Id: AB"); } + void verifyInstallerResources(const QString &componentName, const QString &fileName) + { + QDir dir(m_installDir + QDir::separator() + "installerResources" + QDir::separator() + componentName); + QVERIFY(dir.exists()); + QFileInfo fileInfo; + fileInfo.setFile(dir, fileName); + QVERIFY(fileInfo.exists()); + } + + void verifyFileExistence(const QStringList &fileList) + { + foreach (const QString &file, fileList) { + QVERIFY(QFileInfo::exists(m_installDir + QDir::separator() + file)); + } + QDir dir(m_installDir); + QCOMPARE(dir.entryList(QStringList() << "*.*", QDir::Files).count(), fileList.count()); + } + + PackageManagerCore &initPackagemanager(const QString &repository) + { + PackageManagerCore *core = new PackageManagerCore(BinaryContent::MagicInstallerMarker, QList<OperationBlob> ()); + QSet<Repository> 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() { QString loggingRules = (QLatin1String("ifw.* = false\n" "ifw.package.name = true\n")); - Settings settings = Settings::fromFileAndPrefix(":///data/config.xml", ":///data"); - const QList<OperationBlob> ops; QTest::ignoreMessage(QtDebugMsg, "Operations sanity check succeeded."); - PackageManagerCore *core = new PackageManagerCore(BinaryContent::MagicInstallerMarker, ops); - QSet<Repository> repoList; - Repository repo = Repository::fromUserInput(":///data/repository"); - repoList.insert(repo); - core->settings().setDefaultRepositories(repoList); + PackageManagerCore &core = initPackagemanager(":///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 testInstallPackages() + void testInstallPackageFails() { QString loggingRules = (QLatin1String("ifw.* = false\n" "ifw.installer.installlog = true\n")); - PackageManagerCore *core = new PackageManagerCore(BinaryContent::MagicInstallerMarker, QList<OperationBlob> ()); - QLoggingCategory::setFilterRules(loggingRules); - QSet<Repository> repoList; - Repository repo = Repository::fromUserInput(":///data/uninstallableComponentsRepository"); - repoList.insert(repo); - core->settings().setDefaultRepositories(repoList); + PackageManagerCore &core = initPackagemanager(":///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 testListInstalledPackages() @@ -137,9 +165,73 @@ private slots: QTest::ignoreMessage(QtDebugMsg, "Id: B"); core.listInstalledPackages(); QDir dir(testDirectory); + QVERIFY(dir.removeRecursively()); + } + + void testInstallPackageSilently() + { + QInstaller::init(); //This will eat debug output + PackageManagerCore &core = initPackagemanager(":///data/installPackagesRepository"); + core.installSelectedComponentsSilently(QStringList() << QLatin1String("componentA")); + verifyInstallerResources("componentA", "1.0.0content.txt"); + verifyInstallerResources("componentE", "1.0.0content.txt"); //ForcedInstall + verifyInstallerResources("componentG", "1.0.0content.txt"); //Depends on componentA + verifyFileExistence(QStringList() << "components.xml" << "installcontent.txt" + << "installcontentA.txt" << "installcontentE.txt" << "installcontentG.txt"); + } + + void testInstallWithDependencySilently() + { + QInstaller::init(); //This will eat debug output + PackageManagerCore &core = initPackagemanager(":///data/installPackagesRepository"); + core.installSelectedComponentsSilently(QStringList() << QLatin1String("componentC")); + verifyInstallerResources("componentA", "1.0.0content.txt"); //Dependency for componentC + verifyInstallerResources("componentB", "1.0.0content.txt"); //Dependency for componentC + verifyInstallerResources("componentE", "1.0.0content.txt"); //ForcedInstall + verifyInstallerResources("componentG", "1.0.0content.txt"); //Depends on componentA + verifyInstallerResources("componentD", "1.0.0content.txt"); //Autodepend on componentA and componentB + verifyFileExistence(QStringList() << "components.xml" << "installcontentC.txt" + << "installcontent.txt" << "installcontentA.txt" << "installcontentB.txt" + << "installcontentD.txt"<< "installcontentE.txt" << "installcontentG.txt"); + } + + void testInstallSubcomponentSilently() + { + QInstaller::init(); //This will eat debug output + PackageManagerCore &core = initPackagemanager(":///data/installPackagesRepository"); + core.installSelectedComponentsSilently(QStringList() << QLatin1String("componentF.subcomponent2.subsubcomponent2")); + verifyInstallerResources("componentF.subcomponent2.subsubcomponent2", "1.0.0content.txt"); + verifyInstallerResources("componentF.subcomponent2", "1.0.0content.txt"); + verifyInstallerResources("componentF", "1.0.0content.txt"); + verifyInstallerResources("componentA", "1.0.0content.txt"); //Dependency for componentG + verifyInstallerResources("componentE", "1.0.0content.txt"); //ForcedInstall + verifyInstallerResources("componentG", "1.0.0content.txt"); //Default install + verifyFileExistence(QStringList() << "components.xml" << "installcontentF.txt" + << "installcontentF_2.txt" << "installcontentF_2_2.txt" + << "installcontent.txt" << "installcontentA.txt" + << "installcontentE.txt" << "installcontentG.txt"); + } + + void testInstallDefaultPackagesSilently() + { + QInstaller::init(); //This will eat debug output + PackageManagerCore &core = initPackagemanager(":///data/installPackagesRepository"); + core.installDefaultComponentsSilently(); + verifyInstallerResources("componentA", "1.0.0content.txt"); //Dependency for componentG + verifyInstallerResources("componentE", "1.0.0content.txt"); //ForcedInstall + verifyInstallerResources("componentG", "1.0.0content.txt"); //Default + verifyFileExistence(QStringList() << "components.xml" << "installcontent.txt" + << "installcontentA.txt" << "installcontentE.txt" << "installcontentG.txt"); + } + void cleanup() + { + QDir dir(m_installDir); QVERIFY(dir.removeRecursively()); } + +private: + QString m_installDir; }; |