| <!DOCTYPE html> |
| <body> |
| <script src=/resources/testharness.js></script> |
| <script src=/resources/testharnessreport.js></script> |
| <script src="resources/webxr_util.js"></script> |
| <canvas></canvas> |
| |
| <script> |
| const immersivetestName = "end event fires when immersive session ends"; |
| const nonimmersiveTestName = "end event fires when non-immersive session ends"; |
| let watcherDone = new Event("watcherdone"); |
| const fakeDeviceInitParams = { supportsImmersive:true }; |
| |
| const immersiveSessionOptions = { immersive: true }; |
| const nonImmersiveSessionOptions = { outputContext: getOutputContext() }; |
| |
| let testFunction = function(session, testDeviceController, t) { |
| let eventWatcher = new EventWatcher(t, session, ["end", "watcherdone"]); |
| let eventPromise = eventWatcher.wait_for(["end", "watcherdone"]); |
| |
| function onSessionEnd(event) { |
| t.step( () => { |
| assert_equals(event.session, session); |
| session.dispatchEvent(watcherDone); |
| }); |
| } |
| session.addEventListener("end", onSessionEnd, false); |
| session.end(); |
| |
| return eventPromise; |
| }; |
| |
| xr_session_promise_test(immersivetestName, testFunction, |
| fakeDeviceInitParams, immersiveSessionOptions); |
| xr_session_promise_test(nonimmersiveTestName, testFunction, |
| fakeDeviceInitParams, nonImmersiveSessionOptions); |
| </script> |
| </body> |