Refactoring a lot of tests in the Rewrite project

* Removed extra newline
This commit is contained in:
Mikael Mengistu 2016-10-03 16:56:29 -07:00 committed by GitHub
parent 76256446f5
commit 733c8f77e2
21 changed files with 155 additions and 157 deletions

View File

@ -20,7 +20,7 @@ namespace Microsoft.AspNetCore.Rewrite.Tests.ModRewrite
var results = new ConditionPatternParser().ParseActionCondition(condition); var results = new ConditionPatternParser().ParseActionCondition(condition);
var expected = new ParsedModRewriteInput { OperationType = operation, ConditionType = conditionType, Operand = variable, Invert = false }; var expected = new ParsedModRewriteInput { OperationType = operation, ConditionType = conditionType, Operand = variable, Invert = false };
Assert.True(CompareConditions(results, expected)); Assert.True(CompareConditions(expected, results));
} }
[Fact] [Fact]
@ -30,7 +30,7 @@ namespace Microsoft.AspNetCore.Rewrite.Tests.ModRewrite
var results = new ConditionPatternParser().ParseActionCondition(condition); var results = new ConditionPatternParser().ParseActionCondition(condition);
var expected = new ParsedModRewriteInput { ConditionType = ConditionType.Regex, Operand = "(.*)", Invert = false }; var expected = new ParsedModRewriteInput { ConditionType = ConditionType.Regex, Operand = "(.*)", Invert = false };
Assert.True(CompareConditions(results, expected)); Assert.True(CompareConditions(expected, results));
} }
[Theory] [Theory]
@ -48,7 +48,7 @@ namespace Microsoft.AspNetCore.Rewrite.Tests.ModRewrite
var results = new ConditionPatternParser().ParseActionCondition(condition); var results = new ConditionPatternParser().ParseActionCondition(condition);
var expected = new ParsedModRewriteInput { ConditionType = cond, OperationType = operation, Invert = false }; var expected = new ParsedModRewriteInput { ConditionType = cond, OperationType = operation, Invert = false };
Assert.True(CompareConditions(results, expected)); Assert.True(CompareConditions(expected, results));
} }
[Theory] [Theory]
@ -66,7 +66,7 @@ namespace Microsoft.AspNetCore.Rewrite.Tests.ModRewrite
var results = new ConditionPatternParser().ParseActionCondition(condition); var results = new ConditionPatternParser().ParseActionCondition(condition);
var expected = new ParsedModRewriteInput { ConditionType = cond, OperationType = operation, Invert = true }; var expected = new ParsedModRewriteInput { ConditionType = cond, OperationType = operation, Invert = true };
Assert.True(CompareConditions(results, expected)); Assert.True(CompareConditions(expected, results));
} }
[Theory] [Theory]
@ -81,7 +81,7 @@ namespace Microsoft.AspNetCore.Rewrite.Tests.ModRewrite
var results = new ConditionPatternParser().ParseActionCondition(condition); var results = new ConditionPatternParser().ParseActionCondition(condition);
var expected = new ParsedModRewriteInput { ConditionType = cond, OperationType = operation, Invert = false, Operand = variable }; var expected = new ParsedModRewriteInput { ConditionType = cond, OperationType = operation, Invert = false, Operand = variable };
Assert.True(CompareConditions(results, expected)); Assert.True(CompareConditions(expected, results));
} }
[Theory] [Theory]

View File

@ -19,7 +19,7 @@ namespace Microsoft.AspNetCore.Rewrite.Tests.ModRewrite
dict.Add(FlagType.NoCase, string.Empty); dict.Add(FlagType.NoCase, string.Empty);
var expected = new Flags(dict); var expected = new Flags(dict);
Assert.True(DictionaryContentsEqual(results.FlagDictionary, expected.FlagDictionary)); Assert.True(DictionaryContentsEqual(expected.FlagDictionary, results.FlagDictionary));
} }
[Fact] [Fact]
@ -32,7 +32,7 @@ namespace Microsoft.AspNetCore.Rewrite.Tests.ModRewrite
dict.Add(FlagType.Last, string.Empty); dict.Add(FlagType.Last, string.Empty);
var expected = new Flags(dict); var expected = new Flags(dict);
Assert.True(DictionaryContentsEqual(results.FlagDictionary, expected.FlagDictionary)); Assert.True(DictionaryContentsEqual(expected.FlagDictionary, results.FlagDictionary));
} }
[Fact] [Fact]
@ -45,7 +45,7 @@ namespace Microsoft.AspNetCore.Rewrite.Tests.ModRewrite
dict.Add(FlagType.Redirect, "301"); dict.Add(FlagType.Redirect, "301");
var expected = new Flags(dict); var expected = new Flags(dict);
Assert.True(DictionaryContentsEqual(results.FlagDictionary, expected.FlagDictionary)); Assert.True(DictionaryContentsEqual(expected.FlagDictionary, results.FlagDictionary));
} }
[Theory] [Theory]

View File

@ -32,7 +32,7 @@ namespace Microsoft.AspNetCore.Rewrite.Tests.ModRewrite
{ {
// Arrange, Act, Assert // Arrange, Act, Assert
var ex = Assert.Throws<FormatException>(() => new FileParser().Parse(new StringReader(input))); var ex = Assert.Throws<FormatException>(() => new FileParser().Parse(new StringReader(input)));
Assert.Equal(ex.Message, expected); Assert.Equal(expected, ex.Message);
} }
} }
} }

View File

