<!DOCTYPE html>
<title>Invalidate :fullscreen based style</title>
<script src="/resources/testharness.js"></script>
<script src="/resources/testharnessreport.js"></script>
<script src="/resources/testdriver.js"></script>
<script src="/resources/testdriver-vendor.js"></script>
<style>
  #pass {
    color: red;
  }
  :root:fullscreen #pass {
    color: green;
  }
</style>
<div id="pass">Should be green</div>
<script>
  async_test(t => {
    document.onfullscreenchange = t.step_func_done(() => {
      assert_equals(document.fullscreenElement, document.documentElement);
      assert_equals(getComputedStyle(pass).color, "rgb(0, 128, 0)", "Green when :root is fullscreened.");
    });
    document.documentElement.addEventListener('click', t.step_func(() => {
      document.documentElement.requestFullscreen();
    }), {once: true});
    assert_equals(getComputedStyle(pass).color, "rgb(255, 0, 0)", "Initially red.");
    test_driver.click(document.documentElement);
  });
</script>
