74 lines
2.1 KiB
JavaScript
74 lines
2.1 KiB
JavaScript
// requestPresent.js
|
|
//
|
|
// This file provides helpers for testing VRDisplay requestPresent.
|
|
|
|
function attachVRDisplay(test) {
|
|
assert_equals(
|
|
typeof navigator.getVRDisplays,
|
|
"function",
|
|
"'navigator.getVRDisplays()' must be defined."
|
|
);
|
|
return VRSimulationDriver.AttachWebVRDisplay();
|
|
}
|
|
|
|
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);
|
|
}
|