tor-browser

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

browser_scroll-to-text-fragment-from-window-open.js (2013B)


      1 "use strict";
      2 
      3 add_setup(async function () {
      4  await SpecialPowers.pushPrefEnv({
      5    set: [
      6      ["test.wait300msAfterTabSwitch", true],
      7      // Enable popup blocker
      8      ["dom.disable_open_during_load", true],
      9    ],
     10  });
     11 });
     12 
     13 /** Test for Bug 1901139 */
     14 
     15 add_task(async function () {
     16  await BrowserTestUtils.withNewTab(
     17    {
     18      gBrowser,
     19      url: `http://mochi.test:8888/browser/browser/base/content/test/scroll-to-text-fragment/dummy_page.html`,
     20    },
     21    async function (browser) {
     22      const url =
     23        "https://example.org/browser/browser/base/content/test/scroll-to-text-fragment/scroll-to-text-fragment-from-browser-chrome-target.html#:~:text=This%20is%20the%20text%20fragment%20to%20scroll%20to";
     24      await SpecialPowers.spawn(browser, [url], aUrl => {
     25        let container = content.document.createElement("div");
     26        container.innerHTML = `<button id='button' onclick='window.open("${aUrl}", "_blank", "noopener");'>Click here</button>`;
     27        content.document.documentElement.appendChild(container);
     28      });
     29 
     30      let newTabPromise = BrowserTestUtils.waitForNewTab(gBrowser, null, true);
     31      info("Trigger click event and wait for new tab opened.");
     32      BrowserTestUtils.synthesizeMouseAtCenter("#button", {}, browser);
     33      let newTab = await newTabPromise;
     34 
     35      info("New tab is opened.");
     36      ok(
     37        await SpecialPowers.spawn(newTab.linkedBrowser, [], () => {
     38          let element = content.document.getElementById("target");
     39          let rect = element.getBoundingClientRect();
     40          return (
     41            rect.top >= 0 &&
     42            rect.top <= content.window.innerHeight &&
     43            rect.left >= 0 &&
     44            rect.left <= content.window.innerWidth
     45          );
     46        }),
     47        "check if new tab scrolled to right position"
     48      );
     49 
     50      info("Close opened new tab.");
     51      let tabClosedPromise = BrowserTestUtils.waitForTabClosing(newTab);
     52      await BrowserTestUtils.removeTab(newTab);
     53      await tabClosedPromise;
     54    }
     55  );
     56 });