1<!doctype html> 2<title>Web Animations API: Keyframe Property tests</title> 3<script src="testharness/testharness.js"></script> 4<script src="testharness/testharnessreport.js"></script> 5<div id="log"></div> 6<div id="div"></div> 7<script> 8 9test(function() { 10 var keyframe = {}; 11 Object.defineProperty(keyframe, 'width', {value: '200px'}); 12 Object.defineProperty(keyframe, 'height', { 13 value: '100px', 14 enumerable: true}); 15 assert_equals(keyframe.width, '200px', 'width of keyframe is readable'); 16 assert_equals(keyframe.height, '100px', 'height of keyframe is readable'); 17 try { 18 div.animate([keyframe, {height: '200px'}], 1); 19 } catch (e) { 20 assert_unreached("Mismatched properties - both or neither properties on keyframe were considered."); 21 } 22}, 23'enumerable keyframe properties tests', 24{ 25 help: 'http://dev.w3.org/fxtf/web-animations/#dfn-procedure-for-converting-an-ecmascript-value-to-an-idl-keyframe-object', 26 assert: 'Only enumerable properties on keyframes are considered', 27 author: 'Shane Stephens' 28}); 29 30test(function() { 31 var KeyframeParent = function() { this.width = "100px"; }; 32 KeyframeParent.prototype = { height: "100px" }; 33 var Keyframe = function() { this.top = "100px"; }; 34 Keyframe.prototype = Object.create(KeyframeParent.prototype); 35 Object.defineProperty(Keyframe.prototype, "left", { 36 value: '100px', 37 enumerable: 'true'}); 38 var keyframe = new Keyframe(); 39 try { 40 div.animate([keyframe, {top: '200px', left: '200px', height: '200px'}], 1); 41 } catch (e) { 42 assert_unreached("Mismatched properties - left, width or height not considered on keyframe."); 43 } 44}, 45'inherited keyframe properties tests', 46{ 47 help: 'http://dev.w3.org/fxtf/web-animations/#dfn-procedure-for-converting-an-ecmascript-value-to-an-idl-keyframe-object', 48 assert: 'Only properties in Object.keys on keyframes are considered', 49 author: 'Shane Stephens' 50}); 51 52 53</script> 54