<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"><!-- webkit-test-runner [ experimental:WebAnimationsCSSIntegrationEnabled=false ] -->
<html lang="en">
<head>
  <meta http-equiv="Content-Type" content="text/html; charset=utf-8">
  <title>Test of -webkit-animation-play-state</title>
  <style type="text/css" media="screen">
    body {
      margin: 0;
    }

    #box {
      position: absolute;
      left: 0px;
      top: 100px;
      height: 100px;
      width: 100px;
      background-color: red;
      margin: 0;
      -webkit-animation-duration: 2s;
      -webkit-animation-timing-function: linear;
      -webkit-animation-name: "move1";
      -webkit-animation-play-state: running;
    }
    #safezone {
      position: absolute;
      top: 100px;
      height: 100px;
      width: 200px;
      left: 100px;
      background-color: green;
    }
    @-webkit-keyframes "move1" {
      from { -webkit-transform: translateX(0px); }
      to   { -webkit-transform: translateX(300px); }
    }
    #result {
      color: white; /* hide from pixel results */
    }
  </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]
      ["move1", 0.5, "box", "webkitTransform", [1,0,0,1,75,0], 20],
      ["move1", 1.0, "box", "webkitTransform", [1,0,0,1,150,0], 20],
      ["move1", 2.5, "box", "webkitTransform", [1,0,0,1,150,0], 20],
    ];

    function pauseAnimation()
    {
        document.getElementById("box").style.webkitAnimationPlayState = "paused";
    }

    function setTimers()
    {
        setTimeout(pauseAnimation, 1000);
    }

    runAnimationTest(expectedValues, setTimers, null, true);

  </script>
</head>
<body>
<!-- This tests the operation of -webkit-animation-play-state. After 1 second the red boxes should be hidden by the green boxes. You should see no red boxes. -->
<div id="box"></div>
<div id="safezone"></div>
<div id="result"></div>
</div>
</body>
</html>
