From b34d5dcf689470618c5eedd87e7634cb2e40acd7 Mon Sep 17 00:00:00 2001 From: Axel Spoerl Date: Fri, 7 Jul 2023 17:21:34 +0200 Subject: [PATCH] tst_QDialogButtonBox::hideAndShowButton: Wait for focus widget Spin the event loop with QTRY_VERIFY when checking the dialog box's focus widget, to stop flaking. Change-Id: I24fab1264796e05645da4c12e4672daec9b06067 Reviewed-by: Volker Hilsheimer Reviewed-by: Qt CI Bot (cherry picked from commit 25f7d95fce7e3082f9951fc5403ac7047e62c087) Reviewed-by: Qt Cherry-pick Bot --- .../widgets/qdialogbuttonbox/tst_qdialogbuttonbox.cpp | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/tests/auto/widgets/widgets/qdialogbuttonbox/tst_qdialogbuttonbox.cpp b/tests/auto/widgets/widgets/qdialogbuttonbox/tst_qdialogbuttonbox.cpp index c3f8fb0e30d..b3f26e5dd81 100644 --- a/tests/auto/widgets/widgets/qdialogbuttonbox/tst_qdialogbuttonbox.cpp +++ b/tests/auto/widgets/widgets/qdialogbuttonbox/tst_qdialogbuttonbox.cpp @@ -7,6 +7,7 @@ #include #include #include +#include #include #include #include @@ -380,6 +381,9 @@ void tst_QDialogButtonBox::removeButton() #ifdef QT_BUILD_INTERNAL void tst_QDialogButtonBox::hideAndShowButton() { + if (QGuiApplication::styleHints()->tabFocusBehavior() == Qt::NoTabFocus) + QSKIP("Test skipped with Qt::NoTabFocus"); + QDialogButtonBox buttonBox; QDialogButtonBoxPrivate *d = static_cast(QObjectPrivate::get(&buttonBox)); auto *apply = buttonBox.addButton( "Apply", QDialogButtonBox::ApplyRole ); @@ -402,7 +406,7 @@ void tst_QDialogButtonBox::hideAndShowButton() hideButton->hide(); widget->show(); QVERIFY(QTest::qWaitForWindowExposed(widget)); - QVERIFY(buttonBox.focusWidget()); // QTBUG-114377: Without fixing, focusWidget() == nullptr + QTRY_VERIFY(buttonBox.focusWidget()); // QTBUG-114377: Without fixing, focusWidget() == nullptr QCOMPARE(d->visibleButtons().count(), 2); QCOMPARE(d->hiddenButtons.count(), 1); QVERIFY(d->hiddenButtons.contains(hideButton));