summaryrefslogtreecommitdiffstats
path: root/devtools/client/framework/test/browser_target_support.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_target_support.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_target_support.js')
-rw-r--r--devtools/client/framework/test/browser_target_support.js74
1 files changed, 74 insertions, 0 deletions
diff --git a/devtools/client/framework/test/browser_target_support.js b/devtools/client/framework/test/browser_target_support.js
new file mode 100644
index 000000000..0cdbd565a
--- /dev/null
+++ b/devtools/client/framework/test/browser_target_support.js
@@ -0,0 +1,74 @@
+/* -*- 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/ */
+
+// Test support methods on Target, such as `hasActor`, `getActorDescription`,
+// `actorHasMethod` and `getTrait`.
+
+var { WebAudioFront } =
+ require("devtools/shared/fronts/webaudio");
+
+function* testTarget(client, target) {
+ yield target.makeRemote();
+
+ is(target.hasActor("timeline"), true, "target.hasActor() true when actor exists.");
+ is(target.hasActor("webaudio"), true, "target.hasActor() true when actor exists.");
+ is(target.hasActor("notreal"), false, "target.hasActor() false when actor does not exist.");
+ // Create a front to ensure the actor is loaded
+ let front = new WebAudioFront(target.client, target.form);
+
+ let desc = yield target.getActorDescription("webaudio");
+ is(desc.typeName, "webaudio",
+ "target.getActorDescription() returns definition data for corresponding actor");
+ is(desc.events["start-context"]["type"], "startContext",
+ "target.getActorDescription() returns event data for corresponding actor");
+
+ desc = yield target.getActorDescription("nope");
+ is(desc, undefined, "target.getActorDescription() returns undefined for non-existing actor");
+ desc = yield target.getActorDescription();
+ is(desc, undefined, "target.getActorDescription() returns undefined for undefined actor");
+
+ let hasMethod = yield target.actorHasMethod("audionode", "getType");
+ is(hasMethod, true,
+ "target.actorHasMethod() returns true for existing actor with method");
+ hasMethod = yield target.actorHasMethod("audionode", "nope");
+ is(hasMethod, false,
+ "target.actorHasMethod() returns false for existing actor with no method");
+ hasMethod = yield target.actorHasMethod("nope", "nope");
+ is(hasMethod, false,
+ "target.actorHasMethod() returns false for non-existing actor with no method");
+ hasMethod = yield target.actorHasMethod();
+ is(hasMethod, false,
+ "target.actorHasMethod() returns false for undefined params");
+
+ is(target.getTrait("customHighlighters"), true,
+ "target.getTrait() returns boolean when trait exists");
+ is(target.getTrait("giddyup"), undefined,
+ "target.getTrait() returns undefined when trait does not exist");
+
+ close(target, client);
+}
+
+// Ensure target is closed if client is closed directly
+function test() {
+ waitForExplicitFinish();
+
+ getChromeActors((client, response) => {
+ let options = {
+ form: response,
+ client: client,
+ chrome: true
+ };
+
+ TargetFactory.forRemoteTab(options).then(Task.async(testTarget).bind(null, client));
+ });
+}
+
+function close(target, client) {
+ target.on("close", () => {
+ ok(true, "Target was closed");
+ finish();
+ });
+ client.close();
+}