/* Any copyright is dedicated to the Public Domain.
* http://creativecommons.org/publicdomain/zero/1.0/ */
"use strict";
const { Toolbox } = require(
"resource://devtools/client/framework/toolbox.js");
const L10N =
new LocalizationHelper(
"devtools/client/locales/toolbox.properties"
);
add_task(async
function () {
registerCleanupFunction(
function () {
Services.prefs.clearUserPref(
"devtools.toolbox.zoomValue");
});
// This test assume that zoom value will be default value. i.e. x1.0.
Services.prefs.setCharPref(
"devtools.toolbox.zoomValue",
"1.0");
await addTab(
"about:blank");
const toolbox = await gDevTools.showToolboxForTab(gBrowser.selectedTab, {
toolId:
"styleeditor",
hostType: Toolbox.HostType.BOTTOM,
});
info(
"testing zoom keys");
testZoomLevel(
"In", 2, 1.2, toolbox);
testZoomLevel(
"Out", 3, 0.9, toolbox);
testZoomLevel(
"Reset", 1, 1, toolbox);
await toolbox.destroy();
gBrowser.removeCurrentTab();
});
function testZoomLevel(type, times, expected, toolbox) {
sendZoomKey(
"toolbox.zoom" + type +
".key", times);
const zoom = getCurrentZoom(toolbox);
is(
zoom.toFixed(1),
expected.toFixed(1),
"zoom level correct after zoom " + type
);
const savedZoom = parseFloat(
Services.prefs.getCharPref(
"devtools.toolbox.zoomValue")
);
is(
savedZoom.toFixed(1),
expected.toFixed(1),
"saved zoom level is correct after zoom " + type
);
}
function sendZoomKey(shortcut, times) {
for (let i = 0; i < times; i++) {
synthesizeKeyShortcut(L10N.getStr(shortcut));
}
}
function getCurrentZoom(toolbox) {
return toolbox.win.browsingContext.fullZoom;
}