tor-browser

The Tor Browser
git clone https://git.dasho.dev/tor-browser.git
Log | Files | Refs | README | LICENSE

browser_searchScroll.js (2005B)


      1 /* Any copyright is dedicated to the Public Domain.
      2 * http://creativecommons.org/publicdomain/zero/1.0/ */
      3 
      4 Services.scriptloader.loadSubScript(
      5  "chrome://mochitests/content/browser/gfx/layers/apz/test/mochitest/apz_test_native_event_utils.js",
      6  this
      7 );
      8 
      9 const { AddonTestUtils } = ChromeUtils.importESModule(
     10  "resource://testing-common/AddonTestUtils.sys.mjs"
     11 );
     12 const { SearchTestUtils } = ChromeUtils.importESModule(
     13  "resource://testing-common/SearchTestUtils.sys.mjs"
     14 );
     15 const { SearchUtils } = ChromeUtils.importESModule(
     16  "moz-src:///toolkit/components/search/SearchUtils.sys.mjs"
     17 );
     18 
     19 AddonTestUtils.initMochitest(this);
     20 SearchTestUtils.init(this);
     21 
     22 add_setup(async function () {
     23  await SpecialPowers.pushPrefEnv({
     24    set: [["dom.w3c_touch_events.enabled", 0]],
     25  });
     26 });
     27 
     28 add_task(async function test_scroll() {
     29  info("Open preferences page for search");
     30  await openPreferencesViaOpenPreferencesAPI("search", { leaveOpen: true });
     31 
     32  const doc = gBrowser.selectedBrowser.contentDocument;
     33  const tree = doc.querySelector("#engineList");
     34 
     35  info("Add engines to make the tree scrollable");
     36  for (let i = 0, n = parseInt(tree.getAttribute("rows")); i < n; i++) {
     37    let extension = await SearchTestUtils.installSearchExtension({
     38      id: `${i}@tests.mozilla.org`,
     39      name: `example${i}`,
     40      version: "1.0",
     41      keyword: `example${i}`,
     42    });
     43    await AddonTestUtils.waitForSearchProviderStartup(extension);
     44  }
     45 
     46  info("Make tree element move into viewport");
     47  const mainContent = doc.querySelector(".main-content");
     48  const readyForScrollIntoView = new Promise(r => {
     49    mainContent.addEventListener("scroll", r, { once: true });
     50  });
     51  tree.scrollIntoView();
     52  await readyForScrollIntoView;
     53 
     54  const previousScroll = mainContent.scrollTop;
     55 
     56  await promiseMoveMouseAndScrollWheelOver(tree, 1, 1, false);
     57 
     58  Assert.equal(
     59    previousScroll,
     60    mainContent.scrollTop,
     61    "Container element does not scroll"
     62  );
     63 
     64  info("Clean up");
     65  gBrowser.removeCurrentTab();
     66 });