Update web-platform-tests to revision 8da19eeb64e1dbcc32cabc2961a44e15635d116f

This commit is contained in:
WPT Sync Bot 2019-07-04 10:26:17 +00:00
parent b32bff3b97
commit 120d9aa5dc
298 changed files with 9286 additions and 3047 deletions

View file

@ -1,32 +0,0 @@
// assert_equals can fail when comparing floats due to precision errors, so
// use assert_approx_equals with this constant instead
const FLOAT_EPSILON = 0.001;
// Identity matrix
const IDENTITY_MATRIX = [1, 0, 0, 0,
0, 1, 0, 0,
0, 0, 1, 0,
0, 0, 0, 1];
// A valid pose matrix for when we don't care about specific values
const VALID_POSE_MATRIX = [0, 1, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 1, 1, 1, 1];
const VALID_PROJECTION_MATRIX =
[1, 0, 0, 0, 0, 1, 0, 0, 3, 2, -1, -1, 0, 0, -0.2, 0];
const VALID_VIEW_MATRIX = [1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 4, 3, 2, 1];
// A valid VRPose for when we want the HMD to report being at the origin
const ORIGIN_POSE = IDENTITY_MATRIX;
// A valid input grip matrix for when we don't care about specific values
const VALID_GRIP = [1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 4, 3, 2, 1];
// A valid input pointer offset for when we don't care about specific values
const VALID_POINTER_OFFSET = [1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0, 0, 1, 1];
const VALID_GRIP_WITH_POINTER_OFFSET =
[1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 4, 3, 3, 1];
const VALID_STAGE_TRANSFORM =
[1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 1.0, 1.65, -1.0, 1];

View file

@ -8,17 +8,26 @@ const IDENTITY_MATRIX = [1, 0, 0, 0,
0, 0, 1, 0,
0, 0, 0, 1];
// A valid pose matrix for when we don't care about specific values
const VALID_POSE_MATRIX = [0, 1, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 1, 1, 1, 1];
const IDENTITY_TRANSFORM = {
position: [0, 0, 0],
orientation: [0, 0, 0, 1],
};
// A valid pose matrix/transform for when we don't care about specific values
// Note that these two should be identical, just different representations
const VALID_POSE_MATRIX = [0, 1, 0, 0,
0, 0, 1, 0,
1, 0, 0, 0,
1, 1, 1, 1];
const VALID_POSE_TRANSFORM = {
position: [1, 1, 1],
orientation: [0.5, 0.5, 0.5, 0.5]
};
const VALID_PROJECTION_MATRIX =
[1, 0, 0, 0, 0, 1, 0, 0, 3, 2, -1, -1, 0, 0, -0.2, 0];
const VALID_VIEW_MATRIX = [1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 4, 3, 2, 1];
// A valid VRPose for when we want the HMD to report being at the origin
const ORIGIN_POSE = IDENTITY_MATRIX;
// A valid input grip matrix for when we don't care about specific values
const VALID_GRIP = [1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 4, 3, 2, 1];
@ -39,3 +48,51 @@ const VALID_BOUNDS = [
{ x: -3.5, y: 0, z: 0.0 },
{ x: -3.0, y: 0, z: -2.0 }
];
const VALID_RESOLUTION = {
width: 20,
height: 20
};
const LEFT_OFFSET = {
position: [-0.1, 0, 0],
orientation: [0, 0, 0, 1]
};
const RIGHT_OFFSET = {
position: [0.1, 0, 0],
orientation: [0, 0, 0, 1]
};
const VALID_VIEWS = [{
eye:"left",
projectionMatrix: VALID_PROJECTION_MATRIX,
viewOffset: LEFT_OFFSET,
resolution: VALID_RESOLUTION
}, {
eye:"right",
projectionMatrix: VALID_PROJECTION_MATRIX,
viewOffset: RIGHT_OFFSET,
resolution: VALID_RESOLUTION
},
];
const NON_IMMERSIVE_VIEWS = [{
eye: "none",
projectionMatrix: VALID_PROJECTION_MATRIX,
viewOffset: IDENTITY_TRANSFORM,
resolution: VALID_RESOLUTION,
}
];
const TRACKED_IMMERSIVE_DEVICE = {
supportsImmersive: true,
views: VALID_VIEWS,
viewerOrigin: IDENTITY_TRANSFORM
};
const VALID_NON_IMMERSIVE_DEVICE = {
supportsImmersive: false,
views: NON_IMMERSIVE_VIEWS,
viewerOrigin: IDENTITY_TRANSFORM
};

