<!DOCTYPE html>
<html lang="en">
<head>
  <meta http-equiv="Content-Type" content="text/html; charset=utf-8">
  <title>Test of animation-play-state</title>
  <style>
    body {
      margin: 0;
    }

    #box {
      position: absolute;
      left: 0px;
      top: 100px;
      height: 100px;
      width: 100px;
      background-color: red;
      margin: 0;
      animation-duration: 2s;
      animation-timing-function: linear;
      animation-name: move;
      animation-play-state: running;
    }

    @keyframes move {
      from { margin-left: 0px; }
      to   { margin-left: 300px; }
    }
  </style>
  <script src="../resources/testharness.js"></script>
  <script src="../resources/testharnessreport.js"></script>
  <script src="resources/animation-test.js"></script>
</head>
<body>
<div id="box"></div>
<script>

promise_test(async t => {
    const delay = 100;

    const test = new AnimationTest({
        target: document.getElementById("box"),
        styleExtractor: style => parseFloat(style.marginLeft)
    });

    // Record two computed values after the specified delay each.
    await test.recordValueAfterRunningFor(delay);
    await test.recordValueAfterRunningFor(delay);

    // We'll now pause the animation using the CSS property "animation-play-state".
    box.style.animationPlayState = "paused";

    // And now we'll record values after the specified delay each and check that those are the same.
    const initialPausedValue = await test.valueAfterWaitingFor(delay);
    const currentPausedValue = await test.valueAfterWaitingFor(delay);
    assert_equals(initialPausedValue, currentPausedValue, "Values recorded while paused are the same.");

    // Finally, check the values recorded earlier in the test.
    test.checkRecordedValues();
}, `Pausing an animation using the animation-play-state property stops animating styles.`);

</script>
</div>
</body>
</html>