@ -17,7 +17,7 @@ namespace Microsoft.AspNetCore.Rewrite.Tests.ModRewrite
{ {
[Fact] [Fact]
public async Task Invoke_RewritePathWhenMatching() public async Task Invoke_RewritePathWhenMatching()
{ {
var options = new RewriteOptions().AddApacheModRewrite(new StringReader("RewriteRule /hey/(.*) /$1 ")); var options = new RewriteOptions().AddApacheModRewrite(new StringReader("RewriteRule /hey/(.*) /$1 "));
var builder = new WebHostBuilder() var builder = new WebHostBuilder()
.Configure(app => .Configure(app =>
@ -29,7 +29,7 @@ namespace Microsoft.AspNetCore.Rewrite.Tests.ModRewrite
var response = await server.CreateClient().GetStringAsync("/hey/hello"); var response = await server.CreateClient().GetStringAsync("/hey/hello");
Assert.Equal(response, "/hello"); Assert.Equal("/hello", response);
} }
[Fact] [Fact]
@ -47,7 +47,7 @@ namespace Microsoft.AspNetCore.Rewrite.Tests.ModRewrite
var response = await server.CreateClient().GetStringAsync("/hey/hello"); var response = await server.CreateClient().GetStringAsync("/hey/hello");
Assert.Equal(response, "/hello"); Assert.Equal("/hello", response);
} }
[Fact] [Fact]
@ -65,7 +65,7 @@ namespace Microsoft.AspNetCore.Rewrite.Tests.ModRewrite
var response = await server.CreateClient().GetStringAsync("/hey/hello"); var response = await server.CreateClient().GetStringAsync("/hey/hello");
Assert.Equal(response, "/what"); Assert.Equal("/what", response);
} }
[Fact] [Fact]
@ -82,9 +82,9 @@ namespace Microsoft.AspNetCore.Rewrite.Tests.ModRewrite
var response = await server.CreateClient().GetStringAsync("/hey/hello"); var response = await server.CreateClient().GetStringAsync("/hey/hello");
Assert.Equal(response, "/hey/hello"); Assert.Equal("/hey/hello", response);
} }
[Fact] [Fact]
public async Task Invoke_ShouldRewriteHomepage() public async Task Invoke_ShouldRewriteHomepage()
{ {
@ -99,7 +99,7 @@ namespace Microsoft.AspNetCore.Rewrite.Tests.ModRewrite
var response = await server.CreateClient().GetStringAsync("http://www.foo.org/"); var response = await server.CreateClient().GetStringAsync("http://www.foo.org/");
Assert.Equal(response, "/homepage.html"); Assert.Equal("/homepage.html", response);
} }
[Fact] [Fact]
@ -116,7 +116,7 @@ namespace Microsoft.AspNetCore.Rewrite.Tests.ModRewrite
var response = await server.CreateClient().GetStringAsync("http://www.foo.org:42/"); var response = await server.CreateClient().GetStringAsync("http://www.foo.org:42/");
Assert.Equal(response, "/homepage.html"); Assert.Equal("/homepage.html", response);
} }
[Fact] [Fact]
@ -133,7 +133,7 @@ namespace Microsoft.AspNetCore.Rewrite.Tests.ModRewrite
var response = await server.CreateClient().GetStringAsync("http://www.foo.org/"); var response = await server.CreateClient().GetStringAsync("http://www.foo.org/");
Assert.Equal(response, "/"); Assert.Equal("/", response);
} }
[Fact] [Fact]
@ -150,7 +150,7 @@ namespace Microsoft.AspNetCore.Rewrite.Tests.ModRewrite
var response = await server.CreateClient().GetStringAsync("http://www.foo.org/homepage.aspx"); var response = await server.CreateClient().GetStringAsync("http://www.foo.org/homepage.aspx");
Assert.Equal(response, "/homepage.php"); Assert.Equal("/homepage.php", response);
} }
[Theory] [Theory]
@ -173,7 +173,7 @@ namespace Microsoft.AspNetCore.Rewrite.Tests.ModRewrite
var response = await server.CreateClient().GetStringAsync(url); var response = await server.CreateClient().GetStringAsync(url);
Assert.Equal(response, expected); Assert.Equal(expected, response);
} }
[Fact] [Fact]
@ -191,7 +191,7 @@ namespace Microsoft.AspNetCore.Rewrite.Tests.ModRewrite
var response = await server.CreateClient().GetStringAsync("http://www.foo.org/blog/2016-jun"); var response = await server.CreateClient().GetStringAsync("http://www.foo.org/blog/2016-jun");
Assert.Equal(response, @"/blog/2016-jun/"); Assert.Equal(@"/blog/2016-jun/", response);
} }
[Fact] [Fact]
@ -209,7 +209,7 @@ namespace Microsoft.AspNetCore.Rewrite.Tests.ModRewrite
var response = await server.CreateClient().GetStringAsync("http://www.foo.org/blog/2016-jun"); var response = await server.CreateClient().GetStringAsync("http://www.foo.org/blog/2016-jun");
Assert.Equal(response, @"http://www.example.com/blog/2016-jun/"); Assert.Equal(@"http://www.example.com/blog/2016-jun/", response);
} }
[Fact] [Fact]
@ -227,7 +227,7 @@ namespace Microsoft.AspNetCore.Rewrite.Tests.ModRewrite
var response = await server.CreateClient().GetStringAsync("http://www.foo.org/blog/2016-jun"); var response = await server.CreateClient().GetStringAsync("http://www.foo.org/blog/2016-jun");
Assert.Equal(response, @"http://www.example.com/blog/2016-jun/"); Assert.Equal(@"http://www.example.com/blog/2016-jun/", response);
} }
[Theory] [Theory]
@ -266,8 +266,8 @@ namespace Microsoft.AspNetCore.Rewrite.Tests.ModRewrite
var response = await server.CreateClient().GetAsync(input); var response = await server.CreateClient().GetAsync(input);
Assert.Equal(response.StatusCode, (HttpStatusCode)301); Assert.Equal(HttpStatusCode.MovedPermanently, response.StatusCode);
Assert.Equal(response.Headers.Location.OriginalString, "/"); Assert.Equal("/", response.Headers.Location.OriginalString);
} }
[Theory] [Theory]
@ -285,7 +285,7 @@ namespace Microsoft.AspNetCore.Rewrite.Tests.ModRewrite
var server = new TestServer(builder); var server = new TestServer(builder);
var response = await server.CreateClient().GetStringAsync(input); var response = await server.CreateClient().GetStringAsync(input);
Assert.Equal(response, "/"); Assert.Equal("/", response);
} }
[Fact] [Fact]
@ -304,7 +304,7 @@ namespace Microsoft.AspNetCore.Rewrite.Tests.ModRewrite
var response = await server.CreateClient().GetAsync(""); var response = await server.CreateClient().GetAsync("");
Assert.Equal(response.Headers.Location.OriginalString, "/foo"); Assert.Equal("/foo", response.Headers.Location.OriginalString);
} }
} }
} }

