diff options
author | Liang Qi <liang.qi@qt.io> | 2018-11-28 08:46:42 +0100 |
---|---|---|
committer | Liang Qi <liang.qi@qt.io> | 2018-11-28 08:46:42 +0100 |
commit | 4b2ab1d0816683dd53311ecb719ac8ede0d5b327 (patch) | |
tree | cd0cf3daf7678af3b265ff62edd78cd321e90489 /tests | |
parent | bbee17d60ae390a8c2c53d429cfa552f726a6d45 (diff) | |
parent | ba816f1f5cd5ddb7f5cba32d0c9816bb439dffba (diff) |
Merge remote-tracking branch 'origin/5.12' into dev
Change-Id: Idf2c89bebf5e09855d764808cac487bc4b76faaa
Diffstat (limited to 'tests')
-rw-r--r-- | tests/auto/widgets/qwebengineview/tst_qwebengineview.cpp | 42 |
1 files changed, 42 insertions, 0 deletions
diff --git a/tests/auto/widgets/qwebengineview/tst_qwebengineview.cpp b/tests/auto/widgets/qwebengineview/tst_qwebengineview.cpp index a0f8f11d2..a6487d19a 100644 --- a/tests/auto/widgets/qwebengineview/tst_qwebengineview.cpp +++ b/tests/auto/widgets/qwebengineview/tst_qwebengineview.cpp @@ -2292,6 +2292,48 @@ void tst_QWebEngineView::imeComposition() QTRY_COMPARE(view.focusProxy()->inputMethodQuery(Qt::ImAnchorPosition).toInt(), 15); QTRY_COMPARE(view.focusProxy()->inputMethodQuery(Qt::ImCurrentSelection).toString(), QString("")); QCOMPARE(selectionChangedSpy.count(), 2); + selectionChangedSpy.clear(); + + + // 5. Mimic behavior of QtVirtualKeyboard with enabled text prediction. + evaluateJavaScriptSync(view.page(), "document.getElementById('input1').value='QtWebEngine';"); + QTRY_COMPARE(evaluateJavaScriptSync(view.page(), "document.getElementById('input1').value").toString(), QString("QtWebEngine")); + + // Move cursor into position. + QTest::keyClick(view.focusProxy(), Qt::Key_Home); + for (int j = 0; j < 2; ++j) + QTest::keyClick(view.focusProxy(), Qt::Key_Right); + QTRY_COMPARE(view.focusProxy()->inputMethodQuery(Qt::ImCursorPosition).toInt(), 2); + + // Turn text into composition by using negative start position. + { + int replaceFrom = -1 * view.focusProxy()->inputMethodQuery(Qt::ImCursorPosition).toInt(); + int replaceLength = view.focusProxy()->inputMethodQuery(Qt::ImSurroundingText).toString().size(); + + QList<QInputMethodEvent::Attribute> attributes; + QInputMethodEvent event("QtWebEngine", attributes); + event.setCommitString(QString(), replaceFrom, replaceLength); + QApplication::sendEvent(view.focusProxy(), &event); + } + QTRY_COMPARE(view.focusProxy()->inputMethodQuery(Qt::ImSurroundingText).toString(), QString("")); + QCOMPARE(view.focusProxy()->inputMethodQuery(Qt::ImCursorPosition).toInt(), 11); + QCOMPARE(view.focusProxy()->inputMethodQuery(Qt::ImAnchorPosition).toInt(), 11); + QCOMPARE(view.focusProxy()->inputMethodQuery(Qt::ImCurrentSelection).toString(), QString("")); + QCOMPARE(evaluateJavaScriptSync(view.page(), "document.getElementById('input1').value").toString(), QString("QtWebEngine")); + + // Commit. + { + QList<QInputMethodEvent::Attribute> attributes; + QInputMethodEvent event(QString(), attributes); + event.setCommitString("QtWebEngine", 0, 0); + QApplication::sendEvent(view.focusProxy(), &event); + } + QTRY_COMPARE(view.focusProxy()->inputMethodQuery(Qt::ImSurroundingText).toString(), QString("QtWebEngine")); + QCOMPARE(view.focusProxy()->inputMethodQuery(Qt::ImCursorPosition).toInt(), 11); + QCOMPARE(view.focusProxy()->inputMethodQuery(Qt::ImAnchorPosition).toInt(), 11); + QCOMPARE(view.focusProxy()->inputMethodQuery(Qt::ImCurrentSelection).toString(), QString("")); + QCOMPARE(evaluateJavaScriptSync(view.page(), "document.getElementById('input1').value").toString(), QString("QtWebEngine")); + QCOMPARE(selectionChangedSpy.count(), 0); } void tst_QWebEngineView::newlineInTextarea() |