Fixing a bug with "~/something/*" url's in the UrlRuleProvider

--HG--
branch : dev
This commit is contained in:
Nathan Heskew
2010-10-28 07:02:18 -07:00
parent 908a049b58
commit c8f90ab6c4
6 changed files with 104 additions and 8 deletions

View File

@@ -135,6 +135,7 @@
<Compile Include="Values.cs" />
<Compile Include="Users\Controllers\AdminControllerTests.cs" />
<Compile Include="Users\Services\MembershipServiceTests.cs" />
<Compile Include="Widgets\RuleEngine\UrlRuleProviderTest.cs" />
<Compile Include="Widgets\Services\WidgetsServiceTest.cs" />
<Compile Include="Widgets\WidgetsTests.cs" />
<Compile Include="XmlRpc\Controllers\HomeControllerTests.cs" />

View File

@@ -0,0 +1,65 @@
using Autofac;
using NUnit.Framework;
using Orchard.Mvc;
using Orchard.Tests.Stubs;
using Orchard.UI.Widgets;
using Orchard.Widgets.RuleEngine;
namespace Orchard.Tests.Modules.Widgets.RuleEngine {
[TestFixture]
public class UrlRuleProviderTest {
private IContainer _container;
private IRuleProvider _urlRuleProvider;
private StubHttpContextAccessor _stubContextAccessor;
[SetUp]
public void Init() {
var builder = new ContainerBuilder();
builder.RegisterType<UrlRuleProvider>().As<IRuleProvider>();
_stubContextAccessor = new StubHttpContextAccessor();
builder.RegisterInstance(_stubContextAccessor).As<IHttpContextAccessor>();
_container = builder.Build();
_urlRuleProvider = _container.Resolve<IRuleProvider>();
}
[Test]
public void UrlForHomePageMatchesHomePagePath() {
_stubContextAccessor.StubContext = new StubHttpContext("~/");
var context = new RuleContext {FunctionName = "url", Arguments = new[] {"~/"}};
_urlRuleProvider.Process(context);
Assert.That(context.Result, Is.True);
}
[Test]
public void UrlForAboutPageMatchesAboutPagePath() {
_stubContextAccessor.StubContext = new StubHttpContext("~/about");
var context = new RuleContext { FunctionName = "url", Arguments = new[] { "~/about" } };
_urlRuleProvider.Process(context);
Assert.That(context.Result, Is.True);
}
[Test]
public void UrlForBlogWithEndingWildcardMatchesBlogPostPageInSaidBlog() {
_stubContextAccessor.StubContext = new StubHttpContext("~/my-blog/my-blog-post");
var context = new RuleContext { FunctionName = "url", Arguments = new[] { "~/my-blog/*" } };
_urlRuleProvider.Process(context);
Assert.That(context.Result, Is.True);
}
[Test]
public void UrlForHomePageDoesNotMatchAboutPagePath() {
_stubContextAccessor.StubContext = new StubHttpContext("~/about");
var context = new RuleContext { FunctionName = "url", Arguments = new[] { "~/" } };
_urlRuleProvider.Process(context);
Assert.That(context.Result, Is.False);
}
[Test]
public void UrlForAboutPageMatchesDifferentCasedAboutPagePath() {
_stubContextAccessor.StubContext = new StubHttpContext("~/About");
var context = new RuleContext { FunctionName = "url", Arguments = new[] { "~/about" } };
_urlRuleProvider.Process(context);
Assert.That(context.Result, Is.True);
}
}
}