Exemplo n.º 1
0
        public void OnResultExecuted_Should_Compress_Response(string encoding)
        {
            HttpContextMock       httpContext       = MvcTestHelper.GetHttpContext();
            ControllerContext     controllerContext = new ControllerContext(httpContext.Object, new RouteData(), new Mock <ControllerBase>().Object);
            ResultExecutedContext executedContext   = new ResultExecutedContext(controllerContext, new EmptyResult(), false, null);

            httpContext.HttpRequest.Object.Headers.Add("Accept-Encoding", encoding);

            if (!string.IsNullOrEmpty(encoding))
            {
                httpContext.HttpResponse.SetupGet(r => r.Filter).Returns(new MemoryStream());
                httpContext.HttpResponse.Setup(r => r.AppendHeader(It.IsAny <string>(), It.IsAny <string>())).Verifiable();
                httpContext.HttpResponse.SetupSet(r => r.Filter = It.IsAny <Stream>());
            }

            _attribute.OnResultExecuted(executedContext);

            if (!string.IsNullOrEmpty(encoding))
            {
                httpContext.Verify();
            }
        }
Exemplo n.º 2
0
        public void Should_not_compress_when_action_is_canceled()
        {
            var httpContext       = new Mock <HttpContextBase>();
            var requestContext    = new RequestContext(httpContext.Object, new RouteData());
            var controllerContext = new ControllerContext(requestContext, new Mock <ControllerBase>().Object);
            var resultContext     = new ResultExecutedContext(controllerContext, new Mock <ActionResult>().Object, true, null);

            var attribute = new CompressAttribute();

            httpContext.Setup(c => c.Response.AppendHeader(It.IsAny <string>(), It.IsAny <string>()));

            attribute.OnResultExecuted(resultContext);

            httpContext.Verify(c => c.Response.AppendHeader(It.IsAny <string>(), It.IsAny <string>()), Times.Never());
        }
Exemplo n.º 3
0
        public void Should_not_compress_when_exception_occurrs_and_exception_is_not_handled()
        {
            var httpContext       = new Mock <HttpContextBase>();
            var requestContext    = new RequestContext(httpContext.Object, new RouteData());
            var controllerContext = new ControllerContext(requestContext, new Mock <ControllerBase>().Object);
            var resultContext     = new ResultExecutedContext(controllerContext, new Mock <ActionResult>().Object, false, new InvalidOperationException());

            var attribute = new CompressAttribute();

            httpContext.Setup(c => c.Response.AppendHeader(It.IsAny <string>(), It.IsAny <string>()));

            attribute.OnResultExecuted(resultContext);

            httpContext.Verify(c => c.Response.AppendHeader(It.IsAny <string>(), It.IsAny <string>()), Times.Never());
        }
Exemplo n.º 4
0
        public void OnResultExecuted_ExceptionUnhandled()
        {
            // Arrange
            var filter = m_filterContext.HttpContext.Response.Filter;

            m_filterContext.Exception        = new InvalidOperationException();
            m_filterContext.ExceptionHandled = false;
            var attr = new CompressAttribute();

            // Act
            attr.OnResultExecuted(m_filterContext);

            // Assert
            var filterAfter = m_filterContext.HttpContext.Response.Filter;

            Assert.Same(filter, filterAfter);
        }
Exemplo n.º 5
0
        public void OnResultExecuted_Deflate()
        {
            // Arrange
            var headers = m_filterContext.HttpContext.Request.Headers;

            headers.Add("Accept-Encoding", "deflate");
            var filter = m_filterContext.HttpContext.Response.Filter;

            Assert.IsNotType <DeflateStream>(filter);
            var attr = new CompressAttribute();

            // Act
            attr.OnResultExecuted(m_filterContext);

            // Assert
            filter = m_filterContext.HttpContext.Response.Filter;
            Assert.NotNull(filter);
            Assert.IsType <DeflateStream>(filter);
        }
Exemplo n.º 6
0
        public void Should_not_compress_for_child_action()
        {
            var httpContext = new Mock<HttpContextBase>();

            var routeData = new RouteData();
            routeData.DataTokens.Add("ParentActionViewContext", new object());

            var requestContext = new RequestContext(httpContext.Object, routeData);
            var controllerContext = new ControllerContext(requestContext, new Mock<ControllerBase>().Object);
            var resultContext = new ResultExecutedContext(controllerContext, new Mock<ActionResult>().Object, false, null);

            var attribute = new CompressAttribute();

            httpContext.Setup(c => c.Response.AppendHeader(It.IsAny<string>(), It.IsAny<string>()));

            attribute.OnResultExecuted(resultContext);

            httpContext.Verify(c => c.Response.AppendHeader(It.IsAny<string>(), It.IsAny<string>()), Times.Never());
        }
