diff options
-rw-r--r-- | src/webchannel/qwebchannel.js | 4 | ||||
-rw-r--r-- | tests/auto/qml/Client.qml | 25 | ||||
-rw-r--r-- | tests/auto/qml/tst_webchannel.qml | 6 |
3 files changed, 8 insertions, 27 deletions
diff --git a/src/webchannel/qwebchannel.js b/src/webchannel/qwebchannel.js index 2df8704..4b031c0 100644 --- a/src/webchannel/qwebchannel.js +++ b/src/webchannel/qwebchannel.js @@ -154,7 +154,7 @@ var QWebChannel = function(transport, initCallback) console.warn("Unhandled property update: " + data.object + "::" + data.signal); } } - setTimeout(function() { channel.exec({type: QWebChannelMessageTypes.idle}); }, 0); + channel.exec({type: QWebChannelMessageTypes.idle}); } // prevent multiple initialization which might happen with multiple webchannel clients. @@ -172,7 +172,7 @@ var QWebChannel = function(transport, initCallback) if (initCallback) { initCallback(channel); } - setTimeout(function() { channel.exec({type: QWebChannelMessageTypes.idle}); }, 0); + channel.exec({type: QWebChannelMessageTypes.idle}); } this.debug = function(message) diff --git a/tests/auto/qml/Client.qml b/tests/auto/qml/Client.qml index 0b623a0..161a85e 100644 --- a/tests/auto/qml/Client.qml +++ b/tests/auto/qml/Client.qml @@ -86,30 +86,6 @@ Item { } readonly property var clientTransport: clientTransport - Timer { - id: timer - running: false - repeat: false - - property var callback - - onTriggered: { - callback(); - } - } - - function setTimeout(callback, delay) - { - if (timer.running) { - console.error("nested calls to setTimeout are not supported!", JSON.stringify(callback), JSON.stringify(timer.callback)); - return; - } - timer.callback = callback; - // note: an interval of 0 is directly triggered, so add a little padding - timer.interval = delay + 1; - timer.running = true; - } - function createChannel(callback, raw) { return new JSClient.QWebChannel(clientTransport, callback, raw); @@ -118,7 +94,6 @@ Item { function cleanup() { clientMessages = []; - timer.running = false; } function awaitRawMessage() diff --git a/tests/auto/qml/tst_webchannel.qml b/tests/auto/qml/tst_webchannel.qml index 46ac209..899db69 100644 --- a/tests/auto/qml/tst_webchannel.qml +++ b/tests/auto/qml/tst_webchannel.qml @@ -256,6 +256,8 @@ TestCase { compare(msg.args, ["foobar"]); compare(lastMethodArg, "foobar"); + client.awaitIdle(); + myFactory.lastObj.mySignal("foobar", 42); // deleteLater call @@ -292,8 +294,12 @@ TestCase { compare(msg.type, JSClient.QWebChannelMessageTypes.connectToSignal); compare(typeof channel.objects[testObjId], "object"); + client.awaitIdle(); + channel.objects[testObjId].deleteLater(); msg = client.awaitMessage(); + compare(msg.type, JSClient.QWebChannelMessageTypes.invokeMethod); + compare(msg.object, testObjId); // after receiving the destroyed signal the client deletes // local objects and sends back a idle message |