summaryrefslogtreecommitdiffstats
path: root/browser/components/sessionstore/test/browser_duplicate_tab_in_new_window.js
blob: b3e5bfcdba164d408fbfcbc0f38f9d946be95a07 (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
ChromeUtils.defineESModuleGetters(this, {
  SessionStore: "resource:///modules/sessionstore/SessionStore.sys.mjs",
});

add_task(async function () {
  await BrowserTestUtils.withNewTab(
    "https://example.com",
    async function (aBrowser) {
      BrowserTestUtils.loadURIString(aBrowser, "https://example.org");
      await BrowserTestUtils.browserLoaded(aBrowser);

      let windowOpened = BrowserTestUtils.waitForNewWindow(
        "https://example.org"
      );
      let newWindow = gBrowser.replaceTabWithWindow(
        gBrowser.getTabForBrowser(aBrowser)
      );
      await windowOpened;
      let newTab = SessionStore.duplicateTab(
        newWindow,
        newWindow.gBrowser.selectedTab
      );

      await BrowserTestUtils.browserLoaded(newTab.linkedBrowser);

      await SpecialPowers.spawn(
        newTab.linkedBrowser,
        ["https://example.org"],
        async ORIGIN => {
          is(content.window.origin, ORIGIN);
        }
      );

      BrowserTestUtils.closeWindow(newWindow);
    }
  );
});