| <!DOCTYPE html> |
| <html> |
| <head> |
| <script src="../resources/testharness.js"></script> |
| <script src="../resources/testharnessreport.js"></script> |
| </head> |
| <body> |
| <div> |
| <div style="width:500px;height:500px"><div id="test">hello</div></div> |
| </div> |
| <script> |
| 'use strict'; |
| // Test the parsing and the computed style values of the animations properties. |
| |
| var e = document.getElementById('test'); |
| var style = e.style; |
| var computedStyle = window.getComputedStyle(e, null); |
| |
| test(() => { |
| // Test initial value. |
| assert_equals(computedStyle.animationDirection, 'normal'); |
| assert_equals(computedStyle.webkitAnimationDirection, 'normal'); |
| |
| style.animationDirection = "reverse"; |
| assert_not_equals(Object.keys(style).indexOf('animationDirection'), -1); |
| assert_not_equals(Object.keys(style).indexOf('webkitAnimationDirection'), -1); |
| assert_equals(style.animationDirection, 'reverse'); |
| assert_equals(computedStyle.animationDirection, 'reverse'); |
| assert_equals(style.webkitAnimationDirection, 'reverse'); |
| assert_equals(computedStyle.webkitAnimationDirection, 'reverse'); |
| |
| style.animationDirection = "normal"; |
| assert_equals(style.animationDirection, 'normal'); |
| assert_equals(computedStyle.animationDirection, 'normal'); |
| assert_equals(style.webkitAnimationDirection, 'normal'); |
| assert_equals(computedStyle.webkitAnimationDirection, 'normal'); |
| |
| style.animationDirection = "normal, alternate"; |
| assert_equals(style.animationDirection, 'normal, alternate'); |
| assert_equals(computedStyle.animationDirection, 'normal, alternate'); |
| assert_equals(style.webkitAnimationDirection, 'normal, alternate'); |
| assert_equals(computedStyle.webkitAnimationDirection, 'normal, alternate'); |
| |
| style.animationDirection = "alternate"; |
| assert_equals(style.animationDirection, 'alternate'); |
| assert_equals(computedStyle.animationDirection, 'alternate'); |
| assert_equals(style.webkitAnimationDirection, 'alternate'); |
| assert_equals(computedStyle.webkitAnimationDirection, 'alternate'); |
| |
| style.animationDirection = "alternate-reverse"; |
| assert_equals(style.animationDirection, 'alternate-reverse'); |
| assert_equals(computedStyle.animationDirection, 'alternate-reverse'); |
| assert_equals(style.webkitAnimationDirection, 'alternate-reverse'); |
| assert_equals(computedStyle.webkitAnimationDirection, 'alternate-reverse'); |
| }, "Valid animation-direction values."); |
| |
| test(() => { |
| style.animationDirection = ""; |
| |
| style.animationDirection = "solid"; |
| assert_equals(style.animationDirection, ''); |
| assert_equals(computedStyle.animationDirection, 'normal'); |
| assert_equals(style.webkitAnimationDirection, ''); |
| assert_equals(computedStyle.webkitAnimationDirection, 'normal'); |
| |
| style.animationDirection = "0"; |
| assert_equals(style.animationDirection, ''); |
| assert_equals(computedStyle.animationDirection, 'normal'); |
| assert_equals(style.webkitAnimationDirection, ''); |
| assert_equals(computedStyle.webkitAnimationDirection, 'normal'); |
| |
| style.animationDirection = "3px"; |
| assert_equals(style.animationDirection, ''); |
| assert_equals(computedStyle.animationDirection, 'normal'); |
| assert_equals(style.webkitAnimationDirection, ''); |
| assert_equals(computedStyle.webkitAnimationDirection, 'normal'); |
| |
| style.animationDirection = "alternate-normal"; |
| assert_equals(style.animationDirection, ''); |
| assert_equals(computedStyle.animationDirection, 'normal'); |
| assert_equals(style.webkitAnimationDirection, ''); |
| assert_equals(computedStyle.webkitAnimationDirection, 'normal'); |
| |
| style.animationDirection = "3.5"; |
| assert_equals(style.animationDirection, ''); |
| assert_equals(computedStyle.animationDirection, 'normal'); |
| assert_equals(style.webkitAnimationDirection, ''); |
| assert_equals(computedStyle.webkitAnimationDirection, 'normal'); |
| |
| style.animationDirection = "3.5, reverse"; |
| assert_equals(style.animationDirection, ''); |
| assert_equals(computedStyle.animationDirection, 'normal'); |
| assert_equals(style.webkitAnimationDirection, ''); |
| assert_equals(computedStyle.webkitAnimationDirection, 'normal'); |
| |
| style.animationDirection = "reverse, solid"; |
| assert_equals(style.animationDirection, ''); |
| assert_equals(computedStyle.animationDirection, 'normal'); |
| assert_equals(style.webkitAnimationDirection, ''); |
| assert_equals(computedStyle.webkitAnimationDirection, 'normal'); |
| }, "Invalid animation-direction values."); |
| |
| test(() => { |
| // Test initial value. |
| assert_equals(computedStyle.animationPlayState, 'running'); |
| assert_equals(computedStyle.webkitAnimationPlayState, 'running'); |
| |
| style.animationPlayState = "paused"; |
| assert_not_equals(Object.keys(style).indexOf('animationPlayState'), -1); |
| assert_not_equals(Object.keys(style).indexOf('webkitAnimationPlayState'), -1); |
| assert_equals(style.animationPlayState, 'paused'); |
| assert_equals(computedStyle.animationPlayState, 'paused'); |
| assert_equals(style.webkitAnimationPlayState, 'paused'); |
| assert_equals(computedStyle.webkitAnimationPlayState, 'paused'); |
| |
| style.animationPlayState = "running"; |
| assert_equals(style.animationPlayState, 'running'); |
| assert_equals(computedStyle.animationPlayState, 'running'); |
| assert_equals(style.webkitAnimationPlayState, 'running'); |
| assert_equals(computedStyle.webkitAnimationPlayState, 'running'); |
| |
| style.animationPlayState = "running, running"; |
| assert_equals(style.animationPlayState, 'running, running'); |
| assert_equals(computedStyle.animationPlayState, 'running, running'); |
| assert_equals(style.webkitAnimationPlayState, 'running, running'); |
| assert_equals(computedStyle.webkitAnimationPlayState, 'running, running'); |
| |
| style.animationPlayState = "paused, paused"; |
| assert_equals(style.animationPlayState, 'paused, paused'); |
| assert_equals(computedStyle.animationPlayState, 'paused, paused'); |
| assert_equals(style.webkitAnimationPlayState, 'paused, paused'); |
| assert_equals(computedStyle.webkitAnimationPlayState, 'paused, paused'); |
| |
| style.animationPlayState = "paused, running"; |
| assert_equals(style.animationPlayState, 'paused, running'); |
| assert_equals(computedStyle.animationPlayState, 'paused, running'); |
| assert_equals(style.webkitAnimationPlayState, 'paused, running'); |
| assert_equals(computedStyle.webkitAnimationPlayState, 'paused, running'); |
| }, "Valid animation-play-state values."); |
| |
| test(() => { |
| style.animationPlayState = ""; |
| |
| style.animationPlayState = "running3"; |
| assert_equals(style.animationPlayState, ''); |
| assert_equals(computedStyle.animationPlayState, 'running'); |
| assert_equals(style.webkitAnimationPlayState, ''); |
| assert_equals(computedStyle.webkitAnimationPlayState, 'running'); |
| |
| style.animationPlayState = "0"; |
| assert_equals(style.animationPlayState, ''); |
| assert_equals(computedStyle.animationPlayState, 'running'); |
| assert_equals(style.webkitAnimationPlayState, ''); |
| assert_equals(computedStyle.webkitAnimationPlayState, 'running'); |
| |
| style.animationPlayState = "solid"; |
| assert_equals(style.animationPlayState, ''); |
| assert_equals(computedStyle.animationPlayState, 'running'); |
| assert_equals(style.webkitAnimationPlayState, ''); |
| assert_equals(computedStyle.webkitAnimationPlayState, 'running'); |
| |
| style.animationPlayState = "20px"; |
| assert_equals(style.animationPlayState, ''); |
| assert_equals(computedStyle.animationPlayState, 'running'); |
| assert_equals(style.webkitAnimationPlayState, ''); |
| assert_equals(computedStyle.webkitAnimationPlayState, 'running'); |
| |
| style.animationPlayState = "all"; |
| assert_equals(style.animationPlayState, ''); |
| assert_equals(computedStyle.animationPlayState, 'running'); |
| assert_equals(style.webkitAnimationPlayState, ''); |
| assert_equals(computedStyle.webkitAnimationPlayState, 'running'); |
| |
| style.animationPlayState = "running, test"; |
| assert_equals(style.animationPlayState, ''); |
| assert_equals(computedStyle.animationPlayState, 'running'); |
| assert_equals(style.webkitAnimationPlayState, ''); |
| assert_equals(computedStyle.webkitAnimationPlayState, 'running'); |
| |
| style.animationPlayState = "all, paused"; |
| assert_equals(style.animationPlayState, ''); |
| assert_equals(computedStyle.animationPlayState, 'running'); |
| assert_equals(style.webkitAnimationPlayState, ''); |
| assert_equals(computedStyle.webkitAnimationPlayState, 'running'); |
| }, "Invalid animation-play-state values."); |
| |
| test(() => { |
| // Test initial value. |
| assert_equals(computedStyle.animationFillMode, 'none'); |
| assert_equals(computedStyle.webkitAnimationFillMode, 'none'); |
| |
| style.animationFillMode = "forwards"; |
| assert_not_equals(Object.keys(style).indexOf('animationFillMode'), -1); |
| assert_not_equals(Object.keys(style).indexOf('webkitAnimationFillMode'), -1); |
| assert_equals(style.animationFillMode, 'forwards'); |
| assert_equals(computedStyle.animationFillMode, 'forwards'); |
| assert_equals(style.webkitAnimationFillMode, 'forwards'); |
| assert_equals(computedStyle.webkitAnimationFillMode, 'forwards'); |
| |
| style.animationFillMode = "backwards"; |
| assert_equals(style.animationFillMode, 'backwards'); |
| assert_equals(computedStyle.animationFillMode, 'backwards'); |
| assert_equals(style.webkitAnimationFillMode, 'backwards'); |
| assert_equals(computedStyle.webkitAnimationFillMode, 'backwards'); |
| |
| style.animationFillMode = "both"; |
| assert_equals(style.animationFillMode, 'both'); |
| assert_equals(computedStyle.animationFillMode, 'both'); |
| assert_equals(style.webkitAnimationFillMode, 'both'); |
| assert_equals(computedStyle.webkitAnimationFillMode, 'both'); |
| |
| style.animationFillMode = "none"; |
| assert_equals(style.animationFillMode, 'none'); |
| assert_equals(computedStyle.animationFillMode, 'none'); |
| assert_equals(style.webkitAnimationFillMode, 'none'); |
| assert_equals(computedStyle.webkitAnimationFillMode, 'none'); |
| |
| style.animationFillMode = "none, both"; |
| assert_equals(style.animationFillMode, 'none, both'); |
| assert_equals(computedStyle.animationFillMode, 'none, both'); |
| assert_equals(style.webkitAnimationFillMode, 'none, both'); |
| assert_equals(computedStyle.webkitAnimationFillMode, 'none, both'); |
| |
| style.animationFillMode = "backwards, forwards"; |
| assert_equals(style.animationFillMode, 'backwards, forwards'); |
| assert_equals(computedStyle.animationFillMode, 'backwards, forwards'); |
| assert_equals(style.webkitAnimationFillMode, 'backwards, forwards'); |
| assert_equals(computedStyle.webkitAnimationFillMode, 'backwards, forwards'); |
| }, "Valid animation-fill-mode values."); |
| |
| test(() => { |
| style.animationFillMode = ""; |
| |
| style.animationFillMode = "foo"; |
| assert_equals(style.animationFillMode, ''); |
| assert_equals(computedStyle.animationFillMode, 'none'); |
| assert_equals(style.webkitAnimationFillMode, ''); |
| assert_equals(computedStyle.webkitAnimationFillMode, 'none'); |
| |
| style.animationFillMode = "0"; |
| assert_equals(style.animationFillMode, ''); |
| assert_equals(computedStyle.animationFillMode, 'none'); |
| assert_equals(style.webkitAnimationFillMode, ''); |
| assert_equals(computedStyle.webkitAnimationFillMode, 'none'); |
| |
| style.animationFillMode = "-"; |
| assert_equals(style.animationFillMode, ''); |
| assert_equals(computedStyle.animationFillMode, 'none'); |
| assert_equals(style.webkitAnimationFillMode, ''); |
| assert_equals(computedStyle.webkitAnimationFillMode, 'none'); |
| |
| style.animationFillMode = "3px"; |
| assert_equals(style.animationFillMode, ''); |
| assert_equals(computedStyle.animationFillMode, 'none'); |
| assert_equals(style.webkitAnimationFillMode, ''); |
| assert_equals(computedStyle.webkitAnimationFillMode, 'none'); |
| |
| style.animationFillMode = "backwards, test"; |
| assert_equals(style.animationFillMode, ''); |
| assert_equals(computedStyle.animationFillMode, 'none'); |
| assert_equals(style.webkitAnimationFillMode, ''); |
| assert_equals(computedStyle.webkitAnimationFillMode, 'none'); |
| |
| style.animationFillMode = "test, all"; |
| assert_equals(style.animationFillMode, ''); |
| assert_equals(computedStyle.animationFillMode, 'none'); |
| assert_equals(style.webkitAnimationFillMode, ''); |
| assert_equals(computedStyle.webkitAnimationFillMode, 'none'); |
| |
| style.animationFillMode = "test, none"; |
| assert_equals(style.animationFillMode, ''); |
| assert_equals(computedStyle.animationFillMode, 'none'); |
| assert_equals(style.webkitAnimationFillMode, ''); |
| assert_equals(computedStyle.webkitAnimationFillMode, 'none'); |
| |
| style.animationFillMode = "forwards,"; |
| assert_equals(style.animationFillMode, ''); |
| }, "Invalid animation-fill-mode values."); |
| </script> |
| </body> |
| </html> |