| <!doctype html> | |
| <meta charset=utf-8> | |
| <title>CSSAnimation.playState</title> | |
| <!-- TODO: Add a more specific link for this once it is specified. --> | |
| <link rel="help" href="https://drafts.csswg.org/css-animations-2/#cssanimation"> | |
| <script src="/resources/testharness.js"></script> | |
| <script src="/resources/testharnessreport.js"></script> | |
| <script src="support/testcommon.js"></script> | |
| <style> | |
| @keyframes anim { } | |
| </style> | |
| <div id="log"></div> | |
| <script> | |
| 'use strict'; | |
| test(t => { | |
| const div = addDiv(t, { 'style': 'animation: anim 100s' }); | |
| const animation = div.getAnimations()[0]; | |
| assert_true(animation.pending); | |
| assert_equals(animation.playState, 'running'); | |
| assert_equals(animation.startTime, null); | |
| }, 'A new CSS animation is initially play-pending'); | |
| test(t => { | |
| const div = addDiv(t, { 'style': 'animation: anim 1000s paused' }); | |
| const animation = div.getAnimations()[0]; | |
| assert_equals(animation.playState, 'paused'); | |
| }, 'Animation returns correct playState when paused'); | |
| test(t => { | |
| const div = addDiv(t, { 'style': 'animation: anim 1000s' }); | |
| const animation = div.getAnimations()[0]; | |
| animation.pause(); | |
| assert_equals(animation.playState, 'paused'); | |
| }, 'Animation.playState updates when paused by script'); | |
| test(t => { | |
| const div = addDiv(t, { 'style': 'animation: anim 1000s paused' }); | |
| const animation = div.getAnimations()[0]; | |
| div.style.animationPlayState = 'running'; | |
| // This test also checks that calling playState flushes style | |
| assert_equals(animation.playState, 'running', | |
| 'Animation.playState reports running after updating' | |
| + ' animation-play-state (got: ' + animation.playState + ')'); | |
| }, 'Animation.playState updates when resumed by setting style'); | |
| test(t => { | |
| const div = addDiv(t, { 'style': 'animation: anim 1000s' }); | |
| const animation = div.getAnimations()[0]; | |
| animation.cancel(); | |
| assert_equals(animation.playState, 'idle'); | |
| }, 'Animation returns correct playState when canceled'); | |
| </script> |