blob: 6963ca07fbdc597f980731b762117727e751cd1d [file] [log] [blame]
<!doctype html>
<title>Web Animations API: Keyframe Property tests</title>
<script src="testharness/testharness.js"></script>
<script src="testharness/testharnessreport.js"></script>
<div id="log"></div>
<div id="div"></div>
<script>
test(function() {
var keyframe = {};
Object.defineProperty(keyframe, 'width', {value: '200px'});
Object.defineProperty(keyframe, 'height', {
value: '100px',
enumerable: true});
assert_equals(keyframe.width, '200px', 'width of keyframe is readable');
assert_equals(keyframe.height, '100px', 'height of keyframe is readable');
try {
div.animate([keyframe, {height: '200px'}], 1);
} catch (e) {
assert_unreached("Mismatched properties - both or neither properties on keyframe were considered.");
}
},
'enumerable keyframe properties tests',
{
help: 'http://dev.w3.org/fxtf/web-animations/#dfn-procedure-for-converting-an-ecmascript-value-to-an-idl-keyframe-object',
assert: 'Only enumerable properties on keyframes are considered',
author: 'Shane Stephens'
});
test(function() {
var KeyframeParent = function() { this.width = "100px"; };
KeyframeParent.prototype = { height: "100px" };
var Keyframe = function() { this.top = "100px"; };
Keyframe.prototype = Object.create(KeyframeParent.prototype);
Object.defineProperty(Keyframe.prototype, "left", {
value: '100px',
enumerable: 'true'});
var keyframe = new Keyframe();
try {
div.animate([keyframe, {top: '200px', left: '200px', height: '200px'}], 1);
} catch (e) {
assert_unreached("Mismatched properties - left, width or height not considered on keyframe.");
}
},
'inherited keyframe properties tests',
{
help: 'http://dev.w3.org/fxtf/web-animations/#dfn-procedure-for-converting-an-ecmascript-value-to-an-idl-keyframe-object',
assert: 'Only properties in Object.keys on keyframes are considered',
author: 'Shane Stephens'
});
</script>