зеркало из https://github.com/mozilla/gecko-dev.git
Bug 1158634 - Modify font-inspector tests for better code sharing. r=pbrosset
This patch adds a new method openFontInspectorForURL to the head.js file which a) opens a new tab with the given URL b) opens inspector for the tab c) selects font-inspector and waits for it to initialize Previously the only font-inspector test was doing all that inside the test but as new tests require the similar functionality it's better to reside in head.js. --HG-- extra : rebase_source : 96d31183bdbd0131beadc9540ad2b7e2e4f9a67b extra : histedit_source : 3a9a9cb62e9b480e6f6e349570f3cbf23543487f
This commit is contained in:
Родитель
dcbfc55e0d
Коммит
dfc7a247b3
|
@ -1,17 +1,9 @@
|
|||
/* vim: set ts=2 et sw=2 tw=80: */
|
||||
/* Any copyright is dedicated to the Public Domain.
|
||||
http://creativecommons.org/publicdomain/zero/1.0/ */
|
||||
"use strict";
|
||||
|
||||
let tempScope = {};
|
||||
let {gDevTools} = Cu.import("resource:///modules/devtools/gDevTools.jsm", {});
|
||||
let {devtools} = Cu.import("resource://gre/modules/devtools/Loader.jsm", {});
|
||||
let TargetFactory = devtools.TargetFactory;
|
||||
|
||||
let TEST_URI = "http://mochi.test:8888/browser/browser/devtools/fontinspector/test/browser_fontinspector.html";
|
||||
|
||||
let view, viewDoc;
|
||||
|
||||
const BASE_URI = "http://mochi.test:8888/browser/browser/devtools/fontinspector/test/"
|
||||
|
||||
const TEST_URI = BASE_URI + "browser_fontinspector.html";
|
||||
const FONTS = [
|
||||
{name: "Ostrich Sans Medium", remote: true, url: BASE_URI + "ostrich-regular.ttf",
|
||||
format: "truetype", cssName: "bar"},
|
||||
|
@ -24,33 +16,17 @@ const FONTS = [
|
|||
];
|
||||
|
||||
add_task(function*() {
|
||||
yield loadTab(TEST_URI);
|
||||
let {toolbox, inspector} = yield openInspector();
|
||||
let { inspector, fontInspector } = yield openFontInspectorForURL(TEST_URI);
|
||||
ok(!!fontInspector, "Font inspector document is alive.");
|
||||
|
||||
info("Selecting the test node");
|
||||
yield selectNode("body", inspector);
|
||||
let viewDoc = fontInspector.chromeDoc;
|
||||
|
||||
let updated = inspector.once("fontinspector-updated");
|
||||
inspector.sidebar.select("fontinspector");
|
||||
yield updated;
|
||||
|
||||
info("Font Inspector ready");
|
||||
|
||||
view = inspector.sidebar.getWindowForTab("fontinspector");
|
||||
viewDoc = view.document;
|
||||
|
||||
ok(!!view.fontInspector, "Font inspector document is alive.");
|
||||
|
||||
yield testBodyFonts(inspector);
|
||||
|
||||
yield testDivFonts(inspector);
|
||||
|
||||
yield testShowAllFonts(inspector);
|
||||
|
||||
view = viewDoc = null;
|
||||
yield testBodyFonts(inspector, viewDoc);
|
||||
yield testDivFonts(inspector, viewDoc);
|
||||
yield testShowAllFonts(inspector, viewDoc);
|
||||
});
|
||||
|
||||
function* testBodyFonts(inspector) {
|
||||
function* testBodyFonts(inspector, viewDoc) {
|
||||
let s = viewDoc.querySelectorAll("#all-fonts > section");
|
||||
is(s.length, 5, "Found 5 fonts");
|
||||
|
||||
|
@ -89,7 +65,7 @@ function* testBodyFonts(inspector) {
|
|||
"Arial", "local font has right css name");
|
||||
}
|
||||
|
||||
function* testDivFonts(inspector) {
|
||||
function* testDivFonts(inspector, viewDoc) {
|
||||
let updated = inspector.once("fontinspector-updated");
|
||||
yield selectNode("div", inspector);
|
||||
yield updated;
|
||||
|
@ -100,7 +76,7 @@ function* testDivFonts(inspector) {
|
|||
"The DIV font has the right name");
|
||||
}
|
||||
|
||||
function* testShowAllFonts(inspector) {
|
||||
function* testShowAllFonts(inspector, viewDoc) {
|
||||
info("testing showing all fonts");
|
||||
|
||||
let updated = inspector.once("fontinspector-updated");
|
||||
|
|
|
@ -13,6 +13,8 @@ const { Promise: promise } = Cu.import("resource://gre/modules/Promise.jsm", {})
|
|||
let {devtools} = Cu.import("resource://gre/modules/devtools/Loader.jsm", {});
|
||||
let TargetFactory = devtools.TargetFactory;
|
||||
|
||||
const BASE_URI = "http://mochi.test:8888/browser/browser/devtools/fontinspector/test/"
|
||||
|
||||
// All test are asynchronous
|
||||
waitForExplicitFinish();
|
||||
|
||||
|
@ -98,6 +100,52 @@ let openInspector = Task.async(function*(cb) {
|
|||
}
|
||||
});
|
||||
|
||||
/**
|
||||
* Adds a new tab with the given URL, opens the inspector and selects the
|
||||
* font-inspector tab.
|
||||
*
|
||||
* @return Object
|
||||
* {
|
||||
* toolbox,
|
||||
* inspector,
|
||||
* fontInspector
|
||||
* }
|
||||
*/
|
||||
let openFontInspectorForURL = Task.async(function* (url) {
|
||||
info("Opening tab " + url);
|
||||
yield loadTab(url);
|
||||
|
||||
let { toolbox, inspector } = yield openInspector();
|
||||
|
||||
/**
|
||||
* Call selectNode to trigger font-inspector update so that we don't timeout
|
||||
* if following conditions hold
|
||||
* a) the initial 'fontinspector-updated' was emitted while we were waiting
|
||||
* for openInspector to resolve
|
||||
* b) the font-inspector tab was selected by default which means the call to
|
||||
* select will not trigger another update.
|
||||
*
|
||||
* selectNode calls setNodeFront which always emits 'new-node' which calls
|
||||
* FontInspector.update that emits the 'fontinspector-updated' event.
|
||||
*/
|
||||
let updated = inspector.once("fontinspector-updated");
|
||||
|
||||
yield selectNode("body", inspector);
|
||||
inspector.sidebar.select("fontinspector");
|
||||
|
||||
info("Waiting for font-inspector to update.");
|
||||
yield updated;
|
||||
|
||||
info("Font Inspector ready.");
|
||||
|
||||
let { fontInspector } = inspector.sidebar.getWindowForTab("fontinspector");
|
||||
return {
|
||||
fontInspector,
|
||||
inspector,
|
||||
toolbox
|
||||
};
|
||||
});
|
||||
|
||||
/**
|
||||
* Select a node in the inspector given its selector.
|
||||
*/
|
||||
|
|
Загрузка…
Ссылка в новой задаче