| <!DOCTYPE html> |
| <link rel="help" href="https://drafts.csswg.org/scroll-animations-1/#animation-timeline"> |
| <script src="/resources/testharness.js"></script> |
| <script src="/resources/testharnessreport.js"></script> |
| <script src="/css/support/computed-testcommon.js"></script> |
| </head> |
| <style> |
| #outer { animation-timeline: foo; } |
| #target { animation-timeline: bar; } |
| </style> |
| <div id="outer"> |
| <div id="target"></div> |
| </div> |
| <script> |
| test_computed_value('animation-timeline', 'initial', 'auto'); |
| test_computed_value('animation-timeline', 'inherit', 'foo'); |
| test_computed_value('animation-timeline', 'unset', 'auto'); |
| test_computed_value('animation-timeline', 'revert', 'auto'); |
| test_computed_value('animation-timeline', 'auto'); |
| test_computed_value('animation-timeline', 'none'); |
| test_computed_value('animation-timeline', 'auto, auto'); |
| test_computed_value('animation-timeline', 'none, none'); |
| test_computed_value('animation-timeline', 'auto, none'); |
| test_computed_value('animation-timeline', 'none, auto'); |
| test_computed_value('animation-timeline', '"test"', 'test'); |
| test_computed_value('animation-timeline', '"none"'); |
| test_computed_value('animation-timeline', '"auto"'); |
| test_computed_value('animation-timeline', '"initial"'); |
| test_computed_value('animation-timeline', '"inherit"'); |
| test_computed_value('animation-timeline', '"unset"'); |
| test_computed_value('animation-timeline', '"revert"'); |
| test_computed_value('animation-timeline', '"revert-layer"'); |
| test_computed_value('animation-timeline', 'test'); |
| test_computed_value('animation-timeline', 'test1, test2'); |
| test_computed_value('animation-timeline', 'test1, "test2", none, test3, auto', 'test1, test2, none, test3, auto'); |
| |
| test(() => { |
| let style = getComputedStyle(document.getElementById('target')); |
| assert_not_equals(Array.from(style).indexOf('animation-timeline'), -1); |
| }, 'The animation-timeline property shows up in CSSStyleDeclaration enumeration'); |
| |
| test(() => { |
| let style = document.getElementById('target').style; |
| assert_not_equals(style.cssText.indexOf('animation-timeline'), -1); |
| }, 'The animation-timeline property shows up in CSSStyleDeclaration.cssText'); |
| |
| // https://drafts.csswg.org/scroll-animations-1/#scroll-notation |
| // |
| // animation-timeline: scroll(<axis>? <scroller>?); |
| // <axis> = block | inline | vertical | horizontal |
| // <scroller> = root | nearest |
| test_computed_value('animation-timeline', 'scroll()'); |
| test_computed_value('animation-timeline', 'scroll(block)', 'scroll()'); |
| test_computed_value('animation-timeline', 'scroll(inline)'); |
| test_computed_value('animation-timeline', 'scroll(horizontal)'); |
| test_computed_value('animation-timeline', 'scroll(vertical)'); |
| test_computed_value('animation-timeline', 'scroll(root)'); |
| test_computed_value('animation-timeline', 'scroll(nearest)', 'scroll()'); |
| test_computed_value('animation-timeline', 'scroll(inline nearest)', 'scroll(inline)'); |
| test_computed_value('animation-timeline', 'scroll(vertical root)'); |
| |
| // https://drafts.csswg.org/scroll-animations-1/#view-notation |
| test_computed_value('animation-timeline', 'view()'); |
| test_computed_value('animation-timeline', 'view(block)', 'view()'); |
| test_computed_value('animation-timeline', 'view(inline)', 'view(inline)'); |
| test_computed_value('animation-timeline', 'view(horizontal)', 'view(horizontal)'); |
| test_computed_value('animation-timeline', 'view(vertical)', 'view(vertical)'); |
| test_computed_value('animation-timeline', 'view(vertical 1px)'); |
| test_computed_value('animation-timeline', 'view(vertical 1px auto)'); |
| test_computed_value('animation-timeline', 'view(1px vertical)', 'view(vertical 1px)'); |
| test_computed_value('animation-timeline', 'view(vertical auto)', 'view(vertical)'); |
| test_computed_value('animation-timeline', 'view(vertical auto auto)', 'view(vertical)'); |
| |
| </script> |