diff options
author | Katja Marttila <katja.marttila@qt.io> | 2022-05-12 13:09:09 +0300 |
---|---|---|
committer | Katja Marttila <katja.marttila@qt.io> | 2022-05-13 12:58:17 +0300 |
commit | e0371c9d74a3a9c971f5cae807176226158cfdde (patch) | |
tree | 55c3f6962ce6392f6f28d295c83f9d0d1b649dca /tests/auto/installer/commandlineupdate | |
parent | baa236b7ae7bf1178ac21b56c245a5edc936b22e (diff) |
Tests: Use data driven tests for commandlineupdate
This change allows more freely to add new test cases as the test cases
are now independent on each other.
Change-Id: Ia0635cf44b51095ef7be8bd829474233fb075e7a
Reviewed-by: Arttu Tarkiainen <arttu.tarkiainen@qt.io>
Diffstat (limited to 'tests/auto/installer/commandlineupdate')
21 files changed, 469 insertions, 146 deletions
diff --git a/tests/auto/installer/commandlineupdate/data/installPackagesRepositoryUpdate/Updates.xml b/tests/auto/installer/commandlineupdate/data/installPackagesRepositoryUpdate/Updates.xml index f56888022..5fbfaa5e9 100644 --- a/tests/auto/installer/commandlineupdate/data/installPackagesRepositoryUpdate/Updates.xml +++ b/tests/auto/installer/commandlineupdate/data/installPackagesRepositoryUpdate/Updates.xml @@ -6,7 +6,7 @@ <Name>componentA</Name> <DisplayName>Component A</DisplayName> <Description>This component does not depend on any other component.</Description> - <Version>2.0.0</Version> + <Version>1.0.0</Version> <ReleaseDate>2015-08-25</ReleaseDate> <SortingPriority>100</SortingPriority> <UpdateFile CompressedSize="297" UncompressedSize="99" OS="Any"/> @@ -155,7 +155,7 @@ <Name>componentH</Name> <DisplayName>Component H. ForcedUpdate</DisplayName> <Description>Component H. ForcedUpdate</Description> - <Version>2.0.0</Version> + <Version>1.0.0</Version> <ReleaseDate>2014-08-25</ReleaseDate> <ForcedUpdate>true</ForcedUpdate> <DownloadableArchives>content.7z</DownloadableArchives> diff --git a/tests/auto/installer/commandlineupdate/data/installPackagesRepositoryUpdate/componentA/1.0.0content.7z b/tests/auto/installer/commandlineupdate/data/installPackagesRepositoryUpdate/componentA/1.0.0content.7z Binary files differnew file mode 100644 index 000000000..4ddbe565b --- /dev/null +++ b/tests/auto/installer/commandlineupdate/data/installPackagesRepositoryUpdate/componentA/1.0.0content.7z diff --git a/tests/auto/installer/commandlineupdate/data/installPackagesRepositoryUpdate/componentH/1.0.0content.7z b/tests/auto/installer/commandlineupdate/data/installPackagesRepositoryUpdate/componentH/1.0.0content.7z Binary files differnew file mode 100644 index 000000000..e1449ad29 --- /dev/null +++ b/tests/auto/installer/commandlineupdate/data/installPackagesRepositoryUpdate/componentH/1.0.0content.7z diff --git a/tests/auto/installer/commandlineupdate/data/installPackagesRepositoryUpdateWithEssential/Updates.xml b/tests/auto/installer/commandlineupdate/data/installPackagesRepositoryUpdateWithEssential/Updates.xml new file mode 100644 index 000000000..f56888022 --- /dev/null +++ b/tests/auto/installer/commandlineupdate/data/installPackagesRepositoryUpdateWithEssential/Updates.xml @@ -0,0 +1,163 @@ +<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>2.0.0</Version> + <ReleaseDate>2015-08-25</ReleaseDate> + <SortingPriority>100</SortingPriority> + <UpdateFile CompressedSize="297" UncompressedSize="99" OS="Any"/> + <DownloadableArchives>content.7z</DownloadableArchives> + <SHA1>43c8fcc544ea6d35fe5180a50d4764dcf9fd7473</SHA1> + <Essential>true</Essential> + </PackageUpdate> + <PackageUpdate> + <Name>componentB</Name> + <DisplayName>Component B</DisplayName> + <Description>This component does not depend on any other component.</Description> + <Version>2.0.0</Version> + <ReleaseDate>2015-08-25</ReleaseDate> + <SortingPriority>90</SortingPriority> + <UpdateFile CompressedSize="297" UncompressedSize="99" OS="Any"/> + <DownloadableArchives>content.7z</DownloadableArchives> + <SHA1>c360591443f4f46c14cd05b0e7f93a105857b563</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>2.0.0</Version> + <ReleaseDate>2015-08-25</ReleaseDate> + <SortingPriority>80</SortingPriority> + <UpdateFile CompressedSize="297" UncompressedSize="99" OS="Any"/> + <DownloadableArchives>content.7z</DownloadableArchives> + <SHA1>3c5acf95ad15a2ea6e2baaf55dd79053ca439668</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>2.0.0</Version> + <ReleaseDate>2015-08-25</ReleaseDate> + <SortingPriority>70</SortingPriority> + <UpdateFile CompressedSize="297" UncompressedSize="99" OS="Any"/> + <DownloadableArchives>content.7z</DownloadableArchives> + <SHA1>5b014c99bf083377024f3de42553faad0c69ebbb</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>2.0.0</Version> + <ReleaseDate>2015-08-25</ReleaseDate> + <SortingPriority>60</SortingPriority> + <UpdateFile CompressedSize="297" UncompressedSize="99" OS="Any"/> + <DownloadableArchives>content.7z</DownloadableArchives> + <SHA1>bf312c4593abaa8f6d18a1504c411e5ec8130860</SHA1> + </PackageUpdate> + <PackageUpdate> + <Name>componentF</Name> + <DisplayName>Component F</DisplayName> + <Description>This component contains 2 subcomponents.</Description> + <Version>2.0.0</Version> + <ReleaseDate>2015-08-25</ReleaseDate> + <SortingPriority>40</SortingPriority> + <UpdateFile CompressedSize="297" UncompressedSize="99" OS="Any"/> + <DownloadableArchives>content.7z</DownloadableArchives> + <SHA1>d8764d228cc32be0959b286cf57a30252082d2dc</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 CompressedSize="281" UncompressedSize="99" OS="Any"/> + <DownloadableArchives>content.7z</DownloadableArchives> + <SHA1>fbdd255c25820331ffea46c9a80905580fb8ad4f</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 CompressedSize="289" UncompressedSize="99" OS="Any"/> + <DownloadableArchives>content.7z</DownloadableArchives> + <SHA1>c96ddbefa66f5a3400e0c2f3a458c0f619d99690</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 CompressedSize="289" UncompressedSize="99" OS="Any"/> + <DownloadableArchives>content.7z</DownloadableArchives> + <SHA1>c88f52f11f22089d7efc3b65394e96ee1656702e</SHA1> + </PackageUpdate> + <PackageUpdate> + <Name>componentF.subcomponent2</Name> + <DisplayName>Subcomponent 2</DisplayName> + <Description>This component contains 2 leaf components.</Description> + <Version>2.0.0</Version> + <ReleaseDate>2015-08-25</ReleaseDate> + <SortingPriority>50</SortingPriority> + <UpdateFile CompressedSize="297" UncompressedSize="99" OS="Any"/> + <DownloadableArchives>content.7z</DownloadableArchives> + <SHA1>57120d69b22e013666b80d3954b1ee65eb37891f</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 CompressedSize="289" UncompressedSize="99" OS="Any"/> + <DownloadableArchives>content.7z</DownloadableArchives> + <SHA1>3844dc1b4805050f34b483661843a8f8a4e97864</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 CompressedSize="289" UncompressedSize="99" OS="Any"/> + <DownloadableArchives>content.7z</DownloadableArchives> + <SHA1>e1d988818cb8fd89e8863b5699b19823e38f0919</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>2.0.0</Version> + <ReleaseDate>2015-08-25</ReleaseDate> + <Script>installscript.js</Script> + <SortingPriority>30</SortingPriority> + <UpdateFile CompressedSize="297" UncompressedSize="99" OS="Any"/> + <DownloadableArchives>content.7z</DownloadableArchives> + <SHA1>098b5ecafe8853371fd608acd9b1ccab252ef5df</SHA1> + </PackageUpdate> + <PackageUpdate> + <Name>componentH</Name> + <DisplayName>Component H. ForcedUpdate</DisplayName> + <Description>Component H. ForcedUpdate</Description> + <Version>2.0.0</Version> + <ReleaseDate>2014-08-25</ReleaseDate> + <ForcedUpdate>true</ForcedUpdate> + <DownloadableArchives>content.7z</DownloadableArchives> + </PackageUpdate> +</Updates> diff --git a/tests/auto/installer/commandlineupdate/data/installPackagesRepositoryUpdateWithEssential/componentA/2.0.0content.7z b/tests/auto/installer/commandlineupdate/data/installPackagesRepositoryUpdateWithEssential/componentA/2.0.0content.7z Binary files differnew file mode 100644 index 000000000..9e947f5f7 --- /dev/null +++ b/tests/auto/installer/commandlineupdate/data/installPackagesRepositoryUpdateWithEssential/componentA/2.0.0content.7z diff --git a/tests/auto/installer/commandlineupdate/data/installPackagesRepositoryUpdateWithEssential/componentB/2.0.0content.7z b/tests/auto/installer/commandlineupdate/data/installPackagesRepositoryUpdateWithEssential/componentB/2.0.0content.7z Binary files differnew file mode 100644 index 000000000..08f7ad70d --- /dev/null +++ b/tests/auto/installer/commandlineupdate/data/installPackagesRepositoryUpdateWithEssential/componentB/2.0.0content.7z diff --git a/tests/auto/installer/commandlineupdate/data/installPackagesRepositoryUpdateWithEssential/componentC/2.0.0content.7z b/tests/auto/installer/commandlineupdate/data/installPackagesRepositoryUpdateWithEssential/componentC/2.0.0content.7z Binary files differnew file mode 100644 index 000000000..3cd9e94fe --- /dev/null +++ b/tests/auto/installer/commandlineupdate/data/installPackagesRepositoryUpdateWithEssential/componentC/2.0.0content.7z diff --git a/tests/auto/installer/commandlineupdate/data/installPackagesRepositoryUpdateWithEssential/componentD/2.0.0content.7z b/tests/auto/installer/commandlineupdate/data/installPackagesRepositoryUpdateWithEssential/componentD/2.0.0content.7z Binary files differnew file mode 100644 index 000000000..992b756d2 --- /dev/null +++ b/tests/auto/installer/commandlineupdate/data/installPackagesRepositoryUpdateWithEssential/componentD/2.0.0content.7z diff --git a/tests/auto/installer/commandlineupdate/data/installPackagesRepositoryUpdateWithEssential/componentE/2.0.0content.7z b/tests/auto/installer/commandlineupdate/data/installPackagesRepositoryUpdateWithEssential/componentE/2.0.0content.7z Binary files differnew file mode 100644 index 000000000..d6e7562b1 --- /dev/null +++ b/tests/auto/installer/commandlineupdate/data/installPackagesRepositoryUpdateWithEssential/componentE/2.0.0content.7z diff --git a/tests/auto/installer/commandlineupdate/data/installPackagesRepositoryUpdateWithEssential/componentF.subcomponent1.subsubcomponent1/1.0.0content.7z b/tests/auto/installer/commandlineupdate/data/installPackagesRepositoryUpdateWithEssential/componentF.subcomponent1.subsubcomponent1/1.0.0content.7z Binary files differnew file mode 100644 index 000000000..b559dd72f --- /dev/null +++ b/tests/auto/installer/commandlineupdate/data/installPackagesRepositoryUpdateWithEssential/componentF.subcomponent1.subsubcomponent1/1.0.0content.7z diff --git a/tests/auto/installer/commandlineupdate/data/installPackagesRepositoryUpdateWithEssential/componentF.subcomponent1.subsubcomponent2/1.0.0content.7z b/tests/auto/installer/commandlineupdate/data/installPackagesRepositoryUpdateWithEssential/componentF.subcomponent1.subsubcomponent2/1.0.0content.7z Binary files differnew file mode 100644 index 000000000..a2109e812 --- /dev/null +++ b/tests/auto/installer/commandlineupdate/data/installPackagesRepositoryUpdateWithEssential/componentF.subcomponent1.subsubcomponent2/1.0.0content.7z diff --git a/tests/auto/installer/commandlineupdate/data/installPackagesRepositoryUpdateWithEssential/componentF.subcomponent1/1.0.0content.7z b/tests/auto/installer/commandlineupdate/data/installPackagesRepositoryUpdateWithEssential/componentF.subcomponent1/1.0.0content.7z Binary files differnew file mode 100644 index 000000000..55655d1d3 --- /dev/null +++ b/tests/auto/installer/commandlineupdate/data/installPackagesRepositoryUpdateWithEssential/componentF.subcomponent1/1.0.0content.7z diff --git a/tests/auto/installer/commandlineupdate/data/installPackagesRepositoryUpdateWithEssential/componentF.subcomponent2.subsubcomponent1/1.0.0content.7z b/tests/auto/installer/commandlineupdate/data/installPackagesRepositoryUpdateWithEssential/componentF.subcomponent2.subsubcomponent1/1.0.0content.7z Binary files differnew file mode 100644 index 000000000..c469c39a9 --- /dev/null +++ b/tests/auto/installer/commandlineupdate/data/installPackagesRepositoryUpdateWithEssential/componentF.subcomponent2.subsubcomponent1/1.0.0content.7z diff --git a/tests/auto/installer/commandlineupdate/data/installPackagesRepositoryUpdateWithEssential/componentF.subcomponent2.subsubcomponent2/1.0.0content.7z b/tests/auto/installer/commandlineupdate/data/installPackagesRepositoryUpdateWithEssential/componentF.subcomponent2.subsubcomponent2/1.0.0content.7z Binary files differnew file mode 100644 index 000000000..164348ac9 --- /dev/null +++ b/tests/auto/installer/commandlineupdate/data/installPackagesRepositoryUpdateWithEssential/componentF.subcomponent2.subsubcomponent2/1.0.0content.7z diff --git a/tests/auto/installer/commandlineupdate/data/installPackagesRepositoryUpdateWithEssential/componentF.subcomponent2/2.0.0content.7z b/tests/auto/installer/commandlineupdate/data/installPackagesRepositoryUpdateWithEssential/componentF.subcomponent2/2.0.0content.7z Binary files differnew file mode 100644 index 000000000..921c501cd --- /dev/null +++ b/tests/auto/installer/commandlineupdate/data/installPackagesRepositoryUpdateWithEssential/componentF.subcomponent2/2.0.0content.7z diff --git a/tests/auto/installer/commandlineupdate/data/installPackagesRepositoryUpdateWithEssential/componentF/2.0.0content.7z b/tests/auto/installer/commandlineupdate/data/installPackagesRepositoryUpdateWithEssential/componentF/2.0.0content.7z Binary files differnew file mode 100644 index 000000000..6973624df --- /dev/null +++ b/tests/auto/installer/commandlineupdate/data/installPackagesRepositoryUpdateWithEssential/componentF/2.0.0content.7z diff --git a/tests/auto/installer/commandlineupdate/data/installPackagesRepositoryUpdateWithEssential/componentG/2.0.0content.7z b/tests/auto/installer/commandlineupdate/data/installPackagesRepositoryUpdateWithEssential/componentG/2.0.0content.7z Binary files differnew file mode 100644 index 000000000..a3d72046e --- /dev/null +++ b/tests/auto/installer/commandlineupdate/data/installPackagesRepositoryUpdateWithEssential/componentG/2.0.0content.7z diff --git a/tests/auto/installer/commandlineupdate/data/installPackagesRepositoryUpdateWithEssential/componentG/2.0.0meta.7z b/tests/auto/installer/commandlineupdate/data/installPackagesRepositoryUpdateWithEssential/componentG/2.0.0meta.7z Binary files differnew file mode 100644 index 000000000..a34fd36f1 --- /dev/null +++ b/tests/auto/installer/commandlineupdate/data/installPackagesRepositoryUpdateWithEssential/componentG/2.0.0meta.7z diff --git a/tests/auto/installer/commandlineupdate/data/installPackagesRepositoryUpdateWithEssential/componentH/2.0.0content.7z b/tests/auto/installer/commandlineupdate/data/installPackagesRepositoryUpdateWithEssential/componentH/2.0.0content.7z Binary files differnew file mode 100644 index 000000000..f74b8da68 --- /dev/null +++ b/tests/auto/installer/commandlineupdate/data/installPackagesRepositoryUpdateWithEssential/componentH/2.0.0content.7z diff --git a/tests/auto/installer/commandlineupdate/settings.qrc b/tests/auto/installer/commandlineupdate/settings.qrc index bed0619d8..d398abe30 100644 --- a/tests/auto/installer/commandlineupdate/settings.qrc +++ b/tests/auto/installer/commandlineupdate/settings.qrc @@ -18,7 +18,7 @@ <file>data/installPackagesRepository/componentF.subcomponent2.subsubcomponent1/1.0.0content.7z</file> <file>data/installPackagesRepository/componentF.subcomponent2.subsubcomponent2/1.0.0content.7z</file> <file>data/installPackagesRepositoryUpdate/Updates.xml</file> - <file>data/installPackagesRepositoryUpdate/componentA/2.0.0content.7z</file> + <file>data/installPackagesRepositoryUpdate/componentA/1.0.0content.7z</file> <file>data/installPackagesRepositoryUpdate/componentB/2.0.0content.7z</file> <file>data/installPackagesRepositoryUpdate/componentC/2.0.0content.7z</file> <file>data/installPackagesRepositoryUpdate/componentD/2.0.0content.7z</file> @@ -26,13 +26,29 @@ <file>data/installPackagesRepositoryUpdate/componentF/2.0.0content.7z</file> <file>data/installPackagesRepositoryUpdate/componentG/2.0.0content.7z</file> <file>data/installPackagesRepositoryUpdate/componentG/2.0.0meta.7z</file> - <file>data/installPackagesRepositoryUpdate/componentH/2.0.0content.7z</file> + <file>data/installPackagesRepositoryUpdate/componentH/1.0.0content.7z</file> <file>data/installPackagesRepositoryUpdate/componentF.subcomponent1/1.0.0content.7z</file> <file>data/installPackagesRepositoryUpdate/componentF.subcomponent2/2.0.0content.7z</file> <file>data/installPackagesRepositoryUpdate/componentF.subcomponent1.subsubcomponent1/1.0.0content.7z</file> <file>data/installPackagesRepositoryUpdate/componentF.subcomponent1.subsubcomponent2/1.0.0content.7z</file> <file>data/installPackagesRepositoryUpdate/componentF.subcomponent2.subsubcomponent1/1.0.0content.7z</file> <file>data/installPackagesRepositoryUpdate/componentF.subcomponent2.subsubcomponent2/1.0.0content.7z</file> + <file>data/installPackagesRepositoryUpdateWithEssential/Updates.xml</file> + <file>data/installPackagesRepositoryUpdateWithEssential/componentA/2.0.0content.7z</file> + <file>data/installPackagesRepositoryUpdateWithEssential/componentB/2.0.0content.7z</file> + <file>data/installPackagesRepositoryUpdateWithEssential/componentC/2.0.0content.7z</file> + <file>data/installPackagesRepositoryUpdateWithEssential/componentD/2.0.0content.7z</file> + <file>data/installPackagesRepositoryUpdateWithEssential/componentE/2.0.0content.7z</file> + <file>data/installPackagesRepositoryUpdateWithEssential/componentF/2.0.0content.7z</file> + <file>data/installPackagesRepositoryUpdateWithEssential/componentG/2.0.0content.7z</file> + <file>data/installPackagesRepositoryUpdateWithEssential/componentG/2.0.0meta.7z</file> + <file>data/installPackagesRepositoryUpdateWithEssential/componentH/2.0.0content.7z</file> + <file>data/installPackagesRepositoryUpdateWithEssential/componentF.subcomponent1/1.0.0content.7z</file> + <file>data/installPackagesRepositoryUpdateWithEssential/componentF.subcomponent2/2.0.0content.7z</file> + <file>data/installPackagesRepositoryUpdateWithEssential/componentF.subcomponent1.subsubcomponent1/1.0.0content.7z</file> + <file>data/installPackagesRepositoryUpdateWithEssential/componentF.subcomponent1.subsubcomponent2/1.0.0content.7z</file> + <file>data/installPackagesRepositoryUpdateWithEssential/componentF.subcomponent2.subsubcomponent1/1.0.0content.7z</file> + <file>data/installPackagesRepositoryUpdateWithEssential/componentF.subcomponent2.subsubcomponent2/1.0.0content.7z</file> <file>data/repositoryWithDependencyToEssential/Updates.xml</file> <file>data/repositoryWithDependencyToEssential/componentAutoDependOnA/1.0content.7z</file> <file>data/repositoryWithDependencyToEssential/componentA/3.0.0content.7z</file> diff --git a/tests/auto/installer/commandlineupdate/tst_commandlineupdate.cpp b/tests/auto/installer/commandlineupdate/tst_commandlineupdate.cpp index 07dad9d31..2aebb1c06 100644 --- a/tests/auto/installer/commandlineupdate/tst_commandlineupdate.cpp +++ b/tests/auto/installer/commandlineupdate/tst_commandlineupdate.cpp @@ -1,6 +1,6 @@ /************************************************************************** ** -** Copyright (C) 2020 The Qt Company Ltd. +** Copyright (C) 2022 The Qt Company Ltd. ** Contact: https://www.qt.io/licensing/ ** ** This file is part of the Qt Installer Framework. @@ -37,12 +37,15 @@ using namespace QInstaller; +typedef QList<QPair<QString, QString> > ComponentResourceHash; +typedef QPair<QString, QString> ComponentResource; + class tst_CommandLineUpdate : public QObject { Q_OBJECT private: - void setRepository(const QString &repository) + void setRepository(const QString &repository, PackageManagerCore *core) { core->reset(); core->cancelMetaInfoJob(); //Call cancel to reset metadata so that update repositories are fetched @@ -54,168 +57,309 @@ private: } private slots: - void initTestCase() - { - m_installDir = QInstaller::generateTemporaryFileName(); - core = PackageManager::getPackageManagerWithInit(m_installDir); - } - void testInstallWhenEssentialUpdate() + void testUpdate_data() { - setRepository(":///data/installPackagesRepository"); - QCOMPARE(PackageManagerCore::Success, core->installSelectedComponentsSilently(QStringList() - << "componentA")); - QCOMPARE(PackageManagerCore::Success, core->status()); - VerifyInstaller::verifyInstallerResources(m_installDir, "componentA", "1.0.0content.txt"); - VerifyInstaller::verifyInstallerResources(m_installDir, "componentE", "1.0.0content.txt"); - VerifyInstaller::verifyFileExistence(m_installDir, QStringList() << "components.xml" << "installcontent.txt" - << "installcontentA.txt" << "installcontentE.txt" << "installcontentG.txt"); - core->commitSessionOperations(); - core->setPackageManager(); - setRepository(":///data/installPackagesRepositoryUpdate"); - QCOMPARE(PackageManagerCore::ForceUpdate, core->installSelectedComponentsSilently(QStringList() - << "componentB")); - VerifyInstaller::verifyInstallerResources(m_installDir, "componentA", "1.0.0content.txt"); - VerifyInstaller::verifyInstallerResources(m_installDir, "componentE", "1.0.0content.txt"); - VerifyInstaller::verifyFileExistence(m_installDir, QStringList() << "components.xml" << "installcontent.txt" - << "installcontentA.txt" << "installcontentE.txt" << "installcontentG.txt"); - } + QTest::addColumn<QString>("installDir"); + QTest::addColumn<PackageManagerCore *>("core"); + QTest::addColumn<QString>("repository"); + QTest::addColumn<QStringList>("installComponents"); + QTest::addColumn<PackageManagerCore::Status>("status"); + QTest::addColumn<ComponentResourceHash>("componentResources"); + QTest::addColumn<QStringList >("installedFiles"); + QTest::addColumn<QString>("updateRepository"); + QTest::addColumn<QStringList>("updateComponents"); + QTest::addColumn<PackageManagerCore::Status>("updateStatus"); + QTest::addColumn<ComponentResourceHash>("componentResourcesAfterUpdate"); + QTest::addColumn<QStringList >("installedFilesAfterUpdate"); + QTest::addColumn<ComponentResourceHash >("deletedComponentResources"); - void testUpdateEssentialPackageSilently() - { - QCOMPARE(PackageManagerCore::EssentialUpdated, core->updateComponentsSilently(QStringList())); - VerifyInstaller::verifyInstallerResources(m_installDir, "componentA", "2.0.0content.txt"); - VerifyInstaller::verifyInstallerResources(m_installDir, "componentE", "1.0.0content.txt"); - VerifyInstaller::verifyFileExistence(m_installDir, QStringList() << "components.xml" - << "installcontentA_update.txt" << "installcontentE.txt" << "installcontentG.txt"); - VerifyInstaller::verifyInstallerResourceFileDeletion(m_installDir, "componentA", "1.0.0content.txt"); - //As we are using the same core in tests, clean the essentalupdate value - core->setFoundEssentialUpdate(false); - } + /*********** Update essential packages **********/ + ComponentResourceHash componentResources; + componentResources.append(ComponentResource("componentA", "1.0.0content.txt")); + componentResources.append(ComponentResource("componentE", "1.0.0content.txt")); - void testUpdateEssentialWithAutodependOnSilently() - { - setRepository(":///data/repositoryWithDependencyToEssential"); - QCOMPARE(PackageManagerCore::EssentialUpdated, core->updateComponentsSilently(QStringList())); + ComponentResourceHash componentResourcesAfterUpdate; + componentResourcesAfterUpdate.append(ComponentResource("componentA", "2.0.0content.txt")); + componentResourcesAfterUpdate.append(ComponentResource("componentE", "1.0.0content.txt")); - VerifyInstaller::verifyInstallerResources(m_installDir, "componentA", "3.0.0content.txt"); - VerifyInstaller::verifyInstallerResources(m_installDir, "componentAutoDependOnA", "1.0content.txt"); - VerifyInstaller::verifyFileExistence(m_installDir, QStringList() << "components.xml" - << "installcontentA_update.txt" << "installcontentE.txt" << "installcontentG.txt" - << "installContentAutoDependOnA.txt"); + ComponentResourceHash deletedComponentResources; + deletedComponentResources.append(ComponentResource("componentA", "1.0.0content.txt")); - //As we are using the same core in tests, clean the essentalupdate value - core->setFoundEssentialUpdate(false); - } + QString installDir = QInstaller::generateTemporaryFileName(); + PackageManagerCore *core = PackageManager::getPackageManagerWithInit(installDir); - void testUpdateForceUpdatePackagesSilently() - { - setRepository(":///data/installPackagesRepository"); - QCOMPARE(PackageManagerCore::Success, core->installSelectedComponentsSilently(QStringList() - << "componentH")); - VerifyInstaller::verifyInstallerResources(m_installDir, "componentH", "1.0.0content.txt"); - VerifyInstaller::verifyInstallerResources(m_installDir, "componentE", "1.0.0content.txt"); - VerifyInstaller::verifyFileExistence(m_installDir, QStringList() << "components.xml" - << "installcontentA_update.txt" << "installcontentE.txt" << "installcontentG.txt" - << "installContentAutoDependOnA.txt" << "installcontentH.txt"); - core->commitSessionOperations(); + QTest::newRow("Update essential packages") + << installDir + << core + << ":///data/installPackagesRepository" + << (QStringList() << "componentA") + << PackageManagerCore::Success + << componentResources + << (QStringList() << "components.xml" << "installcontent.txt" + << "installcontentA.txt" << "installcontentE.txt" << "installcontentG.txt") + << ":///data/installPackagesRepositoryUpdateWithEssential" + << (QStringList() << "componentB") + << PackageManagerCore::EssentialUpdated + << componentResourcesAfterUpdate + << (QStringList() << "components.xml" + << "installcontentA_update.txt" << "installcontentE.txt" << "installcontentG.txt") + << deletedComponentResources; - setRepository(":///data/installPackagesRepositoryUpdate"); - QCOMPARE(PackageManagerCore::EssentialUpdated, core->updateComponentsSilently(QStringList())); - VerifyInstaller::verifyInstallerResourceFileDeletion(m_installDir, "componentH", "1.0.0content.txt"); - VerifyInstaller::verifyInstallerResources(m_installDir, "componentH", "2.0.0content.txt"); - //Verify that no other installed components got update - VerifyInstaller::verifyInstallerResources(m_installDir, "componentE", "1.0.0content.txt"); - VerifyInstaller::verifyFileExistence(m_installDir, QStringList() << "components.xml" - << "installcontentA_update.txt" << "installcontentE.txt" << "installcontentG.txt" - << "installContentAutoDependOnA.txt" << "installcontentH_update.txt"); - core->setFoundEssentialUpdate(false); - } + /*********** Update essential with autodependon**********/ + installDir = QInstaller::generateTemporaryFileName(); + core = PackageManager::getPackageManagerWithInit(installDir); + componentResourcesAfterUpdate.clear(); + componentResourcesAfterUpdate.append(ComponentResource("componentA", "3.0.0content.txt")); + componentResourcesAfterUpdate.append(ComponentResource("componentAutoDependOnA", "1.0content.txt")); - void testUpdatePackageSilently() - { - setRepository(":///data/installPackagesRepository"); - QCOMPARE(PackageManagerCore::Success, core->installSelectedComponentsSilently(QStringList() - << "componentB")); - QCOMPARE(PackageManagerCore::Success, core->status()); - - VerifyInstaller::verifyInstallerResources(m_installDir, "componentA", "3.0.0content.txt"); - VerifyInstaller::verifyInstallerResources(m_installDir, "componentB", "1.0.0content.txt"); - VerifyInstaller::verifyInstallerResources(m_installDir, "componentD", "1.0.0content.txt"); - VerifyInstaller::verifyInstallerResources(m_installDir, "componentAutoDependOnA", "1.0content.txt"); - VerifyInstaller::verifyFileExistence(m_installDir, QStringList() << "components.xml" - << "installcontentA_update.txt" << "installcontentE.txt" << "installcontentG.txt" - << "installcontentB.txt" << "installcontentD.txt" - << "installContentAutoDependOnA.txt" << "installcontentH_update.txt"); - core->commitSessionOperations(); + QTest::newRow("Update essential with autodependon") + << installDir + << core + << ":///data/installPackagesRepository" + << (QStringList() << "componentA") + << PackageManagerCore::Success + << componentResources + << (QStringList() << "components.xml" << "installcontent.txt" + << "installcontentA.txt" << "installcontentE.txt" << "installcontentG.txt") + << ":///data/repositoryWithDependencyToEssential" + << (QStringList()) + << PackageManagerCore::EssentialUpdated + << componentResourcesAfterUpdate + << (QStringList() << "components.xml" + << "installcontentA_update.txt" << "installcontentE.txt" << "installcontentG.txt" + << "installContentAutoDependOnA.txt") + << deletedComponentResources; - setRepository(":///data/installPackagesRepositoryUpdate"); - QCOMPARE(PackageManagerCore::Success, core->updateComponentsSilently(QStringList() - << "componentB")); - // componentD is autodependent and cannot be deselected - // componentE is a forced component and thus will be updated - VerifyInstaller::verifyInstallerResources(m_installDir, "componentA", "3.0.0content.txt"); - VerifyInstaller::verifyInstallerResources(m_installDir, "componentB", "2.0.0content.txt"); - VerifyInstaller::verifyInstallerResources(m_installDir, "componentD", "2.0.0content.txt"); - VerifyInstaller::verifyInstallerResources(m_installDir, "componentE", "2.0.0content.txt"); - VerifyInstaller::verifyInstallerResources(m_installDir, "componentAutoDependOnA", "1.0content.txt"); - - VerifyInstaller::verifyInstallerResourceFileDeletion(m_installDir, "componentD", "1.0.0content.txt"); - VerifyInstaller::verifyInstallerResourceFileDeletion(m_installDir, "componentE", "1.0.0content.txt"); - VerifyInstaller::verifyFileExistence(m_installDir, QStringList() << "components.xml" << "installcontentA_update.txt" - << "installcontentE_update.txt" << "installcontentG.txt" - << "installcontentB_update.txt" << "installcontentD_update.txt" - << "installContentAutoDependOnA.txt" << "installcontentH_update.txt"); - } - void testUpdateNoUpdatesForSelectedPackage() - { - setRepository(":///data/installPackagesRepositoryUpdate"); - // No updates available for component so nothing to do - QCOMPARE(PackageManagerCore::Canceled, core->updateComponentsSilently(QStringList() - << "componentInvalid")); - } + /*********** Update force update packages **********/ + componentResources.clear(); + componentResources.append(ComponentResource("componentH", "1.0.0content.txt")); + componentResources.append(ComponentResource("componentE", "1.0.0content.txt")); - void testUpdateTwoPackageSilently() - { - setRepository(":///data/installPackagesRepositoryUpdate"); - QCOMPARE(PackageManagerCore::Success, core->updateComponentsSilently(QStringList() - << "componentB" << "componentG")); - VerifyInstaller::verifyInstallerResources(m_installDir, "componentB", "2.0.0content.txt"); - VerifyInstaller::verifyInstallerResources(m_installDir, "componentG", "2.0.0content.txt"); - VerifyInstaller::verifyInstallerResourceFileDeletion(m_installDir, "componentB", "1.0.0content.txt"); - VerifyInstaller::verifyInstallerResourceFileDeletion(m_installDir, "componentG", "1.0.0content.txt"); + installDir = QInstaller::generateTemporaryFileName(); + core = PackageManager::getPackageManagerWithInit(installDir); + componentResourcesAfterUpdate.clear(); + componentResourcesAfterUpdate.append(ComponentResource("componentH", "2.0.0content.txt")); + componentResourcesAfterUpdate.append(ComponentResource("componentE", "1.0.0content.txt")); + + deletedComponentResources.clear(); + deletedComponentResources.append(ComponentResource("componentH", "1.0.0content.txt")); + + QTest::newRow("Update force update packages") + << installDir + << core + << ":///data/installPackagesRepository" + << (QStringList() << "componentH") + << PackageManagerCore::Success + << componentResources + << (QStringList() << "components.xml" << "installcontent.txt" + << "installcontentA.txt" << "installcontentE.txt" << "installcontentG.txt" + << "installcontentH.txt") + << ":///data/installPackagesRepositoryUpdateWithEssential" + << (QStringList()) + << PackageManagerCore::EssentialUpdated + << componentResourcesAfterUpdate + << (QStringList() << "components.xml" << "installcontentA_update.txt" + << "installcontentE.txt" << "installcontentG.txt" + << "installcontentH_update.txt") + << deletedComponentResources; + + /*********** Update packages **********/ + componentResources.clear(); + componentResources.append(ComponentResource("componentA", "1.0.0content.txt")); + componentResources.append(ComponentResource("componentB", "1.0.0content.txt")); + componentResources.append(ComponentResource("componentD", "1.0.0content.txt")); + + installDir = QInstaller::generateTemporaryFileName(); + core = PackageManager::getPackageManagerWithInit(installDir); + componentResourcesAfterUpdate.clear(); + componentResourcesAfterUpdate.append(ComponentResource("componentA", "1.0.0content.txt")); + componentResourcesAfterUpdate.append(ComponentResource("componentB", "2.0.0content.txt")); + componentResourcesAfterUpdate.append(ComponentResource("componentD", "2.0.0content.txt")); + componentResourcesAfterUpdate.append(ComponentResource("componentE", "2.0.0content.txt")); + + deletedComponentResources.clear(); + deletedComponentResources.append(ComponentResource("componentB", "1.0.0content.txt")); + deletedComponentResources.append(ComponentResource("componentD", "1.0.0content.txt")); + deletedComponentResources.append(ComponentResource("componentE", "1.0.0content.txt")); + + QTest::newRow("Update packages") + << installDir + << core + << ":///data/installPackagesRepository" + << (QStringList() << "componentC" << "componentH") + << PackageManagerCore::Success + << componentResources + << (QStringList() << "components.xml" << "installcontent.txt" + << "installcontentA.txt" << "installcontentB.txt" << "installcontentC.txt" << "installcontentD.txt" + << "installcontentE.txt" << "installcontentG.txt" << "installcontentH.txt") + << ":///data/installPackagesRepositoryUpdate" + << (QStringList()) + << PackageManagerCore::Success + << componentResourcesAfterUpdate + << (QStringList() << "components.xml" << "installcontent.txt" + << "installcontentA.txt" << "installcontentB_update.txt" << "installcontentC_update.txt" << "installcontentD_update.txt" + << "installcontentE_update.txt" << "installcontentG_update.txt" << "installcontentH.txt") + << deletedComponentResources; + + /*********** Update two packages **********/ + componentResources.clear(); + componentResources.append(ComponentResource("componentA", "1.0.0content.txt")); + componentResources.append(ComponentResource("componentB", "1.0.0content.txt")); + componentResources.append(ComponentResource("componentD", "1.0.0content.txt")); + componentResources.append(ComponentResource("componentE", "1.0.0content.txt")); + componentResources.append(ComponentResource("componentG", "1.0.0content.txt")); + + installDir = QInstaller::generateTemporaryFileName(); + core = PackageManager::getPackageManagerWithInit(installDir); + componentResourcesAfterUpdate.clear(); + componentResourcesAfterUpdate.append(ComponentResource("componentA", "1.0.0content.txt")); + componentResourcesAfterUpdate.append(ComponentResource("componentB", "1.0.0content.txt")); + componentResourcesAfterUpdate.append(ComponentResource("componentD", "2.0.0content.txt")); + componentResourcesAfterUpdate.append(ComponentResource("componentE", "2.0.0content.txt")); + componentResourcesAfterUpdate.append(ComponentResource("componentG", "2.0.0content.txt")); + + deletedComponentResources.clear(); + deletedComponentResources.append(ComponentResource("componentD", "1.0.0content.txt")); + deletedComponentResources.append(ComponentResource("componentE", "1.0.0content.txt")); + deletedComponentResources.append(ComponentResource("componentG", "1.0.0content.txt")); + + QTest::newRow("Update two packages") + << installDir + << core + << ":///data/installPackagesRepository" + << (QStringList()<< "componentA" << "componentB" << "componentE" << "componentG") + << PackageManagerCore::Success + << componentResources + << (QStringList() << "components.xml" << "installcontent.txt" << "installcontentA.txt" + << "installcontentD.txt" << "installcontentB.txt" << "installcontentE.txt" + << "installcontentG.txt") + << ":///data/installPackagesRepositoryUpdate" + << (QStringList() << "componentE" << "componentG") + << PackageManagerCore::Success + << componentResourcesAfterUpdate + << (QStringList() << "components.xml" << "installcontent.txt" << "installcontentA.txt" + << "installcontentD_update.txt" << "installcontentB.txt" + << "installcontentE_update.txt" << "installcontentG_update.txt") + << deletedComponentResources; + + /*********** Update all packages **********/ + componentResources.clear(); + componentResources.append(ComponentResource("componentA", "1.0.0content.txt")); + componentResources.append(ComponentResource("componentB", "1.0.0content.txt")); + componentResources.append(ComponentResource("componentC", "1.0.0content.txt")); + componentResources.append(ComponentResource("componentD", "1.0.0content.txt")); + componentResources.append(ComponentResource("componentE", "1.0.0content.txt")); + componentResources.append(ComponentResource("componentF", "1.0.0content.txt")); + componentResources.append(ComponentResource("componentF.subcomponent1", "1.0.0content.txt")); + componentResources.append(ComponentResource("componentF.subcomponent1.subsubcomponent1", "1.0.0content.txt")); + componentResources.append(ComponentResource("componentF.subcomponent1.subsubcomponent2", "1.0.0content.txt")); + componentResources.append(ComponentResource("componentF.subcomponent2", "1.0.0content.txt")); + componentResources.append(ComponentResource("componentF.subcomponent2.subsubcomponent1", "1.0.0content.txt")); + componentResources.append(ComponentResource("componentF.subcomponent2.subsubcomponent2", "1.0.0content.txt")); + componentResources.append(ComponentResource("componentG", "1.0.0content.txt")); + componentResources.append(ComponentResource("componentH", "1.0.0content.txt")); + + installDir = QInstaller::generateTemporaryFileName(); + core = PackageManager::getPackageManagerWithInit(installDir); + componentResourcesAfterUpdate.clear(); + componentResourcesAfterUpdate.append(ComponentResource("componentA", "1.0.0content.txt")); + componentResourcesAfterUpdate.append(ComponentResource("componentB", "2.0.0content.txt")); + componentResourcesAfterUpdate.append(ComponentResource("componentC", "2.0.0content.txt")); + componentResourcesAfterUpdate.append(ComponentResource("componentD", "2.0.0content.txt")); + componentResourcesAfterUpdate.append(ComponentResource("componentE", "2.0.0content.txt")); + componentResourcesAfterUpdate.append(ComponentResource("componentF", "2.0.0content.txt")); + componentResourcesAfterUpdate.append(ComponentResource("componentF.subcomponent1", "1.0.0content.txt")); + componentResourcesAfterUpdate.append(ComponentResource("componentF.subcomponent1.subsubcomponent1", "1.0.0content.txt")); + componentResourcesAfterUpdate.append(ComponentResource("componentF.subcomponent1.subsubcomponent2", "1.0.0content.txt")); + componentResourcesAfterUpdate.append(ComponentResource("componentF.subcomponent2", "2.0.0content.txt")); + componentResourcesAfterUpdate.append(ComponentResource("componentF.subcomponent2.subsubcomponent1", "1.0.0content.txt")); + componentResourcesAfterUpdate.append(ComponentResource("componentF.subcomponent2.subsubcomponent2", "1.0.0content.txt")); + componentResourcesAfterUpdate.append(ComponentResource("componentG", "2.0.0content.txt")); + componentResourcesAfterUpdate.append(ComponentResource("componentH", "1.0.0content.txt")); + + deletedComponentResources.clear(); + deletedComponentResources.append(ComponentResource("componentB", "1.0.0content.txt")); + deletedComponentResources.append(ComponentResource("componentD", "1.0.0content.txt")); + deletedComponentResources.append(ComponentResource("componentE", "1.0.0content.txt")); + deletedComponentResources.append(ComponentResource("componentF", "1.0.0content.txt")); + deletedComponentResources.append(ComponentResource("componentF.subcomponent2", "1.0.0content.txt")); + deletedComponentResources.append(ComponentResource("componentG", "1.0.0content.txt")); + + QTest::newRow("Update all packages") + << installDir + << core + << ":///data/installPackagesRepository" + << (QStringList() << "componentA" << "componentB" << "componentC" << "componentD" << "componentE" + << "componentF" << "componentG" << "componentH") + << PackageManagerCore::Success + << componentResources + << (QStringList() << "components.xml" << "installcontent.txt" << "installcontentA.txt" + << "installcontentB.txt" << "installcontentC.txt" << "installcontentD.txt" + << "installcontentE.txt" << "installcontentF.txt" << "installcontentF_1.txt" << "installcontentF_1_1.txt" + << "installcontentF_1_2.txt" << "installcontentF_2.txt" << "installcontentF_2_1.txt" << "installcontentF_2_2.txt" + << "installcontentG.txt" << "installcontentH.txt") + << ":///data/installPackagesRepositoryUpdate" + << (QStringList()) + << PackageManagerCore::Success + << componentResourcesAfterUpdate + << (QStringList() << "components.xml" << "installcontent.txt" << "installcontentA.txt" + << "installcontentB_update.txt" << "installcontentC_update.txt" << "installcontentD_update.txt" + << "installcontentE_update.txt" << "installcontentF_update.txt" << "installcontentF_1.txt" << "installcontentF_1_1.txt" + << "installcontentF_1_2.txt" << "installcontentF_2_update.txt" << "installcontentF_2_1.txt" << "installcontentF_2_2.txt" + << "installcontentG_update.txt" << "installcontentH.txt") + << deletedComponentResources; } - void testUpdateAllPackagesSilently() + void testUpdate() { - setRepository(":///data/installPackagesRepository"); - QCOMPARE(PackageManagerCore::Success, core->installSelectedComponentsSilently(QStringList() - << "componentA" << "componentB" << "componentG" << "componentF")); - VerifyInstaller::verifyInstallerResources(m_installDir, "componentF", "1.0.0content.txt"); - VerifyInstaller::verifyInstallerResources(m_installDir, "componentF.subcomponent1", "1.0.0content.txt"); - VerifyInstaller::verifyInstallerResources(m_installDir, "componentF.subcomponent1.subsubcomponent1", "1.0.0content.txt"); - VerifyInstaller::verifyInstallerResources(m_installDir, "componentF.subcomponent2", "1.0.0content.txt"); + QFETCH(QString, installDir); + QFETCH(PackageManagerCore *, core); + QFETCH(QString, repository); + QFETCH(QStringList, installComponents); + QFETCH(PackageManagerCore::Status, status); + QFETCH(ComponentResourceHash, componentResources); + QFETCH(QStringList, installedFiles); + QFETCH(QString, updateRepository); + QFETCH(QStringList, updateComponents); + QFETCH(PackageManagerCore::Status, updateStatus); + QFETCH(ComponentResourceHash, componentResourcesAfterUpdate); + QFETCH(QStringList, installedFilesAfterUpdate); + QFETCH(ComponentResourceHash, deletedComponentResources); + + setRepository(repository, core); + QCOMPARE(status, core->installSelectedComponentsSilently(QStringList() << installComponents)); + for (const ComponentResource &resource : componentResources) { + VerifyInstaller::verifyInstallerResources(installDir, resource.first, resource.second); + } + VerifyInstaller::verifyFileExistence(installDir, installedFiles); + core->commitSessionOperations(); + core->setPackageManager(); + setRepository(updateRepository, core); + QCOMPARE(updateStatus, core->updateComponentsSilently(updateComponents)); - setRepository(":///data/installPackagesRepositoryUpdate"); - QCOMPARE(PackageManagerCore::Success, core->updateComponentsSilently(QStringList())); - VerifyInstaller::verifyInstallerResources(m_installDir, "componentF", "2.0.0content.txt"); - VerifyInstaller::verifyInstallerResources(m_installDir, "componentF.subcomponent2", "2.0.0content.txt"); - VerifyInstaller::verifyInstallerResourceFileDeletion(m_installDir, "componentF", "1.0.0content.txt"); - VerifyInstaller::verifyInstallerResourceFileDeletion(m_installDir, "componentF.subcomponent2", "1.0.0content.txt"); + for (const ComponentResource &resource : componentResourcesAfterUpdate) { + VerifyInstaller::verifyInstallerResources(installDir, resource.first, resource.second); + } + for (const ComponentResource &resource : deletedComponentResources) { + VerifyInstaller::verifyInstallerResourceFileDeletion(installDir, resource.first, resource.second); + } + VerifyInstaller::verifyFileExistence(installDir, installedFilesAfterUpdate); + delete core; } - void cleanupTestCase() + void testUpdateNoUpdatesForSelectedPackage() { - QDir dir(m_installDir); - QVERIFY(dir.removeRecursively()); + QString installDir = QInstaller::generateTemporaryFileName(); + PackageManagerCore *core = PackageManager::getPackageManagerWithInit(installDir); + setRepository(":///data/installPackagesRepositoryUpdate", core); + // No updates available for component so nothing to do + QCOMPARE(PackageManagerCore::Canceled, core->updateComponentsSilently(QStringList() + << "componentInvalid")); delete core; } - -private: - QString m_installDir; - PackageManagerCore *core; }; |