<!DOCTYPE html>
<title>CSS Cascade: 'revert' in final keyframe of web animation</title>
<link rel="help" href="https://drafts.csswg.org/css-cascade/#default">
<link rel="help" href="https://crbug.com/1065387">
<script src="/resources/testharness.js"></script>
<script src="/resources/testharnessreport.js"></script>
<h1 id=h1></h1>
<h1 id=ref></h1>
<script>
  test(function() {
    let expected_lower = parseInt(getComputedStyle(ref).marginTop);
    let expected_upper = expected_lower * 2;

    h1.animate([
      { marginTop: `${expected_lower * 4}px` },
      { marginTop: `${expected_lower * 3}px` },
      { marginTop: `${expected_lower * 2}px` },
      { marginTop: 'revert' },
    ], {
      duration: 4000,
      delay: -3500,
    }).pause();

    let actual = parseInt(getComputedStyle(h1).marginTop);

    // This test assumes that the UA style sheet sets a non-0px value on
    // <h1> elements:
    assert_not_equals(expected_lower, 0);
    assert_not_equals(expected_upper, 0);
    assert_between_exclusive(actual, expected_lower, expected_upper);
  }, 'The revert keyword works in the final frame of a web animation');
</script>
