summaryrefslogtreecommitdiffstats
path: root/tests/auto/installer/copydirectoryoperation/tst_copydirectoryoperation.cpp
diff options
context:
space:
mode:
authorKatja Marttila <katja.marttila@qt.io>2020-11-19 07:25:01 +0200
committerKatja Marttila <katja.marttila@qt.io>2020-12-07 07:36:36 +0200
commite82ab45ed71d9b807dc23eae559c759f4584b79d (patch)
tree1ff8a7379a7c0fbd1908783404babd9b83e4d414 /tests/auto/installer/copydirectoryoperation/tst_copydirectoryoperation.cpp
parentb43ab89a64c6484a8af4be424ab695b956d7f7bc (diff)
Add option to define operations in component.xml
Operations can from now on be declared also in component.xml. The operations are performed, backuped and rollbacked the same way as they would be when defined from scripting api. Task-number: QTIFW-507 Change-Id: Ia509219b94737136c3de25db0cb0c72076b48380 Reviewed-by: Leena Miettinen <riitta-leena.miettinen@qt.io> Reviewed-by: Arttu Tarkiainen <arttu.tarkiainen@qt.io>
Diffstat (limited to 'tests/auto/installer/copydirectoryoperation/tst_copydirectoryoperation.cpp')
-rw-r--r--tests/auto/installer/copydirectoryoperation/tst_copydirectoryoperation.cpp65
1 files changed, 38 insertions, 27 deletions
diff --git a/tests/auto/installer/copydirectoryoperation/tst_copydirectoryoperation.cpp b/tests/auto/installer/copydirectoryoperation/tst_copydirectoryoperation.cpp
index 19a8b36b7..bf95f635d 100644
--- a/tests/auto/installer/copydirectoryoperation/tst_copydirectoryoperation.cpp
+++ b/tests/auto/installer/copydirectoryoperation/tst_copydirectoryoperation.cpp
@@ -43,6 +43,38 @@ class tst_copydirectoryoperation : public QObject
{
Q_OBJECT
+private:
+ void installFromCLI(const QString &repository)
+ {
+ QString installDir = QInstaller::generateTemporaryFileName();
+ QVERIFY(QDir().mkpath(installDir));
+ PackageManagerCore *core = PackageManager::getPackageManagerWithInit
+ (installDir, repository);
+
+ core->setValue(scTargetDir, installDir);
+ core->installDefaultComponentsSilently();
+
+ // Matches path in component install script
+ QFileInfo targetInfo(installDir + QDir::toNativeSeparators("/directory"));
+ QMap<QString, QByteArray> targetMap;
+ VerifyInstaller::addToFileMap(QDir(targetInfo.absoluteFilePath()), targetInfo, targetMap);
+
+ QFileInfo destinationInfo(installDir + QDir::toNativeSeparators("/destination/directory"));
+ QMap<QString, QByteArray> destinationMap;
+ VerifyInstaller::addToFileMap(QDir(destinationInfo.absoluteFilePath()), destinationInfo, destinationMap);
+
+ QVERIFY(targetMap == destinationMap);
+
+ core->setPackageManager();
+ core->commitSessionOperations();
+ core->uninstallComponentsSilently(QStringList() << "A");
+ QVERIFY(!destinationInfo.exists());
+
+ QDir dir(installDir);
+ QVERIFY(dir.removeRecursively());
+ core->deleteLater();
+ }
+
private slots:
void initTestCase()
{
@@ -140,35 +172,14 @@ private slots:
QVERIFY2(op.performOperation(), op.errorString().toLatin1());
}
- void testPerformingFromCLI()
+ void testCopyDirectoryFromScript()
{
- QString installDir = QInstaller::generateTemporaryFileName();
- QVERIFY(QDir().mkpath(installDir));
- PackageManagerCore *core = PackageManager::getPackageManagerWithInit
- (installDir, ":///data/repository");
-
- core->setValue(scTargetDir, installDir);
- core->installDefaultComponentsSilently();
-
- // Matches path in component install script
- QFileInfo targetInfo(installDir + QDir::toNativeSeparators("/directory"));
- QMap<QString, QByteArray> targetMap;
- VerifyInstaller::addToFileMap(QDir(targetInfo.absoluteFilePath()), targetInfo, targetMap);
-
- QFileInfo destinationInfo(installDir + QDir::toNativeSeparators("/destination/directory"));
- QMap<QString, QByteArray> destinationMap;
- VerifyInstaller::addToFileMap(QDir(destinationInfo.absoluteFilePath()), destinationInfo, destinationMap);
-
- QVERIFY(targetMap == destinationMap);
-
- core->setPackageManager();
- core->commitSessionOperations();
- core->uninstallComponentsSilently(QStringList() << "A");
- QVERIFY(!destinationInfo.exists());
+ installFromCLI(":///data/repository");
+ }
- QDir dir(installDir);
- QVERIFY(dir.removeRecursively());
- core->deleteLater();
+ void testCopyDirectoryFromComponentXML()
+ {
+ installFromCLI(":///data/xmloperationrepository");
}
private: