tor-browser

The Tor Browser
git clone https://git.dasho.dev/tor-browser.git
Log | Files | Refs | README | LICENSE

requestPresent.js (2196B)


      1 // requestPresent.js
      2 //
      3 // This file provides helpers for testing VRDisplay requestPresent.
      4 
      5 function attachVRDisplay(test) {
      6  assert_equals(
      7    typeof navigator.getVRDisplays,
      8    "function",
      9    "'navigator.getVRDisplays()' must be defined."
     10  );
     11  return VRSimulationDriver.AttachWebVRDisplay();
     12 }
     13 
     14 function setupVRDisplay(test) {
     15  assert_equals(
     16    typeof navigator.getVRDisplays,
     17    "function",
     18    "'navigator.getVRDisplays()' must be defined."
     19  );
     20  return VRSimulationDriver.AttachWebVRDisplay()
     21    .then(() => {
     22      return navigator.getVRDisplays();
     23    })
     24    .then(displays => {
     25      assert_equals(
     26        displays.length,
     27        1,
     28        "displays.length must be one after attach."
     29      );
     30      vrDisplay = displays[0];
     31      return validateNewVRDisplay(test, vrDisplay);
     32    });
     33 }
     34 
     35 // Validate the settings off a freshly created VRDisplay (prior to calling
     36 // requestPresent).
     37 function validateNewVRDisplay(test, display) {
     38  assert_true(
     39    display.capabilities.canPresent,
     40    "display.capabilities.canPresent must always be true for HMDs."
     41  );
     42  assert_equals(
     43    display.capabilities.maxLayers,
     44    1,
     45    "display.capabilities.maxLayers must always be 1 when display.capabilities.canPresent is true for current spec revision."
     46  );
     47  assert_false(
     48    display.isPresenting,
     49    "display.isPresenting must be false before calling requestPresent."
     50  );
     51  assert_equals(
     52    display.getLayers().length,
     53    0,
     54    "display.getLayers() should have no layers if not presenting."
     55  );
     56  var promise = display.exitPresent();
     57  return promise_rejects(test, null, promise);
     58 }
     59 
     60 // Validate the settings off a VRDisplay after requestPresent promise is
     61 // rejected or after exitPresent is fulfilled.
     62 function validateDisplayNotPresenting(test, display) {
     63  assert_false(
     64    display.isPresenting,
     65    "display.isPresenting must be false if requestPresent is rejected or after exitPresent is fulfilled."
     66  );
     67  assert_equals(
     68    display.getLayers().length,
     69    0,
     70    "display.getLayers() should have no layers if requestPresent is rejected  or after exitPresent is fulfilled."
     71  );
     72  var promise = display.exitPresent();
     73  return promise_rejects(test, null, promise);
     74 }