aboutsummaryrefslogtreecommitdiffstats
path: root/tests/auto/webchannel/tst_webchannel.cpp
diff options
context:
space:
mode:
authorAllan Sandfeld Jensen <allan.jensen@qt.io>2023-02-14 13:06:30 +0100
committerAllan Sandfeld Jensen <allan.jensen@qt.io>2023-02-14 15:12:49 +0000
commit97841a5d5ade97876db056c2a7db486684769d01 (patch)
treee3a428f3e2055083f070ca95eb0a16a24c2dab64 /tests/auto/webchannel/tst_webchannel.cpp
parent47546ea6bbeb9650c3fcd8dbdb2b02da46d0d85a (diff)
Improve backward support
Do both variant conversions and qjsonvalue conversions. Change-Id: I655395aa64c83ef62e8062d0820fdff437ebb156 Reviewed-by: Allan Sandfeld Jensen <allan.jensen@qt.io>
Diffstat (limited to 'tests/auto/webchannel/tst_webchannel.cpp')
-rw-r--r--tests/auto/webchannel/tst_webchannel.cpp22
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},