View File

@ -20,7 +20,7 @@ namespace Microsoft.AspNetCore.Rewrite.Tests.ModRewrite
expected.Add("RewriteCond"); expected.Add("RewriteCond");
expected.Add("%{HTTPS}"); expected.Add("%{HTTPS}");
expected.Add("!-f"); expected.Add("!-f");
Assert.Equal(tokens, expected); Assert.Equal(expected, tokens);
} }
[Fact] [Fact]
@ -33,7 +33,7 @@ namespace Microsoft.AspNetCore.Rewrite.Tests.ModRewrite
expected.Add("RewriteCond"); expected.Add("RewriteCond");
expected.Add(@"%{HTTPS} what"); expected.Add(@"%{HTTPS} what");
expected.Add("!-f"); expected.Add("!-f");
Assert.Equal(tokens, expected); Assert.Equal(expected, tokens);
} }
[Fact] [Fact]
@ -47,7 +47,7 @@ namespace Microsoft.AspNetCore.Rewrite.Tests.ModRewrite
expected.Add(@"%{HTTPS}"); expected.Add(@"%{HTTPS}");
expected.Add(@" what"); expected.Add(@" what");
expected.Add(@"!-f"); expected.Add(@"!-f");
Assert.Equal(tokens, expected); Assert.Equal(expected, tokens);
} }
[Fact] [Fact]

View File

@ -26,7 +26,7 @@ namespace Microsoft.AspNetCore.Rewrite.Tests.ModRewrite
{ {
var results = new RuleRegexParser().ParseRuleRegex("(.*)"); var results = new RuleRegexParser().ParseRuleRegex("(.*)");
Assert.False(results.Invert); Assert.False(results.Invert);
Assert.Equal(results.Operand, "(.*)"); Assert.Equal("(.*)", results.Operand);
} }
} }
} }

View File

@ -122,7 +122,7 @@ namespace Microsoft.AspNetCore.Rewrite.Tests.ModRewrite
public void ConditionParser_InvalidInput(string testString, string expected) public void ConditionParser_InvalidInput(string testString, string expected)
{ {
var ex = Assert.Throws<FormatException>(() => new TestStringParser().Parse(testString)); var ex = Assert.Throws<FormatException>(() => new TestStringParser().Parse(testString));
Assert.Equal(ex.Message, expected); Assert.Equal(expected, ex.Message);
} }
private void AssertPatternsEqual(Pattern p1, Pattern p2) private void AssertPatternsEqual(Pattern p1, Pattern p2)

View File

