зеркало из https://github.com/mozilla/gecko-dev.git
34 строки
1.8 KiB
JavaScript
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);
|
|
} |