gecko-dev/dom/vr/test/requestPresent.js

34 строки
1.8 KiB
JavaScript

// requestPresent.js
//
// This file provides helpers for testing VRDisplay requestPresent.
function setupVRDisplay(test) {
assert_equals(typeof (navigator.getVRDisplays), "function", "'navigator.getVRDisplays()' must be defined.");
return VRSimulationDriver.AttachWebVRDisplay().then(() => {
return navigator.getVRDisplays();
}).then((displays) => {
assert_equals(displays.length, 1, "displays.length must be one after attach.");
vrDisplay = displays[0];
return validateNewVRDisplay(test, vrDisplay);
});
}
// Validate the settings off a freshly created VRDisplay (prior to calling
// requestPresent).
function validateNewVRDisplay(test, display) {
assert_true(display.capabilities.canPresent, "display.capabilities.canPresent must always be true for HMDs.");
assert_equals(display.capabilities.maxLayers, 1, "display.capabilities.maxLayers must always be 1 when display.capabilities.canPresent is true for current spec revision.");
assert_false(display.isPresenting, "display.isPresenting must be false before calling requestPresent.");
assert_equals(display.getLayers().length, 0, "display.getLayers() should have no layers if not presenting.");
var promise = display.exitPresent();
return promise_rejects(test, null, promise);
}
// Validate the settings off a VRDisplay after requestPresent promise is
// rejected or after exitPresent is fulfilled.
function validateDisplayNotPresenting(test, display) {
assert_false(display.isPresenting, "display.isPresenting must be false if requestPresent is rejected or after exitPresent is fulfilled.");
assert_equals(display.getLayers().length, 0, "display.getLayers() should have no layers if requestPresent is rejected or after exitPresent is fulfilled.");
var promise = display.exitPresent();
return promise_rejects(test, null, promise);
}