diff options
Diffstat (limited to 'tests')
-rw-r--r-- | tests/auto/webchannel/tst_webchannel.cpp | 24 | ||||
-rw-r--r-- | tests/auto/webchannel/tst_webchannel.h | 1 |
2 files changed, 25 insertions, 0 deletions
diff --git a/tests/auto/webchannel/tst_webchannel.cpp b/tests/auto/webchannel/tst_webchannel.cpp index 4827ea7..3304293 100644 --- a/tests/auto/webchannel/tst_webchannel.cpp +++ b/tests/auto/webchannel/tst_webchannel.cpp @@ -83,6 +83,30 @@ void TestWebChannel::testRegisterObjects() channel.registerObjects(objects); } +void TestWebChannel::testDeregisterObjects() +{ + QWebChannel channel; + TestObject testObject; + testObject.setObjectName("myTestObject"); + + + channel.registerObject(testObject.objectName(), &testObject); + + channel.connectTo(m_dummyTransport); + channel.d_func()->publisher->initializeClients(); + + QJsonObject connectMessage = + QJsonDocument::fromJson(("{\"type\": 7," + "\"object\": \"myTestObject\"," + "\"signal\": " + QString::number(testObject.metaObject()->indexOfSignal("sig1()")) + + "}").toLatin1()).object(); + channel.d_func()->publisher->handleMessage(connectMessage, m_dummyTransport); + + emit testObject.sig1(); + channel.deregisterObject(&testObject); + emit testObject.sig1(); +} + void TestWebChannel::testInfoForObject() { TestObject obj; diff --git a/tests/auto/webchannel/tst_webchannel.h b/tests/auto/webchannel/tst_webchannel.h index ad8c6a4..6564944 100644 --- a/tests/auto/webchannel/tst_webchannel.h +++ b/tests/auto/webchannel/tst_webchannel.h @@ -214,6 +214,7 @@ public: private slots: void testRegisterObjects(); + void testDeregisterObjects(); void testInfoForObject(); void testInvokeMethodConversion(); void testDisconnect(); |