browser_aboutNewTab_bookmarksToolbarPrefs.js (2413B)
1 /* Any copyright is dedicated to the Public Domain. 2 * http://creativecommons.org/publicdomain/zero/1.0/ */ 3 4 "use strict"; 5 6 requestLongerTimeout(3); 7 8 add_task(async function test_with_different_pref_states() { 9 // [prefName, prefValue, toolbarVisibleExampleCom, toolbarVisibleNewTab] 10 let bookmarksToolbarVisibilityStates = [ 11 ["browser.toolbars.bookmarks.visibility", "newtab"], 12 ["browser.toolbars.bookmarks.visibility", "always"], 13 ["browser.toolbars.bookmarks.visibility", "never"], 14 ]; 15 for (let visibilityState of bookmarksToolbarVisibilityStates) { 16 await SpecialPowers.pushPrefEnv({ 17 set: [visibilityState], 18 }); 19 20 for (let privateWin of [true, false]) { 21 info( 22 `Testing with ${visibilityState} in a ${ 23 privateWin ? "private" : "non-private" 24 } window` 25 ); 26 let win = await BrowserTestUtils.openNewBrowserWindow({ 27 private: privateWin, 28 }); 29 is( 30 win.gBrowser.currentURI.spec, 31 privateWin ? "about:privatebrowsing" : "about:blank", 32 "Expecting about:privatebrowsing or about:blank as URI of new window" 33 ); 34 35 if (!privateWin) { 36 await waitForBookmarksToolbarVisibility({ 37 win, 38 visible: visibilityState[1] == "always", 39 message: 40 "Toolbar should be visible only if visibilityState is 'always'. State: " + 41 visibilityState[1], 42 }); 43 await BrowserTestUtils.openNewForegroundTab({ 44 gBrowser: win.gBrowser, 45 opening: "about:newtab", 46 waitForLoad: false, 47 }); 48 } 49 50 await waitForBookmarksToolbarVisibility({ 51 win, 52 visible: 53 visibilityState[1] == "newtab" || visibilityState[1] == "always", 54 message: 55 "Toolbar should be visible as long as visibilityState isn't set to 'never'. State: " + 56 visibilityState[1], 57 }); 58 59 await BrowserTestUtils.openNewForegroundTab({ 60 gBrowser: win.gBrowser, 61 // eslint-disable-next-line @microsoft/sdl/no-insecure-url 62 opening: "http://example.com", 63 }); 64 await waitForBookmarksToolbarVisibility({ 65 win, 66 visible: visibilityState[1] == "always", 67 message: 68 "Toolbar should be visible only if visibilityState is 'always'. State: " + 69 visibilityState[1], 70 }); 71 await BrowserTestUtils.closeWindow(win); 72 } 73 } 74 });