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";
const BLANK_HOMEPAGE_URL = "chrome://browser/content/blanktab.html";
add_setup(async function () {
await SpecialPowers.pushPrefEnv({
set: [
["browser.settings-redesign.enabled", true],
["identity.fxaccounts.account.device.name", ""],
],
});
});
add_task(async function test_homepage_section_visible() {
let { win, doc, tab } = await openHomePreferences();
let homepageGroup = doc.querySelector('setting-group[groupid="homepage"]');
ok(homepageGroup, "Homepage setting group exists");
ok(BrowserTestUtils.isVisible(homepageGroup), "Homepage section is visible");
let fieldset = homepageGroup.querySelector("moz-fieldset");
ok(fieldset, "Homepage moz-fieldset exists");
await fieldset.updateComplete;
let icon = fieldset.shadowRoot.querySelector(
'img[src*="window-firefox.svg"]'
);
ok(icon, "Homepage icon is present in shadow DOM");
let homepageNewWindowsControl = await settingControlRenders(
"homepageNewWindows",
win
);
ok(homepageNewWindowsControl, "Homepage new windows control exists");
let select = homepageNewWindowsControl.controlEl;
ok(select, "Homepage new windows select exists");
is(select.localName, "moz-select", "Control is a moz-select");
let homepageNewTabsControl = await settingControlRenders(
"homepageNewTabs",
win
);
ok(homepageNewTabsControl, "Homepage new tabs control exists");
let newTabsSelect = homepageNewTabsControl.controlEl;
ok(newTabsSelect, "Homepage new tabs select exists");
is(newTabsSelect.localName, "moz-select", "Control is a moz-select");
let restoreDefaultsControl = await settingControlRenders(
"homepageRestoreDefaults",
win
);
ok(restoreDefaultsControl, "Restore defaults control exists");
let button = restoreDefaultsControl.controlEl;
ok(button, "Restore defaults button exists");
is(button.localName, "moz-button", "Control is a moz-button");
await BrowserTestUtils.removeTab(tab);
});
add_task(async function test_homepage_new_windows_dropdown() {
await SpecialPowers.pushPrefEnv({
set: [[HOMEPAGE_PREF, DEFAULT_HOMEPAGE_URL]],
});
let { win, tab } = await openHomePreferences();
let homepageNewWindowsControl = await settingControlRenders(
"homepageNewWindows",
win
);
let select = homepageNewWindowsControl.controlEl;
let nativeSelect = select.inputEl;
is(nativeSelect.value, "home", "Dropdown value is 'home' for default URL");
await changeMozSelectValue(select, "custom");
is(
nativeSelect.value,
"custom",
"Dropdown value is 'custom' when custom selected"
);
await changeMozSelectValue(select, "home");
is(
Services.prefs.getStringPref(HOMEPAGE_PREF),
DEFAULT_HOMEPAGE_URL,
"Pref updated back to default URL"
);
await BrowserTestUtils.removeTab(tab);
});
add_task(async function test_homepage_new_tabs_dropdown() {
await SpecialPowers.pushPrefEnv({
set: [[NEWTAB_ENABLED_PREF, true]],
});
let { win, tab } = await openHomePreferences();
let homepageNewTabsControl = await settingControlRenders(
"homepageNewTabs",
win
);
let select = homepageNewTabsControl.controlEl;
let nativeSelect = select.inputEl;
is(nativeSelect.value, "true", "Dropdown value is 'true' when pref is true");
await changeMozSelectValue(select, "false");
is(
Services.prefs.getBoolPref(NEWTAB_ENABLED_PREF),
false,
"Pref updated to false"
);
await changeMozSelectValue(select, "true");
is(
Services.prefs.getBoolPref(NEWTAB_ENABLED_PREF),
true,
"Pref updated back to true"
);
await BrowserTestUtils.removeTab(tab);
});