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_children_disabled_when_parent_disabled() {
await SpecialPowers.pushPrefEnv({
set: [
[WIDGETS_SYSTEM_PREF, true],
[WIDGETS_PREF, false],
[LISTS_SYSTEM_PREF, true],
[TIMER_SYSTEM_PREF, true],
],
});
let { win, tab } = await openHomePreferences();
let widgetsControl = await settingControlRenders("widgets", win);
let toggle = widgetsControl.controlEl;
await toggle.updateComplete;
ok(!toggle.pressed, "Widgets toggle is unchecked");
// Child controls (lists and timer) should remain visible but be disabled
let listsWrapper = await settingControlRenders("lists", win);
let timerWrapper = await settingControlRenders("timer", win);
ok(listsWrapper, "Lists control exists");
ok(timerWrapper, "Timer control exists");
let listsCheckbox = listsWrapper.controlEl;
let timerCheckbox = timerWrapper.controlEl;
ok(
listsCheckbox.disabled || listsCheckbox.parentDisabled,
"Lists control is disabled when widgets parent is disabled"
);
ok(
timerCheckbox.disabled || timerCheckbox.parentDisabled,
"Timer control is disabled when widgets parent is disabled"
);
BrowserTestUtils.removeTab(tab);
});
add_task(async function test_widgets_children_enabled_when_parent_enabled() {
await SpecialPowers.pushPrefEnv({
set: [
[WIDGETS_SYSTEM_PREF, true],
[WIDGETS_PREF, true],
[LISTS_SYSTEM_PREF, true],
[LISTS_PREF, true],
[TIMER_SYSTEM_PREF, true],
[TIMER_PREF, true],
],
});
let { win, tab } = await openHomePreferences();
let widgetsControl = await settingControlRenders("widgets", win);
let toggle = widgetsControl.controlEl;
await toggle.updateComplete;
ok(toggle.pressed, "Widgets toggle is checked");
// Child controls (lists and timer) should be enabled
let listsWrapper = await settingControlRenders("lists", win);
let timerWrapper = await settingControlRenders("timer", win);
ok(listsWrapper, "Lists control exists");
ok(timerWrapper, "Timer control exists");
let listsCheckbox = listsWrapper.controlEl;
let timerCheckbox = timerWrapper.controlEl;
ok(
!listsCheckbox.disabled && !listsCheckbox.parentDisabled,
"Lists control is enabled when widgets parent is enabled"
);
ok(
!timerCheckbox.disabled && !timerCheckbox.parentDisabled,
"Timer control is enabled when widgets parent is enabled"
);
BrowserTestUtils.removeTab(tab);
});