diff options
Diffstat (limited to 'tests/auto/webchannel/tst_webchannel.cpp')
-rw-r--r-- | tests/auto/webchannel/tst_webchannel.cpp | 22 |
1 files changed, 22 insertions, 0 deletions
diff --git a/tests/auto/webchannel/tst_webchannel.cpp b/tests/auto/webchannel/tst_webchannel.cpp index 7305929..4884ea9 100644 --- a/tests/auto/webchannel/tst_webchannel.cpp +++ b/tests/auto/webchannel/tst_webchannel.cpp @@ -335,6 +335,16 @@ void TestWebChannel::setJsonValue(const QJsonValue& v) emit lastJsonValueChanged(); } +QUrl TestWebChannel::readUrl() const +{ + return m_lastUrl; +} + +void TestWebChannel::setUrl(const QUrl& u) +{ + m_lastUrl = u; +} + QJsonObject TestWebChannel::readJsonObject() const { return m_lastJsonObject; @@ -683,6 +693,15 @@ void TestWebChannel::testInvokeMethodConversion() auto retVal = channel.d_func()->publisher->invokeMethod(this, getterMethod, {}); QCOMPARE(retVal, QVariant::fromValue(array)); } + { + args[0] = QJsonValue::fromVariant(QUrl("aviancarrier:/ok")); + channel.d_func()->publisher->invokeMethod(this, "setUrl", args); + QVERIFY(m_lastUrl.isValid()); + int getterMethod = metaObject()->indexOfMethod("readUrl()"); + QVERIFY(getterMethod != -1); + auto retVal = channel.d_func()->publisher->invokeMethod(this, getterMethod, {}); + QCOMPARE(retVal, args.at(0).toVariant().toUrl()); + } } void TestWebChannel::testFunctionOverloading() @@ -975,6 +994,9 @@ void TestWebChannel::testWrapValues_data() << QJsonValue(QJsonObject{{"One", 1}, {"Two", 2}}); + QTest::addRow("url") << QVariant::fromValue(QUrl("aviancarrier:/test")) + << QJsonValue(QJsonValue(QString("aviancarrier:/test"))); + QTest::addRow("map") << QVariant::fromValue(QVariantMap{{"One", 1}, {"Two", 2}}) << QJsonValue(QJsonObject{{"One", 1}, |