diff options
Diffstat (limited to 'tests')
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 Binary files differnew file mode 100644 index 000000000..d498f1900 --- /dev/null +++ b/tests/auto/installer/componentreplace/data/installPackagesRepository/C/1.0.0content.7z 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 Binary files differnew file mode 100644 index 000000000..d498f1900 --- /dev/null +++ b/tests/auto/installer/componentreplace/data/repositoryWithMultiReplaceInUpdate/C/2.0.0content.7z 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); |