public static IEnumerator TestUIClickEventPropagation(string sceneId, string eventUuid, RectTransform uiObject, System.Action <bool> callback) { // We need to populate the event data with the 'pointerPressRaycast' pointing to the 'clicked' object PointerEventData pointerEventData = new PointerEventData(EventSystem.current); RaycastResult raycastResult = new RaycastResult(); raycastResult.gameObject = uiObject.gameObject; pointerEventData.pointerPressRaycast = raycastResult; string targetEventType = "SceneEvent"; var onClickEvent = new WebInterface.OnClickEvent(); onClickEvent.uuid = eventUuid; var sceneEvent = new WebInterface.SceneEvent <WebInterface.OnClickEvent>(); sceneEvent.sceneId = sceneId; sceneEvent.payload = onClickEvent; sceneEvent.eventType = "uuidEvent"; string eventJSON = JsonUtility.ToJson(sceneEvent); bool eventTriggered = false; yield return(TestHelpers.WaitForMessageFromEngine(targetEventType, eventJSON, () => { ExecuteEvents.ExecuteHierarchy(raycastResult.gameObject, pointerEventData, ExecuteEvents.pointerDownHandler); }, () => { eventTriggered = true; })); yield return(null); // Callback! if (callback != null) { callback(eventTriggered); } }
public IEnumerator TestOnClickEvent() { yield return(InputTextCreate()); //------------------------------------------------------------------------ // Test click events TMPro.TMP_InputField inputField = textInput.referencesContainer.inputField; string targetEventType = "SceneEvent"; var onClickEvent = new WebInterface.OnClickEvent(); onClickEvent.uuid = textInput.model.onClick; var sceneEvent = new WebInterface.SceneEvent <WebInterface.OnClickEvent>(); sceneEvent.sceneId = scene.sceneData.id; sceneEvent.payload = onClickEvent; sceneEvent.eventType = "uuidEvent"; string eventJSON = JsonUtility.ToJson(sceneEvent); bool eventTriggered = false; yield return(TestHelpers.WaitForMessageFromEngine(targetEventType, eventJSON, () => { UnityEngine.EventSystems.EventSystem.current.SetSelectedGameObject(inputField.gameObject, null); inputField.ActivateInputField(); inputField.Select(); }, () => { eventTriggered = true; })); yield return(null); Assert.IsTrue(eventTriggered); }