summaryrefslogtreecommitdiffstats
path: root/devtools/client/framework/test/browser_devtools_api_destroy.js
diff options
context:
space:
mode:
Diffstat (limited to 'devtools/client/framework/test/browser_devtools_api_destroy.js')
-rw-r--r--devtools/client/framework/test/browser_devtools_api_destroy.js72
1 files changed, 72 insertions, 0 deletions
diff --git a/devtools/client/framework/test/browser_devtools_api_destroy.js b/devtools/client/framework/test/browser_devtools_api_destroy.js
new file mode 100644
index 0000000000..736455df65
--- /dev/null
+++ b/devtools/client/framework/test/browser_devtools_api_destroy.js
@@ -0,0 +1,72 @@
+/* Any copyright is dedicated to the Public Domain.
+ * http://creativecommons.org/publicdomain/zero/1.0/ */
+
+// Tests devtools API
+
+function test() {
+ addTab("about:blank").then(runTests);
+}
+
+async function runTests(aTab) {
+ const toolDefinition = {
+ id: "testTool",
+ visibilityswitch: "devtools.testTool.enabled",
+ isToolSupported: () => true,
+ url: "about:blank",
+ label: "someLabel",
+ build(iframeWindow, toolbox) {
+ return new Promise(resolve => {
+ executeSoon(() => {
+ resolve({
+ target: toolbox.target,
+ toolbox,
+ isReady: true,
+ destroy() {},
+ });
+ });
+ });
+ },
+ };
+
+ gDevTools.registerTool(toolDefinition);
+
+ const collectedEvents = [];
+
+ gDevTools
+ .showToolboxForTab(aTab, { toolId: toolDefinition.id })
+ .then(function (toolbox) {
+ const panel = toolbox.getPanel(toolDefinition.id);
+ ok(panel, "Tool open");
+
+ gDevTools.once("toolbox-destroy", (toolbox, iframe) => {
+ collectedEvents.push("toolbox-destroy");
+ });
+
+ gDevTools.once(toolDefinition.id + "-destroy", (toolbox, iframe) => {
+ collectedEvents.push("gDevTools-" + toolDefinition.id + "-destroy");
+ });
+
+ toolbox.once("destroy", () => {
+ collectedEvents.push("destroy");
+ });
+
+ toolbox.once(toolDefinition.id + "-destroy", () => {
+ collectedEvents.push("toolbox-" + toolDefinition.id + "-destroy");
+ });
+
+ toolbox.destroy().then(function () {
+ is(
+ collectedEvents.join(":"),
+ "toolbox-destroy:destroy:gDevTools-testTool-destroy:toolbox-testTool-destroy",
+ "Found the right amount of collected events."
+ );
+
+ gDevTools.unregisterTool(toolDefinition.id);
+ gBrowser.removeCurrentTab();
+
+ executeSoon(function () {
+ finish();
+ });
+ });
+ });
+}