diff --git a/src/Orchard.Specs/Bindings/Settings.cs b/src/Orchard.Specs/Bindings/Settings.cs new file mode 100644 index 000000000..69d139688 --- /dev/null +++ b/src/Orchard.Specs/Bindings/Settings.cs @@ -0,0 +1,39 @@ +using System; +using NUnit.Framework; +using Orchard.ContentManagement; +using Orchard.ContentManagement.Aspects; +using Orchard.Core.Contents; +using Orchard.Data; +using Orchard.Roles.Models; +using Orchard.Roles.Services; +using Orchard.Security; +using Orchard.Security.Permissions; +using Orchard.Specs.Hosting.Orchard.Web; +using TechTalk.SpecFlow; +using Orchard.Localization.Services; +using System.Linq; + +namespace Orchard.Specs.Bindings { + [Binding] + public class Settings : BindingBase { + + [When(@"I have ""(.*)"" as the default culture")] + public void DefineDefaultCulture(string cultureName) { + + var webApp = Binding(); + webApp.Host.Execute(() => { + using ( var environment = MvcApplication.CreateStandaloneEnvironment("Default") ) { + var orchardServices = environment.Resolve(); + var cultureManager = environment.Resolve(); + + var currentCultures = cultureManager.ListCultures(); + if (!currentCultures.Contains(cultureName)) { + cultureManager.AddCulture(cultureName); + } + + orchardServices.WorkContext.CurrentSite.SiteCulture = cultureName; + } + }); + } + } +} diff --git a/src/Orchard.Specs/Bindings/WebAppHosting.cs b/src/Orchard.Specs/Bindings/WebAppHosting.cs index c14f78a36..666e26402 100644 --- a/src/Orchard.Specs/Bindings/WebAppHosting.cs +++ b/src/Orchard.Specs/Bindings/WebAppHosting.cs @@ -176,6 +176,10 @@ namespace Orchard.Specs.Bindings { WhenIGoTo(urlPath); } + [Given(@"I have the file ""(.*)"" in ""(.*)""")] + public void GivenIHaveFile(string sourceFileName, string destination) { + Host.CopyFile(sourceFileName, destination); + } [When(@"I go to ""(.*)"" on host (.*)")] public void WhenIGoToPathOnHost(string urlPath, string host) { diff --git a/src/Orchard.Specs/Hosting/WebHost.cs b/src/Orchard.Specs/Hosting/WebHost.cs index eae2a4367..959da42d7 100644 --- a/src/Orchard.Specs/Hosting/WebHost.cs +++ b/src/Orchard.Specs/Hosting/WebHost.cs @@ -214,6 +214,14 @@ namespace Orchard.Specs.Hosting { sourceModule.Combine("Views").DeepCopy(targetModule.Combine("Views")); } + public void CopyFile(string source, string destination) { + var origin = Path.Current.Parent.Combine(source); + var target = _tempSite.Combine(destination); + + Directory.CreateDirectory(target.DirectoryName); + File.Copy(origin, target); + } + private bool IsExtensionBinaryFile(Path path, string extensionName, ExtensionDeploymentOptions deploymentOptions) { bool isValidExtension = IsAssemblyFile(path); if (!isValidExtension) diff --git a/src/Orchard.Specs/Orchard.Specs.csproj b/src/Orchard.Specs/Orchard.Specs.csproj index d12bf5b82..4c8a4ddee 100644 --- a/src/Orchard.Specs/Orchard.Specs.csproj +++ b/src/Orchard.Specs/Orchard.Specs.csproj @@ -127,6 +127,7 @@ +