From ac1637b8976d7d85ac42f308c4be6de97dcf86cb Mon Sep 17 00:00:00 2001 From: Katja Marttila Date: Fri, 18 Mar 2022 14:13:24 +0200 Subject: 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 --- tests/auto/installer/solver/tst_solver.cpp | 26 +++++++++++++++++++------- 1 file changed, 19 insertions(+), 7 deletions(-) (limited to 'tests/auto/installer/solver/tst_solver.cpp') 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 ComponentToStringList; +typedef QList> UninstallReasonList; + +Q_DECLARE_METATYPE(UninstallReasonList) class Data { public: @@ -218,7 +221,6 @@ private slots: << (QList() << componentA) << (QList()); } - } void unresolvedDependencyVersion() @@ -242,7 +244,9 @@ private slots: QTest::addColumn >("selectedToUninstall"); QTest::addColumn >("installedComponents"); QTest::addColumn >("expectedResult"); + QTest::addColumn("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() << componentAB) << (QList() << componentA << componentB) - << (QSet() << componentAB << componentB); + << (QSet() << 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() << compA) << (QList() << compB) - << (QSet() << compA << compB); + << (QSet() << compA << compB) + << (uninstallReasonList); } void resolveUninstaller() @@ -289,17 +300,19 @@ private slots: QFETCH(QList , selectedToUninstall); QFETCH(QList , installedComponents); QFETCH(QSet , expectedResult); - + QFETCH(UninstallReasonList, uninstallReasons); UninstallerCalculator calc(installedComponents, core); calc.appendComponentsToUninstall(selectedToUninstall); QSet 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 >("componentsToCheck"); @@ -342,7 +355,6 @@ private slots: QTest::newRow("AutoDepend and dependency") << (QList() << componentC << componentD << componentE) << result; - } void checkComponent() -- cgit v1.2.3