<!DOCTYPE html>
<html>
<head>
<style>
my-host {
  display: block;
  width: 100px;
  height: 25px;
  background: red;
}
</style>
</head>
<body>
<p>Test passes if you see a single 100px by 100px green box below.</p>
<my-host id="t1"><div id="host-child">text</div></my-host>
<my-host id="t2"><div>text</div></my-host>
<my-host id="t3"><div>text</div></my-host>
<my-host id="t4"><div>text</div></my-host>

<script>
var host = document.querySelector('#t1');
host.attachShadow({ mode: 'open' }).innerHTML = `
  <style>
    #myslot::slotted(#host-child) {
      background-color: green; width: 100%; height: 100%;
    }
  </style>
  <slot id="myslot" style="color:green"></slot>
`;

var host = document.querySelector('#t2');
host.attachShadow({ mode: 'open' }).innerHTML = `
  <style>
    .myclass#myslot[style]::slotted(*) {
      background-color: green; width: 100%; height: 100%;
    }
    #myslot::slotted(#not-my-host-child) {
        background-color: red; width: 100%; height: 100%;
    }
    #notmyslot::slotted(*) {
      background-color: red; width: 100%; height: 100%;
    }
  </style>
  <slot class="myclass" id="myslot" style="color:green"></slot>
`;

var host = document.querySelector('#t3');
host.attachShadow({ mode: 'open' }).innerHTML = `
  <style>
    #myslot::slotted(*) {
      background-color: green; width: 100%; height: 100%;
    }
  </style>
  <slot id="myslot" style="color:green"></slot>
`;

var host = document.querySelector('#t4');
var shadow = host.attachShadow({ mode: 'open' });
shadow.innerHTML = `
  <style>
    #myslot::slotted(*) {
      background-color: green; width: 100%; height: 100%;
    }
  </style>
  <slot id="notmyslot" style="color:green"></slot>
`;
var slot = shadow.querySelector("#notmyslot");
slot.offsetWidth;
slot.setAttribute("id", "myslot");
</script>
</body>
</html>
