<!doctype html>
<meta charset="utf-8">
<title></title>
<script src="/resources/testharness.js"></script>
<script src="/resources/testharnessreport.js"></script>
<style type="text/css" id="styleElement">
  div { animation: 3s slidein; }
  @keyframes slidein {
    from {
      margin-left: 100%;
      width: 300%;
    }

    to {
      margin-left: 0%;
      width: 100%;
    }
  }
</style>
<script>
  var styleSheet = document.getElementById("styleElement").sheet;
  var keyframesRule = styleSheet.cssRules[1];
  var fromRule = keyframesRule.cssRules[0];
  var toRule = keyframesRule.cssRules[1];

  test(function() {
    assert_equals(keyframesRule.name, "slidein");
    assert_equals(typeof fromRule.style, "object");
    assert_equals(fromRule.style.marginLeft, "100%");
    assert_equals(fromRule.style.width, "300%");

    assert_equals(typeof toRule.style, "object");
    assert_equals(toRule.style.marginLeft, "0%");
    assert_equals(toRule.style.width, "100%");

    toRule.style.marginLeft = "-5%";
    toRule.style.width = "50%";

    assert_equals(fromRule.style.marginLeft, "100%");
    assert_equals(fromRule.style.width, "300%");
    assert_equals(toRule.style.marginLeft, "-5%");
    assert_equals(toRule.style.width, "50%");
  }, "CSSKeyframeRule: style property");

  test(function() {
    fromRule.style = "margin-left: 50%; width: 100%;";

    assert_equals(fromRule.style.marginLeft, "50%", "margin-left");
    assert_equals(fromRule.style.width, "100%", "width");
  }, "CSSKeyframeRule: style property has [PutForwards]");
</script>