@ -39,7 +39,7 @@ namespace Microsoft.AspNetCore.Rewrite.Tests.UrlRewrite
var res = new UrlRewriteFileParser().Parse(new StringReader(xml)); var res = new UrlRewriteFileParser().Parse(new StringReader(xml));
// assert // assert
AssertUrlRewriteRuleEquality(res, expected); AssertUrlRewriteRuleEquality(expected, res);
} }
[Fact] [Fact]
@ -50,9 +50,9 @@ namespace Microsoft.AspNetCore.Rewrite.Tests.UrlRewrite
<rules> <rules>
<rule name=""Rewrite to article.aspx""> <rule name=""Rewrite to article.aspx"">
<match url = ""^article/([0-9]+)/([_0-9a-z-]+)"" /> <match url = ""^article/([0-9]+)/([_0-9a-z-]+)"" />
<conditions> <conditions>
<add input=""{HTTPS}"" pattern=""^OFF$"" /> <add input=""{HTTPS}"" pattern=""^OFF$"" />
</conditions> </conditions>
<action type=""Rewrite"" url =""article.aspx?id={R:1}&amp;title={R:2}"" /> <action type=""Rewrite"" url =""article.aspx?id={R:1}&amp;title={R:2}"" />
</rule> </rule>
</rules> </rules>
@ -76,7 +76,7 @@ namespace Microsoft.AspNetCore.Rewrite.Tests.UrlRewrite
var res = new UrlRewriteFileParser().Parse(new StringReader(xml)); var res = new UrlRewriteFileParser().Parse(new StringReader(xml));
// assert // assert
AssertUrlRewriteRuleEquality(res, expected); AssertUrlRewriteRuleEquality(expected, res);
} }
[Fact] [Fact]
@ -87,16 +87,16 @@ namespace Microsoft.AspNetCore.Rewrite.Tests.UrlRewrite
<rules> <rules>
<rule name=""Rewrite to article.aspx""> <rule name=""Rewrite to article.aspx"">
<match url = ""^article/([0-9]+)/([_0-9a-z-]+)"" /> <match url = ""^article/([0-9]+)/([_0-9a-z-]+)"" />
<conditions> <conditions>
<add input=""{HTTPS}"" pattern=""^OFF$"" /> <add input=""{HTTPS}"" pattern=""^OFF$"" />
</conditions> </conditions>
<action type=""Rewrite"" url =""article.aspx?id={R:1}&amp;title={R:2}"" /> <action type=""Rewrite"" url =""article.aspx?id={R:1}&amp;title={R:2}"" />
</rule> </rule>
<rule name=""Rewrite to another article.aspx""> <rule name=""Rewrite to another article.aspx"">
<match url = ""^article/([0-9]+)/([_0-9a-z-]+)"" /> <match url = ""^article/([0-9]+)/([_0-9a-z-]+)"" />
<conditions> <conditions>
<add input=""{HTTPS}"" pattern=""^OFF$"" /> <add input=""{HTTPS}"" pattern=""^OFF$"" />
</conditions> </conditions>
<action type=""Rewrite"" url =""article.aspx?id={R:1}&amp;title={R:2}"" /> <action type=""Rewrite"" url =""article.aspx?id={R:1}&amp;title={R:2}"" />
</rule> </rule>
</rules> </rules>
@ -125,7 +125,7 @@ namespace Microsoft.AspNetCore.Rewrite.Tests.UrlRewrite
var res = new UrlRewriteFileParser().Parse(new StringReader(xml)); var res = new UrlRewriteFileParser().Parse(new StringReader(xml));
// assert // assert
AssertUrlRewriteRuleEquality(res, expected); AssertUrlRewriteRuleEquality(expected, res);
} }
// Creates a rule with appropriate default values of the url rewrite rule. // Creates a rule with appropriate default values of the url rewrite rule.
@ -163,11 +163,11 @@ namespace Microsoft.AspNetCore.Rewrite.Tests.UrlRewrite
if (r1.Conditions == null) if (r1.Conditions == null)
{ {
Assert.Equal(r2.Conditions.Count, 0); Assert.Equal(0, r2.Conditions.Count);
} }
else if (r2.Conditions == null) else if (r2.Conditions == null)
{ {
Assert.Equal(r1.Conditions.Count, 0); Assert.Equal(0, r1.Conditions.Count);
} }
else else
{ {

View File

@ -27,7 +27,7 @@ namespace Microsoft.AspNetCore.Rewrite.Tests.UrlRewrite
<action type=""Rewrite"" url =""{"" /> <action type=""Rewrite"" url =""{"" />
</rule> </rule>
</rules> </rules>
</rewrite>", </rewrite>",
"Could not parse the UrlRewrite file. Message: 'Missing close brace for parameter at string index: '1''. Line number '5': '14'.")] "Could not parse the UrlRewrite file. Message: 'Missing close brace for parameter at string index: '1''. Line number '5': '14'.")]
[InlineData( [InlineData(
@"<rewrite> @"<rewrite>
@ -37,16 +37,16 @@ namespace Microsoft.AspNetCore.Rewrite.Tests.UrlRewrite
<action type=""Rewrite"" url=""foo"" /> <action type=""Rewrite"" url=""foo"" />
</rule> </rule>
</rules> </rules>
</rewrite>", </rewrite>",
"Could not parse the UrlRewrite file. Message: 'Match must have Url Attribute'. Line number '4': '14'.")] "Could not parse the UrlRewrite file. Message: 'Match must have Url Attribute'. Line number '4': '14'.")]
[InlineData( [InlineData(
@"<rewrite> @"<rewrite>
<rules> <rules>
<rule name=""Rewrite to article.aspx""> <rule name=""Rewrite to article.aspx"">
<match url = ""(.*)"" /> <match url = ""(.*)"" />
<conditions> <conditions>
<add input=""{HTTPS"" pattern=""^OFF$"" /> <add input=""{HTTPS"" pattern=""^OFF$"" />
</conditions> </conditions>
<action type=""Rewrite"" url =""foo"" /> <action type=""Rewrite"" url =""foo"" />
</rule> </rule>
</rules> </rules>
@ -57,39 +57,39 @@ namespace Microsoft.AspNetCore.Rewrite.Tests.UrlRewrite
<rules> <rules>
<rule name=""Rewrite to article.aspx""> <rule name=""Rewrite to article.aspx"">
<match url = ""(.*)"" /> <match url = ""(.*)"" />
<conditions> <conditions>
<add pattern=""^OFF$"" /> <add pattern=""^OFF$"" />
</conditions> </conditions>
<action type=""Rewrite"" url =""foo"" /> <action type=""Rewrite"" url =""foo"" />
</rule> </rule>
</rules> </rules>
</rewrite>", </rewrite>",
"Could not parse the UrlRewrite file. Message: 'Conditions must have an input attribute'. Line number '6': '18'.")] "Could not parse the UrlRewrite file. Message: 'Conditions must have an input attribute'. Line number '6': '18'.")]
[InlineData( [InlineData(
@"<rewrite> @"<rewrite>
<rules> <rules>
<rule name=""Rewrite to article.aspx""> <rule name=""Rewrite to article.aspx"">
<match url = ""(.*)"" /> <match url = ""(.*)"" />
<conditions> <conditions>
<add input=""{HTTPS}"" /> <add input=""{HTTPS}"" />
</conditions> </conditions>
<action type=""Rewrite"" url =""foo"" /> <action type=""Rewrite"" url =""foo"" />
</rule> </rule>
</rules> </rules>
</rewrite>", </rewrite>",
"Could not parse the UrlRewrite file. Message: 'Match does not have an associated pattern attribute in condition'. Line number '6': '18'.")] "Could not parse the UrlRewrite file. Message: 'Match does not have an associated pattern attribute in condition'. Line number '6': '18'.")]
[InlineData( [InlineData(
@"<rewrite> @"<rewrite>
<rules> <rules>
<rule name=""Rewrite to article.aspx""> <rule name=""Rewrite to article.aspx"">
<match url = ""(.*)"" /> <match url = ""(.*)"" />
<conditions> <conditions>
<add input=""{HTTPS}"" patternSyntax=""ExactMatch""/> <add input=""{HTTPS}"" patternSyntax=""ExactMatch""/>
</conditions> </conditions>
<action type=""Rewrite"" url =""foo"" /> <action type=""Rewrite"" url =""foo"" />
</rule> </rule>
</rules> </rules>
</rewrite>", </rewrite>",
"Could not parse the UrlRewrite file. Message: 'Match does not have an associated pattern attribute in condition'. Line number '6': '18'.")] "Could not parse the UrlRewrite file. Message: 'Match does not have an associated pattern attribute in condition'. Line number '6': '18'.")]
[InlineData( [InlineData(
@"<rewrite> @"<rewrite>
@ -105,7 +105,7 @@ namespace Microsoft.AspNetCore.Rewrite.Tests.UrlRewrite
{ {
// Arrange, Act, Assert // Arrange, Act, Assert
var ex = Assert.Throws<FormatException>(() => new UrlRewriteFileParser().Parse(new StringReader(input))); var ex = Assert.Throws<FormatException>(() => new UrlRewriteFileParser().Parse(new StringReader(input)));
Assert.Equal(ex.Message, expected); Assert.Equal(expected, ex.Message);
} }
} }
} }

View File

@ -17,7 +17,7 @@ namespace Microsoft.AspNetCore.Rewrite.Tests.UrlRewrite
{ {
var testString = "hello/hey/what"; var testString = "hello/hey/what";
var result = new InputParser().ParseInputString(testString); var result = new InputParser().ParseInputString(testString);
Assert.Equal(result.PatternSegments.Count, 1); Assert.Equal(1, result.PatternSegments.Count);
} }
[Theory] [Theory]
@ -29,7 +29,7 @@ namespace Microsoft.AspNetCore.Rewrite.Tests.UrlRewrite
public void InputParser_ParseStringWithBackReference(string testString, int expected) public void InputParser_ParseStringWithBackReference(string testString, int expected)
{ {
var result = new InputParser().ParseInputString(testString); var result = new InputParser().ParseInputString(testString);
Assert.Equal(result.PatternSegments.Count, expected); Assert.Equal(expected, result.PatternSegments.Count);
} }
// Test actual evaluation of the types, verifying the correct string comes from the evalation // Test actual evaluation of the types, verifying the correct string comes from the evalation
@ -46,9 +46,9 @@ namespace Microsoft.AspNetCore.Rewrite.Tests.UrlRewrite
{ {
var middle = new InputParser().ParseInputString(testString); var middle = new InputParser().ParseInputString(testString);
var result = middle.Evaluate(CreateTestRewriteContext(), CreateTestRuleMatch(), CreateTestCondMatch()); var result = middle.Evaluate(CreateTestRewriteContext(), CreateTestRuleMatch(), CreateTestCondMatch());
Assert.Equal(result, expected); Assert.Equal(expected, result);
} }
[Theory] [Theory]
[InlineData("hey/{ToLower:HEY}", "hey/hey")] [InlineData("hey/{ToLower:HEY}", "hey/hey")]
[InlineData("hey/{ToLower:{R:1}}", "hey/foo")] [InlineData("hey/{ToLower:{R:1}}", "hey/foo")]
@ -59,7 +59,7 @@ namespace Microsoft.AspNetCore.Rewrite.Tests.UrlRewrite
{ {
var middle = new InputParser().ParseInputString(testString); var middle = new InputParser().ParseInputString(testString);
var result = middle.Evaluate(CreateTestRewriteContext(), CreateTestRuleMatch(), CreateTestCondMatch()); var result = middle.Evaluate(CreateTestRewriteContext(), CreateTestRuleMatch(), CreateTestCondMatch());
Assert.Equal(result, expected); Assert.Equal(expected, result);
} }
[Theory] [Theory]
@ -68,7 +68,7 @@ namespace Microsoft.AspNetCore.Rewrite.Tests.UrlRewrite
{ {
var middle = new InputParser().ParseInputString(testString); var middle = new InputParser().ParseInputString(testString);
var result = middle.Evaluate(CreateTestRewriteContext(), CreateTestRuleMatch(), CreateTestCondMatch()); var result = middle.Evaluate(CreateTestRewriteContext(), CreateTestRuleMatch(), CreateTestCondMatch());
Assert.Equal(result, expected); Assert.Equal(expected, result);
} }
[Theory] [Theory]

View File

@ -36,7 +36,7 @@ namespace Microsoft.AspNetCore.Rewrite.Tests.UrlRewrite
var response = await server.CreateClient().GetAsync("article/10/hey"); var response = await server.CreateClient().GetAsync("article/10/hey");
Assert.Equal(response.Headers.Location.OriginalString, "/article.aspx?id=10&title=hey"); Assert.Equal("/article.aspx?id=10&title=hey", response.Headers.Location.OriginalString);
} }
[Fact] [Fact]
@ -60,7 +60,7 @@ namespace Microsoft.AspNetCore.Rewrite.Tests.UrlRewrite
var response = await server.CreateClient().GetStringAsync("/article/10/hey"); var response = await server.CreateClient().GetStringAsync("/article/10/hey");
Assert.Equal(response, "/article.aspx?id=10&title=hey"); Assert.Equal("/article.aspx?id=10&title=hey", response);
} }
[Fact] [Fact]
@ -68,14 +68,14 @@ namespace Microsoft.AspNetCore.Rewrite.Tests.UrlRewrite
{ {
var options = new RewriteOptions().AddIISUrlRewrite(new StringReader(@"<rewrite> var options = new RewriteOptions().AddIISUrlRewrite(new StringReader(@"<rewrite>
<rules> <rules>
<rule name=""Query String Rewrite""> <rule name=""Query String Rewrite"">
<match url=""page\.asp$"" /> <match url=""page\.asp$"" />
<conditions> <conditions>
<add input=""{QUERY_STRING}"" pattern=""p1=(\d+)"" /> <add input=""{QUERY_STRING}"" pattern=""p1=(\d+)"" />
<add input=""##{C:1}##_{QUERY_STRING}"" pattern=""##([^#]+)##_.*p2=(\d+)"" /> <add input=""##{C:1}##_{QUERY_STRING}"" pattern=""##([^#]+)##_.*p2=(\d+)"" />
</conditions> </conditions>
<action type=""Rewrite"" url=""newpage.aspx?param1={C:1}&amp;param2={C:2}"" appendQueryString=""false""/> <action type=""Rewrite"" url=""newpage.aspx?param1={C:1}&amp;param2={C:2}"" appendQueryString=""false""/>
</rule> </rule>
</rules> </rules>
</rewrite>")); </rewrite>"));
var builder = new WebHostBuilder() var builder = new WebHostBuilder()
@ -88,7 +88,7 @@ namespace Microsoft.AspNetCore.Rewrite.Tests.UrlRewrite
var response = await server.CreateClient().GetStringAsync("page.asp?p2=321&p1=123"); var response = await server.CreateClient().GetStringAsync("page.asp?p2=321&p1=123");
Assert.Equal(response, "/newpage.aspx?param1=123&param2=321"); Assert.Equal("/newpage.aspx?param1=123&param2=321", response);
} }
[Fact] [Fact]
@ -96,10 +96,10 @@ namespace Microsoft.AspNetCore.Rewrite.Tests.UrlRewrite
{ {
var options = new RewriteOptions().AddIISUrlRewrite(new StringReader(@"<rewrite> var options = new RewriteOptions().AddIISUrlRewrite(new StringReader(@"<rewrite>
<rules> <rules>
<rule name=""Convert to lower case"" stopProcessing=""true""> <rule name=""Convert to lower case"" stopProcessing=""true"">
<match url="".*[A-Z].*"" ignoreCase=""false"" /> <match url="".*[A-Z].*"" ignoreCase=""false"" />
<action type=""Redirect"" url=""{ToLower:{R:0}}"" redirectType=""Permanent"" /> <action type=""Redirect"" url=""{ToLower:{R:0}}"" redirectType=""Permanent"" />
</rule> </rule>
</rules> </rules>
</rewrite>")); </rewrite>"));
var builder = new WebHostBuilder() var builder = new WebHostBuilder()
@ -112,7 +112,7 @@ namespace Microsoft.AspNetCore.Rewrite.Tests.UrlRewrite
var response = await server.CreateClient().GetAsync("HElLo"); var response = await server.CreateClient().GetAsync("HElLo");
Assert.Equal(response.Headers.Location.OriginalString, "/hello"); Assert.Equal("/hello", response.Headers.Location.OriginalString);
} }
[Fact] [Fact]
@ -120,14 +120,14 @@ namespace Microsoft.AspNetCore.Rewrite.Tests.UrlRewrite
{ {
var options = new RewriteOptions().AddIISUrlRewrite(new StringReader(@"<rewrite> var options = new RewriteOptions().AddIISUrlRewrite(new StringReader(@"<rewrite>
<rules> <rules>
<rule name=""Remove trailing slash"" stopProcessing=""true""> <rule name=""Remove trailing slash"" stopProcessing=""true"">
<match url=""(.*)/$"" /> <match url=""(.*)/$"" />
<conditions> <conditions>
<add input=""{REQUEST_FILENAME}"" matchType=""IsFile"" negate=""true"" /> <add input=""{REQUEST_FILENAME}"" matchType=""IsFile"" negate=""true"" />
<add input=""{REQUEST_FILENAME}"" matchType=""IsDirectory"" negate=""true"" /> <add input=""{REQUEST_FILENAME}"" matchType=""IsDirectory"" negate=""true"" />
</conditions> </conditions>
<action type=""Redirect"" redirectType=""Permanent"" url=""{R:1}"" /> <action type=""Redirect"" redirectType=""Permanent"" url=""{R:1}"" />
</rule> </rule>
</rules> </rules>
</rewrite>")); </rewrite>"));
var builder = new WebHostBuilder() var builder = new WebHostBuilder()
@ -139,7 +139,7 @@ namespace Microsoft.AspNetCore.Rewrite.Tests.UrlRewrite
var response = await server.CreateClient().GetAsync("hey/hello/"); var response = await server.CreateClient().GetAsync("hey/hello/");
Assert.Equal(response.Headers.Location.OriginalString, "/hey/hello"); Assert.Equal("/hey/hello", response.Headers.Location.OriginalString);
} }
[Fact] [Fact]
@ -147,14 +147,14 @@ namespace Microsoft.AspNetCore.Rewrite.Tests.UrlRewrite
{ {
var options = new RewriteOptions().AddIISUrlRewrite(new StringReader(@"<rewrite> var options = new RewriteOptions().AddIISUrlRewrite(new StringReader(@"<rewrite>
<rules> <rules>
<rule name=""Add trailing slash"" stopProcessing=""true""> <rule name=""Add trailing slash"" stopProcessing=""true"">
<match url=""(.*[^/])$"" /> <match url=""(.*[^/])$"" />
<conditions> <conditions>
<add input=""{REQUEST_FILENAME}"" matchType=""IsFile"" negate=""true"" /> <add input=""{REQUEST_FILENAME}"" matchType=""IsFile"" negate=""true"" />
<add input=""{REQUEST_FILENAME}"" matchType=""IsDirectory"" negate=""true"" /> <add input=""{REQUEST_FILENAME}"" matchType=""IsDirectory"" negate=""true"" />
</conditions> </conditions>
<action type=""Redirect"" redirectType=""Permanent"" url=""{R:1}/"" /> <action type=""Redirect"" redirectType=""Permanent"" url=""{R:1}/"" />
</rule> </rule>
</rules> </rules>
</rewrite>")); </rewrite>"));
var builder = new WebHostBuilder() var builder = new WebHostBuilder()
@ -166,7 +166,7 @@ namespace Microsoft.AspNetCore.Rewrite.Tests.UrlRewrite
var response = await server.CreateClient().GetAsync("hey/hello"); var response = await server.CreateClient().GetAsync("hey/hello");
Assert.Equal(response.Headers.Location.OriginalString, "/hey/hello/"); Assert.Equal("/hey/hello/", response.Headers.Location.OriginalString);
} }
[Fact] [Fact]
@ -174,13 +174,13 @@ namespace Microsoft.AspNetCore.Rewrite.Tests.UrlRewrite
{ {
var options = new RewriteOptions().AddIISUrlRewrite(new StringReader(@"<rewrite> var options = new RewriteOptions().AddIISUrlRewrite(new StringReader(@"<rewrite>
<rules> <rules>
<rule name=""Redirect to HTTPS"" stopProcessing=""true""> <rule name=""Redirect to HTTPS"" stopProcessing=""true"">
<match url=""(.*)"" /> <match url=""(.*)"" />
<conditions> <conditions>
<add input=""{HTTPS}"" pattern=""^OFF$"" /> <add input=""{HTTPS}"" pattern=""^OFF$"" />
</conditions> </conditions>
<action type=""Redirect"" url=""https://{HTTP_HOST}/{R:1}"" redirectType=""Permanent"" /> <action type=""Redirect"" url=""https://{HTTP_HOST}/{R:1}"" redirectType=""Permanent"" />
</rule> </rule>
</rules> </rules>
</rewrite>")); </rewrite>"));
var builder = new WebHostBuilder() var builder = new WebHostBuilder()
@ -192,7 +192,7 @@ namespace Microsoft.AspNetCore.Rewrite.Tests.UrlRewrite
var response = await server.CreateClient().GetAsync(new Uri("http://example.com")); var response = await server.CreateClient().GetAsync(new Uri("http://example.com"));
Assert.Equal(response.Headers.Location.OriginalString, "https://example.com/"); Assert.Equal("https://example.com/", response.Headers.Location.OriginalString);
} }
[Fact] [Fact]
@ -200,13 +200,13 @@ namespace Microsoft.AspNetCore.Rewrite.Tests.UrlRewrite
{ {
var options = new RewriteOptions().AddIISUrlRewrite(new StringReader(@"<rewrite> var options = new RewriteOptions().AddIISUrlRewrite(new StringReader(@"<rewrite>
<rules> <rules>
<rule name=""Rewrite to HTTPS"" stopProcessing=""true""> <rule name=""Rewrite to HTTPS"" stopProcessing=""true"">
<match url=""(.*)"" /> <match url=""(.*)"" />
<conditions> <conditions>
<add input=""{HTTPS}"" pattern=""^OFF$"" /> <add input=""{HTTPS}"" pattern=""^OFF$"" />
</conditions> </conditions>
<action type=""Rewrite"" url=""https://{HTTP_HOST}/{R:1}"" /> <action type=""Rewrite"" url=""https://{HTTP_HOST}/{R:1}"" />
</rule> </rule>
</rules> </rules>
</rewrite>")); </rewrite>"));
var builder = new WebHostBuilder() var builder = new WebHostBuilder()
@ -224,7 +224,7 @@ namespace Microsoft.AspNetCore.Rewrite.Tests.UrlRewrite
var response = await server.CreateClient().GetStringAsync(new Uri("http://example.com")); var response = await server.CreateClient().GetStringAsync(new Uri("http://example.com"));
Assert.Equal(response, "https://example.com/"); Assert.Equal("https://example.com/", response);
} }
[Fact] [Fact]
@ -232,10 +232,10 @@ namespace Microsoft.AspNetCore.Rewrite.Tests.UrlRewrite
{ {
var options = new RewriteOptions().AddIISUrlRewrite(new StringReader(@"<rewrite> var options = new RewriteOptions().AddIISUrlRewrite(new StringReader(@"<rewrite>
<rules> <rules>
<rule name=""Proxy""> <rule name=""Proxy"">
<match url=""(.*)"" /> <match url=""(.*)"" />
<action type=""Rewrite"" url=""http://internalserver/{R:1}"" /> <action type=""Rewrite"" url=""http://internalserver/{R:1}"" />
</rule> </rule>
</rules> </rules>
</rewrite>")); </rewrite>"));
var builder = new WebHostBuilder() var builder = new WebHostBuilder()
@ -253,7 +253,7 @@ namespace Microsoft.AspNetCore.Rewrite.Tests.UrlRewrite
var response = await server.CreateClient().GetStringAsync(new Uri("http://example.com/")); var response = await server.CreateClient().GetStringAsync(new Uri("http://example.com/"));
Assert.Equal(response, "http://internalserver/"); Assert.Equal("http://internalserver/", response);
} }
[Fact] [Fact]
@ -261,10 +261,10 @@ namespace Microsoft.AspNetCore.Rewrite.Tests.UrlRewrite
{ {
var options = new RewriteOptions().AddIISUrlRewrite(new StringReader(@"<rewrite> var options = new RewriteOptions().AddIISUrlRewrite(new StringReader(@"<rewrite>
<rules> <rules>
<rule name=""Test""> <rule name=""Test"">
<match url=""(.*)"" /> <match url=""(.*)"" />
<action type=""Redirect"" url=""{R:1}"" /> <action type=""Redirect"" url=""{R:1}"" />
</rule> </rule>
</rules> </rules>
</rewrite>")); </rewrite>"));
var builder = new WebHostBuilder() var builder = new WebHostBuilder()
@ -282,7 +282,7 @@ namespace Microsoft.AspNetCore.Rewrite.Tests.UrlRewrite
var response = await server.CreateClient().GetAsync(new Uri("http://example.com/")); var response = await server.CreateClient().GetAsync(new Uri("http://example.com/"));
Assert.Equal(response.Headers.Location.OriginalString, "/"); Assert.Equal("/", response.Headers.Location.OriginalString);
} }
[Fact] [Fact]
@ -290,10 +290,10 @@ namespace Microsoft.AspNetCore.Rewrite.Tests.UrlRewrite
{ {
var options = new RewriteOptions().AddIISUrlRewrite(new StringReader(@"<rewrite> var options = new RewriteOptions().AddIISUrlRewrite(new StringReader(@"<rewrite>
<rules> <rules>
<rule name=""Test""> <rule name=""Test"">
<match url=""(.*)"" /> <match url=""(.*)"" />
<action type=""Rewrite"" url=""{R:1}"" /> <action type=""Rewrite"" url=""{R:1}"" />
</rule> </rule>
</rules> </rules>
</rewrite>")); </rewrite>"));
var builder = new WebHostBuilder() var builder = new WebHostBuilder()
@ -308,7 +308,7 @@ namespace Microsoft.AspNetCore.Rewrite.Tests.UrlRewrite
var response = await server.CreateClient().GetStringAsync(new Uri("http://example.com/")); var response = await server.CreateClient().GetStringAsync(new Uri("http://example.com/"));
Assert.Equal(response, "/"); Assert.Equal("/", response);
} }
[Fact] [Fact]
@ -316,10 +316,10 @@ namespace Microsoft.AspNetCore.Rewrite.Tests.UrlRewrite
{ {
var options = new RewriteOptions().AddIISUrlRewrite(new StringReader(@"<rewrite> var options = new RewriteOptions().AddIISUrlRewrite(new StringReader(@"<rewrite>
<rules> <rules>
<rule name=""Test""> <rule name=""Test"">
<match url=""(.*)"" /> <match url=""(.*)"" />
<action type=""Redirect"" url=""{R:1}"" /> <action type=""Redirect"" url=""{R:1}"" />
</rule> </rule>
</rules> </rules>
</rewrite>")); </rewrite>"));
var builder = new WebHostBuilder() var builder = new WebHostBuilder()

View File

@ -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, RuleResult.SkipRemainingRules); Assert.Equal(RuleResult.SkipRemainingRules, context.Result);
} }
[Fact] [Fact]
@ -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, RuleResult.ContinueRules); Assert.Equal(RuleResult.ContinueRules, context.Result);
} }
} }
} }

