Changed the abstract class Rule to an interface IRule. Renamed the RuleTermination enum to RuleResult and renamed the values

This commit is contained in:
Mikael Mengistu 2016-09-21 12:31:36 -07:00 committed by GitHub
parent d2fb2cd776
commit ead052324c
27 changed files with 67 additions and 68 deletions

View File

@ -4,17 +4,17 @@
namespace Microsoft.AspNetCore.Rewrite namespace Microsoft.AspNetCore.Rewrite
{ {
/// <summary> /// <summary>
/// Represents an abstract rule. /// Represents a rule.
/// </summary> /// </summary>
public abstract class Rule public interface IRule
{ {
/// <summary> /// <summary>
/// Applies the rule. /// Applies the rule.
/// Implementations of ApplyRule should set the value for <see cref="RewriteContext.Result"/> /// Implementations of ApplyRule should set the value for <see cref="RewriteContext.Result"/>
/// (defaults to <see cref="RuleTermination.Continue"/> ) /// (defaults to RuleResult.ContinueRules)
/// </summary> /// </summary>
/// <param name="context"></param> /// <param name="context"></param>
public abstract void ApplyRule(RewriteContext context); void ApplyRule(RewriteContext context);
} }
} }

View File

@ -6,7 +6,7 @@ using Microsoft.AspNetCore.Rewrite.Logging;
namespace Microsoft.AspNetCore.Rewrite.Internal.ApacheModRewrite namespace Microsoft.AspNetCore.Rewrite.Internal.ApacheModRewrite
{ {
public class ApacheModRewriteRule : Rule public class ApacheModRewriteRule : IRule
{ {
public UrlMatch InitialMatch { get; } public UrlMatch InitialMatch { get; }
public IList<Condition> Conditions { get; } public IList<Condition> Conditions { get; }
@ -19,7 +19,7 @@ namespace Microsoft.AspNetCore.Rewrite.Internal.ApacheModRewrite
Actions = urlActions; Actions = urlActions;
} }
public override void ApplyRule(RewriteContext context) public virtual void ApplyRule(RewriteContext context)
{ {
// 1. Figure out which section of the string to match for the initial rule. // 1. Figure out which section of the string to match for the initial rule.
var initMatchRes = InitialMatch.Evaluate(context.HttpContext.Request.Path, context); var initMatchRes = InitialMatch.Evaluate(context.HttpContext.Request.Path, context);

View File

@ -9,10 +9,10 @@ namespace Microsoft.AspNetCore.Rewrite.Internal.ApacheModRewrite
{ {
public class FileParser public class FileParser
{ {
public IList<Rule> Parse(TextReader input) public IList<IRule> Parse(TextReader input)
{ {
string line; string line;
var rules = new List<Rule>(); var rules = new List<IRule>();
var builder = new RuleBuilder(); var builder = new RuleBuilder();
var lineNum = 0; var lineNum = 0;

View File

@ -210,7 +210,7 @@ namespace Microsoft.AspNetCore.Rewrite.Internal.ApacheModRewrite
else else
{ {
var last = flags.HasFlag(FlagType.End) || flags.HasFlag(FlagType.Last); var last = flags.HasFlag(FlagType.End) || flags.HasFlag(FlagType.Last);
var termination = last ? RuleTermination.StopRules : RuleTermination.Continue; var termination = last ? RuleResult.SkipRemainingRules : RuleResult.ContinueRules;
_actions.Add(new RewriteAction(termination, pattern, queryStringAppend, queryStringDelete, escapeBackReference)); _actions.Add(new RewriteAction(termination, pattern, queryStringAppend, queryStringDelete, escapeBackReference));
} }
} }

View File

@ -5,7 +5,7 @@ using System;
namespace Microsoft.AspNetCore.Rewrite.Internal namespace Microsoft.AspNetCore.Rewrite.Internal
{ {
public class DelegateRule : Rule public class DelegateRule : IRule
{ {
private readonly Action<RewriteContext> _onApplyRule; private readonly Action<RewriteContext> _onApplyRule;
@ -13,6 +13,6 @@ namespace Microsoft.AspNetCore.Rewrite.Internal
{ {
_onApplyRule = onApplyRule; _onApplyRule = onApplyRule;
} }
public override void ApplyRule(RewriteContext context) => _onApplyRule(context); public void ApplyRule(RewriteContext context) => _onApplyRule(context);
} }
} }

View File

@ -7,7 +7,7 @@ using Microsoft.AspNetCore.Rewrite.Logging;
namespace Microsoft.AspNetCore.Rewrite.Internal.IISUrlRewrite namespace Microsoft.AspNetCore.Rewrite.Internal.IISUrlRewrite
{ {
public class IISUrlRewriteRule : Rule public class IISUrlRewriteRule : IRule
{ {
public string Name { get; } public string Name { get; }
public UrlMatch InitialMatch { get; } public UrlMatch InitialMatch { get; }
@ -25,7 +25,7 @@ namespace Microsoft.AspNetCore.Rewrite.Internal.IISUrlRewrite
Action = action; Action = action;
} }
public override void ApplyRule(RewriteContext context) public virtual void ApplyRule(RewriteContext context)
{ {
// Due to the path string always having a leading slash, // Due to the path string always having a leading slash,
// remove it from the path before regex comparison // remove it from the path before regex comparison

View File

@ -14,7 +14,7 @@ namespace Microsoft.AspNetCore.Rewrite.Internal.IISUrlRewrite
private const char CloseBrace = '}'; private const char CloseBrace = '}';
/// <summary> /// <summary>
/// Creates a pattern, which is a template to create a new test string to /// Creates a pattern, which is a template to create a new test string to
/// compare to the condition. Can contain server variables, back references, etc. /// compare to the condition. Can contain server variables, back references, etc.
/// </summary> /// </summary>
/// <param name="testString"></param> /// <param name="testString"></param>
@ -64,7 +64,7 @@ namespace Microsoft.AspNetCore.Rewrite.Internal.IISUrlRewrite
context.Mark(); context.Mark();
// Four main cases: // Four main cases:
// 1. {NAME} - Server Variable, create lambda to get the part of the context // 1. {NAME} - Server Variable, create lambda to get the part of the context
// 2. {R:1} - Rule parameter // 2. {R:1} - IRule parameter
// 3. {C:1} - Condition Parameter // 3. {C:1} - Condition Parameter
// 4. {function:xxx} - String function // 4. {function:xxx} - String function
// (unless we support Reload) // (unless we support Reload)

View File

@ -22,7 +22,7 @@ namespace Microsoft.AspNetCore.Rewrite.Internal.IISUrlRewrite
if (xmlRoot != null) if (xmlRoot != null)
{ {
var result = new List<IISUrlRewriteRule>(); var result = new List<IISUrlRewriteRule>();
// TODO Global rules are currently not treated differently than normal rules, fix. // TODO Global rules are currently not treated differently than normal rules, fix.
// See: https://github.com/aspnet/BasicMiddleware/issues/59 // See: https://github.com/aspnet/BasicMiddleware/issues/59
ParseRules(xmlRoot.Descendants(RewriteTags.GlobalRules).FirstOrDefault(), result); ParseRules(xmlRoot.Descendants(RewriteTags.GlobalRules).FirstOrDefault(), result);
ParseRules(xmlRoot.Descendants(RewriteTags.Rules).FirstOrDefault(), result); ParseRules(xmlRoot.Descendants(RewriteTags.Rules).FirstOrDefault(), result);

View File

@ -42,10 +42,10 @@ namespace Microsoft.AspNetCore.Rewrite.Internal.IISUrlRewrite
switch (actionType) switch (actionType)
{ {
case ActionType.None: case ActionType.None:
_action = new VoidAction(stopProcessing ? RuleTermination.StopRules : RuleTermination.Continue); _action = new VoidAction(stopProcessing ? RuleResult.SkipRemainingRules : RuleResult.ContinueRules);
break; break;
case ActionType.Rewrite: case ActionType.Rewrite:
_action = new RewriteAction(stopProcessing ? RuleTermination.StopRules : RuleTermination.Continue, _action = new RewriteAction(stopProcessing ? RuleResult.SkipRemainingRules : RuleResult.ContinueRules,
url, appendQueryString); url, appendQueryString);
break; break;
case ActionType.Redirect: case ActionType.Redirect:

View File

@ -8,7 +8,7 @@ using Microsoft.Net.Http.Headers;
namespace Microsoft.AspNetCore.Rewrite.Internal namespace Microsoft.AspNetCore.Rewrite.Internal
{ {
public class RedirectRule : Rule public class RedirectRule : IRule
{ {
private readonly TimeSpan _regexTimeout = TimeSpan.FromSeconds(1); private readonly TimeSpan _regexTimeout = TimeSpan.FromSeconds(1);
public Regex InitialMatch { get; } public Regex InitialMatch { get; }
@ -31,7 +31,7 @@ namespace Microsoft.AspNetCore.Rewrite.Internal
StatusCode = statusCode; StatusCode = statusCode;
} }
public override void ApplyRule(RewriteContext context) public virtual void ApplyRule(RewriteContext context)
{ {
var path = context.HttpContext.Request.Path; var path = context.HttpContext.Request.Path;
var pathBase = context.HttpContext.Request.PathBase; var pathBase = context.HttpContext.Request.PathBase;
@ -52,7 +52,7 @@ namespace Microsoft.AspNetCore.Rewrite.Internal
var response = context.HttpContext.Response; var response = context.HttpContext.Response;
response.StatusCode = StatusCode; response.StatusCode = StatusCode;
context.Result = RuleTermination.ResponseComplete; context.Result = RuleResult.EndResponse;
if (string.IsNullOrEmpty(newPath)) if (string.IsNullOrEmpty(newPath))
{ {

View File

@ -6,12 +6,12 @@ using Microsoft.AspNetCore.Http;
namespace Microsoft.AspNetCore.Rewrite.Internal namespace Microsoft.AspNetCore.Rewrite.Internal
{ {
public class RedirectToHttpsRule : Rule public class RedirectToHttpsRule : IRule
{ {
public int? SSLPort { get; set; } public int? SSLPort { get; set; }
public int StatusCode { get; set; } public int StatusCode { get; set; }
public override void ApplyRule(RewriteContext context) public virtual void ApplyRule(RewriteContext context)
{ {
if (!context.HttpContext.Request.IsHttps) if (!context.HttpContext.Request.IsHttps)
{ {
@ -31,7 +31,7 @@ namespace Microsoft.AspNetCore.Rewrite.Internal
var newUrl = new StringBuilder().Append("https://").Append(host).Append(req.PathBase).Append(req.Path).Append(req.QueryString); var newUrl = new StringBuilder().Append("https://").Append(host).Append(req.PathBase).Append(req.Path).Append(req.QueryString);
context.HttpContext.Response.Redirect(newUrl.ToString()); context.HttpContext.Response.Redirect(newUrl.ToString());
context.Result = RuleTermination.ResponseComplete; context.Result = RuleResult.EndResponse;
} }
} }
} }

View File

@ -8,7 +8,7 @@ using Microsoft.AspNetCore.Http.Extensions;
namespace Microsoft.AspNetCore.Rewrite.Internal namespace Microsoft.AspNetCore.Rewrite.Internal
{ {
public class RewriteRule : Rule public class RewriteRule : IRule
{ {
private readonly TimeSpan _regexTimeout = TimeSpan.FromSeconds(1); private readonly TimeSpan _regexTimeout = TimeSpan.FromSeconds(1);
public Regex InitialMatch { get; } public Regex InitialMatch { get; }
@ -31,7 +31,7 @@ namespace Microsoft.AspNetCore.Rewrite.Internal
StopProcessing = stopProcessing; StopProcessing = stopProcessing;
} }
public override void ApplyRule(RewriteContext context) public virtual void ApplyRule(RewriteContext context)
{ {
var path = context.HttpContext.Request.Path; var path = context.HttpContext.Request.Path;
Match initMatchResults; Match initMatchResults;
@ -51,7 +51,7 @@ namespace Microsoft.AspNetCore.Rewrite.Internal
if (StopProcessing) if (StopProcessing)
{ {
context.Result = RuleTermination.StopRules; context.Result = RuleResult.SkipRemainingRules;
} }
if (string.IsNullOrEmpty(result)) if (string.IsNullOrEmpty(result))

View File

@ -10,7 +10,7 @@ namespace Microsoft.AspNetCore.Rewrite.Internal.UrlActions
public override void ApplyAction(RewriteContext context, MatchResults ruleMatch, MatchResults condMatch) public override void ApplyAction(RewriteContext context, MatchResults ruleMatch, MatchResults condMatch)
{ {
context.HttpContext.Response.StatusCode = StatusCodes.Status403Forbidden; context.HttpContext.Response.StatusCode = StatusCodes.Status403Forbidden;
context.Result = RuleTermination.ResponseComplete; context.Result = RuleResult.EndResponse;
} }
} }
} }

View File

@ -10,7 +10,7 @@ namespace Microsoft.AspNetCore.Rewrite.Internal.UrlActions
public override void ApplyAction(RewriteContext context, MatchResults ruleMatch, MatchResults condMatch) public override void ApplyAction(RewriteContext context, MatchResults ruleMatch, MatchResults condMatch)
{ {
context.HttpContext.Response.StatusCode = StatusCodes.Status410Gone; context.HttpContext.Response.StatusCode = StatusCodes.Status410Gone;
context.Result = RuleTermination.ResponseComplete; context.Result = RuleResult.EndResponse;
} }
} }
} }

View File

@ -91,7 +91,7 @@ namespace Microsoft.AspNetCore.Rewrite.Internal.UrlActions
response.Headers[HeaderNames.Location] = pathBase + pattern + context.HttpContext.Request.QueryString; response.Headers[HeaderNames.Location] = pathBase + pattern + context.HttpContext.Request.QueryString;
} }
} }
context.Result = RuleTermination.ResponseComplete; context.Result = RuleResult.EndResponse;
} }
} }
} }

View File

@ -9,13 +9,13 @@ namespace Microsoft.AspNetCore.Rewrite.Internal.UrlActions
{ {
public class RewriteAction : UrlAction public class RewriteAction : UrlAction
{ {
public RuleTermination Result { get; } public RuleResult Result { get; }
public bool QueryStringAppend { get; } public bool QueryStringAppend { get; }
public bool QueryStringDelete { get; } public bool QueryStringDelete { get; }
public bool EscapeBackReferences { get; } public bool EscapeBackReferences { get; }
public RewriteAction( public RewriteAction(
RuleTermination result, RuleResult result,
Pattern pattern, Pattern pattern,
bool queryStringAppend, bool queryStringAppend,
bool queryStringDelete, bool queryStringDelete,
@ -31,7 +31,7 @@ namespace Microsoft.AspNetCore.Rewrite.Internal.UrlActions
} }
public RewriteAction( public RewriteAction(
RuleTermination result, RuleResult result,
Pattern pattern, Pattern pattern,
bool queryStringAppend) : bool queryStringAppend) :
this(result, this(result,

View File

@ -5,9 +5,9 @@ namespace Microsoft.AspNetCore.Rewrite.Internal.UrlActions
{ {
public class VoidAction : UrlAction public class VoidAction : UrlAction
{ {
public RuleTermination Result { get; } public RuleResult Result { get; }
public VoidAction(RuleTermination result) public VoidAction(RuleResult result)
{ {
Result = result; Result = result;
} }

View File

@ -7,7 +7,7 @@ using Microsoft.AspNetCore.Rewrite;
namespace Microsoft.AspNetCore.Builder namespace Microsoft.AspNetCore.Builder
{ {
/// <summary> /// <summary>
/// Extension methods for the <see cref="RewriteMiddleware"/> /// Extension methods for the <see cref="RewriteMiddleware"/>
/// </summary> /// </summary>
public static class RewriteBuilderExtensions public static class RewriteBuilderExtensions
{ {

View File

@ -24,17 +24,16 @@ namespace Microsoft.AspNetCore.Rewrite
public IFileProvider StaticFileProvider { get; set; } public IFileProvider StaticFileProvider { get; set; }
/// <summary> /// <summary>
/// Gets and sets the logger /// Gets and sets the logger
/// </summary> /// </summary>
public ILogger Logger { get; set; } public ILogger Logger { get; set; }
/// <summary> /// <summary>
/// A shared result that is set appropriately by each rule for the next action that /// A shared result that is set appropriately by each rule for the next action that
/// should be take. See <see cref="RuleTermination"/> /// should be taken. See <see cref="RuleResult"/>
/// </summary> /// </summary>
public RuleTermination Result { get; set; } public RuleResult Result { get; set; }
// PERF: share the same string builder per request
internal StringBuilder Builder { get; set; } = new StringBuilder(64); internal StringBuilder Builder { get; set; } = new StringBuilder(64);
} }
} }

View File

@ -69,7 +69,7 @@ namespace Microsoft.AspNetCore.Rewrite
HttpContext = context, HttpContext = context,
StaticFileProvider = _fileProvider, StaticFileProvider = _fileProvider,
Logger = _logger, Logger = _logger,
Result = RuleTermination.Continue Result = RuleResult.ContinueRules
}; };
foreach (var rule in _options.Rules) foreach (var rule in _options.Rules)
@ -77,15 +77,15 @@ namespace Microsoft.AspNetCore.Rewrite
rule.ApplyRule(rewriteContext); rule.ApplyRule(rewriteContext);
switch (rewriteContext.Result) switch (rewriteContext.Result)
{ {
case RuleTermination.Continue: case RuleResult.ContinueRules:
_logger.RewriteMiddlewareRequestContinueResults(); _logger.RewriteMiddlewareRequestContinueResults();
break; break;
case RuleTermination.ResponseComplete: case RuleResult.EndResponse:
_logger.RewriteMiddlewareRequestResponseComplete( _logger.RewriteMiddlewareRequestResponseComplete(
context.Response.Headers[HeaderNames.Location], context.Response.Headers[HeaderNames.Location],
context.Response.StatusCode); context.Response.StatusCode);
return TaskCache.CompletedTask; return TaskCache.CompletedTask;
case RuleTermination.StopRules: case RuleResult.SkipRemainingRules:
_logger.RewriteMiddlewareRequestStopRules(); _logger.RewriteMiddlewareRequestStopRules();
return _next(context); return _next(context);
default: default:

View File

@ -8,14 +8,14 @@ using Microsoft.AspNetCore.Hosting;
namespace Microsoft.AspNetCore.Rewrite namespace Microsoft.AspNetCore.Rewrite
{ {
/// <summary> /// <summary>
/// Options for the <see cref="RewriteMiddleware"/> /// Options for the <see cref="RewriteMiddleware"/>
/// </summary> /// </summary>
public class RewriteOptions public class RewriteOptions
{ {
/// <summary> /// <summary>
/// A list of <see cref="Rule"/> that will be applied in order upon a request. /// A list of <see cref="IRule"/> that will be applied in order upon a request.
/// </summary> /// </summary>
public IList<Rule> Rules { get; } = new List<Rule>(); public IList<IRule> Rules { get; } = new List<IRule>();
/// <summary> /// <summary>
/// Gets and sets the File Provider for file and directory checks. Defaults to <see cref="IHostingEnvironment.WebRootFileProvider"/> /// Gets and sets the File Provider for file and directory checks. Defaults to <see cref="IHostingEnvironment.WebRootFileProvider"/>

View File

@ -17,7 +17,7 @@ namespace Microsoft.AspNetCore.Rewrite
/// <param name="options">The <see cref="RewriteOptions"/>.</param> /// <param name="options">The <see cref="RewriteOptions"/>.</param>
/// <param name="rule">A rule to be added to the current rules.</param> /// <param name="rule">A rule to be added to the current rules.</param>
/// <returns>The Rewrite options.</returns> /// <returns>The Rewrite options.</returns>
public static RewriteOptions Add(this RewriteOptions options, Rule rule) public static RewriteOptions Add(this RewriteOptions options, IRule rule)
{ {
options.Rules.Add(rule); options.Rules.Add(rule);
return options; return options;
@ -44,7 +44,7 @@ namespace Microsoft.AspNetCore.Rewrite
/// <returns>The Rewrite options.</returns> /// <returns>The Rewrite options.</returns>
public static RewriteOptions AddRewrite(this RewriteOptions options, string regex, string replacement) public static RewriteOptions AddRewrite(this RewriteOptions options, string regex, string replacement)
{ {
return AddRewrite(options, regex, replacement, stopProcessing: false); return AddRewrite(options, regex, replacement, skipRemainingRules: false);
} }
/// <summary> /// <summary>
@ -53,11 +53,11 @@ namespace Microsoft.AspNetCore.Rewrite
/// <param name="options">The <see cref="RewriteOptions"/>.</param> /// <param name="options">The <see cref="RewriteOptions"/>.</param>
/// <param name="regex">The regex string to compare with.</param> /// <param name="regex">The regex string to compare with.</param>
/// <param name="replacement">If the regex matches, what to replace the uri with.</param> /// <param name="replacement">If the regex matches, what to replace the uri with.</param>
/// <param name="stopProcessing">If the regex matches, conditionally stop processing other rules.</param> /// <param name="skipRemainingRules">If the regex matches, conditionally stop processing other rules.</param>
/// <returns>The Rewrite options.</returns> /// <returns>The Rewrite options.</returns>
public static RewriteOptions AddRewrite(this RewriteOptions options, string regex, string replacement, bool stopProcessing) public static RewriteOptions AddRewrite(this RewriteOptions options, string regex, string replacement, bool skipRemainingRules)
{ {
options.Rules.Add(new RewriteRule(regex, replacement, stopProcessing)); options.Rules.Add(new RewriteRule(regex, replacement, skipRemainingRules));
return options; return options;
} }

View File

@ -6,19 +6,19 @@ namespace Microsoft.AspNetCore.Rewrite
/// <summary> /// <summary>
/// An enum representing the result of a rule. /// An enum representing the result of a rule.
/// </summary> /// </summary>
public enum RuleTermination public enum RuleResult
{ {
/// <summary> /// <summary>
/// Default value, continue applying rules. /// Default value, continue applying rules.
/// </summary> /// </summary>
Continue, ContinueRules,
///<summary> ///<summary>
/// Redirect occured, should send back new rewritten url. /// The rule ended the request by providing a response.
/// </summary> /// </summary>
ResponseComplete, EndResponse,
/// <summary> /// <summary>
/// Stop applying rules and send context to the next middleware /// Stop applying rules and send context to the next middleware
/// </summary> /// </summary>
StopRules SkipRemainingRules
} }
} }

View File

@ -147,7 +147,7 @@ namespace Microsoft.AspNetCore.Rewrite.Tests.UrlRewrite
) )
{ {
return new IISUrlRewriteRule(name, new RegexMatch(new Regex("^OFF$"), false), conditions, return new IISUrlRewriteRule(name, new RegexMatch(new Regex("^OFF$"), false), conditions,
new RewriteAction(RuleTermination.Continue, new InputParser().ParseInputString(url), queryStringAppend: false)); new RewriteAction(RuleResult.ContinueRules, new InputParser().ParseInputString(url), queryStringAppend: false));
} }
// TODO make rules comparable? // TODO make rules comparable?

View File

@ -9,7 +9,7 @@ using Xunit;
namespace Microsoft.AspNetCore.Rewrite.Tests.UrlRewrite namespace Microsoft.AspNetCore.Rewrite.Tests.UrlRewrite
{ {
// TODO add more of these // TODO add more of these
public class UrlRewriteApplicationTests public class UrlRewriteApplicationTests
{ {
[Fact] [Fact]
@ -17,10 +17,10 @@ namespace Microsoft.AspNetCore.Rewrite.Tests.UrlRewrite
{ {
var xml = new StringReader(@"<rewrite> var xml = new StringReader(@"<rewrite>
<rules> <rules>
<rule name=""Test"" stopProcessing=""true""> <rule name=""Test"" stopProcessing=""true"">
<match url = ""(.*)""/> <match url = ""(.*)""/>
<action type = ""None""/> <action type = ""None""/>
</rule> </rule>
</rules> </rules>
</rewrite>"); </rewrite>");
var rules = new UrlRewriteFileParser().Parse(xml); var rules = new UrlRewriteFileParser().Parse(xml);
@ -28,7 +28,7 @@ namespace Microsoft.AspNetCore.Rewrite.Tests.UrlRewrite
Assert.Equal(rules.Count, 1); Assert.Equal(rules.Count, 1);
var context = new RewriteContext { HttpContext = new DefaultHttpContext() }; var context = new RewriteContext { HttpContext = new DefaultHttpContext() };
rules.FirstOrDefault().ApplyRule(context); rules.FirstOrDefault().ApplyRule(context);
Assert.Equal(context.Result, RuleTermination.StopRules); Assert.Equal(context.Result, RuleResult.SkipRemainingRules);
} }
[Fact] [Fact]
@ -39,7 +39,7 @@ namespace Microsoft.AspNetCore.Rewrite.Tests.UrlRewrite
<rule name=""Test""> <rule name=""Test"">
<match url = ""(.*)"" ignoreCase=""false"" /> <match url = ""(.*)"" ignoreCase=""false"" />
<action type = ""None""/> <action type = ""None""/>
</rule> </rule>
</rules> </rules>
</rewrite>"); </rewrite>");
var rules = new UrlRewriteFileParser().Parse(xml); var rules = new UrlRewriteFileParser().Parse(xml);
@ -47,7 +47,7 @@ namespace Microsoft.AspNetCore.Rewrite.Tests.UrlRewrite
Assert.Equal(rules.Count, 1); Assert.Equal(rules.Count, 1);
var context = new RewriteContext { HttpContext = new DefaultHttpContext() }; var context = new RewriteContext { HttpContext = new DefaultHttpContext() };
rules.FirstOrDefault().ApplyRule(context); rules.FirstOrDefault().ApplyRule(context);
Assert.Equal(context.Result, RuleTermination.Continue); Assert.Equal(context.Result, RuleResult.ContinueRules);
} }
} }
} }

View File

@ -20,7 +20,7 @@ namespace Microsoft.AspNetCore.Rewrite.Tests.UrlActions
action.ApplyAction(context, null, null); action.ApplyAction(context, null, null);
// Assert // Assert
Assert.Equal(context.Result, RuleTermination.ResponseComplete); Assert.Equal(context.Result, RuleResult.EndResponse);
Assert.Equal(context.HttpContext.Response.StatusCode, StatusCodes.Status403Forbidden); Assert.Equal(context.HttpContext.Response.StatusCode, StatusCodes.Status403Forbidden);
} }
} }

View File

@ -20,7 +20,7 @@ namespace Microsoft.AspNetCore.Rewrite.Tests.UrlActions
action.ApplyAction(context, null, null); action.ApplyAction(context, null, null);
// Assert // Assert
Assert.Equal(context.Result, RuleTermination.ResponseComplete); Assert.Equal(context.Result, RuleResult.EndResponse);
Assert.Equal(context.HttpContext.Response.StatusCode, StatusCodes.Status410Gone); Assert.Equal(context.HttpContext.Response.StatusCode, StatusCodes.Status410Gone);
} }
} }