chromium/third_party/blink/web_tests/external/wpt/css/css-animations/animationstart-and-animationend-events-manual.html

<!DOCTYPE html>
<meta charset="utf-8">
<title>CSS Animations Test: animation events - animationstart and animationend</title>
<link rel="author" title="Nokia Inc." href="http://www.nokia.com">
<link rel="author" title="Intel" href="http://www.intel.com">
<link rel="reviewer" title="Zhiqiang Zhang" href="mailto:[email protected]"> <!-- 2015-05-06 -->
<link rel="help" href="https://drafts.csswg.org/css-animations-1/#animation-name">
<link rel="help" href="https://drafts.csswg.org/css-animations-1/#animation-duration">
<link rel="help" href="https://drafts.csswg.org/css-animations-1/#events">
<meta name="flags" content="animated">
<meta name="assert" content="Check that animationstart event occurs at the start of an animation,
                             animationend event occurs when animation finishes.">
<style>
  div {
    animation-name: sample;
    animation-duration: 10s;

    background-color: blue;
    height: 100px;
    width: 100px;
    position: relative;
  }

  @keyframes sample {
    from {
      left: 150px;
    }
    to {
      left: 0px;
    }
  }
</style>
<body>
  <p>
    Test passes if there is a filled blue square,
    which moves from right to left with text 'START'
    and changes to 'END' when the animation is finished.
  </p>
  <div>Filler Text</div>
  <script>
    var div = document.getElementsByTagName("div");
    div[0].addEventListener("animationstart", animationStart, true);
    div[0].addEventListener("animationend", animationEnd, true);

    function animationStart() {
      div[0].innerHTML = "START";
    }

    function animationEnd() {
      div[0].innerHTML = "END";
    }
  </script>
</body>