View file

@ -39,15 +39,15 @@ function xr_session_promise_test(
xr_promise_test(
name,
(t) =>
XRTest.simulateDeviceConnection(fakeDeviceInit)
(t) =>{
return navigator.xr.test.simulateDeviceConnection(fakeDeviceInit)
.then((controller) => {
testDeviceController = controller;
return gl.makeXRCompatible();
})
.then(() => new Promise((resolve, reject) => {
// Perform the session request in a user gesture.
XRTest.simulateUserActivation(() => {
navigator.xr.test.simulateUserActivation(() => {
navigator.xr.requestSession(sessionMode)
.then((session) => {
testSession = session;
@ -75,8 +75,9 @@ function xr_session_promise_test(
.then(() => {
// Cleanup system state.
testSession.end().catch(() => {});
XRTest.simulateDeviceDisconnection();
}),
return navigator.xr.test.disconnectAllDevices();
})
},
properties);
}
@ -138,4 +139,4 @@ let loadChromiumResources = Promise.resolve().then(() => {
});
return chain;
});
});

View file

@ -3,11 +3,12 @@
<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>
<canvas id="webgl-canvas"></canvas>
<script>
xr_promise_test("An XR-compatible webglCanvasContext can be created",
(t) => {
return XRTest.simulateDeviceConnection({ supportsImmersive:true })
return navigator.xr.test.simulateDeviceConnection(TRACKED_IMMERSIVE_DEVICE)
.then( (controller) => {
webglCanvas = document.getElementById('webgl-canvas');
gl = webglCanvas.getContext('webgl', {xrCompatible: true});

View file

@ -3,13 +3,14 @@
<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>
<canvas id="webgl-canvas"></canvas>
<script>
xr_promise_test(
"A lost webglCanvasContext should not be able to set xr compatibility",
(t) => {
return XRTest.simulateDeviceConnection({ supportsImmersive:true })
return navigator.xr.test.simulateDeviceConnection(TRACKED_IMMERSIVE_DEVICE)
.then( (controller) => {
webglCanvas = document.getElementById('webgl-canvas');
gl = webglCanvas.getContext('webgl', {xrCompatible: true});

View file

@ -3,12 +3,13 @@
<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>
<canvas></canvas>
<script>
xr_session_promise_test(
"Tests requestSession resolves when supported",
(session) => {
assert_not_equals(session, null);
}, { supportsImmersive:true }, 'immersive-vr');
}, TRACKED_IMMERSIVE_DEVICE, 'immersive-vr');
</script>
</body>
</body>

View file

@ -3,11 +3,12 @@
<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>
xr_promise_test(
"Requesting immersive session outside of a user gesture rejects",
(t) => {
return XRTest.simulateDeviceConnection({ supportsImmersive:true })
return navigator.xr.test.simulateDeviceConnection(TRACKED_IMMERSIVE_DEVICE)
.then( (controller) => promise_rejects(
t, 'SecurityError', navigator.xr.requestSession('immersive-vr')));
});

View file

@ -3,13 +3,14 @@
<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>
xr_promise_test(
"Requesting an immersive session when unsupported rejects",
(t) => {
return XRTest.simulateDeviceConnection({ supportsImmersive:false })
return navigator.xr.test.simulateDeviceConnection(VALID_NON_IMMERSIVE_DEVICE)
.then( (controller) => new Promise((resolve) => {
XRTest.simulateUserActivation( () => {
navigator.xr.test.simulateUserActivation( () => {
resolve(promise_rejects(
t,
"NotSupportedError",

View file

@ -3,13 +3,14 @@
<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>
xr_promise_test(
"Requesting a session with no mode rejects",
(t) => {
return XRTest.simulateDeviceConnection({ supportsImmersive:false })
return navigator.xr.test.simulateDeviceConnection(VALID_NON_IMMERSIVE_DEVICE)
.then( (controller) => new Promise((resolve) => {
XRTest.simulateUserActivation( () => {
navigator.xr.test.simulateUserActivation( () => {
resolve(promise_rejects(
t,
new TypeError(),

View file

@ -3,11 +3,12 @@
<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>
xr_promise_test(
"Requesting non-immersive session outside of a user gesture succeeds",
(t) => {
return XRTest.simulateDeviceConnection({ supportsImmersive:false })
return navigator.xr.test.simulateDeviceConnection(VALID_NON_IMMERSIVE_DEVICE)
.then( (controller) => navigator.xr.requestSession('inline'))
.then( (session) => { assert_not_equals(session, null); });
});

View file

@ -3,11 +3,12 @@
<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>
xr_promise_test(
"supportsSession resolves when immersive options supported",
() => {
return XRTest.simulateDeviceConnection({ supportsImmersive:true })
return navigator.xr.test.simulateDeviceConnection(TRACKED_IMMERSIVE_DEVICE)
.then( (controller) => navigator.xr.supportsSession('immersive-vr'));
});
</script>

View file

@ -3,11 +3,12 @@
<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>
xr_promise_test(
"supportsSession rejects when options not supported",
(t) => {
return XRTest.simulateDeviceConnection({ supportsImmersive:false })
return navigator.xr.test.simulateDeviceConnection(VALID_NON_IMMERSIVE_DEVICE)
.then( (controller) => {
return promise_rejects(
t,

View file

@ -3,11 +3,12 @@
<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>
xr_promise_test(
"supportsSession resolves when inline options supported",
(t) => {
return XRTest.simulateDeviceConnection({ supportsImmersive:true })
return navigator.xr.test.simulateDeviceConnection(TRACKED_IMMERSIVE_DEVICE)
.then( (controller) => {
// Inline sessions should be supported.
return navigator.xr.supportsSession('inline');

View file

@ -1,7 +1,7 @@
<!DOCTYPE html>
<script src="/resources/testharness.js"></script>
<script src="/resources/testharnessreport.js"></script>
<script src="resources/test-constants.js"></script>
<script src="resources/webxr_test_constants.js"></script>
<script src="resources/webxr_util.js"></script>
<script src="resources/xr-test-asserts.js"></script>
<canvas></canvas>
@ -11,20 +11,9 @@
let immersiveTestName = "XRFrame.getPose works for immersive sessions";
let nonImmersiveTestName = "XRFrame.getPose works for non-immersive sessions";
let fakeDeviceInitParams = { supportsImmersive:true };
let fakeDeviceInitParams = TRACKED_IMMERSIVE_DEVICE;
let testFunction = function(session, fakeDeviceController, t) {
// Need to have a valid pose or input events don't process.
fakeDeviceController.setXRPresentationFrameData(VALID_POSE_MATRIX, [{
eye:"left",
projectionMatrix: VALID_PROJECTION_MATRIX,
viewMatrix: VALID_VIEW_MATRIX
}, {
eye:"right",
projectionMatrix: VALID_PROJECTION_MATRIX,
viewMatrix: VALID_VIEW_MATRIX
}]);
return Promise.all([
session.requestReferenceSpace('local'),
session.requestReferenceSpace('local')

View file

@ -3,6 +3,7 @@
<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>
<canvas></canvas>
<script>
@ -11,7 +12,7 @@
let nonImmersiveTestName = "XRFrame methods throw exceptions outside of the " +
"requestAnimationFrame callback for non-immersive sessions";
let fakeDeviceInitParams = { supportsImmersive:true };
let fakeDeviceInitParams = TRACKED_IMMERSIVE_DEVICE;
let testFunction = (testSession, testController, t) => new Promise((resolve) => {
let staleFrame = null;
@ -54,4 +55,4 @@
fakeDeviceInitParams, 'inline');
</script>
</body>
</body>

View file

@ -3,7 +3,6 @@
<script src="/resources/testharnessreport.js"></script>
<script src="resources/webxr_test_constants.js"></script>
<script src="resources/webxr_test_asserts.js"></script>
<script>
let constructor_test_name = "XRRay constructors work";

View file

@ -4,7 +4,6 @@
<script src="resources/webxr_test_constants.js"></script>
<script src="resources/webxr_test_asserts.js"></script>
<script src="resources/webxr_math_utils.js"></script>
<script>
let matrix_tests_name = "XRRay matrix works";

View file

@ -4,11 +4,10 @@
<script src="resources/webxr_util.js"></script>
<script src="resources/webxr_test_constants.js"></script>
<canvas id="webgl-canvas"></canvas>
<script>
let testName = "XRRigidTransform constructor works";
let fakeDeviceInitParams = { supportsImmersive: true };
let fakeDeviceInitParams = TRACKED_IMMERSIVE_DEVICE;
let testFunction =
(session, fakeDeviceController, t) => new Promise((resolve, reject) => {

View file

@ -4,11 +4,10 @@
<script src="resources/webxr_util.js"></script>
<script src="resources/webxr_test_constants.js"></script>
<canvas id="webgl-canvas"></canvas>
<script>
let testName = "XRRigidTransform inverse works";
let fakeDeviceInitParams = { supportsImmersive: true };
let fakeDeviceInitParams = TRACKED_IMMERSIVE_DEVICE;
let testFunction =
(session, fakeDeviceController, t) => new Promise((resolve, reject) => {

View file

@ -4,7 +4,6 @@
<script src="resources/webxr_test_constants.js"></script>
<script src="resources/webxr_test_asserts.js"></script>
<script src="resources/webxr_math_utils.js"></script>
<script>
let matrix_tests_name = "XRRigidTransform matrix works";

View file

@ -3,6 +3,7 @@
<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>
<canvas></canvas>
<script>
@ -11,7 +12,7 @@
let nonImmersiveTestName = "XRSession requestAnimationFrame callbacks can be "
+ "unregistered with cancelAnimationFrame for non-immersive sessions";
let fakeDeviceInitParams = { supportsImmersive:true };
let fakeDeviceInitParams = TRACKED_IMMERSIVE_DEVICE;
let testFunction = (session) => new Promise((resolve, reject) => {

View file

@ -3,6 +3,7 @@
<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>
<canvas></canvas>
<script>
let immersiveTestName = "XRSession cancelAnimationFrame does not have unexpected "
@ -10,7 +11,7 @@
let nonImmersiveTestName = "XRSession cancelAnimationFrame does not have unexpected "
+ "behavior when given invalid handles on non-immersive testSession";
let fakeDeviceInitParams = { supportsImmersive:true };
let fakeDeviceInitParams = TRACKED_IMMERSIVE_DEVICE;
let testFunction = (testSession) => new Promise((resolve) => {
let counter = 0;

View file

@ -3,13 +3,14 @@
<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>
<canvas></canvas>
<script>
const immersivetestName = "end event fires when immersive session ends";
const nonimmersiveTestName = "end event fires when non-immersive session ends";
let watcherDone = new Event("watcherdone");
const fakeDeviceInitParams = { supportsImmersive:true };
const fakeDeviceInitParams = TRACKED_IMMERSIVE_DEVICE;
let testFunction = function(session, testDeviceController, t) {
let eventWatcher = new EventWatcher(t, session, ["end", "watcherdone"]);
@ -32,4 +33,4 @@
xr_session_promise_test(nonimmersiveTestName, testFunction,
fakeDeviceInitParams, 'inline');
</script>
</body>
</body>

View file

@ -3,18 +3,19 @@
<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>
<canvas></canvas>
<script>
xr_promise_test(
"Test prevention of multiple simultaneous immersive sessions",
(t) => {
return XRTest.simulateDeviceConnection({ supportsImmersive:true })
return navigator.xr.test.simulateDeviceConnection(TRACKED_IMMERSIVE_DEVICE)
.then( (controller) => new Promise((resolve) => {
XRTest.simulateUserActivation( () => {
navigator.xr.test.simulateUserActivation( () => {
resolve(navigator.xr.requestSession('immersive-vr')
.then( (session) => new Promise((resolve) => {
XRTest.simulateUserActivation( () => {
navigator.xr.test.simulateUserActivation( () => {
// Requesting a second immersive session when another immersive
// session is active should fail. Immersive sessions
// should take up the users entire view, and therefore it should
@ -27,7 +28,7 @@
// End the immersive session and try again. Now the immersive
// session creation should succeed.
return session.end().then( () => new Promise((resolve) => {
XRTest.simulateUserActivation( () => {
navigator.xr.test.simulateUserActivation( () => {
resolve(navigator.xr.requestSession('immersive-vr'));
});
}));

View file

@ -3,6 +3,7 @@
<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>
<canvas></canvas>
<script>
@ -11,7 +12,7 @@
let nonImmersiveTestName = "XRSession requestAnimationFrame calls the " +
"provided callback a non-immersive session";
let fakeDeviceInitParams = { supportsImmersive:true };
let fakeDeviceInitParams = TRACKED_IMMERSIVE_DEVICE;
let testFunction = (testSession) => new Promise((resolve) => {
function onFrame(time, xrFrame) {
@ -29,4 +30,4 @@
fakeDeviceInitParams, 'inline');
</script>
</body>
</body>

View file

@ -3,31 +3,13 @@
<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>
<canvas></canvas>
<script>
const testName = "RequestAnimationFrame resolves with good data";
const identityMatrix = new Float32Array([
1, 0, 0, 0,
0, 1, 0, 0,
0, 0, 1, 0,
0, 0, 0, 1
]);
const rightFakeXRViewInit = {
eye:"right",
projectionMatrix: identityMatrix,
viewMatrix: identityMatrix
};
const leftFakeXRViewInit = {
eye:"left",
projectionMatrix: identityMatrix,
viewMatrix: identityMatrix
};
const fakeDeviceInitOptions = { supportsImmersive:true };
const fakeDeviceInitOptions = TRACKED_IMMERSIVE_DEVICE;
let testSession;
@ -52,8 +34,8 @@
let viewerPose = xrFrame.getViewerPose(referenceSpace);
assert_not_equals(viewerPose, null);
for(let i = 0; i < identityMatrix.length; i++) {
assert_equals(viewerPose.transform.matrix[i], identityMatrix[i]);
for(let i = 0; i < IDENTITY_MATRIX.length; i++) {
assert_equals(viewerPose.transform.matrix[i], IDENTITY_MATRIX[i]);
}
assert_not_equals(viewerPose.views, null);
@ -65,11 +47,6 @@
resolve();
}
testDeviceController.setXRPresentationFrameData(
identityMatrix,
[rightFakeXRViewInit, leftFakeXRViewInit]
);
testSession.requestAnimationFrame(onFrame);
})
);

View file

@ -3,6 +3,8 @@
<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 src="resources/xr-test-asserts.js"></script>
<canvas></canvas>
<script>
@ -12,12 +14,22 @@
let nonImmersiveTestName =
"XRFrame getViewerPose updates on the next frame for non-immersive sessions";
let fakeDeviceInitParams = { supportsImmersive: true };
let fakeDeviceInitParams = {
supportsImmersive: true,
views: VALID_VIEWS
};
// Valid matrices for when we don't care about specific values
const validPoseMatrix = [0, 1, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 1, 1, 1, 1];
const validProjectionMatrix = [1, 0, 0, 0, 0, 1, 0, 0, 3, 2, -1, -1, 0, 0, -0.2, 0];
const validViewMatrix = [1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 4, 3, 2, 1];
// A valid pose matrix/transform for when we don't care about specific values
// Note that these two should be identical, just different representations
const expectedPoseMatrix = [0, 1, 0, 0,
0, 0, 1, 0,
1, 0, 0, 0,
1, 1, 1, 1];
const poseTransform = {
position: [1, 1, 1],
orientation: [0.5, 0.5, 0.5, 0.5]
};
let testFunction = function(session, fakeDeviceController, t) {
return session.requestReferenceSpace('local')
@ -30,16 +42,7 @@
// Expecting to not get a pose since none has been supplied
assert_equals(vrFrame.getViewerPose(referenceSpace), null);
fakeDeviceController.setXRPresentationFrameData(
validPoseMatrix, [{
eye:"left",
projectionMatrix: validProjectionMatrix,
viewMatrix: validViewMatrix
}, {
eye:"right",
projectionMatrix: validProjectionMatrix,
viewMatrix: validViewMatrix
}]);
fakeDeviceController.setViewerOrigin(poseTransform);
// Check that pose does not update pose within the same frame.
assert_equals(vrFrame.getViewerPose(referenceSpace), null);
@ -51,10 +54,7 @@
let poseMatrix = pose.transform.matrix;
assert_not_equals(poseMatrix, null);
for(let i = 0; i < poseMatrix.length; i++) {
assert_equals(poseMatrix[i], validPoseMatrix[i]);
}
assert_matrix_approx_equals(poseMatrix, expectedPoseMatrix, FLOAT_EPSILON);
});
// Finished.

View file

@ -3,6 +3,7 @@
<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>
<canvas></canvas>
<script>
@ -11,7 +12,7 @@
let nonImmersiveTestName =
"Non-immersive XRSession requestReferenceSpace returns expected objects";
let fakeDeviceInitParams = { supportsImmersive: true };
let fakeDeviceInitParams = TRACKED_IMMERSIVE_DEVICE;
let testFunction = function(session, fakeDeviceController, t) {
return promise_rejects(t, new TypeError(), session.requestReferenceSpace('foo'))
@ -61,4 +62,4 @@
nonImmersiveTestName, testFunction, fakeDeviceInitParams, 'inline');
</script>
</body>
</body>

View file

@ -3,6 +3,7 @@
<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>
<canvas></canvas>
<script>
@ -12,14 +13,7 @@
let inlineTestName =
"Identity reference space provides correct poses for inline sessions";
let fakeDeviceInitParams = { supportsImmersive: true };
const identityMatrix = [1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1];
// Valid matrices for when we don't care about specific values
const validPoseMatrix = [0, 1, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 1, 1, 1, 1];
const validProjectionMatrix = [1, 0, 0, 0, 0, 1, 0, 0, 3, 2, -1, -1, 0, 0, -0.2, 0];
const validViewMatrix = [1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 4, 3, 2, 1];
let fakeDeviceInitParams = TRACKED_IMMERSIVE_DEVICE;
let testFunction = function(session, fakeDeviceController, t) {
return session.requestReferenceSpace('viewer')
@ -37,19 +31,10 @@
assert_not_equals(poseMatrix, null);
for(let i = 0; i < poseMatrix.length; i++) {
assert_equals(poseMatrix[i], identityMatrix[i]);
assert_equals(poseMatrix[i], IDENTITY_MATRIX[i]);
}
fakeDeviceController.setXRPresentationFrameData(
validPoseMatrix, [{
eye:"left",
projectionMatrix: validProjectionMatrix,
viewMatrix: validViewMatrix
}, {
eye:"right",
projectionMatrix: validProjectionMatrix,
viewMatrix: validViewMatrix
}]);
fakeDeviceController.setViewerOrigin(VALID_POSE_TRANSFORM);
});
} else {
t.step( () => {
@ -62,7 +47,7 @@
assert_not_equals(poseMatrix, null);
for(let i = 0; i < poseMatrix.length; i++) {
assert_equals(poseMatrix[i], identityMatrix[i]);
assert_equals(poseMatrix[i], IDENTITY_MATRIX[i]);
}
});

View file

@ -1,7 +1,7 @@
<!DOCTYPE html>
<script src="/resources/testharness.js"></script>
<script src="/resources/testharnessreport.js"></script>
<script src="resources/test-constants.js"></script>
<script src="resources/webxr_test_constants.js"></script>
<script src="resources/webxr_util.js"></script>
<script src="resources/xr-test-asserts.js"></script>
<canvas></canvas>
@ -11,20 +11,9 @@
let immersiveTestName = "XRView.eye is correct for immersive sessions";
let nonImmersiveTestName = "XRView.eye is correct for non-immersive sessions";
let fakeDeviceInitParams = { supportsImmersive:true };
let fakeDeviceInitParams = TRACKED_IMMERSIVE_DEVICE;
let testFunction = function(session, fakeDeviceController, t) {
// Need to have a valid pose or input events don't process.
fakeDeviceController.setXRPresentationFrameData(VALID_POSE_MATRIX, [{
eye:"left",
projectionMatrix: VALID_PROJECTION_MATRIX,
viewMatrix: VALID_VIEW_MATRIX
}, {
eye:"right",
projectionMatrix: VALID_PROJECTION_MATRIX,
viewMatrix: VALID_VIEW_MATRIX
}]);
return session.requestReferenceSpace('viewer')
.then((space) => new Promise((resolve) => {
function onFrame(time, xrFrame) {

View file

@ -1,7 +1,7 @@
<!DOCTYPE html>
<script src="/resources/testharness.js"></script>
<script src="/resources/testharnessreport.js"></script>
<script src="resources/test-constants.js"></script>
<script src="resources/webxr_test_constants.js"></script>
<script src="resources/webxr_util.js"></script>
<script src="resources/xr-test-asserts.js"></script>
<canvas></canvas>
@ -11,20 +11,9 @@
let immersiveTestName = "XRWebGLLayer reports a valid viewports for immersive sessions";
let inlineTestName = "XRWebGLLayer reports a valid viewports for inline sessions";
let fakeDeviceInitParams = { supportsImmersive:true };
let fakeDeviceInitParams = TRACKED_IMMERSIVE_DEVICE;
let testFunction = function(session, fakeDeviceController, t) {
// Need to have a valid pose.
fakeDeviceController.setXRPresentationFrameData(VALID_POSE_MATRIX, [{
eye:"left",
projectionMatrix: VALID_PROJECTION_MATRIX,
viewMatrix: VALID_VIEW_MATRIX
}, {
eye:"right",
projectionMatrix: VALID_PROJECTION_MATRIX,
viewMatrix: VALID_VIEW_MATRIX
}]);
return session.requestReferenceSpace('viewer')
.then((space) => new Promise((resolve) => {
function onFrame(time, xrFrame) {