<!DOCTYPE html>
<title>Element#requestFullscreen() on two elements in the same document</title>
<script src="/resources/testharness.js"></script>
<script src="/resources/testharnessreport.js"></script>
<script src="../trusted-click.js"></script>
<div id="log"></div>
<div id="a"></div>
<div id="b"></div>
<script>
async_test(t => {
  // Request fullscreen on both elements, but in reverse tree order.
  const a = document.getElementById('a');
  const b = document.getElementById('b');

  // Expect two fullscreenchange events, with document.fullscreenElement
  // changing in the same order as the requests.
  const order = [];
  document.onfullscreenchange = t.step_func(() => {
    assert_in_array(document.fullscreenElement, [a, b]);
    order.push(document.fullscreenElement.id);
    if (order.length == 2) {
      // Since fullscreenchange event occurs at animation frame timing we might
      // have not seen the transition from null -> 'b' but just see the
      // resulting 'a' transition twice.
      assert_true(order[0] == 'a' || order[0] == 'b', 'first id seen is a or b');
      assert_equals(order[1], 'a', 'second id seen is b');
      t.done();
    }
  });
  document.onfullscreenerror = t.unreached_func('fullscreenerror event');

  trusted_click(t, () => {
    b.requestFullscreen();
    a.requestFullscreen();
  }, document.body);
});
</script>
