summaryrefslogtreecommitdiffstats
path: root/devtools/client/shared/test/browser_dbg_target-scoped-actor-02.js
diff options
context:
space:
mode:
authorDaniel Baumann <daniel.baumann@progress-linux.org>2024-04-07 17:32:43 +0000
committerDaniel Baumann <daniel.baumann@progress-linux.org>2024-04-07 17:32:43 +0000
commit6bf0a5cb5034a7e684dcc3500e841785237ce2dd (patch)
treea68f146d7fa01f0134297619fbe7e33db084e0aa /devtools/client/shared/test/browser_dbg_target-scoped-actor-02.js
parentInitial commit. (diff)
downloadthunderbird-6bf0a5cb5034a7e684dcc3500e841785237ce2dd.tar.xz
thunderbird-6bf0a5cb5034a7e684dcc3500e841785237ce2dd.zip
Adding upstream version 1:115.7.0.upstream/1%115.7.0upstream
Signed-off-by: Daniel Baumann <daniel.baumann@progress-linux.org>
Diffstat (limited to 'devtools/client/shared/test/browser_dbg_target-scoped-actor-02.js')
-rw-r--r--devtools/client/shared/test/browser_dbg_target-scoped-actor-02.js58
1 files changed, 58 insertions, 0 deletions
diff --git a/devtools/client/shared/test/browser_dbg_target-scoped-actor-02.js b/devtools/client/shared/test/browser_dbg_target-scoped-actor-02.js
new file mode 100644
index 0000000000..c87eda05e0
--- /dev/null
+++ b/devtools/client/shared/test/browser_dbg_target-scoped-actor-02.js
@@ -0,0 +1,58 @@
+/* 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 () {
+ 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 closeTab(client, form);
+ 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.");
+}
+
+async function closeTab(client, form) {
+ // We need to start listening for the rejection before removing the tab
+ /* eslint-disable-next-line mozilla/rejects-requires-await*/
+ const onReject = Assert.rejects(
+ client.request({ to: form.testOneActor, type: "ping" }),
+ err =>
+ err.message ===
+ `'ping' active request packet to '${form.testOneActor}' ` +
+ `can't be sent as the connection just closed.`,
+ "testOneActor went away."
+ );
+ await removeTab(gBrowser.selectedTab);
+ await onReject;
+}