diff options
Diffstat (limited to 'devtools/client/webide/test/head.js')
-rw-r--r-- | devtools/client/webide/test/head.js | 248 |
1 files changed, 0 insertions, 248 deletions
diff --git a/devtools/client/webide/test/head.js b/devtools/client/webide/test/head.js deleted file mode 100644 index c0171c730..000000000 --- a/devtools/client/webide/test/head.js +++ /dev/null @@ -1,248 +0,0 @@ -/* Any copyright is dedicated to the Public Domain. - http://creativecommons.org/publicdomain/zero/1.0/ */ - -"use strict"; - -var {utils: Cu, classes: Cc, interfaces: Ci} = Components; - -const { require } = Cu.import("resource://devtools/shared/Loader.jsm", {}); -const { FileUtils } = require("resource://gre/modules/FileUtils.jsm"); -const { gDevTools } = require("devtools/client/framework/devtools"); -const promise = require("promise"); -const Services = require("Services"); -const { Task } = require("devtools/shared/task"); -const { AppProjects } = require("devtools/client/webide/modules/app-projects"); -const DevToolsUtils = require("devtools/shared/DevToolsUtils"); -const { DebuggerServer } = require("devtools/server/main"); -const flags = require("devtools/shared/flags"); -flags.testing = true; - -var TEST_BASE; -if (window.location === "chrome://browser/content/browser.xul") { - TEST_BASE = "chrome://mochitests/content/browser/devtools/client/webide/test/"; -} else { - TEST_BASE = "chrome://mochitests/content/chrome/devtools/client/webide/test/"; -} - -Services.prefs.setBoolPref("devtools.webide.enabled", true); -Services.prefs.setBoolPref("devtools.webide.enableLocalRuntime", true); - -Services.prefs.setCharPref("devtools.webide.addonsURL", TEST_BASE + "addons/simulators.json"); -Services.prefs.setCharPref("devtools.webide.simulatorAddonsURL", TEST_BASE + "addons/fxos_#SLASHED_VERSION#_simulator-#OS#.xpi"); -Services.prefs.setCharPref("devtools.webide.adbAddonURL", TEST_BASE + "addons/adbhelper-#OS#.xpi"); -Services.prefs.setCharPref("devtools.webide.adaptersAddonURL", TEST_BASE + "addons/fxdt-adapters-#OS#.xpi"); -Services.prefs.setCharPref("devtools.webide.templatesURL", TEST_BASE + "templates.json"); -Services.prefs.setCharPref("devtools.devices.url", TEST_BASE + "browser_devices.json"); - -var registerCleanupFunction = registerCleanupFunction || - SimpleTest.registerCleanupFunction; -registerCleanupFunction(() => { - flags.testing = false; - Services.prefs.clearUserPref("devtools.webide.enabled"); - Services.prefs.clearUserPref("devtools.webide.enableLocalRuntime"); - Services.prefs.clearUserPref("devtools.webide.autoinstallADBHelper"); - Services.prefs.clearUserPref("devtools.webide.autoinstallFxdtAdapters"); - Services.prefs.clearUserPref("devtools.webide.busyTimeout"); - Services.prefs.clearUserPref("devtools.webide.lastSelectedProject"); - Services.prefs.clearUserPref("devtools.webide.lastConnectedRuntime"); -}); - -var openWebIDE = Task.async(function* (autoInstallAddons) { - info("opening WebIDE"); - - Services.prefs.setBoolPref("devtools.webide.autoinstallADBHelper", !!autoInstallAddons); - Services.prefs.setBoolPref("devtools.webide.autoinstallFxdtAdapters", !!autoInstallAddons); - - let ww = Cc["@mozilla.org/embedcomp/window-watcher;1"].getService(Ci.nsIWindowWatcher); - let win = ww.openWindow(null, "chrome://webide/content/", "webide", "chrome,centerscreen,resizable", null); - - yield new Promise(resolve => { - win.addEventListener("load", function onLoad() { - win.removeEventListener("load", onLoad); - SimpleTest.requestCompleteLog(); - SimpleTest.executeSoon(resolve); - }); - }); - - info("WebIDE open"); - - return win; -}); - -function closeWebIDE(win) { - info("Closing WebIDE"); - - let deferred = promise.defer(); - - Services.prefs.clearUserPref("devtools.webide.widget.enabled"); - - win.addEventListener("unload", function onUnload() { - win.removeEventListener("unload", onUnload); - info("WebIDE closed"); - SimpleTest.executeSoon(() => { - deferred.resolve(); - }); - }); - - win.close(); - - return deferred.promise; -} - -function removeAllProjects() { - return Task.spawn(function* () { - yield AppProjects.load(); - // use a new array so we're not iterating over the same - // underlying array that's being modified by AppProjects - let projects = AppProjects.projects.map(p => p.location); - for (let i = 0; i < projects.length; i++) { - yield AppProjects.remove(projects[i]); - } - }); -} - -function nextTick() { - let deferred = promise.defer(); - SimpleTest.executeSoon(() => { - deferred.resolve(); - }); - - return deferred.promise; -} - -function waitForUpdate(win, update) { - info("Wait: " + update); - let deferred = promise.defer(); - win.AppManager.on("app-manager-update", function onUpdate(e, what) { - info("Got: " + what); - if (what !== update) { - return; - } - win.AppManager.off("app-manager-update", onUpdate); - deferred.resolve(win.UI._updatePromise); - }); - return deferred.promise; -} - -function waitForTime(time) { - let deferred = promise.defer(); - setTimeout(() => { - deferred.resolve(); - }, time); - return deferred.promise; -} - -function documentIsLoaded(doc) { - let deferred = promise.defer(); - if (doc.readyState == "complete") { - deferred.resolve(); - } else { - doc.addEventListener("readystatechange", function onChange() { - if (doc.readyState == "complete") { - doc.removeEventListener("readystatechange", onChange); - deferred.resolve(); - } - }); - } - return deferred.promise; -} - -function lazyIframeIsLoaded(iframe) { - let deferred = promise.defer(); - iframe.addEventListener("load", function onLoad() { - iframe.removeEventListener("load", onLoad, true); - deferred.resolve(nextTick()); - }, true); - return deferred.promise; -} - -function addTab(aUrl, aWindow) { - info("Adding tab: " + aUrl); - - let deferred = promise.defer(); - let targetWindow = aWindow || window; - let targetBrowser = targetWindow.gBrowser; - - targetWindow.focus(); - let tab = targetBrowser.selectedTab = targetBrowser.addTab(aUrl); - let linkedBrowser = tab.linkedBrowser; - - BrowserTestUtils.browserLoaded(linkedBrowser).then(function () { - info("Tab added and finished loading: " + aUrl); - deferred.resolve(tab); - }); - - return deferred.promise; -} - -function removeTab(aTab, aWindow) { - info("Removing tab."); - - let deferred = promise.defer(); - let targetWindow = aWindow || window; - let targetBrowser = targetWindow.gBrowser; - let tabContainer = targetBrowser.tabContainer; - - tabContainer.addEventListener("TabClose", function onClose(aEvent) { - tabContainer.removeEventListener("TabClose", onClose, false); - info("Tab removed and finished closing."); - deferred.resolve(); - }, false); - - targetBrowser.removeTab(aTab); - return deferred.promise; -} - -function getRuntimeDocument(win) { - return win.document.querySelector("#runtime-listing-panel-details").contentDocument; -} - -function getProjectDocument(win) { - return win.document.querySelector("#project-listing-panel-details").contentDocument; -} - -function getRuntimeWindow(win) { - return win.document.querySelector("#runtime-listing-panel-details").contentWindow; -} - -function getProjectWindow(win) { - return win.document.querySelector("#project-listing-panel-details").contentWindow; -} - -function connectToLocalRuntime(win) { - info("Loading local runtime."); - - let panelNode; - let runtimePanel; - - runtimePanel = getRuntimeDocument(win); - - panelNode = runtimePanel.querySelector("#runtime-panel"); - let items = panelNode.querySelectorAll(".runtime-panel-item-other"); - is(items.length, 2, "Found 2 custom runtime buttons"); - - let updated = waitForUpdate(win, "runtime-global-actors"); - items[1].click(); - return updated; -} - -function handleError(aError) { - ok(false, "Got an error: " + aError.message + "\n" + aError.stack); - finish(); -} - -function waitForConnectionChange(expectedState, count = 1) { - return new Promise(resolve => { - let onConnectionChange = (_, state) => { - if (state != expectedState) { - return; - } - if (--count != 0) { - return; - } - DebuggerServer.off("connectionchange", onConnectionChange); - resolve(); - }; - DebuggerServer.on("connectionchange", onConnectionChange); - }); -} |