| <!DOCTYPE html> |
| <script src="../resources/testharness.js"></script> |
| <script src="../resources/testharnessreport.js"></script> |
| <script src="file:///gen/layout_test_data/mojo/public/js/mojo_bindings.js"></script> |
| <script src="file:///gen/device/vr/public/mojom/vr_service.mojom.js"></script> |
| <script src="../external/wpt/resources/chromium/webxr-test.js"></script> |
| <script src="resources/vr-test-utils.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( () => { |
| display.requestPresent([{ source : webglCanvas }]).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); |
| |
| let expectedLeft = [0.0, 0.0, 0.5, 1.0]; |
| let expectedRight = [0.5, 0.0, 0.5, 1.0]; |
| 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 given canvas and default bounds when expected"); |
| |
| </script> |