<!DOCTYPE html>
<script src="/resources/testharness.js"></script>
<script src="/resources/testharnessreport.js"></script>
<!--
  This test is adopted from Olli Pettay's test case at
  http://mozilla.pettay.fi/shadow_focus.html
-->
<div id="host"></div>
<input id="lightInput">
<script>
const root = host.attachShadow({ mode: "closed" });
root.innerHTML = "<input id='shadowInput'>";

async_test((test) => {
  root.getElementById("shadowInput").focus();
  window.addEventListener("focus", test.step_func_done((e) => {
    assert_equals(e.relatedTarget, host);
  }, "relatedTarget should be pointing to shadow host."), true);
  lightInput.focus();
}, "relatedTarget should not leak at capturing phase, at window object.");

async_test((test) => {
  root.getElementById("shadowInput").focus();
  lightInput.addEventListener("focus", test.step_func_done((e) => {
    assert_equals(e.relatedTarget, host);
  }, "relatedTarget should be pointing to shadow host."), true);
  lightInput.focus();
}, "relatedTarget should not leak at target.");

</script>
