From 6766582f7b52de38d4cae197766099ae2242ae3e Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Lutz=20Sch=C3=B6nemann?= Date: Mon, 18 Aug 2014 18:11:34 +0200 Subject: Fixing property update for wrapped objects Returned QObject pointer got wrapped correctly but a wrong QJsonObject was given to initializePropertyUpdates() method. Change-Id: I157b862ba2a90e87c295beb3c02fff932aac83c6 Reviewed-by: Milian Wolff --- tests/auto/qml/tst_webchannel.qml | 30 ++++++++++++++++++++++++++++++ 1 file changed, 30 insertions(+) (limited to 'tests') 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; -- cgit v1.2.1