<!DOCTYPE html>
<meta charset="UTF-8">
<title>content animation</title>
<link rel="help" href="https://drafts.csswg.org/css-content/#content-property">
<meta name="test" content="box-shadow supports animation">
<link rel="author" href="mailto:graouts@apple.com" title="Antoine Quint">
<script src="/resources/testharness.js"></script>
<script src="/resources/testharnessreport.js"></script>
<style>

.target::after {
  content: "default";
}

@keyframes content-animation {
  from { content: "from" }
  to   { content: "to" }
}

.target.animated::after {
  animation: content-animation 1s paused linear forwards;
}

</style>
<body>
<div class="target"></div>
<script>

test(function() {
  const target = document.querySelector(".target");
  const style = getComputedStyle(target, "::after");

  assert_equals(style.content, '"default"', "Before the animation is applied.");

  target.classList.add("animated");
  const animation = target.getAnimations({ subtree: true })[0];

  const testContentAtTime = (time, expected) => {
    animation.currentTime = time;
    assert_equals(style.content, `"${expected}"`, `Check the animated value at time = ${time}ms`);
  };

  testContentAtTime(0, 'from');
  testContentAtTime(499, 'from');
  testContentAtTime(500, 'to');
  testContentAtTime(999, 'to');
  testContentAtTime(1000, 'to');
}, "The content property can be animated with a discrete animation type.");

</script>
</body>
