<!DOCTYPE html>
<!--
 | Test case which ensures that simple use of animations works correctly and
 | that we see the right thing at the right time.
 -->
<html>
<head>
  <style>
    @keyframes testAnimation{
      0% { transform: translate(0, 0); }
      50% { transform: translate(100px,0); }
      100% { transform: translate(100px,100px); }
    }
    .block {
      position: absolute;
      width: 100px;
      height: 100px;
      font-size: 30px;
    }
    #block1 {
      background-color: red;
      animation: testAnimation 1s forwards;
    }
    #block2 {
      background-color: green;
      animation: testAnimation 2s forwards;
    }
  </style>
</head>
<body>
  <div id="block1" class="block"></div>
  <div id="block2" class="block"></div>

  <script>

    if (window.testRunner) {
      window.testRunner.waitUntilDone();
    }

    window.addEventListener('load', function() {
      if (window.testRunner) {
        // Run the transition to the half-way point and then measure the result.
        window.testRunner.AdvanceClockByMs(1000);
        window.testRunner.notifyDone();
      }
    });
  </script>

</body>
</html>
