Bug 1316050 - Wait for a single finish event itself instead of waiting two requestAnimationFrame and checking the event. r?birtles draft
authorHiroyuki Ikezoe <hiikezoe@mozilla-japan.org>
Mon, 21 Nov 2016 13:33:43 +0900
changeset 441846 ac326bb655629eef2f17201453f67af241486289
parent 441645 b7f895c1dc2e91530240efbf50ac063a0f8a9cb5
child 537638 7f6477c49e0f335fa0811b858c368808d29bd075
push id36521
push userhiikezoe@mozilla-japan.org
push dateMon, 21 Nov 2016 05:24:25 +0000
reviewersbirtles
bugs1316050
milestone53.0a1
Bug 1316050 - Wait for a single finish event itself instead of waiting two requestAnimationFrame and checking the event. r?birtles Also we don't need to check the event time, it's out of scope of this test case. MozReview-Commit-ID: JkbiiVPunGH
testing/web-platform/tests/web-animations/interfaces/AnimationEffectTiming/endDelay.html
--- a/testing/web-platform/tests/web-animations/interfaces/AnimationEffectTiming/endDelay.html
+++ b/testing/web-platform/tests/web-animations/interfaces/AnimationEffectTiming/endDelay.html
@@ -61,37 +61,24 @@ async_test(function(t) {
     t.done();
   }));
 }, 'onfinish event is not fired duration endDelay');
 
 async_test(function(t) {
   var div = createDiv(t);
   var anim = div.animate({ opacity: [ 0, 1 ] },
                          { duration: 100000, endDelay: 30000 });
-  var finishedTimelineTime;
-  anim.finished.then(function() {
-    finishedTimelineTime = anim.timeline.currentTime;
-  });
-
-  var receivedEvents = [];
-  anim.onfinish = function(event) {
-    receivedEvents.push(event);
-  }
-
   anim.ready.then(function() {
     anim.currentTime = 110000; // during endDelay
+    anim.onfinish = t.step_func(function(event) {
+      assert_unreached('onfinish event should not be fired during endDelay');
+    });
     return waitForAnimationFrames(2);
   }).then(t.step_func(function() {
-    assert_equals(receivedEvents.length, 0,
-      'onfinish event is should not be fired' +
-      'when currentTime is during endDelay');
+    anim.onfinish = t.step_func(function(event) {
+      t.done();
+    });
     anim.currentTime = 130000; // after endTime
-    return waitForAnimationFrames(2);
-  })).then(t.step_func_done(function() {
-    assert_equals(receivedEvents.length, 1, 'length of array should be one');
-    assert_equals(receivedEvents[0].timelineTime, finishedTimelineTime,
-      'receivedEvents[0].timelineTime should equal to the animation timeline '
-      + 'when finished promise is resolved');
   }));
 }, 'onfinish event is fired currentTime is after endTime');
 
 </script>
 </body>