Tests: Explicitly wait for link activation in SVG link activation test

Previously, we assumed a single call to `requestAnimationFrame()` would
give enough time for the link to activate.
This commit is contained in:
Tim Ledbetter 2026-01-14 15:44:30 +00:00 committed by Jelle Raaijmakers
parent 8078d53d4f
commit c5d9ce8046

View file

@ -2,19 +2,25 @@
<script src="include.js"></script>
<iframe id="target-frame" name="target-frame"></iframe>
<svg>
<a id="basic-link" href="javascript:println('basic link activated')">
<a id="basic-link" href="javascript:println('basic link activated'), window.resolveLinkActivated()">
<text y="20">Basic Link</text>
</a>
<a id="target-link" href="javascript:parent.println('target link activated in iframe')" target="target-frame">
<a id="target-link" href="javascript:parent.println('target link activated in iframe'), parent.resolveLinkActivated()" target="target-frame">
<text y="40">Target Link</text>
</a>
</svg>
<script>
promiseTest(async () => {
document.getElementById("basic-link").dispatchEvent(new MouseEvent("click"));
await animationFrame();
function waitForLinkActivation() {
return new Promise(resolve => window.resolveLinkActivated = resolve);
}
promiseTest(async () => {
let activated = waitForLinkActivation();
document.getElementById("basic-link").dispatchEvent(new MouseEvent("click"));
await activated;
activated = waitForLinkActivation();
document.getElementById("target-link").dispatchEvent(new MouseEvent("click"));
await animationFrame();
await activated;
});
</script>