]> cloud.milkyroute.net Git - dolphin.git/commitdiff
Increase code coverage of places panel width resistance test
authorFelix Ernst <felixernst@kde.org>
Fri, 23 Sep 2022 18:35:34 +0000 (20:35 +0200)
committerFelix Ernst <felixernst@kde.org>
Fri, 23 Sep 2022 19:17:19 +0000 (21:17 +0200)
Improve the test by also testing the various selection mode bars.
No combination of bars should lead to a resize of the paces panel.

This commit also helps with increasing code coverage by making all
possible selection mode bars appear.

src/tests/dolphinmainwindowtest.cpp

index ef972ff259d032a0d470e9b2eaecce863bd96e19..eefca42049622c033280f057cdb56b0b78f3fd85 100644 (file)
@@ -277,6 +277,7 @@ void DolphinMainWindowTest::testPlacesPanelWidthResistance()
 {
     m_mainWindow->openDirectories({ QUrl::fromLocalFile(QDir::homePath()) }, false);
     m_mainWindow->show();
+    m_mainWindow->resize(800, m_mainWindow->height()); // make sure the size is sufficient so a places panel resize shouldn't be necessary.
     QVERIFY(QTest::qWaitForWindowExposed(m_mainWindow.data()));
     QVERIFY(m_mainWindow->isVisible());
 
@@ -292,6 +293,16 @@ void DolphinMainWindowTest::testPlacesPanelWidthResistance()
     m_mainWindow->actionCollection()->action(QStringLiteral("show_filter_bar"))->trigger();
     QCOMPARE(placesPanel->width(), initialPlacesPanelWidth);
 
+    // Make all selection mode bars appear and test for each that this doesn't affect the places panel's width.
+    // One of the bottom bars (SelectionMode::BottomBar::GeneralContents) only shows up when at least one item is selected so we do that before we begin iterating.
+    m_mainWindow->actionCollection()->action(KStandardAction::name(KStandardAction::SelectAll))->trigger();
+    for (int selectionModeStates = SelectionMode::BottomBar::CopyContents; selectionModeStates != SelectionMode::BottomBar::RenameContents; selectionModeStates++) {
+        const auto contents = static_cast<SelectionMode::BottomBar::Contents>(selectionModeStates);
+        m_mainWindow->slotSetSelectionMode(true, contents);
+        QTest::qWait(20); // give time for a paint/resize
+        QCOMPARE(placesPanel->width(), initialPlacesPanelWidth);
+    }
+
     m_mainWindow->actionCollection()->action(KStandardAction::name(KStandardAction::Find))->trigger();
     QCOMPARE(placesPanel->width(), initialPlacesPanelWidth);