| OLD | NEW |
| (Empty) |
| 1 <!DOCTYPE html> | |
| 2 <meta charset=utf-8> | |
| 3 <title>Tests for the finish event</title> | |
| 4 <link rel="help" href="https://w3c.github.io/web-animations/#the-current-finishe
d-promise"> | |
| 5 <script src="../resources/testharness.js"></script> | |
| 6 <script src="../resources/testharnessreport.js"></script> | |
| 7 <script src="../external/wpt/web-animations/testcommon.js"></script> | |
| 8 <body> | |
| 9 <script> | |
| 10 'use strict'; | |
| 11 function validateFinishEvent(t, event, animation) { | |
| 12 t.step(function() { | |
| 13 assert_equals(event, animation, 'Animation should be target'); | |
| 14 assert_times_equal(event.currentTime, animation.currentTime, 'Event currentT
ime should be animation currentTime'); | |
| 15 }); | |
| 16 } | |
| 17 | |
| 18 async_test(function(t) { | |
| 19 var div = createDiv(t); | |
| 20 var animation = div.animate(null, 70.0); | |
| 21 animation.finished.then(function(event) { | |
| 22 t.unreached_func("Seeking to finish should not queue finished event"); | |
| 23 }) | |
| 24 animation.finish(); | |
| 25 animation.currentTime = 0; | |
| 26 animation.pause(); | |
| 27 t.done(); | |
| 28 }, "animation.finished doesn't run when the animation seeks to finish"); | |
| 29 | |
| 30 async_test(function(t) { | |
| 31 var div = createDiv(t); | |
| 32 var animation = div.animate(null, 70.0); | |
| 33 animation.finished.then(function (event) { | |
| 34 t.unreached_func("Seeking past finish should not queue finished event"); | |
| 35 }) | |
| 36 animation.currentTime = 80.0; | |
| 37 animation.currentTime = 0; | |
| 38 animation.pause(); | |
| 39 t.done(); | |
| 40 }, "animation.finished doesn't run when the animation seeks past finish"); | |
| 41 | |
| 42 async_test(function(t) { | |
| 43 var div = createDiv(t); | |
| 44 var animation = div.animate(null, 90.0); | |
| 45 animation.finished.then(function(event) { | |
| 46 validateFinishEvent(t, event, animation); | |
| 47 t.done(); | |
| 48 }) | |
| 49 animation.finish(); | |
| 50 }, "animation.finished runs when the animation completes with .finish()"); | |
| 51 | |
| 52 async_test(function(t) { | |
| 53 var div = createDiv(t); | |
| 54 var animation = div.animate(null, 100); | |
| 55 animation.finished.then(function(event) { | |
| 56 validateFinishEvent(t, event, animation); | |
| 57 t.done(); | |
| 58 }) | |
| 59 }, "animation.finished runs when the animation completes"); | |
| 60 | |
| 61 // TODO(alancutter): Change this to a promise_test. | |
| 62 async_test(function(t) { | |
| 63 var animation1 = createDiv(t).animate(null, 0.05); | |
| 64 animation1.finished.then(function(event) { | |
| 65 validateFinishEvent(t, event, animation1); | |
| 66 animation1.currentTime = 0; | |
| 67 return animation1.finished; | |
| 68 }).then(function(event) { | |
| 69 var animation2 = createDiv(t).animate(null, 0.05); | |
| 70 // TODO(alancutter): Move this .then to the outer promise chain. | |
| 71 animation2.finished.then(function(event) { | |
| 72 validateFinishEvent(t, event, animation2); | |
| 73 animation2.play(); | |
| 74 return animation2.finished; | |
| 75 }) | |
| 76 return animation2.finished; | |
| 77 }).then(function(event) { | |
| 78 t.done(); | |
| 79 }) | |
| 80 }, "animation.finished calls can be chained"); | |
| 81 </script> | |
| OLD | NEW |