<!doctype html>
<title>CSS Test: @keyframes applies in the shadow tree.</title>
<script src="/resources/testharness.js"></script>
<script src="/resources/testharnessreport.js"></script>
<link rel="author" title="Emilio Cobos Álvarez" href="mailto:emilio@crisal.io">
<link rel="help" href="https://drafts.csswg.org/css-scoping/#selectors-data-model">
<!--
  Beware of https://github.com/w3c/csswg-drafts/issues/1995 potentially, but
  unlikely, changing the expected result of this test.
-->
<style>
#in-document {
  width: 100px;
  height: 100px;
  background: blue;
  animation: myanim 10s infinite;
}
</style>
<div id="host"><div id="in-document"></div></div>
<script>
test(function() {
  host.attachShadow({ mode: "open" }).innerHTML = `
    <style>
      @keyframes myanim {
        from { background: red; }
        to { background: green; }
      }
      #in-shadow {
        width: 100px;
        height: 100px;
        background: blue;
        animation: myanim 10s infinite;
      }
    </style>
    <slot></slot>
    <div id="in-shadow"></div>
  `;

  assert_equals(document.getElementById('in-document').getAnimations().length, 0);
  assert_equals(host.shadowRoot.getElementById('in-shadow').getAnimations().length, 1);
}, "@keyframes applies in the shadow tree")
</script>
