summaryrefslogtreecommitdiff
path: root/tests/auto/qml/tst_webchannel.qml
diff options
context:
space:
mode:
Diffstat (limited to 'tests/auto/qml/tst_webchannel.qml')
-rw-r--r--tests/auto/qml/tst_webchannel.qml30
1 files changed, 30 insertions, 0 deletions
diff --git a/tests/auto/qml/tst_webchannel.qml b/tests/auto/qml/tst_webchannel.qml
index cd7d14e..46ac209 100644
--- a/tests/auto/qml/tst_webchannel.qml
+++ b/tests/auto/qml/tst_webchannel.qml
@@ -303,6 +303,36 @@ TestCase {
compare(typeof channel.objects[testObjId], "undefined");
}
+ function test_wrapper_propertyUpdateOfWrappedObjects() {
+ var testObj;
+ var testObjId;
+ var channel = client.createChannel(function(channel) {
+ channel.objects.myFactory.create("testObj", function(obj) {
+ testObj = myFactory.lastObj;
+ testObjId = obj.__id__;
+ });
+ });
+ client.awaitInit();
+
+ // first message (call to myFactory.create())
+ var msg = client.awaitMessage();
+ compare(msg.type, JSClient.QWebChannelMessageTypes.invokeMethod);
+
+ // second message connects to destroyed signal
+ msg = client.awaitMessage();
+ compare(msg.type, JSClient.QWebChannelMessageTypes.connectToSignal);
+
+ client.awaitIdle();
+
+ testObj.myProperty = 42;
+ client.awaitIdle();
+ compare(channel.objects[testObjId].myProperty, 42);
+
+ channel.objects[testObjId].deleteLater();
+ msg = client.awaitMessage();
+ compare(msg.type, JSClient.QWebChannelMessageTypes.invokeMethod);
+ }
+
function test_disconnect()
{
var signalArg;