Source code

Revision control

Copy as Markdown

Other Tools

Test Info:

/* Any copyright is dedicated to the Public Domain.
"use strict";
const HOMEPAGE_PREF = "browser.startup.homepage";
const NEWTAB_ENABLED_PREF = "browser.newtabpage.enabled";
const DEFAULT_HOMEPAGE_URL = "about:home";
add_setup(async function () {
await SpecialPowers.pushPrefEnv({
set: [
["browser.settings-redesign.enabled", true],
["identity.fxaccounts.account.device.name", ""],
],
});
});
add_task(
async function test_restore_defaults_button_enabled_when_newtab_changed() {
await SpecialPowers.pushPrefEnv({
set: [
[HOMEPAGE_PREF, DEFAULT_HOMEPAGE_URL],
[NEWTAB_ENABLED_PREF, false],
],
});
let { win, tab } = await openHomePreferences();
let restoreDefaultsControl = await settingControlRenders(
"homepageRestoreDefaults",
win
);
let button = restoreDefaultsControl.controlEl;
ok(
!button.disabled,
"Restore defaults button is enabled when new tab setting is changed"
);
await BrowserTestUtils.removeTab(tab);
}
);
add_task(async function test_restore_defaults_button_resets_both_settings() {
await SpecialPowers.pushPrefEnv({
set: [
[HOMEPAGE_PREF, "https://example.com"],
[NEWTAB_ENABLED_PREF, false],
],
});
let { win, tab } = await openHomePreferences();
let restoreDefaultsControl = await settingControlRenders(
"homepageRestoreDefaults",
win
);
let button = restoreDefaultsControl.controlEl;
ok(!button.disabled, "Restore defaults button is initially enabled");
button.click();
await TestUtils.waitForCondition(
() =>
Services.prefs.getStringPref(HOMEPAGE_PREF) === DEFAULT_HOMEPAGE_URL &&
Services.prefs.getBoolPref(NEWTAB_ENABLED_PREF) === true,
"Wait for prefs to be reset to defaults"
);
is(
Services.prefs.getStringPref(HOMEPAGE_PREF),
DEFAULT_HOMEPAGE_URL,
"Homepage pref reset to default"
);
is(
Services.prefs.getBoolPref(NEWTAB_ENABLED_PREF),
true,
"New tab pref reset to default"
);
await TestUtils.waitForCondition(
() => button.disabled,
"Wait for button to become disabled"
);
ok(
button.disabled,
"Restore defaults button is disabled after resetting to defaults"
);
let homepageNewWindowsControl = await settingControlRenders(
"homepageNewWindows",
win
);
let select = homepageNewWindowsControl.controlEl;
let nativeSelect = select.inputEl;
is(
nativeSelect.value,
"home",
"Homepage dropdown reset to 'home' after restore"
);
let homepageNewTabsControl = await settingControlRenders(
"homepageNewTabs",
win
);
let newTabsSelect = homepageNewTabsControl.controlEl;
let newTabsNativeSelect = newTabsSelect.inputEl;
is(
newTabsNativeSelect.value,
"true",
"New tabs dropdown reset to 'true' after restore"
);
await BrowserTestUtils.removeTab(tab);
});