| <!DOCTYPE html> | |
| <body> | |
| <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> | |
| 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 = TRACKED_IMMERSIVE_DEVICE; | |
| 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); | |
| let eventSession = event.session; | |
| assert_equals(eventSession, event.session, | |
| "XRSessionEvent.session returns the same object."); | |
| session.dispatchEvent(watcherDone); | |
| }); | |
| } | |
| session.addEventListener("end", onSessionEnd, false); | |
| session.end(); | |
| return eventPromise; | |
| }; | |
| xr_session_promise_test(immersivetestName, testFunction, | |
| fakeDeviceInitParams, 'immersive-vr'); | |
| xr_session_promise_test(nonimmersiveTestName, testFunction, | |
| fakeDeviceInitParams, 'inline'); | |
| </script> | |
| </body> |