<!DOCTYPE html><!-- webkit-test-runner [ experimental:WebAnimationsCSSIntegrationEnabled=false ] -->
<html>
<head>
  <style type="text/css" media="screen">
    #box {
        position: absolute;
        left: 0;
        top: 0;
        height: 100px;
        width: 100px;
        background-color: green;
        -webkit-animation-name: move;
        -webkit-animation-duration: 1s;
        -webkit-animation-timing-function: linear;
        -webkit-animation-iteration-count: 1;
    }

    @-webkit-keyframes move {
        from {
            -webkit-transform: translateX(0) scale(1);
            opacity: 0.7;
        }
        to {
            -webkit-transform: translateX(400px) scale(1);
            opacity: 1.0;
        }
    }
    
    #indicator {
        position: absolute;
        left: 0;
        top: 0;
        height: 100px;
        width: 100px;
        left: 200px;
        background-color: red;
    }
    
    #result {
        display: none; /* only the pixel output is valuable */
    }
  </style>
  <script src="resources/animation-test-helpers.js" type="text/javascript" charset="utf-8"></script>
  <script type="text/javascript" charset="utf-8">

    const expectedValues = [
      // [animation-name, time, element-id, property, expected-value, tolerance]
      ["move", 0.5, "box", "webkitTransform.4", 200, 2],
    ];

    var disablePauseAnimationAPI = false;
    var doPixelTest = true;
    runAnimationTest(expectedValues, null, null, disablePauseAnimationAPI, doPixelTest);
    
  </script>
</head>
<body>

<!-- In the pixel results, the green square should overlay the red square -->
<div id="indicator"></div>
<div id="box"></div>
<div id="result"></div>

</body>
</html>
