summaryrefslogtreecommitdiffstats
path: root/testing/web-platform/tests/webxr/xrRigidTransform_sameObject.https.html
diff options
context:
space:
mode:
Diffstat (limited to 'testing/web-platform/tests/webxr/xrRigidTransform_sameObject.https.html')
-rw-r--r--testing/web-platform/tests/webxr/xrRigidTransform_sameObject.https.html40
1 files changed, 40 insertions, 0 deletions
diff --git a/testing/web-platform/tests/webxr/xrRigidTransform_sameObject.https.html b/testing/web-platform/tests/webxr/xrRigidTransform_sameObject.https.html
new file mode 100644
index 0000000000..8ff4f5c258
--- /dev/null
+++ b/testing/web-platform/tests/webxr/xrRigidTransform_sameObject.https.html
@@ -0,0 +1,40 @@
+<!DOCTYPE html>
+<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 = "XRRigidTransform position and orientation meet [SameObject] requirements";
+
+// xrRigidTransform_inverse.https.html already checks [SameObject] requirement
+// for XRRigidTransform.inverse. It's in a separate test because there are
+// additional constraints around how the inverse attribute should work besides
+// just [SameObject].
+
+let testFunction =
+ (session, fakeDeviceController, t) => new Promise((resolve, reject) => {
+
+ let transform = new XRRigidTransform(
+ { x: -9.0, y: 8.0, z: -7.0 },
+ { x: 6.0, y: -5.0, z: 4.0, w: 3.0 });
+
+ let position = transform.position;
+ let orientation = transform.orientation;
+ let matrix = transform.matrix;
+ t.step(() => {
+ assert_equals(position, transform.position,
+ "XRRigidTransform.position returns the same object.");
+ assert_equals(orientation, transform.orientation,
+ "XRRigidTransform.orientation returns the same object.");
+ assert_equals(matrix, transform.matrix,
+ "XRRigidTransform.matrix returns the same object.");
+ });
+
+ resolve();
+});
+
+xr_session_promise_test(testName, testFunction, TRACKED_IMMERSIVE_DEVICE,
+ 'immersive-vr');
+
+</script>