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/installiconsoperation/tst_installiconsoperation.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/installiconsoperation/tst_installiconsoperation.cpp')
-rw-r--r-- | tests/auto/installer/installiconsoperation/tst_installiconsoperation.cpp | 77 |
1 files changed, 43 insertions, 34 deletions
diff --git a/tests/auto/installer/installiconsoperation/tst_installiconsoperation.cpp b/tests/auto/installer/installiconsoperation/tst_installiconsoperation.cpp index cb95e49da..d1a9c680e 100644 --- a/tests/auto/installer/installiconsoperation/tst_installiconsoperation.cpp +++ b/tests/auto/installer/installiconsoperation/tst_installiconsoperation.cpp @@ -42,6 +42,43 @@ using namespace QInstaller; class tst_installiconsoperation : 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->installDefaultComponentsSilently(); + + InstallIconsOperation *installIconsOp = nullptr; + OperationList operations = core->componentByName("A")->operations(); + foreach (Operation *op, operations) { + if (op->name() == QLatin1String("InstallIcons")) + installIconsOp = dynamic_cast<InstallIconsOperation *>(op); + } + QVERIFY(installIconsOp); + + // As the original directory containing icons will be deleted by the operation, + // we will use a copy with the exact same contents. + QFileInfo fakeSourceInfo(installDir + "/icons_copy/test"); + QMap<QString, QByteArray> fakeSourceMap; + VerifyInstaller::addToFileMap(QDir(fakeSourceInfo.absoluteFilePath()), fakeSourceInfo, fakeSourceMap); + + QFileInfo destinationInfo(installIconsOp->value("directory").toString() + "/test"); + QMap<QString, QByteArray> destinationMap; + VerifyInstaller::addToFileMap(QDir(destinationInfo.absoluteFilePath()), destinationInfo, destinationMap); + + QVERIFY(fakeSourceMap == destinationMap); + + core->setPackageManager(); + core->commitSessionOperations(); + core->uninstallComponentsSilently(QStringList() << "A"); + QVERIFY(!destinationInfo.exists()); + + QDir dir(installDir); + QVERIFY(dir.removeRecursively()); + } private slots: void initTestCase() @@ -77,42 +114,14 @@ private slots: QCOMPARE(op.errorString(), QString("Invalid Argument: source directory must not be empty.")); } - void testPerformingFromCLI() + void testInstallIconsFromScript() { - QString installDir = QInstaller::generateTemporaryFileName(); - QVERIFY(QDir().mkpath(installDir)); - PackageManagerCore *core = PackageManager::getPackageManagerWithInit - (installDir, ":///data/repository"); - core->installDefaultComponentsSilently(); - - InstallIconsOperation *installIconsOp = nullptr; - OperationList operations = core->componentByName("A")->operations(); - foreach (Operation *op, operations) { - if (op->name() == QLatin1String("InstallIcons")) - installIconsOp = dynamic_cast<InstallIconsOperation *>(op); - } - QVERIFY(installIconsOp); - - // As the original directory containing icons will be deleted by the operation, - // we will use a copy with the exact same contents. - QFileInfo fakeSourceInfo(installDir + "/icons_copy/test"); - QMap<QString, QByteArray> fakeSourceMap; - VerifyInstaller::addToFileMap(QDir(fakeSourceInfo.absoluteFilePath()), fakeSourceInfo, fakeSourceMap); - - QFileInfo destinationInfo(installIconsOp->value("directory").toString() + "/test"); - QMap<QString, QByteArray> destinationMap; - VerifyInstaller::addToFileMap(QDir(destinationInfo.absoluteFilePath()), destinationInfo, destinationMap); - - QVERIFY(fakeSourceMap == destinationMap); - - core->setPackageManager(); - core->commitSessionOperations(); - core->uninstallComponentsSilently(QStringList() << "A"); - QVERIFY(!destinationInfo.exists()); + installFromCLI(":///data/repository"); + } - QDir dir(installDir); - QVERIFY(dir.removeRecursively()); - core->deleteLater(); + void testInstallIconsFromXML() + { + installFromCLI(":///data/xmloperationrepository"); } void testInstallIconsWithUndo() |