summaryrefslogtreecommitdiffstats
path: root/testing/web-platform/tests/css/css-images/cross-fade-computed-value.html
diff options
context:
space:
mode:
Diffstat (limited to 'testing/web-platform/tests/css/css-images/cross-fade-computed-value.html')
-rw-r--r--testing/web-platform/tests/css/css-images/cross-fade-computed-value.html52
1 files changed, 52 insertions, 0 deletions
diff --git a/testing/web-platform/tests/css/css-images/cross-fade-computed-value.html b/testing/web-platform/tests/css/css-images/cross-fade-computed-value.html
new file mode 100644
index 0000000000..efb3b58d61
--- /dev/null
+++ b/testing/web-platform/tests/css/css-images/cross-fade-computed-value.html
@@ -0,0 +1,52 @@
+<!DOCTYPE html>
+<html>
+ <head>
+ <title>cross-fade() computed value</title>
+ <link rel="author" title="Steinar H. Gunderson" href="mailto:sesse@chromium.org">
+ <link rel="help" href="https://drafts.csswg.org/css-images-4/#cross-fade-function">
+ <script src="/resources/testharness.js"></script>
+ <script src="/resources/testharnessreport.js"></script>
+ <script src="/css/support/computed-testcommon.js"></script>
+ <style>
+ #target {
+ color: red;
+ }
+ </style>
+ </head>
+ <body>
+ <div id="target"></div>
+ <script>
+ // https://drafts.csswg.org/css-images-4/#serialization specifies that
+ // “For cross-fade(), always serialize the <percentage>.”, but it's not clear what
+ // “the” percentage is, since the implicit percentages are different for drawing and
+ // sizing, and may not be known computed-value time, so we assume one that is not
+ // given should also not be serialized.
+ test_computed_value(
+ 'background-image',
+ 'cross-fade(30% color-mix(in srgb, currentcolor, blue), white)',
+ 'cross-fade(30% color(srgb 0.5 0 0.5), rgb(255, 255, 255))');
+
+ // Unneccessary percentages should be kept.
+ test_computed_value('background-image', 'cross-fade(50% red, 50% green)',
+ 'cross-fade(50% rgb(255, 0, 0), 50% rgb(0, 128, 0))');
+
+ // Percentage normalization should not be visible computed-value time.
+ test_computed_value('background-image', 'cross-fade(20% red, 20% green)',
+ 'cross-fade(20% rgb(255, 0, 0), 20% rgb(0, 128, 0))');
+
+ // More than two values.
+ test_computed_value('background-image',
+ 'cross-fade(50% red, 50% green, 50% blue)',
+ 'cross-fade(50% rgb(255, 0, 0), 50% rgb(0, 128, 0), 50% rgb(0, 0, 255))');
+
+ // More-than-100% should be invalid, but in calc() we can't reject it parse-time;
+ // it will be clamped on serialization.
+ test_computed_value('background-image',
+ 'cross-fade(calc(101%) red, green)',
+ 'cross-fade(100% rgb(255, 0, 0), rgb(0, 128, 0))');
+ test_computed_value('background-image',
+ 'cross-fade(calc(-200%) red, green)',
+ 'cross-fade(0% rgb(255, 0, 0), rgb(0, 128, 0))');
+ </script>
+ </body>
+</html>