<!DOCTYPE html>
<script src="/resources/testharness.js"></script>
<script src="/resources/testharnessreport.js"></script>
<script>
promise_test(async t => {
  assert_implements("HTMLPortalElement" in self);
  let waitForMessage = new Promise((resolve, reject) => {
    window.onmessage = e => resolve(e.data);
  });
  window.open("resources/portal-activate-twice-window-1.html");
  let error = await waitForMessage;
  assert_equals(error, "InvalidStateError");
}, "Calling activate when a portal is already activating should fail");

promise_test(async t => {
  assert_implements("HTMLPortalElement" in self);
  let waitForMessage = new Promise((resolve, reject) => {
    window.onmessage = e => resolve(e.data);
  });
  window.open("resources/portal-activate-twice-window-2.html");
  let error = await waitForMessage;
  assert_equals(error, "InvalidStateError");
});
</script>
