summaryrefslogtreecommitdiffstats
path: root/devtools/client/shared/test/browser_dbg_target-scoped-actor-01.js
diff options
context:
space:
mode:
Diffstat (limited to 'devtools/client/shared/test/browser_dbg_target-scoped-actor-01.js')
-rw-r--r--devtools/client/shared/test/browser_dbg_target-scoped-actor-01.js43
1 files changed, 43 insertions, 0 deletions
diff --git a/devtools/client/shared/test/browser_dbg_target-scoped-actor-01.js b/devtools/client/shared/test/browser_dbg_target-scoped-actor-01.js
new file mode 100644
index 0000000000..004c7bbc9d
--- /dev/null
+++ b/devtools/client/shared/test/browser_dbg_target-scoped-actor-01.js
@@ -0,0 +1,43 @@
+/* Any copyright is dedicated to the Public Domain.
+ * http://creativecommons.org/publicdomain/zero/1.0/ */
+
+"use strict";
+
+/**
+ * Check target-scoped actor lifetimes.
+ */
+
+const ACTORS_URL = EXAMPLE_URL + "testactors.js";
+const TAB_URL = TEST_URI_ROOT + "doc_empty-tab-01.html";
+
+add_task(async function test() {
+ const tab = await addTab(TAB_URL);
+
+ await registerActorInContentProcess(ACTORS_URL, {
+ prefix: "testOne",
+ constructor: "TestActor1",
+ type: { target: true },
+ });
+
+ const target = await createAndAttachTargetForTab(tab);
+ const { client } = target;
+ const form = target.targetForm;
+
+ await testTargetScopedActor(client, form);
+ await removeTab(gBrowser.selectedTab);
+ await target.destroy();
+});
+
+async function testTargetScopedActor(client, form) {
+ ok(form.testOneActor, "Found the test target-scoped actor.");
+ ok(
+ form.testOneActor.includes("testOne"),
+ "testOneActor's typeName should be used."
+ );
+
+ const response = await client.request({
+ to: form.testOneActor,
+ type: "ping",
+ });
+ is(response.pong, "pong", "Actor should respond to requests.");
+}