<!DOCTYPE html> <title>Test setReportEventDataForAutomaticBeacons called only once</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> <script src="/common/get-host-info.sub.js"></script> <script src="resources/automatic-beacon-helper.js"></script> <body> <script> promise_test(async(t) => { const actions = new test_driver.Actions(); const fencedframe = await attachFencedFrameContext( {generator_api: 'fledge', register_beacon: true, origin: get_host_info().HTTPS_REMOTE_ORIGIN}); let beacon_event = { eventType: "reserved.top_navigation_commit", eventData: "This is the beacon data!", destination: ["buyer"], once: true, } await setupAutomaticBeacon(fencedframe, [beacon_event], "resources/dummy.html", NavigationTrigger.ClickOnce); // The first click should trigger the automatic beacon and clear the beacon // data. await actions.pointerMove(0, 0, {origin: fencedframe.element}) .pointerDown() .pointerUp() .send(); await verifyBeaconData(beacon_event.eventType, beacon_event.eventData); // The second click should not have any associated automatic beacon info, so // no beacon should be sent. // Set up a timeout to ensure that there's enough time to send any potential // automatic beacons. await actions.pointerMove(0, 0, {origin: fencedframe.element}) .pointerDown() .pointerUp() .send(); await verifyBeaconData(beacon_event.eventType, beacon_event.eventData, false, t); }, 'Set expiring automatic beacon but trigger two events in a click handler'); </script> </body>