summaryrefslogtreecommitdiff
path: root/tests
diff options
context:
space:
mode:
authorMilian Wolff <milian.wolff@kdab.com>2014-07-16 19:04:39 +0200
committerMilian Wolff <milian.wolff@kdab.com>2014-08-01 13:10:32 +0200
commit30e2e336a536786cf9a9de9736b0983df02fd041 (patch)
treee5fc3c5e149e091b49e143fadc62c525b6377355 /tests
parentf2f690cc2521285706135498c809be770c19813f (diff)
downloadqtwebchannel-30e2e336a536786cf9a9de9736b0983df02fd041.tar.gz
Properly disconnect a transport from the QtMetaObjectPublisher.
This fixes a bug, where messages from the transport would still be send to the QtMetaObjectPublisher even though it was previously disconnected. I'll refactor this code eventually to get rid of QtMetaObjectPublisher alltogether and merge its code into QWebChannelPrivate where appropriate. Change-Id: Ie0c35bd81a5e633bdcb6be55b64f947d4a545a59 Reviewed-by: Jocelyn Turcotte <jocelyn.turcotte@digia.com> Reviewed-by: Lutz Schönemann <lutz.schoenemann@basyskom.com>
Diffstat (limited to 'tests')
-rw-r--r--tests/auto/webchannel/tst_webchannel.cpp8
-rw-r--r--tests/auto/webchannel/tst_webchannel.h6
2 files changed, 14 insertions, 0 deletions
diff --git a/tests/auto/webchannel/tst_webchannel.cpp b/tests/auto/webchannel/tst_webchannel.cpp
index 900a6bb..2de34c9 100644
--- a/tests/auto/webchannel/tst_webchannel.cpp
+++ b/tests/auto/webchannel/tst_webchannel.cpp
@@ -244,6 +244,14 @@ void TestWebChannel::testInvokeMethodConversion()
}
}
+void TestWebChannel::testDisconnect()
+{
+ QWebChannel channel;
+ channel.connectTo(m_dummyTransport);
+ channel.disconnectFrom(m_dummyTransport);
+ m_dummyTransport->emitMessageReceived(QJsonObject());
+}
+
static QHash<QString, QObject*> createObjects(QObject *parent)
{
const int num = 100;
diff --git a/tests/auto/webchannel/tst_webchannel.h b/tests/auto/webchannel/tst_webchannel.h
index bd403dc..57e6b5d 100644
--- a/tests/auto/webchannel/tst_webchannel.h
+++ b/tests/auto/webchannel/tst_webchannel.h
@@ -56,6 +56,11 @@ public:
{}
~DummyTransport() {};
+ void emitMessageReceived(const QJsonObject &message)
+ {
+ emit messageReceived(message, this);
+ }
+
public slots:
void sendMessage(const QJsonObject &/*message*/) Q_DECL_OVERRIDE
{
@@ -217,6 +222,7 @@ private slots:
void testRegisterObjects();
void testInfoForObject();
void testInvokeMethodConversion();
+ void testDisconnect();
void benchClassInfo();
void benchInitializeClients();