<!DOCTYPE html>
<html>
  <head>
    <title>CSS Shadow Parts - Invalidation complex selector forward</title>
    <meta href="mailto:fergal@chromium.org" rel="author" title="Fergal Daly">
    <link href="http://www.google.com/" rel="author" title="Google">
    <link href="https://drafts.csswg.org/css-shadow-parts/" rel="help">
    <script src="/resources/testharness.js"></script>
    <script src="/resources/testharnessreport.js"></script>
    <script src="support/shadow-helper.js"></script>
  </head>
  <body>
    <style>#elem #c-e-outer::part(part-forwarded) { color: red; }</style>
    <script>installCustomElement("custom-element-inner", "custom-element-inner-template");</script>
    <template id="custom-element-inner-template">
      <style>span { color: green; }</style>
      <span id="part" part="partp">This text</span>
    </template>
    <script>installCustomElement("custom-element-outer", "custom-element-outer-template");</script>
    <template id="custom-element-outer-template"><custom-element-inner id="c-e-inner" exportparts="partp: part-forwarded"></custom-element-inner></template>
    The following text should be green:
    <div id="elem"><custom-element-outer id="c-e-outer"></custom-element-outer></div>
    <script>
      "use strict";
      test(function() {
        const part = getElementByShadowIds(document, ["c-e-outer", "c-e-inner", "part"]);
        const before = window.getComputedStyle(part).color;
        document.getElementById("elem").setAttribute("id", "new-elem");
        const after = window.getComputedStyle(part).color;
        assert_not_equals(before, after);
      }, "Part in selected host changed color");
    </script>
  </body>
</html>
