summaryrefslogtreecommitdiffstats
path: root/tests/auto/installer/commandlineupdate/tst_commandlineupdate.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'tests/auto/installer/commandlineupdate/tst_commandlineupdate.cpp')
-rw-r--r--tests/auto/installer/commandlineupdate/tst_commandlineupdate.cpp101
1 files changed, 56 insertions, 45 deletions
diff --git a/tests/auto/installer/commandlineupdate/tst_commandlineupdate.cpp b/tests/auto/installer/commandlineupdate/tst_commandlineupdate.cpp
index 04b11d427..0faeecf74 100644
--- a/tests/auto/installer/commandlineupdate/tst_commandlineupdate.cpp
+++ b/tests/auto/installer/commandlineupdate/tst_commandlineupdate.cpp
@@ -60,8 +60,6 @@ private slots:
void testUpdate_data()
{
- QTest::addColumn<QString>("installDir");
- QTest::addColumn<PackageManagerCore *>("core");
QTest::addColumn<QString>("repository");
QTest::addColumn<QStringList>("installComponents");
QTest::addColumn<PackageManagerCore::Status>("status");
@@ -86,12 +84,7 @@ private slots:
ComponentResourceHash deletedComponentResources;
deletedComponentResources.append(ComponentResource("componentA", "1.0.0content.txt"));
- QString installDir = QInstaller::generateTemporaryFileName();
- PackageManagerCore *core = PackageManager::getPackageManagerWithInit(installDir);
-
QTest::newRow("Update essential packages")
- << installDir
- << core
<< ":///data/installPackagesRepository"
<< (QStringList() << "componentA")
<< PackageManagerCore::Success
@@ -107,15 +100,11 @@ private slots:
<< deletedComponentResources;
/*********** 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"));
QTest::newRow("Update essential with autodependon")
- << installDir
- << core
<< ":///data/installPackagesRepository"
<< (QStringList() << "componentA")
<< PackageManagerCore::Success
@@ -137,8 +126,6 @@ private slots:
componentResources.append(ComponentResource("componentH", "1.0.0content.txt"));
componentResources.append(ComponentResource("componentE", "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"));
@@ -147,8 +134,6 @@ private slots:
deletedComponentResources.append(ComponentResource("componentH", "1.0.0content.txt"));
QTest::newRow("Update force update packages")
- << installDir
- << core
<< ":///data/installPackagesRepository"
<< (QStringList() << "componentH")
<< PackageManagerCore::Success
@@ -171,8 +156,6 @@ private slots:
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"));
@@ -185,8 +168,6 @@ private slots:
deletedComponentResources.append(ComponentResource("componentE", "1.0.0content.txt"));
QTest::newRow("Update packages")
- << installDir
- << core
<< ":///data/installPackagesRepository"
<< (QStringList() << "componentC" << "componentH")
<< PackageManagerCore::Success
@@ -211,8 +192,6 @@ private slots:
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"));
@@ -225,8 +204,6 @@ private slots:
deletedComponentResources.append(ComponentResource("componentG", "1.0.0content.txt"));
QTest::newRow("Update two packages")
- << installDir
- << core
<< ":///data/installPackagesRepository"
<< (QStringList()<< "componentA" << "componentB" << "componentE" << "componentG")
<< PackageManagerCore::Success
@@ -260,8 +237,6 @@ private slots:
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"));
@@ -287,8 +262,6 @@ private slots:
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")
@@ -318,13 +291,11 @@ private slots:
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", "2.0.0content.txt"));
componentResourcesAfterUpdate.append(ComponentResource("componentD", "2.0.0content.txt"));//AutodepenOn componentA,componentB
- componentResourcesAfterUpdate.append(ComponentResource("componentE", "2.0.0content.txt"));//ForcedInstall
+ componentResourcesAfterUpdate.append(ComponentResource("componentE", "1.0.0content.txt"));//ForcedInstall, not updated without user selection
componentResourcesAfterUpdate.append(ComponentResource("componentG", "1.0.0content.txt"));
deletedComponentResources.clear();
@@ -332,8 +303,6 @@ private slots:
deletedComponentResources.append(ComponentResource("componentD", "1.0.0content.txt"));
QTest::newRow("Update packages with AutoDependOn")
- << installDir
- << core
<< ":///data/installPackagesRepository"
<< (QStringList()<< "componentA" << "componentB" << "componentE" << "componentG")
<< PackageManagerCore::Success
@@ -347,14 +316,42 @@ private slots:
<< componentResourcesAfterUpdate
<< (QStringList() << "components.xml" << "installcontent.txt" << "installcontentA.txt"
<< "installcontentD_update.txt" << "installcontentB_update.txt"
- << "installcontentE_update.txt" << "installcontentG.txt")
+ << "installcontentE.txt" << "installcontentG.txt")
<< deletedComponentResources;
+
+ /*********** Update packages with replacements **********/
+ componentResources.clear();
+ componentResources.append(ComponentResource("qt.tools.qtcreator", "1.0.0content.txt"));
+ componentResources.append(ComponentResource("qt.tools.qtcreator.enterprise.plugins", "1.0.0content.txt"));
+ componentResources.append(ComponentResource("componentE", "1.0.0content.txt"));
+
+ componentResourcesAfterUpdate.clear();
+ componentResourcesAfterUpdate.append(ComponentResource("qt.tools.qtcreator", "2.0.0content.txt"));
+ componentResourcesAfterUpdate.append(ComponentResource("qt.tools.qtcreator_gui", "2.0.0content.txt"));
+ componentResourcesAfterUpdate.append(ComponentResource("qt.tools.qtcreator_gui.enterprise.plugins", "2.0.0content.txt"));
+ componentResourcesAfterUpdate.append(ComponentResource("componentE", "1.0.0content.txt"));
+
+ deletedComponentResources.clear();
+ deletedComponentResources.append(ComponentResource("qt.tools.qtcreator.enterprise.plugins", "1.0.0content.txt"));
+
+ QTest::newRow("Update packages with replacements")
+ << ":///data/installPackagesRepository"
+ << (QStringList()<< "qt.tools.qtcreator")
+ << PackageManagerCore::Success
+ << componentResources
+ << (QStringList() << "components.xml" << "installcontentA.txt" << "installcontentE.txt" << "installcontentG.txt"
+ << "installcontent.txt" << "qtcreator.txt" << "plugins.txt")
+ << ":///data/repositoryUpdateWithReplacements"
+ << (QStringList() << "qt.tools.qtcreator")
+ << PackageManagerCore::Success
+ << componentResourcesAfterUpdate
+ << (QStringList() << "components.xml" << "installcontentA.txt" << "installcontentE.txt" << "installcontentG.txt"
+ << "installcontent.txt" << "gui.txt" << "qtcreator2.txt" << "gui_plugins.txt")
+ << deletedComponentResources;
}
void testUpdate()
{
- QFETCH(QString, installDir);
- QFETCH(PackageManagerCore *, core);
QFETCH(QString, repository);
QFETCH(QStringList, installComponents);
QFETCH(PackageManagerCore::Status, status);
@@ -367,12 +364,13 @@ private slots:
QFETCH(QStringList, installedFilesAfterUpdate);
QFETCH(ComponentResourceHash, deletedComponentResources);
- setRepository(repository, core);
+ PackageManagerCore *core = PackageManager::getPackageManagerWithInit(m_installDir, repository);
+
QCOMPARE(status, core->installSelectedComponentsSilently(QStringList() << installComponents));
for (const ComponentResource &resource : componentResources) {
- VerifyInstaller::verifyInstallerResources(installDir, resource.first, resource.second);
+ VerifyInstaller::verifyInstallerResources(m_installDir, resource.first, resource.second);
}
- VerifyInstaller::verifyFileExistence(installDir, installedFiles);
+ VerifyInstaller::verifyFileExistence(m_installDir, installedFiles);
core->commitSessionOperations();
core->setPackageManager();
@@ -380,25 +378,38 @@ private slots:
QCOMPARE(updateStatus, core->updateComponentsSilently(updateComponents));
for (const ComponentResource &resource : componentResourcesAfterUpdate) {
- VerifyInstaller::verifyInstallerResources(installDir, resource.first, resource.second);
+ VerifyInstaller::verifyInstallerResources(m_installDir, resource.first, resource.second);
}
for (const ComponentResource &resource : deletedComponentResources) {
- VerifyInstaller::verifyInstallerResourceFileDeletion(installDir, resource.first, resource.second);
+ VerifyInstaller::verifyInstallerResourceFileDeletion(m_installDir, resource.first, resource.second);
}
- VerifyInstaller::verifyFileExistence(installDir, installedFilesAfterUpdate);
+ VerifyInstaller::verifyFileExistence(m_installDir, installedFilesAfterUpdate);
delete core;
}
void testUpdateNoUpdatesForSelectedPackage()
{
- QString installDir = QInstaller::generateTemporaryFileName();
- PackageManagerCore *core = PackageManager::getPackageManagerWithInit(installDir);
- setRepository(":///data/installPackagesRepositoryUpdate", core);
+ QScopedPointer<PackageManagerCore> core(PackageManager::getPackageManagerWithInit
+ (m_installDir, ":///data/installPackagesRepositoryUpdate"));
// No updates available for component so nothing to do
QCOMPARE(PackageManagerCore::Canceled, core->updateComponentsSilently(QStringList()
<< "componentInvalid"));
- delete core;
}
+
+ void init()
+ {
+ m_installDir = QInstaller::generateTemporaryFileName();
+ QVERIFY(QDir().mkpath(m_installDir));
+ }
+
+ void cleanup()
+ {
+ QDir dir(m_installDir);
+ QVERIFY(dir.removeRecursively());
+ }
+
+private:
+ QString m_installDir;
};