diff options
author | Peter Varga <pvarga@inf.u-szeged.hu> | 2017-06-16 13:46:14 +0200 |
---|---|---|
committer | Peter Varga <pvarga@inf.u-szeged.hu> | 2017-06-22 05:34:20 +0000 |
commit | f6a72a415b62f5f0b1e72df3f88702df54103985 (patch) | |
tree | e9d482809ebcca3f73ad3a6615e6cc77629613fd /tests | |
parent | 6c39bd77bf732db0e032b56113541b70c68f08fd (diff) |
Fix cancelling IME composition
Task-number: QTBUG-61429
Change-Id: I936f1c924ae8158a5243fdf20d12e6c5508b684a
Reviewed-by: Kai Koehne <kai.koehne@qt.io>
Diffstat (limited to 'tests')
-rw-r--r-- | tests/auto/widgets/qwebengineview/tst_qwebengineview.cpp | 28 |
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() |