<!DOCTYPE html><!-- webkit-test-runner [ enableCSSAnimationsAndCSSTransitionsBackedByWebAnimations=true ] -->

<html>
<head>
  <style>
    .box {
        height: 100px;
        width: 100px;
        margin: 10px;
        background-color: blue;
        display: inline-block;
    }

    #brightness {
      -webkit-animation: brightness-anim 2s linear;
    }

    #blur {
      -webkit-animation: blur-anim 2s linear;
    }

    #grayscale {
      -webkit-animation: grayscale-anim 2s linear;
    }

    #sepia {
      -webkit-animation: sepia-anim 2s linear;
    }

    #no {
      -webkit-animation: no-anim 2s linear;
    }

    #multiple1 {
      -webkit-animation: multiple-anim1 2s linear;
    }

    #multiple2 {
      -webkit-animation: multiple-anim2 2s linear;
    }

    #urlfilter {
      -webkit-animation: url-to-filter-anim 2s linear;
    }

    #filterurl {
      -webkit-animation: filter-to-url-anim 2s linear;
    }

    #filterdiffurl {
      -webkit-animation: filter-diff-url-anim 2s linear;
    }

    #generated1 {
      -webkit-animation: generated-anim1 2s linear;
    }

    #generated2 {
      -webkit-animation: generated-anim2 2s linear;
    }

    @-webkit-keyframes brightness-anim {
        from { background-image: filter(url(resources/image.svg), brightness(1)); }
        to   { background-image: filter(url(resources/image.svg), brightness(0)); }
    }

    @-webkit-keyframes blur-anim {
        from { background-image: filter(url(resources/image.svg), blur(0)); }
        to   { background-image: filter(url(resources/image.svg), blur(10px)); }
    }

    @-webkit-keyframes grayscale-anim {
        from { background-image: filter(url(resources/image.svg), grayscale(1)); }
        to   { background-image: filter(url(resources/image.svg), grayscale(0)); }
    }

    @-webkit-keyframes sepia-anim {
        from { background-image: filter(url(resources/image.svg), sepia(1)); }
        to   { background-image: filter(url(resources/image.svg), sepia(0)); }
    }

    @-webkit-keyframes no-anim {
        from { background-image: filter(url(resources/image.svg), sepia(1)); }
        to   { background-image: filter(url(resources/blue.svg), sepia(0)); }
    }

    @-webkit-keyframes multiple-anim1 {
        from { background-image: filter(url(resources/image.svg), sepia(0.25) blur(3px) hue-rotate(45deg)); }
        to   { background-image: filter(url(resources/image.svg), sepia(0.75)); }
    }

    @-webkit-keyframes multiple-anim2 {
        from { background-image: filter(url(resources/image.svg), contrast(0.25)); }
        to   { background-image: filter(url(resources/image.svg), contrast(0.75) blur(3px) hue-rotate(45deg)); }
    }

    @-webkit-keyframes url-to-filter-anim {
        from { background-image: url(resources/image.svg); }
        to   { background-image: filter(url(resources/image.svg), sepia(0.5)); }
    }

    @-webkit-keyframes filter-to-url-anim {
        from { background-image: filter(url(resources/image.svg), sepia(0.5)); }
        to   { background-image: url(resources/image.svg); }
    }

    @-webkit-keyframes filter-diff-url-anim {
        from { background-image: url(resources/image.svg); }
        to   { background-image: filter(url(resources/blue.svg), sepia(0.5)); }
    }

    @-webkit-keyframes generated-anim1 {
        from { background-image: filter(filter(url(resources/image.svg), blur(3px)), sepia(1)); }
        to   { background-image: filter(filter(url(resources/image.svg), blur(3px)), sepia(0)); }
    }

    @-webkit-keyframes generated-anim2 {
        from { background-image: filter(-webkit-cross-fade(url(resources/image.svg), url(resources/image.svg), 50%), sepia(1)); }
        to   { background-image: filter(-webkit-cross-fade(url(resources/image.svg), url(resources/image.svg), 50%), sepia(0)); }
    }
  </style>
  <script src="../../animations/resources/animation-test-helpers.js"></script>
  <script type="text/javascript">
    const expectedValues = [
      // [animation-name, time, element-id, property, expected-value, tolerance]
      ["brightness-anim",  1, "brightness", "backgroundImage", "filter(url(image.svg), brightness(0.5))", 0.05],
      ["blur-anim",  1, "blur", "backgroundImage", "filter(url(image.svg), blur(5px))", 0.05],
      ["grayscale-anim",  1, "grayscale", "backgroundImage", "filter(url(image.svg), grayscale(0.5))", 0.05],
      ["sepia-anim",  1, "sepia", "backgroundImage", "filter(url(image.svg), sepia(0.5))", 0.05],
      ["no-anim",  1, "no", "backgroundImage", "filter(url(blue.svg), sepia(0))", 0],
      ["multiple-anim1",  1, "multiple1", "backgroundImage", "filter(url(image.svg), sepia(0.5) blur(1.5px) hue-rotate(22.5deg))", 0.05],
      ["multiple-anim2",  1, "multiple2", "backgroundImage", "filter(url(image.svg), contrast(0.5) blur(1.5px) hue-rotate(22.5deg))", 0.05],
      ["url-to-filter-anim",  1, "urlfilter", "backgroundImage", " filter(url(image.svg), sepia(0.25))", 0.05],
      ["filter-to-url-anim",  1, "filterurl", "backgroundImage", " filter(url(image.svg), sepia(0.25))", 0.05],
      ["filter-diff-url-anim",  1, "filterdiffurl", "backgroundImage", " filter(url(blue.svg), sepia(0.5))", 0],
      // FIXME: We need to support generated images as input to other generated images for animations first.
      ["generated-anim1",  1, "generated1", "backgroundImage", "filter(filter(url(image.svg), blur(3px)), sepia(0))", 0],
      ["generated-anim2",  1, "generated2", "backgroundImage", "filter(-webkit-cross-fade(url(image.svg), url(image.svg), 50%), sepia(0))", 0],
    ];
    
    runAnimationTest(expectedValues);
  </script>
</head>
<body>

<div class="box" id="brightness"></div>
<div class="box" id="blur"></div>
<div class="box" id="grayscale"></div>
<div class="box" id="sepia"></div>
<div class="box" id="no"></div>
<div class="box" id="multiple1"></div>
<div class="box" id="multiple2"></div>
<div class="box" id="urlfilter"></div>
<div class="box" id="filterurl"></div>
<div class="box" id="filterdiffurl"></div>
<div class="box" id="generated1"></div>
<div class="box" id="generated2"></div>

<div id="result">
</div>
</body>
</html>
