summaryrefslogtreecommitdiffstats
path: root/remote/cdp/test/browser/target/browser_sendMessageToTarget.js
blob: b440066178eb54e1a14b084827afb4f381a34234 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
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"
  );
});