From 1c614d07fbb3ec190b7ed3fc5eb24a200f282c0f Mon Sep 17 00:00:00 2001 From: Frederik Gladhorn Date: Thu, 18 Oct 2018 15:58:24 +0200 Subject: tst_QAccessibilityLinux make state checking more convenient MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Change-Id: I96274ab0a0f5d942746de0166df47936e2390c65 Reviewed-by: Jan Arve Sæther --- .../tst_qaccessibilitylinux.cpp | 45 ++++++++++++---------- 1 file changed, 25 insertions(+), 20 deletions(-) (limited to 'tests/auto') diff --git a/tests/auto/other/qaccessibilitylinux/tst_qaccessibilitylinux.cpp b/tests/auto/other/qaccessibilitylinux/tst_qaccessibilitylinux.cpp index 2575f22309..0472a78729 100644 --- a/tests/auto/other/qaccessibilitylinux/tst_qaccessibilitylinux.cpp +++ b/tests/auto/other/qaccessibilitylinux/tst_qaccessibilitylinux.cpp @@ -211,6 +211,27 @@ void tst_QAccessibilityLinux::registerDbus() mainWindow = getInterface(window, "org.a11y.atspi.Accessible"); } +quint64 getAtspiState(QDBusInterface *interface) +{ + QDBusMessage msg = interface->call(QDBus::Block, "GetState"); + const QDBusArgument arg = msg.arguments().at(0).value(); + quint32 state1 = 0; + quint64 state2 = 0; + arg.beginArray(); + arg >> state1; + arg >> state2; + arg.endArray(); + + state2 = state2 << 32; + return state2 | state1; +} + +bool hasState(QDBusInterface *interface, AtspiStateType state) +{ + quint64 intState = quint64(1) << state; + return getAtspiState(interface) & intState; +} + #define ROOTPATH "/org/a11y/atspi/accessible" void tst_QAccessibilityLinux::testLabel() @@ -471,21 +492,6 @@ void tst_QAccessibilityLinux::testSlider() m_window->clearChildren(); } -quint64 getAtspiState(QDBusInterface *interface) -{ - QDBusMessage msg = interface->call(QDBus::Block, "GetState"); - const QDBusArgument arg = msg.arguments().at(0).value(); - quint32 state1 = 0; - quint64 state2 = 0; - arg.beginArray(); - arg >> state1; - arg >> state2; - arg.endArray(); - - state2 = state2 << 32; - return state2 | state1; -} - void tst_QAccessibilityLinux::testFocus() { QLineEdit *lineEdit1 = new QLineEdit(m_window); @@ -508,15 +514,14 @@ void tst_QAccessibilityLinux::testFocus() QDBusInterface *componentInterfaceLineEdit2 = getInterface(children.at(1), "org.a11y.atspi.Component"); QVERIFY(componentInterfaceLineEdit2->isValid()); - quint64 focusedState = quint64(1) << ATSPI_STATE_FOCUSED; - QVERIFY(getAtspiState(accessibleInterfaceLineEdit1) & focusedState); - QVERIFY(!(getAtspiState(accessibleInterfaceLineEdit2) & focusedState)); + QVERIFY(hasState(accessibleInterfaceLineEdit1, ATSPI_STATE_FOCUSED)); + QVERIFY(!hasState(accessibleInterfaceLineEdit2, ATSPI_STATE_FOCUSED)); QDBusMessage focusReply = componentInterfaceLineEdit2->call(QDBus::Block, "GrabFocus"); QVERIFY(focusReply.arguments().at(0).toBool()); QVERIFY(lineEdit2->hasFocus()); - QVERIFY(!(getAtspiState(accessibleInterfaceLineEdit1) & focusedState)); - QVERIFY(getAtspiState(accessibleInterfaceLineEdit2) & focusedState); + QVERIFY(!hasState(accessibleInterfaceLineEdit1, ATSPI_STATE_FOCUSED)); + QVERIFY(hasState(accessibleInterfaceLineEdit2, ATSPI_STATE_FOCUSED)); m_window->clearChildren(); delete accessibleInterfaceLineEdit1; delete accessibleInterfaceLineEdit2; -- cgit v1.2.3