<!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 = "WebXR InputSource's profiles list can be set";

let fakeDeviceInitParams = TRACKED_IMMERSIVE_DEVICE;

let testFunction = function(session, fakeDeviceController, t) {

  let input_source = fakeDeviceController.simulateInputSourceConnection({
    handedness: "right",
    targetRayMode: "tracked-pointer",
    pointerOrigin: VALID_POINTER_TRANSFORM,
    profiles: ["most-specific-name", "less-specific-name"]
  });

  // Input events and state changes need one frame to propagate, which is why we
  // are requesting an animation frame before checking the profiles list.
  return new Promise((resolve) => {
    requestSkipAnimationFrame(session, () => {
      let profiles = session.inputSources[0].profiles;
      t.step(() => {
        assert_equals(profiles.length, 2);
        assert_equals(profiles[0], "most-specific-name");
        assert_equals(profiles[1], "less-specific-name");
      }, "Verify profiles list is set");
      resolve();
    });
  });
};

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