diff options
Diffstat (limited to 'tests/auto')
10 files changed, 120 insertions, 2 deletions
diff --git a/tests/auto/installer/cliinterface/data/installPackagesDependencyChanged/Updates.xml b/tests/auto/installer/cliinterface/data/installPackagesDependencyChanged/Updates.xml new file mode 100644 index 000000000..72931954a --- /dev/null +++ b/tests/auto/installer/cliinterface/data/installPackagesDependencyChanged/Updates.xml @@ -0,0 +1,72 @@ +<Updates> + <ApplicationName>{AnyApplication}</ApplicationName> + <ApplicationVersion>1.0.0</ApplicationVersion> + <Checksum>false</Checksum> + <PackageUpdate> + <Name>componentA</Name> + <DisplayName>Component A</DisplayName> + <Description>New dependency added</Description> + <Version>2.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> + <Dependencies>componentF</Dependencies> + </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. Dependencies removed</DisplayName> + <Description>This component dependencies on Component A and Component B are removed in update.</Description> + <Dependencies></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>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>componentH</Name> + <Description>This component does not depend on any other component.</Description> + <Version>1.0.0</Version> + <ReleaseDate>2014-08-25</ReleaseDate> + <SortingPriority>50</SortingPriority> + <DownloadableArchives>content.7z</DownloadableArchives> + <Virtual>false</Virtual> + </PackageUpdate> +</Updates> diff --git a/tests/auto/installer/cliinterface/data/installPackagesDependencyChanged/componentA/2.0.0content.7z b/tests/auto/installer/cliinterface/data/installPackagesDependencyChanged/componentA/2.0.0content.7z Binary files differnew file mode 100644 index 000000000..4ddbe565b --- /dev/null +++ b/tests/auto/installer/cliinterface/data/installPackagesDependencyChanged/componentA/2.0.0content.7z diff --git a/tests/auto/installer/cliinterface/data/installPackagesDependencyChanged/componentB/1.0.0content.7z b/tests/auto/installer/cliinterface/data/installPackagesDependencyChanged/componentB/1.0.0content.7z Binary files differnew file mode 100644 index 000000000..f84ffcdc5 --- /dev/null +++ b/tests/auto/installer/cliinterface/data/installPackagesDependencyChanged/componentB/1.0.0content.7z diff --git a/tests/auto/installer/cliinterface/data/installPackagesDependencyChanged/componentC/1.0.0content.7z b/tests/auto/installer/cliinterface/data/installPackagesDependencyChanged/componentC/1.0.0content.7z Binary files differnew file mode 100644 index 000000000..9ad11e06f --- /dev/null +++ b/tests/auto/installer/cliinterface/data/installPackagesDependencyChanged/componentC/1.0.0content.7z diff --git a/tests/auto/installer/cliinterface/data/installPackagesDependencyChanged/componentD/1.0.0content.7z b/tests/auto/installer/cliinterface/data/installPackagesDependencyChanged/componentD/1.0.0content.7z Binary files differnew file mode 100644 index 000000000..0c8c52e31 --- /dev/null +++ b/tests/auto/installer/cliinterface/data/installPackagesDependencyChanged/componentD/1.0.0content.7z diff --git a/tests/auto/installer/cliinterface/data/installPackagesDependencyChanged/componentF/1.0.0content.7z b/tests/auto/installer/cliinterface/data/installPackagesDependencyChanged/componentF/1.0.0content.7z Binary files differnew file mode 100644 index 000000000..4a04b1394 --- /dev/null +++ b/tests/auto/installer/cliinterface/data/installPackagesDependencyChanged/componentF/1.0.0content.7z diff --git a/tests/auto/installer/cliinterface/data/installPackagesDependencyChanged/componentH/1.0.0content.7z b/tests/auto/installer/cliinterface/data/installPackagesDependencyChanged/componentH/1.0.0content.7z Binary files differnew file mode 100644 index 000000000..e1449ad29 --- /dev/null +++ b/tests/auto/installer/cliinterface/data/installPackagesDependencyChanged/componentH/1.0.0content.7z diff --git a/tests/auto/installer/cliinterface/settings.qrc b/tests/auto/installer/cliinterface/settings.qrc index 6b46aaffd..824517e1e 100644 --- a/tests/auto/installer/cliinterface/settings.qrc +++ b/tests/auto/installer/cliinterface/settings.qrc @@ -21,6 +21,13 @@ <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> + <file>data/installPackagesDependencyChanged/Updates.xml</file> + <file>data/installPackagesDependencyChanged/componentA/2.0.0content.7z</file> + <file>data/installPackagesDependencyChanged/componentB/1.0.0content.7z</file> + <file>data/installPackagesDependencyChanged/componentC/1.0.0content.7z</file> + <file>data/installPackagesDependencyChanged/componentD/1.0.0content.7z</file> + <file>data/installPackagesDependencyChanged/componentF/1.0.0content.7z</file> + <file>data/installPackagesDependencyChanged/componentH/1.0.0content.7z</file> <file>data/filequeryrepository/Updates.xml</file> <file>data/filequeryrepository/A/1.0.2-1meta.7z</file> <file>data/componentsFromInstallPackagesRepository.xml</file> diff --git a/tests/auto/installer/cliinterface/tst_cliinterface.cpp b/tests/auto/installer/cliinterface/tst_cliinterface.cpp index c43eca381..8f1784543 100644 --- a/tests/auto/installer/cliinterface/tst_cliinterface.cpp +++ b/tests/auto/installer/cliinterface/tst_cliinterface.cpp @@ -413,6 +413,45 @@ private slots: << "installcontentA.txt" << "installcontentE.txt" << "installcontentG.txt"); } + void testInstallPackagesWithChangedRepository() + { + QScopedPointer<PackageManagerCore> core(PackageManager::getPackageManagerWithInit + (m_installDir, ":///data/installPackagesRepository")); + core->setNoDefaultInstallation(true); + QCOMPARE(PackageManagerCore::Success, core->installSelectedComponentsSilently(QStringList() + << QLatin1String("componentC"))); + + QCOMPARE(PackageManagerCore::Success, core->status()); + VerifyInstaller::verifyInstallerResources(m_installDir, "componentA", "1.0.0content.txt"); //Dependency to componentC + VerifyInstaller::verifyInstallerResources(m_installDir, "componentB", "1.0.0content.txt"); //Dependency to componentC + VerifyInstaller::verifyInstallerResources(m_installDir, "componentC", "1.0.0content.txt"); //Selected + VerifyInstaller::verifyInstallerResources(m_installDir, "componentD", "1.0.0content.txt"); //Autodepend on componentA,componentB + VerifyInstaller::verifyInstallerResources(m_installDir, "componentE", "1.0.0content.txt"); //AutodependOn componentC + VerifyInstaller::verifyInstallerResources(m_installDir, "componentI", "1.0.0content.txt"); //Virtual dependency to componentC + VerifyInstaller::verifyFileExistence(m_installDir, QStringList() << "components.xml" + << "installcontent.txt" << "installcontentA.txt" << "installcontentB.txt" + << "installcontentC.txt" << "installcontentD.txt" << "installcontentE.txt" + << "installcontentI.txt"); + + core->reset(); + core->cancelMetaInfoJob(); //Call cancel to reset metadata so that update repositories are fetched + + QSet<Repository> repoList; + Repository repo = Repository::fromUserInput(":///data/installPackagesDependencyChanged"); + repoList.insert(repo); + core->settings().setDefaultRepositories(repoList); + + QCOMPARE(PackageManagerCore::Success, core->installSelectedComponentsSilently(QStringList() + << QLatin1String("componentH"))); + // New dependency is added in repository from componentA to componentF, check that it is not installed + VerifyInstaller::verifyInstallerResourcesDeletion(m_installDir, "componentF"); + VerifyInstaller::verifyFileExistence(m_installDir, QStringList() << "components.xml" + << "installcontent.txt" << "installcontentA.txt" << "installcontentB.txt" + << "installcontentC.txt" << "installcontentD.txt" << "installcontentE.txt" + << "installcontentI.txt" << "installcontentH.txt"); + core->setNoDefaultInstallation(false); + } + void testUnInstallDefaultPackagesSilently() { QScopedPointer<PackageManagerCore> core(PackageManager::getPackageManagerWithInit diff --git a/tests/auto/installer/solver/tst_solver.cpp b/tests/auto/installer/solver/tst_solver.cpp index 45fadc4e6..8b5d1fdcf 100644 --- a/tests/auto/installer/solver/tst_solver.cpp +++ b/tests/auto/installer/solver/tst_solver.cpp @@ -252,7 +252,7 @@ private slots: QTest::addColumn<QList<Component *> >("installedComponents"); QTest::addColumn<QSet<Component *> >("expectedResult"); QTest::addColumn<UninstallReasonList >("uninstallReasons"); - QTest::addColumn<DependencyHash >("dependencyHash"); + QTest::addColumn<LocalDependencyHash >("dependencyHash"); UninstallReasonList uninstallReasonList; PackageManagerCore *core = new PackageManagerCore(); @@ -317,7 +317,7 @@ private slots: QFETCH(QList<Component *> , installedComponents); QFETCH(QSet<Component *> , expectedResult); QFETCH(UninstallReasonList, uninstallReasons); - QFETCH(DependencyHash, dependencyHash); + QFETCH(LocalDependencyHash, dependencyHash); UninstallerCalculator calc(installedComponents, core, QHash<QString, QStringList>(), dependencyHash, QStringList()); calc.appendComponentsToUninstall(selectedToUninstall); |