summaryrefslogtreecommitdiffstats
path: root/browser/base/content/test/tabs/browser_switch_by_scrolling.js
blob: 7d62234d7fe8ae3bc184c730739258eb6fb77f4d (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
/* Any copyright is dedicated to the Public Domain.
   http://creativecommons.org/publicdomain/zero/1.0/ */

"use strict";

add_task(async function wheel_switches_tabs() {
  Services.prefs.setBoolPref("toolkit.tabbox.switchByScrolling", true);

  let newTab = await BrowserTestUtils.openNewForegroundTab(
    gBrowser,
    "about:blank"
  );
  await BrowserTestUtils.switchTab(gBrowser, () => {
    EventUtils.synthesizeWheel(newTab, 4, 4, {
      deltaMode: WheelEvent.DOM_DELTA_LINE,
      deltaY: -1.0,
    });
  });
  ok(!newTab.selected, "New tab should no longer be selected.");
  BrowserTestUtils.removeTab(newTab);
});

add_task(async function wheel_switches_tabs_overflow() {
  Services.prefs.setBoolPref("toolkit.tabbox.switchByScrolling", true);

  let arrowScrollbox = gBrowser.tabContainer.arrowScrollbox;
  let tabs = [];

  while (!arrowScrollbox.hasAttribute("overflowing")) {
    tabs.push(
      await BrowserTestUtils.openNewForegroundTab(gBrowser, "about:blank")
    );
  }

  let newTab = await BrowserTestUtils.openNewForegroundTab(
    gBrowser,
    "about:blank"
  );
  await BrowserTestUtils.switchTab(gBrowser, () => {
    EventUtils.synthesizeWheel(newTab, 4, 4, {
      deltaMode: WheelEvent.DOM_DELTA_LINE,
      deltaY: -1.0,
    });
  });
  ok(!newTab.selected, "New tab should no longer be selected.");

  BrowserTestUtils.removeTab(newTab);
  for (let tab of tabs) {
    BrowserTestUtils.removeTab(tab);
  }
});