public IEnumerator DraggingFromPortCreateGhostEdge() { var nodeModel = GraphModel.CreateNode <SingleOutputNodeModel>(); MarkGraphViewStateDirty(); yield return(null); var portModel = nodeModel.Ports.First(); var port = portModel.GetUI <Port>(GraphView); Assert.IsNotNull(port); Assert.IsNull(port.EdgeConnector.edgeDragHelper.edgeCandidateModel); var portConnector = port.SafeQ(PortConnectorPart.connectorUssName); var clickPosition = portConnector.parent.LocalToWorld(portConnector.layout.center); Vector2 move = new Vector2(0, 100); EventHelper.DragToNoRelease(clickPosition, clickPosition + move); yield return(null); // edgeCandidateModel != null is the sign that we have a ghost edge Assert.IsNotNull(port.EdgeConnector.edgeDragHelper.edgeCandidateModel); EventHelper.MouseUpEvent(clickPosition + move); yield return(null); }