Source code

Revision control

Copy as Markdown

Other Tools

Test Info:

/* 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";
const PREF_NEW_TAB_ON_RESTORE = "browser.sessionstore.newTabOnRestore";
const PREF_SHOW_SETTING = "browser.sessionstore.newTabOnRestore.showSetting";
const PREF_STARTUP_PAGE = "browser.startup.page";
afterEach(async function () {
await SpecialPowers.popPrefEnv();
});
add_task(async function test_checkbox_hidden_when_showSetting_false() {
await SpecialPowers.pushPrefEnv({
set: [[PREF_SHOW_SETTING, false]],
});
let tab = await openPrefsTab("general");
let doc = tab.linkedBrowser.contentDocument;
let settingControl = doc.querySelector(
"#setting-control-sessionRestoreNewTab"
);
Assert.ok(
!settingControl || settingControl.hidden,
"Checkbox hidden when showSetting is false"
);
BrowserTestUtils.removeTab(tab);
});
add_task(async function test_checkbox_visible_when_showSetting_true() {
await SpecialPowers.pushPrefEnv({
set: [
[PREF_SHOW_SETTING, true],
[PREF_STARTUP_PAGE, 3],
],
});
let tab = await openPrefsTab("general");
let doc = tab.linkedBrowser.contentDocument;
let settingControl = doc.querySelector(
"#setting-control-sessionRestoreNewTab"
);
Assert.ok(
settingControl,
"Setting control rendered when showSetting is true"
);
Assert.ok(
!settingControl.hidden,
"Setting control visible when showSetting is true"
);
BrowserTestUtils.removeTab(tab);
});
add_task(async function test_checkbox_disabled_when_startup_page_not_restore() {
await SpecialPowers.pushPrefEnv({
set: [
[PREF_SHOW_SETTING, true],
[PREF_STARTUP_PAGE, 1],
],
});
let tab = await openPrefsTab("general");
let doc = tab.linkedBrowser.contentDocument;
let checkbox = doc.querySelector("#sessionRestoreNewTab");
Assert.ok(checkbox, "Checkbox rendered when showSetting is true");
Assert.ok(checkbox.disabled, "Checkbox disabled when startup page is not 3");
BrowserTestUtils.removeTab(tab);
});
add_task(async function test_checkbox_toggles_pref() {
await SpecialPowers.pushPrefEnv({
set: [
[PREF_SHOW_SETTING, true],
[PREF_NEW_TAB_ON_RESTORE, false],
[PREF_STARTUP_PAGE, 3],
],
});
let tab = await openPrefsTab("general");
let doc = tab.linkedBrowser.contentDocument;
let checkbox = doc.querySelector("#sessionRestoreNewTab");
Assert.ok(checkbox, "Checkbox exists");
Assert.ok(!checkbox.disabled, "Checkbox enabled when startup page is 3");
let prefChanged = TestUtils.waitForPrefChange(PREF_NEW_TAB_ON_RESTORE);
checkbox.click();
await prefChanged;
Assert.ok(
Services.prefs.getBoolPref(PREF_NEW_TAB_ON_RESTORE),
"Pref toggled to true"
);
prefChanged = TestUtils.waitForPrefChange(PREF_NEW_TAB_ON_RESTORE);
checkbox.click();
await prefChanged;
Assert.ok(
!Services.prefs.getBoolPref(PREF_NEW_TAB_ON_RESTORE),
"Pref toggled back to false"
);
BrowserTestUtils.removeTab(tab);
});