summaryrefslogtreecommitdiffstats
path: root/remote/cdp/test/browser/target/browser_attachToTarget.js
diff options
context:
space:
mode:
Diffstat (limited to 'remote/cdp/test/browser/target/browser_attachToTarget.js')
-rw-r--r--remote/cdp/test/browser/target/browser_attachToTarget.js54
1 files changed, 54 insertions, 0 deletions
diff --git a/remote/cdp/test/browser/target/browser_attachToTarget.js b/remote/cdp/test/browser/target/browser_attachToTarget.js
new file mode 100644
index 0000000000..1ad34f3305
--- /dev/null
+++ b/remote/cdp/test/browser/target/browser_attachToTarget.js
@@ -0,0 +1,54 @@
+/* Any copyright is dedicated to the Public Domain.
+ * http://creativecommons.org/publicdomain/zero/1.0/ */
+
+"use strict";
+
+add_task(async function raisesWithoutArguments({ client, tab }) {
+ const { Target } = client;
+ let errorThrown = false;
+ try {
+ await Target.attachToTarget();
+ } catch (e) {
+ errorThrown = true;
+ }
+ ok(errorThrown, "attachToTarget raised error without an argument");
+});
+
+add_task(async function raisesWithUnknownTargetId({ client, tab }) {
+ const { Target } = client;
+ let errorThrown = false;
+ try {
+ await Target.attachToTarget({ targetId: "-1" });
+ } catch (e) {
+ errorThrown = true;
+ }
+ ok(errorThrown, "attachToTarget raised error with unkown target id");
+});
+
+add_task(
+ async function attachPageTarget({ client }) {
+ const { Target } = client;
+ const { targetInfo } = await openTab(Target);
+
+ ok(!targetInfo.attached, "New target is not attached");
+
+ info("Attach new target");
+ const { sessionId } = await Target.attachToTarget({
+ targetId: targetInfo.targetId,
+ });
+
+ is(
+ typeof sessionId,
+ "string",
+ "attachToTarget returns the session id as string"
+ );
+
+ const { targetInfos } = await Target.getTargets();
+ const listedTarget = targetInfos.find(
+ info => info.targetId === targetInfo.targetId
+ );
+
+ ok(listedTarget.attached, "New target is attached");
+ },
+ { createTab: false }
+);