summaryrefslogtreecommitdiffstats
path: root/browser/components/customizableui/test/browser_history_restore_session.js
blob: a8b952920979ebfec13ba00fa2530fc3e090bb99 (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
52
/* This Source Code Form is subject to the terms of the Mozilla Public
 * License, v. 2.0. If a copy of the MPL was not distributed with this
 * file, You can obtain one at http://mozilla.org/MPL/2.0/. */

"use strict";

add_task(async function testRestoreSession() {
  info("Check history panel's restore previous session button");

  let win = await BrowserTestUtils.openNewBrowserWindow();
  CustomizableUI.addWidgetToArea(
    "history-panelmenu",
    CustomizableUI.AREA_FIXED_OVERFLOW_PANEL
  );
  registerCleanupFunction(() => CustomizableUI.reset());

  // We need to make sure the history is cleared before starting the test
  await Sanitizer.sanitize(["history"]);

  await openHistoryPanel(win.document);

  let restorePrevSessionBtn = win.document.getElementById(
    "appMenu-restoreSession"
  );

  Assert.ok(
    restorePrevSessionBtn.hidden,
    "Restore previous session button is not visible"
  );
  await hideHistoryPanel(win.document);

  BrowserTestUtils.addTab(win.gBrowser, "about:mozilla");
  await BrowserTestUtils.closeWindow(win);

  win = await BrowserTestUtils.openNewBrowserWindow();

  let lastSession = ChromeUtils.importESModule(
    "resource:///modules/sessionstore/SessionStore.sys.mjs"
  )._LastSession;
  lastSession.setState(true);

  await openHistoryPanel(win.document);

  restorePrevSessionBtn = win.document.getElementById("appMenu-restoreSession");
  Assert.ok(
    !restorePrevSessionBtn.hidden,
    "Restore previous session button is visible"
  );

  await hideHistoryPanel(win.document);
  await BrowserTestUtils.closeWindow(win);
});