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