<!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>
<canvas id="webgl-canvas"></canvas>
<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>
