Source code

Revision control

Copy as Markdown

Other Tools

Test Info:

/* Any copyright is dedicated to the Public Domain.
"use strict";
// Shortcuts
const SHORTCUTS_PREF = "browser.newtabpage.activity-stream.feeds.topsites";
const SHORTCUTS_ROWS_PREF = "browser.newtabpage.activity-stream.topSitesRows";
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_shortcuts_toggle() {
await SpecialPowers.pushPrefEnv({
set: [[SHORTCUTS_PREF, true]],
});
let { win, tab } = await openHomePreferences();
let shortcutsControl = await settingControlRenders("shortcuts", win);
ok(shortcutsControl, "Shortcuts control exists");
let toggle = shortcutsControl.querySelector("moz-toggle");
ok(toggle, "Shortcuts toggle element exists");
ok(toggle.pressed, "Shortcuts toggle is initially checked");
let prefChanged = waitForPrefChange(SHORTCUTS_PREF, false);
toggle.click();
await prefChanged;
await waitForToggleState(toggle, false);
ok(
!Services.prefs.getBoolPref(SHORTCUTS_PREF),
"Shortcuts pref is now false"
);
ok(!toggle.pressed, "Shortcuts toggle is now unchecked");
prefChanged = waitForPrefChange(SHORTCUTS_PREF, true);
toggle.click();
await prefChanged;
await waitForToggleState(toggle, true);
ok(Services.prefs.getBoolPref(SHORTCUTS_PREF), "Shortcuts pref is now true");
ok(toggle.pressed, "Shortcuts toggle is now checked");
BrowserTestUtils.removeTab(tab);
});
add_task(async function test_shortcuts_rows() {
await SpecialPowers.pushPrefEnv({
set: [
[SHORTCUTS_PREF, true],
[SHORTCUTS_ROWS_PREF, 4],
],
});
let { win, tab } = await openHomePreferences();
let rowsControl = await settingControlRenders("shortcutsRows", win);
ok(rowsControl, "Shortcuts rows control exists");
ok(
BrowserTestUtils.isVisible(rowsControl),
"Shortcuts rows control is visible"
);
let select = rowsControl.controlEl;
ok(select, "Shortcuts rows select exists");
let nativeSelect = select.inputEl;
ok(nativeSelect, "Shortcuts rows native select exists");
let optionValues = [...nativeSelect.options].map(option =>
Number(option.value)
);
Assert.deepEqual(
optionValues,
[1, 2, 3, 4],
"Shortcuts rows has options 1-4"
);
for (let rows of [1, 2, 3, 4]) {
let previousRows = Services.prefs.getIntPref(SHORTCUTS_ROWS_PREF);
isnot(
previousRows,
rows,
`Shortcuts rows pref changes from ${previousRows} to ${rows}`
);
await changeMozSelectValue(select, String(rows));
is(
Services.prefs.getIntPref(SHORTCUTS_ROWS_PREF),
rows,
`Shortcuts rows pref is ${rows}`
);
}
BrowserTestUtils.removeTab(tab);
});