View File

@ -20,7 +20,6 @@ namespace Microsoft.AspNetCore.Rewrite.Tests.CodeRules
var builder = new WebHostBuilder() var builder = new WebHostBuilder()
.Configure(app => .Configure(app =>
{ {
app.UseRewriter(options);
app.UseRewriter(options); app.UseRewriter(options);
app.Run(context => context.Response.WriteAsync( app.Run(context => context.Response.WriteAsync(
context.Request.Scheme + context.Request.Scheme +
@ -33,7 +32,7 @@ namespace Microsoft.AspNetCore.Rewrite.Tests.CodeRules
var response = await server.CreateClient().GetStringAsync("foo"); var response = await server.CreateClient().GetStringAsync("foo");
Assert.Equal(response, "http://example.com/foo"); Assert.Equal("http://example.com/foo", response);
} }
[Fact] [Fact]
@ -49,7 +48,7 @@ namespace Microsoft.AspNetCore.Rewrite.Tests.CodeRules
var response = await server.CreateClient().GetAsync("foo"); var response = await server.CreateClient().GetAsync("foo");
Assert.Equal(response.Headers.Location.OriginalString, "http://example.com/foo"); Assert.Equal("http://example.com/foo", response.Headers.Location.OriginalString);
} }
[Fact] [Fact]
@ -65,7 +64,7 @@ namespace Microsoft.AspNetCore.Rewrite.Tests.CodeRules
var response = await server.CreateClient().GetAsync(new Uri("http://example.com")); var response = await server.CreateClient().GetAsync(new Uri("http://example.com"));
Assert.Equal(response.Headers.Location.OriginalString, "https://example.com/"); Assert.Equal("https://example.com/", response.Headers.Location.OriginalString);
} }

View File

@ -35,10 +35,9 @@ namespace Microsoft.AspNetCore.Rewrite.Tests.PatternSegments
[InlineData("wow", "Unsupported segment: 'wow'")] [InlineData("wow", "Unsupported segment: 'wow'")]
public void DateTime_AssertThrowsOnInvalidInput(string input, string expected) public void DateTime_AssertThrowsOnInvalidInput(string input, string expected)
{ {
// Act And Assert // Act And Assert
var ex = Assert.Throws<FormatException>(() => new DateTimeSegment(input)); var ex = Assert.Throws<FormatException>(() => new DateTimeSegment(input));
Assert.Equal(ex.Message, expected); Assert.Equal(expected, ex.Message);
} }
} }
} }

