From 6bf0a5cb5034a7e684dcc3500e841785237ce2dd Mon Sep 17 00:00:00 2001 From: Daniel Baumann Date: Sun, 7 Apr 2024 19:32:43 +0200 Subject: Adding upstream version 1:115.7.0. Signed-off-by: Daniel Baumann --- .../webxr/depth-sensing/dataUnavailableTests.js | 58 ++++++++++++++++++++++ 1 file changed, 58 insertions(+) create mode 100644 testing/web-platform/tests/webxr/depth-sensing/dataUnavailableTests.js (limited to 'testing/web-platform/tests/webxr/depth-sensing/dataUnavailableTests.js') diff --git a/testing/web-platform/tests/webxr/depth-sensing/dataUnavailableTests.js b/testing/web-platform/tests/webxr/depth-sensing/dataUnavailableTests.js new file mode 100644 index 0000000000..7460af7132 --- /dev/null +++ b/testing/web-platform/tests/webxr/depth-sensing/dataUnavailableTests.js @@ -0,0 +1,58 @@ +'use strict'; + +const TestStates = Object.freeze({ + "ShouldSucceedScheduleRAF": 1, + "ShouldFailScheduleRAF": 2, + "ShouldSucceedTestDone": 3, +}); + +const dataUnavailableTestFunctionGenerator = function(isCpuOptimized) { + return (session, controller, t, sessionObjects) => { + let state = TestStates.ShouldSucceedScheduleRAF; + + return session.requestReferenceSpace('viewer').then((viewerSpace) => { + let done = false; + + const glBinding = new XRWebGLBinding(session, sessionObjects.gl); + + const rafCb = function(time, frame) { + const pose = frame.getViewerPose(viewerSpace); + for(const view of pose.views) { + const depthInformation = isCpuOptimized ? frame.getDepthInformation(view) + : glBinding.getDepthInformation(view); + + if (state == TestStates.ShouldSucceedScheduleRAF + || state == TestStates.ShouldSucceedTestDone) { + t.step(() => { + assert_not_equals(depthInformation, null); + }); + } else { + t.step(() => { + assert_equals(depthInformation, null); + }); + } + } + + switch(state) { + case TestStates.ShouldSucceedScheduleRAF: + controller.clearDepthSensingData(); + state = TestStates.ShouldFailScheduleRAF; + session.requestAnimationFrame(rafCb); + break; + case TestStates.ShouldFailScheduleRAF: + controller.setDepthSensingData(DEPTH_SENSING_DATA); + state = TestStates.ShouldSucceedTestDone; + session.requestAnimationFrame(rafCb); + break; + case TestStates.ShouldSucceedTestDone: + done = true; + break; + } + }; + + session.requestAnimationFrame(rafCb); + + return t.step_wait(() => done); + }); + }; +}; \ No newline at end of file -- cgit v1.2.3