summaryrefslogtreecommitdiff
path: root/tests/auto/qml/tst_webchannel.qml
diff options
context:
space:
mode:
authorLiang Qi <liang.qi@qt.io>2016-08-01 11:04:14 +0200
committerLiang Qi <liang.qi@qt.io>2016-08-01 11:04:21 +0200
commitd342edcc22d3c9c0299e86805d93e7031507345b (patch)
tree29893a91dd70c3009e8f4343f9e4d447cf4dfb77 /tests/auto/qml/tst_webchannel.qml
parent58c800edb56d976d95cb2097e27cd39cfc02bf50 (diff)
parent3b28a6956cb3cab087481312dc82a907b118e0de (diff)
downloadqtwebchannel-d342edcc22d3c9c0299e86805d93e7031507345b.tar.gz
Merge remote-tracking branch 'origin/5.6' into 5.7
Change-Id: If2a4f50d03fccc2654b8336d9e40daea85d6adca
Diffstat (limited to 'tests/auto/qml/tst_webchannel.qml')
-rw-r--r--tests/auto/qml/tst_webchannel.qml43
1 files changed, 42 insertions, 1 deletions
diff --git a/tests/auto/qml/tst_webchannel.qml b/tests/auto/qml/tst_webchannel.qml
index 5e28db3..6da6c4b 100644
--- a/tests/auto/qml/tst_webchannel.qml
+++ b/tests/auto/qml/tst_webchannel.qml
@@ -89,10 +89,15 @@ TestCase {
}
}
+ TestObject {
+ id: testObject
+ WebChannel.id: "testObject"
+ }
+
TestWebChannel {
id: webChannel
transports: [client.serverTransport]
- registeredObjects: [myObj, myOtherObj, myFactory]
+ registeredObjects: [myObj, myOtherObj, myFactory, testObject]
}
function initChannel() {
@@ -407,4 +412,40 @@ TestCase {
myObj.mySignal(0, myObj);
compare(signalArg, 42);
}
+
+ // see also: https://bugreports.qt.io/browse/QTBUG-54074
+ function test_signalArgumentTypeConversion()
+ {
+ var signalArgs = [];
+ function logSignalArgs(arg) {
+ signalArgs.push(arg);
+ }
+ var channel = client.createChannel(function(channel) {
+ var testObject = channel.objects.testObject;
+ testObject.testSignalBool.connect(logSignalArgs);
+ testObject.testSignalInt.connect(logSignalArgs);
+ testObject.triggerSignals();
+ });
+ client.awaitInit();
+
+ var msg = client.awaitMessage();
+ compare(msg.type, JSClient.QWebChannelMessageTypes.connectToSignal);
+ compare(msg.object, "testObject");
+
+ msg = client.awaitMessage();
+ compare(msg.type, JSClient.QWebChannelMessageTypes.connectToSignal);
+ compare(msg.object, "testObject");
+
+ msg = client.awaitMessage();
+ compare(msg.type, JSClient.QWebChannelMessageTypes.invokeMethod);
+ client.awaitIdle();
+
+ compare(signalArgs, [
+ true,
+ false,
+ 42,
+ 1,
+ 0
+ ]);
+ }
}