diff --git a/src/Umbraco.Core/Configuration/UmbracoSettings.cs b/src/Umbraco.Core/Configuration/UmbracoSettings.cs index 055353f4b5..ec1249e8ea 100644 --- a/src/Umbraco.Core/Configuration/UmbracoSettings.cs +++ b/src/Umbraco.Core/Configuration/UmbracoSettings.cs @@ -25,11 +25,8 @@ namespace Umbraco.Core.Configuration /// internal class UmbracoSettings { - private static bool GetKeyWithOverride(string key, bool defaultValue, bool? overrideValue) + private static bool GetKeyValue(string key, bool defaultValue) { - if (overrideValue.HasValue) - return overrideValue.Value; - bool value; string stringValue = GetKey(key); @@ -40,11 +37,8 @@ namespace Umbraco.Core.Configuration return defaultValue; } - private static int GetKeyWithOverride(string key, int defaultValue, int? overrideValue) + private static int GetKeyValue(string key, int defaultValue) { - if (overrideValue.HasValue) - return overrideValue.Value; - int value; string stringValue = GetKey(key); @@ -405,7 +399,7 @@ namespace Umbraco.Core.Configuration get { // default: false - return GetKeyWithOverride("/settings/requestHandler/useDomainPrefixes", false, _useDomainPrefixes); + return _useDomainPrefixes ?? GetKeyValue("/settings/requestHandler/useDomainPrefixes", false); } internal set { @@ -426,7 +420,7 @@ namespace Umbraco.Core.Configuration { // default: false return GlobalSettings.UseDirectoryUrls - && GetKeyWithOverride("/settings/requestHandler/addTrailingSlash", false, _addTrailingSlash); + && (_addTrailingSlash ?? GetKeyValue("/settings/requestHandler/addTrailingSlash", false)); } internal set { @@ -649,7 +643,7 @@ namespace Umbraco.Core.Configuration get { // default: true - return GetKeyWithOverride("/settings/content/ForceSafeAliases", true, _forceSafeAliases); + return _forceSafeAliases ?? GetKeyValue("/settings/content/ForceSafeAliases", true); } internal set { @@ -668,7 +662,7 @@ namespace Umbraco.Core.Configuration get { // default: false - return GetKeyWithOverride("/settings/web.routing/@trySkipIisCustomErrors", false, _trySkipIisCustomErrors); + return _trySkipIisCustomErrors ?? GetKeyValue("/settings/web.routing/@trySkipIisCustomErrors", false); } internal set { @@ -706,7 +700,7 @@ namespace Umbraco.Core.Configuration get { // default: 1800 - return GetKeyWithOverride("/settings/content/UmbracoLibraryCacheDuration", 1800, _umbracoLibraryCacheDuration); + return _umbracoLibraryCacheDuration ?? GetKeyValue("/settings/content/UmbracoLibraryCacheDuration", 1800); } internal set { @@ -1069,11 +1063,11 @@ namespace Umbraco.Core.Configuration get { // default: true - return GetKeyWithOverride("/settings/content/UseLegacyXmlSchema", true, _useLegacySchema); + return _useLegacySchema ?? GetKeyValue("/settings/content/UseLegacyXmlSchema", true); } internal set { - // used for unit testing + // used for unit testing _useLegacySchema = value; } } diff --git a/src/Umbraco.Tests/Routing/ContentFinderByAliasTests.cs b/src/Umbraco.Tests/Routing/ContentFinderByAliasTests.cs index 4536d34d40..801f2e1ef8 100644 --- a/src/Umbraco.Tests/Routing/ContentFinderByAliasTests.cs +++ b/src/Umbraco.Tests/Routing/ContentFinderByAliasTests.cs @@ -7,12 +7,6 @@ namespace Umbraco.Tests.Routing [TestFixture] public class ContentFinderByAliasTests : BaseRoutingTest { - public override void Initialize() - { - base.Initialize(); - Core.Configuration.UmbracoSettings.UseLegacyXmlSchema = false; - } - /// /// We don't need a db for this test, will run faster without one /// diff --git a/src/Umbraco.Tests/Routing/ContentFinderByNiceUrlAndTemplateTests.cs b/src/Umbraco.Tests/Routing/ContentFinderByNiceUrlAndTemplateTests.cs index aef1f50881..34c754439e 100644 --- a/src/Umbraco.Tests/Routing/ContentFinderByNiceUrlAndTemplateTests.cs +++ b/src/Umbraco.Tests/Routing/ContentFinderByNiceUrlAndTemplateTests.cs @@ -9,12 +9,6 @@ namespace Umbraco.Tests.Routing [TestFixture] public class ContentFinderByNiceUrlAndTemplateTests : BaseRoutingTest { - public override void Initialize() - { - base.Initialize(); - Umbraco.Core.Configuration.UmbracoSettings.UseLegacyXmlSchema = false; - } - Template CreateTemplate(string alias) { var template = new Template(alias, alias, alias); diff --git a/src/Umbraco.Tests/Routing/ContentFinderByNiceUrlTests.cs b/src/Umbraco.Tests/Routing/ContentFinderByNiceUrlTests.cs index 286fa7a122..56ede90e7f 100644 --- a/src/Umbraco.Tests/Routing/ContentFinderByNiceUrlTests.cs +++ b/src/Umbraco.Tests/Routing/ContentFinderByNiceUrlTests.cs @@ -10,12 +10,6 @@ namespace Umbraco.Tests.Routing [TestFixture] public class ContentFinderByNiceUrlTests : BaseRoutingTest { - public override void Initialize() - { - base.Initialize(); - Umbraco.Core.Configuration.UmbracoSettings.UseLegacyXmlSchema = false; - } - /// /// We don't need a db for this test, will run faster without one /// @@ -41,7 +35,7 @@ namespace Umbraco.Tests.Routing var url = routingContext.UmbracoContext.CleanedUmbracoUrl; //very important to use the cleaned up umbraco url var docreq = new PublishedContentRequest(url, routingContext); var lookup = new ContentFinderByNiceUrl(); - ConfigurationManager.AppSettings.Set("umbracoHideTopLevelNodeFromPath", "true"); + SettingsForTests.HideTopLevelNodeFromPath = true; var result = lookup.TryFindDocument(docreq); @@ -68,7 +62,7 @@ namespace Umbraco.Tests.Routing var url = routingContext.UmbracoContext.CleanedUmbracoUrl; //very important to use the cleaned up umbraco url var docreq = new PublishedContentRequest(url, routingContext); var lookup = new ContentFinderByNiceUrl(); - ConfigurationManager.AppSettings.Set("umbracoHideTopLevelNodeFromPath", "false"); + SettingsForTests.HideTopLevelNodeFromPath = false; var result = lookup.TryFindDocument(docreq); diff --git a/src/Umbraco.Tests/Routing/ContentFinderByNiceUrlWithDomainsTests.cs b/src/Umbraco.Tests/Routing/ContentFinderByNiceUrlWithDomainsTests.cs index 8ce9febc21..633796f9d5 100644 --- a/src/Umbraco.Tests/Routing/ContentFinderByNiceUrlWithDomainsTests.cs +++ b/src/Umbraco.Tests/Routing/ContentFinderByNiceUrlWithDomainsTests.cs @@ -22,16 +22,8 @@ namespace Umbraco.Tests.Routing TestHelper.DropForeignKeys("umbracoDomains"); InitializeLanguagesAndDomains(); - Umbraco.Core.Configuration.UmbracoSettings.UseLegacyXmlSchema = false; } - public override void TearDown() - { - base.TearDown(); - - } - - void InitializeLanguagesAndDomains() { var domains = Domain.GetDomains(); @@ -158,7 +150,7 @@ namespace Umbraco.Tests.Routing { SetDomains3(); - ConfigurationManager.AppSettings.Set("umbracoHideTopLevelNodeFromPath", "true"); + SettingsForTests.HideTopLevelNodeFromPath = true; var routingContext = GetRoutingContext(url); var uri = routingContext.UmbracoContext.CleanedUmbracoUrl; //very important to use the cleaned up umbraco url @@ -196,7 +188,7 @@ namespace Umbraco.Tests.Routing { SetDomains4(); - ConfigurationManager.AppSettings.Set("umbracoHideTopLevelNodeFromPath", "true"); + SettingsForTests.HideTopLevelNodeFromPath = true; var routingContext = GetRoutingContext(url); var uri = routingContext.UmbracoContext.CleanedUmbracoUrl; //very important to use the cleaned up umbraco url diff --git a/src/Umbraco.Tests/Routing/NiceUrlProviderTests.cs b/src/Umbraco.Tests/Routing/NiceUrlProviderTests.cs index fd1e54783e..e717a464f4 100644 --- a/src/Umbraco.Tests/Routing/NiceUrlProviderTests.cs +++ b/src/Umbraco.Tests/Routing/NiceUrlProviderTests.cs @@ -25,18 +25,7 @@ namespace Umbraco.Tests.Routing Path.Combine(currDir.Parent.Parent.FullName, "config", "umbracoSettings.config"), true); - Core.Configuration.UmbracoSettings.SettingsFilePath = Core.IO.IOHelper.MapPath(Core.IO.SystemDirectories.Config + Path.DirectorySeparatorChar, false); - - - Umbraco.Core.Configuration.UmbracoSettings.UseLegacyXmlSchema = false; - } - - public override void TearDown() - { - base.TearDown(); - - ConfigurationManager.AppSettings.Set("umbracoUseDirectoryUrls", ""); - ConfigurationManager.AppSettings.Set("umbracoHideTopLevelNodeFromPath", ""); + SettingsForTests.SettingsFilePath = Core.IO.IOHelper.MapPath(Core.IO.SystemDirectories.Config + Path.DirectorySeparatorChar, false); } internal override IRoutesCache GetRoutesCache() @@ -52,18 +41,19 @@ namespace Umbraco.Tests.Routing public void Ensure_Cache_Is_Correct() { var routingContext = GetRoutingContext("/test", 1111); - ConfigurationManager.AppSettings.Set("umbracoUseDirectoryUrls", "true"); - Umbraco.Core.Configuration.UmbracoSettings.AddTrailingSlash = false; + SettingsForTests.UseDirectoryUrls = true; + SettingsForTests.HideTopLevelNodeFromPath = false; + SettingsForTests.AddTrailingSlash = false; // (cached routes have none) var samples = new Dictionary { { 1046, "/home" }, - { 1173, "/home/sub1/" }, - { 1174, "/home/sub1/sub2/" }, - { 1176, "/home/sub1/sub-3/" }, - { 1177, "/home/sub1/custom-sub-1/" }, - { 1178, "/home/sub1/custom-sub-2/" }, - { 1175, "/home/sub-2/" }, - { 1172, "/test-page/" } + { 1173, "/home/sub1" }, + { 1174, "/home/sub1/sub2" }, + { 1176, "/home/sub1/sub-3" }, + { 1177, "/home/sub1/custom-sub-1" }, + { 1178, "/home/sub1/custom-sub-2" }, + { 1175, "/home/sub-2" }, + { 1172, "/test-page" } }; foreach (var sample in samples) @@ -72,7 +62,7 @@ namespace Umbraco.Tests.Routing Assert.AreEqual(sample.Value, result); } - var randomSample = new KeyValuePair(1177, "/home/sub1/custom-sub-1/"); + var randomSample = new KeyValuePair(1177, "/home/sub1/custom-sub-1"); for (int i = 0; i < 5; i++) { var result = routingContext.NiceUrlProvider.GetNiceUrl(randomSample.Key); @@ -112,9 +102,9 @@ namespace Umbraco.Tests.Routing { var routingContext = GetRoutingContext("/test", 1111); - ConfigurationManager.AppSettings.Set("umbracoUseDirectoryUrls", "true"); - ConfigurationManager.AppSettings.Set("umbracoHideTopLevelNodeFromPath", "false"); - Umbraco.Core.Configuration.UmbracoSettings.UseDomainPrefixes = false; + SettingsForTests.UseDirectoryUrls = true; + SettingsForTests.HideTopLevelNodeFromPath = false; + SettingsForTests.UseDomainPrefixes = false; var result = routingContext.NiceUrlProvider.GetNiceUrl(nodeId); Assert.AreEqual(niceUrlMatch, result); @@ -135,9 +125,9 @@ namespace Umbraco.Tests.Routing { var routingContext = GetRoutingContext("/test", 1111); - ConfigurationManager.AppSettings.Set("umbracoUseDirectoryUrls", "true"); - ConfigurationManager.AppSettings.Set("umbracoHideTopLevelNodeFromPath", "true"); - Umbraco.Core.Configuration.UmbracoSettings.UseDomainPrefixes = false; + SettingsForTests.UseDirectoryUrls = true; + SettingsForTests.HideTopLevelNodeFromPath = true; + SettingsForTests.UseDomainPrefixes = false; var result = routingContext.NiceUrlProvider.GetNiceUrl(nodeId); Assert.AreEqual(niceUrlMatch, result); @@ -148,16 +138,16 @@ namespace Umbraco.Tests.Routing { var routingContext = GetRoutingContext("http://example.com/test", 1111); - ConfigurationManager.AppSettings.Set("umbracoUseDirectoryUrls", "true"); - ConfigurationManager.AppSettings.Set("umbracoHideTopLevelNodeFromPath", "false"); + SettingsForTests.UseDirectoryUrls = true; + SettingsForTests.HideTopLevelNodeFromPath = false; - Umbraco.Core.Configuration.UmbracoSettings.UseDomainPrefixes = false; + SettingsForTests.UseDomainPrefixes = false; Assert.AreEqual("/home/sub1/custom-sub-1/", routingContext.NiceUrlProvider.GetNiceUrl(1177)); - Umbraco.Core.Configuration.UmbracoSettings.UseDomainPrefixes = true; + SettingsForTests.UseDomainPrefixes = true; Assert.AreEqual("http://example.com/home/sub1/custom-sub-1/", routingContext.NiceUrlProvider.GetNiceUrl(1177)); - Umbraco.Core.Configuration.UmbracoSettings.UseDomainPrefixes = false; + SettingsForTests.UseDomainPrefixes = false; routingContext.NiceUrlProvider.EnforceAbsoluteUrls = true; Assert.AreEqual("http://example.com/home/sub1/custom-sub-1/", routingContext.NiceUrlProvider.GetNiceUrl(1177)); } @@ -167,14 +157,14 @@ namespace Umbraco.Tests.Routing { var routingContext = GetRoutingContext("http://example.com/test", 1111); - ConfigurationManager.AppSettings.Set("umbracoUseDirectoryUrls", "true"); - ConfigurationManager.AppSettings.Set("umbracoHideTopLevelNodeFromPath", "false"); + SettingsForTests.UseDirectoryUrls = true; + SettingsForTests.HideTopLevelNodeFromPath = false; - Umbraco.Core.Configuration.UmbracoSettings.UseDomainPrefixes = false; + SettingsForTests.UseDomainPrefixes = false; Assert.AreEqual("#", routingContext.NiceUrlProvider.GetNiceUrl(999999)); - Umbraco.Core.Configuration.UmbracoSettings.UseDomainPrefixes = true; + SettingsForTests.UseDomainPrefixes = true; Assert.AreEqual("#", routingContext.NiceUrlProvider.GetNiceUrl(999999)); - Umbraco.Core.Configuration.UmbracoSettings.UseDomainPrefixes = false; + SettingsForTests.UseDomainPrefixes = false; routingContext.NiceUrlProvider.EnforceAbsoluteUrls = true; Assert.AreEqual("#", routingContext.NiceUrlProvider.GetNiceUrl(999999)); } diff --git a/src/Umbraco.Tests/Routing/NiceUrlsProviderWithDomainsTests.cs b/src/Umbraco.Tests/Routing/NiceUrlsProviderWithDomainsTests.cs index fbcc4afe75..7d8c136d55 100644 --- a/src/Umbraco.Tests/Routing/NiceUrlsProviderWithDomainsTests.cs +++ b/src/Umbraco.Tests/Routing/NiceUrlsProviderWithDomainsTests.cs @@ -22,14 +22,6 @@ namespace Umbraco.Tests.Routing TestHelper.DropForeignKeys("umbracoDomains"); } - public override void TearDown() - { - base.TearDown(); - - ConfigurationManager.AppSettings.Set("umbracoUseDirectoryUrls", ""); - ConfigurationManager.AppSettings.Set("umbracoHideTopLevelNodeFromPath", ""); - } - internal override IRoutesCache GetRoutesCache() { return new DefaultRoutesCache(false); @@ -203,9 +195,9 @@ namespace Umbraco.Tests.Routing { var routingContext = GetRoutingContext("/test", 1111); - ConfigurationManager.AppSettings.Set("umbracoUseDirectoryUrls", "true"); - ConfigurationManager.AppSettings.Set("umbracoHideTopLevelNodeFromPath", "false"); // ignored w/domains - Umbraco.Core.Configuration.UmbracoSettings.UseDomainPrefixes = false; + SettingsForTests.UseDirectoryUrls = true; + SettingsForTests.HideTopLevelNodeFromPath = false; // ignored w/domains + SettingsForTests.UseDomainPrefixes = false; InitializeLanguagesAndDomains(); SetDomains1(); @@ -232,9 +224,9 @@ namespace Umbraco.Tests.Routing { var routingContext = GetRoutingContext("/test", 1111); - ConfigurationManager.AppSettings.Set("umbracoUseDirectoryUrls", "true"); - ConfigurationManager.AppSettings.Set("umbracoHideTopLevelNodeFromPath", "false"); // ignored w/domains - Umbraco.Core.Configuration.UmbracoSettings.UseDomainPrefixes = false; + SettingsForTests.UseDirectoryUrls = true; + SettingsForTests.HideTopLevelNodeFromPath = false; // ignored w/domains + SettingsForTests.UseDomainPrefixes = false; InitializeLanguagesAndDomains(); SetDomains2(); @@ -253,9 +245,9 @@ namespace Umbraco.Tests.Routing { var routingContext = GetRoutingContext("/test", 1111); - ConfigurationManager.AppSettings.Set("umbracoUseDirectoryUrls", "true"); - ConfigurationManager.AppSettings.Set("umbracoHideTopLevelNodeFromPath", "false"); // ignored w/domains - Umbraco.Core.Configuration.UmbracoSettings.UseDomainPrefixes = false; + SettingsForTests.UseDirectoryUrls = true; + SettingsForTests.HideTopLevelNodeFromPath = false; // ignored w/domains + SettingsForTests.UseDomainPrefixes = false; InitializeLanguagesAndDomains(); SetDomains3(); @@ -279,11 +271,11 @@ namespace Umbraco.Tests.Routing public void Get_Nice_Url_NestedDomains(int nodeId, string currentUrl, bool absolute, string expected) { var routingContext = GetRoutingContext("/test", 1111); - Umbraco.Core.Configuration.UmbracoSettings.UseDomainPrefixes = false; - - ConfigurationManager.AppSettings.Set("umbracoUseDirectoryUrls", "true"); - ConfigurationManager.AppSettings.Set("umbracoHideTopLevelNodeFromPath", "false"); // ignored w/domains + SettingsForTests.UseDirectoryUrls = true; + SettingsForTests.HideTopLevelNodeFromPath = false; // ignored w/domains + SettingsForTests.UseDomainPrefixes = false; + InitializeLanguagesAndDomains(); SetDomains4(); @@ -297,9 +289,9 @@ namespace Umbraco.Tests.Routing { var routingContext = GetRoutingContext("/test", 1111); - ConfigurationManager.AppSettings.Set("umbracoUseDirectoryUrls", "true"); - ConfigurationManager.AppSettings.Set("umbracoHideTopLevelNodeFromPath", "false"); // ignored w/domains - Umbraco.Core.Configuration.UmbracoSettings.UseDomainPrefixes = false; + SettingsForTests.UseDirectoryUrls = true; + SettingsForTests.HideTopLevelNodeFromPath = false; // ignored w/domains + SettingsForTests.UseDomainPrefixes = false; InitializeLanguagesAndDomains(); SetDomains4(); @@ -356,22 +348,22 @@ namespace Umbraco.Tests.Routing { var routingContext = GetRoutingContext("http://domain1.com/test", 1111); - ConfigurationManager.AppSettings.Set("umbracoUseDirectoryUrls", "true"); - ConfigurationManager.AppSettings.Set("umbracoHideTopLevelNodeFromPath", "false"); + SettingsForTests.UseDirectoryUrls = true; + SettingsForTests.HideTopLevelNodeFromPath = false; InitializeLanguagesAndDomains(); SetDomains4(); - Umbraco.Core.Configuration.UmbracoSettings.UseDomainPrefixes = false; - Assert.AreEqual("/en/1001-1-1/", routingContext.NiceUrlProvider.GetNiceUrl(100111)); + SettingsForTests.UseDomainPrefixes = false; + Assert.AreEqual("/en/1001-1-1/", routingContext.NiceUrlProvider.GetNiceUrl(100111)); Assert.AreEqual("http://domain3.com/en/1003-1-1/", routingContext.NiceUrlProvider.GetNiceUrl(100311)); - Umbraco.Core.Configuration.UmbracoSettings.UseDomainPrefixes = true; - Assert.AreEqual("http://domain1.com/en/1001-1-1/", routingContext.NiceUrlProvider.GetNiceUrl(100111)); + SettingsForTests.UseDomainPrefixes = true; + Assert.AreEqual("http://domain1.com/en/1001-1-1/", routingContext.NiceUrlProvider.GetNiceUrl(100111)); Assert.AreEqual("http://domain3.com/en/1003-1-1/", routingContext.NiceUrlProvider.GetNiceUrl(100311)); - Umbraco.Core.Configuration.UmbracoSettings.UseDomainPrefixes = false; - routingContext.NiceUrlProvider.EnforceAbsoluteUrls = true; + SettingsForTests.UseDomainPrefixes = false; + routingContext.NiceUrlProvider.EnforceAbsoluteUrls = true; Assert.AreEqual("http://domain1.com/en/1001-1-1/", routingContext.NiceUrlProvider.GetNiceUrl(100111)); Assert.AreEqual("http://domain3.com/en/1003-1-1/", routingContext.NiceUrlProvider.GetNiceUrl(100311)); } @@ -381,8 +373,8 @@ namespace Umbraco.Tests.Routing { var routingContext = GetRoutingContext("http://domain1.com/test", 1111); - ConfigurationManager.AppSettings.Set("umbracoUseDirectoryUrls", "true"); - ConfigurationManager.AppSettings.Set("umbracoHideTopLevelNodeFromPath", "false"); + SettingsForTests.UseDirectoryUrls = true; + SettingsForTests.HideTopLevelNodeFromPath = false; InitializeLanguagesAndDomains(); SetDomains5(); diff --git a/src/Umbraco.Tests/Routing/RenderRouteHandlerTests.cs b/src/Umbraco.Tests/Routing/RenderRouteHandlerTests.cs index fa59741e8a..5bdd0bac75 100644 --- a/src/Umbraco.Tests/Routing/RenderRouteHandlerTests.cs +++ b/src/Umbraco.Tests/Routing/RenderRouteHandlerTests.cs @@ -26,7 +26,7 @@ namespace Umbraco.Tests.Routing base.Initialize(); - System.Configuration.ConfigurationManager.AppSettings.Set("umbracoPath", "~/umbraco"); + SettingsForTests.UmbracoPath = "~/umbraco"; var webBoot = new WebBootManager(new UmbracoApplication(), true); //webBoot.Initialize(); @@ -40,7 +40,6 @@ namespace Umbraco.Tests.Routing base.TearDown(); UmbracoContext.Current = null; RouteTable.Routes.Clear(); - System.Configuration.ConfigurationManager.AppSettings.Set("umbracoPath", ""); SurfaceControllerResolver.Reset(); PluginManager.Current = null; } diff --git a/src/Umbraco.Tests/Routing/UmbracoModuleTests.cs b/src/Umbraco.Tests/Routing/UmbracoModuleTests.cs index 362831da85..b46c538147 100644 --- a/src/Umbraco.Tests/Routing/UmbracoModuleTests.cs +++ b/src/Umbraco.Tests/Routing/UmbracoModuleTests.cs @@ -31,9 +31,9 @@ namespace Umbraco.Tests.Routing //create the module _module = new UmbracoModule(); - ConfigurationManager.AppSettings.Set("umbracoConfigurationStatus", UmbracoVersion.Current.ToString(3)); - ConfigurationManager.AppSettings.Set("umbracoReservedPaths", "~/umbraco,~/install/"); - ConfigurationManager.AppSettings.Set("umbracoReservedUrls", "~/config/splashes/booting.aspx,~/install/default.aspx,~/config/splashes/noNodes.aspx,~/VSEnterpriseHelper.axd"); + SettingsForTests.ConfigurationStatus = UmbracoVersion.Current.ToString(3); + SettingsForTests.ReservedPaths = "~/umbraco,~/install/"; + SettingsForTests.ReservedUrls = "~/config/splashes/booting.aspx,~/install/default.aspx,~/config/splashes/noNodes.aspx,~/VSEnterpriseHelper.axd"; //create the not found handlers config using (var sw = File.CreateText(Umbraco.Core.IO.IOHelper.MapPath(Umbraco.Core.IO.SystemFiles.NotFoundhandlersConfig, false))) @@ -52,11 +52,6 @@ namespace Umbraco.Tests.Routing base.TearDown(); _module.DisposeIfDisposable(); - - //reset the app config - ConfigurationManager.AppSettings.Set("umbracoConfigurationStatus", ""); - ConfigurationManager.AppSettings.Set("umbracoReservedPaths", ""); - ConfigurationManager.AppSettings.Set("umbracoReservedUrls", ""); } // do not test for /base here as it's handled before EnsureUmbracoRoutablePage is called diff --git a/src/Umbraco.Tests/Routing/UrlsWithNestedDomains.cs b/src/Umbraco.Tests/Routing/UrlsWithNestedDomains.cs index d6f066924a..6ac27d62b9 100644 --- a/src/Umbraco.Tests/Routing/UrlsWithNestedDomains.cs +++ b/src/Umbraco.Tests/Routing/UrlsWithNestedDomains.cs @@ -22,9 +22,9 @@ namespace Umbraco.Tests.Routing [Test] public void DoNotPolluteCache() { - ConfigurationManager.AppSettings.Set("umbracoUseDirectoryUrls", "true"); - ConfigurationManager.AppSettings.Set("umbracoHideTopLevelNodeFromPath", "false"); // ignored w/domains - Umbraco.Core.Configuration.UmbracoSettings.UseDomainPrefixes = false; + SettingsForTests.UseDirectoryUrls = true; + SettingsForTests.HideTopLevelNodeFromPath = false; // ignored w/domains + SettingsForTests.UseDomainPrefixes = false; InitializeLanguagesAndDomains(); SetDomains1(); @@ -71,15 +71,6 @@ namespace Umbraco.Tests.Routing TestHelper.DropForeignKeys("umbracoDomains"); } - public override void TearDown() - { - base.TearDown(); - - ConfigurationManager.AppSettings.Set("umbracoUseDirectoryUrls", ""); - ConfigurationManager.AppSettings.Set("umbracoHideTopLevelNodeFromPath", ""); - - } - internal override IRoutesCache GetRoutesCache() { return new DefaultRoutesCache(false); diff --git a/src/Umbraco.Tests/Routing/uQueryGetNodeIdByUrlTests.cs b/src/Umbraco.Tests/Routing/uQueryGetNodeIdByUrlTests.cs index fe03b5e2b5..6193acc474 100644 --- a/src/Umbraco.Tests/Routing/uQueryGetNodeIdByUrlTests.cs +++ b/src/Umbraco.Tests/Routing/uQueryGetNodeIdByUrlTests.cs @@ -16,14 +16,6 @@ namespace Umbraco.Tests.Routing [TestFixture] public class uQueryGetNodeIdByUrlTests : BaseRoutingTest { - public override void TearDown() - { - base.TearDown(); - - ConfigurationManager.AppSettings.Set("umbracoUseDirectoryUrls", ""); - ConfigurationManager.AppSettings.Set("umbracoHideTopLevelNodeFromPath", ""); - } - internal override IRoutesCache GetRoutesCache() { return new DefaultRoutesCache(false); @@ -71,10 +63,9 @@ namespace Umbraco.Tests.Routing public void GetNodeIdByUrl_Not_Hiding_Top_Level_Absolute(int nodeId, string url) { - - ConfigurationManager.AppSettings.Set("umbracoUseDirectoryUrls", "true"); - ConfigurationManager.AppSettings.Set("umbracoHideTopLevelNodeFromPath", "false"); - Umbraco.Core.Configuration.UmbracoSettings.UseDomainPrefixes = false; + SettingsForTests.UseDirectoryUrls = true; + SettingsForTests.HideTopLevelNodeFromPath = false; + SettingsForTests.UseDomainPrefixes = false; Assert.AreEqual(nodeId, global::umbraco.uQuery.GetNodeIdByUrl("http://example.com" + url)); } @@ -90,9 +81,9 @@ namespace Umbraco.Tests.Routing public void GetNodeIdByUrl_Not_Hiding_Top_Level_Relative(int nodeId, string url) { - ConfigurationManager.AppSettings.Set("umbracoUseDirectoryUrls", "true"); - ConfigurationManager.AppSettings.Set("umbracoHideTopLevelNodeFromPath", "false"); - Umbraco.Core.Configuration.UmbracoSettings.UseDomainPrefixes = false; + SettingsForTests.UseDirectoryUrls = true; + SettingsForTests.HideTopLevelNodeFromPath = false; + SettingsForTests.UseDomainPrefixes = false; Assert.AreEqual(nodeId, global::umbraco.uQuery.GetNodeIdByUrl(url)); } diff --git a/src/Umbraco.Tests/TestHelpers/BaseRoutingTest.cs b/src/Umbraco.Tests/TestHelpers/BaseRoutingTest.cs index 039ac23b50..b31bbeda9b 100644 --- a/src/Umbraco.Tests/TestHelpers/BaseRoutingTest.cs +++ b/src/Umbraco.Tests/TestHelpers/BaseRoutingTest.cs @@ -13,18 +13,6 @@ namespace Umbraco.Tests.TestHelpers [TestFixture, RequiresSTA] public abstract class BaseRoutingTest : BaseWebTest { - public override void Initialize() - { - base.Initialize(); - } - - public override void TearDown() - { - base.TearDown(); - - ConfigurationManager.AppSettings.Set("umbracoHideTopLevelNodeFromPath", ""); - } - /// /// Return a new RoutingContext /// diff --git a/src/Umbraco.Tests/TestHelpers/BaseWebTest.cs b/src/Umbraco.Tests/TestHelpers/BaseWebTest.cs index aeb9e7092d..0df8b29e2f 100644 --- a/src/Umbraco.Tests/TestHelpers/BaseWebTest.cs +++ b/src/Umbraco.Tests/TestHelpers/BaseWebTest.cs @@ -31,15 +31,14 @@ namespace Umbraco.Tests.TestHelpers [SetUp] public virtual void Initialize() { - TestHelper.SetupLog4NetForTests(); - + SettingsForTests.Reset(); + + TestHelper.SetupLog4NetForTests(); TestHelper.InitializeContentDirectories(); string path = TestHelper.CurrentAssemblyDirectory; AppDomain.CurrentDomain.SetData("DataDirectory", path); - UmbracoSettings.UseLegacyXmlSchema = false; - RepositoryResolver.Current = new RepositoryResolver( new RepositoryFactory()); @@ -138,7 +137,7 @@ namespace Umbraco.Tests.TestHelpers Cache.ClearAllCache(); - UmbracoSettings.ResetSetters(); + SettingsForTests.Reset(); PluginManager.Current = null; } diff --git a/src/Umbraco.Tests/TestHelpers/SettingsForTests.cs b/src/Umbraco.Tests/TestHelpers/SettingsForTests.cs new file mode 100644 index 0000000000..69525d361d --- /dev/null +++ b/src/Umbraco.Tests/TestHelpers/SettingsForTests.cs @@ -0,0 +1,114 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; +using System.Configuration; +using Umbraco.Core.Configuration; + +namespace Umbraco.Tests.TestHelpers +{ + class SettingsForTests + { + // umbracoSettings + + public static bool UseLegacyXmlSchema + { + get { return UmbracoSettings.UseLegacyXmlSchema; } + set { UmbracoSettings.UseLegacyXmlSchema = value; } + } + + public static bool AddTrailingSlash + { + get { return UmbracoSettings.AddTrailingSlash; } + set { UmbracoSettings.AddTrailingSlash = value; } + } + + public static bool UseDomainPrefixes + { + get { return UmbracoSettings.UseDomainPrefixes; } + set { UmbracoSettings.UseDomainPrefixes = value; } + } + + public static string SettingsFilePath + { + get { return UmbracoSettings.SettingsFilePath; } + set { UmbracoSettings.SettingsFilePath = value; } + } + + // from appSettings + + private static readonly IDictionary SavedAppSettings = new Dictionary(); + + static void SaveSetting(string key) + { + SavedAppSettings[key] = ConfigurationManager.AppSettings[key]; + } + + static void SaveSettings() + { + SaveSetting("umbracoHideTopLevelNodeFromPath"); + SaveSetting("umbracoUseDirectoryUrls"); + SaveSetting("umbracoPath"); + SaveSetting("umbracoReservedPaths"); + SaveSetting("umbracoReservedUrls"); + SaveSetting("umbracoConfigurationStatus"); + + SaveSetting(GlobalSettings.UmbracoConnectionName); + } + + public static bool HideTopLevelNodeFromPath + { + get { return GlobalSettings.HideTopLevelNodeFromPath; } + set { ConfigurationManager.AppSettings.Set("umbracoHideTopLevelNodeFromPath", value ? "true" : "false"); } + } + + public static bool UseDirectoryUrls + { + get { return GlobalSettings.UseDirectoryUrls; } + set { ConfigurationManager.AppSettings.Set("umbracoUseDirectoryUrls", value ? "true" : "false"); } + } + + public static string UmbracoPath + { + get { return GlobalSettings.Path; } + set { ConfigurationManager.AppSettings.Set("umbracoPath", value); } + } + + public static string ReservedPaths + { + get { return GlobalSettings.ReservedPaths; } + set { ConfigurationManager.AppSettings.Set("umbracoReservedPaths", value); } + } + + public static string ReservedUrls + { + get { return GlobalSettings.ReservedUrls; } + set { ConfigurationManager.AppSettings.Set("umbracoReservedUrls", value); } + } + + public static string ConfigurationStatus + { + get { return GlobalSettings.ConfigurationStatus; } + set { ConfigurationManager.AppSettings.Set("umbracoConfigurationStatus", value); } + } + + // reset & defaults + + static SettingsForTests() + { + SaveSettings(); + } + + public static void Reset() + { + UmbracoSettings.ResetSetters(); + + foreach (var kvp in SavedAppSettings) + ConfigurationManager.AppSettings.Set(kvp.Key, kvp.Value); + + // set some defaults that are wrong in the config file?! + // this is annoying, really + HideTopLevelNodeFromPath = false; + } + } +} diff --git a/src/Umbraco.Tests/Umbraco.Tests.csproj b/src/Umbraco.Tests/Umbraco.Tests.csproj index f764d92cb1..5787a5b245 100644 --- a/src/Umbraco.Tests/Umbraco.Tests.csproj +++ b/src/Umbraco.Tests/Umbraco.Tests.csproj @@ -285,6 +285,7 @@ +