diff options
author | Filippo Cucchetto <f.cucchetto@asem.it> | 2016-02-12 15:41:06 +0100 |
---|---|---|
committer | Filippo Cucchetto <filippocucchetto@gmail.com> | 2016-02-16 11:12:53 +0000 |
commit | d600966e0aef236649b7a35520742f086f91cc07 (patch) | |
tree | 632a88d5521f2ecf0c76b29ed1c409848d65f382 /tests | |
parent | 67041bbc667a10ae14a15ed8755b2b1bbf91b686 (diff) | |
download | qtquickcontrols-d600966e0aef236649b7a35520742f086f91cc07.tar.gz |
Added test for keyboard navigation in submenus
This should test QTBUG-41951
Change-Id: I262f3e7ca1573dcfb149f3ae942e17817d2e1caf
Reviewed-by: J-P Nurmi <jpnurmi@theqtcompany.com>
Diffstat (limited to 'tests')
-rw-r--r-- | tests/auto/controls/data/tst_menubar.qml | 100 |
1 files changed, 97 insertions, 3 deletions
diff --git a/tests/auto/controls/data/tst_menubar.qml b/tests/auto/controls/data/tst_menubar.qml index 44238e21..d2077934 100644 --- a/tests/auto/controls/data/tst_menubar.qml +++ b/tests/auto/controls/data/tst_menubar.qml @@ -49,6 +49,8 @@ TestCase { width:400 height:400 + readonly property int waitTime: 200 + Component { id: windowComponent ApplicationWindow { @@ -95,12 +97,104 @@ TestCase { verify(fileMenu) tryCompare(fileMenu, "__popupVisible", false) mousePress(fileMenu.__visualItem) - wait(200); + wait(waitTime); tryCompare(fileMenu, "__popupVisible", true) mouseMove(fileMenu.__contentItem, 0, -10) - wait(200) + wait(waitTime) mouseRelease(fileMenu.__contentItem, 0, -10) tryCompare(fileMenu, "__popupVisible", true) - wait(200) + wait(waitTime) + + window.destroy(); + } + + function test_keyNavigation() { + if (Qt.platform.os === "osx") + skip("MenuBar cannot be reliably tested on OS X") + + var window = windowComponent.createObject() + waitForRendering(window.contentItem) + var fileMenu = findChild(window, "fileMenu") + verify(fileMenu) + var editMenu = findChild(window, "editMenu") + verify(editMenu) + + // Click menu should open + tryCompare(fileMenu, "__popupVisible", false) + mouseClick(fileMenu.__visualItem) + wait(waitTime) + tryCompare(fileMenu, "__popupVisible", true) + tryCompare(fileMenu, "__currentIndex", -1) + tryCompare(fileMenu.__contentItem, "status", Loader.Ready) + + // Move right + tryCompare(editMenu, "__popupVisible", false) + keyPress(Qt.Key_Right, Qt.NoModifier, waitTime) + keyRelease(Qt.Key_Right, Qt.NoModifier, waitTime) + tryCompare(editMenu, "__popupVisible", true) + tryCompare(editMenu.__contentItem, "status", Loader.Ready) + + // Move left + tryCompare(fileMenu, "__popupVisible", false) + keyPress(Qt.Key_Left, Qt.NoModifier, waitTime) + keyRelease(Qt.Key_Left, Qt.NoModifier, waitTime) + tryCompare(fileMenu, "__popupVisible", true) + tryCompare(fileMenu, "__currentIndex", 0) + tryCompare(fileMenu.__contentItem, "status", Loader.Ready) + + // Move down + var saveMenuItem = findChild(window, "saveMenuItem") + verify(saveMenuItem) + tryCompare(saveMenuItem.__visualItem.styleData, "selected", false) + keyPress(Qt.Key_Down, Qt.NoModifier, waitTime) + keyRelease(Qt.Key_Down, Qt.NoModifier, waitTime) + tryCompare(fileMenu, "__currentIndex", 1) + tryCompare(saveMenuItem.__visualItem.styleData, "selected", true) + + // Move up + var recentFilesSubMenu = findChild(window, "recentFilesSubMenu") + verify(recentFilesSubMenu) + tryCompare(recentFilesSubMenu.__visualItem.styleData, "selected", false) + keyPress(Qt.Key_Up, Qt.NoModifier, waitTime) + keyRelease(Qt.Key_Up, Qt.NoModifier, waitTime) + tryCompare(fileMenu, "__currentIndex", 0) + tryCompare(recentFilesSubMenu.__visualItem.styleData, "selected", true) + + // Move right inside sub menu + tryCompare(recentFilesSubMenu, "__popupVisible", false) + tryCompare(recentFilesSubMenu, "__currentIndex", -1) + keyPress(Qt.Key_Right, Qt.NoModifier, waitTime) + keyRelease(Qt.Key_Right, Qt.NoModifier, waitTime) + tryCompare(recentFilesSubMenu, "__popupVisible", true) + tryCompare(recentFilesSubMenu, "__currentIndex", 0) + tryCompare(recentFilesSubMenu.__contentItem, "status", Loader.Ready) + + // Move down inside sub menu + var recentFile2MenuItem = findChild(window, "recentFile2MenuItem") + verify(recentFile2MenuItem) + tryCompare(recentFile2MenuItem.__visualItem.styleData, "selected", false) + tryCompare(recentFilesSubMenu, "__currentIndex", 0) + keyPress(Qt.Key_Down, Qt.NoModifier, waitTime) + keyRelease(Qt.Key_Down, Qt.NoModifier, waitTime) + tryCompare(recentFilesSubMenu, "__currentIndex", 1) + tryCompare(recentFile2MenuItem.__visualItem.styleData, "selected", true) + + // Move up inside sub menu + var recentFile1MenuItem = findChild(window, "recentFile1MenuItem") + verify(recentFile1MenuItem) + tryCompare(recentFile1MenuItem.__visualItem.styleData, "selected", false) + tryCompare(recentFilesSubMenu, "__currentIndex", 1) + keyPress(Qt.Key_Up, Qt.NoModifier, waitTime) + keyRelease(Qt.Key_Up, Qt.NoModifier, waitTime) + tryCompare(recentFilesSubMenu, "__currentIndex", 0) + tryCompare(recentFile1MenuItem.__visualItem.styleData, "selected", true) + + // Move left out of sub menu + keyPress(Qt.Key_Left, Qt.NoModifier, waitTime) + keyRelease(Qt.Key_Left, Qt.NoModifier, waitTime) + tryCompare(recentFilesSubMenu, "__popupVisible", false) + tryCompare(recentFilesSubMenu, "__currentIndex", -1) + + window.destroy() } } |