summaryrefslogtreecommitdiffstats
path: root/devtools/client/inspector/test/browser_inspector_pane-toggle-05.js
blob: 2a0c8203754ac0c969377f34950466dfc5bae864 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
/* vim: set ft=javascript ts=2 et sw=2 tw=80: */
/* Any copyright is dedicated to the Public Domain.
   http://creativecommons.org/publicdomain/zero/1.0/ */
"use strict";

/**
* Test the keyboard navigation for the pane toggle using
* space and enter
*/

add_task(function* () {
  let {inspector} = yield openInspectorForURL("about:blank", "side");
  let panel = inspector.panelDoc.querySelector("#inspector-splitter-box .controlled");

  let button = inspector.panelDoc.querySelector(".sidebar-toggle");

  ok(!panel.classList.contains("pane-collapsed"), "The panel is in expanded state");

  yield togglePane(button, "Press on the toggle button", panel, "VK_RETURN");
  ok(panel.classList.contains("pane-collapsed"), "The panel is in collapsed state");

  yield togglePane(button, "Press on the toggle button to expand the panel again",
    panel, "VK_SPACE");
  ok(!panel.classList.contains("pane-collapsed"), "The panel is in expanded state");
});

function* togglePane(button, message, panel, keycode) {
  let onTransitionEnd = once(panel, "transitionend");
  info(message);
  button.focus();
  EventUtils.synthesizeKey(keycode, {});
  yield onTransitionEnd;
}