class QObject;
-typedef QList<QAccessibleEvent> EventList;
+// Use pointers since we subclass QAccessibleEvent
+typedef QList<QAccessibleEvent*> EventList;
bool operator==(const QAccessibleEvent &l, const QAccessibleEvent &r)
{
static bool verifyEvent(const QAccessibleEvent& ev)
{
if (eventList().isEmpty())
- return FALSE;
- return eventList().takeFirst() == ev;
+ return false;
+ QAccessibleEvent *first = eventList().takeFirst();
+ bool res = *first == ev;
+ delete first;
+ return res;
+ }
+ static bool containsEvent(const QAccessibleEvent &event) {
+ Q_FOREACH (QAccessibleEvent *ev, eventList()) {
+ if (*ev == event)
+ return true;
+ }
+ return false;
}
private:
eventList().append(copyEvent(event));
}
- static QAccessibleEvent copyEvent(const QAccessibleEvent &event)
+ static QAccessibleEvent *copyEvent(const QAccessibleEvent &event)
{
if (event.type() == QAccessible::StateChanged)
- return QAccessibleStateChangeEvent(static_cast<const QAccessibleStateChangeEvent*>(&event)->changedStates(),
+ return new QAccessibleStateChangeEvent(static_cast<const QAccessibleStateChangeEvent*>(&event)->changedStates(),
event.object(), event.child());
- return QAccessibleEvent(event.type(), event.object(), event.child());
+ return new QAccessibleEvent(event.type(), event.object(), event.child());
}
static EventList &eventList()
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' Child: %d", i + 1, list.at(i).object(),
- eventName(list.at(i).type()).toAscii().constData(), 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();
}
window->show();
QVERIFY(!state(window).invisible);
QVERIFY(!state(child).invisible);
- QVERIFY(QTestAccessibility::events().contains(QAccessibleEvent(QAccessible::ObjectShow, window)));
- QVERIFY(QTestAccessibility::events().contains(QAccessibleEvent(QAccessible::ObjectShow, child)));
+ QVERIFY(QTestAccessibility::containsEvent(QAccessibleEvent(QAccessible::ObjectShow, window)));
+ QVERIFY(QTestAccessibility::containsEvent(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(QAccessibleEvent(QAccessible::ObjectHide, window)));
- QVERIFY(QTestAccessibility::events().contains(QAccessibleEvent(QAccessible::ObjectHide, child)));
+ QVERIFY(QTestAccessibility::containsEvent(QAccessibleEvent(QAccessible::ObjectHide, window)));
+ QVERIFY(QTestAccessibility::containsEvent(QAccessibleEvent(QAccessible::ObjectHide, child)));
QTestAccessibility::clearEvents();
delete window;
delete menu;
}
+
+ QTestAccessibility::clearEvents();
+ {
// test check box
interface = QAccessible::queryAccessibleInterface(&checkBox);
actionInterface = interface->actionInterface();
QCOMPARE(actionInterface->actionNames(), QStringList() << QAccessibleActionInterface::checkAction() << QAccessibleActionInterface::setFocusAction());
QVERIFY(!interface->state().checked);
actionInterface->doAction(QAccessibleActionInterface::checkAction());
+
QTest::qWait(500);
QCOMPARE(actionInterface->actionNames(), QStringList() << QAccessibleActionInterface::uncheckAction() << QAccessibleActionInterface::setFocusAction());
QVERIFY(interface->state().checked);
QVERIFY(checkBox.isChecked());
+ QAccessible::State st;
+ st.checked = true;
+ QVERIFY_EVENT(QAccessibleStateChangeEvent(st, &checkBox));
delete interface;
+ }
// test radiobutton
interface = QAccessible::queryAccessibleInterface(&radio);
scrollBar->resize(200, 50);
scrollBar->show();
QVERIFY(!scrollBarInterface->state().invisible);
- QVERIFY(QTestAccessibility::events().contains(QAccessibleEvent(QAccessible::ObjectShow, scrollBar)));
+ QVERIFY(QTestAccessibility::containsEvent(QAccessibleEvent(QAccessible::ObjectShow, scrollBar)));
QTestAccessibility::clearEvents();
scrollBar->hide();
QVERIFY(scrollBarInterface->state().invisible);
- QVERIFY(QTestAccessibility::events().contains(QAccessibleEvent(QAccessible::ObjectHide, scrollBar)));
+ QVERIFY(QTestAccessibility::containsEvent(QAccessibleEvent(QAccessible::ObjectHide, scrollBar)));
QTestAccessibility::clearEvents();
// Test that the left/right subcontrols are set to unavailable when the scrollBar is at the minimum/maximum.
QTestAccessibility::clearEvents();
QTest::keyPress(spinBox, Qt::Key_Up);
QTest::qWait(200);
- EventList events = QTestAccessibility::events();
QAccessibleEvent expectedEvent(QAccessible::ValueChanged, spinBox);
- QVERIFY(events.contains(expectedEvent));
+ QVERIFY(QTestAccessibility::containsEvent(expectedEvent));
delete spinBox;
QTestAccessibility::clearEvents();
}
le->setFocus(Qt::TabFocusReason);
QTestAccessibility::clearEvents();
le2->setFocus(Qt::TabFocusReason);
- QTRY_VERIFY(QTestAccessibility::events().contains(QAccessibleEvent(QAccessible::Focus, le2)));
+ QTRY_VERIFY(QTestAccessibility::containsEvent(QAccessibleEvent(QAccessible::Focus, le2)));
le->setText(QLatin1String("500"));
le->setValidator(new QIntValidator());
le3->deselect();
le3->setCursorPosition(3);
QCOMPARE(textIface->cursorPosition(), 3);
- QTRY_VERIFY(QTestAccessibility::events().contains(QAccessibleEvent(QAccessible::TextCaretMoved, le3)));
+ QTRY_VERIFY(QTestAccessibility::containsEvent(QAccessibleEvent(QAccessible::TextCaretMoved, le3)));
QCOMPARE(textIface->selectionCount(), 0);
QTestAccessibility::clearEvents();
// Check for events
QTest::mouseClick(listView->viewport(), Qt::LeftButton, 0, listView->visualItemRect(listView->item(1)).center());
- QVERIFY(QTestAccessibility::events().contains(QAccessibleEvent(QAccessible::Selection, listView, 2)));
- QVERIFY(QTestAccessibility::events().contains(QAccessibleEvent(QAccessible::Focus, listView, 2)));
+ QVERIFY(QTestAccessibility::containsEvent(QAccessibleEvent(QAccessible::Selection, listView, 2)));
+ QVERIFY(QTestAccessibility::containsEvent(QAccessibleEvent(QAccessible::Focus, listView, 2)));
QTest::mouseClick(listView->viewport(), Qt::LeftButton, 0, listView->visualItemRect(listView->item(2)).center());
- QVERIFY(QTestAccessibility::events().contains(QAccessibleEvent(QAccessible::Selection, listView, 3)));
- QVERIFY(QTestAccessibility::events().contains(QAccessibleEvent(QAccessible::Focus, listView, 3)));
+ QVERIFY(QTestAccessibility::containsEvent(QAccessibleEvent(QAccessible::Selection, listView, 3)));
+ QVERIFY(QTestAccessibility::containsEvent(QAccessibleEvent(QAccessible::Focus, listView, 3)));
listView->addItem("Munich");
QCOMPARE(iface->childCount(), 4);