Backed out changeset b71c8c052463 (bug 1943846) for causing mass failures. CLOSED...
[gecko.git] / devtools / client / netmonitor / test / browser_net_tabbar_focus.js
blob3bcc7c0ca10c5be9aa76e98cd75f6532a145baef
1 /* Any copyright is dedicated to the Public Domain.
2 http://creativecommons.org/publicdomain/zero/1.0/ */
4 "use strict";
6 /**
7 * Tests if selecting a tab in a tab bar makes it visible
8 */
9 add_task(async function () {
10 Services.prefs.clearUserPref(
11 "devtools.netmonitor.panes-network-details-width"
14 const { tab, monitor } = await initNetMonitor(SIMPLE_URL, {
15 requestCount: 1,
16 });
17 info("Starting test... ");
19 const { document, store, windowRequire } = monitor.panelWin;
20 const topMostDocument = DevToolsUtils.getTopWindow(
21 document.defaultView
22 ).document;
23 const Actions = windowRequire("devtools/client/netmonitor/src/actions/index");
25 const networkEvent = waitForNetworkEvents(monitor, 1);
26 tab.linkedBrowser.reload();
27 await networkEvent;
29 store.dispatch(Actions.toggleNetworkDetails());
31 const splitter = document.querySelector(".splitter");
33 await EventUtils.synthesizeMouse(
34 splitter,
37 { type: "mousedown" },
38 monitor.panelWin
40 await EventUtils.synthesizeMouse(
41 splitter,
42 300,
44 { type: "mousemove" },
45 monitor.panelWin
47 await EventUtils.synthesizeMouse(
48 splitter,
49 300,
51 { type: "mouseup" },
52 monitor.panelWin
55 await waitUntil(() => document.querySelector(".all-tabs-menu"));
56 const allTabsMenu = document.querySelector(".all-tabs-menu");
57 const panelsWidth = document.querySelector(".tabs-menu").offsetWidth;
59 const selectTabFromTabsMenuButton = async id => {
60 EventUtils.sendMouseEvent({ type: "click" }, allTabsMenu);
61 const tabMenuElement = topMostDocument.querySelector(
62 `#devtools-sidebar-${id}`
64 if (tabMenuElement != null) {
65 tabMenuElement.click();
66 // The tab should be visible within the panel
67 const tabLi = document.querySelector(`#${id}-tab`).parentElement;
68 const ulScrollPos =
69 tabLi.parentElement.scrollLeft + tabLi.parentElement.offsetLeft;
70 ok(
71 tabLi.offsetLeft >= ulScrollPos &&
72 tabLi.offsetLeft + tabLi.offsetWidth <= panelsWidth + ulScrollPos,
73 `The ${id} tab is visible`
78 for (const elem of [
79 "headers",
80 "cookies",
81 "request",
82 "response",
83 "timings",
84 "security",
85 ]) {
86 await selectTabFromTabsMenuButton(elem);
89 await teardown(monitor);
90 });