summaryrefslogtreecommitdiffstats
path: root/tests
diff options
context:
space:
mode:
Diffstat (limited to 'tests')
-rw-r--r--tests/auto/installer/componentreplace/data/installPackagesRepository/C/1.0.0content.7zbin0 -> 152 bytes
-rw-r--r--tests/auto/installer/componentreplace/data/installPackagesRepository/Updates.xml10
-rw-r--r--tests/auto/installer/componentreplace/data/repositoryWithMultiReplaceInUpdate/C/2.0.0content.7zbin0 -> 152 bytes
-rw-r--r--tests/auto/installer/componentreplace/data/repositoryWithMultiReplaceInUpdate/Updates.xml10
-rw-r--r--tests/auto/installer/componentreplace/settings.qrc2
-rw-r--r--tests/auto/installer/componentreplace/tst_componentreplace.cpp72
6 files changed, 91 insertions, 3 deletions
diff --git a/tests/auto/installer/componentreplace/data/installPackagesRepository/C/1.0.0content.7z b/tests/auto/installer/componentreplace/data/installPackagesRepository/C/1.0.0content.7z
new file mode 100644
index 000000000..d498f1900
--- /dev/null
+++ b/tests/auto/installer/componentreplace/data/installPackagesRepository/C/1.0.0content.7z
Binary files differ
diff --git a/tests/auto/installer/componentreplace/data/installPackagesRepository/Updates.xml b/tests/auto/installer/componentreplace/data/installPackagesRepository/Updates.xml
index 6f02aad2b..e77207777 100644
--- a/tests/auto/installer/componentreplace/data/installPackagesRepository/Updates.xml
+++ b/tests/auto/installer/componentreplace/data/installPackagesRepository/Updates.xml
@@ -42,4 +42,14 @@
<DownloadableArchives>content.7z</DownloadableArchives>
<SHA1>a10463141e30ce3fede9ac84bc52a07b0c5e919e</SHA1>
</PackageUpdate>
+ <PackageUpdate>
+ <Name>C</Name>
+ <DisplayName>C component</DisplayName>
+ <Description>Component C</Description>
+ <Version>1.0.0</Version>
+ <ReleaseDate>2021-01-01</ReleaseDate>
+ <UpdateFile UncompressedSize="89" CompressedSize="247" OS="Any"/>
+ <DownloadableArchives>content.7z</DownloadableArchives>
+ <SHA1>a10463141e30ce3fede9ac84bc52a07b0c5e919e</SHA1>
+ </PackageUpdate>
</Updates>
diff --git a/tests/auto/installer/componentreplace/data/repositoryWithMultiReplaceInUpdate/C/2.0.0content.7z b/tests/auto/installer/componentreplace/data/repositoryWithMultiReplaceInUpdate/C/2.0.0content.7z
new file mode 100644
index 000000000..d498f1900
--- /dev/null
+++ b/tests/auto/installer/componentreplace/data/repositoryWithMultiReplaceInUpdate/C/2.0.0content.7z
Binary files differ
diff --git a/tests/auto/installer/componentreplace/data/repositoryWithMultiReplaceInUpdate/Updates.xml b/tests/auto/installer/componentreplace/data/repositoryWithMultiReplaceInUpdate/Updates.xml
index 5276637ed..e0fb351ff 100644
--- a/tests/auto/installer/componentreplace/data/repositoryWithMultiReplaceInUpdate/Updates.xml
+++ b/tests/auto/installer/componentreplace/data/repositoryWithMultiReplaceInUpdate/Updates.xml
@@ -43,4 +43,14 @@
<DownloadableArchives>content.7z</DownloadableArchives>
<SHA1>4331736562fc047a4f47263be75f816298cbda30</SHA1>
</PackageUpdate>
+ <PackageUpdate>
+ <Name>C</Name>
+ <DisplayName>C component</DisplayName>
+ <Description>Component C</Description>
+ <Version>2.0.0</Version>
+ <ReleaseDate>2021-01-01</ReleaseDate>
+ <UpdateFile UncompressedSize="89" CompressedSize="247" OS="Any"/>
+ <DownloadableArchives>content.7z</DownloadableArchives>
+ <SHA1>a10463141e30ce3fede9ac84bc52a07b0c5e919e</SHA1>
+ </PackageUpdate>
</Updates>
diff --git a/tests/auto/installer/componentreplace/settings.qrc b/tests/auto/installer/componentreplace/settings.qrc
index 706cf91c6..ba1b0ab98 100644
--- a/tests/auto/installer/componentreplace/settings.qrc
+++ b/tests/auto/installer/componentreplace/settings.qrc
@@ -5,6 +5,7 @@
<file>data/installPackagesRepository/B/1.0.0content.7z</file>
<file>data/installPackagesRepository/A.sub1/1.0.0content.7z</file>
<file>data/installPackagesRepository/B.sub1/1.0.0content.7z</file>
+ <file>data/installPackagesRepository/C/1.0.0content.7z</file>
<file>data/repositoryWithReplace/Updates.xml</file>
<file>data/repositoryWithReplace/A/1.0.0content.7z</file>
<file>data/repositoryWithReplace/B/2.0.0content.7z</file>
@@ -25,5 +26,6 @@
<file>data/repositoryWithMultiReplaceInUpdate/B/2.0.0content.7z</file>
<file>data/repositoryWithMultiReplaceInUpdate/A.sub1/1.0.0content.7z</file>
<file>data/repositoryWithMultiReplaceInUpdate/B.sub1/1.0.0content.7z</file>
+ <file>data/repositoryWithMultiReplaceInUpdate/C/2.0.0content.7z</file>
</qresource>
</RCC>
diff --git a/tests/auto/installer/componentreplace/tst_componentreplace.cpp b/tests/auto/installer/componentreplace/tst_componentreplace.cpp
index 55121019b..98fee27d0 100644
--- a/tests/auto/installer/componentreplace/tst_componentreplace.cpp
+++ b/tests/auto/installer/componentreplace/tst_componentreplace.cpp
@@ -87,11 +87,11 @@ private slots:
core->setPackageManager();
setRepository(":///data/repositoryWithReplace", core);
QCOMPARE(PackageManagerCore::Success, core->installSelectedComponentsSilently(QStringList() << "B"));
-
+ QCOMPARE(core->componentsToUninstall().count(), 1);
QVERIFY(core->componentByName("B.sub1") != 0);
QVERIFY(core->componentByName("B") != 0);
- QVERIFY(core->componentByName("A.sub1") != 0);
- QVERIFY(core->componentByName("A") == 0); // B has replaced A
+ VerifyInstaller::verifyInstallerResourceFileDeletion(m_installDir, "A", "1.0.0content.txt");
+ VerifyInstaller::verifyInstallerResources(m_installDir, "A.sub1", "1.0.0content.txt");
VerifyInstaller::verifyInstallerResources(m_installDir, "B", "2.0.0content.txt");
VerifyInstaller::verifyInstallerResources(m_installDir, "B.sub1", "1.0.0content.txt");
VerifyInstaller::verifyFileExistence(m_installDir, QStringList() << "components.xml"
@@ -117,6 +117,7 @@ private slots:
core->setUpdater();
setRepository(":///data/repositoryWithReplace", core);
QCOMPARE(PackageManagerCore::Success, core->updateComponentsSilently(QStringList() << "B"));
+ QCOMPARE(core->componentsToUninstall().count(), 1);
VerifyInstaller::verifyInstallerResourceFileDeletion(m_installDir, "A", "1.0.0content.txt");
VerifyInstaller::verifyInstallerResources(m_installDir, "A.sub1", "1.0.0content.txt");
VerifyInstaller::verifyInstallerResources(m_installDir, "B", "2.0.0content.txt");
@@ -144,6 +145,7 @@ private slots:
core->setUpdater();
setRepository(":///data/repositoryWithUpdateToReplaceble", core);
QCOMPARE(PackageManagerCore::Success, core->updateComponentsSilently(QStringList() << "B"));
+ QCOMPARE(core->componentsToUninstall().count(), 1);
VerifyInstaller::verifyInstallerResourceFileDeletion(m_installDir, "A", "1.0.0content.txt");
VerifyInstaller::verifyInstallerResourceFileDeletion(m_installDir, "A", "2.0.0content.txt");
VerifyInstaller::verifyInstallerResources(m_installDir, "A.sub1", "1.0.0content.txt");
@@ -169,6 +171,7 @@ private slots:
core->setPackageManager();
setRepository(":///data/repositoryWithMultiReplace", core);
QCOMPARE(PackageManagerCore::Success, core->installSelectedComponentsSilently(QStringList() << "B"));
+ QCOMPARE(core->componentsToUninstall().count(), 2);
VerifyInstaller::verifyInstallerResourceFileDeletion(m_installDir, "A", "1.0.0content.txt");
VerifyInstaller::verifyInstallerResourceFileDeletion(m_installDir, "A.sub1", "1.0.0content.txt");
VerifyInstaller::verifyInstallerResources(m_installDir, "B", "1.0.0content.txt");
@@ -196,6 +199,7 @@ private slots:
core->setUpdater();
setRepository(":///data/repositoryWithMultiReplaceInUpdate", core);
QCOMPARE(PackageManagerCore::Success, core->updateComponentsSilently(QStringList() << "B"));
+ QCOMPARE(core->componentsToUninstall().count(), 2);
VerifyInstaller::verifyInstallerResourceFileDeletion(m_installDir, "A", "1.0.0content.txt");
VerifyInstaller::verifyInstallerResourceFileDeletion(m_installDir, "A.sub1", "1.0.0content.txt");
VerifyInstaller::verifyInstallerResources(m_installDir, "B", "2.0.0content.txt");
@@ -205,6 +209,68 @@ private slots:
delete core;
}
+ void installOtherComponentsWhileReplacementsExists()
+ {
+ PackageManagerCore *core = PackageManager::getPackageManagerWithInit
+ (m_installDir, ":///data/installPackagesRepository");
+ QCOMPARE(PackageManagerCore::Success, core->installSelectedComponentsSilently(QStringList() << "A" << "B"));
+
+ QCOMPARE(core->orderedComponentsToInstall().count(), 4);
+ VerifyInstaller::verifyInstallerResources(m_installDir, "A", "1.0.0content.txt");
+ VerifyInstaller::verifyInstallerResources(m_installDir, "A.sub1", "1.0.0content.txt");
+ VerifyInstaller::verifyInstallerResources(m_installDir, "B", "1.0.0content.txt");
+ VerifyInstaller::verifyInstallerResources(m_installDir, "B.sub1", "1.0.0content.txt");
+ VerifyInstaller::verifyFileExistence(m_installDir, QStringList() << "components.xml"
+ << "Asub1.txt" << "A.txt"<< "Bsub1.txt" << "B.txt");
+
+ core->commitSessionOperations();
+ core->setPackageManager();
+ setRepository(":///data/repositoryWithMultiReplaceInUpdate", core);
+ QCOMPARE(PackageManagerCore::Success, core->installSelectedComponentsSilently(QStringList() << "C"));
+ QCOMPARE(core->orderedComponentsToInstall().count(), 1);
+ QCOMPARE(core->componentsToUninstall().count(), 0);
+ VerifyInstaller::verifyInstallerResources(m_installDir, "A", "1.0.0content.txt");
+ VerifyInstaller::verifyInstallerResources(m_installDir, "A.sub1", "1.0.0content.txt");
+ VerifyInstaller::verifyInstallerResources(m_installDir, "B", "1.0.0content.txt");
+ VerifyInstaller::verifyInstallerResources(m_installDir, "B.sub1", "1.0.0content.txt");
+ VerifyInstaller::verifyInstallerResources(m_installDir, "C", "2.0.0content.txt");
+ VerifyInstaller::verifyFileExistence(m_installDir, QStringList() << "components.xml"
+ << "Asub1.txt" << "A.txt"<< "Bsub1.txt" << "B.txt" << "C.txt");
+
+ delete core;
+ }
+
+ void updateOtherComponentsWhileReplacementsExists()
+ {
+ PackageManagerCore *core = PackageManager::getPackageManagerWithInit
+ (m_installDir, ":///data/installPackagesRepository");
+ QCOMPARE(PackageManagerCore::Success, core->installSelectedComponentsSilently(QStringList() << "A" << "B" << "C"));
+
+ QCOMPARE(core->orderedComponentsToInstall().count(), 5);
+ VerifyInstaller::verifyInstallerResources(m_installDir, "A", "1.0.0content.txt");
+ VerifyInstaller::verifyInstallerResources(m_installDir, "A.sub1", "1.0.0content.txt");
+ VerifyInstaller::verifyInstallerResources(m_installDir, "B", "1.0.0content.txt");
+ VerifyInstaller::verifyInstallerResources(m_installDir, "B.sub1", "1.0.0content.txt");
+ VerifyInstaller::verifyFileExistence(m_installDir, QStringList() << "components.xml"
+ << "Asub1.txt" << "A.txt"<< "Bsub1.txt" << "B.txt" << "C.txt");
+
+ core->commitSessionOperations();
+ core->setUpdater();
+ setRepository(":///data/repositoryWithMultiReplaceInUpdate", core);
+ QCOMPARE(PackageManagerCore::Success, core->updateComponentsSilently(QStringList() << "C"));
+ QCOMPARE(core->orderedComponentsToInstall().count(), 1);
+ QCOMPARE(core->componentsToUninstall().count(), 0);
+ VerifyInstaller::verifyInstallerResources(m_installDir, "A", "1.0.0content.txt");
+ VerifyInstaller::verifyInstallerResources(m_installDir, "A.sub1", "1.0.0content.txt");
+ VerifyInstaller::verifyInstallerResources(m_installDir, "B", "1.0.0content.txt");
+ VerifyInstaller::verifyInstallerResources(m_installDir, "B.sub1", "1.0.0content.txt");
+ VerifyInstaller::verifyInstallerResources(m_installDir, "C", "2.0.0content.txt");
+ VerifyInstaller::verifyFileExistence(m_installDir, QStringList() << "components.xml"
+ << "Asub1.txt" << "A.txt"<< "Bsub1.txt" << "B.txt" << "C.txt");
+
+ delete core;
+ }
+
void cleanup()
{
QDir dir(m_installDir);