chromium/third_party/blink/web_tests/external/wpt/css/selectors/invalidation/selectorText-dynamic-001.html

<!doctype html>
<meta charset="utf-8">
<title>CSS Test: invalidation of class changes when the selector in a rule has changed</title>
<link rel="author" title="Emilio Cobos Álvarez" href="mailto:[email protected]">
<link rel="help" href="https://drafts.csswg.org/selectors-4/#invalid">
<link rel="help" href="https://bugzilla.mozilla.org/show_bug.cgi?id=1432850">
<script src="/resources/testharness.js"></script>
<script src="/resources/testharnessreport.js"></script>
<style>
  body { background: green; }
  .red { background: red; }
</style>
<body class="red">
Should have a green background.
<script>
test(() => {
  document.body.offsetTop;
  assert_equals(getComputedStyle(document.body).backgroundColor, "rgb(255, 0, 0)");
  document.body.className = "";
  document.styleSheets[0].cssRules[1].selectorText = ".bar";
  assert_equals(getComputedStyle(document.body).backgroundColor, "rgb(0, 128, 0)");
}, "Style should be recomputed correctly when the selector it depends on changes");
</script>
</body>