Index: LayoutTests/web-animations-api/timed-item-specified-getters.html |
diff --git a/LayoutTests/web-animations-api/timed-item-specified-getters.html b/LayoutTests/web-animations-api/timed-item-specified-getters.html |
new file mode 100644 |
index 0000000000000000000000000000000000000000..2615ac1e93038112e5fdddc3d112556c54eeb341 |
--- /dev/null |
+++ b/LayoutTests/web-animations-api/timed-item-specified-getters.html |
@@ -0,0 +1,70 @@ |
+<!DOCTYPE html> |
+<script src="../resources/testharness.js"></script> |
+<script src="../resources/testharnessreport.js"></script> |
+ |
+<body> |
+ <div id='e'></div> |
+</body> |
+ |
+<script> |
+var element = document.getElementById('e'); |
+var keyframes = [{opacity: '1', offset: 0}, {opacity: '0', offset: 1}]; |
+ |
+var animationBasic = new Animation(element, keyframes); |
+var specifiedTimingBasic = animationBasic.specified; |
+ |
+var timingNumberDuration = {duration: 2}; |
+var animationNumberDuration = new Animation(element, keyframes, timingNumberDuration); |
+var specifiedTimingNumberDuration = animationNumberDuration.specified; |
+ |
+var timingNoDuration = {iterations: 3}; |
+var animationNoDuration = new Animation(element, keyframes, timingNoDuration); |
+var specifiedTimingNoDuration = animationNoDuration.specified; |
+ |
+var timingAllFields = { |
+ delay: 2, |
+ endDelay: 0.5, |
+ fill: 'backwards', |
+ iterationStart: 2, |
+ iterations: 10, |
+ duration: 5, |
+ playbackRate: 2, |
+ direction: 'reverse', |
+ easing: 'step-start' |
+}; |
+var animationAllFields = new Animation(element, keyframes, timingAllFields); |
+var specifiedTimingAllFields = animationAllFields.specified; |
+ |
+test(function() { |
+ assert_equals(specifiedTimingBasic.constructor, Timing); |
+ assert_equals(specifiedTimingBasic.delay, 0); |
+ assert_equals(specifiedTimingBasic.endDelay, 0); |
+ assert_equals(specifiedTimingBasic.fill, 'auto'); |
+ assert_equals(specifiedTimingBasic.iterationStart, 0); |
+ assert_equals(specifiedTimingBasic.iterations, 1); |
+ assert_equals(specifiedTimingBasic.duration, 'auto'); |
+ assert_equals(specifiedTimingBasic.playbackRate, 1); |
+ assert_equals(specifiedTimingBasic.direction, 'normal'); |
+ assert_equals(specifiedTimingBasic.easing, 'linear'); |
+}, 'TimedItem.specified should return a TimedItemTiming, which should have a getter for each member of the underlying Timing object.'); |
+ |
+test(function() { |
+ assert_equals(specifiedTimingNumberDuration.duration, 2); |
+}, 'TimedItem.specified.duration should return a number when duration was set as a number.'); |
+ |
+test(function() { |
+ assert_equals(specifiedTimingNoDuration.duration, 'auto'); |
+}, 'TimedItem.specified.duration should return "auto" when duration was not specified.'); |
+ |
+test(function() { |
+ assert_equals(specifiedTimingAllFields.delay, 2); |
+ assert_equals(specifiedTimingAllFields.endDelay, 0.5); |
+ assert_equals(specifiedTimingAllFields.fill, 'backwards'); |
+ assert_equals(specifiedTimingAllFields.iterationStart, 2); |
+ assert_equals(specifiedTimingAllFields.iterations, 10); |
+ assert_equals(specifiedTimingAllFields.duration, 5); |
+ assert_equals(specifiedTimingAllFields.playbackRate, 2); |
+ assert_equals(specifiedTimingAllFields.direction, 'reverse'); |
+ assert_equals(specifiedTimingAllFields.easing, 'step-start'); |
+}, 'TimedItem.specified should have a getter for each member of the underlying Timing object.'); |
+</script> |