blob: 40952e03b6657a343afa54b164827f7bb2aca464 [file] [log] [blame]
<!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 keyframeEffectBasic = new KeyframeEffect(element, keyframes);
var specifiedTimingBasic = keyframeEffectBasic.timing;
var timingNumberDuration = {duration: 2};
var animationNumberDuration = new KeyframeEffect(element, keyframes, timingNumberDuration);
var specifiedTimingNumberDuration = animationNumberDuration.timing;
var timingNoDuration = {iterations: 3};
var animationNoDuration = new KeyframeEffect(element, keyframes, timingNoDuration);
var specifiedTimingNoDuration = animationNoDuration.timing;
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 KeyframeEffect(element, keyframes, timingAllFields);
var specifiedTimingAllFields = animationAllFields.timing;
test(function() {
assert_equals(specifiedTimingBasic.constructor, AnimationEffectTiming);
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.timing 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.timing.duration should return a number when duration was set as a number.');
test(function() {
assert_equals(specifiedTimingNoDuration.duration, 'auto');
}, 'TimedItem.timing.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.timing should have a getter for each member of the underlying Timing object.');
</script>