diff options
author | Daniel Baumann <daniel.baumann@progress-linux.org> | 2024-04-19 00:47:55 +0000 |
---|---|---|
committer | Daniel Baumann <daniel.baumann@progress-linux.org> | 2024-04-19 00:47:55 +0000 |
commit | 26a029d407be480d791972afb5975cf62c9360a6 (patch) | |
tree | f435a8308119effd964b339f76abb83a57c29483 /testing/web-platform/tests/css/css-transitions/starting-style-cascade.html | |
parent | Initial commit. (diff) | |
download | firefox-26a029d407be480d791972afb5975cf62c9360a6.tar.xz firefox-26a029d407be480d791972afb5975cf62c9360a6.zip |
Adding upstream version 124.0.1.upstream/124.0.1
Signed-off-by: Daniel Baumann <daniel.baumann@progress-linux.org>
Diffstat (limited to 'testing/web-platform/tests/css/css-transitions/starting-style-cascade.html')
-rw-r--r-- | testing/web-platform/tests/css/css-transitions/starting-style-cascade.html | 101 |
1 files changed, 101 insertions, 0 deletions
diff --git a/testing/web-platform/tests/css/css-transitions/starting-style-cascade.html b/testing/web-platform/tests/css/css-transitions/starting-style-cascade.html new file mode 100644 index 0000000000..cef3e88b65 --- /dev/null +++ b/testing/web-platform/tests/css/css-transitions/starting-style-cascade.html @@ -0,0 +1,101 @@ +<!DOCTYPE html> +<title>CSS Transitions Test: Cascading @starting-style</title> +<link rel="help" href="https://drafts.csswg.org/css-transitions-2/#defining-before-change-style-the-starting-style-rule"> +<script src="/resources/testharness.js"></script> +<script src="/resources/testharnessreport.js"></script> +<script src="/css/css-transitions/support/helper.js"></script> +<style> + .color-transition { + transition: color 100s steps(2, start); + } + + @starting-style { + #t1 { color: red; } + } + #t1 { color: green; } + + @starting-style { + div#t2 { color: lime; } + } + #t2 { color: green; } + + #t3 { color: green; } + @starting-style { + #t3 { color: red; } + } + #t3 > div { color: green; } + + #t4 { color: green; } + #t4[hidden] { color: red; } + #t4 > div { color: lime; } + @starting-style { + #t4 > div { color: inherit; } + } + + #t5 { color: green; } + @starting-style { + #t5 { color: black; } + } + #t5 > div { color: lime; } + @starting-style { + #t5 > div { color: inherit; } + } +</style> +<div id="t1" hidden class="color-transition"></div> +<div id="t2" hidden class="color-transition"></div> +<div id="t3" hidden> + <div class="color-transition"></div> +</div> +<div id="t4" hidden> + <div class="color-transition"></div> +</div> +<div id="t5" hidden class="color-transition"> + <div class="color-transition"></div> +</div> +<script> + setup(() => { + assert_true(supportsStartingStyle(), "Prerequisite: @starting-style parses"); + }); + + promise_test(async t => { + await waitForAnimationFrames(2); + t1.removeAttribute("hidden"); + await waitForAnimationFrames(2); + assert_equals(getComputedStyle(t1).color, "rgb(0, 128, 0)", + "No transition of color"); + }, "Overridden @starting-style - order of appearance"); + + promise_test(async t => { + t2.removeAttribute("hidden"); + await waitForAnimationFrames(2); + assert_equals(getComputedStyle(t2).color, "rgb(0, 192, 0)", + "Transition of color"); + }, "@starting-style with higher specificity"); + + promise_test(async t => { + t3.removeAttribute("hidden"); + await waitForAnimationFrames(2); + assert_equals(getComputedStyle(t3.firstElementChild).color, "rgb(0, 128, 0)", + "No transition of color"); + }, "Starting style does not inherit from parent starting style"); + + promise_test(async t => { + assert_equals(getComputedStyle(t4).color, "rgb(255, 0, 0)", + "Parent transition started"); + t4.removeAttribute("hidden"); + await waitForAnimationFrames(2); + assert_equals(getComputedStyle(t4).color, "rgb(0, 128, 0)", + "Parent changed to green"); + assert_equals(getComputedStyle(t4.firstElementChild).color, "rgb(0, 192, 0)", + "Transition started from parent's after-change style color"); + }, "Starting style inheriting from parent's after-change style"); + + promise_test(async t => { + t5.removeAttribute("hidden"); + await waitForAnimationFrames(2); + assert_equals(getComputedStyle(t5).color, "rgb(0, 64, 0)", + "Parent transition started"); + assert_equals(getComputedStyle(t5.firstElementChild).color, "rgb(0, 192, 0)", + "Transition started from parent's after-change style color"); + }, "Starting style inheriting from parent's after-change style while parent transitioning"); +</script> |