summaryrefslogtreecommitdiffstats
path: root/toolkit/content/tests/browser/browser_charsetMenu_swapBrowsers.js
blob: 8eda01de8e08d6a621a85d827c635a87d2b40019 (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
/* Test that the charset menu is properly enabled when swapping browsers. */
add_task(async function test() {
  // NB: This test cheats and calls updateCharacterEncodingMenuState directly
  // instead of opening the "View" menu.
  function charsetMenuEnabled() {
    updateCharacterEncodingMenuState();
    return !document.getElementById("charsetMenu").hasAttribute("disabled");
  }

  const PAGE = "data:text/html,<!DOCTYPE html><body>hello";
  let tab1 = await BrowserTestUtils.openNewForegroundTab({
    gBrowser,
    url: PAGE,
  });
  ok(charsetMenuEnabled(), "should have a charset menu here");

  let tab2 = await BrowserTestUtils.openNewForegroundTab({ gBrowser });
  ok(!charsetMenuEnabled(), "about:blank shouldn't have a charset menu");

  await BrowserTestUtils.switchTab(gBrowser, tab1);

  let swapped = BrowserTestUtils.waitForEvent(
    tab2.linkedBrowser,
    "SwapDocShells"
  );

  // NB: Closes tab1.
  gBrowser.swapBrowsersAndCloseOther(tab2, tab1);
  await swapped;

  ok(charsetMenuEnabled(), "should have a charset after the swap");

  BrowserTestUtils.removeTab(tab2);
});