<!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 = "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) => {
    session.requestAnimationFrame(() => {
      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>
