chromium/third_party/blink/web_tests/animations/multiple-keyframes.html

<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"
   "http://www.w3.org/TR/html4/loose.dtd">

<html lang="en">
<head>
  <meta http-equiv="Content-Type" content="text/html; charset=utf-8">
  <title>Test animation with multiple keyframes</title>
  <style type="text/css" media="screen">
    #box {
      position: relative;
      left: 10px;
      top: 10px;
      height: 100px;
      width: 100px;
      background-color: blue;
      animation-duration: 2s;
      animation-timing-function: linear;
      animation-name: anim;
    }
    @keyframes anim {
        from { left: 10px; }
        40% { left: 30px; }
        60% { left: 10px; }
        to   { left: 20px; }
    }
  </style>
  <script src="resources/animation-test-helpers.js" type="text/javascript" charset="utf-8"></script>
  <script type="text/javascript" charset="utf-8">

    const expectedValues = [
      // [time, element-id, property, expected-value, tolerance]
      [0.4, "box", "left", 20, 2],
      [1.2, "box", "left", 10, 2],
      [1.6, "box", "left", 15, 2],
    ];
    
    runAnimationTest(expectedValues);
    
  </script>
</head>
<body>
This test performs a keyframed animation of the left property. It animates over 2 seconds.
It takes 3 snapshots and expects each result to be within a specified range.
<div id="box">
</div>
<div id="result">
</div>
</body>
</html>