View File

@ -22,7 +22,7 @@ namespace Microsoft.AspNetCore.Rewrite.Tests.PatternSegments
// Act // Act
var results = segement.Evaluate(context, null, null); var results = segement.Evaluate(context, null, null);
// Assert // Assert
Assert.Equal(expected, results); Assert.Equal(expected, results);
} }

View File

@ -15,12 +15,12 @@ namespace Microsoft.AspNetCore.Rewrite.Tests.PatternSegments
// Arrange // Arrange
var segement = new RequestMethodSegment(); var segement = new RequestMethodSegment();
var context = new RewriteContext { HttpContext = new DefaultHttpContext() }; var context = new RewriteContext { HttpContext = new DefaultHttpContext() };
context.HttpContext.Request.Method = "GET"; context.HttpContext.Request.Method = HttpMethods.Get;
// Act // Act
var results = segement.Evaluate(context, null, null); var results = segement.Evaluate(context, null, null);
// Assert // Assert
Assert.Equal("GET", results); Assert.Equal(HttpMethods.Get, results);
} }
} }
} }

View File

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

View File

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

View File

@ -21,7 +21,7 @@ namespace Microsoft.AspNetCore.Rewrite.Tests.UrlMatches
var context = new RewriteContext { HttpContext = new DefaultHttpContext() }; var context = new RewriteContext { HttpContext = new DefaultHttpContext() };
var Match = new ExactMatch(ignoreCase, inputString, negate); var Match = new ExactMatch(ignoreCase, inputString, negate);
var matchResults = Match.Evaluate(pattern, context); var matchResults = Match.Evaluate(pattern, context);
Assert.Equal(matchResults.Success, expectedResult); Assert.Equal(expectedResult, matchResults.Success);
} }
} }
} }

