| <!DOCTYPE html> |
| <title>Tests that unprefixed animation events are correctly fired when using html event listeners.</title> |
| <style> |
| #box { |
| position: relative; |
| left: 100px; |
| top: 10px; |
| height: 100px; |
| width: 100px; |
| background-color: #999; |
| } |
| |
| .animate { |
| animation-duration: 0.3s; |
| animation-name: anim; |
| } |
| |
| @keyframes anim { |
| from { left: 200px; } |
| to { left: 300px; } |
| } |
| </style> |
| <script src="../../resources/testharness.js"></script> |
| <script src="../../resources/testharnessreport.js"></script> |
| <script> |
| var startEventReceived = false; |
| var endEventReceived = false; |
| |
| function recordAnimationStart() { |
| startEventReceived = true; |
| } |
| |
| function recordAnimationEnd() { |
| endEventReceived = true; |
| document.getElementById('box').className = ''; |
| // Launch again the animation to catch the animation iteration events this time. |
| requestAnimationFrame(function () { |
| document.getElementById('box').style.animationIterationCount = "infinite"; |
| document.getElementById('box').className = 'animate'; |
| }); |
| } |
| |
| async_test(t => { |
| window.addEventListener("load", t.step_func(() => { |
| const box = document.getElementById('box'); |
| box.addEventListener("animationiteration", t.step_func_done(() => { |
| assert_true(startEventReceived); |
| assert_true(endEventReceived); |
| })); |
| })); |
| }, "Tests that unprefixed animation events are correctly fired when using html event listeners"); |
| </script> |
| <div id="box" onanimationstart="recordAnimationStart();" onanimationend="recordAnimationEnd();" class="animate"></div> |