<!DOCTYPE html>
<link rel="help" href="https://drafts.css-houdini.org/css-properties-values-api-1">
<script src="/resources/testharness.js"></script>
<script src="/resources/testharnessreport.js"></script>
<script src="../resources/utils.js"></script>
<div id="target"></div>
<script>

animation_test({
  syntax: "<color>+",
  inherits: false,
  initialValue: "black"
}, {
  keyframes: ["rgb(100, 100, 100) rgb(150, 150, 150)", "rgb(200, 200, 200) rgb(250, 250, 250)"],
  expected: "rgb(150, 150, 150) rgb(200, 200, 200)"
}, 'Animating a custom property of type <color>+');

animation_test({
  syntax: "<color>+",
  inherits: false,
  initialValue: "rgb(100, 100, 100) rgb(150, 150, 150)"
}, {
  keyframes: "rgb(200, 200, 200) rgb(250, 250, 250)",
  expected: "rgb(150, 150, 150) rgb(200, 200, 200)"
}, 'Animating a custom property of type <color>+ with a single keyframe');

animation_test({
  syntax: "<color>+",
  inherits: false,
  initialValue: "rgb(100, 100, 100) rgb(150, 150, 150)"
}, {
  composite: "add",
  keyframes: ["rgb(25, 25, 25) rgb(50, 50, 50)", "rgb(75, 75, 75) rgb(100, 100, 100)"],
  expected: "rgb(150, 150, 150) rgb(225, 225, 225)"
}, 'Animating a custom property of type <color>+ with additivity');

animation_test({
  syntax: "<color>+",
  inherits: false,
  initialValue: "rgb(100, 100, 100) rgb(150, 150, 150)"
}, {
  composite: "add",
  keyframes: "rgb(50, 50, 50) rgb(100, 100, 100)",
  expected: "rgb(125, 125, 125) rgb(200, 200, 200)"
}, 'Animating a custom property of type <color>+ with a single keyframe and additivity');

animation_test({
  syntax: "<color>+",
  inherits: false,
  initialValue: "black"
}, {
  iterationComposite: "accumulate",
  keyframes: ["rgb(0, 0, 0) rgb(0, 0, 0)", "rgb(50, 50, 50) rgb(100, 100, 100)"],
  expected: "rgb(125, 125, 125) rgb(250, 250, 250)"
}, 'Animating a custom property of type <color>+ with iterationComposite');

discrete_animation_test("<color>+", 'rgb(255, 0, 0) rgb(0, 255, 0)', 'rgb(0, 0, 255)', 'Animating a custom property of type <color>+ with different lengths is discrete');

</script>
