summaryrefslogtreecommitdiffstats
path: root/devtools/client/netmonitor/test/browser_net_accessibility-02.js
blob: 33420a4401d2ee904401fb6780f01100362e247a (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
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
/* Any copyright is dedicated to the Public Domain.
   http://creativecommons.org/publicdomain/zero/1.0/ */

"use strict";

/**
 * Tests if keyboard and mouse navigation works in the network requests menu.
 */

add_task(function* () {
  let { tab, monitor } = yield initNetMonitor(CUSTOM_GET_URL);
  info("Starting test... ");

  // It seems that this test may be slow on Ubuntu builds running on ec2.
  requestLongerTimeout(2);

  let { window, $, NetMonitorView } = monitor.panelWin;
  let { RequestsMenu } = NetMonitorView;

  RequestsMenu.lazyUpdate = false;

  let count = 0;
  function check(selectedIndex, paneVisibility) {
    info("Performing check " + (count++) + ".");

    is(RequestsMenu.selectedIndex, selectedIndex,
      "The selected item in the requests menu was incorrect.");
    is(NetMonitorView.detailsPaneHidden, !paneVisibility,
      "The network requests details pane visibility state was incorrect.");
  }

  let wait = waitForNetworkEvents(monitor, 2);
  yield ContentTask.spawn(tab.linkedBrowser, {}, function* () {
    content.wrappedJSObject.performRequests(2);
  });
  yield wait;

  check(-1, false);

  EventUtils.sendKey("DOWN", window);
  check(0, true);
  EventUtils.sendKey("UP", window);
  check(0, true);

  EventUtils.sendKey("PAGE_DOWN", window);
  check(1, true);
  EventUtils.sendKey("PAGE_UP", window);
  check(0, true);

  EventUtils.sendKey("END", window);
  check(1, true);
  EventUtils.sendKey("HOME", window);
  check(0, true);

  wait = waitForNetworkEvents(monitor, 18);
  yield ContentTask.spawn(tab.linkedBrowser, {}, function* () {
    content.wrappedJSObject.performRequests(18);
  });
  yield wait;

  EventUtils.sendKey("DOWN", window);
  check(1, true);
  EventUtils.sendKey("DOWN", window);
  check(2, true);
  EventUtils.sendKey("UP", window);
  check(1, true);
  EventUtils.sendKey("UP", window);
  check(0, true);

  EventUtils.sendKey("PAGE_DOWN", window);
  check(4, true);
  EventUtils.sendKey("PAGE_DOWN", window);
  check(8, true);
  EventUtils.sendKey("PAGE_UP", window);
  check(4, true);
  EventUtils.sendKey("PAGE_UP", window);
  check(0, true);

  EventUtils.sendKey("HOME", window);
  check(0, true);
  EventUtils.sendKey("HOME", window);
  check(0, true);
  EventUtils.sendKey("PAGE_UP", window);
  check(0, true);
  EventUtils.sendKey("HOME", window);
  check(0, true);

  EventUtils.sendKey("END", window);
  check(19, true);
  EventUtils.sendKey("END", window);
  check(19, true);
  EventUtils.sendKey("PAGE_DOWN", window);
  check(19, true);
  EventUtils.sendKey("END", window);
  check(19, true);

  EventUtils.sendKey("PAGE_UP", window);
  check(15, true);
  EventUtils.sendKey("PAGE_UP", window);
  check(11, true);
  EventUtils.sendKey("UP", window);
  check(10, true);
  EventUtils.sendKey("UP", window);
  check(9, true);
  EventUtils.sendKey("PAGE_DOWN", window);
  check(13, true);
  EventUtils.sendKey("PAGE_DOWN", window);
  check(17, true);
  EventUtils.sendKey("PAGE_DOWN", window);
  check(19, true);
  EventUtils.sendKey("PAGE_DOWN", window);
  check(19, true);

  EventUtils.sendKey("HOME", window);
  check(0, true);
  EventUtils.sendKey("DOWN", window);
  check(1, true);
  EventUtils.sendKey("END", window);
  check(19, true);
  EventUtils.sendKey("DOWN", window);
  check(19, true);

  EventUtils.sendMouseEvent({ type: "mousedown" }, $("#details-pane-toggle"));
  check(-1, false);

  EventUtils.sendMouseEvent({ type: "mousedown" }, $(".side-menu-widget-item"));
  check(0, true);

  yield teardown(monitor);
});