<!DOCTYPE html><!-- webkit-test-runner [ experimental:WebAnimationsCSSIntegrationEnabled=false ] -->
<html>
<head>
  <meta http-equiv="Content-Type" content="text/html; charset=utf-8">
  <style>
  .outer {
    width: 120px;
    height: 240px;
    margin: 20px;
    border: 1px solid black;
    -webkit-box-reflect: right 10px;
    opacity:0.95;
  }
  
  .inner {
    margin: 10px;
    width: 100px;
    height: 100px;
    text-align: center;
    font-size: 50pt;
    border: 2px solid blue;
    -webkit-box-reflect: below 10px;
    opacity:0.95;
  }
  
  #animated {
    margin: 10px;
    width: 80px;
    height: 80px;
    background-color: green;
  }
  
  #animated.animated {
    -webkit-animation: swing 1s linear 1;
  }
  
  /* for manual testing */
  #animated:hover {
    -webkit-animation-play-state: paused;
  }
  
  .composited {
    -webkit-transform: translateZ(0);
  }
  
  @-webkit-keyframes swing {
    from { -webkit-transform: rotate(0deg); }
    to   { -webkit-transform: rotate(90deg); }
  }
  </style>
  <script src="../../animations/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]
      ["swing", 0.5, "animated", "webkitTransform.0", 0.76, 0.1],
    ];
    
    var pixelTest = true;
    var disablePauseAPI = false;
    runAnimationTest(expectedValues, null, null, disablePauseAPI, pixelTest);
  </script>
  </head>
<body>
  <p>The top left box, and all reflections should be rotated 45deg.</p>
  <div class="outer">
    <div id="inner" class="inner">
      <div id="animated" class="animated"></div>
    </div>
  </div>
  <div id="result"></div>
</body>
</html>
