| <!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> |