// Copyright (c) .NET Foundation. All rights reserved.
// Licensed under the Apache License, Version 2.0. See License.txt in the project root for license information.
using System.IO;
using System.Linq;
using Microsoft.AspNetCore.Http;
using Microsoft.AspNetCore.Rewrite.Internal.IISUrlRewrite;
using Xunit;
namespace Microsoft.AspNetCore.Rewrite.Tests.UrlRewrite
{
// TODO add more of these
public class UrlRewriteApplicationTests
{
[Fact]
public void ApplyRule_AssertStopProcessingFlagWillTerminateOnNoAction()
{
var xml = new StringReader(@"
");
var rules = new UrlRewriteFileParser().Parse(xml);
Assert.Equal(1, rules.Count);
var context = new RewriteContext { HttpContext = new DefaultHttpContext() };
rules.FirstOrDefault().ApplyRule(context);
Assert.Equal(RuleResult.SkipRemainingRules, context.Result);
}
[Fact]
public void ApplyRule_AssertNoTerminateFlagWillNotTerminateOnNoAction()
{
var xml = new StringReader(@"
");
var rules = new UrlRewriteFileParser().Parse(xml);
Assert.Equal(1, rules.Count);
var context = new RewriteContext { HttpContext = new DefaultHttpContext() };
rules.FirstOrDefault().ApplyRule(context);
Assert.Equal(RuleResult.ContinueRules, context.Result);
}
[Fact]
public void ApplyRule_TrackAllCaptures()
{
var xml = new StringReader(@"
");
var rules = new UrlRewriteFileParser().Parse(xml);
Assert.Equal(1, rules.Count);
Assert.True(rules[0].Conditions.TrackAllCaptures);
var context = new RewriteContext { HttpContext = new DefaultHttpContext() };
rules.FirstOrDefault().ApplyRule(context);
Assert.Equal(RuleResult.ContinueRules, context.Result);
}
}
}