diff options
author | Daniel Baumann <daniel.baumann@progress-linux.org> | 2024-04-07 19:33:14 +0000 |
---|---|---|
committer | Daniel Baumann <daniel.baumann@progress-linux.org> | 2024-04-07 19:33:14 +0000 |
commit | 36d22d82aa202bb199967e9512281e9a53db42c9 (patch) | |
tree | 105e8c98ddea1c1e4784a60a5a6410fa416be2de /testing/web-platform/tests/fenced-frame/automatic-beacon-click-handler.https.html | |
parent | Initial commit. (diff) | |
download | firefox-esr-36d22d82aa202bb199967e9512281e9a53db42c9.tar.xz firefox-esr-36d22d82aa202bb199967e9512281e9a53db42c9.zip |
Adding upstream version 115.7.0esr.upstream/115.7.0esr
Signed-off-by: Daniel Baumann <daniel.baumann@progress-linux.org>
Diffstat (limited to 'testing/web-platform/tests/fenced-frame/automatic-beacon-click-handler.https.html')
-rw-r--r-- | testing/web-platform/tests/fenced-frame/automatic-beacon-click-handler.https.html | 80 |
1 files changed, 80 insertions, 0 deletions
diff --git a/testing/web-platform/tests/fenced-frame/automatic-beacon-click-handler.https.html b/testing/web-platform/tests/fenced-frame/automatic-beacon-click-handler.https.html new file mode 100644 index 0000000000..505eb6174f --- /dev/null +++ b/testing/web-platform/tests/fenced-frame/automatic-beacon-click-handler.https.html @@ -0,0 +1,80 @@ +<!DOCTYPE html> +<title>Test window.fence.setReportEventDataForAutomaticBeacons</title> +<script src="/resources/testharness.js"></script> +<script src="/resources/testharnessreport.js"></script> +<script src="/common/utils.js"></script> +<script src="/common/dispatcher/dispatcher.js"></script> +<script src="resources/utils.js"></script> +<script src="/resources/testdriver.js"></script> +<script src="/resources/testdriver-actions.js"></script> +<script src="/resources/testdriver-vendor.js"></script> + +<body> +<script> +promise_test(async(t) => { + const actions = new test_driver.Actions(); + const fencedframe = await attachFencedFrameContext( + {generator_api: 'fledge'}); + const new_url = new URL("resources/dummy.html", location.href); + const beacon_data = "This is the beacon data!"; + + await fencedframe.execute((new_url, beacon_data) => { + addEventListener("click", (event) => { + let beacon_event = { + eventType: "reserved.top_navigation", + eventData: beacon_data, + destination: ["buyer"], + } + window.fence.setReportEventDataForAutomaticBeacons(beacon_event); + window.open(new_url, "_blank"); + }); + }, [new_url, beacon_data]); + + await actions.pointerMove(0, 0, {origin: fencedframe.element}) + .pointerDown() + .pointerUp() + .send(); + + const received_beacon_data = await nextAutomaticBeacon(); + assert_equals(received_beacon_data, beacon_data); +}, 'Set and trigger an automatic beacon in a click handler'); + +promise_test(async(t) => { + const fencedframe = await attachFencedFrameContext( + {generator_api: 'fledge'}); + const new_url = new URL("resources/dummy.html", location.href); + const beacon_data = "This is the beacon data!"; + + await fencedframe.execute((new_url, beacon_data) => { + const actions = new test_driver.Actions(); + let a = document.createElement('a'); + a.textContent = "Click me!"; + a.href = new_url; + a.target = "_blank"; + + // When the anchor link is clicked, the click handler will set the data + // before the navigation happens. This test checks to make sure that the + // data makes it to the correct place by the time the navigation commits. + a.onclick = () => { + let beacon_event = { + eventType: "reserved.top_navigation", + eventData: beacon_data, + destination: ["buyer"], + } + window.fence.setReportEventDataForAutomaticBeacons(beacon_event); + }; + document.body.appendChild(a); + + // This will trigger the beacon data storing + navigation. + return actions.pointerMove(0, 0, {origin: a}) + .pointerDown() + .pointerUp() + .send(); + }, [new_url, beacon_data]); + + const received_beacon_data = await nextAutomaticBeacon(); + assert_equals(received_beacon_data, beacon_data); +}, 'Set and trigger an automatic beacon in an <a> click handler'); + +</script> +</body> |