diff options
Diffstat (limited to 'tests/auto/webchannel/tst_webchannel.cpp')
-rw-r--r-- | tests/auto/webchannel/tst_webchannel.cpp | 30 |
1 files changed, 30 insertions, 0 deletions
diff --git a/tests/auto/webchannel/tst_webchannel.cpp b/tests/auto/webchannel/tst_webchannel.cpp index ffaebba..4a66bdd 100644 --- a/tests/auto/webchannel/tst_webchannel.cpp +++ b/tests/auto/webchannel/tst_webchannel.cpp @@ -757,6 +757,36 @@ void TestWebChannel::testUnwrapObject() } } +void TestWebChannel::testTransportWrapObjectProperties() +{ + QWebChannel channel; + + TestObject obj; + obj.setObjectName("testObject"); + channel.registerObject(obj.objectName(), &obj); + + DummyTransport *dummyTransport = new DummyTransport(this); + channel.connectTo(dummyTransport); + channel.d_func()->publisher->initializeClient(dummyTransport); + channel.d_func()->publisher->setClientIsIdle(true); + + QCOMPARE(channel.d_func()->publisher->transportedWrappedObjects.size(), 0); + + QObject objPropObject; + objPropObject.setObjectName("foobar"); + + obj.setObjectProperty(&objPropObject); + + channel.d_func()->publisher->sendPendingPropertyUpdates(); + + QCOMPARE(channel.d_func()->publisher->wrappedObjects.size(), 1); + const QString wrappedObjId = channel.d_func()->publisher->wrappedObjects.keys()[0]; + + QCOMPARE(channel.d_func()->publisher->transportedWrappedObjects.size(), 1); + QCOMPARE(channel.d_func()->publisher->transportedWrappedObjects.keys()[0], dummyTransport); + QCOMPARE(channel.d_func()->publisher->transportedWrappedObjects.values()[0], wrappedObjId); +} + void TestWebChannel::testRemoveUnusedTransports() { QWebChannel channel; |