Esempio n. 1
0
        public IEnumerator TestMockDriverForcedStateTransition()
        {
            var states = new List <XrSessionState>();

            MockRuntime.Instance.TestCallback = (methodName, param) =>
            {
                if (methodName == nameof(OpenXRFeature.OnSessionStateChange))
                {
                    var oldState = (XrSessionState)((MockRuntime.XrSessionStateChangedParams)param).OldState;
                    var newState = (XrSessionState)((MockRuntime.XrSessionStateChangedParams)param).NewState;
                    states.Add(newState);
                }

                return(true);
            };

            AddExtension(MockRuntime.XR_UNITY_mock_test);

            base.InitializeAndStart();

            yield return(null);

            Assert.AreEqual(10, MockRuntime.Instance.XrInstance);
            Assert.AreEqual(XrSessionState.Focused, states[states.Count - 1]);

            var wait = new WaitForLoaderShutdown(Loader);

            var ret = MockDriver.TransitionToState(MockRuntime.Instance.XrSession, XrSessionState.LossPending, true) == XrResult.Success;

            Assert.IsTrue(ret);

            yield return(wait);

            Assert.AreEqual(XrSessionState.LossPending, states[states.Count - 1]);
        }
Esempio n. 2
0
        public IEnumerator TestRequestExitShutsdownSubsystems()
        {
            bool sawSessionDestroy = false;

            MockRuntime.Instance.TestCallback = (methodName, param) =>
            {
                if (methodName == nameof(OpenXRFeature.OnSessionDestroy))
                {
                    sawSessionDestroy = true;
                }

                return(true);
            };

            AddExtension(MockRuntime.XR_UNITY_mock_test);

            base.InitializeAndStart();

            yield return(null);

            Assert.IsTrue(base.IsRunning <XRDisplaySubsystem>());

            var wait = new WaitForLoaderShutdown(Loader);

            MockDriver.RequestExitSession(MockRuntime.Instance.XrSession);

            yield return(wait);

            Assert.IsTrue(sawSessionDestroy);
        }
Esempio n. 3
0
        public IEnumerator RestartAfterExitSession()
        {
            AddExtension(MockRuntime.XR_UNITY_mock_test);

            base.InitializeAndStart();

            yield return(null);

            Assert.AreEqual(OpenXRLoader.LoaderState.Started, Loader.currentLoaderState);

            var wait = new WaitForLoaderShutdown(Loader);

            MockDriver.RequestExitSession(MockRuntime.Instance.XrSession);

            yield return(wait);

            Assert.AreEqual(OpenXRLoader.LoaderState.Uninitialized, Loader.currentLoaderState);

            base.InitializeAndStart();

            yield return(null);

            Assert.AreEqual(OpenXRLoader.LoaderState.Started, Loader.currentLoaderState);
        }