diff --git a/src/Orchard.Specs/Bindings/OrchardSiteFactory.cs b/src/Orchard.Specs/Bindings/OrchardSiteFactory.cs index d390ef3ed..9a9606019 100644 --- a/src/Orchard.Specs/Bindings/OrchardSiteFactory.cs +++ b/src/Orchard.Specs/Bindings/OrchardSiteFactory.cs @@ -59,6 +59,11 @@ namespace Orchard.Specs.Bindings { descriptor.Features.Concat(new[] { new ShellFeature { Name = name } }), descriptor.Parameters); } + + // this is needed to force the tenant to restart when a new feature is enabled, + // as DefaultOrchardHost maintains this list in a thread context otherwise + // and looses the information + MvcApplication.RestartTenant("Default"); }); } diff --git a/src/Orchard.Specs/Hosting/Orchard.Web/Global.asax.cs b/src/Orchard.Specs/Hosting/Orchard.Web/Global.asax.cs index 8883c0064..985a7b3cc 100644 --- a/src/Orchard.Specs/Hosting/Orchard.Web/Global.asax.cs +++ b/src/Orchard.Specs/Hosting/Orchard.Web/Global.asax.cs @@ -40,14 +40,24 @@ namespace Orchard.Specs.Hosting.Orchard.Web { builder.Register(ctx => RouteTable.Routes).SingleInstance(); builder.Register(ctx => ModelBinders.Binders).SingleInstance(); builder.Register(ctx => ViewEngines.Engines).SingleInstance(); - - builder.RegisterType().As(); } public static void ReloadExtensions() { _host.ReloadExtensions(); } + public static void RestartTenant(string name) { + var settings = _container.Resolve().LoadSettings().SingleOrDefault(x => x.Name == name); + if (settings == null) { + settings = new ShellSettings { + Name = name, + State = TenantState.Uninitialized + }; + } + + ((DefaultOrchardHost)_host).ActivateShell(settings); + } + public static IWorkContextScope CreateStandaloneEnvironment(string name) { var settings = _container.Resolve().LoadSettings().SingleOrDefault(x => x.Name == name); if (settings == null) { diff --git a/src/Orchard.Specs/Hosting/SpecHostEnvironment.cs b/src/Orchard.Specs/Hosting/SpecHostEnvironment.cs deleted file mode 100644 index ab6f25383..000000000 --- a/src/Orchard.Specs/Hosting/SpecHostEnvironment.cs +++ /dev/null @@ -1,12 +0,0 @@ -using Orchard.Environment; - -namespace Orchard.Specs.Hosting { - public class SpecHostEnvironment : HostEnvironment { - public SpecHostEnvironment() { - } - - public override void RestartAppDomain() { - // do nothing - } - } -} \ No newline at end of file diff --git a/src/Orchard.Specs/Orchard.Specs.csproj b/src/Orchard.Specs/Orchard.Specs.csproj index e76362fd5..7f5448a3b 100644 --- a/src/Orchard.Specs/Orchard.Specs.csproj +++ b/src/Orchard.Specs/Orchard.Specs.csproj @@ -171,7 +171,6 @@ True True - Input.feature True