summaryrefslogtreecommitdiffstats
path: root/tests
diff options
context:
space:
mode:
Diffstat (limited to 'tests')
-rw-r--r--tests/auto/widgets/qwebengineview/tst_qwebengineview.cpp28
1 files changed, 26 insertions, 2 deletions
diff --git a/tests/auto/widgets/qwebengineview/tst_qwebengineview.cpp b/tests/auto/widgets/qwebengineview/tst_qwebengineview.cpp
index ad03839d6..8509e9a2d 100644
--- a/tests/auto/widgets/qwebengineview/tst_qwebengineview.cpp
+++ b/tests/auto/widgets/qwebengineview/tst_qwebengineview.cpp
@@ -1800,12 +1800,36 @@ void tst_QWebEngineView::emptyInputMethodEvent()
QEXPECT_FAIL("", "https://bugreports.qt.io/browse/QTBUG-53134", Continue);
QCOMPARE(selectionChangedSpy.count(), 1);
- // Send empty QInputMethodEvent
+ // 1. Empty input method event does not clear text
QInputMethodEvent emptyEvent;
QApplication::sendEvent(view.focusProxy(), &emptyEvent);
QString inputValue = evaluateJavaScriptSync(view.page(), "document.getElementById('input1').value").toString();
- QCOMPARE(inputValue, QString("QtWebEngine"));
+ QCOMPARE(inputValue, QStringLiteral("QtWebEngine"));
+ QCOMPARE(view.focusProxy()->inputMethodQuery(Qt::ImSurroundingText).toString(), QStringLiteral("QtWebEngine"));
+
+ // Reset: clear input field
+ evaluateJavaScriptSync(view.page(), "var inputEle = document.getElementById('input1').value = ''");
+ QTRY_VERIFY(evaluateJavaScriptSync(view.page(), "document.getElementById('input1').value").toString().isEmpty());
+ QTRY_VERIFY(view.focusProxy()->inputMethodQuery(Qt::ImSurroundingText).toString().isEmpty());
+
+ // 2. Cancel IME composition with empty input method event
+ // Start IME composition
+ QList<QInputMethodEvent::Attribute> attributes;
+ QInputMethodEvent eventComposition("a", attributes);
+ QApplication::sendEvent(view.focusProxy(), &eventComposition);
+ QTRY_COMPARE(evaluateJavaScriptSync(view.page(), "document.getElementById('input1').value").toString(), QStringLiteral("a"));
+ QVERIFY(view.focusProxy()->inputMethodQuery(Qt::ImSurroundingText).toString().isEmpty());
+
+ // Cancel IME composition
+ QApplication::sendEvent(view.focusProxy(), &emptyEvent);
+ QTRY_VERIFY(evaluateJavaScriptSync(view.page(), "document.getElementById('input1').value").toString().isEmpty());
+ QVERIFY(view.focusProxy()->inputMethodQuery(Qt::ImSurroundingText).toString().isEmpty());
+
+ // Try key press after cancelled IME composition
+ QTest::keyClick(view.focusProxy(), Qt::Key_B);
+ QTRY_COMPARE(evaluateJavaScriptSync(view.page(), "document.getElementById('input1').value").toString(), QStringLiteral("b"));
+ QTRY_COMPARE(view.focusProxy()->inputMethodQuery(Qt::ImSurroundingText).toString(), QStringLiteral("b"));
}
void tst_QWebEngineView::imeComposition()