public void OnActionExecuting_Should_SetViewResult_WhenRequestIsNotAjax() { // Arrange var request = new Mock <HttpRequestBase>(); request.SetupGet(x => x.Headers) .Returns(new WebHeaderCollection()); var expectedViewData = new ViewDataDictionary(); var controller = new Mock <ControllerBase>(); controller.Object.ViewData = expectedViewData; var sut = new AjaxOnlyAttribute(); var ctx = new Mock <ActionExecutingContext>(); ctx.SetupGet(c => c.HttpContext.Request) .Returns(request.Object); ctx.Setup(c => c.Controller) .Returns(controller.Object); // Act sut.OnActionExecuting(ctx.Object); // Assert var actual = ctx.Object.Result as ViewResult; Assert.NotNull(actual); Assert.AreSame("Error", actual.ViewName); }
public void OnActionExecuting_Should_SetViewData_WhenRequestIsNotAjax() { // Arrange var request = new Mock <HttpRequestBase>(); request.SetupGet(x => x.Headers) .Returns(new WebHeaderCollection()); var expectedViewData = new ViewDataDictionary(); var controller = new Mock <ControllerBase>(); controller.Object.ViewData = expectedViewData; var sut = new AjaxOnlyAttribute(); var ctx = new Mock <ActionExecutingContext>(); ctx.SetupGet(c => c.HttpContext.Request) .Returns(request.Object); ctx.Setup(c => c.Controller) .Returns(controller.Object); // Act sut.OnActionExecuting(ctx.Object); // Assert var actual = ctx.Object.Result as ViewResult; Assert.NotNull(actual); Assert.AreSame(expectedViewData, actual.ViewData); Assert.IsTrue(actual.ViewData.ContainsKey("ErrorMessage")); StringAssert.Contains("ensure JavaScript is enabled", (string)actual.ViewData["ErrorMessage"]); }
public void IsValidForRequestThrowsIfControllerContextIsNull() { // Arrange AjaxOnlyAttribute attr = new AjaxOnlyAttribute(); // Act & assert Assert.ThrowsArgumentNull( delegate { attr.IsValidForRequest(null, null); }, "controllerContext"); }
public void IsValidForRequest_ValidatesAjaxRequests(String headerValue, Boolean expected) { ControllerContext context = new ControllerContext(); context.HttpContext = HttpContextFactory.CreateHttpContextBase(); context.HttpContext.Request["X-Requested-With"].Returns(headerValue); Boolean actual = new AjaxOnlyAttribute().IsValidForRequest(context, null); Assert.Equal(expected, actual); }
public void IsValidForRequestThrowsIfControllerContextIsNull() { // Arrange AjaxOnlyAttribute attr = new AjaxOnlyAttribute(); // Act & assert ExceptionHelper.ExpectArgumentNullException( delegate { attr.IsValidForRequest(null, null); }, "controllerContext"); }
public void IsValidForRequest_Ajax(String headerValue, Boolean expected) { RouteContext context = new RouteContext(Substitute.For <HttpContext>()); context.HttpContext.Request.Headers["X-Requested-With"].Returns(new StringValues(headerValue)); Boolean actual = new AjaxOnlyAttribute().IsValidForRequest(context, null); Assert.Equal(expected, actual); }
public void IsValidForRequest_Ajax(String headerValue, Boolean expected) { ControllerContext context = new ControllerContext(); context.HttpContext = HttpContextFactory.CreateHttpContextBase(); context.HttpContext.Request["X-Requested-With"].Returns(headerValue); Boolean actual = new AjaxOnlyAttribute().IsValidForRequest(context, null); Assert.Equal(expected, actual); }
public void IsValidForRequestReturnsTrueIfHeaderIsPresent() { // Arrange AjaxOnlyAttribute attr = new AjaxOnlyAttribute(); ControllerContext controllerContext = GetControllerContext(containsHeader: true); // Act bool isValid = attr.IsValidForRequest(controllerContext, null); // Assert Assert.IsTrue(isValid, "If the header is present, the attribute must match the request."); }
public void IsValidForRequestReturnsFalseIfHeaderNotPresent() { // Arrange AjaxOnlyAttribute attr = new AjaxOnlyAttribute(); ControllerContext controllerContext = GetControllerContext(containsHeader: false); // Act bool isValid = attr.IsValidForRequest(controllerContext, null); // Assert Assert.IsFalse(isValid, "If the header *specifically* is not present, the attribute must decline matching the request."); }
public void IsValidForRequestReturnsTrueIfHeaderIsPresent() { // Arrange AjaxOnlyAttribute attr = new AjaxOnlyAttribute(); ControllerContext controllerContext = GetControllerContext(containsHeader: true); // Act bool isValid = attr.IsValidForRequest(controllerContext, null); // Assert Assert.True(isValid); }
public void OnActionExecuting_Should_DoNothing_WhenContextIsAjax() { // Arrange var request = new Mock <HttpRequestBase>(); request.SetupGet(x => x.Headers) .Returns( new WebHeaderCollection { { "X-Requested-With", "XMLHttpRequest" } }); var sut = new AjaxOnlyAttribute(); var ctx = new Mock <ActionExecutingContext>(); ctx.SetupGet(c => c.HttpContext.Request) .Returns(request.Object); // Act sut.OnActionExecuting(ctx.Object); // Assert Assert.IsNull(ctx.Object.Result); }