mirror of
https://github.com/ManchildProductions/UXP-Fixed.git
synced 2026-06-12 10:09:18 +00:00
86 lines
2.9 KiB
JavaScript
86 lines
2.9 KiB
JavaScript
/* This Source Code Form is subject to the terms of the Mozilla Public
|
|
* License, v. 2.0. If a copy of the MPL was not distributed with this
|
|
* file, You can obtain one at http://mozilla.org/MPL/2.0/. */
|
|
/* eslint no-unused-vars: [2, {"vars": "local"}] */
|
|
/* import-globals-from ../../test/head.js */
|
|
"use strict";
|
|
|
|
// Import the inspector's head.js first (which itself imports shared-head.js).
|
|
Services.scriptloader.loadSubScript(
|
|
"chrome://mochitests/content/browser/devtools/client/inspector/test/head.js",
|
|
this);
|
|
|
|
Services.prefs.setBoolPref("devtools.fontinspector.enabled", true);
|
|
Services.prefs.setCharPref("devtools.inspector.activeSidebar", "fontinspector");
|
|
registerCleanupFunction(() => {
|
|
Services.prefs.clearUserPref("devtools.fontinspector.enabled");
|
|
});
|
|
|
|
/**
|
|
* The font-inspector doesn't participate in the inspector's update mechanism
|
|
* (i.e. it doesn't call inspector.updating() when updating), so simply calling
|
|
* the default selectNode isn't enough to guaranty that the panel has finished
|
|
* updating. We also need to wait for the fontinspector-updated event.
|
|
*/
|
|
var _selectNode = selectNode;
|
|
selectNode = function* (node, inspector, reason) {
|
|
let onUpdated = inspector.once("fontinspector-updated");
|
|
yield _selectNode(node, inspector, reason);
|
|
yield onUpdated;
|
|
};
|
|
|
|
/**
|
|
* Adds a new tab with the given URL, opens the inspector and selects the
|
|
* font-inspector tab.
|
|
* @return {Promise} resolves to a {toolbox, inspector, view} object
|
|
*/
|
|
var openFontInspectorForURL = Task.async(function* (url) {
|
|
yield addTab(url);
|
|
let {toolbox, inspector} = yield openInspector();
|
|
|
|
// Call selectNode again here to force a fontinspector update since we don't
|
|
// know if the fontinspector-updated event has been sent while the inspector
|
|
// was being opened or not.
|
|
yield selectNode("body", inspector);
|
|
|
|
return {
|
|
toolbox,
|
|
inspector,
|
|
view: inspector.fontInspector
|
|
};
|
|
});
|
|
|
|
/**
|
|
* Clears the preview input field, types new text into it and waits for the
|
|
* preview images to be updated.
|
|
*
|
|
* @param {FontInspector} view - The FontInspector instance.
|
|
* @param {String} text - The text to preview.
|
|
*/
|
|
function* updatePreviewText(view, text) {
|
|
info(`Changing the preview text to '${text}'`);
|
|
|
|
let doc = view.chromeDoc;
|
|
let input = doc.getElementById("font-preview-text-input");
|
|
let update = view.inspector.once("fontinspector-updated");
|
|
|
|
info("Focusing the input field.");
|
|
input.focus();
|
|
|
|
is(doc.activeElement, input, "The input was focused.");
|
|
|
|
info("Blanking the input field.");
|
|
for (let i = input.value.length; i >= 0; i--) {
|
|
EventUtils.sendKey("BACK_SPACE", doc.defaultView);
|
|
}
|
|
|
|
is(input.value, "", "The input is now blank.");
|
|
|
|
info("Typing the specified text to the input field.");
|
|
EventUtils.sendString(text, doc.defaultView);
|
|
is(input.value, text, "The input now contains the correct text.");
|
|
|
|
info("Waiting for the font-inspector to update.");
|
|
yield update;
|
|
}
|