summaryrefslogtreecommitdiffstats
path: root/tests/auto
diff options
context:
space:
mode:
Diffstat (limited to 'tests/auto')
-rw-r--r--tests/auto/installer/cliinterface/data/installPackagesDependencyChanged/Updates.xml72
-rw-r--r--tests/auto/installer/cliinterface/data/installPackagesDependencyChanged/componentA/2.0.0content.7zbin0 -> 259 bytes
-rw-r--r--tests/auto/installer/cliinterface/data/installPackagesDependencyChanged/componentB/1.0.0content.7zbin0 -> 241 bytes
-rw-r--r--tests/auto/installer/cliinterface/data/installPackagesDependencyChanged/componentC/1.0.0content.7zbin0 -> 241 bytes
-rw-r--r--tests/auto/installer/cliinterface/data/installPackagesDependencyChanged/componentD/1.0.0content.7zbin0 -> 241 bytes
-rw-r--r--tests/auto/installer/cliinterface/data/installPackagesDependencyChanged/componentF/1.0.0content.7zbin0 -> 241 bytes
-rw-r--r--tests/auto/installer/cliinterface/data/installPackagesDependencyChanged/componentH/1.0.0content.7zbin0 -> 209 bytes
-rw-r--r--tests/auto/installer/cliinterface/settings.qrc7
-rw-r--r--tests/auto/installer/cliinterface/tst_cliinterface.cpp39
-rw-r--r--tests/auto/installer/solver/tst_solver.cpp4
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
new file mode 100644
index 000000000..4ddbe565b
--- /dev/null
+++ b/tests/auto/installer/cliinterface/data/installPackagesDependencyChanged/componentA/2.0.0content.7z
Binary files differ
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
new file mode 100644
index 000000000..f84ffcdc5
--- /dev/null
+++ b/tests/auto/installer/cliinterface/data/installPackagesDependencyChanged/componentB/1.0.0content.7z
Binary files differ
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
new file mode 100644
index 000000000..9ad11e06f
--- /dev/null
+++ b/tests/auto/installer/cliinterface/data/installPackagesDependencyChanged/componentC/1.0.0content.7z
Binary files differ
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
new file mode 100644
index 000000000..0c8c52e31
--- /dev/null
+++ b/tests/auto/installer/cliinterface/data/installPackagesDependencyChanged/componentD/1.0.0content.7z
Binary files differ
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
new file mode 100644
index 000000000..4a04b1394
--- /dev/null
+++ b/tests/auto/installer/cliinterface/data/installPackagesDependencyChanged/componentF/1.0.0content.7z
Binary files differ
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
new file mode 100644
index 000000000..e1449ad29
--- /dev/null
+++ b/tests/auto/installer/cliinterface/data/installPackagesDependencyChanged/componentH/1.0.0content.7z
Binary files differ
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);