diff options
Diffstat (limited to 'test/qt/tst_qdbusinterface.cpp')
| -rw-r--r-- | test/qt/tst_qdbusinterface.cpp | 87 | 
1 files changed, 29 insertions, 58 deletions
diff --git a/test/qt/tst_qdbusinterface.cpp b/test/qt/tst_qdbusinterface.cpp index 46dde97a..a63b8e0b 100644 --- a/test/qt/tst_qdbusinterface.cpp +++ b/test/qt/tst_qdbusinterface.cpp @@ -34,63 +34,33 @@ Q_DECLARE_METATYPE(QVariantList)  #define TEST_INTERFACE_NAME "com.trolltech.QtDBus.MyObject"  #define TEST_SIGNAL_NAME "somethingHappened" -const char introspectionData[] = -    "<!DOCTYPE node PUBLIC \"-//freedesktop//DTD D-BUS Object Introspection 1.0//EN\"\n" -    "\"http://www.freedesktop.org/standards/dbus/1.0/introspect.dtd\">\n" -    "<node>" - -    "<interface name=\"org.freedesktop.DBus.Introspectable\">" -    "<method name=\"Introspect\">" -    "<arg name=\"data\" direction=\"out\" type=\"s\"/>" -    "</method>" -    "</interface>" - -    "<interface name=\"" TEST_INTERFACE_NAME "\">" -    "<method name=\"ping\">" -    "<arg name=\"ping\" direction=\"in\"  type=\"v\"/>" -    "<arg name=\"pong\" direction=\"out\" type=\"v\"/>" -    "</method>" -    "<method name=\"ping\">" -    "<arg name=\"ping1\" direction=\"in\"  type=\"v\"/>" -    "<arg name=\"ping2\" direction=\"in\"  type=\"v\"/>" -    "<arg name=\"pong1\" direction=\"out\" type=\"v\"/>" -    "<arg name=\"pong2\" direction=\"out\" type=\"v\"/>" -    "</method>" -    "<signal name=\"" TEST_SIGNAL_NAME "\">" -    "<arg type=\"s\"/>" -    "</signal>" -    "<property name=\"prop1\" access=\"readwrite\" type=\"i\" />" -    "</interface>" -    "<node name=\"subObject\"/>" -    "</node>"; - -class IntrospectionAdaptor: public QDBusAbstractAdaptor -{ -    Q_OBJECT -    Q_CLASSINFO("D-Bus Interface", "org.freedesktop.DBus.Introspectable") -public: -    IntrospectionAdaptor(QObject *parent) -        : QDBusAbstractAdaptor(parent) -    { } -         -public slots: - -    void Introspect(const QDBusMessage &msg) -    { -        QDBusMessage reply = QDBusMessage::methodReply(msg); -        reply << ::introspectionData; -        if (!msg.connection().send(reply)) -            exit(1); -    } -};     -  class MyObject: public QObject  {      Q_OBJECT +    Q_CLASSINFO("D-Bus Interface", "com.trolltech.QtDBus.MyObject") +    Q_CLASSINFO("D-Bus Introspection", "" +"  <interface name=\"com.trolltech.QtDBus.MyObject\" >\n" +"    <property access=\"readwrite\" type=\"i\" name=\"prop1\" />\n" +"    <signal name=\"somethingHappened\" >\n" +"      <arg direction=\"out\" type=\"s\" />\n" +"    </signal>\n" +"    <method name=\"ping\" >\n" +"      <arg direction=\"in\" type=\"v\" name=\"ping\" />\n" +"      <arg direction=\"out\" type=\"v\" name=\"ping\" />\n" +"    </method>\n" +"    <method name=\"ping\" >\n" +"      <arg direction=\"in\" type=\"v\" name=\"ping1\" />\n" +"      <arg direction=\"in\" type=\"v\" name=\"ping2\" />\n" +"      <arg direction=\"out\" type=\"v\" name=\"pong1\" />\n" +"      <arg direction=\"out\" type=\"v\" name=\"pong2\" />\n" +"    </method>\n" +"  </interface>\n" +        "")  public:      MyObject()      { -        new IntrospectionAdaptor(this); +        QObject *subObject = new QObject(this); +        subObject->setObjectName("subObject");      }  public slots: @@ -152,7 +122,8 @@ void tst_QDBusInterface::initTestCase()      QDBusConnection &con = QDBus::sessionBus();      QVERIFY(con.isConnected()); -    con.registerObject("/", &obj, QDBusConnection::ExportAdaptors | QDBusConnection::ExportSlots); +    con.registerObject("/", &obj, QDBusConnection::ExportAdaptors | QDBusConnection::ExportSlots | +                       QDBusConnection::ExportChildObjects);  }  void tst_QDBusInterface::call_data() @@ -241,7 +212,7 @@ void tst_QDBusInterface::call()      QDBusMessage reply;      // try first callWithArgs: -    reply = iface->callWithArgs(method, input); +    reply = iface->callWithArgs(method, input, QDBusInterface::UseEventLoop);      QCOMPARE(reply.type(), QDBusMessage::ReplyMessage);      if (!output.isEmpty()) { @@ -251,20 +222,20 @@ void tst_QDBusInterface::call()      // try the template methods      if (input.isEmpty()) -        reply = iface->call(method); +        reply = iface->call(QDBusInterface::UseEventLoop, method);      else if (input.count() == 1)          switch (input.at(0).type())          {          case QVariant::Int: -            reply = iface->call(method, input.at(0).toInt()); +            reply = iface->call(QDBusInterface::UseEventLoop, method, input.at(0).toInt());              break;          case QVariant::UInt: -            reply = iface->call(method, input.at(0).toUInt()); +            reply = iface->call(QDBusInterface::UseEventLoop, method, input.at(0).toUInt());              break;          case QVariant::String: -            reply = iface->call(method, input.at(0).toString()); +            reply = iface->call(QDBusInterface::UseEventLoop, method, input.at(0).toString());              break;          default: @@ -272,7 +243,7 @@ void tst_QDBusInterface::call()              break;          }      else -        reply = iface->call(method, input.at(0).toString(), input.at(1).toString()); +        reply = iface->call(QDBusInterface::UseEventLoop, method, input.at(0).toString(), input.at(1).toString());      QCOMPARE(reply.type(), QDBusMessage::ReplyMessage);      if (!output.isEmpty()) {  | 
