<!DOCTYPE html>
<meta charset=utf-8>
<title>Animation.play</title>
<link rel="help" href="https://drafts.csswg.org/web-animations/#dom-animation-play">
<script src="/resources/testharness.js"></script>
<script src="/resources/testharnessreport.js"></script>
<script src="../../testcommon.js"></script>
<body>
<div id="log"></div>
<script>
'use strict';

promise_test(t => {
  const div = createDiv(t);
  const animation = div.animate({ transform: ['none', 'translate(10px)']},
                                { duration: 100 * MS_PER_SEC,
                                  iterations: Infinity });
  return animation.ready.then(() => {
    // Seek to a time outside the active range so that play() will have to
    // snap back to the start
    animation.currentTime = -5 * MS_PER_SEC;
    animation.playbackRate = -1;

    assert_throws_dom('InvalidStateError',
                      () => { animation.play(); },
                      'Expected InvalidStateError exception on calling play() ' +
                      'with a negative playbackRate and infinite-duration ' +
                  'animation');
  });
}, 'play() throws when seeking an infinite-duration animation played in ' +
   'reverse');

</script>
</body>
