Source code

Revision control

Copy as Markdown

Other Tools

Test Info:

/* Any copyright is dedicated to the Public Domain.
"use strict";
const WIDGETS_SYSTEM_PREF =
"browser.newtabpage.activity-stream.widgets.system.enabled";
const WIDGETS_PREF = "browser.newtabpage.activity-stream.widgets.enabled";
const LISTS_SYSTEM_PREF =
"browser.newtabpage.activity-stream.widgets.system.lists.enabled";
const LISTS_PREF = "browser.newtabpage.activity-stream.widgets.lists.enabled";
const TIMER_SYSTEM_PREF =
"browser.newtabpage.activity-stream.widgets.system.focusTimer.enabled";
const TIMER_PREF =
"browser.newtabpage.activity-stream.widgets.focusTimer.enabled";
add_setup(async function () {
await SpecialPowers.pushPrefEnv({
set: [
["browser.settings-redesign.enabled", true],
// Opening preferences initializes FxA code which sets this pref.
// Track it to avoid test warnings.
["identity.fxaccounts.account.device.name", ""],
],
});
});
add_task(async function test_widgets_parent_toggle_visibility() {
await SpecialPowers.pushPrefEnv({
set: [[WIDGETS_SYSTEM_PREF, false]],
});
let { win, tab } = await openHomePreferences();
let widgetsWrapper = getSettingControl("widgets", win);
ok(
!widgetsWrapper || BrowserTestUtils.isHidden(widgetsWrapper),
"Widgets control is hidden when system pref is false"
);
BrowserTestUtils.removeTab(tab);
await SpecialPowers.pushPrefEnv({
set: [
[WIDGETS_SYSTEM_PREF, true],
[WIDGETS_PREF, true],
],
});
({ win, tab } = await openHomePreferences());
widgetsWrapper = await settingControlRenders("widgets", win);
ok(widgetsWrapper, "Widgets control exists when system pref is true");
ok(
BrowserTestUtils.isVisible(widgetsWrapper),
"Widgets control is visible when system pref is true"
);
let widgetsControl = await settingControlRenders("widgets", win);
let toggle = widgetsControl.querySelector("moz-toggle");
ok(toggle, "Widgets toggle exists");
ok(toggle.pressed, "Widgets toggle is checked");
BrowserTestUtils.removeTab(tab);
});
add_task(async function test_widgets_lists_toggle() {
await SpecialPowers.pushPrefEnv({
set: [
[WIDGETS_SYSTEM_PREF, true],
[WIDGETS_PREF, true],
[LISTS_SYSTEM_PREF, false],
],
});
let { win, tab } = await openHomePreferences();
let listsWrapper = getSettingControl("lists", win);
ok(
!listsWrapper || BrowserTestUtils.isHidden(listsWrapper),
"Lists control is hidden when system pref is false"
);
BrowserTestUtils.removeTab(tab);
await SpecialPowers.pushPrefEnv({
set: [
[LISTS_SYSTEM_PREF, true],
[LISTS_PREF, true],
],
});
({ win, tab } = await openHomePreferences());
listsWrapper = await settingControlRenders("lists", win);
ok(listsWrapper, "Lists control exists when system pref is true");
ok(
BrowserTestUtils.isVisible(listsWrapper),
"Lists control is visible when system pref is true"
);
let listsControl = await settingControlRenders("lists", win);
let checkbox = listsControl.controlEl;
ok(checkbox, "Lists checkbox control exists");
ok(checkbox.checked, "Lists checkbox is initially checked");
let prefChanged = waitForPrefChange(LISTS_PREF, false);
checkbox.click();
await prefChanged;
await waitForCheckboxState(checkbox, false);
ok(!Services.prefs.getBoolPref(LISTS_PREF), "Lists pref is now false");
ok(!checkbox.checked, "Lists checkbox is now unchecked");
prefChanged = waitForPrefChange(LISTS_PREF, true);
checkbox.click();
await prefChanged;
await waitForCheckboxState(checkbox, true);
ok(Services.prefs.getBoolPref(LISTS_PREF), "Lists pref is now true");
ok(checkbox.checked, "Lists checkbox is now checked");
BrowserTestUtils.removeTab(tab);
});
add_task(async function test_widgets_timer_toggle() {
await SpecialPowers.pushPrefEnv({
set: [
[WIDGETS_SYSTEM_PREF, true],
[WIDGETS_PREF, true],
[TIMER_SYSTEM_PREF, false],
],
});
let { win, tab } = await openHomePreferences();
let timerWrapper = getSettingControl("timer", win);
ok(
!timerWrapper || BrowserTestUtils.isHidden(timerWrapper),
"Timer control is hidden when system pref is false"
);
BrowserTestUtils.removeTab(tab);
await SpecialPowers.pushPrefEnv({
set: [
[TIMER_SYSTEM_PREF, true],
[TIMER_PREF, true],
],
});
({ win, tab } = await openHomePreferences());
timerWrapper = await settingControlRenders("timer", win);
ok(timerWrapper, "Timer control exists when system pref is true");
ok(
BrowserTestUtils.isVisible(timerWrapper),
"Timer control is visible when system pref is true"
);
let timerControl = await settingControlRenders("timer", win);
let checkbox = timerControl.controlEl;
ok(checkbox, "Timer checkbox control exists");
ok(checkbox.checked, "Timer checkbox is initially checked");
let prefChanged = waitForPrefChange(TIMER_PREF, false);
checkbox.click();
await prefChanged;
await waitForCheckboxState(checkbox, false);
ok(!Services.prefs.getBoolPref(TIMER_PREF), "Timer pref is now false");
ok(!checkbox.checked, "Timer checkbox is now unchecked");
prefChanged = waitForPrefChange(TIMER_PREF, true);
checkbox.click();
await prefChanged;
await waitForCheckboxState(checkbox, true);
ok(Services.prefs.getBoolPref(TIMER_PREF), "Timer pref is now true");
ok(checkbox.checked, "Timer checkbox is now checked");
BrowserTestUtils.removeTab(tab);
});