Bug 1311802 - Part2 - Add Mochitest implementation; r?daoshengmu draft
authorChih-Yi Leu <cleu@mozilla.com>
Thu, 30 Mar 2017 12:02:37 +0800
changeset 560128 235a649ff17c0b6de735208794b9eee2cfe28ace
parent 560127 2cb5bc0838961905c4aebf8dfce98dced46a96b3
child 560129 69725ccf6c8f6f41af1db7f5fe9ef53988091c2f
push id53332
push userbmo:cleu@mozilla.com
push dateTue, 11 Apr 2017 06:00:13 +0000
reviewersdaoshengmu
bugs1311802
milestone55.0a1
Bug 1311802 - Part2 - Add Mochitest implementation; r?daoshengmu MozReview-Commit-ID: K9Z0AWIi9Yp MozReview-Commit-ID: DJ8lO4zsFjn
dom/vr/test/mochitest.ini
dom/vr/test/test_vrDisplay_onvrdisplaydeactivate_crosscontent.html
--- a/dom/vr/test/mochitest.ini
+++ b/dom/vr/test/mochitest.ini
@@ -1,11 +1,13 @@
 [DEFAULT]
 support-files =
   VRSimulationDriver.js
   requestPresent.js
   runVRTest.js
   WebVRHelpers.js
 
+[test_vrDisplay_exitPresent.html]
 [test_vrDisplay_getFrameData.html]
-[test_vrDisplay_exitPresent.html]
+[test_vrDisplay_onvrdisplaydeactivate_crosscontent.html]
+skip-if = true
 [test_vrDisplay_requestPresent.html]
-skip-if = true
\ No newline at end of file
+skip-if = true
new file mode 100644
--- /dev/null
+++ b/dom/vr/test/test_vrDisplay_onvrdisplaydeactivate_crosscontent.html
@@ -0,0 +1,54 @@
+<html>
+  <head>
+    <title>VRDisplay onvrdisplaydeactivate Crosscontent test</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="WebVRHelpers.js"></script>
+    <script src="requestPresent.js"></script>
+    <script src="runVRTest.js"></script>
+  </head>
+  <body>
+    <canvas id="vrCanvas"></canvas>
+    <script>
+
+      function startTest() {
+        var canvas = document.getElementById("vrCanvas");
+        var iframe1 = document.getElementById("iframe1").contentWindow;
+        var t = async_test("vrdisplaydeactivate crosscontent test");
+
+        window.addEventListener("vrdisplaydeactivate", () => {
+          t.step(() => {
+            assert_true(vrDisplay.isPresenting,
+                        "VRDisplay should be still presenting now without being affected by the event.");
+            t.done();
+          });
+        });
+
+        iframe1.addEventListener("vrdisplaydeactivate", () => {
+          t.unreached_func("vrdisplaydeactivate should not be received by other iframe.");
+        });
+
+        promise_test((test) => {
+          return attachVRDisplay(test).then(() => {
+            return promise_test((test) => {
+              return setupVRDisplay(test).then(() => {
+                VRSimulationDriver.SetMountState(true);
+                VRSimulationDriver.UpdateVRDisplay();
+                return WebVRHelpers.RequestPresentOnVRDisplay(vrDisplay, [{source: canvas}]);
+              }).then(() => {
+                VRSimulationDriver.SetMountState(false);
+                VRSimulationDriver.UpdateVRDisplay();
+              });
+            });
+          });
+        });
+      }
+
+      runVRTest(startTest);
+    </script>
+    <iframe id="iframe1"></iframe>
+  </body>
+</html>
\ No newline at end of file