<!DOCTYPE html>
<script src="/resources/testharness.js"></script>
<script src="/resources/testharnessreport.js"></script>
<script>
test(() => {
  // Even though UA-generated portalactivate events are different, the
  // properties supplied should be used.
  const e = new PortalActivateEvent("eventtype", { bubbles: true, cancelable: true });
  assert_equals(e.type, "eventtype");
  assert_true(e.bubbles);
  assert_true(e.cancelable);
  assert_equals(null, e.data);
}, "It should be possible to construct a PortalActivateEvent with a dictionary");

test(() => {
  const data = {};
  const e = new PortalActivateEvent("portalactivate", { data });
  assert_equals(data, e.data);
}, "A PortalActivateEvent should expose exactly the data object supplied in the original realm");

test(() => {
  const e = new PortalActivateEvent("portalactivate");
  assert_throws_dom("InvalidStateError", () => e.adoptPredecessor());
}, "Invoking adoptPredecessor on a synthetic PortalActivateEvent should throw");
</script>
