diff options
Diffstat (limited to 'testing/web-platform/tests/webxr/getViewerPose_emulatedPosition.https.html')
-rw-r--r-- | testing/web-platform/tests/webxr/getViewerPose_emulatedPosition.https.html | 55 |
1 files changed, 55 insertions, 0 deletions
diff --git a/testing/web-platform/tests/webxr/getViewerPose_emulatedPosition.https.html b/testing/web-platform/tests/webxr/getViewerPose_emulatedPosition.https.html new file mode 100644 index 0000000000..7bffaf51a5 --- /dev/null +++ b/testing/web-platform/tests/webxr/getViewerPose_emulatedPosition.https.html @@ -0,0 +1,55 @@ +<!DOCTYPE html> +<body> + <script src=/resources/testharness.js></script> + <script src=/resources/testharnessreport.js></script> + <script src="resources/webxr_util.js"></script> + <script src="resources/webxr_test_constants.js"></script> + + <script> + + let testName = "XRFrame getViewerPose has emulatedPosition set properly."; + + const poseTransform = { + position: [1, 1, 1], + orientation: [0.5, 0.5, 0.5, 0.5] + }; + + let testFunction = function(session, fakeDeviceController, t) { + let debug = xr_debug.bind(this, 'testFunction'); + return session.requestReferenceSpace('local') + .then((referenceSpace) => new Promise((resolve, reject) => { + debug('refSpace promise'); + function CheckPositionNotEmulated(time, vrFrame){ + debug('rAF 1: checkPositionNotEmulated'); + t.step(() => { + let pose = vrFrame.getViewerPose(referenceSpace); + assert_not_equals(pose, null); + assert_equals(pose.emulatedPosition, false); + fakeDeviceController.setViewerOrigin(poseTransform, true); + }); + + session.requestAnimationFrame(CheckPositionEmulated); + } + + function CheckPositionEmulated(time, vrFrame) { + debug('rAF 2: checkPositionEmulated'); + t.step(() => { + let pose = vrFrame.getViewerPose(referenceSpace); + assert_not_equals(pose, null); + assert_equals(pose.emulatedPosition, true); + }); + + // Finished. + debug('resolve'); + resolve(); + } + + requestSkipAnimationFrame(session, CheckPositionNotEmulated); + })); + }; + + xr_session_promise_test(testName, testFunction, + TRACKED_IMMERSIVE_DEVICE, 'immersive-vr'); + + </script> +</body> |