michael@0: /* Any copyright is dedicated to the Public Domain. michael@0: http://creativecommons.org/publicdomain/zero/1.0/ */ michael@0: michael@0: /** michael@0: * Tests if keyboard and mouse navigation works in the network requests menu. michael@0: */ michael@0: michael@0: function test() { michael@0: initNetMonitor(CUSTOM_GET_URL).then(([aTab, aDebuggee, aMonitor]) => { michael@0: info("Starting test... "); michael@0: michael@0: // It seems that this test may be slow on Ubuntu builds running on ec2. michael@0: requestLongerTimeout(2); michael@0: michael@0: let { window, $, NetMonitorView } = aMonitor.panelWin; michael@0: let { RequestsMenu } = NetMonitorView; michael@0: michael@0: RequestsMenu.lazyUpdate = false; michael@0: michael@0: waitForNetworkEvents(aMonitor, 2).then(() => { michael@0: check(-1, false); michael@0: michael@0: EventUtils.sendKey("DOWN", window); michael@0: check(0, true); michael@0: EventUtils.sendKey("UP", window); michael@0: check(0, true); michael@0: michael@0: EventUtils.sendKey("PAGE_DOWN", window); michael@0: check(1, true); michael@0: EventUtils.sendKey("PAGE_UP", window); michael@0: check(0, true); michael@0: michael@0: EventUtils.sendKey("END", window); michael@0: check(1, true); michael@0: EventUtils.sendKey("HOME", window); michael@0: check(0, true); michael@0: michael@0: aDebuggee.performRequests(18); michael@0: return waitForNetworkEvents(aMonitor, 18); michael@0: }) michael@0: .then(() => { michael@0: EventUtils.sendKey("DOWN", window); michael@0: check(1, true); michael@0: EventUtils.sendKey("DOWN", window); michael@0: check(2, true); michael@0: EventUtils.sendKey("UP", window); michael@0: check(1, true); michael@0: EventUtils.sendKey("UP", window); michael@0: check(0, true); michael@0: michael@0: EventUtils.sendKey("PAGE_DOWN", window); michael@0: check(4, true); michael@0: EventUtils.sendKey("PAGE_DOWN", window); michael@0: check(8, true); michael@0: EventUtils.sendKey("PAGE_UP", window); michael@0: check(4, true); michael@0: EventUtils.sendKey("PAGE_UP", window); michael@0: check(0, true); michael@0: michael@0: EventUtils.sendKey("HOME", window); michael@0: check(0, true); michael@0: EventUtils.sendKey("HOME", window); michael@0: check(0, true); michael@0: EventUtils.sendKey("PAGE_UP", window); michael@0: check(0, true); michael@0: EventUtils.sendKey("HOME", window); michael@0: check(0, true); michael@0: michael@0: EventUtils.sendKey("END", window); michael@0: check(19, true); michael@0: EventUtils.sendKey("END", window); michael@0: check(19, true); michael@0: EventUtils.sendKey("PAGE_DOWN", window); michael@0: check(19, true); michael@0: EventUtils.sendKey("END", window); michael@0: check(19, true); michael@0: michael@0: EventUtils.sendKey("PAGE_UP", window); michael@0: check(15, true); michael@0: EventUtils.sendKey("PAGE_UP", window); michael@0: check(11, true); michael@0: EventUtils.sendKey("UP", window); michael@0: check(10, true); michael@0: EventUtils.sendKey("UP", window); michael@0: check(9, true); michael@0: EventUtils.sendKey("PAGE_DOWN", window); michael@0: check(13, true); michael@0: EventUtils.sendKey("PAGE_DOWN", window); michael@0: check(17, true); michael@0: EventUtils.sendKey("PAGE_DOWN", window); michael@0: check(19, true); michael@0: EventUtils.sendKey("PAGE_DOWN", window); michael@0: check(19, true); michael@0: michael@0: EventUtils.sendKey("HOME", window); michael@0: check(0, true); michael@0: EventUtils.sendKey("DOWN", window); michael@0: check(1, true); michael@0: EventUtils.sendKey("END", window); michael@0: check(19, true); michael@0: EventUtils.sendKey("DOWN", window); michael@0: check(19, true); michael@0: michael@0: EventUtils.sendMouseEvent({ type: "mousedown" }, $("#details-pane-toggle")); michael@0: check(-1, false); michael@0: michael@0: EventUtils.sendMouseEvent({ type: "mousedown" }, $(".side-menu-widget-item")); michael@0: check(0, true); michael@0: michael@0: teardown(aMonitor).then(finish); michael@0: }); michael@0: michael@0: let count = 0; michael@0: michael@0: function check(aSelectedIndex, aPaneVisibility) { michael@0: info("Performing check " + (count++) + "."); michael@0: michael@0: is(RequestsMenu.selectedIndex, aSelectedIndex, michael@0: "The selected item in the requests menu was incorrect."); michael@0: is(NetMonitorView.detailsPaneHidden, !aPaneVisibility, michael@0: "The network requests details pane visibility state was incorrect."); michael@0: } michael@0: michael@0: aDebuggee.performRequests(2); michael@0: }); michael@0: }