diff options
Diffstat (limited to 'tests/auto/widgets')
-rw-r--r-- | tests/auto/widgets/qwebenginepage/tst_qwebenginepage.cpp | 23 |
1 files changed, 23 insertions, 0 deletions
diff --git a/tests/auto/widgets/qwebenginepage/tst_qwebenginepage.cpp b/tests/auto/widgets/qwebenginepage/tst_qwebenginepage.cpp index 0504d39fa..f4d0ad1a0 100644 --- a/tests/auto/widgets/qwebenginepage/tst_qwebenginepage.cpp +++ b/tests/auto/widgets/qwebenginepage/tst_qwebenginepage.cpp @@ -138,6 +138,7 @@ private Q_SLOTS: void runJavaScript(); void runJavaScriptDisabled(); + void runJavaScriptFromSlot(); void fullScreenRequested(); void quotaRequested(); @@ -1644,6 +1645,28 @@ void tst_QWebEnginePage::runJavaScriptDisabled() QVariant(2)); } +// Based on https://bugreports.qt.io/browse/QTBUG-73876 +void tst_QWebEnginePage::runJavaScriptFromSlot() +{ + QWebEngineProfile profile; + QWebEnginePage page(&profile); + + QSignalSpy loadFinishedSpy(&page, &QWebEnginePage::loadFinished); + page.setHtml("<html><body>" + " <input type='text' id='input1' value='QtWebEngine' size='50' />" + "</body></html>"); + QTRY_COMPARE(loadFinishedSpy.count(), 1); + + QVariant result(-1); + connect(&page, &QWebEnginePage::selectionChanged, [&]() { + result = evaluateJavaScriptSync(&page, QStringLiteral("2+2")); + }); + evaluateJavaScriptSync(&page, QStringLiteral("const input = document.getElementById('input1');" + "input.focus();" + "input.select();")); + QTRY_COMPARE(result, QVariant(4)); +} + void tst_QWebEnginePage::fullScreenRequested() { JavaScriptCallbackWatcher watcher; |