Source code

Revision control

Copy as Markdown

Other Tools

Test Info:

/* Any copyright is dedicated to the Public Domain.
// Smoke test for the top-level Languages settings pane: its sidebar entry
// exists and the pane hosts the four migrated groups.
const LANGUAGE_GROUP_IDS = [
"browserLanguage",
"websiteLanguage",
"translations",
"spellCheck",
];
add_task(async function testLanguagesPaneHostsAllGroups() {
await SpecialPowers.pushPrefEnv({
set: [["browser.settings-redesign.enabled", true]],
});
await openPreferencesViaOpenPreferencesAPI("paneGeneral", {
leaveOpen: true,
});
let doc = gBrowser.contentDocument;
let navButton = doc.getElementById("category-languages");
ok(navButton, "Languages sidebar entry is rendered");
is(
navButton.getAttribute("view"),
"paneLanguages",
"Sidebar entry routes to paneLanguages"
);
let pane = Array.from(doc.querySelectorAll("setting-pane")).find(
p => p.name === "paneLanguages"
);
ok(pane, "paneLanguages setting-pane exists");
for (let groupId of LANGUAGE_GROUP_IDS) {
let group = pane.querySelector(`setting-group[groupid="${groupId}"]`);
ok(group, `paneLanguages hosts the ${groupId} group`);
}
// The migrated groups must not also render inside paneGeneral when SRD
// is active (the default on nightly).
let strayGroups = Array.from(
doc.querySelectorAll(
LANGUAGE_GROUP_IDS.map(id => `setting-group[groupid="${id}"]`).join(",")
)
).filter(el => el.closest("setting-pane")?.name !== "paneLanguages");
Assert.deepEqual(
strayGroups.map(el => el.getAttribute("groupid")),
[],
"Migrated language groups are not rendered outside paneLanguages"
);
BrowserTestUtils.removeTab(gBrowser.selectedTab);
});