summaryrefslogtreecommitdiffstats
path: root/remote/test/browser/target/browser_sendMessageToTarget.js
diff options
context:
space:
mode:
Diffstat (limited to 'remote/test/browser/target/browser_sendMessageToTarget.js')
-rw-r--r--remote/test/browser/target/browser_sendMessageToTarget.js41
1 files changed, 41 insertions, 0 deletions
diff --git a/remote/test/browser/target/browser_sendMessageToTarget.js b/remote/test/browser/target/browser_sendMessageToTarget.js
new file mode 100644
index 0000000000..b440066178
--- /dev/null
+++ b/remote/test/browser/target/browser_sendMessageToTarget.js
@@ -0,0 +1,41 @@
+/* Any copyright is dedicated to the Public Domain.
+ * http://creativecommons.org/publicdomain/zero/1.0/ */
+
+"use strict";
+
+add_task(async function sendToAttachedTarget({ client }) {
+ const { Target } = client;
+ const { targetInfo } = await openTab(Target);
+
+ const attachedToTarget = Target.attachedToTarget();
+ const { sessionId } = await Target.attachToTarget({
+ targetId: targetInfo.targetId,
+ });
+ await attachedToTarget;
+ info("Target attached");
+
+ const id = 1;
+ const message = JSON.stringify({
+ id,
+ method: "Page.navigate",
+ params: {
+ url: toDataURL("new-page"),
+ },
+ });
+
+ info("Calling Target.sendMessageToTarget");
+ const onResponse = Target.receivedMessageFromTarget();
+ await Target.sendMessageToTarget({ sessionId, message });
+ const response = await onResponse;
+ info("Message from target received");
+
+ ok(!!response, "The response is not empty");
+ is(response.sessionId, sessionId, "The response is from the same session");
+
+ const responseMessage = JSON.parse(response.message);
+ is(responseMessage.id, id, "The response is from the same session");
+ ok(
+ !!responseMessage.result.frameId,
+ "received the `frameId` out of `Page.navigate` request"
+ );
+});