diff options
author | Friedemann Kleint <Friedemann.Kleint@nokia.com> | 2012-07-09 14:39:23 +0200 |
---|---|---|
committer | Qt by Nokia <qt-info@nokia.com> | 2012-07-13 09:55:18 +0200 |
commit | 00bafafbee3db66738ad5e96fcc69a480adc7428 (patch) | |
tree | 23d8b79bdf77eb18c0102b55e46aac71ee6903b6 /src/testlib/qtestaccessible.h | |
parent | c97104f31e23315807fe24f1424b99438f91e37a (diff) |
Improve accessibility test helpers.
- Wait for accessibility events using qWait, allowing for
event processing,
- Output a verbose message if the event cannot be found.
Change-Id: Iaadbd235c15dd12bb14724e1724dd04328532a96
Reviewed-by: Frederik Gladhorn <frederik.gladhorn@nokia.com>
Diffstat (limited to 'src/testlib/qtestaccessible.h')
-rw-r--r-- | src/testlib/qtestaccessible.h | 31 |
1 files changed, 27 insertions, 4 deletions
diff --git a/src/testlib/qtestaccessible.h b/src/testlib/qtestaccessible.h index e039cd3998..67b792d78a 100644 --- a/src/testlib/qtestaccessible.h +++ b/src/testlib/qtestaccessible.h @@ -53,6 +53,7 @@ QVERIFY(QTestAccessibility::verifyEvent(event)) #include <QtCore/qlist.h> +#include <QtCore/qdebug.h> #include <QtGui/qaccessible.h> #include <QtGui/qguiapplication.h> @@ -137,11 +138,17 @@ public: static EventList events() { return eventList(); } static bool verifyEvent(QAccessibleEvent *ev) { - if (eventList().isEmpty()) + for (int i = 0; eventList().isEmpty() && i < 5; ++i) + QTest::qWait(50); + if (eventList().isEmpty()) { + qWarning("%s: Timeout waiting for accessibility event.", Q_FUNC_INFO); return false; - QAccessibleEvent *first = eventList().takeFirst(); - bool res = *first == *ev; - delete first; + } + const bool res = *eventList().first() == *ev; + if (!res) + qWarning("%s: %s", Q_FUNC_INFO, + qPrintable(msgAccessibilityEventListMismatch(eventList(), ev))); + delete eventList().takeFirst(); return res; } static bool containsEvent(QAccessibleEvent *event) { @@ -229,6 +236,22 @@ private: static QTestAccessibility *ta = 0; return ta; } + +private: + static QString msgAccessibilityEventListMismatch(const EventList &haystack, + const QAccessibleEvent *needle) + { + QString rc; + QDebug str = QDebug(&rc).nospace(); + str << "Event " << needle->object() << ", type: " + << needle->type() << ", child: " << needle->child() + << " not found at head of event list of size " << haystack.size() << " :"; + foreach (const QAccessibleEvent *e, haystack) + str << ' ' << e->object() << ", type: " + << e->type() << ", child: " << e->child(); + return rc; + } + }; #endif |