Esempio n. 1
0
 protected void Application_Error(Object sender, EventArgs e)
 {
     //disable compression (if enabled). More info - http://stackoverflow.com/questions/3960707/asp-net-mvc-weird-characters-in-error-page
     CompressAttribute.DisableCompression(HttpContext.Current);
     //log error
     LogException(Server.GetLastError());
 }
Esempio n. 2
0
 public override void ReflectMethod()
 {
     object[] ats = ReflectionContext.Method.MethodInfo.GetCustomAttributes(typeof(CompressAttribute), true);
     if (ats.Length > 0)
     {
         CompressAttribute        at        = (CompressAttribute)ats[0];
         CompressOperationBinding opBinding = new CompressOperationBinding();
         opBinding.MinLength = at.MinLength;
         ReflectionContext.OperationBinding.Extensions.Add(opBinding);
     }
 }
Esempio 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());
        }
Esempio n. 4
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());
        }
Esempio n. 5
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);
        }
Esempio n. 6
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);
        }
Esempio 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());
        }
Esempio n. 8
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());
        }
Esempio 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();
        }
Esempio n. 10
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();
        }
Esempio n. 11
0
 public CompressAttributeFixture()
 {
     _attribute = new CompressAttribute();
 }
Esempio n. 12
0
        protected void Application_Error(Object sender, EventArgs e)
        {
            CompressAttribute.DisableCompression(HttpContext.Current);

            LogException(Server.GetLastError());
        }
Esempio n. 13
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());
        }
Esempio n. 14
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());
        }