Source code

Revision control

Copy as Markdown

Other Tools

Test Info: Warnings

/* Any copyright is dedicated to the Public Domain.
*/
// Tests that the visible delay in showing the "Language" category occurs
// very minimally
let gProvider;
let gInstall;
let gInstallProperties = [
{
name: "Locale Category Test",
type: "locale",
},
];
function installLocale() {
return new Promise(resolve => {
gInstall = gProvider.createInstalls(gInstallProperties)[0];
gInstall.addTestListener({
onInstallEnded() {
gInstall.removeTestListener(this);
resolve();
},
});
gInstall.install();
});
}
async function checkCategory(win, category, { expectHidden, expectSelected }) {
await win.customElements.whenDefined("categories-box");
let categoriesBox = win.document.getElementById("categories");
await categoriesBox.promiseRendered;
let button = categoriesBox.getButtonByName(category);
is(
button.hidden,
expectHidden,
`${category} button is ${expectHidden ? "" : "not "}hidden`
);
if (expectSelected !== undefined) {
is(
button.selected,
expectSelected,
`${category} button is ${expectSelected ? "" : "not "}selected`
);
}
}
add_setup(async function () {
gProvider = new MockProvider();
});
add_task(async function testLocalesHiddenByDefault() {
gProvider.blockQueryResponses();
let viewLoaded = loadInitialView("extension", {
async loadCallback(win) {
await checkCategory(win, "locale", { expectHidden: true });
gProvider.unblockQueryResponses();
},
});
let win = await viewLoaded;
await checkCategory(win, "locale", { expectHidden: true });
await installLocale();
await checkCategory(win, "locale", {
expectHidden: false,
expectSelected: false,
});
await closeView(win);
});
add_task(async function testLocalesShownWhenInstalled() {
gProvider.blockQueryResponses();
let viewLoaded = loadInitialView("extension", {
async loadCallback(win) {
await checkCategory(win, "locale", {
expectHidden: false,
expectSelected: false,
});
gProvider.unblockQueryResponses();
},
});
let win = await viewLoaded;
await checkCategory(win, "locale", {
expectHidden: false,
expectSelected: false,
});
await closeView(win);
});
add_task(async function testLocalesHiddenWhenUninstalled() {
gInstall.cancel();
gProvider.blockQueryResponses();
let viewLoaded = loadInitialView("extension", {
async loadCallback(win) {
await checkCategory(win, "locale", {
expectHidden: false,
expectSelected: false,
});
gProvider.unblockQueryResponses();
},
});
let win = await viewLoaded;
await checkCategory(win, "locale", { expectHidden: true });
await closeView(win);
});
add_task(async function testLocalesHiddenWithoutDelay() {
gProvider.blockQueryResponses();
let viewLoaded = loadInitialView("extension", {
async loadCallback(win) {
await checkCategory(win, "locale", { expectHidden: true });
gProvider.unblockQueryResponses();
},
});
let win = await viewLoaded;
await checkCategory(win, "locale", { expectHidden: true });
await closeView(win);
});
add_task(async function testLocalesShownAfterDelay() {
await installLocale();
gProvider.blockQueryResponses();
let viewLoaded = loadInitialView("extension", {
async loadCallback(win) {
await checkCategory(win, "locale", { expectHidden: true });
gProvider.unblockQueryResponses();
},
});
let win = await viewLoaded;
await checkCategory(win, "locale", {
expectHidden: false,
expectSelected: false,
});
await closeView(win);
});
add_task(async function testLocalesShownIfPreviousView() {
gProvider.blockQueryResponses();
// Passing "locale" will set the last view to locales and open the view.
let viewLoaded = loadInitialView("locale", {
async loadCallback(win) {
await checkCategory(win, "locale", {
expectHidden: false,
expectSelected: true,
});
gProvider.unblockQueryResponses();
},
});
let win = await viewLoaded;
await checkCategory(win, "locale", {
expectHidden: false,
expectSelected: true,
});
await closeView(win);
});
add_task(async function testLocalesHiddenIfPreviousViewAndNoLocales() {
gInstall.cancel();
gProvider.blockQueryResponses();
// Passing "locale" will set the last view to locales and open the view.
let viewLoaded = loadInitialView("locale", {
async loadCallback(win) {
await checkCategory(win, "locale", {
expectHidden: false,
expectSelected: true,
});
gProvider.unblockQueryResponses();
},
});
let win = await viewLoaded;
let categoryUtils = new CategoryUtilities(win);
await TestUtils.waitForCondition(
() => categoryUtils.selectedCategory != "locale"
);
await checkCategory(win, "locale", {
expectHidden: true,
expectSelected: false,
});
is(
categoryUtils.getSelectedViewId(),
win.gViewController.defaultViewId,
"default view is selected"
);
await closeView(win);
});