diff options
Diffstat (limited to 'testing/web-platform/tests/web-animations/interfaces/AnimationEffectTiming/endDelay.html')
-rw-r--r-- | testing/web-platform/tests/web-animations/interfaces/AnimationEffectTiming/endDelay.html | 84 |
1 files changed, 84 insertions, 0 deletions
diff --git a/testing/web-platform/tests/web-animations/interfaces/AnimationEffectTiming/endDelay.html b/testing/web-platform/tests/web-animations/interfaces/AnimationEffectTiming/endDelay.html new file mode 100644 index 000000000..40136b45c --- /dev/null +++ b/testing/web-platform/tests/web-animations/interfaces/AnimationEffectTiming/endDelay.html @@ -0,0 +1,84 @@ +<!DOCTYPE html> +<meta charset=utf-8> +<title>endDelay tests</title> +<link rel="help" href="http://w3c.github.io/web-animations/#dom-animationeffecttiming-enddelay"> +<link rel="author" title="Ryo Motozawa" href="mailto:motozawa@mozilla-japan.org"> +<script src="/resources/testharness.js"></script> +<script src="/resources/testharnessreport.js"></script> +<script src="../../testcommon.js"></script> +<body> +<div id="log"></div> +<script> +'use strict'; + +test(function(t) { + var div = createDiv(t); + var anim = div.animate({ opacity: [ 0, 1 ] }, 2000); + anim.effect.timing.endDelay = 123.45; + assert_times_equal(anim.effect.timing.endDelay, 123.45, + 'set endDelay 123.45'); + assert_times_equal(anim.effect.getComputedTiming().endDelay, 123.45, + 'getComputedTiming() after set endDelay 123.45'); +}, 'set endDelay 123.45'); + +test(function(t) { + var div = createDiv(t); + var anim = div.animate({ opacity: [ 0, 1 ] }, 2000); + anim.effect.timing.endDelay = -1000; + assert_equals(anim.effect.timing.endDelay, -1000, 'set endDelay -1000'); + assert_equals(anim.effect.getComputedTiming().endDelay, -1000, + 'getComputedTiming() after set endDelay -1000'); +}, 'set endDelay -1000'); + +test(function(t) { + var div = createDiv(t); + var anim = div.animate({ opacity: [ 0, 1 ] }, 2000); + assert_throws({name: "TypeError"}, function() { + anim.effect.timing.endDelay = Infinity; + }, 'we can not assign Infinity to timing.endDelay'); +}, 'set endDelay Infinity'); + +test(function(t) { + var div = createDiv(t); + var anim = div.animate({ opacity: [ 0, 1 ] }, 2000); + assert_throws({name: "TypeError"}, function() { + anim.effect.timing.endDelay = -Infinity; + }, 'we can not assign negative Infinity to timing.endDelay'); +}, 'set endDelay negative Infinity'); + +async_test(function(t) { + var div = createDiv(t); + var anim = div.animate({ opacity: [ 0, 1 ] }, + { duration: 100000, endDelay: 50000 }); + anim.onfinish = t.step_func(function(event) { + assert_unreached('onfinish event should not be fired'); + }); + + anim.ready.then(function() { + anim.currentTime = 100000; + return waitForAnimationFrames(2); + }).then(t.step_func(function() { + 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 }); + 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() { + anim.onfinish = t.step_func(function(event) { + t.done(); + }); + anim.currentTime = 130000; // after endTime + })); +}, 'onfinish event is fired currentTime is after endTime'); + +</script> +</body> |