<!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 = "XRView attributes meet [SameObject] requirement";

let testFunction = function(session, fakeDeviceController, t) {
  return new Promise((resolve) => {
    session.requestReferenceSpace('local').then((referenceSpace) => {
      session.requestAnimationFrame((time, xrFrame) => {
        // Make sure that the projectionMatrix and transform attributes on
        // XRView always return the same object.
        let viewerPose = xrFrame.getViewerPose(referenceSpace);
        let view = viewerPose.views[0];

        let transform = view.transform;
        let projectionMatrix = view.projectionMatrix;

        t.step(() => {
          assert_equals(transform, view.transform,
            "XRView.transform returns the same object.");
          assert_equals(projectionMatrix, view.projectionMatrix,
            "XRView.projectionMatrix returns the same object.");
        });

        resolve();
      });
    });
  });
};

xr_session_promise_test(
  testName, testFunction, TRACKED_IMMERSIVE_DEVICE, 'immersive-vr');
</script>
