chromium/third_party/blink/web_tests/external/wpt/css/compositing/parsing/background-blend-mode-computed-multiple.html

<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<title>Compositing and Blending Level 1: getComputedStyle().backgroundBlendMode</title>
<link rel="help" href="https://drafts.fxtf.org/compositing-1/#propdef-background-blend-mode">
<meta name="assert" content="background-blend-mode computed value is as specified even when the number of images vary.">
<script src="/resources/testharness.js"></script>
<script src="/resources/testharnessreport.js"></script>
<script src="/css/support/computed-testcommon.js"></script>
<style>
    #target {
        background-image: linear-gradient(green, green), linear-gradient(green, green), linear-gradient(green, green);
    }
</style>
</head>
<body>
<div id="target"></div>
<script>
// This is testing the case with multiple background images
//
// see https://drafts.fxtf.org/compositing-1/#background-blend-mode
// and https://drafts.csswg.org/css-backgrounds-3/#layering
// > The lists are matched up from the first value: excess values at the end are not used.
// and
// > If a property doesn’t have enough comma-separated values
// > to match the number of layers, the UA must calculate its used value
// > by repeating the list of values until there are enough.
// but in https://drafts.csswg.org/css-values-4/#linked-properties
// it was decided that
// > The computed values of the coordinating list properties are not affected by such truncation or repetition.
//
// There is a distinction between specified values, used values, and computed values.

// if three images and one value, just send back the specified list.
test_computed_value("background-blend-mode", "normal");
test_computed_value("background-blend-mode", "multiply");

// if three images and two values, just send back the specified list.
test_computed_value("background-blend-mode", "normal, luminosity");
test_computed_value("background-blend-mode", "screen, overlay");
test_computed_value("background-blend-mode", "color, saturation");

// if three images and three values, just send back the specified list.
test_computed_value("background-blend-mode", "normal, luminosity, color");
test_computed_value("background-blend-mode", "screen, overlay, screen");
</script>
</body>
</html>