From 15a32435561a668e69764d12edfa2b5c564c6505 Mon Sep 17 00:00:00 2001 From: Frederik Gladhorn Date: Thu, 13 Dec 2012 18:12:40 +0100 Subject: Accessibility Linux: Make dbus registration async MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Change-Id: I74043be04f4ee17089353304fdc007a7f22cdea0 Reviewed-by: Friedemann Kleint Reviewed-by: Jan Arve Sæther --- .../tst_qaccessibilitylinux.cpp | 30 ++++++---------------- 1 file changed, 8 insertions(+), 22 deletions(-) (limited to 'tests/auto') diff --git a/tests/auto/other/qaccessibilitylinux/tst_qaccessibilitylinux.cpp b/tests/auto/other/qaccessibilitylinux/tst_qaccessibilitylinux.cpp index fd157dd834..15b8089525 100644 --- a/tests/auto/other/qaccessibilitylinux/tst_qaccessibilitylinux.cpp +++ b/tests/auto/other/qaccessibilitylinux/tst_qaccessibilitylinux.cpp @@ -67,11 +67,8 @@ class AccessibleTestWindow : public QWidget public: AccessibleTestWindow() { - DBusConnection c; - m_address = c.connection().baseService().toLatin1().data(); new QHBoxLayout(this); } - QString dbusAddress() const { return m_address; } void addWidget(QWidget* widget) { @@ -85,10 +82,6 @@ public: qDeleteAll(children()); new QHBoxLayout(this); } - -private: - QString m_address; - QString m_bus; }; @@ -116,7 +109,6 @@ private: AccessibleTestWindow *m_window; - QString bus; QString address; QDBusInterface *root; // the root object on dbus (for the app) QDBusInterface *rootApplication; @@ -129,10 +121,12 @@ private: QStringList tst_QAccessibilityLinux::getChildren(QDBusInterface *interface) { QSpiObjectReferenceArray list; - interface->call(QDBus::Block, "GetChildren").arguments().first().value() >> list; + const QList args = interface->call(QDBus::Block, "GetChildren").arguments(); + Q_ASSERT(args.size() == 1); + Q_ASSERT(args.first().isValid()); + args.first().value() >> list; Q_ASSERT(interface->property("ChildCount").toInt() == list.count()); - QStringList children; Q_FOREACH (const QSpiObjectReference &ref, list) children << ref.path.path(); @@ -164,26 +158,18 @@ QDBusInterface *tst_QAccessibilityLinux::getInterface(const QString &path, const void tst_QAccessibilityLinux::initTestCase() { // Oxygen style creates many extra items, it's simply unusable here - qDebug() << "Using fusion style..."; qApp->setStyle("fusion"); qApp->setApplicationName("tst_QAccessibilityLinux app"); - dbus = DBusConnection(); + + QTRY_VERIFY(dbus.isEnabled()); + QTRY_VERIFY(dbus.connection().isConnected()); + address = dbus.connection().baseService().toLatin1().data(); m_window = new AccessibleTestWindow(); m_window->show(); - // this has the side-effect of immediately activating accessibility - qDebug() << "Explicitly activating accessibility..."; - delete QAccessible::queryAccessibleInterface(m_window); - QTest::qWaitForWindowExposed(m_window); - - address = m_window->dbusAddress(); registerDbus(); - - QStringList appChildren = getChildren(root); - QString window = appChildren.at(0); - mainWindow = getInterface(window, "org.a11y.atspi.Accessible"); } void tst_QAccessibilityLinux::cleanupTestCase() -- cgit v1.2.3