<!DOCTYPE html>
<title>Test that non-animated style is responsive to animated properties</title>
<link rel="help" href="https://drafts.csswg.org/css-animations/">
<script src="/resources/testharness.js"></script>
<script src="/resources/testharnessreport.js"></script>
<style>
  @keyframes font_size_animation {
    from { font-size: 10px; }
    to { font-size: 20px; }
  }
  @keyframes var_animation {
    from { --x: 10px; }
    to { --x: 20px; }
  }
  #targets > div {
    animation-duration: 1000s;
    animation-delay: -500s;
    animation-timing-function: steps(2, end);
  }

  #target1 {
    animation-name: font_size_animation;
    font-size: 1px;
    width: 1em;
  }
  #ref1 {
    width: 15px;
  }

  #target2 {
    animation-name: font_size_animation;
    font-size: 1px;
    width: 1ex;
  }
  #ref2 {
    font-size: 15px;
    width: 1ex;
  }

  #target3 {
    animation-name: var_animation;
    --x: 0px;
    width: var(--x);
  }
  #ref3 {
    width: 20px;
  }
</style>
<div id="targets">
  <div id="target1"></div>
  <div id="target2"></div>
  <div id="target3"></div>
</div>
<div id="refs">
  <div id="ref1"></div>
  <div id="ref2"></div>
  <div id="ref3"></div>
</div>
<script>

// Test that the computed value of the given property is equal on
// 'target' and 'ref'.
function test_ref(target, ref, property, description) {
  test(() => {
    let actual = getComputedStyle(target).getPropertyValue(property);
    let expected = getComputedStyle(ref).getPropertyValue(property);
    assert_equals(actual, expected);
  }, description);
}

test_ref(target1, ref1, 'width', 'em units respond to font-size animation');
test_ref(target2, ref2, 'width', 'ex units respond to font-size animation');
test_ref(target3, ref3, 'width', 'var() references respond to custom property animation');

</script>
