summaryrefslogtreecommitdiffstats
path: root/browser/base/content/test/about/browser_aboutNewTab_bookmarksToolbarPrefs.js
blob: e9f7768bebf53b5458167a6622a653a38ca33821 (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
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
/* Any copyright is dedicated to the Public Domain.
 * http://creativecommons.org/publicdomain/zero/1.0/ */

"use strict";

requestLongerTimeout(3);

add_task(async function test_with_different_pref_states() {
  // [prefName, prefValue, toolbarVisibleExampleCom, toolbarVisibleNewTab]
  let bookmarksToolbarVisibilityStates = [
    ["browser.toolbars.bookmarks.visibility", "newtab"],
    ["browser.toolbars.bookmarks.visibility", "always"],
    ["browser.toolbars.bookmarks.visibility", "never"],
  ];
  for (let visibilityState of bookmarksToolbarVisibilityStates) {
    await SpecialPowers.pushPrefEnv({
      set: [visibilityState],
    });

    for (let privateWin of [true, false]) {
      info(
        `Testing with ${visibilityState} in a ${
          privateWin ? "private" : "non-private"
        } window`
      );
      let win = await BrowserTestUtils.openNewBrowserWindow({
        private: privateWin,
      });
      is(
        win.gBrowser.currentURI.spec,
        privateWin ? "about:privatebrowsing" : "about:blank",
        "Expecting about:privatebrowsing or about:blank as URI of new window"
      );

      if (!privateWin) {
        await waitForBookmarksToolbarVisibility({
          win,
          visible: visibilityState[1] == "always",
          message:
            "Toolbar should be visible only if visibilityState is 'always'. State: " +
            visibilityState[1],
        });
        await BrowserTestUtils.openNewForegroundTab({
          gBrowser: win.gBrowser,
          opening: "about:newtab",
          waitForLoad: false,
        });
      }

      await waitForBookmarksToolbarVisibility({
        win,
        visible:
          visibilityState[1] == "newtab" || visibilityState[1] == "always",
        message:
          "Toolbar should be visible as long as visibilityState isn't set to 'never'. State: " +
          visibilityState[1],
      });

      await BrowserTestUtils.openNewForegroundTab({
        gBrowser: win.gBrowser,
        // eslint-disable-next-line @microsoft/sdl/no-insecure-url
        opening: "http://example.com",
      });
      await waitForBookmarksToolbarVisibility({
        win,
        visible: visibilityState[1] == "always",
        message:
          "Toolbar should be visible only if visibilityState is 'always'. State: " +
          visibilityState[1],
      });
      await BrowserTestUtils.closeWindow(win);
    }
  }
});