From 5c42809274288811b386b3cb3cd08000777e37c8 Mon Sep 17 00:00:00 2001 From: Peter Varga Date: Tue, 14 Feb 2017 09:25:45 +0100 Subject: Rework unhandled key event propagation tests for 55-based Chromium Since change https://codereview.chromium.org/2200833007 input elements are inappropriate for testing unconsumed key events. Test focus change on div elements instead. Change-Id: Ifa2f3e1bc9d6d9cb396fbad7caea907616d085b7 Reviewed-by: Allan Sandfeld Jensen --- .../data/tst_unhandledKeyEventPropagation.qml | 46 +++++++++++++++------- 1 file changed, 31 insertions(+), 15 deletions(-) (limited to 'tests/auto/quick/qmltests/data/tst_unhandledKeyEventPropagation.qml') diff --git a/tests/auto/quick/qmltests/data/tst_unhandledKeyEventPropagation.qml b/tests/auto/quick/qmltests/data/tst_unhandledKeyEventPropagation.qml index 906dc1658..69aa76b77 100644 --- a/tests/auto/quick/qmltests/data/tst_unhandledKeyEventPropagation.qml +++ b/tests/auto/quick/qmltests/data/tst_unhandledKeyEventPropagation.qml @@ -57,24 +57,40 @@ Item { } function test_keyboardModifierMapping() { - webEngineView.loadHtml("") - webEngineView.waitForLoadSucceeded() - webEngineView.runJavaScript("document.body.firstChild.focus()") + webEngineView.url = Qt.resolvedUrl("keyboardEvents.html"); + verify(webEngineView.waitForLoadSucceeded()); - keyPress(Qt.Key_A) - keyRelease(Qt.Key_A) - keyPress(Qt.Key_Left) - keyRelease(Qt.Key_Left) - keyPress(Qt.Key_Left) - keyRelease(Qt.Key_Left) + webEngineView.runJavaScript("document.getElementById('first_div').focus()"); + webEngineView.verifyElementHasFocus("first_div"); - tryCompare(parentItem.pressEvents, "length", 1) - compare(parentItem.pressEvents[0], Qt.Key_Left) + keyPress(Qt.Key_Right); + keyRelease(Qt.Key_Right); + // Right arrow key is unhandled thus focus is not changed + tryCompare(parentItem.releaseEvents, "length", 1); + webEngineView.verifyElementHasFocus("first_div"); - tryCompare(parentItem.releaseEvents, "length", 3) - compare(parentItem.releaseEvents[0], Qt.Key_A) - compare(parentItem.releaseEvents[1], Qt.Key_Left) - compare(parentItem.releaseEvents[2], Qt.Key_Left) + keyPress(Qt.Key_Tab); + keyRelease(Qt.Key_Tab); + // Tab key is handled thus focus is changed + tryCompare(parentItem.releaseEvents, "length", 2); + webEngineView.verifyElementHasFocus("second_div"); + + keyPress(Qt.Key_Left); + keyRelease(Qt.Key_Left); + // Left arrow key is unhandled thus focus is not changed + tryCompare(parentItem.releaseEvents, "length", 3); + webEngineView.verifyElementHasFocus("second_div"); + + // The page will consume the Tab key to change focus between elements while the arrow + // keys won't be used. + compare(parentItem.pressEvents.length, 2); + compare(parentItem.pressEvents[0], Qt.Key_Right); + compare(parentItem.pressEvents[1], Qt.Key_Left); + + // Key releases will all come back unconsumed. + compare(parentItem.releaseEvents[0], Qt.Key_Right); + compare(parentItem.releaseEvents[1], Qt.Key_Tab); + compare(parentItem.releaseEvents[2], Qt.Key_Left); } } } -- cgit v1.2.3