diff options
author | Qt Continuous Integration System <qt-info@nokia.com> | 2011-02-20 19:56:49 (GMT) |
---|---|---|
committer | Qt Continuous Integration System <qt-info@nokia.com> | 2011-02-20 19:56:49 (GMT) |
commit | 81c8759c23969dad0d300d844341379bfcd6611a (patch) | |
tree | 6cc7bb3f15e28d1444b13035930cb38079b2927f /tests/auto/qdbusinterface/tst_qdbusinterface.cpp | |
parent | 5981173f0451736bf2b53e7bf36dbbd02d8f3904 (diff) | |
parent | 13e9642616ab480d09bda2603cc89dcaea7a1ad6 (diff) | |
download | Qt-81c8759c23969dad0d300d844341379bfcd6611a.zip Qt-81c8759c23969dad0d300d844341379bfcd6611a.tar.gz Qt-81c8759c23969dad0d300d844341379bfcd6611a.tar.bz2 |
Merge branch '4.7' of scm.dev.nokia.troll.no:qt/oslo-staging-1 into 4.7-integration
* '4.7' of scm.dev.nokia.troll.no:qt/oslo-staging-1: (21 commits)
Autotest: make at least one update before checking if more are needed
Fix warning about id maybe used when uninitialised
Doc: setSslConfiguration also sets the CA certificates
Autotest: check that the type received is the expected one
Attempt to fix symbian 3.1 and 3.2 compile break.
Prevents crashing when ICO file has bad color table value
directfb: fix crash in client/server mode of qws
Make Qt/DirectFB less verbose about failing to load pixmaps.
Autotest: don't use the deprecated signal from QDBusConnectionInterface
Autotest: be nicer to the subprocess and SIGTERM it
Fix warnings in QtDeclarative
Autotest: avoid memory leaks if test fails
QtDBus: Make sure we can receive unknown types
QtDBus meta object: keep methods, signals and props with unknown types
Autotest: add a new test for parsing an introspection with unknown types
Make the QtDBus parser not complain about unknown things
fix-layer-getsurface-result-check-for-screen-size-determination
Bump QtWebKit version to 2.0.2
SSL: fix memory leak when loading certificates on Mac OS X
Add a mutex to protect the access to the QSet.
...
Diffstat (limited to 'tests/auto/qdbusinterface/tst_qdbusinterface.cpp')
-rw-r--r-- | tests/auto/qdbusinterface/tst_qdbusinterface.cpp | 44 |
1 files changed, 42 insertions, 2 deletions
diff --git a/tests/auto/qdbusinterface/tst_qdbusinterface.cpp b/tests/auto/qdbusinterface/tst_qdbusinterface.cpp index c1938b1..39f0677 100644 --- a/tests/auto/qdbusinterface/tst_qdbusinterface.cpp +++ b/tests/auto/qdbusinterface/tst_qdbusinterface.cpp @@ -169,6 +169,25 @@ public slots: int MyObject::callCount = 0; QVariantList MyObject::callArgs; +class MyObjectUnknownType: public QObject +{ + Q_OBJECT + Q_CLASSINFO("D-Bus Interface", "com.trolltech.QtDBus.MyObject") + Q_CLASSINFO("D-Bus Introspection", "" +" <interface name=\"com.trolltech.QtDBus.MyObjectUnknownTypes\" >\n" +" <property access=\"readwrite\" type=\"~\" name=\"prop1\" />\n" +" <signal name=\"somethingHappened\" >\n" +" <arg direction=\"out\" type=\"~\" />\n" +" </signal>\n" +" <method name=\"ping\" >\n" +" <arg direction=\"in\" type=\"~\" name=\"ping\" />\n" +" <arg direction=\"out\" type=\"~\" name=\"ping\" />\n" +" </method>\n" +" <method name=\"regularMethod\" />\n" +" </interface>\n" + "") +}; + class Spy: public QObject { Q_OBJECT @@ -228,6 +247,7 @@ private slots: void notValidDerived(); void invalidAfterServiceOwnerChanged(); void introspect(); + void introspectUnknownTypes(); void callMethod(); void invokeMethod(); void invokeMethodWithReturn(); @@ -250,8 +270,7 @@ void tst_QDBusInterface::initTestCase() con.registerObject("/", &obj, QDBusConnection::ExportAllProperties | QDBusConnection::ExportAllSlots - | QDBusConnection::ExportAllInvokables - | QDBusConnection::ExportChildObjects); + | QDBusConnection::ExportAllInvokables); } void tst_QDBusInterface::notConnected() @@ -322,6 +341,27 @@ void tst_QDBusInterface::introspect() QVERIFY(mo->indexOfProperty("complexProp") != -1); } +void tst_QDBusInterface::introspectUnknownTypes() +{ + QDBusConnection con = QDBusConnection::sessionBus(); + MyObjectUnknownType obj; + con.registerObject("/unknownTypes", &obj, QDBusConnection::ExportAllContents); + QDBusInterface iface(QDBusConnection::sessionBus().baseService(), QLatin1String("/unknownTypes"), + "com.trolltech.QtDBus.MyObjectUnknownTypes"); + + const QMetaObject *mo = iface.metaObject(); + QVERIFY(mo->indexOfMethod("regularMethod()") != -1); // this is the control + QVERIFY(mo->indexOfMethod("somethingHappened(QDBusRawType<0x7e>*)") != -1); + + QVERIFY(mo->indexOfMethod("ping(QDBusRawType<0x7e>*)") != -1); + int midx = mo->indexOfMethod("ping(QDBusRawType<0x7e>*)"); + QCOMPARE(mo->method(midx).typeName(), "QDBusRawType<0x7e>*"); + + QVERIFY(mo->indexOfProperty("prop1") != -1); + int pidx = mo->indexOfProperty("prop1"); + QCOMPARE(mo->property(pidx).typeName(), "QDBusRawType<0x7e>*"); +} + void tst_QDBusInterface::callMethod() { QDBusConnection con = QDBusConnection::sessionBus(); |