summaryrefslogtreecommitdiffstats
path: root/browser/base/content/test/about/browser_aboutNewTab_bookmarksToolbarPrefs.js
blob: 76f603a02541584a11e2c984ff41b209abf98f17 (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
75
76
77
78
79
80
81
82
83
84
85
86
87
88
/* 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 bookmarksFeatureStates = [
    ["browser.toolbars.bookmarks.2h2020", true],
    ["browser.toolbars.bookmarks.2h2020", false],
  ];
  let bookmarksToolbarVisibilityStates = [
    ["browser.toolbars.bookmarks.visibility", "newtab"],
    ["browser.toolbars.bookmarks.visibility", "always"],
    ["browser.toolbars.bookmarks.visibility", "never"],
  ];
  for (let featureState of bookmarksFeatureStates) {
    for (let visibilityState of bookmarksToolbarVisibilityStates) {
      await SpecialPowers.pushPrefEnv({
        set: [featureState, visibilityState],
      });

      for (let privateWin of [true, false]) {
        info(
          `Testing with ${featureState} and ${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,
          });
        }

        if (featureState[1]) {
          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],
          });
        } else {
          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: "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);
      }
    }
  }
});