diff options
author | Mitch Curtis <[email protected]> | 2025-02-24 15:30:38 +0800 |
---|---|---|
committer | Mitch Curtis <[email protected]> | 2025-04-25 08:36:08 +0800 |
commit | 386e0851146bdfb24ad841ac388745c3af802673 (patch) | |
tree | 5c6305ecd1b5269659ab80f847bd97590471014f /src/qmltest/quicktest.h | |
parent | cf748fce71bf06f3695248024c21d2083ee4c714 (diff) |
QQuickTest: add and use active focus macros
Also add support for popups (when controlstestutils_p.h is included).
[ChangeLog][Qt Quick Test] Added QVERIFY_ACTIVE_FOCUS and
QTRY_VERIFY_ACTIVE_FOCUS macros that can be used to get detailed
failure messages for when QQuickItem::hasActiveFocus should be true but
isn't.
Task-number: QTBUG-133858
Change-Id: I30c67a84ccc16e3969bac5661648d0062bc3d62c
Reviewed-by: Mitch Curtis <[email protected]>
Diffstat (limited to 'src/qmltest/quicktest.h')
-rw-r--r-- | src/qmltest/quicktest.h | 15 |
1 files changed, 15 insertions, 0 deletions
diff --git a/src/qmltest/quicktest.h b/src/qmltest/quicktest.h index 4dd9127b18..8dde4876f0 100644 --- a/src/qmltest/quicktest.h +++ b/src/qmltest/quicktest.h @@ -79,8 +79,23 @@ Q_QMLTEST_EXPORT bool qIsPolishScheduled(const QQuickWindow *window); #endif Q_QMLTEST_EXPORT bool qWaitForPolish(const QQuickItem *item, int timeout = defaultTimeout); Q_QMLTEST_EXPORT bool qWaitForPolish(const QQuickWindow *window, int timeout = defaultTimeout); + +// These are "private" functions that we need in the public macros and hence +// can't live in private headers. This is the same as what qtestcase.h does with e.g. qCaught. +// controlstestutils_p.h has an overload for QQuickPopup. +[[nodiscard]] Q_QMLTEST_EXPORT QString qActiveFocusFailureMessage(const QQuickItem *item); } +#define QVERIFY_ACTIVE_FOCUS(item) \ + do { \ + QVERIFY2(item->hasActiveFocus(), qUtf8Printable(QQuickTest::qActiveFocusFailureMessage(item))); \ + } while (false) + +#define QTRY_VERIFY_ACTIVE_FOCUS(item) \ + do { \ + QTRY_VERIFY2(item->hasActiveFocus(), qUtf8Printable(QQuickTest::qActiveFocusFailureMessage(item))); \ + } while (false) + QT_END_NAMESPACE #endif |