summaryrefslogtreecommitdiffstats
path: root/devtools/client/framework/test/browser_toolbox_sidebar_events.js
diff options
context:
space:
mode:
authorMatt A. Tobin <mattatobin@localhost.localdomain>2018-02-02 04:16:08 -0500
committerMatt A. Tobin <mattatobin@localhost.localdomain>2018-02-02 04:16:08 -0500
commit5f8de423f190bbb79a62f804151bc24824fa32d8 (patch)
tree10027f336435511475e392454359edea8e25895d /devtools/client/framework/test/browser_toolbox_sidebar_events.js
parent49ee0794b5d912db1f95dce6eb52d781dc210db5 (diff)
downloadUXP-5f8de423f190bbb79a62f804151bc24824fa32d8.tar
UXP-5f8de423f190bbb79a62f804151bc24824fa32d8.tar.gz
UXP-5f8de423f190bbb79a62f804151bc24824fa32d8.tar.lz
UXP-5f8de423f190bbb79a62f804151bc24824fa32d8.tar.xz
UXP-5f8de423f190bbb79a62f804151bc24824fa32d8.zip
Add m-esr52 at 52.6.0
Diffstat (limited to 'devtools/client/framework/test/browser_toolbox_sidebar_events.js')
-rw-r--r--devtools/client/framework/test/browser_toolbox_sidebar_events.js93
1 files changed, 93 insertions, 0 deletions
diff --git a/devtools/client/framework/test/browser_toolbox_sidebar_events.js b/devtools/client/framework/test/browser_toolbox_sidebar_events.js
new file mode 100644
index 000000000..9137aaebe
--- /dev/null
+++ b/devtools/client/framework/test/browser_toolbox_sidebar_events.js
@@ -0,0 +1,93 @@
+/* -*- indent-tabs-mode: nil; js-indent-level: 2 -*- */
+/* vim: set ft=javascript ts=2 et sw=2 tw=80: */
+/* Any copyright is dedicated to the Public Domain.
+ * http://creativecommons.org/publicdomain/zero/1.0/ */
+
+function test() {
+ const Cu = Components.utils;
+ const { ToolSidebar } = require("devtools/client/framework/sidebar");
+
+ const toolURL = "data:text/xml;charset=utf8,<?xml version='1.0'?>" +
+ "<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>";
+
+ let collectedEvents = [];
+
+ let toolDefinition = {
+ id: "testTool1072208",
+ visibilityswitch: "devtools.testTool1072208.enabled",
+ url: toolURL,
+ label: "Test tool",
+ isTargetSupported: () => true,
+ build: function (iframeWindow, toolbox) {
+ let deferred = defer();
+ executeSoon(() => {
+ deferred.resolve({
+ target: toolbox.target,
+ toolbox: toolbox,
+ isReady: true,
+ destroy: function () {},
+ panelDoc: iframeWindow.document,
+ });
+ });
+ return deferred.promise;
+ },
+ };
+
+ gDevTools.registerTool(toolDefinition);
+
+ addTab("about:blank").then(function (aTab) {
+ let target = TargetFactory.forTab(aTab);
+ gDevTools.showToolbox(target, toolDefinition.id).then(function (toolbox) {
+ let panel = toolbox.getPanel(toolDefinition.id);
+ ok(true, "Tool open");
+
+ panel.once("sidebar-created", function (event, id) {
+ collectedEvents.push(event);
+ });
+
+ panel.once("sidebar-destroyed", function (event, id) {
+ collectedEvents.push(event);
+ });
+
+ let tabbox = panel.panelDoc.getElementById("sidebar");
+ panel.sidebar = new ToolSidebar(tabbox, panel, "testbug1072208", true);
+
+ panel.sidebar.once("show", function (event, id) {
+ collectedEvents.push(event);
+ });
+
+ panel.sidebar.once("hide", function (event, id) {
+ collectedEvents.push(event);
+ });
+
+ panel.sidebar.once("tab1-selected", () => finishUp(panel));
+ panel.sidebar.addTab("tab1", tab1URL, {selected: true});
+ panel.sidebar.show();
+ }).then(null, console.error);
+ });
+
+ function finishUp(panel) {
+ panel.sidebar.hide();
+ panel.sidebar.destroy();
+
+ let events = collectedEvents.join(":");
+ is(events, "sidebar-created:show:hide:sidebar-destroyed",
+ "Found the right amount of collected events.");
+
+ panel.toolbox.destroy().then(function () {
+ gDevTools.unregisterTool(toolDefinition.id);
+ gBrowser.removeCurrentTab();
+
+ executeSoon(function () {
+ finish();
+ });
+ });
+ }
+}
+