<!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>
