| <!doctype html> |
| <meta charset=utf-8> |
| <title>CSS Animation Test: fractional animation-iteration-count</title> |
| <link rel="help" href="https://drafts.csswg.org/css-animations/#animation-iteration-count"> |
| <link rel="author" title="Martin Robinson" href="mailto:mrobinson@igalia.com"> |
| <script src="/resources/testharness.js"></script> |
| <script src="/resources/testharnessreport.js"></script> |
| <script src="support/testcommon.js"></script> |
| <style> |
| @keyframes margin-animation { |
| from { |
| margin-left: 0px; |
| } |
| to { |
| margin-left: 100px; |
| } |
| } |
| </style> |
| <div id="log"></div> |
| <script> |
| 'use strict'; |
| |
| promise_test(async t => { |
| const div = addDiv(t); |
| div.style.animation = 'margin-animation 1s -10s linear 1.5 normal forwards paused'; |
| assert_equals(getComputedStyle(div).marginLeft, '50px'); |
| }, 'Basic floating point iteration count'); |
| |
| promise_test(async t => { |
| const div = addDiv(t); |
| div.style.animation = 'margin-animation 1s -10s linear 3.25 normal forwards paused'; |
| assert_equals(getComputedStyle(div).marginLeft, '25px'); |
| }, 'Floating point iteration count after multiple iterations'); |
| |
| promise_test(async t => { |
| const div = addDiv(t); |
| div.style.animation = 'margin-animation 1s -10s linear 0.75 normal forwards paused'; |
| assert_equals(getComputedStyle(div).marginLeft, '75px'); |
| }, 'Floating point iteration count during first iteration'); |
| |
| promise_test(async t => { |
| const div = addDiv(t); |
| div.style.animation = 'margin-animation 1s -10s linear 1.75 alternate forwards paused'; |
| assert_equals(getComputedStyle(div).marginLeft, '25px'); |
| }, 'Floating point iteration count with alternating directions'); |
| </script> |