blob: 85b1747e1efa606c1663630e60eed1dc65bb0506 [file] [log] [blame]
<!DOCTYPE html>
<script src="../resources/testharness.js"></script>
<script src="../resources/testharnessreport.js"></script>
<script src="resources/fake-vr-displays.js"></script>
<script src="file:///gen/layout_test_data/mojo/public/js/mojo_bindings.js"></script>
<script src="file:///gen/device/vr/vr_service.mojom.js"></script>
<script src="resources/mock-vr-service.js"></script>
<script src="resources/test-constants.js"></script>
<canvas id="webgl-canvas"></canvas>
<script src="resources/presentation-setup.js"></script>
<script>
let fakeDisplays = fakeVRDisplays();
vr_test( (t) => {
return navigator.getVRDisplays().then( (displays) => {
var display = displays[0];
t.step( () => {
assert_equals(display.getLayers().length, 0);
}, "No layers initially returned");
runWithUserGesture( () => {
let expectedLeft = [0.0, 0.1, 0.2, 0.3];
let expectedRight = [0.4, 0.5, 0.6, 0.7];
display.requestPresent([{ source : webglCanvas,
leftBounds : expectedLeft,
rightBounds : expectedRight}]).then( () => {
t.step( () => {
let layers = display.getLayers();
assert_equals(layers.length, 1);
let layer = layers[0];
assert_equals(layer.source, webglCanvas);
assert_equals(layer.leftBounds.length, 4);
assert_equals(layer.rightBounds.length, 4);
for (let i = 0; i < layer.leftBounds.length; i++) {
assert_approx_equals(layer.leftBounds[i], expectedLeft[i],
FLOAT_EPSILON);
assert_approx_equals(layer.rightBounds[i], expectedRight[i],
FLOAT_EPSILON);
}
}, "Layer is correct");
}, (err) => {
t.step( () => {
assert_unreached();
}, "requestPresent failed");
}).then( () => {
t.done();
});
});
}, (err) => {
t.step( () => {
assert_unreached();
}, "getVRDisplays rejected");
t.done();
});
}, [fakeDisplays["Pixel"]],
"Test getLayers returns non-default bounds when specified in the layer");
</script>