summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorFrederik Gladhorn <frederik.gladhorn@nokia.com>2012-03-07 16:21:38 +0100
committerQt by Nokia <qt-info@nokia.com>2012-03-12 15:34:06 +0100
commitca737f566b1016712a0d90e8b5e55e49ce8748d2 (patch)
treeed0f85dbf5541ffb083ed24270a29ff8bdb172a0
parent431eb30e9ec21c15d26d6f1b03d3bbd4cd36c30c (diff)
Use QAccessibleEvent in test.
Change-Id: I4f9c0f503543caa5704a29c8ccd7c4134b455625 Reviewed-by: Jan-Arve Sæther <jan-arve.saether@nokia.com>
-rw-r--r--src/testlib/qtestaccessible.h50
-rw-r--r--tests/auto/other/qaccessibility/tst_qaccessibility.cpp40
2 files changed, 46 insertions, 44 deletions
diff --git a/src/testlib/qtestaccessible.h b/src/testlib/qtestaccessible.h
index d402cc8cf8..f9b1b97ac6 100644
--- a/src/testlib/qtestaccessible.h
+++ b/src/testlib/qtestaccessible.h
@@ -49,8 +49,8 @@
#ifndef QT_NO_ACCESSIBILITY
-#define QVERIFY_EVENT(object, child, event) \
- QVERIFY(QTestAccessibility::verifyEvent(object, child, (int)event))
+#define QVERIFY_EVENT(event) \
+ QVERIFY(QTestAccessibility::verifyEvent(event))
#include <QtCore/qlist.h>
#include <QtGui/qaccessible.h>
@@ -63,22 +63,21 @@ QT_BEGIN_NAMESPACE
class QObject;
-struct QTestAccessibilityEvent
-{
- QTestAccessibilityEvent(QObject* o = 0, int c = 0, int e = 0)
- : object(o), child(c), event(e) {}
+typedef QList<QAccessibleEvent> EventList;
- bool operator==(const QTestAccessibilityEvent &o) const
- {
- return o.object == object && o.child == child && o.event == event;
+bool operator==(const QAccessibleEvent &l, const QAccessibleEvent &r)
+{
+ if (l.type() != r.type() ||
+ l.object() != r.object() ||
+ l.child() != r.child())
+ return false;
+
+ if (l.type() == QAccessible::StateChanged) {
+ return static_cast<const QAccessibleStateChangeEvent*>(&l)->changedStates()
+ == static_cast<const QAccessibleStateChangeEvent*>(&r)->changedStates();
}
-
- QObject* object;
- int child;
- int event;
-};
-
-typedef QList<QTestAccessibilityEvent> EventList;
+ return true;
+}
class QTestAccessibility
{
@@ -90,6 +89,7 @@ public:
qAddPostRoutine(cleanup);
}
}
+
static void cleanup()
{
delete instance();
@@ -97,18 +97,13 @@ public:
}
static void clearEvents() { eventList().clear(); }
static EventList events() { return eventList(); }
- static bool verifyEvent(const QTestAccessibilityEvent& ev)
+ static bool verifyEvent(const QAccessibleEvent& ev)
{
if (eventList().isEmpty())
return FALSE;
return eventList().takeFirst() == ev;
}
- static bool verifyEvent(QObject *o, int c, int e)
- {
- return verifyEvent(QTestAccessibilityEvent(o, c, e));
- }
-
private:
QTestAccessibility()
{
@@ -136,8 +131,15 @@ private:
static void updateHandler(const QAccessibleEvent &event)
{
- // qDebug("updateHandler called: %p %d %d", o, c, (int)e);
- eventList().append(QTestAccessibilityEvent(event.object(), event.child(), (int)event.type()));
+ eventList().append(copyEvent(event));
+ }
+
+ static QAccessibleEvent copyEvent(const QAccessibleEvent &event)
+ {
+ if (event.type() == QAccessible::StateChanged)
+ return QAccessibleStateChangeEvent(static_cast<const QAccessibleStateChangeEvent*>(&event)->changedStates(),
+ event.object(), event.child());
+ return QAccessibleEvent(event.type(), event.object(), event.child());
}
static EventList &eventList()
diff --git a/tests/auto/other/qaccessibility/tst_qaccessibility.cpp b/tests/auto/other/qaccessibility/tst_qaccessibility.cpp
index b8649a6443..0edda96f2a 100644
--- a/tests/auto/other/qaccessibility/tst_qaccessibility.cpp
+++ b/tests/auto/other/qaccessibility/tst_qaccessibility.cpp
@@ -403,8 +403,8 @@ void tst_QAccessibility::cleanup()
qWarning("%d accessibility event(s) were not handled in testfunction '%s':", list.count(),
QString(QTest::currentTestFunction()).toAscii().constData());
for (int i = 0; i < list.count(); ++i)
- qWarning(" %d: Object: %p Event: '%s' (%d) Child: %d", i + 1, list.at(i).object,
- eventName(list.at(i).event).toAscii().constData(), list.at(i).event, list.at(i).child);
+ qWarning(" %d: Object: %p Event: '%s' Child: %d", i + 1, list.at(i).object(),
+ eventName(list.at(i).type()).toAscii().constData(), list.at(i).child());
}
QTestAccessibility::clearEvents();
}
@@ -415,18 +415,18 @@ void tst_QAccessibility::eventTest()
button->setObjectName(QString("Olaf"));
button->show();
- QVERIFY_EVENT(button, -1, QAccessible::ObjectShow);
+ QVERIFY_EVENT(QAccessibleEvent(QAccessible::ObjectShow, button, -1));
button->setFocus(Qt::MouseFocusReason);
QTestAccessibility::clearEvents();
QTest::mouseClick(button, Qt::LeftButton, 0);
button->setAccessibleName("Olaf the second");
- QVERIFY_EVENT(button, -1, QAccessible::NameChanged);
+ QVERIFY_EVENT(QAccessibleEvent(QAccessible::NameChanged, button));
button->setAccessibleDescription("This is a button labeled Olaf");
- QVERIFY_EVENT(button, -1, QAccessible::DescriptionChanged);
+ QVERIFY_EVENT(QAccessibleEvent(QAccessible::DescriptionChanged, button));
button->hide();
- QVERIFY_EVENT(button, -1, QAccessible::ObjectHide);
+ QVERIFY_EVENT(QAccessibleEvent(QAccessible::ObjectHide, button));
delete button;
}
@@ -730,16 +730,16 @@ void tst_QAccessibility::hideShowTest()
window->show();
QVERIFY(!state(window).invisible);
QVERIFY(!state(child).invisible);
- QVERIFY(QTestAccessibility::events().contains(QTestAccessibilityEvent(window, -1, QAccessible::ObjectShow)));
- QVERIFY(QTestAccessibility::events().contains(QTestAccessibilityEvent(child, -1, QAccessible::ObjectShow)));
+ QVERIFY(QTestAccessibility::events().contains(QAccessibleEvent(QAccessible::ObjectShow, window)));
+ QVERIFY(QTestAccessibility::events().contains(QAccessibleEvent(QAccessible::ObjectShow, child)));
QTestAccessibility::clearEvents();
// hide() and veryfy that both window and child are invisible and get ObjectHide events.
window->hide();
QVERIFY(state(window).invisible);
QVERIFY(state(child).invisible);
- QVERIFY(QTestAccessibility::events().contains(QTestAccessibilityEvent(window, -1, QAccessible::ObjectHide)));
- QVERIFY(QTestAccessibility::events().contains(QTestAccessibilityEvent(child, -1, QAccessible::ObjectHide)));
+ QVERIFY(QTestAccessibility::events().contains(QAccessibleEvent(QAccessible::ObjectHide, window)));
+ QVERIFY(QTestAccessibility::events().contains(QAccessibleEvent(QAccessible::ObjectHide, child)));
QTestAccessibility::clearEvents();
delete window;
@@ -820,7 +820,7 @@ void tst_QAccessibility::mainWindowTest()
QLatin1String name = QLatin1String("I am the main window");
mw->setWindowTitle(name);
QTest::qWaitForWindowShown(mw);
- QVERIFY_EVENT(mw, -1, QAccessible::ObjectShow);
+ QVERIFY_EVENT(QAccessibleEvent(QAccessible::ObjectShow, mw));
QAccessibleInterface *interface = QAccessible::queryAccessibleInterface(mw);
QCOMPARE(interface->text(QAccessible::Name), name);
@@ -1050,12 +1050,12 @@ void tst_QAccessibility::scrollBarTest()
scrollBar->resize(200, 50);
scrollBar->show();
QVERIFY(!scrollBarInterface->state().invisible);
- QVERIFY(QTestAccessibility::events().contains(QTestAccessibilityEvent(scrollBar, -1, QAccessible::ObjectShow)));
+ QVERIFY(QTestAccessibility::events().contains(QAccessibleEvent(QAccessible::ObjectShow, scrollBar)));
QTestAccessibility::clearEvents();
scrollBar->hide();
QVERIFY(scrollBarInterface->state().invisible);
- QVERIFY(QTestAccessibility::events().contains(QTestAccessibilityEvent(scrollBar, -1, QAccessible::ObjectHide)));
+ QVERIFY(QTestAccessibility::events().contains(QAccessibleEvent(QAccessible::ObjectHide, scrollBar)));
QTestAccessibility::clearEvents();
// Test that the left/right subcontrols are set to unavailable when the scrollBar is at the minimum/maximum.
@@ -1496,7 +1496,7 @@ void tst_QAccessibility::spinBoxTest()
QTest::keyPress(spinBox, Qt::Key_Up);
QTest::qWait(200);
EventList events = QTestAccessibility::events();
- QTestAccessibilityEvent expectedEvent(spinBox, -1, (int)QAccessible::ValueChanged);
+ QAccessibleEvent expectedEvent(QAccessible::ValueChanged, spinBox);
QVERIFY(events.contains(expectedEvent));
delete spinBox;
QTestAccessibility::clearEvents();
@@ -1767,7 +1767,7 @@ void tst_QAccessibility::lineEditTest()
le->setFocus(Qt::TabFocusReason);
QTestAccessibility::clearEvents();
le2->setFocus(Qt::TabFocusReason);
- QTRY_VERIFY(QTestAccessibility::events().contains(QTestAccessibilityEvent(le2, -1, QAccessible::Focus)));
+ QTRY_VERIFY(QTestAccessibility::events().contains(QAccessibleEvent(QAccessible::Focus, le2)));
le->setText(QLatin1String("500"));
le->setValidator(new QIntValidator());
@@ -1787,7 +1787,7 @@ void tst_QAccessibility::lineEditTest()
le3->deselect();
le3->setCursorPosition(3);
QCOMPARE(textIface->cursorPosition(), 3);
- QTRY_VERIFY(QTestAccessibility::events().contains(QTestAccessibilityEvent(le3, -1, QAccessible::TextCaretMoved)));
+ QTRY_VERIFY(QTestAccessibility::events().contains(QAccessibleEvent(QAccessible::TextCaretMoved, le3)));
QCOMPARE(textIface->selectionCount(), 0);
QTestAccessibility::clearEvents();
@@ -2158,11 +2158,11 @@ void tst_QAccessibility::listTest()
// Check for events
QTest::mouseClick(listView->viewport(), Qt::LeftButton, 0, listView->visualItemRect(listView->item(1)).center());
- QVERIFY(QTestAccessibility::events().contains(QTestAccessibilityEvent(listView, 2, QAccessible::Selection)));
- QVERIFY(QTestAccessibility::events().contains(QTestAccessibilityEvent(listView, 2, QAccessible::Focus)));
+ QVERIFY(QTestAccessibility::events().contains(QAccessibleEvent(QAccessible::Selection, listView, 2)));
+ QVERIFY(QTestAccessibility::events().contains(QAccessibleEvent(QAccessible::Focus, listView, 2)));
QTest::mouseClick(listView->viewport(), Qt::LeftButton, 0, listView->visualItemRect(listView->item(2)).center());
- QVERIFY(QTestAccessibility::events().contains(QTestAccessibilityEvent(listView, 3, QAccessible::Selection)));
- QVERIFY(QTestAccessibility::events().contains(QTestAccessibilityEvent(listView, 3, QAccessible::Focus)));
+ QVERIFY(QTestAccessibility::events().contains(QAccessibleEvent(QAccessible::Selection, listView, 3)));
+ QVERIFY(QTestAccessibility::events().contains(QAccessibleEvent(QAccessible::Focus, listView, 3)));
listView->addItem("Munich");
QCOMPARE(iface->childCount(), 4);