Index: third_party/WebKit/LayoutTests/imported/web-platform-tests/web-animations/animation-effect-timing/duration.html |
diff --git a/third_party/WebKit/LayoutTests/imported/web-platform-tests/web-animations/animation-effect-timing/duration.html b/third_party/WebKit/LayoutTests/imported/web-platform-tests/web-animations/animation-effect-timing/duration.html |
new file mode 100644 |
index 0000000000000000000000000000000000000000..662ff40c88b2d53e4c8048f1574a250837d918f5 |
--- /dev/null |
+++ b/third_party/WebKit/LayoutTests/imported/web-platform-tests/web-animations/animation-effect-timing/duration.html |
@@ -0,0 +1,149 @@ |
+<!DOCTYPE html> |
+<meta charset=utf-8> |
+<title>duration tests</title> |
+<link rel="help" href="http://w3c.github.io/web-animations/#dom-animationeffecttiming-duration"> |
+<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.duration = 123.45; |
+ assert_approx_equals(anim.effect.timing.duration, 123.45, 0.000001, |
+ 'set duration 123.45'); |
+ assert_approx_equals(anim.effect.getComputedTiming().duration, 123.45, |
+ 0.000001, |
+ 'getComputedTiming() after set duration 123.45'); |
+}, 'set duration 123.45'); |
+ |
+test(function(t) { |
+ var div = createDiv(t); |
+ var anim = div.animate({ opacity: [ 0, 1 ] }, 2000); |
+ anim.effect.timing.duration = 'auto'; |
+ assert_equals(anim.effect.timing.duration, 'auto', 'set duration \'auto\''); |
+ assert_equals(anim.effect.getComputedTiming().duration, 0, |
+ 'getComputedTiming() after set duration \'auto\''); |
+}, 'set duration auto'); |
+ |
+test(function(t) { |
+ var div = createDiv(t); |
+ var anim = div.animate({ opacity: [ 0, 1 ] }, { duration: 'auto' }); |
+ assert_equals(anim.effect.timing.duration, 'auto', 'set duration \'auto\''); |
+ assert_equals(anim.effect.getComputedTiming().duration, 0, |
+ 'getComputedTiming() after set duration \'auto\''); |
+}, 'set auto duration in animate as object'); |
+ |
+test(function(t) { |
+ var div = createDiv(t); |
+ var anim = div.animate({ opacity: [ 0, 1 ] }, 2000); |
+ anim.effect.timing.duration = Infinity; |
+ assert_equals(anim.effect.timing.duration, Infinity, 'set duration Infinity'); |
+ assert_equals(anim.effect.getComputedTiming().duration, Infinity, |
+ 'getComputedTiming() after set duration Infinity'); |
+}, 'set duration Infinity'); |
+ |
+test(function(t) { |
+ var div = createDiv(t); |
+ assert_throws({ name: 'TypeError' }, function() { |
+ div.animate({ opacity: [ 0, 1 ] }, -1); |
+ }); |
+}, 'set negative duration in animate using a duration parameter'); |
+ |
+test(function(t) { |
+ var div = createDiv(t); |
+ assert_throws({ name: 'TypeError' }, function() { |
+ div.animate({ opacity: [ 0, 1 ] }, -Infinity); |
+ }); |
+}, 'set negative Infinity duration in animate using a duration parameter'); |
+ |
+test(function(t) { |
+ var div = createDiv(t); |
+ assert_throws({ name: 'TypeError' }, function() { |
+ div.animate({ opacity: [ 0, 1 ] }, NaN); |
+ }); |
+}, 'set NaN duration in animate using a duration parameter'); |
+ |
+test(function(t) { |
+ var div = createDiv(t); |
+ assert_throws({ name: 'TypeError' }, function() { |
+ div.animate({ opacity: [ 0, 1 ] }, { duration: -1 }); |
+ }); |
+}, 'set negative duration in animate using an options object'); |
+ |
+test(function(t) { |
+ var div = createDiv(t); |
+ assert_throws({ name: 'TypeError' }, function() { |
+ div.animate({ opacity: [ 0, 1 ] }, { duration: -Infinity }); |
+ }); |
+}, 'set negative Infinity duration in animate using an options object'); |
+ |
+test(function(t) { |
+ var div = createDiv(t); |
+ assert_throws({ name: 'TypeError' }, function() { |
+ div.animate({ opacity: [ 0, 1 ] }, { duration: NaN }); |
+ }); |
+}, 'set NaN duration in animate using an options object'); |
+ |
+test(function(t) { |
+ var div = createDiv(t); |
+ assert_throws({ name: 'TypeError' }, function() { |
+ div.animate({ opacity: [ 0, 1 ] }, { duration: 'abc' }); |
+ }); |
+}, 'set abc string duration in animate using an options object'); |
+ |
+test(function(t) { |
+ var div = createDiv(t); |
+ assert_throws({ name: 'TypeError' }, function() { |
+ div.animate({ opacity: [ 0, 1 ] }, { duration: '100' }); |
+ }); |
+}, 'set 100 string duration in animate using an options object'); |
+ |
+test(function(t) { |
+ var div = createDiv(t); |
+ var anim = div.animate({ opacity: [ 0, 1 ] }, 2000); |
+ assert_throws({ name: 'TypeError' }, function() { |
+ anim.effect.timing.duration = -1; |
+ }); |
+}, 'set negative duration'); |
+ |
+test(function(t) { |
+ var div = createDiv(t); |
+ var anim = div.animate({ opacity: [ 0, 1 ] }, 2000); |
+ assert_throws({ name: 'TypeError' }, function() { |
+ anim.effect.timing.duration = -Infinity; |
+ }); |
+}, 'set negative Infinity duration'); |
+ |
+test(function(t) { |
+ var div = createDiv(t); |
+ var anim = div.animate({ opacity: [ 0, 1 ] }, 2000); |
+ assert_throws({ name: 'TypeError' }, function() { |
+ anim.effect.timing.duration = NaN; |
+ }); |
+}, 'set NaN duration'); |
+ |
+test(function(t) { |
+ var div = createDiv(t); |
+ var anim = div.animate({ opacity: [ 0, 1 ] }, 2000); |
+ assert_throws({ name: 'TypeError' }, function() { |
+ anim.effect.timing.duration = 'abc'; |
+ }); |
+}, 'set duration abc'); |
+ |
+test(function(t) { |
+ var div = createDiv(t); |
+ var anim = div.animate({ opacity: [ 0, 1 ] }, 2000); |
+ assert_throws({ name: 'TypeError' }, function() { |
+ anim.effect.timing.duration = '100'; |
+ }); |
+}, 'set duration string 100'); |
+ |
+ |
+</script> |
+</body> |