| <!DOCTYPE html> |
| <body> |
| <script src=/resources/testharness.js></script> |
| <script src=/resources/testharnessreport.js></script> |
| <script src="resources/webxr_util.js"></script> |
| <canvas></canvas> |
| <script> |
| |
| let immersiveTestName = |
| "Immersive XRSession requestFrameOfReference returns expected objects"; |
| let nonImmersiveTestName = |
| "Non-immersive XRSession requestFrameOfReference returns expected objects"; |
| |
| let fakeDeviceInitParams = { supportsImmersive: true }; |
| |
| let immersiveSessionOptions = { immersive: true }; |
| let nonImmersiveSessionOptions = { outputContext: getOutputContext() }; |
| |
| let testFunction = function(session, fakeDeviceController, t) { |
| return promise_rejects(t, new TypeError(), session.requestFrameOfReference("foo")) |
| .then(() => Promise.all([ |
| session.requestFrameOfReference("head-model").then( (frameOfRef) => { |
| assert_true(frameOfRef instanceof XRCoordinateSystem, |
| "head-model frameOfRef is not correct type."); |
| assert_true(frameOfRef instanceof XRFrameOfReference, |
| "head-model frameOfRef is not correct type."); |
| }), |
| session.requestFrameOfReference("eye-level").then( (frameOfRef) => { |
| assert_true(frameOfRef instanceof XRCoordinateSystem, |
| "eye-level frameOfRef is not correct type."); |
| assert_true(frameOfRef instanceof XRFrameOfReference, |
| "eye-level frameOfRef is not correct type."); |
| }), |
| session.requestFrameOfReference("stage").then( (frameOfRef) => { |
| assert_true(frameOfRef instanceof XRCoordinateSystem, |
| "stage frameOfRef is not correct type."); |
| assert_true(frameOfRef instanceof XRFrameOfReference, |
| "stage frameOfRef is not correct type."); |
| }) |
| ])); |
| }; |
| |
| xr_session_promise_test( |
| immersiveTestName, testFunction, fakeDeviceInitParams, immersiveSessionOptions); |
| xr_session_promise_test( |
| nonImmersiveTestName, testFunction, fakeDeviceInitParams, nonImmersiveSessionOptions); |
| |
| </script> |
| </body> |