diff options
Diffstat (limited to 'test/qt/tst_qdbusinterface.cpp')
-rw-r--r-- | test/qt/tst_qdbusinterface.cpp | 69 |
1 files changed, 39 insertions, 30 deletions
diff --git a/test/qt/tst_qdbusinterface.cpp b/test/qt/tst_qdbusinterface.cpp index 599b6c0d..a7f8c704 100644 --- a/test/qt/tst_qdbusinterface.cpp +++ b/test/qt/tst_qdbusinterface.cpp @@ -20,6 +20,7 @@ * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. * */ +#define DBUS_API_SUBJECT_TO_CHANGE 1 #include <qcoreapplication.h> #include <qmetatype.h> #include <QtTest/QtTest> @@ -63,26 +64,42 @@ const char introspectionData[] = "<node name=\"subObject\"/>" "</node>"; -class MyObject: public QObject +class IntrospectionAdaptor: public QDBusAbstractAdaptor { Q_OBJECT + Q_CLASSINFO("D-Bus Interface", "org.freedesktop.DBus.Introspectable") +public: + IntrospectionAdaptor(QObject *parent) + : QDBusAbstractAdaptor(parent) + { } + public slots: - void ping(const QDBusMessage &msg) + void Introspect(const QDBusMessage &msg) { - QDBusConnection con = QDBusConnection::addConnection(QDBusConnection::SessionBus); QDBusMessage reply = QDBusMessage::methodReply(msg); - reply << static_cast<QList<QVariant> >(msg); - if (!con.send(reply)) + reply << ::introspectionData; + if (!msg.connection().send(reply)) exit(1); } +}; - void Introspect(const QDBusMessage &msg) +class MyObject: public QObject +{ + Q_OBJECT +public: + MyObject() + { + new IntrospectionAdaptor(this); + } + +public slots: + + void ping(const QDBusMessage &msg) { - QDBusConnection con = QDBusConnection::addConnection(QDBusConnection::SessionBus); QDBusMessage reply = QDBusMessage::methodReply(msg); - reply << ::introspectionData; - if (!con.send(reply)) + reply << static_cast<QList<QVariant> >(msg); + if (!msg.connection().send(reply)) exit(1); } }; @@ -110,7 +127,7 @@ void emitSignal(const QString &interface, const QString &name, const QString &ar { QDBusMessage msg = QDBusMessage::signal("/", interface, name); msg << arg; - QDBusConnection().send(msg); + QDBus::sessionBus().send(msg); QTest::qWait(200); } @@ -121,7 +138,6 @@ class tst_QDBusInterface: public QObject MyObject obj; private slots: void initTestCase(); - void cleanupTestCase(); void call_data(); void call(); @@ -134,18 +150,11 @@ private slots: void tst_QDBusInterface::initTestCase() { - QDBusConnection con = QDBusConnection::addConnection(QDBusConnection::SessionBus); + QDBusConnection &con = QDBus::sessionBus(); QVERIFY(con.isConnected()); QVERIFY(con.requestName( TEST_SERVICE_NAME )); - con.registerObject("/", "org.freedesktop.DBus.Introspectable", &obj); - con.registerObject("/", TEST_INTERFACE_NAME, &obj); -} - -void tst_QDBusInterface::cleanupTestCase() -{ - QDBusConnection::closeConnection(); - QVERIFY(!QDBusConnection().isConnected()); + con.registerObject("/", &obj, QDBusConnection::ExportAdaptors | QDBusConnection::ExportSlots); } void tst_QDBusInterface::call_data() @@ -209,9 +218,9 @@ void tst_QDBusInterface::call_data() void tst_QDBusInterface::call() { - QDBusConnection con; - QDBusInterface iface(con, con.baseService(), QLatin1String("/"), - TEST_INTERFACE_NAME); + QDBusConnection &con = QDBus::sessionBus(); + QDBusInterface iface = con.findInterface(con.baseService(), QLatin1String("/"), + TEST_INTERFACE_NAME); QFETCH(QString, method); QFETCH(QVariantList, input); @@ -262,16 +271,16 @@ void tst_QDBusInterface::call() void tst_QDBusInterface::introspect_data() { QTest::addColumn<QString>("service"); - QTest::newRow("base") << QDBusConnection().baseService(); + QTest::newRow("base") << QDBus::sessionBus().baseService(); QTest::newRow("name") << TEST_SERVICE_NAME; } void tst_QDBusInterface::introspect() { QFETCH(QString, service); - QDBusConnection con; - QDBusInterface iface(con, service, QLatin1String("/"), - TEST_INTERFACE_NAME); + QDBusConnection &con = QDBus::sessionBus(); + QDBusInterface iface = con.findInterface(service, QLatin1String("/"), + TEST_INTERFACE_NAME); QDBusIntrospection::Methods mm = iface.methodData(); QVERIFY(mm.count() == 2); @@ -287,9 +296,9 @@ void tst_QDBusInterface::introspect() void tst_QDBusInterface::signal() { - QDBusConnection con; - QDBusInterface iface(con, con.baseService(), QLatin1String("/"), - TEST_INTERFACE_NAME); + QDBusConnection &con = QDBus::sessionBus(); + QDBusInterface iface = con.findInterface(con.baseService(), QLatin1String("/"), + TEST_INTERFACE_NAME); QString signalName = TEST_SIGNAL_NAME; |