public async void SendReplyLeavesSocketOpen() { var page = new MyPage(); var document = new Document(page, BaseModeController.DefaultKeepAliveInterval); document.ServerEventsOn(); var post = new Mock <PostEventContext>(Context.Application, Context.Http); post.Object.Document = document; var parameters = new EventParameters { EventName = GlobalConstants.ServerSideEvent, }; post.Object.Parameters = parameters; var http = new Mock <HttpContext>(); var ws = new Mock <WebSocketManager>(); http.Setup(x => x.WebSockets).Returns(ws.Object); ws.Setup(x => x.IsWebSocketRequest).Returns(true); post.Object.Http = http.Object; post.Setup(x => x.GetSocketCompletion()).Returns(CompletionResult); await PostEventHandler.SendReply(post.Object, "lala"); post.Verify(x => x.GetSocketCompletion()); }
public async void StatusCodeExceptionProcessed() { var element = Element.Create("div"); element.On("click", () => throw new StatusCodeException(HttpStatusCode.Forbidden)); var http = new Mock <HttpContext>(); var post = new PostEventContext(Context.Application, http.Object) { Element = element, Parameters = new EventParameters { EventName = "click" } }; var response = new Mock <HttpResponse>(); response.SetupProperty(x => x.StatusCode); http.Setup(x => x.Response).Returns(response.Object); post.Http = http.Object; var headers = new Mock <IHeaderDictionary>(); response.Setup(x => x.Headers).Returns(headers.Object); var body = new Mock <Stream>(); response.Setup(x => x.Body).Returns(body.Object); await PostEventHandler.RunEventHandler(post); Assert.Equal((int)HttpStatusCode.Forbidden, response.Object.StatusCode); }
public async void PostEventHandlerNoElement() { var http = new Mock <HttpContext>(); var page = new MyPage(); var document = new Document(page, BaseModeController.DefaultKeepAliveInterval); var context = new PostEventContext(Context.Application, http.Object) { Document = document, Parameters = new EventParameters { ElementId = "aaa" } }; var sockets = new Mock <WebSocketManager>(); http.Setup(x => x.WebSockets).Returns(sockets.Object); var response = new Mock <HttpResponse>(); http.Setup(x => x.Response).Returns(response.Object); response.SetupProperty(x => x.StatusCode); var headers = new Mock <IHeaderDictionary>(); response.Setup(x => x.Headers).Returns(headers.Object); var body = new Mock <Stream>(); response.Setup(x => x.Body).Returns(body.Object); await PostEventHandler.ProcessRequestDocument(context); var code = response.Object.StatusCode; Assert.True(code == 200 || code == 0); }
public void EmptyArraySegment() { var x = PostEventHandler.BuildArraySegment(""); Assert.NotNull(x.Array); Assert.Empty(x.Array); }
public async void ConnectionNotFoundSendsReload() { var http = new Mock <HttpContext>(); var request = new Mock <HttpRequest>(); var cookies = new Mock <IRequestCookieCollection>(); var response = new Mock <HttpResponse>(); var headers = new Mock <IHeaderDictionary>(); var body = new Mock <Stream>(); var sockets = new Mock <WebSocketManager>(); http.Setup(x => x.Request).Returns(request.Object); http.Setup(x => x.Response).Returns(response.Object); http.Setup(x => x.WebSockets).Returns(sockets.Object); request.Setup(x => x.Method).Returns("POST"); request.Setup(x => x.Path).Returns("/_event"); request.Setup(x => x.Cookies).Returns(cookies.Object); response.Setup(x => x.Headers).Returns(headers.Object); response.Setup(x => x.Body).Returns(body.Object); sockets.Setup(x => x.IsWebSocketRequest).Returns(false); var query = new MyQueryCollection(); request.Setup(x => x.Query).Returns(query); query.Add("doc", "EF2FF98720E34A2EA29E619977A5F04A"); query.Add("el", "lala"); query.Add("ev", "lala"); var next = new Mock <RequestDelegate>(); var handler = new PostEventHandler(Context.Application, next.Object); var result = await handler.ProcessRequest(http.Object); Assert.True(result); }
public void ProcessMessageSkipsEmptyMessage() { var http = new Mock <HttpContext>(); var cx = new Connection(Guid.NewGuid(), IPAddress.Loopback); var context = new PageContext(Context.Application, http.Object, cx); var parameters = new EventParameters(); PostEventHandler.ProcessMessageIfNeeded(context, parameters); }
public async void PostEventHandlerSkipsRequests() { var http = new Mock <HttpContext>(); var next = new Mock <RequestDelegate>(); var post = new PostEventHandler(Context.Application, next.Object); var request = new Mock <HttpRequest>(); http.Setup(x => x.Request).Returns(request.Object); request.Setup(x => x.Path).Returns(PostEventHandler.EventPrefix); request.Setup(x => x.Method).Returns("LALA"); var websockets = new Mock <WebSocketManager>(); http.Setup(x => x.WebSockets).Returns(websockets.Object); Assert.False(await post.ProcessRequest(http.Object)); }
public async void ProcessAjaxBadParameters() { var http = new Mock <HttpContext>(); var request = new Mock <HttpRequest>(); var response = new Mock <HttpResponse>(); var query = new Mock <IQueryCollection>(); var headers = new Mock <IHeaderDictionary>(); http.Setup(x => x.Request).Returns(request.Object); request.Setup(x => x.Query).Returns(query.Object); StringValues values; query.Setup(x => x.TryGetValue("doc", out values)).Returns(false); response.SetupProperty(x => x.StatusCode); http.Setup(x => x.Response).Returns(response.Object); response.Setup(x => x.Headers).Returns(headers.Object); var body = new Mock <Stream>(); response.Setup(x => x.Body).Returns(body.Object); await PostEventHandler.ProcessAjaxRequest(Context.Application, http.Object); }