summaryrefslogtreecommitdiffstats
path: root/tests/auto/qdbusinterface/tst_qdbusinterface.cpp
diff options
context:
space:
mode:
authorQt Continuous Integration System <qt-info@nokia.com>2011-02-20 19:56:49 (GMT)
committerQt Continuous Integration System <qt-info@nokia.com>2011-02-20 19:56:49 (GMT)
commit81c8759c23969dad0d300d844341379bfcd6611a (patch)
tree6cc7bb3f15e28d1444b13035930cb38079b2927f /tests/auto/qdbusinterface/tst_qdbusinterface.cpp
parent5981173f0451736bf2b53e7bf36dbbd02d8f3904 (diff)
parent13e9642616ab480d09bda2603cc89dcaea7a1ad6 (diff)
downloadQt-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.cpp44
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();