blob: 16a298a6a3ed826101d98fbbc0c2c1613228e7f5 [file] [log] [blame]
<!DOCTYPE html>
<script src="../resources/testharness.js"></script>
<script src="../resources/testharnessreport.js"></script>
<script src="../vr/resources/fake-vr-displays.js"></script>
<script src="file:///gen/layout_test_data/mojo/public/js/mojo_bindings.js"></script>
<script src="file:///gen/device/vr/vr_service.mojom.js"></script>
<script src="../vr/resources/mock-vr-service.js"></script>
<script src="../vr/resources/test-constants.js"></script>
<canvas id="webgl-canvas"></canvas>
<script src="../vr/resources/presentation-setup.js"></script>
<script>
let fakeDisplays = fakeVRDisplays();
vr_test( (t) => {
return navigator.xr.requestDevice().then( (device) => {
runWithUserGesture( () => {
device.requestSession({ exclusive: true }).then( (session) => {
promise_test( function() {
return promise_rejects(this, new TypeError(),
session.requestFrameOfReference("foo"));
}, "requestFrameOfReference rejected for unknown requested type.");
return Promise.all([
session.requestFrameOfReference("headModel").then( (frameOfRef) => {
t.step( () => {
assert_true(frameOfRef instanceof XRCoordinateSystem);
assert_true(frameOfRef instanceof XRFrameOfReference);
}, "'headModel' Frame of Reference is the correct type.");
}, (err) => {
t.step( () => {
assert_unreached("requestFrameOfReference 'headModel' rejected");
});
}),
session.requestFrameOfReference("eyeLevel").then( (frameOfRef) => {
t.step( () => {
assert_true(frameOfRef instanceof XRCoordinateSystem);
assert_true(frameOfRef instanceof XRFrameOfReference);
}, "'eyeLevel' Frame of Reference is the correct type.");
}, (err) => {
t.step( () => {
assert_unreached("requestFrameOfReference 'eyeLevel' rejected");
});
}),
session.requestFrameOfReference("stage").then( (frameOfRef) => {
t.step( () => {
assert_true(frameOfRef instanceof XRCoordinateSystem);
assert_true(frameOfRef instanceof XRFrameOfReference);
}, "'stage' Frame of Reference is the correct type.");
}, (err) => {
t.step( () => {
assert_unreached("requestFrameOfReference 'stage' rejected");
});
})
]);
}, (err) => {
t.step( () => {
assert_unreached("requestSession rejected");
});
}).then( () => {
t.done();
});
});
}, (err) => {
t.step( () => {
assert_unreached("requestDevice rejected");
});
});
}, [fakeDisplays["Pixel"]],
"requestFrameOfReference returns the expected objects");
</script>