mirror of
https://github.com/OrchardCMS/Orchard.git
synced 2025-10-15 19:54:57 +08:00
Fixing specflow tests
--HG-- branch : 1.x
This commit is contained in:
@@ -112,5 +112,19 @@ namespace Orchard.Tests.Environment.Configuration {
|
|||||||
Assert.That(settings.HashAlgorithm, Is.EqualTo("HMACSHA256"));
|
Assert.That(settings.HashAlgorithm, Is.EqualTo("HMACSHA256"));
|
||||||
Assert.That(settings.HashKey, Is.EqualTo("HIJKLMN"));
|
Assert.That(settings.HashKey, Is.EqualTo("HIJKLMN"));
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
[Test]
|
||||||
|
public void SettingsDontLoseTenantState() {
|
||||||
|
IShellSettingsManager loader = new ShellSettingsManager(_appDataFolder, new Mock<IShellSettingsManagerEventHandler>().Object);
|
||||||
|
var foo = new ShellSettings { Name = "Default" };
|
||||||
|
foo.State = TenantState.Disabled;
|
||||||
|
|
||||||
|
loader.SaveSettings(foo);
|
||||||
|
var settings = loader.LoadSettings().First();
|
||||||
|
|
||||||
|
Assert.That(settings.Name, Is.EqualTo("Default"));
|
||||||
|
Assert.That(settings.State, Is.EqualTo(TenantState.Disabled));
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@@ -255,7 +255,7 @@ namespace Orchard.Tests.Environment {
|
|||||||
x.Name == y.Name &&
|
x.Name == y.Name &&
|
||||||
x.RequestUrlHost == y.RequestUrlHost &&
|
x.RequestUrlHost == y.RequestUrlHost &&
|
||||||
x.RequestUrlPrefix == y.RequestUrlPrefix &&
|
x.RequestUrlPrefix == y.RequestUrlPrefix &&
|
||||||
x.State.CurrentState == y.State.CurrentState
|
x.State == y.State
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@@ -54,7 +54,7 @@ Scenario: Creating and using Date fields
|
|||||||
And I am redirected
|
And I am redirected
|
||||||
Then I should see "Your Event has been created."
|
Then I should see "Your Event has been created."
|
||||||
When I go to "Admin/Contents/List"
|
When I go to "Admin/Contents/List"
|
||||||
Then I should see "Date of the event:"
|
Then I should see "Date of the event"
|
||||||
And I should see "1/31/2012 12:00"
|
And I should see "1/31/2012 12:00"
|
||||||
|
|
||||||
# The hint should be displayed
|
# The hint should be displayed
|
||||||
|
@@ -3,7 +3,7 @@
|
|||||||
// This code was generated by SpecFlow (http://www.specflow.org/).
|
// This code was generated by SpecFlow (http://www.specflow.org/).
|
||||||
// SpecFlow Version:1.9.0.77
|
// SpecFlow Version:1.9.0.77
|
||||||
// SpecFlow Generator Version:1.9.0.0
|
// SpecFlow Generator Version:1.9.0.0
|
||||||
// Runtime Version:4.0.30319.18010
|
// Runtime Version:4.0.30319.18046
|
||||||
//
|
//
|
||||||
// Changes to this file may cause incorrect behavior and will be lost if
|
// Changes to this file may cause incorrect behavior and will be lost if
|
||||||
// the code is regenerated.
|
// the code is regenerated.
|
||||||
@@ -176,7 +176,7 @@ this.ScenarioSetup(scenarioInfo);
|
|||||||
#line 56
|
#line 56
|
||||||
testRunner.When("I go to \"Admin/Contents/List\"", ((string)(null)), ((TechTalk.SpecFlow.Table)(null)), "When ");
|
testRunner.When("I go to \"Admin/Contents/List\"", ((string)(null)), ((TechTalk.SpecFlow.Table)(null)), "When ");
|
||||||
#line 57
|
#line 57
|
||||||
testRunner.Then("I should see \"Date of the event:\"", ((string)(null)), ((TechTalk.SpecFlow.Table)(null)), "Then ");
|
testRunner.Then("I should see \"Date of the event\"", ((string)(null)), ((TechTalk.SpecFlow.Table)(null)), "Then ");
|
||||||
#line 58
|
#line 58
|
||||||
testRunner.And("I should see \"1/31/2012 12:00\"", ((string)(null)), ((TechTalk.SpecFlow.Table)(null)), "And ");
|
testRunner.And("I should see \"1/31/2012 12:00\"", ((string)(null)), ((TechTalk.SpecFlow.Table)(null)), "And ");
|
||||||
#line 61
|
#line 61
|
||||||
|
@@ -3,7 +3,7 @@
|
|||||||
// This code was generated by SpecFlow (http://www.specflow.org/).
|
// This code was generated by SpecFlow (http://www.specflow.org/).
|
||||||
// SpecFlow Version:1.9.0.77
|
// SpecFlow Version:1.9.0.77
|
||||||
// SpecFlow Generator Version:1.9.0.0
|
// SpecFlow Generator Version:1.9.0.0
|
||||||
// Runtime Version:4.0.30319.17929
|
// Runtime Version:4.0.30319.18046
|
||||||
//
|
//
|
||||||
// Changes to this file may cause incorrect behavior and will be lost if
|
// Changes to this file may cause incorrect behavior and will be lost if
|
||||||
// the code is regenerated.
|
// the code is regenerated.
|
||||||
|
@@ -3,6 +3,6 @@
|
|||||||
OEmbedPart oEmbedPart = Model.ContentPart;
|
OEmbedPart oEmbedPart = Model.ContentPart;
|
||||||
}
|
}
|
||||||
|
|
||||||
<a href="@oEmbedPart["src"]" target="_blank" class="button">
|
<a href="@oEmbedPart.Source" target="_blank" class="button">
|
||||||
<span>@T("Preview")</span>
|
<span>@T("Preview")</span>
|
||||||
</a>
|
</a>
|
@@ -47,7 +47,7 @@ namespace Orchard.MultiTenancy.Commands {
|
|||||||
Name = tenantName,
|
Name = tenantName,
|
||||||
RequestUrlHost = Host,
|
RequestUrlHost = Host,
|
||||||
RequestUrlPrefix = UrlPrefix,
|
RequestUrlPrefix = UrlPrefix,
|
||||||
State = new TenantState("Uninitialized")
|
State = TenantState.Uninitialized
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@@ -75,7 +75,7 @@ namespace Orchard.MultiTenancy.Controllers {
|
|||||||
DataProvider = viewModel.DataProvider,
|
DataProvider = viewModel.DataProvider,
|
||||||
DataConnectionString = viewModel.DatabaseConnectionString,
|
DataConnectionString = viewModel.DatabaseConnectionString,
|
||||||
DataTablePrefix = viewModel.DatabaseTablePrefix,
|
DataTablePrefix = viewModel.DatabaseTablePrefix,
|
||||||
State = new TenantState("Uninitialized"),
|
State = TenantState.Uninitialized,
|
||||||
Themes = viewModel.Themes.Where(x => x.Checked).Select(x => x.ThemeId).ToArray()
|
Themes = viewModel.Themes.Where(x => x.Checked).Select(x => x.ThemeId).ToArray()
|
||||||
});
|
});
|
||||||
|
|
||||||
@@ -167,7 +167,7 @@ namespace Orchard.MultiTenancy.Controllers {
|
|||||||
var tenant = _tenantService.GetTenants().FirstOrDefault(ss => ss.Name == name);
|
var tenant = _tenantService.GetTenants().FirstOrDefault(ss => ss.Name == name);
|
||||||
|
|
||||||
if (tenant != null && tenant.Name != _thisShellSettings.Name) {
|
if (tenant != null && tenant.Name != _thisShellSettings.Name) {
|
||||||
tenant.State.CurrentState = TenantState.State.Disabled;
|
tenant.State = TenantState.Disabled;
|
||||||
_tenantService.UpdateTenant(tenant);
|
_tenantService.UpdateTenant(tenant);
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -185,7 +185,7 @@ namespace Orchard.MultiTenancy.Controllers {
|
|||||||
var tenant = _tenantService.GetTenants().FirstOrDefault(ss => ss.Name == name);
|
var tenant = _tenantService.GetTenants().FirstOrDefault(ss => ss.Name == name);
|
||||||
|
|
||||||
if (tenant != null && tenant.Name != _thisShellSettings.Name) {
|
if (tenant != null && tenant.Name != _thisShellSettings.Name) {
|
||||||
tenant.State.CurrentState = TenantState.State.Running;
|
tenant.State = TenantState.Running;
|
||||||
_tenantService.UpdateTenant(tenant);
|
_tenantService.UpdateTenant(tenant);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@@ -25,11 +25,8 @@ namespace Orchard.MultiTenancy.Services {
|
|||||||
}
|
}
|
||||||
|
|
||||||
public void UpdateTenant(ShellSettings settings) {
|
public void UpdateTenant(ShellSettings settings) {
|
||||||
var tenant = GetTenants().FirstOrDefault(ss => ss.Name == settings.Name);
|
|
||||||
if ( tenant != null ) {
|
|
||||||
_shellSettingsManager.SaveSettings(settings);
|
_shellSettingsManager.SaveSettings(settings);
|
||||||
}
|
}
|
||||||
}
|
|
||||||
|
|
||||||
/// <summary>
|
/// <summary>
|
||||||
/// Loads only installed themes
|
/// Loads only installed themes
|
||||||
|
@@ -22,7 +22,7 @@
|
|||||||
</fieldset>
|
</fieldset>
|
||||||
<fieldset>
|
<fieldset>
|
||||||
<legend>@T("Database Setup")</legend>
|
<legend>@T("Database Setup")</legend>
|
||||||
@if (Model.State.CurrentState != TenantState.State.Uninitialized) {
|
@if (Model.State != TenantState.Uninitialized) {
|
||||||
<div class="warning message">@T("Warning: If you don't know what you're doing you *will* (likely) send this tenant into a downward spiral of irrecoverable disrepair. Have a nice day.")</div>
|
<div class="warning message">@T("Warning: If you don't know what you're doing you *will* (likely) send this tenant into a downward spiral of irrecoverable disrepair. Have a nice day.")</div>
|
||||||
}
|
}
|
||||||
else {
|
else {
|
||||||
|
@@ -10,7 +10,7 @@
|
|||||||
<div class="manage">@Html.ActionLink(T("Add a Tenant").ToString(), "Add", new {area = "Orchard.MultiTenancy"}, new { @class = "button primaryAction" })</div>
|
<div class="manage">@Html.ActionLink(T("Add a Tenant").ToString(), "Add", new {area = "Orchard.MultiTenancy"}, new { @class = "button primaryAction" })</div>
|
||||||
<ul class="contentItems tenants">
|
<ul class="contentItems tenants">
|
||||||
@foreach (var tenant in Model.TenantSettings) {
|
@foreach (var tenant in Model.TenantSettings) {
|
||||||
<li class="tenant @tenant.State.CurrentState">
|
<li class="tenant @tenant.State">
|
||||||
<div class="summary">
|
<div class="summary">
|
||||||
<div class="properties">
|
<div class="properties">
|
||||||
<h3>@tenant.Name @if (!string.IsNullOrEmpty(tenant.RequestUrlHost)) {
|
<h3>@tenant.Name @if (!string.IsNullOrEmpty(tenant.RequestUrlHost)) {
|
||||||
@@ -26,7 +26,7 @@
|
|||||||
<div class="related">
|
<div class="related">
|
||||||
@if (!string.Equals(tenant.Name, "default", StringComparison.OrdinalIgnoreCase)) { //todo: (heskew) base this off the view model so logic on what can be removed and have its state changed stays in the controller
|
@if (!string.Equals(tenant.Name, "default", StringComparison.OrdinalIgnoreCase)) { //todo: (heskew) base this off the view model so logic on what can be removed and have its state changed stays in the controller
|
||||||
var t = tenant;
|
var t = tenant;
|
||||||
@Html.DisplayFor(m => t, string.Format("ActionsFor{0}", tenant.State.CurrentState), "") @T(" | ")
|
@Html.DisplayFor(m => t, string.Format("ActionsFor{0}", tenant.State.ToString()), "") @T(" | ")
|
||||||
}
|
}
|
||||||
@Html.ActionLink(T("Edit").ToString(), "Edit", new {name = tenant.Name, area = "Orchard.MultiTenancy"})
|
@Html.ActionLink(T("Edit").ToString(), "Edit", new {name = tenant.Name, area = "Orchard.MultiTenancy"})
|
||||||
</div>
|
</div>
|
||||||
|
@@ -208,7 +208,7 @@ namespace Orchard.Commands {
|
|||||||
}
|
}
|
||||||
else {
|
else {
|
||||||
// In case of an unitiliazed site (no default settings yet), we create a default settings instance.
|
// In case of an unitiliazed site (no default settings yet), we create a default settings instance.
|
||||||
var settings = new ShellSettings { Name = ShellSettings.DefaultName, State = new TenantState("Uninitialized") };
|
var settings = new ShellSettings { Name = ShellSettings.DefaultName, State = TenantState.Uninitialized };
|
||||||
return host.CreateStandaloneEnvironment(settings);
|
return host.CreateStandaloneEnvironment(settings);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@@ -16,7 +16,7 @@ namespace Orchard.Environment.Configuration {
|
|||||||
|
|
||||||
public ShellSettings() {
|
public ShellSettings() {
|
||||||
_values = new Dictionary<string, string>(StringComparer.OrdinalIgnoreCase);
|
_values = new Dictionary<string, string>(StringComparer.OrdinalIgnoreCase);
|
||||||
State = new TenantState("Invalid");
|
State = TenantState.Invalid;
|
||||||
Themes = new string[0];
|
Themes = new string[0];
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@@ -33,7 +33,8 @@ namespace Orchard.Environment.Configuration {
|
|||||||
shellSettings.DataProvider = value;
|
shellSettings.DataProvider = value;
|
||||||
break;
|
break;
|
||||||
case "State":
|
case "State":
|
||||||
shellSettings.State = new TenantState(value);
|
TenantState state;
|
||||||
|
shellSettings.State = Enum.TryParse(value, true, out state) ? state : TenantState.Uninitialized;
|
||||||
break;
|
break;
|
||||||
case "DataConnectionString":
|
case "DataConnectionString":
|
||||||
shellSettings.DataConnectionString = value;
|
shellSettings.DataConnectionString = value;
|
||||||
|
@@ -1,41 +1,8 @@
|
|||||||
namespace Orchard.Environment.Configuration {
|
namespace Orchard.Environment.Configuration {
|
||||||
public class TenantState {
|
public enum TenantState {
|
||||||
public TenantState(string state) {
|
|
||||||
switch (state) {
|
|
||||||
case "Uninitialized":
|
|
||||||
CurrentState = State.Uninitialized;
|
|
||||||
break;
|
|
||||||
case "Running":
|
|
||||||
CurrentState = State.Running;
|
|
||||||
break;
|
|
||||||
case "Disabled":
|
|
||||||
CurrentState = State.Disabled;
|
|
||||||
break;
|
|
||||||
default:
|
|
||||||
CurrentState = State.Invalid;
|
|
||||||
break;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
public State CurrentState { get; set; }
|
|
||||||
|
|
||||||
public enum State {
|
|
||||||
Uninitialized,
|
Uninitialized,
|
||||||
Running,
|
Running,
|
||||||
Disabled,
|
Disabled,
|
||||||
Invalid
|
Invalid
|
||||||
}
|
}
|
||||||
|
|
||||||
public override string ToString() {
|
|
||||||
switch (CurrentState) {
|
|
||||||
case State.Uninitialized:
|
|
||||||
return "Uninitialized";
|
|
||||||
case State.Running:
|
|
||||||
return "Running";
|
|
||||||
case State.Disabled:
|
|
||||||
return "Disabled";
|
|
||||||
}
|
|
||||||
return "Invalid";
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
@@ -165,7 +165,7 @@ namespace Orchard.Environment {
|
|||||||
}
|
}
|
||||||
|
|
||||||
ShellContext CreateShellContext(ShellSettings settings) {
|
ShellContext CreateShellContext(ShellSettings settings) {
|
||||||
if (settings.State.CurrentState == TenantState.State.Uninitialized) {
|
if (settings.State == TenantState.Uninitialized) {
|
||||||
Logger.Debug("Creating shell context for tenant {0} setup", settings.Name);
|
Logger.Debug("Creating shell context for tenant {0} setup", settings.Name);
|
||||||
return _shellContextFactory.CreateSetupContext(settings);
|
return _shellContextFactory.CreateSetupContext(settings);
|
||||||
}
|
}
|
||||||
@@ -231,7 +231,7 @@ namespace Orchard.Environment {
|
|||||||
lock (_syncLock) {
|
lock (_syncLock) {
|
||||||
|
|
||||||
// if a tenant has been altered, and is not invalid, reload it
|
// if a tenant has been altered, and is not invalid, reload it
|
||||||
if (settings.State.CurrentState != TenantState.State.Invalid) {
|
if (settings.State != TenantState.Invalid) {
|
||||||
_tenantsToRestart = _tenantsToRestart.Where(x => x.Name != settings.Name).Union(new[] { settings });
|
_tenantsToRestart = _tenantsToRestart.Where(x => x.Name != settings.Name).Union(new[] { settings });
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -242,7 +242,7 @@ namespace Orchard.Environment {
|
|||||||
var shellContext = _shellContexts.FirstOrDefault(c => c.Settings.Name == settings.Name);
|
var shellContext = _shellContexts.FirstOrDefault(c => c.Settings.Name == settings.Name);
|
||||||
|
|
||||||
// is this is a new tenant ? or is it a tenant waiting for setup ?
|
// is this is a new tenant ? or is it a tenant waiting for setup ?
|
||||||
if (shellContext == null || settings.State.CurrentState == TenantState.State.Uninitialized) {
|
if (shellContext == null || settings.State == TenantState.Uninitialized) {
|
||||||
// create the Shell
|
// create the Shell
|
||||||
var context = CreateShellContext(settings);
|
var context = CreateShellContext(settings);
|
||||||
|
|
||||||
|
@@ -100,7 +100,7 @@ namespace Orchard.Environment {
|
|||||||
.SelectMany(group => group
|
.SelectMany(group => group
|
||||||
.OrderByDescending(settings => (settings.RequestUrlPrefix ?? string.Empty).Length))
|
.OrderByDescending(settings => (settings.RequestUrlPrefix ?? string.Empty).Length))
|
||||||
.FirstOrDefault(settings => {
|
.FirstOrDefault(settings => {
|
||||||
if (settings.State.CurrentState == TenantState.State.Disabled) {
|
if (settings.State == TenantState.Disabled) {
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
Reference in New Issue
Block a user