┌   ┐
54
└   ┘

summaryrefslogtreecommitdiff
path: root/src/tests/dolphinmainwindowtest.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'src/tests/dolphinmainwindowtest.cpp')
-rw-r--r--src/tests/dolphinmainwindowtest.cpp120
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");