diff options
author | Daniel Baumann <daniel.baumann@progress-linux.org> | 2024-04-19 01:47:29 +0000 |
---|---|---|
committer | Daniel Baumann <daniel.baumann@progress-linux.org> | 2024-04-19 01:47:29 +0000 |
commit | 0ebf5bdf043a27fd3dfb7f92e0cb63d88954c44d (patch) | |
tree | a31f07c9bcca9d56ce61e9a1ffd30ef350d513aa /testing/web-platform/tests/css/css-transitions/transition-events-with-document-change.html | |
parent | Initial commit. (diff) | |
download | firefox-esr-0ebf5bdf043a27fd3dfb7f92e0cb63d88954c44d.tar.xz firefox-esr-0ebf5bdf043a27fd3dfb7f92e0cb63d88954c44d.zip |
Adding upstream version 115.8.0esr.upstream/115.8.0esr
Signed-off-by: Daniel Baumann <daniel.baumann@progress-linux.org>
Diffstat (limited to 'testing/web-platform/tests/css/css-transitions/transition-events-with-document-change.html')
-rw-r--r-- | testing/web-platform/tests/css/css-transitions/transition-events-with-document-change.html | 32 |
1 files changed, 32 insertions, 0 deletions
diff --git a/testing/web-platform/tests/css/css-transitions/transition-events-with-document-change.html b/testing/web-platform/tests/css/css-transitions/transition-events-with-document-change.html new file mode 100644 index 0000000000..90b79f0c1d --- /dev/null +++ b/testing/web-platform/tests/css/css-transitions/transition-events-with-document-change.html @@ -0,0 +1,32 @@ +<!DOCTYPE html> +<title>CSS Transitions: transition events for an element changing document</title> +<link rel="help" href="https://drafts.csswg.org/css-transitions"> +<script src="/resources/testharness.js" type="text/javascript"></script> +<script src="/resources/testharnessreport.js" type="text/javascript"></script> +<div id="target"></div> +<iframe src="about:blank"></iframe> +<script> +promise_test(async () => { + const target = document.getElementById("target"); + target.style.transition = "margin-left 100ms"; + + const transitionMarginLeft = async value => { + getComputedStyle(target).marginLeft; + target.style.marginLeft = value; + await target.getAnimations()[0].ready; + } + + // start an initial transition. + await transitionMarginLeft("100px"); + + // move the target to new frame, this should cancel the transition. + const transitionWasCanceled = new Promise(resolve => target.addEventListener("transitioncancel", resolve, { once: true })); + document.querySelector("iframe").contentDocument.body.appendChild(target); + await transitionWasCanceled; + + // Start a new transition and ensure it triggers a transitionend event. + const transitionEnded = new Promise(resolve => target.addEventListener("transitionend", resolve, { once: true })); + await transitionMarginLeft("0px"); + await transitionEnded; +}, "transition events for an element changing document"); +</script> |