| <!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> |