summaryrefslogtreecommitdiff
path: root/tests/auto/webchannel/tst_webchannel.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'tests/auto/webchannel/tst_webchannel.cpp')
-rw-r--r--tests/auto/webchannel/tst_webchannel.cpp41
1 files changed, 41 insertions, 0 deletions
diff --git a/tests/auto/webchannel/tst_webchannel.cpp b/tests/auto/webchannel/tst_webchannel.cpp
index f1911e5..4db8bae 100644
--- a/tests/auto/webchannel/tst_webchannel.cpp
+++ b/tests/auto/webchannel/tst_webchannel.cpp
@@ -216,6 +216,21 @@ void TestWebChannel::setVariant(const QVariant &v)
m_lastVariant = v;
}
+void TestWebChannel::setJsonValue(const QJsonValue& v)
+{
+ m_lastJsonValue = v;
+}
+
+void TestWebChannel::setJsonObject(const QJsonObject& v)
+{
+ m_lastJsonValue = v;
+}
+
+void TestWebChannel::setJsonArray(const QJsonArray& v)
+{
+ m_lastJsonValue = v;
+}
+
void TestWebChannel::testRegisterObjects()
{
QWebChannel channel;
@@ -426,6 +441,32 @@ void TestWebChannel::testInvokeMethodConversion()
channel.d_func()->publisher->invokeMethod(this, method, args);
QCOMPARE(m_lastVariant, args.at(0).toVariant());
}
+ {
+ int method = metaObject()->indexOfMethod("setJsonValue(QJsonValue)");
+ QVERIFY(method != -1);
+ channel.d_func()->publisher->invokeMethod(this, method, args);
+ QCOMPARE(m_lastJsonValue, args.at(0));
+ }
+ {
+ int method = metaObject()->indexOfMethod("setJsonObject(QJsonObject)");
+ QVERIFY(method != -1);
+ QJsonObject object;
+ object["foo"] = QJsonValue(123);
+ object["bar"] = QJsonValue(4.2);
+ args[0] = object;
+ channel.d_func()->publisher->invokeMethod(this, method, args);
+ QCOMPARE(m_lastJsonValue.toObject(), object);
+ }
+ {
+ int method = metaObject()->indexOfMethod("setJsonArray(QJsonArray)");
+ QVERIFY(method != -1);
+ QJsonArray array;
+ array << QJsonValue(123);
+ array << QJsonValue(4.2);
+ args[0] = array;
+ channel.d_func()->publisher->invokeMethod(this, method, args);
+ QCOMPARE(m_lastJsonValue.toArray(), array);
+ }
}
void TestWebChannel::testDisconnect()