summaryrefslogtreecommitdiffstats
path: root/tests/auto/other
diff options
context:
space:
mode:
authorFrederik Gladhorn <frederik.gladhorn@nokia.com>2012-03-13 20:25:12 +0100
committerQt by Nokia <qt-info@nokia.com>2012-03-24 17:07:52 +0100
commitcea1a6bcd51a43bad6426e4de81fda117f094932 (patch)
treee059de1eee9446621bca8b46a0b5b730962a7f05 /tests/auto/other
parentf195a8e2b69eba0e3c44f2dece222b0da9e06026 (diff)
Make sure windows send accessibility activated updates.
Both QWindow and QWidgetWindow should update with the active state signal. Change-Id: I0219f803aa0fb109765f0faa0aedb120c2a439f0 Reviewed-by: Jan-Arve Sæther <jan-arve.saether@nokia.com>
Diffstat (limited to 'tests/auto/other')
-rw-r--r--tests/auto/other/qaccessibility/tst_qaccessibility.cpp48
1 files changed, 44 insertions, 4 deletions
diff --git a/tests/auto/other/qaccessibility/tst_qaccessibility.cpp b/tests/auto/other/qaccessibility/tst_qaccessibility.cpp
index be7cb7dd15..a01589d9d5 100644
--- a/tests/auto/other/qaccessibility/tst_qaccessibility.cpp
+++ b/tests/auto/other/qaccessibility/tst_qaccessibility.cpp
@@ -777,6 +777,7 @@ void tst_QAccessibility::applicationTest()
void tst_QAccessibility::mainWindowTest()
{
+ {
QMainWindow *mw = new QMainWindow;
mw->resize(300, 200);
mw->show(); // triggers layout
@@ -787,12 +788,51 @@ void tst_QAccessibility::mainWindowTest()
QAccessibleEvent show(mw, QAccessible::ObjectShow);
QVERIFY_EVENT(&show);
- QAccessibleInterface *interface = QAccessible::queryAccessibleInterface(mw);
- QCOMPARE(interface->text(QAccessible::Name), name);
- QCOMPARE(interface->role(), QAccessible::Window);
- delete interface;
+ QAccessibleInterface *iface = QAccessible::queryAccessibleInterface(mw);
+ QCOMPARE(iface->text(QAccessible::Name), name);
+ QCOMPARE(iface->role(), QAccessible::Window);
+ QVERIFY(iface->state().active);
+
+ QAccessible::State activeState;
+ activeState.active = true;
+ QAccessibleStateChangeEvent active(mw, activeState);
+ QVERIFY_EVENT(&active);
+
+ delete iface;
delete mw;
+ }
QTestAccessibility::clearEvents();
+
+ {
+ QWindow window;
+ window.setGeometry(80, 80, 40, 40);
+ window.show();
+ QTRY_VERIFY(QGuiApplication::focusWindow() == &window);
+
+// We currently don't have an accessible interface for QWindow
+// the active state is either in the QMainWindow or QQuickView
+// QAIPtr windowIface(QAccessible::queryAccessibleInterface(&window));
+// QVERIFY(windowIface->state().active);
+
+ QAccessible::State activeState;
+ activeState.active = true;
+ QAccessibleStateChangeEvent active(&window, activeState);
+ QVERIFY_EVENT(&active);
+
+ QWindow child;
+ child.setParent(&window);
+ child.setGeometry(10, 10, 20, 20);
+ child.show();
+
+ child.requestActivateWindow();
+ QTRY_VERIFY(QGuiApplication::focusWindow() == &child);
+
+ QAccessibleStateChangeEvent deactivate(&window, activeState);
+ QVERIFY_EVENT(&deactivate); // deactivation of parent
+
+ QAccessibleStateChangeEvent activeChild(&child, activeState);
+ QVERIFY_EVENT(&activeChild);
+ }
}
class CounterButton : public QPushButton {