mirror of
https://gitlab.winehq.org/wine/wine-gecko.git
synced 2024-09-13 09:24:08 -07:00
88 lines
2.4 KiB
JavaScript
88 lines
2.4 KiB
JavaScript
/* Any copyright is dedicated to the Public Domain.
|
|
http://creativecommons.org/publicdomain/zero/1.0/ */
|
|
|
|
Cu.import("resource://gre/modules/Task.jsm");
|
|
|
|
let {devtools} = Cu.import("resource://gre/modules/devtools/Loader.jsm", {});
|
|
const {Promise: promise} = Cu.import("resource://gre/modules/Promise.jsm", {});
|
|
let TargetFactory = devtools.TargetFactory;
|
|
|
|
Services.prefs.setBoolPref("devtools.inspector.sidebarOpen", true);
|
|
Services.prefs.setIntPref("devtools.toolbox.footer.height", 350);
|
|
gDevTools.testing = true;
|
|
SimpleTest.registerCleanupFunction(() => {
|
|
Services.prefs.clearUserPref("devtools.inspector.sidebarOpen");
|
|
Services.prefs.clearUserPref("devtools.toolbox.footer.height");
|
|
gDevTools.testing = false;
|
|
});
|
|
|
|
// All tests are async in general
|
|
waitForExplicitFinish();
|
|
|
|
function loadTab(url) {
|
|
let deferred = promise.defer();
|
|
|
|
gBrowser.selectedTab = gBrowser.addTab();
|
|
gBrowser.selectedBrowser.addEventListener("load", function onload() {
|
|
gBrowser.selectedBrowser.removeEventListener("load", onload, true);
|
|
waitForFocus(function() {
|
|
deferred.resolve(content);
|
|
}, content);
|
|
}, true);
|
|
|
|
content.location = url;
|
|
|
|
return deferred.promise;
|
|
}
|
|
|
|
function selectNode(aNode) {
|
|
info("selecting node");
|
|
let onSelect = inspector.once("layoutview-updated");
|
|
inspector.selection.setNode(aNode, "test");
|
|
return onSelect.then(() => {
|
|
let view = inspector.sidebar.getWindowForTab("layoutview");
|
|
ok(!!view.layoutview, "LayoutView document is alive.");
|
|
|
|
return view;
|
|
});
|
|
}
|
|
|
|
function waitForUpdate() {
|
|
return inspector.once("layoutview-updated");
|
|
}
|
|
|
|
function asyncTest(testfunc) {
|
|
return Task.async(function*() {
|
|
let initialTab = gBrowser.selectedTab;
|
|
|
|
yield testfunc();
|
|
|
|
// Remove all tabs except for the initial tab. This is basically
|
|
// gBrowser.removeAllTabsBut without the animation
|
|
let tabs = gBrowser.visibleTabs;
|
|
gBrowser.selectedTab = initialTab;
|
|
for (let i = tabs.length - 1; i >= 0; i--) {
|
|
if (tabs[i] != initialTab)
|
|
gBrowser.removeTab(tabs[i]);
|
|
}
|
|
|
|
// Reset the sidebar back to the default
|
|
Services.prefs.setCharPref("devtools.inspector.activeSidebar", "ruleview");
|
|
|
|
finish();
|
|
});
|
|
}
|
|
|
|
var TESTS = [];
|
|
|
|
function addTest(message, func) {
|
|
TESTS.push([message, Task.async(func)])
|
|
}
|
|
|
|
var runTests = Task.async(function*() {
|
|
for (let [message, test] of TESTS) {
|
|
info(message);
|
|
yield test();
|
|
}
|
|
});
|