summaryrefslogtreecommitdiffstats
path: root/devtools/client/framework/test/browser_devtools_api_destroy.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_devtools_api_destroy.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_devtools_api_destroy.js')
-rw-r--r--devtools/client/framework/test/browser_devtools_api_destroy.js71
1 files changed, 71 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 000000000..084a7a0a1
--- /dev/null
+++ b/devtools/client/framework/test/browser_devtools_api_destroy.js
@@ -0,0 +1,71 @@
+/* -*- 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/ */
+
+// Tests devtools API
+
+function test() {
+ addTab("about:blank").then(runTests);
+}
+
+function runTests(aTab) {
+ let toolDefinition = {
+ id: "testTool",
+ visibilityswitch: "devtools.testTool.enabled",
+ isTargetSupported: () => true,
+ url: "about:blank",
+ label: "someLabel",
+ build: function (iframeWindow, toolbox) {
+ let deferred = defer();
+ executeSoon(() => {
+ deferred.resolve({
+ target: toolbox.target,
+ toolbox: toolbox,
+ isReady: true,
+ destroy: function () {},
+ });
+ });
+ return deferred.promise;
+ },
+ };
+
+ gDevTools.registerTool(toolDefinition);
+
+ let collectedEvents = [];
+
+ let target = TargetFactory.forTab(aTab);
+ gDevTools.showToolbox(target, toolDefinition.id).then(function (toolbox) {
+ let panel = toolbox.getPanel(toolDefinition.id);
+ ok(panel, "Tool open");
+
+ gDevTools.once("toolbox-destroy", (event, toolbox, iframe) => {
+ collectedEvents.push(event);
+ });
+
+ gDevTools.once(toolDefinition.id + "-destroy", (event, toolbox, iframe) => {
+ collectedEvents.push("gDevTools-" + event);
+ });
+
+ toolbox.once("destroy", (event) => {
+ collectedEvents.push(event);
+ });
+
+ toolbox.once(toolDefinition.id + "-destroy", (event) => {
+ collectedEvents.push("toolbox-" + event);
+ });
+
+ 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();
+ });
+ });
+ });
+}