diff options
Diffstat (limited to 'browser/devtools/framework')
20 files changed, 1 insertions, 1544 deletions
diff --git a/browser/devtools/framework/moz.build b/browser/devtools/framework/moz.build index 86ec46748..8deb0b138 100644 --- a/browser/devtools/framework/moz.build +++ b/browser/devtools/framework/moz.build @@ -4,4 +4,4 @@ # 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/. -TEST_DIRS += ['test'] + diff --git a/browser/devtools/framework/test/Makefile.in b/browser/devtools/framework/test/Makefile.in deleted file mode 100644 index 2fe8c2a52..000000000 --- a/browser/devtools/framework/test/Makefile.in +++ /dev/null @@ -1,33 +0,0 @@ -# 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/. - -DEPTH = @DEPTH@ -topsrcdir = @top_srcdir@ -srcdir = @srcdir@ -VPATH = @srcdir@ -relativesrcdir = @relativesrcdir@ - -include $(DEPTH)/config/autoconf.mk - -MOCHITEST_BROWSER_FILES = \ - head.js \ - browser_devtools_api.js \ - browser_new_activation_workflow.js \ - browser_toolbox_dynamic_registration.js \ - browser_toolbox_hosts.js \ - browser_toolbox_ready.js \ - browser_toolbox_select_event.js \ - browser_target_events.js \ - browser_toolbox_tool_ready.js \ - browser_toolbox_sidebar.js \ - browser_toolbox_window_shortcuts.js \ - browser_toolbox_window_title_changes.js \ - browser_toolbox_options.js \ - browser_toolbox_options_disablejs.js \ - browser_toolbox_options_disablejs.html \ - browser_toolbox_options_disablejs_iframe.html \ - browser_toolbox_highlight.js \ - $(NULL) - -include $(topsrcdir)/config/rules.mk diff --git a/browser/devtools/framework/test/browser_devtools_api.js b/browser/devtools/framework/test/browser_devtools_api.js deleted file mode 100644 index 6a79d337d..000000000 --- a/browser/devtools/framework/test/browser_devtools_api.js +++ /dev/null @@ -1,122 +0,0 @@ -/* Any copyright is dedicated to the Public Domain. - * http://creativecommons.org/publicdomain/zero/1.0/ */ - -// Tests devtools API - -const Cu = Components.utils; -const toolId = "test-tool"; - -let tempScope = {}; -Cu.import("resource:///modules/devtools/shared/event-emitter.js", tempScope); -let EventEmitter = tempScope.EventEmitter; - -function test() { - addTab("about:blank", function(aBrowser, aTab) { - runTests(aTab); - }); -} - -function runTests(aTab) { - let toolDefinition = { - id: toolId, - isTargetSupported: function() true, - visibilityswitch: "devtools.test-tool.enabled", - url: "about:blank", - label: "someLabel", - build: function(iframeWindow, toolbox) { - let panel = new DevToolPanel(iframeWindow, toolbox); - return panel.open(); - }, - }; - - ok(gDevTools, "gDevTools exists"); - is(gDevTools.getToolDefinitionMap().has(toolId), false, - "The tool is not registered"); - - gDevTools.registerTool(toolDefinition); - is(gDevTools.getToolDefinitionMap().has(toolId), true, - "The tool is registered"); - - let target = TargetFactory.forTab(gBrowser.selectedTab); - gDevTools.showToolbox(target, toolId).then(function(toolbox) { - is(toolbox.target, target, "toolbox target is correct"); - is(toolbox._host.hostTab, gBrowser.selectedTab, "toolbox host is correct"); - continueTests(toolbox); - }).then(null, console.error); -} - -function continueTests(toolbox, panel) { - ok(toolbox.getCurrentPanel(), "panel value is correct"); - is(toolbox.currentToolId, toolId, "toolbox _currentToolId is correct"); - - let toolDefinitions = gDevTools.getToolDefinitionMap(); - is(toolDefinitions.has(toolId), true, "The tool is in gDevTools"); - - let toolDefinition = toolDefinitions.get(toolId); - is(toolDefinition.id, toolId, "toolDefinition id is correct"); - - gDevTools.unregisterTool(toolId); - is(gDevTools.getToolDefinitionMap().has(toolId), false, - "The tool is no longer registered"); - - toolbox.destroy().then(function() { - let target = TargetFactory.forTab(gBrowser.selectedTab); - ok(gDevTools._toolboxes.get(target) == null, "gDevTools doesn't know about target"); - ok(toolbox._target == null, "toolbox doesn't know about target."); - - finishUp(); - }).then(null, console.error); -} - -function finishUp() { - tempScope = null; - gBrowser.removeCurrentTab(); - finish(); -} - -/** -* When a Toolbox is started it creates a DevToolPanel for each of the tools -* by calling toolDefinition.build(). The returned object should -* at least implement these functions. They will be used by the ToolBox. -* -* There may be no benefit in doing this as an abstract type, but if nothing -* else gives us a place to write documentation. -*/ -function DevToolPanel(iframeWindow, toolbox) { - EventEmitter.decorate(this); - - this._toolbox = toolbox; - - /*let doc = iframeWindow.document - let label = doc.createElement("label"); - let textNode = doc.createTextNode("Some Tool"); - - label.appendChild(textNode); - doc.body.appendChild(label);*/ -} - -DevToolPanel.prototype = { - open: function() { - let deferred = Promise.defer(); - - executeSoon(function() { - this._isReady = true; - this.emit("ready"); - deferred.resolve(this); - }.bind(this)); - - return deferred.promise; - }, - - get target() this._toolbox.target, - - get toolbox() this._toolbox, - - get isReady() this._isReady, - - _isReady: false, - - destroy: function DTI_destroy() { - return Promise.defer(null); - }, -}; diff --git a/browser/devtools/framework/test/browser_new_activation_workflow.js b/browser/devtools/framework/test/browser_new_activation_workflow.js deleted file mode 100644 index 85b73e7c7..000000000 --- a/browser/devtools/framework/test/browser_new_activation_workflow.js +++ /dev/null @@ -1,71 +0,0 @@ -/* Any copyright is dedicated to the Public Domain. - * http://creativecommons.org/publicdomain/zero/1.0/ */ - -// Tests devtools API - -const Cu = Components.utils; - -let toolbox, target; - -let tempScope = {}; - -function test() { - addTab("about:blank", function(aBrowser, aTab) { - target = TargetFactory.forTab(gBrowser.selectedTab); - loadWebConsole(aTab).then(function() { - console.log('loaded'); - }, console.error); - }); -} - -function loadWebConsole(aTab) { - ok(gDevTools, "gDevTools exists"); - - return gDevTools.showToolbox(target, "webconsole").then(function(aToolbox) { - toolbox = aToolbox; - checkToolLoading(); - }, console.error); -} - -function checkToolLoading() { - is(toolbox.currentToolId, "webconsole", "The web console is selected"); - ok(toolbox.isReady, "toolbox is ready") - - selectAndCheckById("jsdebugger").then(function() { - selectAndCheckById("styleeditor").then(function() { - testToggle(); - }); - }, console.error); -} - -function selectAndCheckById(id) { - let doc = toolbox.frame.contentDocument; - - return toolbox.selectTool(id).then(function() { - let tab = doc.getElementById("toolbox-tab-" + id); - is(tab.selected, true, "The " + id + " tab is selected"); - }); -} - -function testToggle() { - toolbox.once("destroyed", function() { - // Cannot reuse a target after it's destroyed. - target = TargetFactory.forTab(gBrowser.selectedTab); - gDevTools.showToolbox(target, "styleeditor").then(function(aToolbox) { - toolbox = aToolbox; - is(toolbox.currentToolId, "styleeditor", "The style editor is selected"); - finishUp(); - }); - }.bind(this)); - - toolbox.destroy(); -} - -function finishUp() { - toolbox.destroy().then(function() { - toolbox = null; - target = null; - gBrowser.removeCurrentTab(); - finish(); - }); -} diff --git a/browser/devtools/framework/test/browser_target_events.js b/browser/devtools/framework/test/browser_target_events.js deleted file mode 100644 index a9e386f4b..000000000 --- a/browser/devtools/framework/test/browser_target_events.js +++ /dev/null @@ -1,56 +0,0 @@ -/* vim: set ts=2 et sw=2 tw=80: */ -/* Any copyright is dedicated to the Public Domain. - http://creativecommons.org/publicdomain/zero/1.0/ */ - -var target; - -function test() -{ - waitForExplicitFinish(); - - gBrowser.selectedTab = gBrowser.addTab(); - gBrowser.selectedBrowser.addEventListener("load", onLoad, true); -} - -function onLoad(evt) { - gBrowser.selectedBrowser.removeEventListener(evt.type, onLoad, true); - - target = TargetFactory.forTab(gBrowser.selectedTab); - - is(target.tab, gBrowser.selectedTab, "Target linked to the right tab."); - - target.once("hidden", onHidden); - gBrowser.selectedTab = gBrowser.addTab(); -} - -function onHidden() { - ok(true, "Hidden event received"); - target.once("visible", onVisible); - gBrowser.removeCurrentTab(); -} - -function onVisible() { - ok(true, "Visible event received"); - target.once("will-navigate", onWillNavigate); - gBrowser.contentWindow.location = "data:text/html,test navigation"; -} - -function onWillNavigate(event, request) { - ok(true, "will-navigate event received"); - // Wait for navigation handling to complete before removing the tab, in order - // to avoid triggering assertions. - target.once("navigate", executeSoon.bind(null, onNavigate)); -} - -function onNavigate() { - ok(true, "navigate event received"); - target.once("close", onClose); - gBrowser.removeCurrentTab(); -} - -function onClose() { - ok(true, "close event received"); - - target = null; - finish(); -} diff --git a/browser/devtools/framework/test/browser_toolbox_dynamic_registration.js b/browser/devtools/framework/test/browser_toolbox_dynamic_registration.js deleted file mode 100644 index ae30f036a..000000000 --- a/browser/devtools/framework/test/browser_toolbox_dynamic_registration.js +++ /dev/null @@ -1,107 +0,0 @@ -/* vim: set ts=2 et sw=2 tw=80: */ -/* Any copyright is dedicated to the Public Domain. - http://creativecommons.org/publicdomain/zero/1.0/ */ - -let toolbox; - -function test() -{ - waitForExplicitFinish(); - - gBrowser.selectedTab = gBrowser.addTab(); - let target = TargetFactory.forTab(gBrowser.selectedTab); - - gBrowser.selectedBrowser.addEventListener("load", function onLoad(evt) { - gBrowser.selectedBrowser.removeEventListener(evt.type, onLoad, true); - gDevTools.showToolbox(target).then(testRegister); - }, true); - - content.location = "data:text/html,test for dynamically registering and unregistering tools"; -} - -function testRegister(aToolbox) -{ - toolbox = aToolbox - gDevTools.once("tool-registered", toolRegistered); - - gDevTools.registerTool({ - id: "test-tool", - label: "Test Tool", - isTargetSupported: function() true, - build: function() {} - }); -} - -function toolRegistered(event, toolId) -{ - is(toolId, "test-tool", "tool-registered event handler sent tool id"); - - ok(gDevTools.getToolDefinitionMap().has(toolId), "tool added to map"); - - // test that it appeared in the UI - let doc = toolbox.frame.contentDocument; - let tab = doc.getElementById("toolbox-tab-" + toolId); - ok(tab, "new tool's tab exists in toolbox UI"); - - let panel = doc.getElementById("toolbox-panel-" + toolId); - ok(panel, "new tool's panel exists in toolbox UI"); - - for (let win of getAllBrowserWindows()) { - let command = win.document.getElementById("Tools:" + toolId); - ok(command, "command for new tool added to every browser window"); - let menuitem = win.document.getElementById("menuitem_" + toolId); - ok(menuitem, "menu item of new tool added to every browser window"); - } - - // then unregister it - testUnregister(); -} - -function getAllBrowserWindows() { - let wins = []; - let enumerator = Services.wm.getEnumerator("navigator:browser"); - while (enumerator.hasMoreElements()) { - wins.push(enumerator.getNext()); - } - return wins; -} - -function testUnregister() -{ - gDevTools.once("tool-unregistered", toolUnregistered); - - gDevTools.unregisterTool("test-tool"); -} - -function toolUnregistered(event, toolDefinition) -{ - let toolId = toolDefinition.id; - is(toolId, "test-tool", "tool-unregistered event handler sent tool id"); - - ok(!gDevTools.getToolDefinitionMap().has(toolId), "tool removed from map"); - - // test that it disappeared from the UI - let doc = toolbox.frame.contentDocument; - let tab = doc.getElementById("toolbox-tab-" + toolId); - ok(!tab, "tool's tab was removed from the toolbox UI"); - - let panel = doc.getElementById("toolbox-panel-" + toolId); - ok(!panel, "tool's panel was removed from toolbox UI"); - - for (let win of getAllBrowserWindows()) { - let command = win.document.getElementById("Tools:" + toolId); - ok(!command, "command removed from every browser window"); - let menuitem = win.document.getElementById("menuitem_" + toolId); - ok(!menuitem, "menu item removed from every browser window"); - } - - cleanup(); -} - -function cleanup() -{ - toolbox.destroy(); - toolbox = null; - gBrowser.removeCurrentTab(); - finish(); -} diff --git a/browser/devtools/framework/test/browser_toolbox_highlight.js b/browser/devtools/framework/test/browser_toolbox_highlight.js deleted file mode 100644 index 3ba74a4b7..000000000 --- a/browser/devtools/framework/test/browser_toolbox_highlight.js +++ /dev/null @@ -1,84 +0,0 @@ -/* Any copyright is dedicated to the Public Domain. - * http://creativecommons.org/publicdomain/zero/1.0/ */ - -let Toolbox = devtools.Toolbox; -let temp = {}; -Cu.import("resource://gre/modules/Services.jsm", temp); -let Services = temp.Services; -temp = null; -let toolbox = null; - -function test() { - waitForExplicitFinish(); - - const URL = "data:text/plain;charset=UTF-8,Nothing to see here, move along"; - - const TOOL_ID_1 = "jsdebugger"; - const TOOL_ID_2 = "webconsole"; - - addTab(URL, () => { - let target = TargetFactory.forTab(gBrowser.selectedTab); - gDevTools.showToolbox(target, TOOL_ID_1, Toolbox.HostType.BOTTOM) - .then(aToolbox => { - toolbox = aToolbox; - // select tool 2 - toolbox.selectTool(TOOL_ID_2) - // and highlight the first one - .then(highlightTab.bind(null, TOOL_ID_1)) - // to see if it has the proper class. - .then(checkHighlighted.bind(null, TOOL_ID_1)) - // Now switch back to first tool - .then(() => toolbox.selectTool(TOOL_ID_1)) - // to check again. But there is no easy way to test if - // it is showing orange or not. - .then(checkNoHighlightWhenSelected.bind(null, TOOL_ID_1)) - // Switch to tool 2 again - .then(() => toolbox.selectTool(TOOL_ID_2)) - // and check again. - .then(checkHighlighted.bind(null, TOOL_ID_1)) - // Now unhighlight the tool - .then(unhighlightTab.bind(null, TOOL_ID_1)) - // to see the classes gone. - .then(checkNoHighlight.bind(null, TOOL_ID_1)) - // Now close the toolbox and exit. - .then(() => executeSoon(() => { - toolbox.destroy() - .then(() => { - toolbox = null; - gBrowser.removeCurrentTab(); - finish(); - }); - })); - }); - }); -} - -function highlightTab(toolId) { - info("Highlighting tool " + toolId + "'s tab."); - toolbox.highlightTool(toolId); -} - -function unhighlightTab(toolId) { - info("Unhighlighting tool " + toolId + "'s tab."); - toolbox.unhighlightTool(toolId); -} - -function checkHighlighted(toolId) { - let tab = toolbox.doc.getElementById("toolbox-tab-" + toolId); - ok(tab.classList.contains("highlighted"), "The highlighted class is present"); - ok(!tab.hasAttribute("selected") || tab.getAttribute("selected") != "true", - "The tab is not selected"); -} - -function checkNoHighlightWhenSelected(toolId) { - let tab = toolbox.doc.getElementById("toolbox-tab-" + toolId); - ok(tab.classList.contains("highlighted"), "The highlighted class is present"); - ok(tab.hasAttribute("selected") && tab.getAttribute("selected") == "true", - "and the tab is selected, so the orange glow will not be present."); -} - -function checkNoHighlight(toolId) { - let tab = toolbox.doc.getElementById("toolbox-tab-" + toolId); - ok(!tab.classList.contains("highlighted"), - "The highlighted class is not present"); -} diff --git a/browser/devtools/framework/test/browser_toolbox_hosts.js b/browser/devtools/framework/test/browser_toolbox_hosts.js deleted file mode 100644 index 5d451f01c..000000000 --- a/browser/devtools/framework/test/browser_toolbox_hosts.js +++ /dev/null @@ -1,132 +0,0 @@ -/* vim: set ts=2 et sw=2 tw=80: */ -/* Any copyright is dedicated to the Public Domain. - http://creativecommons.org/publicdomain/zero/1.0/ */ - -let temp = {} -Cu.import("resource:///modules/devtools/gDevTools.jsm", temp); -let DevTools = temp.DevTools; - -Cu.import("resource://gre/modules/devtools/Loader.jsm", temp); -let devtools = temp.devtools; - -let Toolbox = devtools.Toolbox; - -let toolbox, target; - -function test() -{ - waitForExplicitFinish(); - - gBrowser.selectedTab = gBrowser.addTab(); - target = TargetFactory.forTab(gBrowser.selectedTab); - - gBrowser.selectedBrowser.addEventListener("load", function onLoad(evt) { - gBrowser.selectedBrowser.removeEventListener(evt.type, onLoad, true); - gDevTools.showToolbox(target) - .then(testBottomHost, console.error) - .then(null, console.error); - }, true); - - content.location = "data:text/html,test for opening toolbox in different hosts"; -} - -function testBottomHost(aToolbox) -{ - toolbox = aToolbox; - - checkHostType(Toolbox.HostType.BOTTOM); - - // test UI presence - let nbox = gBrowser.getNotificationBox(); - let iframe = document.getAnonymousElementByAttribute(nbox, "class", "devtools-toolbox-bottom-iframe"); - ok(iframe, "toolbox bottom iframe exists"); - - checkToolboxLoaded(iframe); - - toolbox.switchHost(Toolbox.HostType.SIDE).then(testSidebarHost); -} - -function testSidebarHost() -{ - checkHostType(Toolbox.HostType.SIDE); - - // test UI presence - let nbox = gBrowser.getNotificationBox(); - let bottom = document.getAnonymousElementByAttribute(nbox, "class", "devtools-toolbox-bottom-iframe"); - ok(!bottom, "toolbox bottom iframe doesn't exist"); - - let iframe = document.getAnonymousElementByAttribute(nbox, "class", "devtools-toolbox-side-iframe"); - ok(iframe, "toolbox side iframe exists"); - - checkToolboxLoaded(iframe); - - toolbox.switchHost(Toolbox.HostType.WINDOW).then(testWindowHost); -} - -function testWindowHost() -{ - checkHostType(Toolbox.HostType.WINDOW); - - let nbox = gBrowser.getNotificationBox(); - let sidebar = document.getAnonymousElementByAttribute(nbox, "class", "devtools-toolbox-side-iframe"); - ok(!sidebar, "toolbox sidebar iframe doesn't exist"); - - let win = Services.wm.getMostRecentWindow("devtools:toolbox"); - ok(win, "toolbox separate window exists"); - - let iframe = win.document.getElementById("toolbox-iframe"); - checkToolboxLoaded(iframe); - - testToolSelect(); -} - -function testToolSelect() -{ - // make sure we can load a tool after switching hosts - toolbox.selectTool("inspector").then(testDestroy); -} - -function testDestroy() -{ - toolbox.destroy().then(function() { - target = TargetFactory.forTab(gBrowser.selectedTab); - gDevTools.showToolbox(target).then(testRememberHost); - }); -} - -function testRememberHost(aToolbox) -{ - toolbox = aToolbox; - // last host was the window - make sure it's the same when re-opening - is(toolbox.hostType, Toolbox.HostType.WINDOW, "host remembered"); - - let win = Services.wm.getMostRecentWindow("devtools:toolbox"); - ok(win, "toolbox separate window exists"); - - cleanup(); -} - -function checkHostType(hostType) -{ - is(toolbox.hostType, hostType, "host type is " + hostType); - - let pref = Services.prefs.getCharPref("devtools.toolbox.host"); - is(pref, hostType, "host pref is " + hostType); -} - -function checkToolboxLoaded(iframe) -{ - let tabs = iframe.contentDocument.getElementById("toolbox-tabs"); - ok(tabs, "toolbox UI has been loaded into iframe"); -} - -function cleanup() -{ - Services.prefs.setCharPref("devtools.toolbox.host", Toolbox.HostType.BOTTOM); - - toolbox.destroy().then(function() { - DevTools = Toolbox = toolbox = target = null; - gBrowser.removeCurrentTab(); - finish(); - }); - } diff --git a/browser/devtools/framework/test/browser_toolbox_options.js b/browser/devtools/framework/test/browser_toolbox_options.js deleted file mode 100644 index f24e03353..000000000 --- a/browser/devtools/framework/test/browser_toolbox_options.js +++ /dev/null @@ -1,163 +0,0 @@ -/* Any copyright is dedicated to the Public Domain. - * http://creativecommons.org/publicdomain/zero/1.0/ */ - -let doc = null, toolbox = null, panelWin = null, index = 0, prefValues = [], prefNodes = []; - -function test() { - waitForExplicitFinish(); - - gBrowser.selectedTab = gBrowser.addTab(); - let target = TargetFactory.forTab(gBrowser.selectedTab); - - gBrowser.selectedBrowser.addEventListener("load", function onLoad(evt) { - gBrowser.selectedBrowser.removeEventListener(evt.type, onLoad, true); - gDevTools.showToolbox(target).then(testSelectTool); - }, true); - - content.location = "data:text/html;charset=utf8,test for dynamically registering and unregistering tools"; -} - -function testSelectTool(aToolbox) { - toolbox = aToolbox; - doc = toolbox.doc; - toolbox.once("options-selected", testOptionsShortcut); - toolbox.selectTool("options"); -} - -function testOptionsShortcut() { - ok(true, "Toolbox selected via selectTool method"); - toolbox.once("options-selected", testOptions); - toolbox.selectTool("webconsole") - .then(() => synthesizeKeyFromKeyTag("toolbox-options-key", doc)); -} - -function testOptions(event, tool) { - ok(true, "Toolbox selected via button click"); - panelWin = tool.panelWin; - // Testing pref changes - let prefCheckboxes = tool.panelDoc.querySelectorAll("checkbox[data-pref]"); - for (let checkbox of prefCheckboxes) { - prefNodes.push(checkbox); - prefValues.push(Services.prefs.getBoolPref(checkbox.getAttribute("data-pref"))); - } - // Do again with opposite values to reset prefs - for (let checkbox of prefCheckboxes) { - prefNodes.push(checkbox); - prefValues.push(!Services.prefs.getBoolPref(checkbox.getAttribute("data-pref"))); - } - testMouseClicks(); -} - -function testMouseClicks() { - if (index == prefValues.length) { - checkTools(); - return; - } - gDevTools.once("pref-changed", prefChanged); - info("Click event synthesized for index " + index); - prefNodes[index].scrollIntoView(); - - // We use executeSoon here to ensure that the element is in view and - // clickable. - executeSoon(function() { - EventUtils.synthesizeMouseAtCenter(prefNodes[index], {}, panelWin); - }); -} - -function prefChanged(event, data) { - if (data.pref == prefNodes[index].getAttribute("data-pref")) { - ok(true, "Correct pref was changed"); - is(data.oldValue, prefValues[index], "Previous value is correct"); - is(data.newValue, !prefValues[index], "New value is correct"); - index++; - testMouseClicks(); - return; - } - ok(false, "Pref was not changed correctly"); - cleanup(); -} - -function checkTools() { - let toolsPref = panelWin.document.querySelectorAll("#default-tools-box > checkbox"); - prefNodes = []; - index = 0; - for (let tool of toolsPref) { - prefNodes.push(tool); - } - // Randomize the order in which we remove the tool and then add them back so - // that we get to know if the tabs are correctly placed as per their ordinals. - prefNodes = prefNodes.sort(() => Math.random() > 0.5 ? 1: -1); - - // Wait for the next turn of the event loop to avoid stack overflow errors. - executeSoon(toggleTools); -} - -function toggleTools() { - if (index < prefNodes.length) { - gDevTools.once("tool-unregistered", checkUnregistered); - let node = prefNodes[index]; - node.scrollIntoView(); - EventUtils.synthesizeMouseAtCenter(node, {}, panelWin); - } - else if (index < 2*prefNodes.length) { - gDevTools.once("tool-registered", checkRegistered); - let node = prefNodes[index - prefNodes.length]; - node.scrollIntoView(); - EventUtils.synthesizeMouseAtCenter(node, {}, panelWin); - } - else { - cleanup(); - } -} - -function checkUnregistered(event, data) { - if (data.id == prefNodes[index].getAttribute("id")) { - ok(true, "Correct tool removed"); - // checking tab on the toolbox - ok(!doc.getElementById("toolbox-tab-" + data.id), "Tab removed for " + - data.id); - index++; - // Wait for the next turn of the event loop to avoid stack overflow errors. - executeSoon(toggleTools); - return; - } - ok(false, "Something went wrong, " + data.id + " was not unregistered"); - cleanup(); -} - -function checkRegistered(event, data) { - if (data == prefNodes[index - prefNodes.length].getAttribute("id")) { - ok(true, "Correct tool added back"); - // checking tab on the toolbox - let radio = doc.getElementById("toolbox-tab-" + data); - ok(radio, "Tab added back for " + data); - if (radio.previousSibling) { - ok(+radio.getAttribute("ordinal") >= - +radio.previousSibling.getAttribute("ordinal"), - "Inserted tab's ordinal is greater than equal to its previous tab." + - "Expected " + radio.getAttribute("ordinal") + " >= " + - radio.previousSibling.getAttribute("ordinal")); - } - if (radio.nextSibling) { - ok(+radio.getAttribute("ordinal") < - +radio.nextSibling.getAttribute("ordinal"), - "Inserted tab's ordinal is less than its next tab. Expected " + - radio.getAttribute("ordinal") + " < " + - radio.nextSibling.getAttribute("ordinal")); - } - index++; - // Wait for the next turn of the event loop to avoid stack overflow errors. - executeSoon(toggleTools); - return; - } - ok(false, "Something went wrong, " + data + " was not registered back"); - cleanup(); -} - -function cleanup() { - toolbox.destroy().then(function() { - gBrowser.removeCurrentTab(); - toolbox = doc = prefNodes = prefValues = panelWin = null; - finish(); - }); -} diff --git a/browser/devtools/framework/test/browser_toolbox_options_disablejs.html b/browser/devtools/framework/test/browser_toolbox_options_disablejs.html deleted file mode 100644 index 4e9a65685..000000000 --- a/browser/devtools/framework/test/browser_toolbox_options_disablejs.html +++ /dev/null @@ -1,45 +0,0 @@ -<html> - <head> - <title>browser_toolbox_options_disablejs.html</title> - <meta charset="UTF-8"> - <style> - div { - width: 260px; - height: 24px; - border: 1px solid #000; - margin-top: 10px; - } - - iframe { - height: 90px; - border: 1px solid #000; - } - - h1 { - font-size: 20px - } - </style> - <script type="application/javascript;version=1.8"> - function log(msg) { - let output = document.getElementById("output"); - - output.innerHTML = msg; - } - </script> - </head> - <body> - <h1>Test in page</h1> - <input id="logJSEnabled" - type="button" - value="Log JS Enabled" - onclick="log('JavaScript Enabled')"/> - <input id="logJSDisabled" - type="button" - value="Log JS Disabled" - onclick="log('JavaScript Disabled')"/> - <br> - <div id="output">No output</div> - <h1>Test in iframe</h1> - <iframe src="browser_toolbox_options_disablejs_iframe.html"></iframe> - </body> -</html> diff --git a/browser/devtools/framework/test/browser_toolbox_options_disablejs.js b/browser/devtools/framework/test/browser_toolbox_options_disablejs.js deleted file mode 100644 index 36c77f2ab..000000000 --- a/browser/devtools/framework/test/browser_toolbox_options_disablejs.js +++ /dev/null @@ -1,128 +0,0 @@ -/* Any copyright is dedicated to the Public Domain. - * http://creativecommons.org/publicdomain/zero/1.0/ */ - -// Tests that disabling JavaScript for a tab works as it should. - -const TEST_URI = "http://example.com/browser/browser/devtools/framework/" + - "test/browser_toolbox_options_disablejs.html"; - -let doc; -let toolbox; - -function test() { - waitForExplicitFinish(); - - gBrowser.selectedTab = gBrowser.addTab(); - let target = TargetFactory.forTab(gBrowser.selectedTab); - - gBrowser.selectedBrowser.addEventListener("load", function onLoad(evt) { - gBrowser.selectedBrowser.removeEventListener(evt.type, onLoad, true); - doc = content.document; - gDevTools.showToolbox(target).then(testSelectTool); - }, true); - - content.location = TEST_URI; -} - -function testSelectTool(aToolbox) { - toolbox = aToolbox; - toolbox.once("options-selected", testJSEnabled); - toolbox.selectTool("options"); -} - -function testJSEnabled(event, tool, secondPass) { - ok(true, "Toolbox selected via selectTool method"); - info("Testing that JS is enabled"); - - let logJSEnabled = doc.getElementById("logJSEnabled"); - let output = doc.getElementById("output"); - - // We use executeSoon here because switching docSehll.allowJavascript to true - // takes a while to become live. - executeSoon(function() { - EventUtils.synthesizeMouseAtCenter(logJSEnabled, {}, doc.defaultView); - is(output.textContent, "JavaScript Enabled", 'Output is "JavaScript Enabled"'); - testJSEnabledIframe(secondPass); - }); -} - -function testJSEnabledIframe(secondPass) { - info("Testing that JS is enabled in the iframe"); - - let iframe = doc.querySelector("iframe"); - let iframeDoc = iframe.contentDocument; - let logJSEnabled = iframeDoc.getElementById("logJSEnabled"); - let output = iframeDoc.getElementById("output"); - - EventUtils.synthesizeMouseAtCenter(logJSEnabled, {}, iframe.contentWindow); - is(output.textContent, "JavaScript Enabled", - 'Output is "JavaScript Enabled" in iframe'); - if (secondPass) { - finishUp(); - } else { - toggleJS().then(testJSDisabled); - } -} - -function toggleJS() { - let deferred = Promise.defer(); - let panel = toolbox.getCurrentPanel(); - let cbx = panel.panelDoc.getElementById("devtools-disable-javascript"); - - cbx.scrollIntoView(); - - if (cbx.checked) { - info("Clearing checkbox to re-enable JS"); - } else { - info("Checking checkbox to disable JS"); - } - - // After uising scrollIntoView() we need to use executeSoon() to wait for the - // browser to scroll. - executeSoon(function() { - gBrowser.selectedBrowser.addEventListener("load", function onLoad(evt) { - gBrowser.selectedBrowser.removeEventListener(evt.type, onLoad, true); - doc = content.document; - - deferred.resolve(); - }, true); - - EventUtils.synthesizeMouseAtCenter(cbx, {}, panel.panelWin); - }); - - return deferred.promise; -} - -function testJSDisabled() { - info("Testing that JS is disabled"); - - let logJSDisabled = doc.getElementById("logJSDisabled"); - let output = doc.getElementById("output"); - - EventUtils.synthesizeMouseAtCenter(logJSDisabled, {}, doc.defaultView); - ok(output.textContent !== "JavaScript Disabled", - 'output is not "JavaScript Disabled"'); - - testJSDisabledIframe(); -} - -function testJSDisabledIframe() { - info("Testing that JS is disabled in the iframe"); - - let iframe = doc.querySelector("iframe"); - let iframeDoc = iframe.contentDocument; - let logJSDisabled = iframeDoc.getElementById("logJSDisabled"); - let output = iframeDoc.getElementById("output"); - - EventUtils.synthesizeMouseAtCenter(logJSDisabled, {}, iframe.contentWindow); - ok(output.textContent !== "JavaScript Disabled", - 'output is not "JavaScript Disabled" in iframe'); - toggleJS().then(function() { - testJSEnabled(null, null, true); - }); -} - -function finishUp() { - doc = toolbox = null; - finish(); -} diff --git a/browser/devtools/framework/test/browser_toolbox_options_disablejs_iframe.html b/browser/devtools/framework/test/browser_toolbox_options_disablejs_iframe.html deleted file mode 100644 index 777bf86bf..000000000 --- a/browser/devtools/framework/test/browser_toolbox_options_disablejs_iframe.html +++ /dev/null @@ -1,33 +0,0 @@ -<html> - <head> - <title>browser_toolbox_options_disablejs.html</title> - <meta charset="UTF-8"> - <style> - div { - width: 260px; - height: 24px; - border: 1px solid #000; - margin-top: 10px; - } - </style> - <script type="application/javascript;version=1.8"> - function log(msg) { - let output = document.getElementById("output"); - - output.innerHTML = msg; - } - </script> - </head> - <body> - <input id="logJSEnabled" - type="button" - value="Log JS Enabled" - onclick="log('JavaScript Enabled')"/> - <input id="logJSDisabled" - type="button" - value="Log JS Disabled" - onclick="log('JavaScript Disabled')"/> - <br> - <div id="output">No output</div> - </body> -</html> diff --git a/browser/devtools/framework/test/browser_toolbox_ready.js b/browser/devtools/framework/test/browser_toolbox_ready.js deleted file mode 100644 index 29336406b..000000000 --- a/browser/devtools/framework/test/browser_toolbox_ready.js +++ /dev/null @@ -1,43 +0,0 @@ -/* vim: set ts=2 et sw=2 tw=80: */ -/* Any copyright is dedicated to the Public Domain. - http://creativecommons.org/publicdomain/zero/1.0/ */ - -function test() -{ - waitForExplicitFinish(); - - gBrowser.selectedTab = gBrowser.addTab(); - let target = TargetFactory.forTab(gBrowser.selectedTab); - - gBrowser.selectedBrowser.addEventListener("load", function onLoad(evt) { - gBrowser.selectedBrowser.removeEventListener(evt.type, onLoad, true); - gDevTools.showToolbox(target).then(testReady); - }, true); - - content.location = "data:text/html,test for dynamically registering and unregistering tools"; -} - -function testReady(toolbox) -{ - ok(toolbox.isReady, "toolbox isReady is set"); - testDouble(toolbox); -} - -function testDouble(toolbox) -{ - let target = toolbox.target; - let toolId = toolbox.currentToolId; - - gDevTools.showToolbox(target, toolId).then(function(toolbox2) { - is(toolbox2, toolbox, "same toolbox"); - cleanup(toolbox); - }); -} - -function cleanup(toolbox) -{ - toolbox.destroy().then(function() { - gBrowser.removeCurrentTab(); - finish(); - }); -} diff --git a/browser/devtools/framework/test/browser_toolbox_select_event.js b/browser/devtools/framework/test/browser_toolbox_select_event.js deleted file mode 100644 index 58465b94a..000000000 --- a/browser/devtools/framework/test/browser_toolbox_select_event.js +++ /dev/null @@ -1,98 +0,0 @@ -/* Any copyright is dedicated to the Public Domain. - * http://creativecommons.org/publicdomain/zero/1.0/ */ - -let toolbox; - -function test() { - addTab("about:blank", function() { - let target = TargetFactory.forTab(gBrowser.selectedTab); - gDevTools.showToolbox(target, "webconsole").then(testSelect); - }); -} - -let called = { - inspector: false, - webconsole: false, - styleeditor: false, - //jsdebugger: false, -} - -function testSelect(aToolbox) { - toolbox = aToolbox; - - info("Toolbox fired a `ready` event"); - - toolbox.on("select", selectCB); - - toolbox.selectTool("inspector"); - toolbox.selectTool("webconsole"); - toolbox.selectTool("styleeditor"); - //toolbox.selectTool("jsdebugger"); -} - -function selectCB(event, id) { - called[id] = true; - info("toolbox-select event from " + id); - - for (let tool in called) { - if (!called[tool]) { - return; - } - } - - ok(true, "All the tools fired a 'select event'"); - toolbox.off("select", selectCB); - - reselect(); -} - -function reselect() { - for (let tool in called) { - called[tool] = false; - } - - toolbox.once("inspector-selected", function() { - tidyUpIfAllCalled("inspector"); - }); - - toolbox.once("webconsole-selected", function() { - tidyUpIfAllCalled("webconsole"); - }); - - /* - toolbox.once("jsdebugger-selected", function() { - tidyUpIfAllCalled("jsdebugger"); - }); - */ - - toolbox.once("styleeditor-selected", function() { - tidyUpIfAllCalled("styleeditor"); - }); - - toolbox.selectTool("inspector"); - toolbox.selectTool("webconsole"); - toolbox.selectTool("styleeditor"); - //toolbox.selectTool("jsdebugger"); -} - -function tidyUpIfAllCalled(id) { - called[id] = true; - info("select event from " + id); - - for (let tool in called) { - if (!called[tool]) { - return; - } - } - - ok(true, "All the tools fired a {id}-selected event"); - tidyUp(); -} - -function tidyUp() { - toolbox.destroy(); - gBrowser.removeCurrentTab(); - - toolbox = null; - finish(); -} diff --git a/browser/devtools/framework/test/browser_toolbox_sidebar.js b/browser/devtools/framework/test/browser_toolbox_sidebar.js deleted file mode 100644 index 63bc6ab0d..000000000 --- a/browser/devtools/framework/test/browser_toolbox_sidebar.js +++ /dev/null @@ -1,150 +0,0 @@ -/* Any copyright is dedicated to the Public Domain. - * http://creativecommons.org/publicdomain/zero/1.0/ */ - -function test() { - const Cu = Components.utils; - let {ToolSidebar} = devtools.require("devtools/framework/sidebar"); - - const toolURL = "data:text/xml;charset=utf8,<?xml version='1.0'?>" + - "<?xml-stylesheet href='chrome://browser/skin/devtools/common.css' type='text/css'?>" + - "<window xmlns='http://www.mozilla.org/keymaster/gatekeeper/there.is.only.xul'>" + - "<hbox flex='1'><description flex='1'>foo</description><splitter class='devtools-side-splitter'/>" + - "<tabbox flex='1' id='sidebar' class='devtools-sidebar-tabs'><tabs/><tabpanels flex='1'/></tabbox>" + - "</hbox>" + - "</window>"; - - const tab1URL = "data:text/html;charset=utf8,<title>1</title><p>1</p>"; - const tab2URL = "data:text/html;charset=utf8,<title>2</title><p>2</p>"; - const tab3URL = "data:text/html;charset=utf8,<title>3</title><p>3</p>"; - - let panelDoc; - let tab1Selected = false; - let registeredTabs = {}; - let readyTabs = {}; - - let toolDefinition = { - id: "fakeTool4242", - visibilityswitch: "devtools.fakeTool4242.enabled", - url: toolURL, - label: "FAKE TOOL!!!", - isTargetSupported: function() true, - build: function(iframeWindow, toolbox) { - let deferred = Promise.defer(); - executeSoon(function() { - deferred.resolve({ - target: toolbox.target, - toolbox: toolbox, - isReady: true, - destroy: function(){}, - panelDoc: iframeWindow.document, - }); - }.bind(this)); - return deferred.promise; - }, - }; - - gDevTools.registerTool(toolDefinition); - - addTab("about:blank", function(aBrowser, aTab) { - let target = TargetFactory.forTab(gBrowser.selectedTab); - gDevTools.showToolbox(target, toolDefinition.id).then(function(toolbox) { - let panel = toolbox.getPanel(toolDefinition.id); - ok(true, "Tool open"); - - let tabbox = panel.panelDoc.getElementById("sidebar"); - panel.sidebar = new ToolSidebar(tabbox, panel, "testbug865688", true); - - panel.sidebar.on("new-tab-registered", function(event, id) { - registeredTabs[id] = true; - }); - - panel.sidebar.once("tab1-ready", function(event) { - info(event); - readyTabs.tab1 = true; - allTabsReady(panel); - }); - - panel.sidebar.once("tab2-ready", function(event) { - info(event); - readyTabs.tab2 = true; - allTabsReady(panel); - }); - - panel.sidebar.once("tab3-ready", function(event) { - info(event); - readyTabs.tab3 = true; - allTabsReady(panel); - }); - - panel.sidebar.once("tab1-selected", function(event) { - info(event); - tab1Selected = true; - allTabsReady(panel); - }); - - panel.sidebar.addTab("tab1", tab1URL, true); - panel.sidebar.addTab("tab2", tab2URL); - panel.sidebar.addTab("tab3", tab3URL); - - panel.sidebar.show(); - }).then(null, console.error); - }); - - function allTabsReady(panel) { - if (!tab1Selected || !readyTabs.tab1 || !readyTabs.tab2 || !readyTabs.tab3) { - return; - } - - ok(registeredTabs.tab1, "tab1 registered"); - ok(registeredTabs.tab2, "tab2 registered"); - ok(registeredTabs.tab3, "tab3 registered"); - ok(readyTabs.tab1, "tab1 ready"); - ok(readyTabs.tab2, "tab2 ready"); - ok(readyTabs.tab3, "tab3 ready"); - - let tabs = panel.sidebar._tabbox.querySelectorAll("tab"); - let panels = panel.sidebar._tabbox.querySelectorAll("tabpanel"); - let label = 1; - for (let tab of tabs) { - is(tab.getAttribute("label"), label++, "Tab has the right title"); - } - is(label, 4, "Found the right amount of tabs."); - is(panel.sidebar._tabbox.selectedPanel, panels[0], "First tab is selected"); - ok(panel.sidebar.getCurrentTabID(), "tab1", "getCurrentTabID() is correct"); - - panel.sidebar.once("tab1-unselected", function() { - ok(true, "received 'unselected' event"); - panel.sidebar.once("tab2-selected", function() { - ok(true, "received 'selected' event"); - panel.sidebar.hide(); - is(panel.sidebar._tabbox.getAttribute("hidden"), "true", "Sidebar hidden"); - is(panel.sidebar.getWindowForTab("tab1").location.href, tab1URL, "Window is accessible"); - testWidth(panel); - }); - }); - - panel.sidebar.select("tab2"); - } - - function testWidth(panel) { - let tabbox = panel.panelDoc.getElementById("sidebar"); - tabbox.width = 420; - panel.sidebar.destroy().then(function() { - tabbox.width = 0; - panel.sidebar = new ToolSidebar(tabbox, panel, "testbug865688", true); - panel.sidebar.show(); - is(panel.panelDoc.getElementById("sidebar").width, 420, "Width restored") - finishUp(panel); - }); - } - - function finishUp(panel) { - panel.sidebar.destroy(); - gDevTools.unregisterTool(toolDefinition.id); - - executeSoon(function() { - gBrowser.removeCurrentTab(); - finish(); - }); - } -} diff --git a/browser/devtools/framework/test/browser_toolbox_tool_ready.js b/browser/devtools/framework/test/browser_toolbox_tool_ready.js deleted file mode 100644 index 061815518..000000000 --- a/browser/devtools/framework/test/browser_toolbox_tool_ready.js +++ /dev/null @@ -1,32 +0,0 @@ -/* Any copyright is dedicated to the Public Domain. - http://creativecommons.org/publicdomain/zero/1.0/ */ - -function test() { - addTab().then(function(data) { - let toolIds = gDevTools.getToolDefinitionArray().map((def) => def.id); - - let open = function(index) { - let toolId = toolIds[index]; - - info("About to open " + index + "/" + toolId); - gDevTools.showToolbox(data.target, toolId).then(function(toolbox) { - ok(toolbox, "toolbox exists for " + toolId); - is(toolbox.currentToolId, toolId, "currentToolId should be " + toolId); - - let panel = toolbox.getCurrentPanel(); - ok(panel.isReady, toolId + " panel should be ready"); - - let nextIndex = index + 1; - if (nextIndex >= toolIds.length) { - toolbox.destroy(); - finish(); - } - else { - open(nextIndex); - } - }, console.error); - }; - - open(0); - }).then(null, console.error); -} diff --git a/browser/devtools/framework/test/browser_toolbox_window_shortcuts.js b/browser/devtools/framework/test/browser_toolbox_window_shortcuts.js deleted file mode 100644 index be40d5591..000000000 --- a/browser/devtools/framework/test/browser_toolbox_window_shortcuts.js +++ /dev/null @@ -1,78 +0,0 @@ -/* Any copyright is dedicated to the Public Domain. - * http://creativecommons.org/publicdomain/zero/1.0/ */ - -let Toolbox = devtools.Toolbox; - -let toolbox, toolIDs, idIndex; - -function test() { - waitForExplicitFinish(); - - if (window.navigator.userAgent.indexOf("Mac OS X 10.8") != -1 || - window.navigator.userAgent.indexOf("Windows NT 5.1") != -1) { - info("Skipping Mac OSX 10.8 and Windows xp, see bug 838069"); - finish(); - return; - } - addTab("about:blank", function() { - toolIDs = []; - for (let [id, definition] of gDevTools._tools) { - // Skipping Profiler due to bug 838069. Re-enable when bug 845752 is fixed - if (definition.key && id != "jsprofiler") { - toolIDs.push(id); - } - } - let target = TargetFactory.forTab(gBrowser.selectedTab); - idIndex = 0; - gDevTools.showToolbox(target, toolIDs[0], Toolbox.HostType.WINDOW) - .then(testShortcuts); - }); -} - -function testShortcuts(aToolbox, aIndex) { - if (aIndex == toolIDs.length) { - tidyUp(); - return; - } - - toolbox = aToolbox; - info("Toolbox fired a `ready` event"); - - toolbox.once("select", selectCB); - - if (aIndex != null) { - // This if block is to allow the call of selectCB without shortcut press for - // the first time. That happens because on opening of toolbox, one tool gets - // selected atleast. - - let key = gDevTools._tools.get(toolIDs[aIndex]).key; - let toolModifiers = gDevTools._tools.get(toolIDs[aIndex]).modifiers; - let modifiers = { - accelKey: toolModifiers.contains("accel"), - altKey: toolModifiers.contains("alt"), - shiftKey: toolModifiers.contains("shift"), - }; - idIndex = aIndex; - info("Testing shortcut for tool " + aIndex + ":" + toolIDs[aIndex] + - " using key " + key); - EventUtils.synthesizeKey(key, modifiers, toolbox.doc.defaultView.parent); - } -} - -function selectCB(event, id) { - info("toolbox-select event from " + id); - - is(toolIDs.indexOf(id), idIndex, - "Correct tool is selected on pressing the shortcut for " + id); - - testShortcuts(toolbox, idIndex + 1); -} - -function tidyUp() { - toolbox.destroy().then(function() { - gBrowser.removeCurrentTab(); - - toolbox = toolIDs = idIndex = Toolbox = null; - finish(); - }); -} diff --git a/browser/devtools/framework/test/browser_toolbox_window_title_changes.js b/browser/devtools/framework/test/browser_toolbox_window_title_changes.js deleted file mode 100644 index 6cf238eeb..000000000 --- a/browser/devtools/framework/test/browser_toolbox_window_title_changes.js +++ /dev/null @@ -1,84 +0,0 @@ -/* Any copyright is dedicated to the Public Domain. - * http://creativecommons.org/publicdomain/zero/1.0/ */ - -let Toolbox = devtools.Toolbox; -let temp = {}; -Cu.import("resource://gre/modules/Services.jsm", temp); -let Services = temp.Services; -temp = null; - -function test() { - waitForExplicitFinish(); - - const URL_1 = "data:text/plain;charset=UTF-8,abcde"; - const URL_2 = "data:text/plain;charset=UTF-8,12345"; - - const TOOL_ID_1 = "webconsole"; - const TOOL_ID_2 = "jsdebugger"; - - const LABEL_1 = "Console"; - const LABEL_2 = "Debugger"; - - let toolbox; - - addTab(URL_1, function () { - let target = TargetFactory.forTab(gBrowser.selectedTab); - gDevTools.showToolbox(target, null, Toolbox.HostType.BOTTOM) - .then(function (aToolbox) { toolbox = aToolbox; }) - .then(function () toolbox.selectTool(TOOL_ID_1)) - - // undock toolbox and check title - .then(function () toolbox.switchHost(Toolbox.HostType.WINDOW)) - .then(checkTitle.bind(null, LABEL_1, URL_1, "toolbox undocked")) - - // switch to different tool and check title - .then(function () toolbox.selectTool(TOOL_ID_2)) - .then(checkTitle.bind(null, LABEL_2, URL_1, "tool changed")) - - // navigate to different url and check title - .then(function () { - let deferred = Promise.defer(); - target.once("navigate", function () deferred.resolve()); - gBrowser.loadURI(URL_2); - return deferred.promise; - }) - .then(checkTitle.bind(null, LABEL_2, URL_2, "url changed")) - - // destroy toolbox, create new one hosted in a window (with a - // different tool id), and check title - .then(function () { - // Give the tools a chance to handle the navigation event before - // destroying the toolbox. - executeSoon(function() { - toolbox.destroy() - .then(function () { - // After destroying the toolbox, a fresh target is required. - target = TargetFactory.forTab(gBrowser.selectedTab); - return gDevTools.showToolbox(target, null, Toolbox.HostType.WINDOW); - }) - .then(function (aToolbox) { toolbox = aToolbox; }) - .then(function () toolbox.selectTool(TOOL_ID_1)) - .then(checkTitle.bind(null, LABEL_1, URL_2, - "toolbox destroyed and recreated")) - - // clean up - .then(function () toolbox.destroy()) - .then(function () { - toolbox = null; - gBrowser.removeCurrentTab(); - Services.prefs.clearUserPref("devtools.toolbox.host"); - Services.prefs.clearUserPref("devtools.toolbox.selectedTool"); - Services.prefs.clearUserPref("devtools.toolbox.sideEnabled"); - finish(); - }); - }); - }); - }); -} - -function checkTitle(toolLabel, url, context) { - let win = Services.wm.getMostRecentWindow("devtools:toolbox"); - let definitions = gDevTools.getToolDefinitionMap(); - let expectedTitle = toolLabel + " - " + url; - is(win.document.title, expectedTitle, context); -} diff --git a/browser/devtools/framework/test/head.js b/browser/devtools/framework/test/head.js deleted file mode 100644 index 84a144a74..000000000 --- a/browser/devtools/framework/test/head.js +++ /dev/null @@ -1,78 +0,0 @@ -/* 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/. */ - -let TargetFactory = gDevTools.TargetFactory; - -let tempScope = {}; -Components.utils.import("resource://gre/modules/devtools/Console.jsm", tempScope); -let console = tempScope.console; -Components.utils.import("resource://gre/modules/commonjs/sdk/core/promise.js", tempScope); -let Promise = tempScope.Promise; - -let {devtools} = Components.utils.import("resource://gre/modules/devtools/Loader.jsm", {}); -let TargetFactory = devtools.TargetFactory; - -/** - * Open a new tab at a URL and call a callback on load - */ -function addTab(aURL, aCallback) -{ - waitForExplicitFinish(); - - gBrowser.selectedTab = gBrowser.addTab(); - if (aURL != null) { - content.location = aURL; - } - - let deferred = Promise.defer(); - - let tab = gBrowser.selectedTab; - let target = TargetFactory.forTab(gBrowser.selectedTab); - let browser = gBrowser.getBrowserForTab(tab); - - function onTabLoad() { - browser.removeEventListener("load", onTabLoad, true); - - if (aCallback != null) { - aCallback(browser, tab, browser.contentDocument); - } - - deferred.resolve({ browser: browser, tab: tab, target: target }); - } - - browser.addEventListener("load", onTabLoad, true); - return deferred.promise; -} - -registerCleanupFunction(function tearDown() { - while (gBrowser.tabs.length > 1) { - gBrowser.removeCurrentTab(); - } -}); - -function synthesizeKeyFromKeyTag(aKeyId, document) { - let key = document.getElementById(aKeyId); - isnot(key, null, "Successfully retrieved the <key> node"); - - let modifiersAttr = key.getAttribute("modifiers"); - - let name = null; - - if (key.getAttribute("keycode")) - name = key.getAttribute("keycode"); - else if (key.getAttribute("key")) - name = key.getAttribute("key"); - - isnot(name, null, "Successfully retrieved keycode/key"); - - let modifiers = { - shiftKey: modifiersAttr.match("shift"), - ctrlKey: modifiersAttr.match("ctrl"), - altKey: modifiersAttr.match("alt"), - metaKey: modifiersAttr.match("meta"), - accelKey: modifiersAttr.match("accel") - } - - EventUtils.synthesizeKey(name, modifiers); -} diff --git a/browser/devtools/framework/test/moz.build b/browser/devtools/framework/test/moz.build deleted file mode 100644 index 895d11993..000000000 --- a/browser/devtools/framework/test/moz.build +++ /dev/null @@ -1,6 +0,0 @@ -# -*- Mode: python; c-basic-offset: 4; indent-tabs-mode: nil; tab-width: 40 -*- -# vim: set filetype=python: -# 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/. - |