From 1f98918f1f98b2a26a625bee43a2577e13e3f967 Mon Sep 17 00:00:00 2001 From: Praburaj Date: Wed, 18 Feb 2015 11:07:28 -0800 Subject: [PATCH] PR feedback to StatusCode filter. --- .../Filters/SkipStatusCodePagesAttribute.cs | 13 +++++++---- .../SkipStatusCodePagesAttributeTest.cs | 23 +++++++------------ 2 files changed, 17 insertions(+), 19 deletions(-) diff --git a/src/Microsoft.AspNet.Mvc.Core/Filters/SkipStatusCodePagesAttribute.cs b/src/Microsoft.AspNet.Mvc.Core/Filters/SkipStatusCodePagesAttribute.cs index 6a1102550a..0b4c72e94f 100644 --- a/src/Microsoft.AspNet.Mvc.Core/Filters/SkipStatusCodePagesAttribute.cs +++ b/src/Microsoft.AspNet.Mvc.Core/Filters/SkipStatusCodePagesAttribute.cs @@ -1,6 +1,7 @@ // Copyright (c) Microsoft Open Technologies, Inc. All rights reserved. // Licensed under the Apache License, Version 2.0. See License.txt in the project root for license information. +using System; using Microsoft.AspNet.Diagnostics; namespace Microsoft.AspNet.Mvc @@ -8,10 +9,16 @@ namespace Microsoft.AspNet.Mvc /// /// Filter to prevent StatusCodePages middleware to handle responses. /// - public class SkipStatusCodePagesAttribute : ResultFilterAttribute + [AttributeUsage(AttributeTargets.Class | AttributeTargets.Method, AllowMultiple = false, Inherited = true)] + public class SkipStatusCodePagesAttribute : Attribute, IResourceFilter { /// - public override void OnResultExecuted(ResultExecutedContext context) + public void OnResourceExecuted([NotNull]ResourceExecutedContext context) + { + } + + /// + public void OnResourceExecuting([NotNull]ResourceExecutingContext context) { var statusCodeFeature = context.HttpContext.GetFeature(); if (statusCodeFeature != null) @@ -19,8 +26,6 @@ namespace Microsoft.AspNet.Mvc // Turn off the StatusCodePages feature. statusCodeFeature.Enabled = false; } - - base.OnResultExecuted(context); } } } \ No newline at end of file diff --git a/test/Microsoft.AspNet.Mvc.Core.Test/Filters/SkipStatusCodePagesAttributeTest.cs b/test/Microsoft.AspNet.Mvc.Core.Test/Filters/SkipStatusCodePagesAttributeTest.cs index 5266a1eac8..542888c881 100644 --- a/test/Microsoft.AspNet.Mvc.Core.Test/Filters/SkipStatusCodePagesAttributeTest.cs +++ b/test/Microsoft.AspNet.Mvc.Core.Test/Filters/SkipStatusCodePagesAttributeTest.cs @@ -15,12 +15,12 @@ namespace Microsoft.AspNet.Mvc.Core.Test { // Arrange var skipStatusCodeAttribute = new SkipStatusCodePagesAttribute(); - var resultExecutingContext = CreateResultExecutingContext(new IFilter[] { skipStatusCodeAttribute }); + var resourceExecutingContext = CreateResourceExecutingContext(new IFilter[] { skipStatusCodeAttribute }); var statusCodePagesFeature = new TestStatusCodeFeature(); - resultExecutingContext.HttpContext.SetFeature(statusCodePagesFeature); + resourceExecutingContext.HttpContext.SetFeature(statusCodePagesFeature); // Act - skipStatusCodeAttribute.OnResultExecuted(CreateResultExecutedContext(resultExecutingContext)); + skipStatusCodeAttribute.OnResourceExecuting(resourceExecutingContext); // Assert Assert.False(statusCodePagesFeature.Enabled); @@ -31,24 +31,17 @@ namespace Microsoft.AspNet.Mvc.Core.Test { // Arrange var skipStatusCodeAttribute = new SkipStatusCodePagesAttribute(); - var resultExecutingContext = CreateResultExecutingContext(new IFilter[] { skipStatusCodeAttribute }); + var resourceExecutingContext = CreateResourceExecutingContext(new IFilter[] { skipStatusCodeAttribute }); // Act - skipStatusCodeAttribute.OnResultExecuted(CreateResultExecutedContext(resultExecutingContext)); + skipStatusCodeAttribute.OnResourceExecuting(resourceExecutingContext); } - private static ResultExecutedContext CreateResultExecutedContext(ResultExecutingContext context) + private static ResourceExecutingContext CreateResourceExecutingContext(IFilter[] filters) { - return new ResultExecutedContext(context, context.Filters, context.Result, context.Controller); - } - - private static ResultExecutingContext CreateResultExecutingContext(IFilter[] filters) - { - return new ResultExecutingContext( + return new ResourceExecutingContext( CreateActionContext(), - filters, - new ObjectResult("Some Value"), - controller: new object()); + filters); } private static ActionContext CreateActionContext()