summaryrefslogtreecommitdiffstats
path: root/tests/auto/quick/qmltests/data/tst_unhandledKeyEventPropagation.qml
diff options
context:
space:
mode:
authorPeter Varga <pvarga@inf.u-szeged.hu>2017-02-14 09:25:45 +0100
committerAllan Sandfeld Jensen <allan.jensen@qt.io>2017-03-01 12:06:41 +0000
commit5c42809274288811b386b3cb3cd08000777e37c8 (patch)
tree2007a1e3228bbd1e9dc3ecd1dadb93332d27c8b7 /tests/auto/quick/qmltests/data/tst_unhandledKeyEventPropagation.qml
parent70a76770763a4abd5cc9ce27659db16746dce06c (diff)
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 <allan.jensen@qt.io>
Diffstat (limited to 'tests/auto/quick/qmltests/data/tst_unhandledKeyEventPropagation.qml')
-rw-r--r--tests/auto/quick/qmltests/data/tst_unhandledKeyEventPropagation.qml46
1 files changed, 31 insertions, 15 deletions
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("<input type='text'/>")
- 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);
}
}
}