blob: 96e16f6c093e58234d63f9b5f68342a748f34cb3 [file] [log] [blame]
<!DOCTYPE html>
<script src="../resources/testharness.js"></script>
<script src="../resources/testharnessreport.js"></script>
<script src="file:///gen/layout_test_data/mojo/public/js/mojo_bindings.js"></script>
<script src="file:///gen/device/vr/public/mojom/vr_service.mojom.js"></script>
<script src="../external/wpt/resources/chromium/webxr-test.js"></script>
<script src="resources/vr-test-utils.js "></script>
<script src="resources/test-constants.js"></script>
<script>
let fakeDisplays = fakeVRDisplays();
vr_test( (t, device_controller) => {
return navigator.getVRDisplays().then( (displays) => {
var display = displays[0];
var expected_pose = VALID_POSE;
var fd = new VRFrameData();
var counter = 0;
function onFrame() {
window.requestAnimationFrame(onFrame);
if (counter == 0) {
t.step( () => {
assert_false(display.getFrameData(fd));
}, "Expecting to not get framedata since there is no pose");
device_controller.setPose(expected_pose);
t.step( () => {
assert_false(display.getFrameData(fd));
}, "Does not update within the same frame");
} else {
t.step( () => {
assert_false(display.getFrameData(fd));
}, "getFrameData is expected to return false when not in a display RAF callback");
t.done();
}
counter++;
}
window.requestAnimationFrame(onFrame);
}, (err) => {
t.step( () => {
assert_unreached("getVRDisplays rejected");
});
});
}, [fakeDisplays["Pixel"]],
"getFrameData updates on the next frame");
</script>