diff options
Diffstat (limited to 'src/tests/dolphinmainwindowtest.cpp')
| -rw-r--r-- | src/tests/dolphinmainwindowtest.cpp | 120 |
1 files changed, 120 insertions, 0 deletions
diff --git a/src/tests/dolphinmainwindowtest.cpp b/src/tests/dolphinmainwindowtest.cpp index a629268c1..1b036436e 100644 --- a/src/tests/dolphinmainwindowtest.cpp +++ b/src/tests/dolphinmainwindowtest.cpp @@ -209,7 +209,13 @@ void DolphinMainWindowTest::testClosingTabsWithSearchBoxVisible() m_mainWindow->openDirectories({QUrl::fromLocalFile(QDir::homePath())}, false); m_mainWindow->show(); // Without this call the searchbox doesn't get FocusIn events. +#ifdef Q_OS_WIN + if (!QTest::qWaitForWindowExposed(m_mainWindow.data())) { + QSKIP("Window not exposed on Windows, probably running in a headless CI environment."); + } +#else QVERIFY(QTest::qWaitForWindowExposed(m_mainWindow.data())); +#endif QVERIFY(m_mainWindow->isVisible()); auto tabWidget = m_mainWindow->findChild<DolphinTabWidget *>("tabWidget"); @@ -238,7 +244,13 @@ void DolphinMainWindowTest::testActiveViewAfterClosingSplitView() { m_mainWindow->openDirectories({QUrl::fromLocalFile(QDir::homePath())}, false); m_mainWindow->show(); +#ifdef Q_OS_WIN + if (!QTest::qWaitForWindowExposed(m_mainWindow.data())) { + QSKIP("Window not exposed on Windows, probably running in a headless CI environment."); + } +#else QVERIFY(QTest::qWaitForWindowExposed(m_mainWindow.data())); +#endif QVERIFY(m_mainWindow->isVisible()); auto tabWidget = m_mainWindow->findChild<DolphinTabWidget *>("tabWidget"); @@ -283,7 +295,13 @@ void DolphinMainWindowTest::testUpdateWindowTitleAfterClosingSplitView() { m_mainWindow->openDirectories({QUrl::fromLocalFile(QDir::homePath())}, false); m_mainWindow->show(); +#ifdef Q_OS_WIN + if (!QTest::qWaitForWindowExposed(m_mainWindow.data())) { + QSKIP("Window not exposed on Windows, probably running in a headless CI environment."); + } +#else QVERIFY(QTest::qWaitForWindowExposed(m_mainWindow.data())); +#endif QVERIFY(m_mainWindow->isVisible()); auto tabWidget = m_mainWindow->findChild<DolphinTabWidget *>("tabWidget"); @@ -324,7 +342,13 @@ void DolphinMainWindowTest::testUpdateWindowTitleAfterChangingSplitView() { m_mainWindow->openDirectories({QUrl::fromLocalFile(QDir::homePath())}, false); m_mainWindow->show(); +#ifdef Q_OS_WIN + if (!QTest::qWaitForWindowExposed(m_mainWindow.data())) { + QSKIP("Window not exposed on Windows, probably running in a headless CI environment."); + } +#else QVERIFY(QTest::qWaitForWindowExposed(m_mainWindow.data())); +#endif QVERIFY(m_mainWindow->isVisible()); auto tabWidget = m_mainWindow->findChild<DolphinTabWidget *>("tabWidget"); @@ -355,7 +379,13 @@ void DolphinMainWindowTest::testOpenInNewTabTitle() const QUrl homePathUrl{QUrl::fromLocalFile(QDir::homePath())}; m_mainWindow->openDirectories({homePathUrl}, false); m_mainWindow->show(); +#ifdef Q_OS_WIN + if (!QTest::qWaitForWindowExposed(m_mainWindow.data())) { + QSKIP("Window not exposed on Windows, probably running in a headless CI environment."); + } +#else QVERIFY(QTest::qWaitForWindowExposed(m_mainWindow.data())); +#endif QVERIFY(m_mainWindow->isVisible()); auto tabWidget = m_mainWindow->findChild<DolphinTabWidget *>("tabWidget"); @@ -386,7 +416,13 @@ void DolphinMainWindowTest::testNewFileMenuEnabled() QFETCH(QUrl, activeViewUrl); m_mainWindow->openDirectories({activeViewUrl}, false); m_mainWindow->show(); +#ifdef Q_OS_WIN + if (!QTest::qWaitForWindowExposed(m_mainWindow.data())) { + QSKIP("Window not exposed on Windows, probably running in a headless CI environment."); + } +#else QVERIFY(QTest::qWaitForWindowExposed(m_mainWindow.data())); +#endif QVERIFY(m_mainWindow->isVisible()); auto newFileMenu = m_mainWindow->findChild<DolphinNewFileMenu *>("new_menu"); @@ -402,7 +438,13 @@ void DolphinMainWindowTest::testCreateFileAction() QString testDirUrl(QDir::cleanPath(testDir->url().toString())); m_mainWindow->openDirectories({testDirUrl}, false); m_mainWindow->show(); +#ifdef Q_OS_WIN + if (!QTest::qWaitForWindowExposed(m_mainWindow.data())) { + QSKIP("Window not exposed on Windows, probably running in a headless CI environment."); + } +#else QVERIFY(QTest::qWaitForWindowExposed(m_mainWindow.data())); +#endif QVERIFY(m_mainWindow->isVisible()); QCOMPARE(m_mainWindow->m_activeViewContainer->view()->items().count(), 0); @@ -444,7 +486,13 @@ void DolphinMainWindowTest::testCreateFileActionRequiresWritePermission() m_mainWindow->openDirectories({testDirUrl}, false); m_mainWindow->show(); +#ifdef Q_OS_WIN + if (!QTest::qWaitForWindowExposed(m_mainWindow.data())) { + QSKIP("Window not exposed on Windows, probably running in a headless CI environment."); + } +#else QVERIFY(QTest::qWaitForWindowExposed(m_mainWindow.data())); +#endif QVERIFY(m_mainWindow->isVisible()); QTRY_VERIFY_WITH_TIMEOUT(QApplication::activeWindow() != nullptr, 100); @@ -482,7 +530,13 @@ void DolphinMainWindowTest::testWindowTitle() QFETCH(QUrl, activeViewUrl); m_mainWindow->openDirectories({activeViewUrl}, false); m_mainWindow->show(); +#ifdef Q_OS_WIN + if (!QTest::qWaitForWindowExposed(m_mainWindow.data())) { + QSKIP("Window not exposed on Windows, probably running in a headless CI environment."); + } +#else QVERIFY(QTest::qWaitForWindowExposed(m_mainWindow.data())); +#endif QVERIFY(m_mainWindow->isVisible()); QFETCH(QString, expectedWindowTitle); @@ -494,7 +548,13 @@ void DolphinMainWindowTest::testFocusLocationBar() const QUrl homePathUrl{QUrl::fromLocalFile(QDir::homePath())}; m_mainWindow->openDirectories({homePathUrl}, false); m_mainWindow->show(); +#ifdef Q_OS_WIN + if (!QTest::qWaitForWindowExposed(m_mainWindow.data())) { + QSKIP("Window not exposed on Windows, probably running in a headless CI environment."); + } +#else QVERIFY(QTest::qWaitForWindowExposed(m_mainWindow.data())); +#endif QVERIFY(m_mainWindow->isVisible()); QTRY_VERIFY_WITH_TIMEOUT(QApplication::activeWindow() != nullptr, 100); @@ -524,7 +584,13 @@ void DolphinMainWindowTest::testFocusPlacesPanel() { m_mainWindow->openDirectories({QUrl::fromLocalFile(QDir::homePath())}, false); m_mainWindow->show(); +#ifdef Q_OS_WIN + if (!QTest::qWaitForWindowExposed(m_mainWindow.data())) { + QSKIP("Window not exposed on Windows, probably running in a headless CI environment."); + } +#else QVERIFY(QTest::qWaitForWindowExposed(m_mainWindow.data())); +#endif QVERIFY(m_mainWindow->isVisible()); m_mainWindow->windowHandle()->requestActivate(); QVERIFY(QTest::qWaitForWindowActive(m_mainWindow.data())); @@ -624,7 +690,13 @@ 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. +#ifdef Q_OS_WIN + if (!QTest::qWaitForWindowExposed(m_mainWindow.data())) { + QSKIP("Window not exposed on Windows, probably running in a headless CI environment."); + } +#else QVERIFY(QTest::qWaitForWindowExposed(m_mainWindow.data())); +#endif QVERIFY(m_mainWindow->isVisible()); QWidget *placesPanel = reinterpret_cast<QWidget *>(m_mainWindow->m_placesPanel); @@ -706,7 +778,13 @@ void DolphinMainWindowTest::testGoActions() const QUrl childDirUrl(QDir::cleanPath(testDir->url().toString() + "/b")); m_mainWindow->openDirectories({childDirUrl}, false); // Open "b" dir m_mainWindow->show(); +#ifdef Q_OS_WIN + if (!QTest::qWaitForWindowExposed(m_mainWindow.data())) { + QSKIP("Window not exposed on Windows, probably running in a headless CI environment."); + } +#else QVERIFY(QTest::qWaitForWindowExposed(m_mainWindow.data())); +#endif QVERIFY(m_mainWindow->isVisible()); QVERIFY(!m_mainWindow->actionCollection()->action(KStandardAction::name(KStandardAction::Forward))->isEnabled()); @@ -914,7 +992,13 @@ void DolphinMainWindowTest::testAccessibilityTree() { m_mainWindow->openDirectories({QUrl::fromLocalFile(QDir::homePath())}, false); m_mainWindow->show(); +#ifdef Q_OS_WIN + if (!QTest::qWaitForWindowExposed(m_mainWindow.data())) { + QSKIP("Window not exposed on Windows, probably running in a headless CI environment."); + } +#else QVERIFY(QTest::qWaitForWindowExposed(m_mainWindow.data())); +#endif QVERIFY(m_mainWindow->isVisible()); QTRY_VERIFY_WITH_TIMEOUT(QApplication::activeWindow() != nullptr, 100); @@ -999,7 +1083,13 @@ void DolphinMainWindowTest::testAutoSaveSession() { m_mainWindow->openDirectories({QUrl::fromLocalFile(QDir::homePath())}, false); m_mainWindow->show(); +#ifdef Q_OS_WIN + if (!QTest::qWaitForWindowExposed(m_mainWindow.data())) { + QSKIP("Window not exposed on Windows, probably running in a headless CI environment."); + } +#else QVERIFY(QTest::qWaitForWindowExposed(m_mainWindow.data())); +#endif QVERIFY(m_mainWindow->isVisible()); // Create config file @@ -1037,7 +1127,13 @@ void DolphinMainWindowTest::testInlineRename() testDir->createFiles({"aaaa", "bbbb", "cccc", "dddd"}); m_mainWindow->openDirectories({testDir->url()}, false); m_mainWindow->show(); +#ifdef Q_OS_WIN + if (!QTest::qWaitForWindowExposed(m_mainWindow.data())) { + QSKIP("Window not exposed on Windows, probably running in a headless CI environment."); + } +#else QVERIFY(QTest::qWaitForWindowExposed(m_mainWindow.data())); +#endif QVERIFY(m_mainWindow->isVisible()); DolphinView *view = m_mainWindow->activeViewContainer()->view(); @@ -1110,7 +1206,13 @@ void DolphinMainWindowTest::testThumbnailAfterRename() m_mainWindow->show(); QVERIFY(viewDirectoryLoadingCompletedSpy.wait()); QVERIFY(previewUpdatedSpy.wait()); +#ifdef Q_OS_WIN + if (!QTest::qWaitForWindowExposed(m_mainWindow.data())) { + QSKIP("Window not exposed on Windows, probably running in a headless CI environment."); + } +#else QVERIFY(QTest::qWaitForWindowExposed(m_mainWindow.data())); +#endif QVERIFY(m_mainWindow->isVisible()); QTRY_COMPARE(view->m_view->m_visibleItems.count(), view->m_model->count()); // wait for all file widgets to be laid out @@ -1162,7 +1264,13 @@ void DolphinMainWindowTest::testViewModeAfterDynamicView() QSignalSpy modelDirectoryLoadingCompletedSpy(view->m_model, &KFileItemModel::directoryLoadingCompleted); m_mainWindow->show(); QVERIFY(viewDirectoryLoadingCompletedSpy.wait()); +#ifdef Q_OS_WIN + if (!QTest::qWaitForWindowExposed(m_mainWindow.data())) { + QSKIP("Window not exposed on Windows, probably running in a headless CI environment."); + } +#else QVERIFY(QTest::qWaitForWindowExposed(m_mainWindow.data())); +#endif QVERIFY(m_mainWindow->isVisible()); m_mainWindow->actionCollection()->action(QStringLiteral("details"))->trigger(); QCOMPARE(view->m_mode, DolphinView::DetailsView); @@ -1284,7 +1392,13 @@ void DolphinMainWindowTest::testActivationAndTabTitleAfterRenameOpeningFolder() // Tab 0: Open childDirUrl m_mainWindow->openDirectories({childDirUrl}, false); m_mainWindow->show(); +#ifdef Q_OS_WIN + if (!QTest::qWaitForWindowExposed(m_mainWindow.data())) { + QSKIP("Window not exposed on Windows, probably running in a headless CI environment."); + } +#else QVERIFY(QTest::qWaitForWindowExposed(m_mainWindow.data())); +#endif QVERIFY(m_mainWindow->isVisible()); // Tab 0: Enable split view @@ -1358,7 +1472,13 @@ void DolphinMainWindowTest::testActiveViewAfterTabSwitchWithSplitView() { m_mainWindow->openDirectories({QUrl::fromLocalFile(QDir::homePath())}, false); m_mainWindow->show(); +#ifdef Q_OS_WIN + if (!QTest::qWaitForWindowExposed(m_mainWindow.data())) { + QSKIP("Window not exposed on Windows, probably running in a headless CI environment."); + } +#else QVERIFY(QTest::qWaitForWindowExposed(m_mainWindow.data())); +#endif QVERIFY(m_mainWindow->isVisible()); auto tabWidget = m_mainWindow->findChild<DolphinTabWidget *>("tabWidget"); |
