summaryrefslogtreecommitdiffstats
path: root/tests
diff options
context:
space:
mode:
authorPeter Varga <pvarga@inf.u-szeged.hu>2017-06-16 13:46:14 +0200
committerPeter Varga <pvarga@inf.u-szeged.hu>2017-06-22 05:34:20 +0000
commitf6a72a415b62f5f0b1e72df3f88702df54103985 (patch)
treee9d482809ebcca3f73ad3a6615e6cc77629613fd /tests
parent6c39bd77bf732db0e032b56113541b70c68f08fd (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.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()