| <!doctype html> |
| <!-- |
| Tests that the provided WebXR device has the expected capabilities |
| --> |
| <html> |
| <head> |
| <link rel="stylesheet" type="text/css" href="../resources/webxr_e2e.css"> |
| </head> |
| <body> |
| <canvas id="webgl-canvas"></canvas> |
| <script src="../../../../../../third_party/blink/web_tests/resources/testharness.js"></script> |
| <script src="../resources/webxr_e2e.js"></script> |
| <script src="../resources/webxr_boilerplate.js"></script> |
| <script> |
| var expectations = { |
| "Daydream": { |
| "immersive": true, |
| "non-immersive": true, |
| } |
| }; |
| var t = async_test("XRDevice capabilities match expectations"); |
| |
| function stepCheckCapabilities(device) { |
| if (!(device in expectations)) { |
| t.step_func_done( () => { |
| assert_unreached("Given device " + device + " not in expectations"); |
| })(); |
| return; |
| } |
| |
| let expected = expectations[device]; |
| var supportsNonImmersive; |
| var supportsImmersive; |
| var ctx = webglCanvas.getContext("xrpresent"); |
| xrDevice.supportsSession( |
| {immersive: false, outputContext: ctx}).then( () => { |
| supportsNonImmersive = true; |
| }, () => { |
| supportsNonImmersive = false; |
| }).then( () => { |
| xrDevice.supportsSession({immersive: true}).then( () => { |
| supportsImmersive = true; |
| }, () => { |
| supportsImmersive = false; |
| }).then( () => { |
| t.step( () => { |
| assert_equals(supportsNonImmersive, expected["non-immersive"], |
| 'Device supports non-immersive sessions'); |
| assert_equals(supportsImmersive, expected["immersive"], |
| 'Device supports immersive sessions'); |
| }); |
| t.done(); |
| }); |
| }); |
| } |
| </script> |
| </body> |
| </html> |