View File

@ -35,7 +35,7 @@ namespace Microsoft.AspNetCore.Rewrite.Tests.UrlMatches
var context = new RewriteContext { HttpContext = new DefaultHttpContext() }; var context = new RewriteContext { HttpContext = new DefaultHttpContext() };
var integerMatch = new IntegerMatch(value, operation); var integerMatch = new IntegerMatch(value, operation);
var matchResult = integerMatch.Evaluate(input, context); var matchResult = integerMatch.Evaluate(input, context);
Assert.Equal(matchResult.Success, expectedResult); Assert.Equal(expectedResult, matchResult.Success);
} }
} }
} }

View File

@ -23,7 +23,7 @@ namespace Microsoft.AspNetCore.Rewrite.Tests.UrlMatches
var context = new RewriteContext { HttpContext = new DefaultHttpContext() }; var context = new RewriteContext { HttpContext = new DefaultHttpContext() };
var stringMatch = new StringMatch(value, operation, ignoreCase); var stringMatch = new StringMatch(value, operation, ignoreCase);
var matchResult = stringMatch.Evaluate(input, context); var matchResult = stringMatch.Evaluate(input, context);
Assert.Equal(matchResult.Success, expectedResult); Assert.Equal(expectedResult, matchResult.Success);
} }
} }
} }