| <!DOCTYPE html> |
| <html> |
| <head> |
| <script src="../../http/tests/inspector/resources/inspector-test.js"></script> |
| <script src="resources/lifecycle-utilities.js"></script> |
| <style> |
| div#target { |
| color: red; |
| opacity: 0; |
| |
| } |
| div#target.active { |
| color: blue; |
| opacity: 1; |
| |
| transition-property: opacity; |
| transition-duration: 400ms; |
| transition-timing-function: cubic-bezier(0.1, 0.2, 0.3, 0.4); |
| transition-delay: 100ms; |
| } |
| </style> |
| <script> |
| function test() |
| { |
| let suite = InspectorTest.createAsyncSuite("Animation.Lifecycle"); |
| |
| suite.addTestCase({ |
| name: "Animation.Lifecycle.CSSTransition", |
| description: "Check that Web Inspector is notified whenever CSS transitions are created/destroyed.", |
| async test() { |
| InspectorTest.expectEqual(WI.animationManager.animationCollection.size, 0, "There should not be any animations."); |
| |
| let [animation] = await Promise.all([ |
| InspectorTest.AnimationLifecycleUtilities.awaitAnimationCreated(WI.Animation.Type.CSSTransition), |
| InspectorTest.evaluateInPage(`document.getElementById("target").classList.add("active")`), |
| ]); |
| |
| await Promise.all([ |
| InspectorTest.AnimationLifecycleUtilities.awaitAnimationDestroyed(animation.animationId), |
| InspectorTest.AnimationLifecycleUtilities.destroyAnimations(), |
| InspectorTest.evaluateInPage(`document.getElementById("target").classList.remove("active")`), |
| ]); |
| }, |
| }); |
| |
| suite.runTestCasesAndFinish(); |
| } |
| </script> |
| </head> |
| <body onload="runTest()"> |
| <p>Tests for the Animation.animationCreated and Animation.animationDestroyed events.</p> |
| <div id="target"></div> |
| </body> |
| </html> |