From 3397969387241ef287cc26bc7a94d0617d6b90f9 Mon Sep 17 00:00:00 2001 From: Nick Berardi Date: Fri, 8 Jul 2011 14:29:18 -0400 Subject: [PATCH] added support for - (dash) substition or more percisely none --- src/Engines/ApacheRuleSet.cs | 6 ++++++ src/Rules/DefaultRuleAction.cs | 6 ++++++ .../ApacheStyleTest.cs | 20 ++++++++++++++++++- test/ManagedFusion.Rewriter.Tests/BaseTest.cs | 2 +- .../CommonProblemTest.cs | 2 +- .../CommonUseTest.cs | 2 +- .../Conditions/Flags/NoCaseTest.cs | 2 +- .../Conditions/Flags/OrNextTest.cs | 2 +- .../HttpHelpers.cs | 2 +- .../KnownHttpVerbTest.cs | 2 +- .../PatternTest.cs | 2 +- .../ManagedFusion.Rewriter.Tests/ProxyTest.cs | 2 +- .../Rules/DefaultOutputRuleActionTest.cs | 4 ++-- .../Rules/DefaultRuleActionTest.cs | 4 ++-- .../Rules/Flags/ChainFlagTest.cs | 2 +- .../Rules/Flags/LastFlagTest.cs | 2 +- .../Rules/Flags/NextRuleFlagTest.cs | 2 +- .../Rules/Flags/NoCaseTest.cs | 2 +- .../Rules/Flags/QueryStringAppendFlagTest.cs | 2 +- .../Rules/Flags/RedirectFlagTest.cs | 2 +- .../Rules/Flags/SkipRuleFlagTest.cs | 2 +- .../RulesHelper.cs | 2 +- .../StringExtensions.cs | 2 +- .../TestProxyAsyncHandler.cs | 2 +- .../TestProxyHandler.cs | 2 +- .../TestRuleAction.cs | 2 +- 26 files changed, 56 insertions(+), 26 deletions(-) diff --git a/src/Engines/ApacheRuleSet.cs b/src/Engines/ApacheRuleSet.cs index cc3cb88..5c64e52 100644 --- a/src/Engines/ApacheRuleSet.cs +++ b/src/Engines/ApacheRuleSet.cs @@ -427,7 +427,13 @@ public void RefreshRules(TextReader reader) { switch (parts[0]) { + case "inherit": + break; + + // obsolete in 2.1 mod_rewrite case "MaxRedirects": + Manager.LogIf(tempLogLevel >= 1, "MaxRedirects is obsolete", "Obsolete"); + int maxInternalTransfers; if (Int32.TryParse(parts[1], out maxInternalTransfers)) { diff --git a/src/Rules/DefaultRuleAction.cs b/src/Rules/DefaultRuleAction.cs index f81be03..8814b30 100644 --- a/src/Rules/DefaultRuleAction.cs +++ b/src/Rules/DefaultRuleAction.cs @@ -117,6 +117,12 @@ public virtual bool IsMatch(RuleContext context) /// public virtual void Execute(RuleContext context) { + if (_substitution == "-") + { + Manager.LogIf(context.LogLevel >= 2, "Output: " + context.CurrentUrl, context.LogCategory); + return; + } + string inputUrl = context.CurrentUrl.AbsolutePath; string substituedUrl = Pattern.Replace(inputUrl, _substitution, context); diff --git a/test/ManagedFusion.Rewriter.Tests/ApacheStyleTest.cs b/test/ManagedFusion.Rewriter.Tests/ApacheStyleTest.cs index 0db3ec1..9faa60a 100644 --- a/test/ManagedFusion.Rewriter.Tests/ApacheStyleTest.cs +++ b/test/ManagedFusion.Rewriter.Tests/ApacheStyleTest.cs @@ -2,7 +2,7 @@ using System.Collections.Generic; using NUnit.Framework; -namespace ManagedFusion.Rewriter.Test +namespace ManagedFusion.Rewriter.Tests { [TestFixture] public class ApacheStyleTest : BaseTest @@ -89,6 +89,24 @@ public void RewriteCondWithHttpHeader() Assert.AreEqual(expected, result); } + [Test] + public void SimpleRule_WithNoSubstituion() + { + var target = CreateRuleSet(@" +RewriteRule ^.* - [F,L]"); + + var url = new Uri("http://www.somesite.com/test.aspx"); + var context = HttpHelpers.MockHttpContext(url); + context.Request.SetServerVariables(new Dictionary { + { "REQUEST_URI", url.GetComponents(UriComponents.PathAndQuery, UriFormat.SafeUnescaped) } + }); + + Uri expected = null; // no change + Uri result = target.RunRules(context, url); + + Assert.AreEqual(expected, result); + } + [Test] public void SimpleRule_WithComplexCondition() { diff --git a/test/ManagedFusion.Rewriter.Tests/BaseTest.cs b/test/ManagedFusion.Rewriter.Tests/BaseTest.cs index e1f7230..15830c5 100644 --- a/test/ManagedFusion.Rewriter.Tests/BaseTest.cs +++ b/test/ManagedFusion.Rewriter.Tests/BaseTest.cs @@ -7,7 +7,7 @@ using ManagedFusion.Rewriter.Engines; using System.Text.RegularExpressions; -namespace ManagedFusion.Rewriter.Test +namespace ManagedFusion.Rewriter.Tests { public class BaseTest { diff --git a/test/ManagedFusion.Rewriter.Tests/CommonProblemTest.cs b/test/ManagedFusion.Rewriter.Tests/CommonProblemTest.cs index af60d66..bb563e8 100644 --- a/test/ManagedFusion.Rewriter.Tests/CommonProblemTest.cs +++ b/test/ManagedFusion.Rewriter.Tests/CommonProblemTest.cs @@ -4,7 +4,7 @@ using System.Text; using NUnit.Framework; -namespace ManagedFusion.Rewriter.Test +namespace ManagedFusion.Rewriter.Tests { [TestFixture] public class CommonProblemTest : BaseTest diff --git a/test/ManagedFusion.Rewriter.Tests/CommonUseTest.cs b/test/ManagedFusion.Rewriter.Tests/CommonUseTest.cs index f4969de..0a05f52 100644 --- a/test/ManagedFusion.Rewriter.Tests/CommonUseTest.cs +++ b/test/ManagedFusion.Rewriter.Tests/CommonUseTest.cs @@ -2,7 +2,7 @@ using System.Collections.Generic; using NUnit.Framework; -namespace ManagedFusion.Rewriter.Test +namespace ManagedFusion.Rewriter.Tests { [TestFixture] public class CommonUseTest : BaseTest diff --git a/test/ManagedFusion.Rewriter.Tests/Conditions/Flags/NoCaseTest.cs b/test/ManagedFusion.Rewriter.Tests/Conditions/Flags/NoCaseTest.cs index d6fc7f1..71e1837 100644 --- a/test/ManagedFusion.Rewriter.Tests/Conditions/Flags/NoCaseTest.cs +++ b/test/ManagedFusion.Rewriter.Tests/Conditions/Flags/NoCaseTest.cs @@ -2,7 +2,7 @@ using System.Collections.Generic; using NUnit.Framework; -namespace ManagedFusion.Rewriter.Test.Conditions.Flags +namespace ManagedFusion.Rewriter.Tests.Conditions.Flags { /// /// Summary description for NoCaseTest diff --git a/test/ManagedFusion.Rewriter.Tests/Conditions/Flags/OrNextTest.cs b/test/ManagedFusion.Rewriter.Tests/Conditions/Flags/OrNextTest.cs index d409c51..a31482a 100644 --- a/test/ManagedFusion.Rewriter.Tests/Conditions/Flags/OrNextTest.cs +++ b/test/ManagedFusion.Rewriter.Tests/Conditions/Flags/OrNextTest.cs @@ -2,7 +2,7 @@ using System.Collections.Generic; using NUnit.Framework; -namespace ManagedFusion.Rewriter.Test.Conditions.Flags +namespace ManagedFusion.Rewriter.Tests.Conditions.Flags { /// /// Summary description for OrNextTest diff --git a/test/ManagedFusion.Rewriter.Tests/HttpHelpers.cs b/test/ManagedFusion.Rewriter.Tests/HttpHelpers.cs index a56009c..4867ea8 100644 --- a/test/ManagedFusion.Rewriter.Tests/HttpHelpers.cs +++ b/test/ManagedFusion.Rewriter.Tests/HttpHelpers.cs @@ -6,7 +6,7 @@ using System.Collections; using System.IO; -namespace ManagedFusion.Rewriter.Test +namespace ManagedFusion.Rewriter.Tests { public static class HttpHelpers { diff --git a/test/ManagedFusion.Rewriter.Tests/KnownHttpVerbTest.cs b/test/ManagedFusion.Rewriter.Tests/KnownHttpVerbTest.cs index 2dd0170..40fc271 100644 --- a/test/ManagedFusion.Rewriter.Tests/KnownHttpVerbTest.cs +++ b/test/ManagedFusion.Rewriter.Tests/KnownHttpVerbTest.cs @@ -4,7 +4,7 @@ using System.Linq; using NUnit.Framework; -namespace ManagedFusion.Rewriter.Test +namespace ManagedFusion.Rewriter.Tests { /// /// Summary description for KnownHttpVerbTest diff --git a/test/ManagedFusion.Rewriter.Tests/PatternTest.cs b/test/ManagedFusion.Rewriter.Tests/PatternTest.cs index 855d488..521a8c1 100644 --- a/test/ManagedFusion.Rewriter.Tests/PatternTest.cs +++ b/test/ManagedFusion.Rewriter.Tests/PatternTest.cs @@ -3,7 +3,7 @@ using NUnit.Framework; using System.Text.RegularExpressions; -namespace ManagedFusion.Rewriter.Test +namespace ManagedFusion.Rewriter.Tests { [TestFixture] public class PatternTest : BaseTest diff --git a/test/ManagedFusion.Rewriter.Tests/ProxyTest.cs b/test/ManagedFusion.Rewriter.Tests/ProxyTest.cs index 9465bdc..e8db023 100644 --- a/test/ManagedFusion.Rewriter.Tests/ProxyTest.cs +++ b/test/ManagedFusion.Rewriter.Tests/ProxyTest.cs @@ -4,7 +4,7 @@ using System.Text; using NUnit.Framework; -namespace ManagedFusion.Rewriter.Test +namespace ManagedFusion.Rewriter.Tests { [TestFixture] public class ProxyTest : BaseTest diff --git a/test/ManagedFusion.Rewriter.Tests/Rules/DefaultOutputRuleActionTest.cs b/test/ManagedFusion.Rewriter.Tests/Rules/DefaultOutputRuleActionTest.cs index 2a71963..3163e29 100644 --- a/test/ManagedFusion.Rewriter.Tests/Rules/DefaultOutputRuleActionTest.cs +++ b/test/ManagedFusion.Rewriter.Tests/Rules/DefaultOutputRuleActionTest.cs @@ -2,10 +2,10 @@ using System.Collections.Generic; using System.Text.RegularExpressions; using NUnit.Framework; -using ManagedFusion.Rewriter.Test; using ManagedFusion.Rewriter.Conditions; +using ManagedFusion.Rewriter.Rules; -namespace ManagedFusion.Rewriter.Rules.Test +namespace ManagedFusion.Rewriter.Tests.Rules { [TestFixture] public class DefaultOutputRuleActionTest : BaseTest diff --git a/test/ManagedFusion.Rewriter.Tests/Rules/DefaultRuleActionTest.cs b/test/ManagedFusion.Rewriter.Tests/Rules/DefaultRuleActionTest.cs index c8d0aee..dfc5913 100644 --- a/test/ManagedFusion.Rewriter.Tests/Rules/DefaultRuleActionTest.cs +++ b/test/ManagedFusion.Rewriter.Tests/Rules/DefaultRuleActionTest.cs @@ -1,11 +1,11 @@ using System; using System.Collections.Generic; using System.Text.RegularExpressions; -using ManagedFusion.Rewriter.Test; using ManagedFusion.Rewriter.Conditions; using NUnit.Framework; +using ManagedFusion.Rewriter.Rules; -namespace ManagedFusion.Rewriter.Rules.Test +namespace ManagedFusion.Rewriter.Tests.Rules { [TestFixture] public class DefaultRuleActionTest : BaseTest diff --git a/test/ManagedFusion.Rewriter.Tests/Rules/Flags/ChainFlagTest.cs b/test/ManagedFusion.Rewriter.Tests/Rules/Flags/ChainFlagTest.cs index 234bfab..015f15b 100644 --- a/test/ManagedFusion.Rewriter.Tests/Rules/Flags/ChainFlagTest.cs +++ b/test/ManagedFusion.Rewriter.Tests/Rules/Flags/ChainFlagTest.cs @@ -1,7 +1,7 @@ using System; using NUnit.Framework; -namespace ManagedFusion.Rewriter.Test.Rules.Flags +namespace ManagedFusion.Rewriter.Tests.Rules.Flags { /// /// Summary description for ChainFlagTest diff --git a/test/ManagedFusion.Rewriter.Tests/Rules/Flags/LastFlagTest.cs b/test/ManagedFusion.Rewriter.Tests/Rules/Flags/LastFlagTest.cs index b880b12..81faba7 100644 --- a/test/ManagedFusion.Rewriter.Tests/Rules/Flags/LastFlagTest.cs +++ b/test/ManagedFusion.Rewriter.Tests/Rules/Flags/LastFlagTest.cs @@ -1,7 +1,7 @@ using System; using NUnit.Framework; -namespace ManagedFusion.Rewriter.Test.Rules.Flags +namespace ManagedFusion.Rewriter.Tests.Rules.Flags { /// /// Summary description for LastFlagTest diff --git a/test/ManagedFusion.Rewriter.Tests/Rules/Flags/NextRuleFlagTest.cs b/test/ManagedFusion.Rewriter.Tests/Rules/Flags/NextRuleFlagTest.cs index 62d7361..ea704c4 100644 --- a/test/ManagedFusion.Rewriter.Tests/Rules/Flags/NextRuleFlagTest.cs +++ b/test/ManagedFusion.Rewriter.Tests/Rules/Flags/NextRuleFlagTest.cs @@ -1,7 +1,7 @@ using System; using NUnit.Framework; -namespace ManagedFusion.Rewriter.Test.Rules.Flags +namespace ManagedFusion.Rewriter.Tests.Rules.Flags { /// /// Summary description for NextRuleFlagTest diff --git a/test/ManagedFusion.Rewriter.Tests/Rules/Flags/NoCaseTest.cs b/test/ManagedFusion.Rewriter.Tests/Rules/Flags/NoCaseTest.cs index f7f5484..444f071 100644 --- a/test/ManagedFusion.Rewriter.Tests/Rules/Flags/NoCaseTest.cs +++ b/test/ManagedFusion.Rewriter.Tests/Rules/Flags/NoCaseTest.cs @@ -4,7 +4,7 @@ using System.Linq; using NUnit.Framework; -namespace ManagedFusion.Rewriter.Test.Rules.Flags +namespace ManagedFusion.Rewriter.Tests.Rules.Flags { /// /// Summary description for NoCaseTest diff --git a/test/ManagedFusion.Rewriter.Tests/Rules/Flags/QueryStringAppendFlagTest.cs b/test/ManagedFusion.Rewriter.Tests/Rules/Flags/QueryStringAppendFlagTest.cs index 0b0416b..1bd6351 100644 --- a/test/ManagedFusion.Rewriter.Tests/Rules/Flags/QueryStringAppendFlagTest.cs +++ b/test/ManagedFusion.Rewriter.Tests/Rules/Flags/QueryStringAppendFlagTest.cs @@ -1,7 +1,7 @@ using System; using NUnit.Framework; -namespace ManagedFusion.Rewriter.Test.Rules.Flags +namespace ManagedFusion.Rewriter.Tests.Rules.Flags { [TestFixture] public class QueryStringAppendFlagTest : BaseTest diff --git a/test/ManagedFusion.Rewriter.Tests/Rules/Flags/RedirectFlagTest.cs b/test/ManagedFusion.Rewriter.Tests/Rules/Flags/RedirectFlagTest.cs index b6ea558..c0f7e32 100644 --- a/test/ManagedFusion.Rewriter.Tests/Rules/Flags/RedirectFlagTest.cs +++ b/test/ManagedFusion.Rewriter.Tests/Rules/Flags/RedirectFlagTest.cs @@ -1,7 +1,7 @@ using System; using NUnit.Framework; -namespace ManagedFusion.Rewriter.Test.Rules.Flags +namespace ManagedFusion.Rewriter.Tests.Rules.Flags { /// /// Summary description for ChainFlagTest diff --git a/test/ManagedFusion.Rewriter.Tests/Rules/Flags/SkipRuleFlagTest.cs b/test/ManagedFusion.Rewriter.Tests/Rules/Flags/SkipRuleFlagTest.cs index 37ede94..0766a0c 100644 --- a/test/ManagedFusion.Rewriter.Tests/Rules/Flags/SkipRuleFlagTest.cs +++ b/test/ManagedFusion.Rewriter.Tests/Rules/Flags/SkipRuleFlagTest.cs @@ -1,7 +1,7 @@ using System; using NUnit.Framework; -namespace ManagedFusion.Rewriter.Test.Rules.Flags +namespace ManagedFusion.Rewriter.Tests.Rules.Flags { [TestFixture] public class SkipRuleFlagTest : BaseTest diff --git a/test/ManagedFusion.Rewriter.Tests/RulesHelper.cs b/test/ManagedFusion.Rewriter.Tests/RulesHelper.cs index 42178fd..b161470 100644 --- a/test/ManagedFusion.Rewriter.Tests/RulesHelper.cs +++ b/test/ManagedFusion.Rewriter.Tests/RulesHelper.cs @@ -1,7 +1,7 @@ using System; using Moq; -namespace ManagedFusion.Rewriter.Test +namespace ManagedFusion.Rewriter.Tests { public static class RulesHelper { diff --git a/test/ManagedFusion.Rewriter.Tests/StringExtensions.cs b/test/ManagedFusion.Rewriter.Tests/StringExtensions.cs index e445ba7..fe41616 100644 --- a/test/ManagedFusion.Rewriter.Tests/StringExtensions.cs +++ b/test/ManagedFusion.Rewriter.Tests/StringExtensions.cs @@ -3,7 +3,7 @@ using System.Linq; using System.Text; -namespace ManagedFusion.Rewriter.Test +namespace ManagedFusion.Rewriter.Tests { public static class StringExtensions { diff --git a/test/ManagedFusion.Rewriter.Tests/TestProxyAsyncHandler.cs b/test/ManagedFusion.Rewriter.Tests/TestProxyAsyncHandler.cs index 12c2f8e..f10eaf8 100644 --- a/test/ManagedFusion.Rewriter.Tests/TestProxyAsyncHandler.cs +++ b/test/ManagedFusion.Rewriter.Tests/TestProxyAsyncHandler.cs @@ -5,7 +5,7 @@ using System.Web; using System.Net; -namespace ManagedFusion.Rewriter.Test +namespace ManagedFusion.Rewriter.Tests { public class TestProxyAsyncHandler : ProxyAsyncHandler { diff --git a/test/ManagedFusion.Rewriter.Tests/TestProxyHandler.cs b/test/ManagedFusion.Rewriter.Tests/TestProxyHandler.cs index e61e6d3..598d1d4 100644 --- a/test/ManagedFusion.Rewriter.Tests/TestProxyHandler.cs +++ b/test/ManagedFusion.Rewriter.Tests/TestProxyHandler.cs @@ -5,7 +5,7 @@ using System.Web; using System.Net; -namespace ManagedFusion.Rewriter.Test +namespace ManagedFusion.Rewriter.Tests { public class TestProxyHandler : ProxyHandler { diff --git a/test/ManagedFusion.Rewriter.Tests/TestRuleAction.cs b/test/ManagedFusion.Rewriter.Tests/TestRuleAction.cs index 8064091..52c5bd9 100644 --- a/test/ManagedFusion.Rewriter.Tests/TestRuleAction.cs +++ b/test/ManagedFusion.Rewriter.Tests/TestRuleAction.cs @@ -1,6 +1,6 @@ using System; -namespace ManagedFusion.Rewriter.Test +namespace ManagedFusion.Rewriter.Tests { public class TestRuleAction : IRuleAction {