Пример #1
0
        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);
        }
Пример #2
0
        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);
        }
Пример #7
0
        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);
        }
Пример #8
0
        public void IsValidForRequestThrowsIfControllerContextIsNull()
        {
            // Arrange
            AjaxOnlyAttribute attr = new AjaxOnlyAttribute();

            // Act & assert
            ExceptionHelper.ExpectArgumentNullException(
                delegate {
                attr.IsValidForRequest(null, null);
            }, "controllerContext");
        }
        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.");
        }
Пример #10
0
        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.");
        }
Пример #11
0
        public void IsValidForRequestReturnsTrueIfHeaderIsPresent()
        {
            // Arrange
            AjaxOnlyAttribute attr = new AjaxOnlyAttribute();
            ControllerContext controllerContext = GetControllerContext(containsHeader: true);

            // Act
            bool isValid = attr.IsValidForRequest(controllerContext, null);

            // Assert
            Assert.True(isValid);
        }
Пример #12
0
        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.");
        }
Пример #13
0
        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);
        }