summaryrefslogtreecommitdiff
path: root/tests
diff options
context:
space:
mode:
authorAndrew Webster <awebster@arcx.com>2018-09-14 11:18:11 -0400
committerMilian Wolff <milian.wolff@kdab.com>2019-04-10 08:54:00 +0000
commitb4342f3567ec08a959f132bc1ef0c4f8eb89bcf8 (patch)
tree0c18d5996f8a3dd945ad6e064b04d9d614195e1b /tests
parentd7ece941aebdac1be820fdfe74c273fb963dfcad (diff)
downloadqtwebchannel-b4342f3567ec08a959f132bc1ef0c4f8eb89bcf8.tar.gz
Return a Promise when no callback is provided for a function call
This returns a Promise if Promise is supported and no callback is provided. The Promise resolves when the function call succeeds, or rejects when it fails. Change-Id: I529f5c2c0ff8997820f3d1b4d4b364cd8521e9b5 Reviewed-by: Milian Wolff <milian.wolff@kdab.com>
Diffstat (limited to 'tests')
-rw-r--r--tests/auto/qml/tst_webchannel.qml11
1 files changed, 10 insertions, 1 deletions
diff --git a/tests/auto/qml/tst_webchannel.qml b/tests/auto/qml/tst_webchannel.qml
index b0f3263..ed1c4a1 100644
--- a/tests/auto/qml/tst_webchannel.qml
+++ b/tests/auto/qml/tst_webchannel.qml
@@ -87,6 +87,7 @@ TestCase {
property var myProperty : 0
function myMethod(arg) {
lastMethodArg = arg;
+ return myProperty;
}
signal mySignal(var arg1, var arg2)
}
@@ -238,6 +239,7 @@ TestCase {
var testObjBeforeDeletion;
var testObjAfterDeletion;
var testObjId;
+ var testReturn;
var channel = client.createChannel(function(channel) {
channel.objects.myFactory.create("testObj", function(obj) {
testObjId = obj.__id__;
@@ -249,7 +251,9 @@ TestCase {
testObjAfterDeletion = obj;
});
obj.myProperty = 42;
- obj.myMethod("foobar");
+ obj.myMethod("foobar").then(function(result) {
+ testReturn = result;
+ });
});
});
client.awaitInit();
@@ -288,6 +292,11 @@ TestCase {
// the server should eventually notify the client about the property update
client.awaitPropertyUpdate();
+ // check that the Promise from myMethod was resolved
+ // must happen after waiting for something so the Promise callback
+ // can execute
+ compare(testReturn, 42);
+
client.awaitIdle();
// property should be wrapped