Exemplo n.º 7
0
        public void Should_not_compress_for_child_action()
        {
            var httpContext = new Mock <HttpContextBase>();

            var routeData = new RouteData();

            routeData.DataTokens.Add("ParentActionViewContext", new object());

            var requestContext    = new RequestContext(httpContext.Object, routeData);
            var controllerContext = new ControllerContext(requestContext, new Mock <ControllerBase>().Object);
            var resultContext     = new ResultExecutedContext(controllerContext, new Mock <ActionResult>().Object, false, null);

            var attribute = new CompressAttribute();

            httpContext.Setup(c => c.Response.AppendHeader(It.IsAny <string>(), It.IsAny <string>()));

            attribute.OnResultExecuted(resultContext);

            httpContext.Verify(c => c.Response.AppendHeader(It.IsAny <string>(), It.IsAny <string>()), Times.Never());
        }
Exemplo n.º 8
0
        public void Should_be_able_to_compress()
        {
            var httpContext = new Mock<HttpContextBase>();
            var requestContext = new RequestContext(httpContext.Object, new RouteData());
            var controllerContext = new ControllerContext(requestContext, new Mock<ControllerBase>().Object);
            var resultContext = new ResultExecutedContext(controllerContext, new Mock<ActionResult>().Object, false, null);

            httpContext.SetupGet(c => c.Request.Browser.MajorVersion).Returns(7);
            httpContext.SetupGet(c => c.Request.Headers).Returns(new NameValueCollection { { "Accept-Encoding", "*, deflate, gzip" } });
            httpContext.SetupGet(c => c.Response.Filter).Returns(new MemoryStream());

            var attribute = new CompressAttribute();

            httpContext.Setup(c => c.Response.AppendHeader("Content-encoding", "gzip")).Verifiable();
            httpContext.SetupSet(c => c.Response.Filter).Verifiable();

            attribute.OnResultExecuted(resultContext);

            httpContext.Verify();
        }
Exemplo n.º 9
0
        public void Should_be_able_to_compress()
        {
            var httpContext       = new Mock <HttpContextBase>();
            var requestContext    = new RequestContext(httpContext.Object, new RouteData());
            var controllerContext = new ControllerContext(requestContext, new Mock <ControllerBase>().Object);
            var resultContext     = new ResultExecutedContext(controllerContext, new Mock <ActionResult>().Object, false, null);

            httpContext.SetupGet(c => c.Request.Browser.MajorVersion).Returns(7);
            httpContext.SetupGet(c => c.Request.Headers).Returns(new NameValueCollection {
                { "Accept-Encoding", "*, deflate, gzip" }
            });
            httpContext.SetupGet(c => c.Response.Filter).Returns(new MemoryStream());

            var attribute = new CompressAttribute();

            httpContext.Setup(c => c.Response.AppendHeader("Content-encoding", "gzip")).Verifiable();
            httpContext.SetupSet(c => c.Response.Filter).Verifiable();

            attribute.OnResultExecuted(resultContext);

            httpContext.Verify();
        }
Exemplo n.º 10
0
        public void Should_not_compress_when_exception_occurrs_and_exception_is_not_handled()
        {
            var httpContext = new Mock<HttpContextBase>();
            var requestContext = new RequestContext(httpContext.Object, new RouteData());
            var controllerContext = new ControllerContext(requestContext, new Mock<ControllerBase>().Object);
            var resultContext = new ResultExecutedContext(controllerContext, new Mock<ActionResult>().Object, false, new InvalidOperationException());

            var attribute = new CompressAttribute();

            httpContext.Setup(c => c.Response.AppendHeader(It.IsAny<string>(), It.IsAny<string>()));

            attribute.OnResultExecuted(resultContext);

            httpContext.Verify(c => c.Response.AppendHeader(It.IsAny<string>(), It.IsAny<string>()), Times.Never());
        }
Exemplo n.º 11
0
        public void Should_not_compress_when_action_is_canceled()
        {
            var httpContext = new Mock<HttpContextBase>();
            var requestContext = new RequestContext(httpContext.Object, new RouteData());
            var controllerContext = new ControllerContext(requestContext, new Mock<ControllerBase>().Object);
            var resultContext = new ResultExecutedContext(controllerContext, new Mock<ActionResult>().Object, true, null);

            var attribute = new CompressAttribute();

            httpContext.Setup(c => c.Response.AppendHeader(It.IsAny<string>(), It.IsAny<string>()));

            attribute.OnResultExecuted(resultContext);

            httpContext.Verify(c => c.Response.AppendHeader(It.IsAny<string>(), It.IsAny<string>()), Times.Never());
        }