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

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

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

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

    #saturate-box {
      -webkit-animation: saturate-anim 2s linear
    }

    #huerotate-box {
      -webkit-animation: huerotate-anim 2s linear
    }

    #invert-box {
      -webkit-animation: invert-anim 2s linear
    }

    #opacity-box {
      -webkit-animation: opacity-anim 2s linear
    }

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

    #contrast-box {
      -webkit-animation: contrast-anim 2s linear
    }

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

    #dropshadow-box {
      -webkit-animation: dropshadow-anim 2s linear
    }


    @-webkit-keyframes grayscale-anim {
        from { -webkit-filter: grayscale(0); }
        50%  { -webkit-filter: grayscale(0.5); }
        to   { -webkit-filter: grayscale(1); }
    }

    @-webkit-keyframes sepia-anim {
        from { -webkit-filter: sepia(0); }
        50%  { -webkit-filter: sepia(0.5); }
        to   { -webkit-filter: sepia(1); }
    }

    @-webkit-keyframes saturate-anim {
        from { -webkit-filter: saturate(0); }
        50%  { -webkit-filter: saturate(0.5); }
        to   { -webkit-filter: saturate(1); }
    }

    @-webkit-keyframes huerotate-anim {
        from { -webkit-filter: hue-rotate(0); }
        50%  { -webkit-filter: hue-rotate(90deg); }
        to   { -webkit-filter: hue-rotate(180deg); }
    }

    @-webkit-keyframes invert-anim {
        from { -webkit-filter: invert(0); }
        50%  { -webkit-filter: invert(0.5); }
        to   { -webkit-filter: invert(1); }
    }

    @-webkit-keyframes opacity-anim {
        from { -webkit-filter: opacity(1); }
        50%  { -webkit-filter: opacity(0.5); }
        to   { -webkit-filter: opacity(0); }
    }

    @-webkit-keyframes brightness-anim {
        from { -webkit-filter: brightness(1); }
        50%  { -webkit-filter: brightness(0.5); }
        to   { -webkit-filter: brightness(0); }
    }

    @-webkit-keyframes contrast-anim {
        from { -webkit-filter: contrast(1); }
        50%  { -webkit-filter: contrast(0.5); }
        to   { -webkit-filter: contrast(0); }
    }

    @-webkit-keyframes blur-anim {
        from { -webkit-filter: blur(0); }
        50%  { -webkit-filter: blur(10px); }
        to   { -webkit-filter: blur(20px); }
    }

    @-webkit-keyframes dropshadow-anim {
        from { -webkit-filter: drop-shadow(0 0 0 transparent); }
        50%  { -webkit-filter: grayscale(10px 15px 5px rgba(128, 128, 128, 0.5); }
        to   { -webkit-filter: drop-shadow(20px 30px 10px black)); }
    }

  </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]
      ["grayscale-anim",  1, "grayscale-box", "webkitFilter", 'grayscale(0.5)', 0.05],
      ["sepia-anim",  1, "sepia-box", "webkitFilter", 'sepia(0.5)', 0.05],
      ["saturate-anim",  1, "saturate-box", "webkitFilter", 'saturate(0.5)', 0.05],
      ["huerotate-anim",  1, "huerotate-box", "webkitFilter", 'hue-rotate(90deg)', 2],
      ["invert-anim",  1, "invert-box", "webkitFilter", 'invert(0.5)', 0.05],
      ["opacity-anim",  1, "opacity-box", "webkitFilter", 'opacity(0.5)', 0.05],
      ["brightness-anim",  1, "brightness-box", "webkitFilter", 'brightness(0.5)', 0.05],
      ["contrast-anim",  1, "contrast-box", "webkitFilter", 'contrast(0.5)', 0.05],
      ["blur-anim",  1, "blur-box", "webkitFilter", 'blur(10px)', 1],
      // FIXME when we implement computed filter style for drop-shadow.
      // ["dropshadow-anim",  1, "dropshadow-box", "webkitFilter", 'drop-shadow(rgba(0, 0, 0, 0.5) 10px 15px 5px )', 2],
    ];
    
    runAnimationTest(expectedValues);
  </script>
</head>
<body>

<div class="box" id="grayscale-box"></div>
<div class="box" id="sepia-box"></div>
<div class="box" id="saturate-box"></div>
<div class="box" id="huerotate-box"></div>
<div class="box" id="invert-box"></div>
<div class="box" id="opacity-box"></div>
<div class="box" id="brightness-box"></div>
<div class="box" id="contrast-box"></div>
<div class="box" id="blur-box"></div>
<!-- <div class="box" id="dropshadow-box"></div> -->

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