diff options
author | Milian Wolff <milian.wolff@kdab.com> | 2014-02-05 17:44:03 +0100 |
---|---|---|
committer | The Qt Project <gerrit-noreply@qt-project.org> | 2014-03-21 15:59:25 +0100 |
commit | 48e814442e6e8507aacd16362b44d5754c059228 (patch) | |
tree | 592f3916bf2e5dc18d57a62c3baf1ba0ae2bbf09 /tests | |
parent | e3e4d6a18d63537459f0e616360e53e816927f76 (diff) | |
download | qtwebchannel-48e814442e6e8507aacd16362b44d5754c059228.tar.gz |
Send response data only to target client.
Before, the response was sent to all clients in a broad-cast and had
to be filtered on the client-side. This required additional client
identification data to be added to all requests and responses.
Now, we keep track of the transport and transport-internal client and
only send the response to that client. This is very benefitial for
multi-client setups but also reduces traffic for single-client setups
and thus their performance.
Change-Id: Ia1ef5e031b0058222083d352a8aa28a7d566a6ca
Reviewed-by: Simon Hausmann <simon.hausmann@digia.com>
Diffstat (limited to 'tests')
-rw-r--r-- | tests/qml/data/respond.html | 17 | ||||
-rw-r--r-- | tests/qml/tst_webchannel.qml | 10 | ||||
-rw-r--r-- | tests/webchannel/tst_webchannel.cpp | 6 | ||||
-rw-r--r-- | tests/webchannel/tst_webchannel.h | 4 |
4 files changed, 5 insertions, 32 deletions
diff --git a/tests/qml/data/respond.html b/tests/qml/data/respond.html deleted file mode 100644 index 5f0e7fc..0000000 --- a/tests/qml/data/respond.html +++ /dev/null @@ -1,17 +0,0 @@ -<html> - <head> - <script type="text/javascript" src="qrc:///qwebchannel/qwebchannel.js"></script> - <script type="text/javascript" src="testsetup.js"></script> - <script type="text/javascript"> - //BEGIN SETUP - createWebChannel(function(channel) { - channel.exec("foobar", function(response) { - channel.send("received:"+response); - }); - }, true /* raw */); - //END SETUP - </script> - </head> - <body> - </body> -</html> diff --git a/tests/qml/tst_webchannel.qml b/tests/qml/tst_webchannel.qml index 160a1af..dddba71 100644 --- a/tests/qml/tst_webchannel.qml +++ b/tests/qml/tst_webchannel.qml @@ -56,14 +56,4 @@ WebChannelTest { webChannel.sendMessage("myMessage", "foobar"); compare(awaitRawMessage(), "myMessagePong:foobar"); } - - function test_respondMessage() - { - loadUrl("respond.html"); - var msg = awaitMessage(); - verify(msg.id); - compare(msg.data, "foobar"); - webChannel.respond(msg.id, "barfoo"); - compare(awaitRawMessage(), "received:barfoo"); - } } diff --git a/tests/webchannel/tst_webchannel.cpp b/tests/webchannel/tst_webchannel.cpp index bb08c21..ece02a8 100644 --- a/tests/webchannel/tst_webchannel.cpp +++ b/tests/webchannel/tst_webchannel.cpp @@ -242,19 +242,19 @@ void TestWebChannel::testInvokeMethodConversion() { int method = metaObject()->indexOfMethod("setInt(int)"); QVERIFY(method != -1); - QVERIFY(channel.d->publisher->invokeMethod(this, method, args, QJsonValue())); + QVERIFY(!channel.d->publisher->invokeMethod(this, method, args, QJsonValue()).isEmpty()); QCOMPARE(m_lastInt, args.at(0).toInt()); } { int method = metaObject()->indexOfMethod("setDouble(double)"); QVERIFY(method != -1); - QVERIFY(channel.d->publisher->invokeMethod(this, method, args, QJsonValue())); + QVERIFY(!channel.d->publisher->invokeMethod(this, method, args, QJsonValue()).isEmpty()); QCOMPARE(m_lastDouble, args.at(0).toDouble()); } { int method = metaObject()->indexOfMethod("setVariant(QVariant)"); QVERIFY(method != -1); - QVERIFY(channel.d->publisher->invokeMethod(this, method, args, QJsonValue())); + QVERIFY(!channel.d->publisher->invokeMethod(this, method, args, QJsonValue()).isEmpty()); QCOMPARE(m_lastVariant, args.at(0).toVariant()); } } diff --git a/tests/webchannel/tst_webchannel.h b/tests/webchannel/tst_webchannel.h index 26aa913..314fe99 100644 --- a/tests/webchannel/tst_webchannel.h +++ b/tests/webchannel/tst_webchannel.h @@ -56,9 +56,9 @@ public: {} ~DummyTransport() {}; - void sendMessage(const QString &/*message*/) const Q_DECL_OVERRIDE + void sendMessage(const QString &/*message*/, int /*clientId*/) const Q_DECL_OVERRIDE {} - void sendMessage(const QByteArray &/*message*/) const Q_DECL_OVERRIDE + void sendMessage(const QByteArray &/*message*/, int /*clientId*/) const Q_DECL_OVERRIDE {} void setMessageHandler(QWebChannelMessageHandlerInterface * /*handler*/) Q_DECL_OVERRIDE {} |