diff options
Diffstat (limited to 'tests/auto/widgets/qwebenginescript/tst_qwebenginescript.cpp')
-rw-r--r-- | tests/auto/widgets/qwebenginescript/tst_qwebenginescript.cpp | 17 |
1 files changed, 17 insertions, 0 deletions
diff --git a/tests/auto/widgets/qwebenginescript/tst_qwebenginescript.cpp b/tests/auto/widgets/qwebenginescript/tst_qwebenginescript.cpp index cb45e524e..a9efabf97 100644 --- a/tests/auto/widgets/qwebenginescript/tst_qwebenginescript.cpp +++ b/tests/auto/widgets/qwebenginescript/tst_qwebenginescript.cpp @@ -42,6 +42,7 @@ private Q_SLOTS: void webChannelResettingAndUnsetting(); void webChannelWithExistingQtObject(); void navigation(); + void webChannelWithBadString(); }; void tst_QWebEngineScript::domEditing() @@ -470,6 +471,22 @@ void tst_QWebEngineScript::navigation() QCOMPARE(testObject.text(), url3); } +// Try to set TestObject::text to an invalid UTF-16 string. +// +// See QTBUG-61969. +void tst_QWebEngineScript::webChannelWithBadString() +{ + QWebEnginePage page; + TestObject host; + QSignalSpy hostSpy(&host, &TestObject::textChanged); + QWebChannel channel; + channel.registerObject(QStringLiteral("host"), &host); + page.setWebChannel(&channel); + page.setUrl(QStringLiteral("qrc:/resources/webChannelWithBadString.html")); + QVERIFY(hostSpy.wait(20000)); + QCOMPARE(host.text(), QString(QChar(QChar::ReplacementCharacter))); +} + QTEST_MAIN(tst_QWebEngineScript) #include "tst_qwebenginescript.moc" |