From be1efffde7b6bcce8abbea4ee09fb18ad06d623d Mon Sep 17 00:00:00 2001 From: Janek Bevendorff Date: Fri, 6 Mar 2026 23:59:02 +0100 Subject: [PATCH] Fix Linux test failures (#13113) * Fix test failure introduced by ab31a748fad4ab448bc9c3ca9571bb129cc6fda1 (#10993) * Fix tray hiding test failure Introduced by 43904d87b7ae7339e393ce9de465556e3da52d3c (#10928), but somehow hasn't posed an issue until now. --------- Co-authored-by: Jonathan White --- tests/gui/TestGui.cpp | 14 ++++++- .../TestImageAttachmentsWidget.cpp | 40 ++++--------------- 2 files changed, 20 insertions(+), 34 deletions(-) diff --git a/tests/gui/TestGui.cpp b/tests/gui/TestGui.cpp index 1d1b11ad2..c8bf7c987 100644 --- a/tests/gui/TestGui.cpp +++ b/tests/gui/TestGui.cpp @@ -346,8 +346,8 @@ void TestGui::testMergeDatabase() fileDialog()->setNextFileName(QString(KEEPASSX_TEST_DATA_DIR).append("/MergeDatabase.kdbx")); triggerAction("actionDatabaseMerge"); - QTRY_COMPARE(QApplication::focusWidget()->objectName(), QString("passwordEdit")); - auto* editPasswordMerge = QApplication::focusWidget(); + QWidget* editPasswordMerge; + QTRY_VERIFY((editPasswordMerge = QApplication::focusWidget()) && editPasswordMerge->objectName() == "passwordEdit"); QVERIFY(editPasswordMerge->isVisible()); QTest::keyClicks(editPasswordMerge, "a"); @@ -1931,18 +1931,28 @@ void TestGui::testTrayRestoreHide() trayIcon->activated(QSystemTrayIcon::Trigger); QTRY_VERIFY(m_mainWindow->isVisible()); + // Wait out window hide grace period before triggering tray icon again + int gracePeriod = 250; +#ifdef Q_OS_WIN + // Windows requires a shorter grace period + gracePeriod = 50; +#endif + + Tools::wait(gracePeriod); trayIcon->activated(QSystemTrayIcon::Trigger); QTRY_VERIFY(!m_mainWindow->isVisible()); trayIcon->activated(QSystemTrayIcon::MiddleClick); QTRY_VERIFY(m_mainWindow->isVisible()); + Tools::wait(gracePeriod); trayIcon->activated(QSystemTrayIcon::MiddleClick); QTRY_VERIFY(!m_mainWindow->isVisible()); trayIcon->activated(QSystemTrayIcon::DoubleClick); QTRY_VERIFY(m_mainWindow->isVisible()); + Tools::wait(gracePeriod); trayIcon->activated(QSystemTrayIcon::DoubleClick); QTRY_VERIFY(!m_mainWindow->isVisible()); diff --git a/tests/gui/attachments/TestImageAttachmentsWidget.cpp b/tests/gui/attachments/TestImageAttachmentsWidget.cpp index fc2d14e2d..44800a907 100644 --- a/tests/gui/attachments/TestImageAttachmentsWidget.cpp +++ b/tests/gui/attachments/TestImageAttachmentsWidget.cpp @@ -43,10 +43,7 @@ void TestImageAttachmentsWidget::testFitInView() auto zoomFactor = m_imageAttachmentsView->transform(); m_widget->setMinimumSize(m_widget->size() + QSize{100, 100}); - - QCoreApplication::processEvents(); - - QVERIFY(zoomFactor != m_imageAttachmentsView->transform()); + QTRY_VERIFY(zoomFactor != m_imageAttachmentsView->transform()); } void TestImageAttachmentsWidget::testZoomCombobox() @@ -56,10 +53,7 @@ void TestImageAttachmentsWidget::testZoomCombobox() QVERIFY(index != -1); m_zoomCombobox->setCurrentIndex(index); - - QCoreApplication::processEvents(); - - QCOMPARE(m_imageAttachmentsView->transform(), QTransform::fromScale(zoom, zoom)); + QTRY_COMPARE(m_imageAttachmentsView->transform(), QTransform::fromScale(zoom, zoom)); } } @@ -67,10 +61,7 @@ void TestImageAttachmentsWidget::testEditZoomCombobox() { for (double i = 0.25; i < 5; i += 0.25) { m_zoomCombobox->setCurrentText(QString::number(i * 100)); - - QCoreApplication::processEvents(); - - QCOMPARE(m_imageAttachmentsView->transform(), QTransform::fromScale(i, i)); + QTRY_COMPARE(m_imageAttachmentsView->transform(), QTransform::fromScale(i, i)); } } @@ -79,19 +70,13 @@ void TestImageAttachmentsWidget::testEditWithPercentZoomCombobox() // Example 100 % for (double i = 0.25; i < 5; i += 0.25) { m_zoomCombobox->setCurrentText(QString("%1 %").arg(i * 100)); - - QCoreApplication::processEvents(); - - QCOMPARE(m_imageAttachmentsView->transform(), QTransform::fromScale(i, i)); + QTRY_COMPARE(m_imageAttachmentsView->transform(), QTransform::fromScale(i, i)); } // Example 100% for (double i = 0.25; i < 5; i += 0.25) { m_zoomCombobox->setCurrentText(QString("%1%").arg(i * 100)); - - QCoreApplication::processEvents(); - - QCOMPARE(m_imageAttachmentsView->transform(), QTransform::fromScale(i, i)); + QTRY_COMPARE(m_imageAttachmentsView->transform(), QTransform::fromScale(i, i)); } } @@ -108,10 +93,7 @@ void TestImageAttachmentsWidget::testInvalidValueZoomCombobox() for (const auto& invalidValue : {"Help", "3,4", "", ".", "% 100"}) { m_zoomCombobox->setCurrentText(invalidValue); - - QCoreApplication::processEvents(); - - QCOMPARE(m_imageAttachmentsView->transform(), expectedTransform); + QTRY_COMPARE(m_imageAttachmentsView->transform(), expectedTransform); } } @@ -208,10 +190,7 @@ void TestImageAttachmentsWidget::testZoomLowerBound() true); QCoreApplication::sendEvent(m_imageAttachmentsView->viewport(), &event); - - QCoreApplication::processEvents(); - - QCOMPARE(m_imageAttachmentsView->transform(), expectTransform); + QTRY_COMPARE(m_imageAttachmentsView->transform(), expectTransform); } void TestImageAttachmentsWidget::testZoomUpperBound() @@ -237,8 +216,5 @@ void TestImageAttachmentsWidget::testZoomUpperBound() true); QCoreApplication::sendEvent(m_imageAttachmentsView->viewport(), &event); - - QCoreApplication::processEvents(); - - QCOMPARE(m_imageAttachmentsView->transform(), expectTransform); + QTRY_COMPARE(m_imageAttachmentsView->transform(), expectTransform); }