diff options
author | Qt Forward Merge Bot <qt_forward_merge_bot@qt-project.org> | 2019-02-26 03:01:46 +0100 |
---|---|---|
committer | Qt Forward Merge Bot <qt_forward_merge_bot@qt-project.org> | 2019-02-26 03:01:46 +0100 |
commit | 8b701450aeceb878784879eaf65dc42d5befd3a5 (patch) | |
tree | 54f17793083bfc150e515c0e2d0b15734e33934f /tests | |
parent | f51cdfcec3630c8aa76e0459049ac54a71276a0c (diff) | |
parent | 3809bdf15524e65397447eb7ba62a289c5ef58d4 (diff) | |
download | qtwebchannel-8b701450aeceb878784879eaf65dc42d5befd3a5.tar.gz |
Merge remote-tracking branch 'origin/5.13' into dev
Change-Id: Ife028425ea8c14d972c2df59071a9333352af7d1
Diffstat (limited to 'tests')
-rw-r--r-- | tests/auto/webchannel/tst_webchannel.cpp | 35 | ||||
-rw-r--r-- | tests/auto/webchannel/tst_webchannel.h | 2 |
2 files changed, 37 insertions, 0 deletions
diff --git a/tests/auto/webchannel/tst_webchannel.cpp b/tests/auto/webchannel/tst_webchannel.cpp index 13d1567..9a0f575 100644 --- a/tests/auto/webchannel/tst_webchannel.cpp +++ b/tests/auto/webchannel/tst_webchannel.cpp @@ -708,6 +708,25 @@ void TestWebChannel::testWrapRegisteredObject() QCOMPARE(obj.objectName(), returnedId); } +void TestWebChannel::testUnwrapObject() +{ + QWebChannel channel; + + { + TestObject obj; + obj.setObjectName("testObject"); + channel.registerObject(obj.objectName(), &obj); + QObject *unwrapped = channel.d_func()->publisher->unwrapObject(obj.objectName()); + QCOMPARE(unwrapped, &obj); + } + { + TestObject obj; + QJsonObject objectInfo = channel.d_func()->publisher->wrapResult(QVariant::fromValue(&obj), m_dummyTransport).toObject(); + QObject *unwrapped = channel.d_func()->publisher->unwrapObject(objectInfo["id"].toString()); + QCOMPARE(unwrapped, &obj); + } +} + void TestWebChannel::testRemoveUnusedTransports() { QWebChannel channel; @@ -780,6 +799,22 @@ void TestWebChannel::testWrapValues() } } +void TestWebChannel::testWrapObjectWithMultipleTransports() +{ + QWebChannel channel; + QMetaObjectPublisher *pub = channel.d_func()->publisher; + + DummyTransport *dummyTransport = new DummyTransport(this); + DummyTransport *dummyTransport2 = new DummyTransport(this); + + TestObject obj; + + pub->wrapResult(QVariant::fromValue(&obj), dummyTransport); + pub->wrapResult(QVariant::fromValue(&obj), dummyTransport2); + + QCOMPARE(pub->transportedWrappedObjects.count(), 2); +} + void TestWebChannel::testJsonToVariant() { QWebChannel channel; diff --git a/tests/auto/webchannel/tst_webchannel.h b/tests/auto/webchannel/tst_webchannel.h index c4fee23..3d16f7b 100644 --- a/tests/auto/webchannel/tst_webchannel.h +++ b/tests/auto/webchannel/tst_webchannel.h @@ -311,9 +311,11 @@ private slots: void testSetPropertyConversion(); void testDisconnect(); void testWrapRegisteredObject(); + void testUnwrapObject(); void testRemoveUnusedTransports(); void testPassWrappedObjectBack(); void testWrapValues(); + void testWrapObjectWithMultipleTransports(); void testJsonToVariant(); void testInfiniteRecursion(); void testAsyncObject(); |