diff options
author | Katja Marttila <katja.marttila@qt.io> | 2020-11-19 07:25:01 +0200 |
---|---|---|
committer | Katja Marttila <katja.marttila@qt.io> | 2020-12-07 07:36:36 +0200 |
commit | e82ab45ed71d9b807dc23eae559c759f4584b79d (patch) | |
tree | 1ff8a7379a7c0fbd1908783404babd9b83e4d414 /tests/auto/installer/copydirectoryoperation/tst_copydirectoryoperation.cpp | |
parent | b43ab89a64c6484a8af4be424ab695b956d7f7bc (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.cpp | 65 |
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: |