diff options
author | Katja Marttila <katja.marttila@qt.io> | 2022-03-18 14:13:24 +0200 |
---|---|---|
committer | Katja Marttila <katja.marttila@qt.io> | 2022-03-24 09:15:33 +0200 |
commit | ac1637b8976d7d85ac42f308c4be6de97dcf86cb (patch) | |
tree | 601dc434e0d8ae225758c2603fe4992a3b83418f /tests | |
parent | 449afefe542d3411de4bdacd068c1116ec10779c (diff) |
Add install reason why component is uninstalled
In details view uninstallable and installable components are listed. For
installable components a reason is shown why the component is installed.
Added similar kind of message for uninstallable components as well.
Task-number: QTIFW-2581
Change-Id: Idbf31200793a6c89a4ed4a6fc115f49889b5f9b5
Reviewed-by: Arttu Tarkiainen <arttu.tarkiainen@qt.io>
Diffstat (limited to 'tests')
-rw-r--r-- | tests/auto/installer/solver/tst_solver.cpp | 26 |
1 files changed, 19 insertions, 7 deletions
diff --git a/tests/auto/installer/solver/tst_solver.cpp b/tests/auto/installer/solver/tst_solver.cpp index 2f4e17855..5e499da2d 100644 --- a/tests/auto/installer/solver/tst_solver.cpp +++ b/tests/auto/installer/solver/tst_solver.cpp @@ -39,6 +39,9 @@ using namespace QInstaller; typedef QMap<Component *, QStringList> ComponentToStringList; +typedef QList<QPair<Component *, UninstallerCalculator::UninstallReasonType>> UninstallReasonList; + +Q_DECLARE_METATYPE(UninstallReasonList) class Data { public: @@ -218,7 +221,6 @@ private slots: << (QList<Component *>() << componentA) << (QList<Component *>()); } - } void unresolvedDependencyVersion() @@ -242,7 +244,9 @@ private slots: QTest::addColumn<QList<Component *> >("selectedToUninstall"); QTest::addColumn<QList<Component *> >("installedComponents"); QTest::addColumn<QSet<Component *> >("expectedResult"); + QTest::addColumn<UninstallReasonList >("uninstallReasons"); + UninstallReasonList uninstallReasonList; PackageManagerCore *core = new PackageManagerCore(); core->setPackageManager(); NamedComponent *componentA = new NamedComponent(core, QLatin1String("A")); @@ -259,11 +263,15 @@ private slots: componentB->setInstalled(); componentAB->setInstalled(); + uninstallReasonList.append(qMakePair(componentAB, UninstallerCalculator::Selected)); + uninstallReasonList.append(qMakePair(componentB, UninstallerCalculator::Dependent)); QTest::newRow("Uninstaller resolved") << core << (QList<Component *>() << componentAB) << (QList<Component *>() << componentA << componentB) - << (QSet<Component *>() << componentAB << componentB); + << (QSet<Component *>() << componentAB << componentB) + << (uninstallReasonList); + uninstallReasonList.clear(); core = new PackageManagerCore(); core->setPackageManager(); NamedComponent *compA = new NamedComponent(core, QLatin1String("A")); @@ -277,10 +285,13 @@ private slots: compA->setInstalled(); compB->setInstalled(); + uninstallReasonList.append(qMakePair(compA, UninstallerCalculator::Selected)); + uninstallReasonList.append(qMakePair(compB, UninstallerCalculator::Dependent)); QTest::newRow("Cascade dependencies") << core << (QList<Component *>() << compA) << (QList<Component *>() << compB) - << (QSet<Component *>() << compA << compB); + << (QSet<Component *>() << compA << compB) + << (uninstallReasonList); } void resolveUninstaller() @@ -289,17 +300,19 @@ private slots: QFETCH(QList<Component *> , selectedToUninstall); QFETCH(QList<Component *> , installedComponents); QFETCH(QSet<Component *> , expectedResult); - + QFETCH(UninstallReasonList, uninstallReasons); UninstallerCalculator calc(installedComponents, core); calc.appendComponentsToUninstall(selectedToUninstall); QSet<Component *> result = calc.componentsToUninstall(); - + for (auto pair : uninstallReasons) { + UninstallerCalculator::UninstallReasonType type = calc.uninstallReasonType(pair.first); + QCOMPARE(pair.second, type); + } QCOMPARE(result.count(), expectedResult.count()); QCOMPARE(result, expectedResult); delete core; } - void checkComponent_data() { QTest::addColumn<QList<Component *> >("componentsToCheck"); @@ -342,7 +355,6 @@ private slots: QTest::newRow("AutoDepend and dependency") << (QList<Component *>() << componentC << componentD << componentE) << result; - } void checkComponent() |