Source code

Revision control

Copy as Markdown

Other Tools

Test Info:

/* Any copyright is dedicated to the Public Domain.
"use strict";
async function openAccessibilityPane() {
await SpecialPowers.pushPrefEnv({
set: [["browser.settings-redesign.enabled", true]],
});
await openPreferencesViaOpenPreferencesAPI("accessibility", {
leaveOpen: true,
});
return gBrowser.selectedBrowser.contentDocument;
}
add_task(async function test_zoom_dropdown_populated() {
let doc = await openAccessibilityPane();
let zoomGroup = doc.querySelector('setting-group[groupid="zoom"]');
ok(zoomGroup, "zoom setting-group exists");
let mozSelect = zoomGroup.querySelector("#defaultZoom");
ok(mozSelect, "defaultZoom moz-select exists");
await BrowserTestUtils.waitForMutationCondition(
mozSelect,
{ childList: true, subtree: true },
() => mozSelect.inputEl?.options.length > 0
);
let options = Array.from(mozSelect.inputEl.options);
Assert.greater(options.length, 5, "Zoom dropdown has more than 5 options");
ok(
options.some(o => o.value === "100"),
"100% option exists in zoom dropdown"
);
BrowserTestUtils.removeTab(gBrowser.selectedTab);
});
add_task(async function test_zoom_dropdown_reflects_current_zoom() {
let doc = await openAccessibilityPane();
let zoomGroup = doc.querySelector('setting-group[groupid="zoom"]');
let mozSelect = zoomGroup.querySelector("#defaultZoom");
await BrowserTestUtils.waitForMutationCondition(
mozSelect,
{ childList: true, subtree: true },
() => mozSelect.inputEl?.options.length > 0
);
let ZoomUI = gBrowser.ownerGlobal.ZoomUI;
let currentZoom = await ZoomUI.getGlobalValue();
let expectedValue = String(Math.round(currentZoom * 100));
is(
mozSelect.value,
expectedValue,
"Zoom dropdown value matches current global zoom"
);
BrowserTestUtils.removeTab(gBrowser.selectedTab);
});
add_task(async function test_zoom_dropdown_has_valid_selected_option() {
let doc = await openAccessibilityPane();
let zoomGroup = doc.querySelector('setting-group[groupid="zoom"]');
let mozSelect = zoomGroup.querySelector("#defaultZoom");
await BrowserTestUtils.waitForMutationCondition(
mozSelect,
{ childList: true, subtree: true },
() => mozSelect.inputEl?.options.length > 0
);
Assert.greaterOrEqual(
mozSelect.selectedIndex,
0,
"A zoom option is selected"
);
ok(/^\d+$/.test(mozSelect.value), "Zoom value is a numeric string");
let zoomInt = parseInt(mozSelect.value, 10);
Assert.greaterOrEqual(zoomInt, 30, `Zoom value ${zoomInt} is at least 30`);
Assert.lessOrEqual(zoomInt, 500, `Zoom value ${zoomInt} is at most 500`);
BrowserTestUtils.removeTab(gBrowser.selectedTab);
});