@@ -136,6 +136,8 @@ StyledItem {
136136 launcher.hide();
137137 var drawer = findChild(launcher, "drawer");
138138 tryCompare(drawer, "x", -drawer.width);
139+ var searchField = findChild(drawer, "searchField");
140+ searchField.text = "";
139141 }
140142
141143 function test_revealByEdgeDrag() {
@@ -173,7 +175,7 @@ StyledItem {
173175 var drawer = dragDrawerIntoView();
174176 waitForRendering(launcher);
175177
176− mouseFlick(root, drawer.width - units.gu(1), drawer.height / 2, units.gu(2), drawer.height / 2, true, true);
178+ mouseFlick(root, drawer.width - units.gu(1), drawer.height / 2, units.gu(10), drawer.height / 2, true, true);
177179
178180 tryCompare(drawer.anchors, "rightMargin", 0);
179181 tryCompare(launcher, "state", data.endState);
@@ -270,5 +272,42 @@ StyledItem {
270272 typeString("cam");
271273 tryCompare(searchField, "displayText", "cam");
272274 }
275+
276+ function test_kbdNavigation() {
277+ launcher.openDrawer(true);
278+ waitForRendering(launcher);
279+ waitUntilTransitionsEnd(launcher);
280+ compare(launcher.lastSelectedApplication, "");
281+
282+ var drawer = findChild(launcher, "drawer");
283+ var searchField = findChild(drawer, "searchField");
284+ var sections = findChild(drawer, "drawerSections");
285+ var header = findChild(drawer, "headerFocusScope");
286+ var listLoader = findChild(drawer, "drawerListLoader");
287+
288+ tryCompare(searchField, "activeFocus", true);
289+ // for some reason, even when the searchField has activeFocus already,
290+ // it won't react on key down events if they're coming in too early...
291+ // let's repeat the press for a bit before giving up
292+ tryCompareFunction(function() {
293+ wait(10)
294+ keyClick(Qt.Key_Down);
295+ return sections.activeFocus;
296+ }, true)
297+
298+ keyClick(Qt.Key_Down);
299+ tryCompare(header, "activeFocus", true);
300+
301+ keyClick(Qt.Key_Down);
302+ tryCompare(listLoader, "activeFocus", true);
303+
304+ keyClick(Qt.Key_Down);
305+ keyClick(Qt.Key_Left);
306+ tryCompare(listLoader, "activeFocus", true);
307+
308+ keyClick(Qt.Key_Enter);
309+
310+ compare(launcher.lastSelectedApplication, "calendar-app");
311+ }
273312 }
274313}