| <title>Test that newly created transitions do not run while we are suspended</title> |
| <style> |
| #box { |
| position: relative; |
| left: 0px; |
| height: 50px; |
| width: 50px; |
| background-color: blue; |
| } |
| </style> |
| <script> |
| var box; |
| |
| let transitionAllowedToRun = false; |
| |
| function suspend() |
| { |
| if (window.internals) |
| internals.suspendAnimations(); |
| } |
| |
| function resume() |
| { |
| if (window.internals) |
| internals.resumeAnimations(); |
| } |
| |
| function transitionEnded(event) |
| { |
| if (transitionAllowedToRun) |
| log("PASS: Transition ended on element with id: " + event.target.id); |
| else |
| log("FAIL: Transition ended on element with id: " + event.target.id); |
| |
| if (window.testRunner) |
| testRunner.notifyDone(); |
| } |
| |
| function suspendAndCreate() |
| { |
| log("*** Suspending Animations/Transitions"); |
| suspend(); |
| setTimeout(function() { |
| if (window.internals) |
| log("Transitions should be suspended: " + (window.internals.animationsAreSuspended() ? "PASS" : "FAIL")); |
| |
| log("*** Creating the box.") |
| box = document.createElement("div"); |
| box.id = "box"; |
| document.addEventListener("webkitTransitionEnd", transitionEnded, false); |
| document.body.insertBefore(box, document.querySelector("#results")); |
| setTimeout(function() { |
| log("*** Adding transition property and setting left to 100px. We should NOT see transition events.") |
| box.style.webkitTransitionDuration = "100ms"; |
| box.style.left = "100px"; |
| setTimeout(resumeAnimations, 200); |
| }, 100); |
| }, 100); |
| } |
| |
| function resumeAnimations() |
| { |
| log("*** Resuming Animations/Transitions"); |
| transitionAllowedToRun = true; |
| resume(); |
| if (window.internals) |
| log("Transitions should not be suspended: " + (window.internals.animationsAreSuspended() ? "FAIL" : "PASS")); |
| } |
| |
| function startTest() |
| { |
| log("*** Starting test.") |
| |
| if (window.internals) |
| log("Transitions should not be suspended: " + (window.internals.animationsAreSuspended() ? "FAIL" : "PASS")); |
| |
| suspendAndCreate(); |
| } |
| |
| function log(message) |
| { |
| var results = document.getElementById("results"); |
| results.innerHTML = results.innerHTML + message + "<br>"; |
| } |
| |
| if (window.testRunner) { |
| testRunner.waitUntilDone(); |
| testRunner.dumpAsText(); |
| } |
| |
| window.addEventListener("load", startTest, false); |
| |
| </script> |
| <p>This test creates a box, adds a transition, then sets the left property. It will only have reproducible output when run in the test system</p> |
| <div id="results"> |
| </div> |