From 8fd59d546eea64d000ec3dbf0a59bc004a51c5cf Mon Sep 17 00:00:00 2001 From: Andy Butland Date: Wed, 26 Aug 2020 07:55:23 +0200 Subject: [PATCH] Fixed failing tests. --- src/Umbraco.Core/Umbraco.Core.csproj | 2 +- .../ConfigModelConversionsFromLegacy.cs | 22 ++-- .../Packaging/PackageDataInstallation.cs | 5 +- .../Persistence/UmbracoDatabaseFactory.cs | 3 - src/Umbraco.Tests.Integration/RuntimeTests.cs | 2 +- src/Umbraco.Tests/App.config | 2 +- src/Umbraco.Tests/IO/FileSystemsTests.cs | 5 +- .../Packaging/PackageInstallationTest.cs | 4 +- .../Routing/BaseUrlProviderTest.cs | 49 ++++++++ .../Routing/GetContentUrlsTests.cs | 2 +- ...oviderWithHideTopLevelNodeFromPathTests.cs | 60 +++++++++ ...erWithoutHideTopLevelNodeFromPathTests.cs} | 116 +++++------------- .../Routing/UrlsProviderWithDomainsTests.cs | 14 +-- .../Routing/UrlsWithNestedDomains.cs | 2 +- src/Umbraco.Tests/Runtimes/StandaloneTests.cs | 18 +++ .../Strings/DefaultShortStringHelperTests.cs | 69 ++++++----- .../TEMP/DatabaseContextTests.sdf | Bin 983040 -> 983040 bytes src/Umbraco.Tests/TestHelpers/TestObjects.cs | 6 +- src/Umbraco.Tests/Umbraco.Tests.csproj | 4 +- .../Controllers/ContentTypeController.cs | 2 +- 20 files changed, 235 insertions(+), 152 deletions(-) create mode 100644 src/Umbraco.Tests/Routing/BaseUrlProviderTest.cs create mode 100644 src/Umbraco.Tests/Routing/UrlProviderWithHideTopLevelNodeFromPathTests.cs rename src/Umbraco.Tests/Routing/{UrlProviderTests.cs => UrlProviderWithoutHideTopLevelNodeFromPathTests.cs} (76%) diff --git a/src/Umbraco.Core/Umbraco.Core.csproj b/src/Umbraco.Core/Umbraco.Core.csproj index 4f1c421d97..ca5569aa4d 100644 --- a/src/Umbraco.Core/Umbraco.Core.csproj +++ b/src/Umbraco.Core/Umbraco.Core.csproj @@ -15,7 +15,7 @@ - + diff --git a/src/Umbraco.Infrastructure/Configuration/ConfigModelConversionsFromLegacy.cs b/src/Umbraco.Infrastructure/Configuration/ConfigModelConversionsFromLegacy.cs index 42ed290e63..529568ca16 100644 --- a/src/Umbraco.Infrastructure/Configuration/ConfigModelConversionsFromLegacy.cs +++ b/src/Umbraco.Infrastructure/Configuration/ConfigModelConversionsFromLegacy.cs @@ -26,16 +26,18 @@ namespace Umbraco.Infrastructure.Configuration RegisterType = globalSettings.RegisterType, ReservedPaths = globalSettings.ReservedPaths, ReservedUrls = globalSettings.ReservedUrls, - Smtp = new SmtpSettings - { - DeliveryMethod = globalSettings.SmtpSettings.DeliveryMethod, - From = globalSettings.SmtpSettings.From, - Host = globalSettings.SmtpSettings.Host, - Password = globalSettings.SmtpSettings.Password, - PickupDirectoryLocation = globalSettings.SmtpSettings.PickupDirectoryLocation, - Port = globalSettings.SmtpSettings.Port, - Username = globalSettings.SmtpSettings.Username, - }, + Smtp = globalSettings.SmtpSettings != null + ? new SmtpSettings + { + DeliveryMethod = globalSettings.SmtpSettings.DeliveryMethod, + From = globalSettings.SmtpSettings.From, + Host = globalSettings.SmtpSettings.Host, + Password = globalSettings.SmtpSettings.Password, + PickupDirectoryLocation = globalSettings.SmtpSettings.PickupDirectoryLocation, + Port = globalSettings.SmtpSettings.Port, + Username = globalSettings.SmtpSettings.Username, + } + : new SmtpSettings(), TimeOutInMinutes = globalSettings.TimeOutInMinutes, UmbracoCssPath = globalSettings.UmbracoCssPath, UmbracoMediaPath = globalSettings.UmbracoMediaPath, diff --git a/src/Umbraco.Infrastructure/Packaging/PackageDataInstallation.cs b/src/Umbraco.Infrastructure/Packaging/PackageDataInstallation.cs index a868170c5f..79f830bc51 100644 --- a/src/Umbraco.Infrastructure/Packaging/PackageDataInstallation.cs +++ b/src/Umbraco.Infrastructure/Packaging/PackageDataInstallation.cs @@ -5,6 +5,7 @@ using System.Linq; using System.Net; using System.Xml.Linq; using System.Xml.XPath; +using Microsoft.Extensions.Options; using Umbraco.Core.Collections; using Umbraco.Core.Configuration; using Umbraco.Core.Configuration.Models; @@ -38,7 +39,7 @@ namespace Umbraco.Core.Packaging public PackageDataInstallation(ILogger logger, IFileService fileService, IMacroService macroService, ILocalizationService localizationService, IDataTypeService dataTypeService, IEntityService entityService, IContentTypeService contentTypeService, - IContentService contentService, PropertyEditorCollection propertyEditors, IScopeProvider scopeProvider, IShortStringHelper shortStringHelper, GlobalSettings globalSettings, + IContentService contentService, PropertyEditorCollection propertyEditors, IScopeProvider scopeProvider, IShortStringHelper shortStringHelper, IOptions globalSettings, ILocalizedTextService localizedTextService) { _logger = logger; @@ -49,7 +50,7 @@ namespace Umbraco.Core.Packaging _propertyEditors = propertyEditors; _scopeProvider = scopeProvider; _shortStringHelper = shortStringHelper; - _globalSettings = globalSettings; + _globalSettings = globalSettings.Value; _localizedTextService = localizedTextService; _entityService = entityService; _contentTypeService = contentTypeService; diff --git a/src/Umbraco.Infrastructure/Persistence/UmbracoDatabaseFactory.cs b/src/Umbraco.Infrastructure/Persistence/UmbracoDatabaseFactory.cs index 1b46a6a3cd..afdf4c879a 100644 --- a/src/Umbraco.Infrastructure/Persistence/UmbracoDatabaseFactory.cs +++ b/src/Umbraco.Infrastructure/Persistence/UmbracoDatabaseFactory.cs @@ -1,11 +1,8 @@ using System; using System.Data.Common; -using System.Data.SqlClient; using System.Threading; using NPoco; using NPoco.FluentMappings; -using Umbraco.Core.Composing; -using Umbraco.Core.Configuration; using Umbraco.Core.Configuration.Models; using Umbraco.Core.Logging; using Umbraco.Core.Persistence.FaultHandling; diff --git a/src/Umbraco.Tests.Integration/RuntimeTests.cs b/src/Umbraco.Tests.Integration/RuntimeTests.cs index 11bda500b2..c51c991e26 100644 --- a/src/Umbraco.Tests.Integration/RuntimeTests.cs +++ b/src/Umbraco.Tests.Integration/RuntimeTests.cs @@ -75,7 +75,7 @@ namespace Umbraco.Tests.Integration Assert.IsFalse(MyComponent.IsInit); Assert.IsFalse(MyComponent.IsTerminated); - // TODO: found these registration were necessary here (as we haven't called the HostBuilder?), and dependencies for ComponentCollection + // TODO: found these registration were necessary here (as we haven't called the HostBuilder?), as dependencies for ComponentCollection // are not resolved. Need to check this if these explicit registrations are the best way to handle this. var contentSettings = new ContentSettingsBuilder().Build(); var coreDebugSettings = new CoreDebugSettingsBuilder().Build(); diff --git a/src/Umbraco.Tests/App.config b/src/Umbraco.Tests/App.config index 09c025aeb4..2781babfbe 100644 --- a/src/Umbraco.Tests/App.config +++ b/src/Umbraco.Tests/App.config @@ -16,7 +16,7 @@ - + diff --git a/src/Umbraco.Tests/IO/FileSystemsTests.cs b/src/Umbraco.Tests/IO/FileSystemsTests.cs index c1d3fbb331..eabd331a02 100644 --- a/src/Umbraco.Tests/IO/FileSystemsTests.cs +++ b/src/Umbraco.Tests/IO/FileSystemsTests.cs @@ -16,6 +16,7 @@ using Umbraco.Tests.TestHelpers; using Umbraco.Core.Composing.CompositionExtensions; using Current = Umbraco.Web.Composing.Current; using FileSystems = Umbraco.Core.IO.FileSystems; +using Umbraco.Tests.Common.Builders; namespace Umbraco.Tests.IO { @@ -42,7 +43,9 @@ namespace Umbraco.Tests.IO composition.RegisterUnique(TestHelper.GetHostingEnvironment()); composition.Configs.Add(() => SettingsForTests.DefaultGlobalSettings); - composition.Configs.Add(SettingsForTests.GenerateMockContentSettings); + + var globalSettings = new GlobalSettingsBuilder().Build(); + composition.Register(x => Microsoft.Extensions.Options.Options.Create(globalSettings)); composition.ComposeFileSystems(); diff --git a/src/Umbraco.Tests/Packaging/PackageInstallationTest.cs b/src/Umbraco.Tests/Packaging/PackageInstallationTest.cs index 04c51029c7..16c57a7dcb 100644 --- a/src/Umbraco.Tests/Packaging/PackageInstallationTest.cs +++ b/src/Umbraco.Tests/Packaging/PackageInstallationTest.cs @@ -60,8 +60,8 @@ namespace Umbraco.Tests.Packaging Factory.GetInstance(), Factory.GetInstance(), Factory.GetInstance(), - new GlobalSettingsBuilder().Build(), - Factory.GetInstance() ); + Microsoft.Extensions.Options.Options.Create(new GlobalSettingsBuilder().Build()), + Factory.GetInstance()); private IPackageInstallation PackageInstallation => new PackageInstallation( PackageDataInstallation, diff --git a/src/Umbraco.Tests/Routing/BaseUrlProviderTest.cs b/src/Umbraco.Tests/Routing/BaseUrlProviderTest.cs new file mode 100644 index 0000000000..999748bc73 --- /dev/null +++ b/src/Umbraco.Tests/Routing/BaseUrlProviderTest.cs @@ -0,0 +1,49 @@ +using System.Linq; +using Moq; +using Umbraco.Core; +using Umbraco.Core.Models.PublishedContent; +using Umbraco.Tests.Common; +using Umbraco.Tests.Common.Builders; +using Umbraco.Tests.TestHelpers; +using Umbraco.Web; +using Umbraco.Web.Routing; + +namespace Umbraco.Tests.Routing +{ + public abstract class BaseUrlProviderTest : BaseWebTest + { + protected IUmbracoContextAccessor UmbracoContextAccessor { get; } = new TestUmbracoContextAccessor(); + + protected abstract bool HideTopLevelNodeFromPath { get; } + + protected override void Compose() + { + base.Compose(); + Composition.Register(); + } + + protected override void ComposeSettings() + { + var contentSettings = new ContentSettingsBuilder().Build(); + var userPasswordConfigurationSettings = new UserPasswordConfigurationSettingsBuilder().Build(); + + Composition.Register(x => Microsoft.Extensions.Options.Options.Create(contentSettings)); + Composition.Register(x => Microsoft.Extensions.Options.Options.Create(userPasswordConfigurationSettings)); + + // TODO: remove this once legacy config is fully extracted. + Composition.Configs.Add(TestHelpers.SettingsForTests.GenerateMockContentSettings); + Composition.Configs.Add(TestHelpers.SettingsForTests.GenerateMockGlobalSettings); + } + + protected IPublishedUrlProvider GetPublishedUrlProvider(IUmbracoContext umbracoContext, DefaultUrlProvider urlProvider) + { + var webRoutingSettings = new WebRoutingSettingsBuilder().Build(); + return new UrlProvider( + new TestUmbracoContextAccessor(umbracoContext), + Microsoft.Extensions.Options.Options.Create(webRoutingSettings), + new UrlProviderCollection(new[] { urlProvider }), + new MediaUrlProviderCollection(Enumerable.Empty()), + Mock.Of()); + } + } +} diff --git a/src/Umbraco.Tests/Routing/GetContentUrlsTests.cs b/src/Umbraco.Tests/Routing/GetContentUrlsTests.cs index 7456d32aa4..27027c007f 100644 --- a/src/Umbraco.Tests/Routing/GetContentUrlsTests.cs +++ b/src/Umbraco.Tests/Routing/GetContentUrlsTests.cs @@ -27,7 +27,7 @@ namespace Umbraco.Tests.Routing _globalSettings = new GlobalSettingsBuilder().Build(); _webRoutingSettings = new WebRoutingSettingsBuilder().Build(); - _requestHandlerSettings = new RequestHandlerSettingsBuilder().Build(); + _requestHandlerSettings = new RequestHandlerSettingsBuilder().WithAddTrailingSlash(true).Build(); } private ILocalizedTextService GetTextService() diff --git a/src/Umbraco.Tests/Routing/UrlProviderWithHideTopLevelNodeFromPathTests.cs b/src/Umbraco.Tests/Routing/UrlProviderWithHideTopLevelNodeFromPathTests.cs new file mode 100644 index 0000000000..b38e7b5fc9 --- /dev/null +++ b/src/Umbraco.Tests/Routing/UrlProviderWithHideTopLevelNodeFromPathTests.cs @@ -0,0 +1,60 @@ +using Moq; +using NUnit.Framework; +using Umbraco.Core; +using Umbraco.Core.Configuration; +using Umbraco.Core.Configuration.Models; +using Umbraco.Infrastructure.Configuration; +using Umbraco.Tests.Common; +using Umbraco.Tests.Common.Builders; +using Umbraco.Tests.Testing; +using Umbraco.Web.Routing; + +namespace Umbraco.Tests.Routing +{ + [TestFixture] + [UmbracoTest(Database = UmbracoTestOptions.Database.NewSchemaPerFixture)] + public class UrlProviderWithHideTopLevelNodeFromPathTests : BaseUrlProviderTest + { + private readonly GlobalSettings _globalSettings; + + public UrlProviderWithHideTopLevelNodeFromPathTests() + { + _globalSettings = new GlobalSettingsBuilder().WithHideTopLevelNodeFromPath(HideTopLevelNodeFromPath).Build(); + } + + protected override bool HideTopLevelNodeFromPath => true; + + protected override void ComposeSettings() + { + base.ComposeSettings(); + Composition.RegisterUnique(x => Microsoft.Extensions.Options.Options.Create(_globalSettings)); + } + + [TestCase(1046, "/")] + [TestCase(1173, "/sub1/")] + [TestCase(1174, "/sub1/sub2/")] + [TestCase(1176, "/sub1/sub-3/")] + [TestCase(1177, "/sub1/custom-sub-1/")] + [TestCase(1178, "/sub1/custom-sub-2/")] + [TestCase(1175, "/sub-2/")] + [TestCase(1172, "/test-page/")] // not hidden because not first root + public void Get_Url_Hiding_Top_Level(int nodeId, string niceUrlMatch) + { + var globalSettings = Mock.Get(Factory.GetInstance()); //this will modify the IGlobalSettings instance stored in the container + globalSettings.Setup(x => x.HideTopLevelNodeFromPath).Returns(true); + + var requestHandlerSettings = new RequestHandlerSettingsBuilder().WithAddTrailingSlash(true).Build(); + var umbracoContext = GetUmbracoContext("/test", 1111, globalSettings: ConfigModelConversionsToLegacy.ConvertGlobalSettings(_globalSettings)); + var umbracoContextAccessor = new TestUmbracoContextAccessor(umbracoContext); + var urlProvider = new DefaultUrlProvider( + Microsoft.Extensions.Options.Options.Create(requestHandlerSettings), + Logger, + Microsoft.Extensions.Options.Options.Create(_globalSettings), + new SiteDomainHelper(), umbracoContextAccessor, UriUtility); + var publishedUrlProvider = GetPublishedUrlProvider(umbracoContext, urlProvider); + + var result = publishedUrlProvider.GetUrl(nodeId); + Assert.AreEqual(niceUrlMatch, result); + } + } +} diff --git a/src/Umbraco.Tests/Routing/UrlProviderTests.cs b/src/Umbraco.Tests/Routing/UrlProviderWithoutHideTopLevelNodeFromPathTests.cs similarity index 76% rename from src/Umbraco.Tests/Routing/UrlProviderTests.cs rename to src/Umbraco.Tests/Routing/UrlProviderWithoutHideTopLevelNodeFromPathTests.cs index b84bf41bee..e4275fe391 100644 --- a/src/Umbraco.Tests/Routing/UrlProviderTests.cs +++ b/src/Umbraco.Tests/Routing/UrlProviderWithoutHideTopLevelNodeFromPathTests.cs @@ -4,7 +4,7 @@ using System.Globalization; using System.Linq; using Moq; using NUnit.Framework; -using Umbraco.Core; +using Umbraco.Core.Configuration.Models; using Umbraco.Core.Models; using Umbraco.Core.Models.PublishedContent; using Umbraco.Infrastructure.Configuration; @@ -12,9 +12,7 @@ using Umbraco.Tests.Common; using Umbraco.Tests.Common.Builders; using Umbraco.Tests.LegacyXmlPublishedCache; using Umbraco.Tests.PublishedContent; -using Umbraco.Tests.TestHelpers; using Umbraco.Tests.Testing; -using Umbraco.Web; using Umbraco.Web.PublishedCache; using Umbraco.Web.Routing; @@ -22,20 +20,21 @@ namespace Umbraco.Tests.Routing { [TestFixture] [UmbracoTest(Database = UmbracoTestOptions.Database.NewSchemaPerFixture)] - public class UrlProviderTests : BaseWebTest + public class UrlProviderWithoutHideTopLevelNodeFromPathTests : BaseUrlProviderTest { - private IUmbracoContextAccessor UmbracoContextAccessor { get; } = new TestUmbracoContextAccessor(); + private readonly GlobalSettings _globalSettings; - protected override void Compose() + public UrlProviderWithoutHideTopLevelNodeFromPathTests() { - base.Compose(); - Composition.Register(); + _globalSettings = new GlobalSettingsBuilder().WithHideTopLevelNodeFromPath(HideTopLevelNodeFromPath).Build(); } + protected override bool HideTopLevelNodeFromPath => false; + protected override void ComposeSettings() { - Composition.Configs.Add(TestHelpers.SettingsForTests.GenerateMockContentSettings); - Composition.Configs.Add(TestHelpers.SettingsForTests.GenerateMockGlobalSettings); + base.ComposeSettings(); + Composition.Register(x => Microsoft.Extensions.Options.Options.Create(_globalSettings)); } /// @@ -45,21 +44,17 @@ namespace Umbraco.Tests.Routing [Test] public void Ensure_Cache_Is_Correct() { - var globalSettings = new GlobalSettingsBuilder().WithHideTopLevelNodeFromPath(false).Build(); + var requestHandlerSettings = new RequestHandlerSettingsBuilder().WithAddTrailingSlash(false).Build(); - var requestHandlerSettings = new RequestHandlerSettingsBuilder().Build(); - - var umbracoContext = GetUmbracoContext("/test", 1111, globalSettings: ConfigModelConversionsToLegacy.ConvertGlobalSettings(globalSettings)); + var umbracoContext = GetUmbracoContext("/test", 1111, globalSettings: ConfigModelConversionsToLegacy.ConvertGlobalSettings(_globalSettings)); var umbracoContextAccessor = new TestUmbracoContextAccessor(umbracoContext); var urlProvider = new DefaultUrlProvider( Microsoft.Extensions.Options.Options.Create(requestHandlerSettings), Logger, - Microsoft.Extensions.Options.Options.Create(globalSettings), + Microsoft.Extensions.Options.Options.Create(_globalSettings), new SiteDomainHelper(), umbracoContextAccessor, UriUtility); var publishedUrlProvider = GetPublishedUrlProvider(umbracoContext, urlProvider); - var requestHandlerMock = Mock.Get(requestHandlerSettings); - requestHandlerMock.Setup(x => x.AddTrailingSlash).Returns(false);// (cached routes have none) var samples = new Dictionary { { 1046, "/home" }, @@ -100,18 +95,6 @@ namespace Umbraco.Tests.Routing Assert.AreEqual(0, cachedIds.Count); } - private IPublishedUrlProvider GetPublishedUrlProvider(IUmbracoContext umbracoContext, DefaultUrlProvider urlProvider) - { - var webRoutingSettings = new WebRoutingSettingsBuilder().Build(); - return new UrlProvider( - new TestUmbracoContextAccessor(umbracoContext), - Microsoft.Extensions.Options.Options.Create(webRoutingSettings), - new UrlProviderCollection(new []{urlProvider}), - new MediaUrlProviderCollection(Enumerable.Empty()), - Mock.Of()); - } - - // test hideTopLevelNodeFromPath false [TestCase(1046, "/home/")] [TestCase(1173, "/home/sub1/")] [TestCase(1174, "/home/sub1/sub2/")] @@ -122,45 +105,14 @@ namespace Umbraco.Tests.Routing [TestCase(1172, "/test-page/")] public void Get_Url_Not_Hiding_Top_Level(int nodeId, string niceUrlMatch) { - var globalSettings = new GlobalSettingsBuilder().WithHideTopLevelNodeFromPath(false).Build(); + var requestHandlerSettings = new RequestHandlerSettingsBuilder().WithAddTrailingSlash(true).Build(); - var requestHandlerSettings = new RequestHandlerSettingsBuilder().Build(); - - var umbracoContext = GetUmbracoContext("/test", 1111, globalSettings: ConfigModelConversionsToLegacy.ConvertGlobalSettings(globalSettings)); + var umbracoContext = GetUmbracoContext("/test", 1111, globalSettings: ConfigModelConversionsToLegacy.ConvertGlobalSettings(_globalSettings)); var umbracoContextAccessor = new TestUmbracoContextAccessor(umbracoContext); var urlProvider = new DefaultUrlProvider( Microsoft.Extensions.Options.Options.Create(requestHandlerSettings), Logger, - Microsoft.Extensions.Options.Options.Create(globalSettings), - new SiteDomainHelper(), umbracoContextAccessor, UriUtility); - var publishedUrlProvider = GetPublishedUrlProvider(umbracoContext, urlProvider); - - var result = publishedUrlProvider.GetUrl(nodeId); - Assert.AreEqual(niceUrlMatch, result); - } - - // no need for umbracoUseDirectoryUrls test = should be handled by UriUtilityTests - - // test hideTopLevelNodeFromPath true - [TestCase(1046, "/")] - [TestCase(1173, "/sub1/")] - [TestCase(1174, "/sub1/sub2/")] - [TestCase(1176, "/sub1/sub-3/")] - [TestCase(1177, "/sub1/custom-sub-1/")] - [TestCase(1178, "/sub1/custom-sub-2/")] - [TestCase(1175, "/sub-2/")] - [TestCase(1172, "/test-page/")] // not hidden because not first root - public void Get_Url_Hiding_Top_Level(int nodeId, string niceUrlMatch) - { - var globalSettings = new GlobalSettingsBuilder().WithHideTopLevelNodeFromPath(true).Build(); - - var requestHandlerSettings = new RequestHandlerSettingsBuilder().Build(); - var umbracoContext = GetUmbracoContext("/test", 1111, globalSettings: ConfigModelConversionsToLegacy.ConvertGlobalSettings(globalSettings)); - var umbracoContextAccessor = new TestUmbracoContextAccessor(umbracoContext); - var urlProvider = new DefaultUrlProvider( - Microsoft.Extensions.Options.Options.Create(requestHandlerSettings), - Logger, - Microsoft.Extensions.Options.Options.Create(globalSettings), + Microsoft.Extensions.Options.Options.Create(_globalSettings), new SiteDomainHelper(), umbracoContextAccessor, UriUtility); var publishedUrlProvider = GetPublishedUrlProvider(umbracoContext, urlProvider); @@ -173,9 +125,7 @@ namespace Umbraco.Tests.Routing { const string currentUri = "http://example.us/test"; - var globalSettings = new GlobalSettingsBuilder().WithHideTopLevelNodeFromPath(false).Build(); - - var requestHandlerSettings = new RequestHandlerSettingsBuilder().Build(); + var requestHandlerSettings = new RequestHandlerSettingsBuilder().WithAddTrailingSlash(true).Build(); var contentType = new PublishedContentType(Guid.NewGuid(), 666, "alias", PublishedItemType.Content, Enumerable.Empty(), Enumerable.Empty(), ContentVariation.Culture); var publishedContent = new SolidPublishedContent(contentType) { Id = 1234 }; @@ -197,13 +147,13 @@ namespace Umbraco.Tests.Routing .Returns(snapshot); var umbracoContext = GetUmbracoContext(currentUri, - globalSettings: ConfigModelConversionsToLegacy.ConvertGlobalSettings(globalSettings), + globalSettings: ConfigModelConversionsToLegacy.ConvertGlobalSettings(_globalSettings), snapshotService: snapshotService.Object); var umbracoContextAccessor = new TestUmbracoContextAccessor(umbracoContext); var urlProvider = new DefaultUrlProvider( Microsoft.Extensions.Options.Options.Create(requestHandlerSettings), Logger, - Microsoft.Extensions.Options.Options.Create(globalSettings), + Microsoft.Extensions.Options.Options.Create(_globalSettings), new SiteDomainHelper(), umbracoContextAccessor, UriUtility); var publishedUrlProvider = GetPublishedUrlProvider(umbracoContext, urlProvider); @@ -221,9 +171,7 @@ namespace Umbraco.Tests.Routing { const string currentUri = "http://example.fr/test"; - var globalSettings = new GlobalSettingsBuilder().WithHideTopLevelNodeFromPath(false).Build(); - - var requestHandlerSettings = new RequestHandlerSettingsBuilder().Build(); + var requestHandlerSettings = new RequestHandlerSettingsBuilder().WithAddTrailingSlash(true).Build(); var contentType = new PublishedContentType(Guid.NewGuid(), 666, "alias", PublishedItemType.Content, Enumerable.Empty(), Enumerable.Empty(), ContentVariation.Culture); var publishedContent = new SolidPublishedContent(contentType) { Id = 1234 }; @@ -254,13 +202,13 @@ namespace Umbraco.Tests.Routing .Returns(snapshot); var umbracoContext = GetUmbracoContext(currentUri, - globalSettings: ConfigModelConversionsToLegacy.ConvertGlobalSettings(globalSettings), + globalSettings: ConfigModelConversionsToLegacy.ConvertGlobalSettings(_globalSettings), snapshotService: snapshotService.Object); var umbracoContextAccessor = new TestUmbracoContextAccessor(umbracoContext); var urlProvider = new DefaultUrlProvider( Microsoft.Extensions.Options.Options.Create(requestHandlerSettings), Logger, - Microsoft.Extensions.Options.Options.Create(globalSettings), + Microsoft.Extensions.Options.Options.Create(_globalSettings), new SiteDomainHelper(), umbracoContextAccessor, UriUtility); var publishedUrlProvider = GetPublishedUrlProvider(umbracoContext, urlProvider); @@ -278,9 +226,7 @@ namespace Umbraco.Tests.Routing { const string currentUri = "http://example.us/test"; - var globalSettings = new GlobalSettingsBuilder().WithHideTopLevelNodeFromPath(false).Build(); - - var requestHandlerSettings = new RequestHandlerSettingsBuilder().Build(); + var requestHandlerSettings = new RequestHandlerSettingsBuilder().WithAddTrailingSlash(true).Build(); var contentType = new PublishedContentType(Guid.NewGuid(), 666, "alias", PublishedItemType.Content, Enumerable.Empty(), Enumerable.Empty(), ContentVariation.Culture); var publishedContent = new SolidPublishedContent(contentType) { Id = 1234 }; @@ -311,13 +257,13 @@ namespace Umbraco.Tests.Routing .Returns(snapshot); var umbracoContext = GetUmbracoContext(currentUri, - globalSettings: ConfigModelConversionsToLegacy.ConvertGlobalSettings(globalSettings), + globalSettings: ConfigModelConversionsToLegacy.ConvertGlobalSettings(_globalSettings), snapshotService: snapshotService.Object); var umbracoContextAccessor = new TestUmbracoContextAccessor(umbracoContext); var urlProvider = new DefaultUrlProvider( Microsoft.Extensions.Options.Options.Create(requestHandlerSettings), Logger, - Microsoft.Extensions.Options.Options.Create(globalSettings), + Microsoft.Extensions.Options.Options.Create(_globalSettings), new SiteDomainHelper(), umbracoContextAccessor, UriUtility); @@ -331,16 +277,14 @@ namespace Umbraco.Tests.Routing [Test] public void Get_Url_Relative_Or_Absolute() { - var globalSettings = new GlobalSettingsBuilder().WithHideTopLevelNodeFromPath(false).Build(); + var requestHandlerSettings = new RequestHandlerSettingsBuilder().WithAddTrailingSlash(true).Build(); - var requestHandlerSettings = new RequestHandlerSettingsBuilder().Build(); - - var umbracoContext = GetUmbracoContext("http://example.com/test", 1111, globalSettings: ConfigModelConversionsToLegacy.ConvertGlobalSettings(globalSettings)); + var umbracoContext = GetUmbracoContext("http://example.com/test", 1111, globalSettings: ConfigModelConversionsToLegacy.ConvertGlobalSettings(_globalSettings)); var umbracoContextAccessor = new TestUmbracoContextAccessor(umbracoContext); var urlProvider = new DefaultUrlProvider( Microsoft.Extensions.Options.Options.Create(requestHandlerSettings), Logger, - Microsoft.Extensions.Options.Options.Create(globalSettings), + Microsoft.Extensions.Options.Options.Create(_globalSettings), new SiteDomainHelper(), umbracoContextAccessor, UriUtility); var publishedUrlProvider = GetPublishedUrlProvider(umbracoContext, urlProvider); @@ -353,15 +297,13 @@ namespace Umbraco.Tests.Routing [Test] public void Get_Url_Unpublished() { - var globalSettings = new GlobalSettingsBuilder().WithHideTopLevelNodeFromPath(false).Build(); - var requestHandlerSettings = new RequestHandlerSettingsBuilder().Build(); var urlProvider = new DefaultUrlProvider(Microsoft.Extensions.Options.Options.Create(requestHandlerSettings), Logger, - Microsoft.Extensions.Options.Options.Create(globalSettings), + Microsoft.Extensions.Options.Options.Create(_globalSettings), new SiteDomainHelper(), UmbracoContextAccessor, UriUtility); - var umbracoContext = GetUmbracoContext("http://example.com/test", 1111, globalSettings: ConfigModelConversionsToLegacy.ConvertGlobalSettings(globalSettings)); + var umbracoContext = GetUmbracoContext("http://example.com/test", 1111, globalSettings: ConfigModelConversionsToLegacy.ConvertGlobalSettings(_globalSettings)); var publishedUrlProvider = GetPublishedUrlProvider(umbracoContext, urlProvider); //mock the Umbraco settings that we need diff --git a/src/Umbraco.Tests/Routing/UrlsProviderWithDomainsTests.cs b/src/Umbraco.Tests/Routing/UrlsProviderWithDomainsTests.cs index 0998f1e722..3e7fb611df 100644 --- a/src/Umbraco.Tests/Routing/UrlsProviderWithDomainsTests.cs +++ b/src/Umbraco.Tests/Routing/UrlsProviderWithDomainsTests.cs @@ -178,7 +178,7 @@ namespace Umbraco.Tests.Routing [TestCase(10011, "https://domain1.com", false, "/1001-1/")] public void Get_Url_SimpleDomain(int nodeId, string currentUrl, bool absolute, string expected) { - var requestHandlerSettings = new RequestHandlerSettingsBuilder().Build(); + var requestHandlerSettings = new RequestHandlerSettingsBuilder().WithAddTrailingSlash(true).Build(); var globalSettings = new GlobalSettingsBuilder().WithHideTopLevelNodeFromPath(false).Build(); @@ -213,7 +213,7 @@ namespace Umbraco.Tests.Routing [TestCase(10011, "https://domain1.com", false, "http://domain1.com/foo/1001-1/")] public void Get_Url_SimpleWithSchemeAndPath(int nodeId, string currentUrl, bool absolute, string expected) { - var requestHandlerSettings = new RequestHandlerSettingsBuilder().Build(); + var requestHandlerSettings = new RequestHandlerSettingsBuilder().WithAddTrailingSlash(true).Build(); var globalSettings = new GlobalSettingsBuilder().WithHideTopLevelNodeFromPath(false).Build(); var umbracoContext = GetUmbracoContext("/test", 1111, globalSettings: ConfigModelConversionsToLegacy.ConvertGlobalSettings(globalSettings)); @@ -239,7 +239,7 @@ namespace Umbraco.Tests.Routing [TestCase(1002, "http://domain1.com", false, "/1002/")] public void Get_Url_DeepDomain(int nodeId, string currentUrl, bool absolute, string expected) { - var requestHandlerSettings = new RequestHandlerSettingsBuilder().Build(); + var requestHandlerSettings = new RequestHandlerSettingsBuilder().WithAddTrailingSlash(true).Build(); var globalSettings = new GlobalSettingsBuilder().WithHideTopLevelNodeFromPath(false).Build(); @@ -272,7 +272,7 @@ namespace Umbraco.Tests.Routing [TestCase(100321, "http://domain3.com", false, "/fr/1003-2-1/")] public void Get_Url_NestedDomains(int nodeId, string currentUrl, bool absolute, string expected) { - var requestHandlerSettings = new RequestHandlerSettingsBuilder().Build(); + var requestHandlerSettings = new RequestHandlerSettingsBuilder().WithAddTrailingSlash(true).Build(); var globalSettings = new GlobalSettingsBuilder().WithHideTopLevelNodeFromPath(false).Build(); @@ -296,7 +296,7 @@ namespace Umbraco.Tests.Routing [Test] public void Get_Url_DomainsAndCache() { - var requestHandlerSettings = new RequestHandlerSettingsBuilder().Build(); + var requestHandlerSettings = new RequestHandlerSettingsBuilder().WithAddTrailingSlash(true).Build(); var globalSettings = new GlobalSettingsBuilder().WithHideTopLevelNodeFromPath(false).Build(); @@ -362,7 +362,7 @@ namespace Umbraco.Tests.Routing [Test] public void Get_Url_Relative_Or_Absolute() { - var requestHandlerSettings = new RequestHandlerSettingsBuilder().Build(); + var requestHandlerSettings = new RequestHandlerSettingsBuilder().WithAddTrailingSlash(true).Build(); var globalSettings = new GlobalSettingsBuilder().WithHideTopLevelNodeFromPath(false).Build(); @@ -389,7 +389,7 @@ namespace Umbraco.Tests.Routing [Test] public void Get_Url_Alternate() { - var requestHandlerSettings = new RequestHandlerSettingsBuilder().Build(); + var requestHandlerSettings = new RequestHandlerSettingsBuilder().WithAddTrailingSlash(true).Build(); var globalSettings = new GlobalSettingsBuilder().WithHideTopLevelNodeFromPath(false).Build(); diff --git a/src/Umbraco.Tests/Routing/UrlsWithNestedDomains.cs b/src/Umbraco.Tests/Routing/UrlsWithNestedDomains.cs index 6e00b7a7f0..fdd891bda6 100644 --- a/src/Umbraco.Tests/Routing/UrlsWithNestedDomains.cs +++ b/src/Umbraco.Tests/Routing/UrlsWithNestedDomains.cs @@ -36,7 +36,7 @@ namespace Umbraco.Tests.Routing public void DoNotPolluteCache() { var globalSettings = new GlobalSettingsBuilder().WithHideTopLevelNodeFromPath(false).Build(); - var requestHandlerSettings = new RequestHandlerSettingsBuilder().Build(); + var requestHandlerSettings = new RequestHandlerSettingsBuilder().WithAddTrailingSlash(true).Build(); SetDomains1(); diff --git a/src/Umbraco.Tests/Runtimes/StandaloneTests.cs b/src/Umbraco.Tests/Runtimes/StandaloneTests.cs index 2773eef4ab..4b4dfeec48 100644 --- a/src/Umbraco.Tests/Runtimes/StandaloneTests.cs +++ b/src/Umbraco.Tests/Runtimes/StandaloneTests.cs @@ -38,6 +38,7 @@ using Umbraco.Tests.Common; using Umbraco.Tests.Common.Composing; using Umbraco.Core.Media; using Umbraco.Tests.Common.Builders; +using Microsoft.Extensions.Options; namespace Umbraco.Tests.Runtimes { @@ -118,6 +119,23 @@ namespace Umbraco.Tests.Runtimes composition.RegisterUnique(); composition.RegisterUnique(_ => new MediaUrlProviderCollection(Enumerable.Empty())); + // TODO: found these registration were necessary here as dependencies for ComponentCollection + // are not resolved. Need to check this if these explicit registrations are the best way to handle this. + var contentSettings = new ContentSettingsBuilder().Build(); + var coreDebugSettings = new CoreDebugSettingsBuilder().Build(); + var nuCacheSettings = new NuCacheSettingsBuilder().Build(); + var requestHandlerSettings = new RequestHandlerSettingsBuilder().Build(); + var userPasswordConfigurationSettings = new UserPasswordConfigurationSettingsBuilder().Build(); + var webRoutingSettings = new WebRoutingSettingsBuilder().Build(); + + composition.Register(x => Options.Create(globalSettings)); + composition.Register(x => Options.Create(contentSettings)); + composition.Register(x => Options.Create(coreDebugSettings)); + composition.Register(x => Options.Create(nuCacheSettings)); + composition.Register(x => Options.Create(requestHandlerSettings)); + composition.Register(x => Options.Create(userPasswordConfigurationSettings)); + composition.Register(x => Options.Create(webRoutingSettings)); + // initialize some components only/individually composition.WithCollectionBuilder() .Clear() diff --git a/src/Umbraco.Tests/Strings/DefaultShortStringHelperTests.cs b/src/Umbraco.Tests/Strings/DefaultShortStringHelperTests.cs index 28d7d90f7e..12f5022b55 100644 --- a/src/Umbraco.Tests/Strings/DefaultShortStringHelperTests.cs +++ b/src/Umbraco.Tests/Strings/DefaultShortStringHelperTests.cs @@ -3,15 +3,12 @@ using System.Diagnostics; using System.Linq; using System.Text; using System.Text.RegularExpressions; -using Moq; using NUnit.Framework; using Umbraco.Core; using Umbraco.Core.Composing; -using Umbraco.Core.Configuration.Models; using Umbraco.Core.Configuration.UmbracoSettings; using Umbraco.Core.Strings; using Umbraco.Tests.Common.Builders; -using Umbraco.Tests.TestHelpers; using Umbraco.Tests.Testing; namespace Umbraco.Tests.Strings @@ -19,7 +16,6 @@ namespace Umbraco.Tests.Strings [TestFixture] public class DefaultShortStringHelperTests : UmbracoTestBase { - private RequestHandlerSettings _requestHandlerSettings; private DefaultShortStringHelper _helper; public override void SetUp() @@ -28,8 +24,8 @@ namespace Umbraco.Tests.Strings // NOTE pre-filters runs _before_ Recode takes place // so there still may be utf8 chars even though you want ascii - _requestHandlerSettings = new RequestHandlerSettingsBuilder().Build(); - _helper = new DefaultShortStringHelper(new DefaultShortStringHelperConfig().WithDefault(_requestHandlerSettings) + var requestHandlerSettings = new RequestHandlerSettingsBuilder().Build(); + _helper = new DefaultShortStringHelper(new DefaultShortStringHelperConfig().WithDefault(requestHandlerSettings) .WithConfig(CleanStringType.FileName, new DefaultShortStringHelperConfig.Config { //PreFilter = ClearFileChars, // done in IsTerm @@ -148,7 +144,8 @@ namespace Umbraco.Tests.Strings [Test] public void CleanStringUnderscoreInTerm() { - var helper = new DefaultShortStringHelper(new DefaultShortStringHelperConfig().WithDefault(_requestHandlerSettings) + var requestHandlerSettings = new RequestHandlerSettingsBuilder().Build(); + var helper = new DefaultShortStringHelper(new DefaultShortStringHelperConfig().WithDefault(requestHandlerSettings) .WithConfig(CleanStringType.Alias, new DefaultShortStringHelperConfig.Config { // underscore is accepted within terms @@ -158,7 +155,7 @@ namespace Umbraco.Tests.Strings })); Assert.AreEqual("foo_bar*nil", helper.CleanString("foo_bar nil", CleanStringType.Alias)); - helper = new DefaultShortStringHelper(new DefaultShortStringHelperConfig().WithDefault(_requestHandlerSettings) + helper = new DefaultShortStringHelper(new DefaultShortStringHelperConfig().WithDefault(requestHandlerSettings) .WithConfig(CleanStringType.Alias, new DefaultShortStringHelperConfig.Config { // underscore is not accepted within terms @@ -172,7 +169,8 @@ namespace Umbraco.Tests.Strings [Test] public void CleanStringLeadingChars() { - var helper = new DefaultShortStringHelper(new DefaultShortStringHelperConfig().WithDefault(_requestHandlerSettings) + var requestHandlerSettings = new RequestHandlerSettingsBuilder().Build(); + var helper = new DefaultShortStringHelper(new DefaultShortStringHelperConfig().WithDefault(requestHandlerSettings) .WithConfig(CleanStringType.Alias, new DefaultShortStringHelperConfig.Config { // letters and digits are valid leading chars @@ -182,7 +180,7 @@ namespace Umbraco.Tests.Strings })); Assert.AreEqual("0123foo*bar*543*nil*321", helper.CleanString("0123foo_bar 543 nil 321", CleanStringType.Alias)); - helper = new DefaultShortStringHelper(new DefaultShortStringHelperConfig().WithDefault(_requestHandlerSettings) + helper = new DefaultShortStringHelper(new DefaultShortStringHelperConfig().WithDefault(requestHandlerSettings) .WithConfig(CleanStringType.Alias, new DefaultShortStringHelperConfig.Config { // only letters are valid leading chars @@ -193,14 +191,15 @@ namespace Umbraco.Tests.Strings Assert.AreEqual("foo*bar*543*nil*321", helper.CleanString("0123foo_bar 543 nil 321", CleanStringType.Alias)); Assert.AreEqual("foo*bar*543*nil*321", helper.CleanString("0123 foo_bar 543 nil 321", CleanStringType.Alias)); - helper = new DefaultShortStringHelper(new DefaultShortStringHelperConfig().WithDefault(_requestHandlerSettings)); + helper = new DefaultShortStringHelper(new DefaultShortStringHelperConfig().WithDefault(requestHandlerSettings)); Assert.AreEqual("child2", helper.CleanStringForSafeAlias("1child2")); } [Test] public void CleanStringTermOnUpper() { - var helper = new DefaultShortStringHelper(new DefaultShortStringHelperConfig().WithDefault(_requestHandlerSettings) + var requestHandlerSettings = new RequestHandlerSettingsBuilder().Build(); + var helper = new DefaultShortStringHelper(new DefaultShortStringHelperConfig().WithDefault(requestHandlerSettings) .WithConfig(CleanStringType.Alias, new DefaultShortStringHelperConfig.Config { StringType = CleanStringType.Utf8 | CleanStringType.Unchanged, @@ -210,7 +209,7 @@ namespace Umbraco.Tests.Strings })); Assert.AreEqual("foo*Bar", helper.CleanString("fooBar", CleanStringType.Alias)); - helper = new DefaultShortStringHelper(new DefaultShortStringHelperConfig().WithDefault(_requestHandlerSettings) + helper = new DefaultShortStringHelper(new DefaultShortStringHelperConfig().WithDefault(requestHandlerSettings) .WithConfig(CleanStringType.Alias, new DefaultShortStringHelperConfig.Config { StringType = CleanStringType.Utf8 | CleanStringType.Unchanged, @@ -224,7 +223,8 @@ namespace Umbraco.Tests.Strings [Test] public void CleanStringAcronymOnNonUpper() { - var helper = new DefaultShortStringHelper(new DefaultShortStringHelperConfig().WithDefault(_requestHandlerSettings) + var requestHandlerSettings = new RequestHandlerSettingsBuilder().Build(); + var helper = new DefaultShortStringHelper(new DefaultShortStringHelperConfig().WithDefault(requestHandlerSettings) .WithConfig(CleanStringType.Alias, new DefaultShortStringHelperConfig.Config { StringType = CleanStringType.Utf8 | CleanStringType.Unchanged, @@ -237,7 +237,7 @@ namespace Umbraco.Tests.Strings Assert.AreEqual("foo*BAnil", helper.CleanString("foo BAnil", CleanStringType.Alias)); Assert.AreEqual("foo*Bnil", helper.CleanString("foo Bnil", CleanStringType.Alias)); - helper = new DefaultShortStringHelper(new DefaultShortStringHelperConfig().WithDefault(_requestHandlerSettings) + helper = new DefaultShortStringHelper(new DefaultShortStringHelperConfig().WithDefault(requestHandlerSettings) .WithConfig(CleanStringType.Alias, new DefaultShortStringHelperConfig.Config { StringType = CleanStringType.Utf8 | CleanStringType.Unchanged, @@ -254,7 +254,8 @@ namespace Umbraco.Tests.Strings [Test] public void CleanStringGreedyAcronyms() { - var helper = new DefaultShortStringHelper(new DefaultShortStringHelperConfig().WithDefault(_requestHandlerSettings) + var requestHandlerSettings = new RequestHandlerSettingsBuilder().Build(); + var helper = new DefaultShortStringHelper(new DefaultShortStringHelperConfig().WithDefault(requestHandlerSettings) .WithConfig(CleanStringType.Alias, new DefaultShortStringHelperConfig.Config { StringType = CleanStringType.Utf8 | CleanStringType.Unchanged, @@ -267,7 +268,7 @@ namespace Umbraco.Tests.Strings Assert.AreEqual("foo*BA*nil", helper.CleanString("foo BAnil", CleanStringType.Alias)); Assert.AreEqual("foo*Bnil", helper.CleanString("foo Bnil", CleanStringType.Alias)); - helper = new DefaultShortStringHelper(new DefaultShortStringHelperConfig().WithDefault(_requestHandlerSettings) + helper = new DefaultShortStringHelper(new DefaultShortStringHelperConfig().WithDefault(requestHandlerSettings) .WithConfig(CleanStringType.Alias, new DefaultShortStringHelperConfig.Config { StringType = CleanStringType.Utf8 | CleanStringType.Unchanged, @@ -284,7 +285,8 @@ namespace Umbraco.Tests.Strings [Test] public void CleanStringWhiteSpace() { - var helper = new DefaultShortStringHelper(new DefaultShortStringHelperConfig().WithDefault(_requestHandlerSettings) + var requestHandlerSettings = new RequestHandlerSettingsBuilder().Build(); + var helper = new DefaultShortStringHelper(new DefaultShortStringHelperConfig().WithDefault(requestHandlerSettings) .WithConfig(CleanStringType.Alias, new DefaultShortStringHelperConfig.Config { StringType = CleanStringType.Utf8 | CleanStringType.Unchanged, @@ -297,7 +299,8 @@ namespace Umbraco.Tests.Strings [Test] public void CleanStringSeparator() { - var helper = new DefaultShortStringHelper(new DefaultShortStringHelperConfig().WithDefault(_requestHandlerSettings) + var requestHandlerSettings = new RequestHandlerSettingsBuilder().Build(); + var helper = new DefaultShortStringHelper(new DefaultShortStringHelperConfig().WithDefault(requestHandlerSettings) .WithConfig(CleanStringType.Alias, new DefaultShortStringHelperConfig.Config { StringType = CleanStringType.Utf8 | CleanStringType.Unchanged, @@ -305,7 +308,7 @@ namespace Umbraco.Tests.Strings })); Assert.AreEqual("foo*bar", helper.CleanString("foo bar", CleanStringType.Alias)); - helper = new DefaultShortStringHelper(new DefaultShortStringHelperConfig().WithDefault(_requestHandlerSettings) + helper = new DefaultShortStringHelper(new DefaultShortStringHelperConfig().WithDefault(requestHandlerSettings) .WithConfig(CleanStringType.Alias, new DefaultShortStringHelperConfig.Config { StringType = CleanStringType.Utf8 | CleanStringType.Unchanged, @@ -313,14 +316,14 @@ namespace Umbraco.Tests.Strings })); Assert.AreEqual("foo bar", helper.CleanString("foo bar", CleanStringType.Alias)); - helper = new DefaultShortStringHelper(new DefaultShortStringHelperConfig().WithDefault(_requestHandlerSettings) + helper = new DefaultShortStringHelper(new DefaultShortStringHelperConfig().WithDefault(requestHandlerSettings) .WithConfig(CleanStringType.Alias, new DefaultShortStringHelperConfig.Config { StringType = CleanStringType.Utf8 | CleanStringType.Unchanged })); Assert.AreEqual("foobar", helper.CleanString("foo bar", CleanStringType.Alias)); - helper = new DefaultShortStringHelper(new DefaultShortStringHelperConfig().WithDefault(_requestHandlerSettings) + helper = new DefaultShortStringHelper(new DefaultShortStringHelperConfig().WithDefault(requestHandlerSettings) .WithConfig(CleanStringType.Alias, new DefaultShortStringHelperConfig.Config { StringType = CleanStringType.Utf8 | CleanStringType.Unchanged, @@ -332,7 +335,8 @@ namespace Umbraco.Tests.Strings [Test] public void CleanStringSymbols() { - var helper = new DefaultShortStringHelper(new DefaultShortStringHelperConfig().WithDefault(_requestHandlerSettings) + var requestHandlerSettings = new RequestHandlerSettingsBuilder().Build(); + var helper = new DefaultShortStringHelper(new DefaultShortStringHelperConfig().WithDefault(requestHandlerSettings) .WithConfig(CleanStringType.Alias, new DefaultShortStringHelperConfig.Config { StringType = CleanStringType.Utf8 | CleanStringType.Unchanged, @@ -386,7 +390,9 @@ namespace Umbraco.Tests.Strings [Test] public void CleanStringEncoding() { - var helper = new DefaultShortStringHelper(new DefaultShortStringHelperConfig().WithDefault(_requestHandlerSettings) + var requestHandlerSettings = new RequestHandlerSettingsBuilder().Build(); + + var helper = new DefaultShortStringHelper(new DefaultShortStringHelperConfig().WithDefault(requestHandlerSettings) .WithConfig(CleanStringType.Alias, new DefaultShortStringHelperConfig.Config { StringType = CleanStringType.Utf8 | CleanStringType.Unchanged, @@ -395,7 +401,7 @@ namespace Umbraco.Tests.Strings Assert.AreEqual("中文测试", helper.CleanString("中文测试", CleanStringType.Alias)); Assert.AreEqual("léger*中文测试*ZÔRG", helper.CleanString("léger 中文测试 ZÔRG", CleanStringType.Alias)); - helper = new DefaultShortStringHelper(new DefaultShortStringHelperConfig().WithDefault(_requestHandlerSettings) + helper = new DefaultShortStringHelper(new DefaultShortStringHelperConfig().WithDefault(requestHandlerSettings) .WithConfig(CleanStringType.Alias, new DefaultShortStringHelperConfig.Config { StringType = CleanStringType.Ascii | CleanStringType.Unchanged, @@ -408,12 +414,12 @@ namespace Umbraco.Tests.Strings [Test] public void CleanStringDefaultConfig() { - var settings = _requestHandlerSettings; - var contentMock = Mock.Get(settings); - contentMock.Setup(x => x.CharCollection).Returns(Enumerable.Empty()); - contentMock.Setup(x => x.ConvertUrlsToAscii).Returns("false"); + var requestHandlerSettings = new RequestHandlerSettingsBuilder() + .WithCharCollection(Enumerable.Empty()) + .WithConvertUrlsToAscii("false") + .Build(); - var helper = new DefaultShortStringHelper(new DefaultShortStringHelperConfig().WithDefault(settings)); + var helper = new DefaultShortStringHelper(new DefaultShortStringHelperConfig().WithDefault(requestHandlerSettings)); const string input = "0123 中文测试 中文测试 léger ZÔRG (2) a?? *x"; @@ -434,7 +440,8 @@ namespace Umbraco.Tests.Strings [Test] public void CleanStringCasing() { - var helper = new DefaultShortStringHelper(new DefaultShortStringHelperConfig().WithDefault(_requestHandlerSettings) + var requestHandlerSettings = new RequestHandlerSettingsBuilder().Build(); + var helper = new DefaultShortStringHelper(new DefaultShortStringHelperConfig().WithDefault(requestHandlerSettings) .WithConfig(CleanStringType.Alias, new DefaultShortStringHelperConfig.Config { StringType = CleanStringType.Utf8 | CleanStringType.Unchanged, diff --git a/src/Umbraco.Tests/TEMP/DatabaseContextTests.sdf b/src/Umbraco.Tests/TEMP/DatabaseContextTests.sdf index d13671d77ac03808a75689089e57bfb8fcf82b8d..c21739c1249f0c8f447f8ff94d081f3b0448d5bb 100644 GIT binary patch delta 2869 zcmZuzdr(x@8Q;76eRuEPy_d((#Rn!JC=f9`8f(y!O4I^HYZox9@(@VXYK=&$CW>iT z1`|zHg06Tl6v4*U5{Qyga%`#&F&S-|wpr8Kis_8_M`l{-I4F{Uu}#lC_v{5S*%`RM z@Avy&d(L;xUB5re@6Uqco6`#p!K_&>#bz6@*=)f6F2zgizxfGgk9@n$Cfgh<$ju0; z;;pWgweZW%`3XJX&(|?yZjKb+l%XvTv>iNz3k{3($3aR@MMHZeR86lu6o7WG&fU6f zHva6XY;Q}0r>0+;+5^E|PW-mW;p@5fj}!@)8D`+b^=Umb`*%yY+%S7iTrc-P{+AFN zfT1EYB2YTC5uf1B9}KM$X!e~Ds=HH+-{I=Oof3hv?-t`C&b8ewHPPYW)q*M;F2QUr zo*yn0=o|M|3bf^(PoO{C3;89F6yahX;UDn{^vTE?T*|oxpRE+=@Mo*=yPUhtI1}Z5 zUM5h-=fwgkqm=?xjh15$kN9}BOrUvVA+C9>NN_`Ag#zW?FTgw=(Q2XL`^ES@&J})9 zB+wgQlnA6gD8_uQZhEjrpvw=QHc?ONe?N}*WUbKlMS$0KLktAp8tRFY2GczE?a#j( z#k5UqI*bqBC+hJU+Kj`IN28fmKUwojgW>Ra-1-6vjZ&5qR~XgV@c2jzk?OI;Flj=w zbPcf7l6aI zS&{WI+WZ5@#vo+XN6jM;2SNOap-^^=qa}gw&4dmxG25?v;(Z@_iTg4s1C7ZnS7kCYy6J`=+-TEsaQ|Xil zq~q_$74w^Cw@OY@dq@qZ(=+fiTC$HMJdVxyd?*k1KAMTtq>QC6r!fm~jf^{mPYgY> z2%o72`eE-03f;KEX-Q_|Z&IwsT~T#N3^kT?*U36*J1DnUA!e^l4RW(ZEvDOFl@DZlrbk~K*vw8#re>a&J-i`LP#%o+ zB)H!m+QPJ|$=Z-SxD^`a@3=;w!r5nKOrk>-PD#PNp+4#IP0ru?JnJtU4Xa^UAk3_= z&#chrWECDx(Qm!Lw3x}-fT7JF-v84VnU*$D>-8vuv5*#jD~ipe(vPo%ijmBj%6Zcy z1(LRbR>UhMi2H?Zu0V9M;Fj-k-5 zunXXTk<&b=O(&H|84r#Vu1=)}Fu)0xa|S(mMk%cZ?{C^}umNz{6+9w3@{!79mmiyi z$*XH*+9R$vCve8~K-l##)tu*%#v&WjC@KuX9)S1A{-wV?ouc|J?9q6n~P&pqlj+ zsz0daeuaAUin>^D6@mOoU$~;~N%g$(-D(V_^zs28s5#Ml8F*~ zNxBEqAf{|~IR&r#-+*nrc{VD=#<|tV>ZjbNOfqz%YP8tr4gj`?zUEr$Epd0BgijN1 zdz(N@#$OmpZ-y2lnUJz{OA%im4;YoT5eJ?$2%eU|F7w>l+3iqYo(k;N(UwT~E1@S5 zc9P?aeT|^6*J;&&rz|D(ZiyyUFKf-?LLlf>=)%3)X&HYloW*1;Y0%C~iMMk$p1KU# zw(mb|uGIVNC#94wbHjL1kMiO)u~ECe6*`t(tmy?k9qK7@-GV2db^BWBC(Hr`JCQoniF!w@6@|3ACcqHUHTLm RPluLbFIx&)T^rWu|39waNN)fD delta 2869 zcmZuzdr(wW7{7P-J9qEiy%*P^MG1|ECYTA>QyXR^Eg@1{QC9_&#me!8Qb{SAETf}6 z%uujH8G)147%0$2$4VO-O?ynWnoeRbtf`q=r;vw1QgrS;=UyK52kiI#e&6|h-+t#i z=WHO576_!lvcl#Kdtm%{2?U`{5Cr-moJtVse?f54zyAJy;X=G1NCGUxm)xSiseVBz zOy1u-Aqasi4J}CS5Tf=?QD;}wJhun=bPu=2!K9#nckM_xSN}_81=M;qBdlH!jL%>} zZA}Wie4uz+5JH`D&D+OFiHMTTg4M-I1YI`Wvcw{tOvmUfz9$2+q*c3sy3ZWVU< zxb<9QKlh3WQ zJ!af(y(U)GJD;=dz1iH#_-h`wsx7PYFH<@Dnz`c5Yq>m5>C550Ue&jRTc`V$Gb@<< z_t^wbRl~bayTL2`zy?AvwuX4(#BhoyKX2TLNXo6U8N*_7UY!esKfqCx+cuO7h~W{? z@Xp+B0_9?wgJse;9`DEEHk6|`hK#EcF96EbZG-Yvi`y+X3pZriRdV|);%Dxw~x1 zV8x`9jOn&_%i&D$y9f*+TggCZHmm1S$adLo#p{|1PC9RU-hvWwDAg{L@OfJc*JX(! zzOi*Y1aCdM*GC}Te!qy8^16&Ks*$?8?U8`;t!6~evTwKCL|jy=MdP9qFben1vhVy~ z;@gZND*|5vkn&7>NV1}DB~=gDSBBti^xF3r;vj_ldOkvrag@mIu6Q^E%%+=?g}o<1 zBfS%#??2$Yo1viscFw5pC(r_kc2qE^(+b{k0ybMv7NI&fDwdy)-}?eyvfM;Ms}10VTr&o&(T)IaYL9U;Ijv%z$>eIM8QI+MgKD{s%5eDh4&nGd{&=Sdt zi6NEK(b^&?Db9YKKqH##uqd{jhY8wdL5bMtqyH#+&yF56x-XGV{(=t_Mr)8y4 zkS8RCV?8}%r*#xkZrxC>T?(&r*g@TQP#!6vM+N|Aom>KFg8@*@G2~!_oL25Gx{RULnKmfUIP!GxqwxM(=TjEJFUGA0 zoFirQIM2*42qXHpL(V2fSS>J$aOz{NB+Qj?fvse>9tIqm*Wki;nN=`#y9xQYv>aMIT95I0d%; zlysJW*Yzu)%|`KbRC4rltK!8AU2ibZyirw><8xJ*k;X&h&2=>%gzn0pXYB(u32o6e zny08SA~Okq;^SiNE>8+#A6wy|F0p$}hJ;`zU zzPib)Woi)&V$8QC3a{ItRt*ppA+JpC+NmCqP$`$;lQDC*dR&}Pd1`g+X-F65+`u|@ zlK!L=QzgUEALIhjzdUR)1#uQ#n}1}y;%*D6C=4nhH*z=!W}XM(), Mock.Of(x => x.ApplicationPhysicalPath == ioHelper.MapPath("~"))), @@ -245,7 +246,8 @@ namespace Umbraco.Tests.TestHelpers public IScopeProvider GetScopeProvider(ILogger logger, ITypeFinder typeFinder = null, FileSystems fileSystems = null, IUmbracoDatabaseFactory databaseFactory = null) { var globalSettings = new GlobalSettingsBuilder().Build(); - var connectionStrings = new ConnectionStringsBuilder().Build(); + var connectionString = ConfigurationManager.ConnectionStrings[Constants.System.UmbracoConnectionName].ConnectionString; + var connectionStrings = new ConnectionStringsBuilder().WithUmbracoConnectionString(connectionString).Build(); var coreDebugSettings = new CoreDebugSettingsBuilder().Build(); if (databaseFactory == null) diff --git a/src/Umbraco.Tests/Umbraco.Tests.csproj b/src/Umbraco.Tests/Umbraco.Tests.csproj index 193b4093f5..75c4bd773d 100644 --- a/src/Umbraco.Tests/Umbraco.Tests.csproj +++ b/src/Umbraco.Tests/Umbraco.Tests.csproj @@ -141,6 +141,8 @@ + + @@ -195,7 +197,7 @@ - + diff --git a/src/Umbraco.Web.BackOffice/Controllers/ContentTypeController.cs b/src/Umbraco.Web.BackOffice/Controllers/ContentTypeController.cs index 659062f4f9..f8bdd20f3e 100644 --- a/src/Umbraco.Web.BackOffice/Controllers/ContentTypeController.cs +++ b/src/Umbraco.Web.BackOffice/Controllers/ContentTypeController.cs @@ -578,7 +578,7 @@ namespace Umbraco.Web.BackOffice.Controllers } var dataInstaller = new PackageDataInstallation(_logger, _fileService, _macroService, _LocalizationService, - _dataTypeService, _entityService, _contentTypeService, _contentService, _propertyEditors, _scopeProvider, _shortStringHelper, _globalSettings, _localizedTextService); + _dataTypeService, _entityService, _contentTypeService, _contentService, _propertyEditors, _scopeProvider, _shortStringHelper, Options.Create(_globalSettings), _localizedTextService); var xd = new XmlDocument {XmlResolver = null}; xd.Load(filePath);