<!DOCTYPE html>
<html>
  <head>
    <title>VRDisplay ExitPresent</title>
    <meta name="timeout" content="long"/>
    <meta http-equiv="Content-type" content="text/html;charset=UTF-8">
    <script src="/resources/testharness.js"></script>
    <script src="/resources/testharnessreport.js"></script>
    <script src="VRSimulationDriver.js"></script>
    <script src="runVRTest.js"></script>
  </head>
  <body>
    <script>
      function testExitPresentOnOtherIframe(content) {
          return content.navigator.getVRDisplays().then((displays) => {
            content.vrDisplay = displays[0];
            return content.vrDisplay.exitPresent();
        });
      }
      var initVRPresentation = function(content) {
        return VRSimulationDriver.AttachWebVRDisplay().then(() => {
          return content.navigator.getVRDisplays().then((displays) => {
            content.vrDisplay = displays[0];
            content.canvas = content.document.createElement("canvas");
            content.canvas.id = "vrCanvas";
            return content.vrDisplay.requestPresent([{source:content.canvas}]);
          });
        });
      }
      function startTest() {
        var ifr1 = document.getElementById("iframe1");
        var ifr2 = document.getElementById("iframe2");
        var frame1 = ifr1.contentWindow;
        var frame2 = ifr2.contentWindow;
        promise_test((test) => {
          return VRSimulationDriver.AttachWebVRDisplay().then(() => {
            return initVRPresentation(frame1).then(() => {
              promise_test((test) => {
                return promise_rejects(test, null, testExitPresentOnOtherIframe(frame2));
              }, "We cannot exit VR presentation established by another content, this promise is expected to be rejected.")
            });
          });
        }, "Finish running WebVR exitPresent test.");
      }
      runVRTest(startTest);
    </script>

    <iframe id="iframe1"></iframe>
    <iframe id="iframe2"></iframe>
  </body>
</html>
