diff --git a/src/Umbraco.Core/Configuration/ContentSettingsExtensions.cs b/src/Umbraco.Core/Configuration/ContentSettingsExtensions.cs index 21ebe55f2f..31f4373fd2 100644 --- a/src/Umbraco.Core/Configuration/ContentSettingsExtensions.cs +++ b/src/Umbraco.Core/Configuration/ContentSettingsExtensions.cs @@ -1,5 +1,4 @@ -using System; -using System.Linq; +using System.Linq; using Umbraco.Core.Configuration.Models; using Umbraco.Core.Configuration.UmbracoSettings; @@ -7,20 +6,6 @@ namespace Umbraco.Core.Configuration { public static class ContentSettingsExtensions { - /// - /// Gets a value indicating whether the file extension corresponds to an image. - /// - /// The file extension. - /// - /// A value indicating whether the file extension corresponds to an image. - public static bool IsImageFile(this ContentSettings contentConfig, string extension) - { - if (contentConfig == null) throw new ArgumentNullException(nameof(contentConfig)); - if (extension == null) return false; - extension = extension.TrimStart('.'); - return contentConfig.Imaging.ImageFileTypes.InvariantContains(extension); - } - /// /// Determines if file extension is allowed for upload based on (optional) white list and black list /// held in settings. @@ -39,7 +24,7 @@ namespace Umbraco.Core.Configuration /// /// The property type alias. /// The auto-fill configuration for the specified property alias, or null. - public static IImagingAutoFillUploadField GetConfig(this ContentSettings contentSettings, string propertyTypeAlias) + public static ImagingAutoFillUploadField GetConfig(this ContentSettings contentSettings, string propertyTypeAlias) { var autoFillConfigs = contentSettings.Imaging.AutoFillImageProperties; return autoFillConfigs?.FirstOrDefault(x => x.Alias == propertyTypeAlias); diff --git a/src/Umbraco.Core/Configuration/Models/ContentErrorPage.cs b/src/Umbraco.Core/Configuration/Models/ContentErrorPage.cs index 8971dda5cc..6a362c93a3 100644 --- a/src/Umbraco.Core/Configuration/Models/ContentErrorPage.cs +++ b/src/Umbraco.Core/Configuration/Models/ContentErrorPage.cs @@ -1,15 +1,30 @@ using System; +using System.ComponentModel.DataAnnotations; +using Umbraco.Core.Configuration.Models.Validation; namespace Umbraco.Core.Configuration.Models { - public class ContentErrorPage + public class ContentErrorPage : ValidatableEntryBase { - //TODO introduce validation, to check only one of key/id/xPath is used. - public int ContentId { get; } - public Guid ContentKey { get; } - public string ContentXPath { get; } - public bool HasContentId { get; } - public bool HasContentKey { get; } + public int ContentId { get; set; } + + public Guid ContentKey { get; set; } + + public string ContentXPath { get; set; } + + public bool HasContentId => ContentId != 0; + + public bool HasContentKey => ContentKey != Guid.Empty; + + public bool HasContentXPath => !string.IsNullOrEmpty(ContentXPath); + + [Required] public string Culture { get; set; } + + internal override bool IsValid() + { + return base.IsValid() && + ((HasContentId ? 1 : 0) + (HasContentKey ? 1 : 0) + (HasContentXPath ? 1 : 0) == 1); + } } } diff --git a/src/Umbraco.Core/Configuration/Models/ContentImagingSettings.cs b/src/Umbraco.Core/Configuration/Models/ContentImagingSettings.cs index 018936896c..7c1e570426 100644 --- a/src/Umbraco.Core/Configuration/Models/ContentImagingSettings.cs +++ b/src/Umbraco.Core/Configuration/Models/ContentImagingSettings.cs @@ -1,7 +1,4 @@ -using System.Collections.Generic; -using Umbraco.Core.Configuration.UmbracoSettings; - -namespace Umbraco.Core.Configuration.Models +namespace Umbraco.Core.Configuration.Models { public class ContentImagingSettings { @@ -17,17 +14,8 @@ namespace Umbraco.Core.Configuration.Models } }; - public IEnumerable ImageFileTypes { get; set; } = new[] { "jpeg", "jpg", "gif", "bmp", "png", "tiff", "tif" }; + public string[] ImageFileTypes { get; set; } = new[] { "jpeg", "jpg", "gif", "bmp", "png", "tiff", "tif" }; - public IEnumerable AutoFillImageProperties { get; set; } = DefaultImagingAutoFillUploadField; - - private class ImagingAutoFillUploadField : IImagingAutoFillUploadField - { - public string Alias { get; set; } - public string WidthFieldAlias { get; set; } - public string HeightFieldAlias { get; set; } - public string LengthFieldAlias { get; set; } - public string ExtensionFieldAlias { get; set; } - } + public ImagingAutoFillUploadField[] AutoFillImageProperties { get; set; } = DefaultImagingAutoFillUploadField; } } diff --git a/src/Umbraco.Core/Configuration/Models/ContentSettings.cs b/src/Umbraco.Core/Configuration/Models/ContentSettings.cs index 5158a5c746..65d7855dc7 100644 --- a/src/Umbraco.Core/Configuration/Models/ContentSettings.cs +++ b/src/Umbraco.Core/Configuration/Models/ContentSettings.cs @@ -1,6 +1,6 @@ using System; using System.Collections.Generic; -using Umbraco.Core.Configuration.UmbracoSettings; +using Umbraco.Core.Configuration.Models.Validation; using Umbraco.Core.Macros; namespace Umbraco.Core.Configuration.Models @@ -16,7 +16,7 @@ namespace Umbraco.Core.Configuration.Models public bool ResolveUrlsFromTextString { get; set; } = false; - public IEnumerable Error404Collection { get; set; } = Array.Empty(); + public ContentErrorPage[] Error404Collection { get; set; } = Array.Empty(); public string PreviewBadge { get; set; } = DefaultPreviewBadge; diff --git a/src/Umbraco.Core/Configuration/Models/HostingSettings.cs b/src/Umbraco.Core/Configuration/Models/HostingSettings.cs index 0863181922..b003315c56 100644 --- a/src/Umbraco.Core/Configuration/Models/HostingSettings.cs +++ b/src/Umbraco.Core/Configuration/Models/HostingSettings.cs @@ -1,4 +1,6 @@ -namespace Umbraco.Core.Configuration.Models +using System; + +namespace Umbraco.Core.Configuration.Models { public class HostingSettings { diff --git a/src/Umbraco.Core/Configuration/Models/ImagingAutoFillUploadField.cs b/src/Umbraco.Core/Configuration/Models/ImagingAutoFillUploadField.cs new file mode 100644 index 0000000000..f58e2bb4f8 --- /dev/null +++ b/src/Umbraco.Core/Configuration/Models/ImagingAutoFillUploadField.cs @@ -0,0 +1,23 @@ +using System.ComponentModel.DataAnnotations; +using Umbraco.Core.Configuration.Models.Validation; + +namespace Umbraco.Core.Configuration.Models +{ + public class ImagingAutoFillUploadField : ValidatableEntryBase + { + [Required] + public string Alias { get; set; } + + [Required] + public string WidthFieldAlias { get; set; } + + [Required] + public string HeightFieldAlias { get; set; } + + [Required] + public string LengthFieldAlias { get; set; } + + [Required] + public string ExtensionFieldAlias { get; set; } + } +} diff --git a/src/Umbraco.Core/Configuration/Models/ModelsBuilderConfig.cs b/src/Umbraco.Core/Configuration/Models/ModelsBuilderSettings.cs similarity index 98% rename from src/Umbraco.Core/Configuration/Models/ModelsBuilderConfig.cs rename to src/Umbraco.Core/Configuration/Models/ModelsBuilderSettings.cs index e99557755c..414165d2e4 100644 --- a/src/Umbraco.Core/Configuration/Models/ModelsBuilderConfig.cs +++ b/src/Umbraco.Core/Configuration/Models/ModelsBuilderSettings.cs @@ -5,7 +5,7 @@ namespace Umbraco.Core.Configuration.Models /// /// Represents the models builder configuration. /// - public class ModelsBuilderConfig + public class ModelsBuilderSettings { public static string DefaultModelsDirectory => "~/App_Data/Models"; diff --git a/src/Umbraco.Core/Configuration/Models/NuCacheSettings.cs b/src/Umbraco.Core/Configuration/Models/NuCacheSettings.cs index a2bc7d3561..89a726f30a 100644 --- a/src/Umbraco.Core/Configuration/Models/NuCacheSettings.cs +++ b/src/Umbraco.Core/Configuration/Models/NuCacheSettings.cs @@ -2,6 +2,6 @@ { public class NuCacheSettings { - public string BTreeBlockSize { get; set; } + public int? BTreeBlockSize { get; set; } } } diff --git a/src/Umbraco.Core/Configuration/Models/SmtpSettings.cs b/src/Umbraco.Core/Configuration/Models/SmtpSettings.cs index a507f8a62f..7c19f28d87 100644 --- a/src/Umbraco.Core/Configuration/Models/SmtpSettings.cs +++ b/src/Umbraco.Core/Configuration/Models/SmtpSettings.cs @@ -1,9 +1,14 @@ -using System.Net.Mail; +using System; +using System.ComponentModel.DataAnnotations; +using System.Net.Mail; +using Umbraco.Core.Configuration.Models.Validation; namespace Umbraco.Core.Configuration.Models { - public class SmtpSettings + public class SmtpSettings : ValidatableEntryBase { + [Required] + [EmailAddress] public string From { get; set; } public string Host { get; set; } @@ -12,7 +17,7 @@ namespace Umbraco.Core.Configuration.Models public string PickupDirectoryLocation { get; set; } - public SmtpDeliveryMethod DeliveryMethod { get; set; } + public SmtpDeliveryMethod DeliveryMethod { get; set; } = SmtpDeliveryMethod.Network; public string Username { get; set; } diff --git a/src/Umbraco.Core/Configuration/Models/Validation/ConfigurationValidatorBase.cs b/src/Umbraco.Core/Configuration/Models/Validation/ConfigurationValidatorBase.cs new file mode 100644 index 0000000000..fe8d077166 --- /dev/null +++ b/src/Umbraco.Core/Configuration/Models/Validation/ConfigurationValidatorBase.cs @@ -0,0 +1,45 @@ +using System; +using System.Collections.Generic; +using System.Linq; + +namespace Umbraco.Core.Configuration.Models.Validation +{ + public abstract class ConfigurationValidatorBase + { + public bool ValidateStringIsOneOfValidValues(string configPath, string value, IEnumerable validValues, out string message) + { + if (!validValues.InvariantContains(value)) + { + message = $"Configuration entry {configPath} contains an invalid value '{value}', it should be one of the following: '{string.Join(", ", validValues)}'."; + return false; + } + + message = string.Empty; + return true; + } + + public bool ValidateCollection(string configPath, IEnumerable values, string validationDescription, out string message) + { + if (values.Any(x => !x.IsValid())) + { + message = $"Configuration entry {configPath} contains one or more invalid values. {validationDescription}."; + return false; + } + + message = string.Empty; + return true; + } + + public bool ValidateOptionalEntry(string configPath, ValidatableEntryBase value, string validationDescription, out string message) + { + if (value != null && !value.IsValid()) + { + message = $"Configuration entry {configPath} contains one or more invalid values. {validationDescription}."; + return false; + } + + message = string.Empty; + return true; + } + } +} diff --git a/src/Umbraco.Core/Configuration/Models/Validation/ContentSettingsValidator.cs b/src/Umbraco.Core/Configuration/Models/Validation/ContentSettingsValidator.cs new file mode 100644 index 0000000000..9ed22f922e --- /dev/null +++ b/src/Umbraco.Core/Configuration/Models/Validation/ContentSettingsValidator.cs @@ -0,0 +1,35 @@ +using System.Collections.Generic; +using Microsoft.Extensions.Options; +using Umbraco.Core.Macros; + +namespace Umbraco.Core.Configuration.Models.Validation +{ + public class ContentSettingsValidator : ConfigurationValidatorBase, IValidateOptions + { + public ValidateOptionsResult Validate(string name, ContentSettings options) + { + string message; + if (!ValidateError404Collection(options.Error404Collection, out message)) + { + return ValidateOptionsResult.Fail(message); + } + + if (!ValidateAutoFillImageProperties(options.Imaging.AutoFillImageProperties, out message)) + { + return ValidateOptionsResult.Fail(message); + } + + return ValidateOptionsResult.Success; + } + + private bool ValidateError404Collection(IEnumerable values, out string message) + { + return ValidateCollection($"{Constants.Configuration.ConfigContent}:{nameof(ContentSettings.Error404Collection)}", values, "Culture and one and only one of ContentId, ContentKey and ContentXPath must be specified for each entry", out message); + } + + private bool ValidateAutoFillImageProperties(IEnumerable values, out string message) + { + return ValidateCollection($"{Constants.Configuration.ConfigContent}:{nameof(ContentSettings.Imaging)}:{nameof(ContentSettings.Imaging.AutoFillImageProperties)}", values, "Alias, WidthFieldAlias, HeightFieldAlias, LengthFieldAlias and ExtensionFieldAlias must be specified for each entry", out message); + } + } +} diff --git a/src/Umbraco.Core/Configuration/Models/Validation/GlobalSettingsValidator.cs b/src/Umbraco.Core/Configuration/Models/Validation/GlobalSettingsValidator.cs new file mode 100644 index 0000000000..ca3fee7999 --- /dev/null +++ b/src/Umbraco.Core/Configuration/Models/Validation/GlobalSettingsValidator.cs @@ -0,0 +1,23 @@ +using Microsoft.Extensions.Options; + +namespace Umbraco.Core.Configuration.Models.Validation +{ + public class GlobalSettingsValidator + : ConfigurationValidatorBase, IValidateOptions + { + public ValidateOptionsResult Validate(string name, GlobalSettings options) + { + if (!ValidateSmtpSetting(options.Smtp, out var message)) + { + return ValidateOptionsResult.Fail(message); + } + + return ValidateOptionsResult.Success; + } + + private bool ValidateSmtpSetting(SmtpSettings value, out string message) + { + return ValidateOptionalEntry($"{Constants.Configuration.ConfigGlobal}:{nameof(GlobalSettings.Smtp)}", value, "A valid From email address is required", out message); + } + } +} diff --git a/src/Umbraco.Core/Configuration/Models/Validation/RequestHandlerSettingsValidator.cs b/src/Umbraco.Core/Configuration/Models/Validation/RequestHandlerSettingsValidator.cs new file mode 100644 index 0000000000..305fe812f8 --- /dev/null +++ b/src/Umbraco.Core/Configuration/Models/Validation/RequestHandlerSettingsValidator.cs @@ -0,0 +1,23 @@ +using Microsoft.Extensions.Options; + +namespace Umbraco.Core.Configuration.Models.Validation +{ + public class RequestHandlerSettingsValidator : ConfigurationValidatorBase, IValidateOptions + { + public ValidateOptionsResult Validate(string name, RequestHandlerSettings options) + { + if (!ValidateConvertUrlsToAscii(options.ConvertUrlsToAscii, out var message)) + { + return ValidateOptionsResult.Fail(message); + } + + return ValidateOptionsResult.Success; + } + + private bool ValidateConvertUrlsToAscii(string value, out string message) + { + var validValues = new[] { "try", "true", "false" }; + return ValidateStringIsOneOfValidValues($"{Constants.Configuration.ConfigRequestHandler}:{nameof(RequestHandlerSettings.ConvertUrlsToAscii)}", value, validValues, out message); + } + } +} diff --git a/src/Umbraco.Core/Configuration/Models/Validation/ValidatableEntryBase.cs b/src/Umbraco.Core/Configuration/Models/Validation/ValidatableEntryBase.cs new file mode 100644 index 0000000000..32e3c3270b --- /dev/null +++ b/src/Umbraco.Core/Configuration/Models/Validation/ValidatableEntryBase.cs @@ -0,0 +1,15 @@ +using System.Collections.Generic; +using System.ComponentModel.DataAnnotations; + +namespace Umbraco.Core.Configuration.Models.Validation +{ + public abstract class ValidatableEntryBase + { + internal virtual bool IsValid() + { + var ctx = new ValidationContext(this); + var results = new List(); + return Validator.TryValidateObject(this, ctx, results, true); + } + } +} diff --git a/src/Umbraco.Core/Configuration/Models/WebRoutingSettings.cs b/src/Umbraco.Core/Configuration/Models/WebRoutingSettings.cs index 7e0c4d5d8c..476d58c913 100644 --- a/src/Umbraco.Core/Configuration/Models/WebRoutingSettings.cs +++ b/src/Umbraco.Core/Configuration/Models/WebRoutingSettings.cs @@ -16,7 +16,7 @@ namespace Umbraco.Core.Configuration.Models public bool DisableRedirectUrlTracking { get; set; } = false; - public string UrlProviderMode { get; set; } = UrlMode.Auto.ToString(); + public UrlMode UrlProviderMode { get; set; } = UrlMode.Auto; public string UmbracoApplicationUrl { get; set; } } diff --git a/src/Umbraco.Core/Configuration/ModelsBuilderConfigExtensions.cs b/src/Umbraco.Core/Configuration/ModelsBuilderConfigExtensions.cs index edf068e16f..ef80796c8b 100644 --- a/src/Umbraco.Core/Configuration/ModelsBuilderConfigExtensions.cs +++ b/src/Umbraco.Core/Configuration/ModelsBuilderConfigExtensions.cs @@ -10,7 +10,7 @@ namespace Umbraco.Core.Configuration { private static string _modelsDirectoryAbsolute = null; - public static string ModelsDirectoryAbsolute(this ModelsBuilderConfig modelsBuilderConfig, IHostingEnvironment hostingEnvironment) + public static string ModelsDirectoryAbsolute(this ModelsBuilderSettings modelsBuilderConfig, IHostingEnvironment hostingEnvironment) { if (_modelsDirectoryAbsolute is null) { diff --git a/src/Umbraco.Core/Constants-Configuration.cs b/src/Umbraco.Core/Constants-Configuration.cs index 86a02affb6..c06ec8f1ec 100644 --- a/src/Umbraco.Core/Constants-Configuration.cs +++ b/src/Umbraco.Core/Constants-Configuration.cs @@ -11,11 +11,30 @@ /// ":" is used as marker for nested objects in json. E.g. "Umbraco:CMS:" = {"Umbraco":{"CMS":{....}} /// public const string ConfigPrefix = "Umbraco:CMS:"; - public const string ConfigSecurityPrefix = ConfigPrefix+"Security:"; - public const string ConfigGlobalPrefix = ConfigPrefix + "Global:"; - public const string ConfigModelsBuilderPrefix = ConfigPrefix+"ModelsBuilder:"; - public const string ConfigRuntimeMinification = ConfigPrefix+"RuntimeMinification"; - public const string ConfigRuntimeMinificationVersion = ConfigRuntimeMinification+":Version"; + public const string ConfigActiveDirectory = ConfigPrefix + "ActiveDirectory"; + public const string ConfigContent = ConfigPrefix + "Content"; + public const string ConfigCoreDebug = ConfigPrefix + "Core:Debug"; + public const string ConfigExceptionFilter = ConfigPrefix + "ExceptionFilter"; + public const string ConfigGlobal = ConfigPrefix + "Global"; + public const string ConfigHealthChecks = ConfigPrefix + "HealthChecks"; + public const string ConfigHosting = ConfigPrefix + "Hosting"; + public const string ConfigImaging = ConfigPrefix + "Imaging"; + public const string ConfigExamine = ConfigPrefix + "Examine"; + public const string ConfigKeepAlive = ConfigPrefix + "KeepAlive"; + public const string ConfigLogging = ConfigPrefix + "Logging"; + public const string ConfigMemberPassword = ConfigPrefix + "Security:MemberPassword"; + public const string ConfigModelsBuilder = ConfigPrefix + "ModelsBuilder"; + public const string ConfigNuCache = ConfigPrefix + "NuCache"; + public const string ConfigRequestHandler = ConfigPrefix + "RequestHandler"; + public const string ConfigRuntime = ConfigPrefix + "Runtime"; + public const string ConfigSecurity = ConfigPrefix + "Security"; + public const string ConfigTours = ConfigPrefix + "Tours"; + public const string ConfigTypeFinder = ConfigPrefix + "TypeFinder"; + public const string ConfigWebRouting = ConfigPrefix + "WebRouting"; + public const string ConfigUserPassword = ConfigPrefix + "Security:UserPassword"; + + public const string ConfigRuntimeMinification = ConfigPrefix + "RuntimeMinification"; + public const string ConfigRuntimeMinificationVersion = ConfigRuntimeMinification + ":Version"; } } } diff --git a/src/Umbraco.Core/Constants-Web.cs b/src/Umbraco.Core/Constants-Web.cs index d18e23a6c3..d0ae5550ca 100644 --- a/src/Umbraco.Core/Constants-Web.cs +++ b/src/Umbraco.Core/Constants-Web.cs @@ -51,6 +51,7 @@ public const string BackOfficePathSegment = "BackOffice"; // The path segment prefix for all back office controllers public const string BackOfficeArea = "UmbracoBackOffice"; // Used for area routes of non-api controllers public const string BackOfficeApiArea = "UmbracoApi"; // Same name as v8 so all routing remains the same + public const string BackOfficeTreeArea = "UmbracoTrees"; // Same name as v8 so all routing remains the same } } } diff --git a/src/Umbraco.Core/Logging/ILoggingConfiguration.cs b/src/Umbraco.Core/Logging/ILoggingConfiguration.cs index 47e2d8fa7c..d21a08e688 100644 --- a/src/Umbraco.Core/Logging/ILoggingConfiguration.cs +++ b/src/Umbraco.Core/Logging/ILoggingConfiguration.cs @@ -7,7 +7,5 @@ /// The physical path where logs are stored /// string LogDirectory { get; } - string LogConfigurationFile { get; } - string UserLogConfigurationFile { get; } } } diff --git a/src/Umbraco.Core/Logging/LoggingConfiguration.cs b/src/Umbraco.Core/Logging/LoggingConfiguration.cs index c657c9d430..ecd806211c 100644 --- a/src/Umbraco.Core/Logging/LoggingConfiguration.cs +++ b/src/Umbraco.Core/Logging/LoggingConfiguration.cs @@ -4,17 +4,11 @@ namespace Umbraco.Core.Logging { public class LoggingConfiguration : ILoggingConfiguration { - public LoggingConfiguration(string logDirectory, string logConfigurationFile, string userLogConfigurationFile) + public LoggingConfiguration(string logDirectory) { LogDirectory = logDirectory ?? throw new ArgumentNullException(nameof(logDirectory)); - LogConfigurationFile = logConfigurationFile ?? throw new ArgumentNullException(nameof(logConfigurationFile)); - UserLogConfigurationFile = userLogConfigurationFile ?? throw new ArgumentNullException(nameof(userLogConfigurationFile)); } public string LogDirectory { get; } - - public string LogConfigurationFile { get; } - - public string UserLogConfigurationFile { get; } } } diff --git a/src/Umbraco.Core/Media/IImageUrlGenerator.cs b/src/Umbraco.Core/Media/IImageUrlGenerator.cs index f9e67cdd2b..7c77a34388 100644 --- a/src/Umbraco.Core/Media/IImageUrlGenerator.cs +++ b/src/Umbraco.Core/Media/IImageUrlGenerator.cs @@ -1,9 +1,12 @@ -using Umbraco.Core.Models; +using System.Collections.Generic; +using Umbraco.Core.Models; namespace Umbraco.Core.Media { public interface IImageUrlGenerator { + IEnumerable SupportedImageFileTypes { get; } + string GetImageUrl(ImageUrlGenerationOptions options); } } diff --git a/src/Umbraco.Core/Media/ImageUrlGeneratorExtensions.cs b/src/Umbraco.Core/Media/ImageUrlGeneratorExtensions.cs new file mode 100644 index 0000000000..902f84331b --- /dev/null +++ b/src/Umbraco.Core/Media/ImageUrlGeneratorExtensions.cs @@ -0,0 +1,21 @@ +using System; + +namespace Umbraco.Core.Media +{ + public static class ImageUrlGeneratorExtensions + { + /// + /// Gets a value indicating whether the file extension corresponds to a supported image. + /// + /// The image URL generator implementation that provides detail on which image extension sare supported. + /// The file extension. + /// A value indicating whether the file extension corresponds to an image. + public static bool IsSupportedImageFormat(this IImageUrlGenerator imageUrlGenerator, string extension) + { + if (imageUrlGenerator == null) throw new ArgumentNullException(nameof(imageUrlGenerator)); + if (extension == null) return false; + extension = extension.TrimStart('.'); + return imageUrlGenerator.SupportedImageFileTypes.InvariantContains(extension); + } + } +} diff --git a/src/Umbraco.Core/Routing/UrlProvider.cs b/src/Umbraco.Core/Routing/UrlProvider.cs index 69d2e00276..9dd4a413a2 100644 --- a/src/Umbraco.Core/Routing/UrlProvider.cs +++ b/src/Umbraco.Core/Routing/UrlProvider.cs @@ -31,16 +31,9 @@ namespace Umbraco.Web.Routing _urlProviders = urlProviders; _mediaUrlProviders = mediaUrlProviders; _variationContextAccessor = variationContextAccessor ?? throw new ArgumentNullException(nameof(variationContextAccessor)); - var provider = UrlMode.Auto; - Mode = provider; - - if (Enum.TryParse(routingSettings.Value.UrlProviderMode, out provider)) - { - Mode = provider; - } + Mode = routingSettings.Value.UrlProviderMode; } - private readonly IUmbracoContextAccessor _umbracoContextAccessor; private readonly IEnumerable _urlProviders; private readonly IEnumerable _mediaUrlProviders; diff --git a/src/Umbraco.Infrastructure/Composing/HostBuilderExtensions.cs b/src/Umbraco.Infrastructure/Composing/HostBuilderExtensions.cs index f6d980f62a..ad7c75b94f 100644 --- a/src/Umbraco.Infrastructure/Composing/HostBuilderExtensions.cs +++ b/src/Umbraco.Infrastructure/Composing/HostBuilderExtensions.cs @@ -26,7 +26,6 @@ namespace Umbraco.Core.Composing /// /// public static IHostBuilder UseUmbraco(this IHostBuilder builder, UmbracoServiceProviderFactory umbracoServiceProviderFactory) - => builder.UseServiceProviderFactory(umbracoServiceProviderFactory) - .UseSerilog(); + => builder.UseServiceProviderFactory(umbracoServiceProviderFactory); } } diff --git a/src/Umbraco.Infrastructure/Logging/Serilog/LoggerConfigExtensions.cs b/src/Umbraco.Infrastructure/Logging/Serilog/LoggerConfigExtensions.cs index f2e028e6de..84270b95bf 100644 --- a/src/Umbraco.Infrastructure/Logging/Serilog/LoggerConfigExtensions.cs +++ b/src/Umbraco.Infrastructure/Logging/Serilog/LoggerConfigExtensions.cs @@ -7,7 +7,6 @@ using Serilog.Core; using Serilog.Events; using Serilog.Formatting; using Serilog.Formatting.Compact; -using Umbraco.Core.IO; using Umbraco.Core.Hosting; using Umbraco.Core.Logging.Serilog.Enrichers; @@ -48,6 +47,11 @@ namespace Umbraco.Core.Logging.Serilog .Enrich.With() .Enrich.FromLogContext(); // allows us to dynamically enrich + + logConfig.WriteTo.UmbracoFile( + Path.Combine(loggingConfiguration.LogDirectory, $"UmbracoTraceLog.{Environment.MachineName}..json") + ); + return logConfig; } @@ -61,7 +65,7 @@ namespace Umbraco.Core.Logging.Serilog public static LoggerConfiguration OutputDefaultTextFile( this LoggerConfiguration logConfig, IHostingEnvironment hostingEnvironment, - ILoggingConfiguration loggingConfiguration, LogEventLevel minimumLevel = LogEventLevel.Verbose, int? retainedFileCount = null) + LogEventLevel minimumLevel = LogEventLevel.Verbose) { //Main .txt logfile - in similar format to older Log4Net output //Ends with ..txt as Date is inserted before file extension substring @@ -79,18 +83,25 @@ namespace Umbraco.Core.Logging.Serilog /// /// Used in config - If renamed or moved to other assembly the config file also has be updated. /// - public static LoggerConfiguration File(this LoggerSinkConfiguration configuration, ITextFormatter formatter, + public static LoggerConfiguration UmbracoFile(this LoggerSinkConfiguration configuration, string path, + ITextFormatter formatter = null, LogEventLevel restrictedToMinimumLevel = LogEventLevel.Verbose, LoggingLevelSwitch levelSwitch = null, long? fileSizeLimitBytes = 1073741824, TimeSpan? flushToDiskInterval = null, - RollingInterval rollingInterval = RollingInterval.Infinite, + RollingInterval rollingInterval = RollingInterval.Day, bool rollOnFileSizeLimit = false, int? retainedFileCountLimit = 31, Encoding encoding = null ) { + + if (formatter is null) + { + formatter = new CompactJsonFormatter(); + } + return configuration.Async( asyncConfiguration => asyncConfiguration.Map(AppDomainId, (_,mapConfiguration) => mapConfiguration.File( @@ -136,34 +147,5 @@ namespace Umbraco.Core.Logging.Serilog return logConfig; } - /// - /// Reads settings from /config/serilog.config - /// That allows the main logging pipeline to be configured - /// - /// A Serilog LoggerConfiguration - /// - public static LoggerConfiguration ReadFromConfigFile(this LoggerConfiguration logConfig, ILoggingConfiguration loggingConfiguration) - { - //Read from main serilog.config file - logConfig.ReadFrom.AppSettings(filePath: loggingConfiguration.LogConfigurationFile); - - return logConfig; - } - - /// - /// Reads settings from /config/serilog.user.config - /// That allows a separate logging pipeline to be configured that will not affect the main Umbraco log - /// - /// A Serilog LoggerConfiguration - /// - public static LoggerConfiguration ReadFromUserConfigFile(this LoggerConfiguration logConfig, ILoggingConfiguration loggingConfiguration) - { - //A nested logger - where any user configured sinks via config can not effect the main 'umbraco' logger above - logConfig.WriteTo.Logger(cfg => - cfg.ReadFrom.AppSettings(filePath: loggingConfiguration.UserLogConfigurationFile)); - - return logConfig; - } - } } diff --git a/src/Umbraco.Infrastructure/Logging/Serilog/SerilogLogger.cs b/src/Umbraco.Infrastructure/Logging/Serilog/SerilogLogger.cs index 38af9554ab..7b8b83c59a 100644 --- a/src/Umbraco.Infrastructure/Logging/Serilog/SerilogLogger.cs +++ b/src/Umbraco.Infrastructure/Logging/Serilog/SerilogLogger.cs @@ -1,7 +1,9 @@ using System; using System.IO; +using Microsoft.Extensions.Configuration; using Serilog; using Serilog.Events; +using Serilog.Extensions.Logging; using Umbraco.Core.Hosting; namespace Umbraco.Core.Logging.Serilog @@ -35,13 +37,14 @@ namespace Umbraco.Core.Logging.Serilog /// Creates a logger with some pre-defined configuration and remainder from config file /// /// Used by UmbracoApplicationBase to get its logger. - public static SerilogLogger CreateWithDefaultConfiguration(IHostingEnvironment hostingEnvironment, ILoggingConfiguration loggingConfiguration) + public static SerilogLogger CreateWithDefaultConfiguration( + IHostingEnvironment hostingEnvironment, + ILoggingConfiguration loggingConfiguration, + IConfiguration configuration) { - var loggerConfig = new LoggerConfiguration(); - loggerConfig + var loggerConfig = new LoggerConfiguration() .MinimalConfiguration(hostingEnvironment, loggingConfiguration) - .ReadFromConfigFile(loggingConfiguration) - .ReadFromUserConfigFile(loggingConfiguration); + .ReadFrom.Configuration(configuration); return new SerilogLogger(loggerConfig); } @@ -83,7 +86,7 @@ namespace Umbraco.Core.Logging.Serilog /// public void Fatal(Type reporting, Exception exception, string message) { - var logger = LoggerFor(reporting); + var logger = LoggerFor(reporting); logger.Fatal(exception, message); } @@ -91,7 +94,7 @@ namespace Umbraco.Core.Logging.Serilog public void Fatal(Type reporting, Exception exception) { var logger = LoggerFor(reporting); - var message = "Exception."; + var message = "Exception."; logger.Fatal(exception, message); } @@ -110,14 +113,14 @@ namespace Umbraco.Core.Logging.Serilog /// public void Fatal(Type reporting, Exception exception, string messageTemplate, params object[] propertyValues) { - var logger = LoggerFor(reporting); + var logger = LoggerFor(reporting); logger.Fatal(exception, messageTemplate, propertyValues); } /// public void Error(Type reporting, Exception exception, string message) { - var logger = LoggerFor(reporting); + var logger = LoggerFor(reporting); logger.Error(exception, message); } diff --git a/src/Umbraco.Infrastructure/Logging/Viewer/LogViewerComposer.cs b/src/Umbraco.Infrastructure/Logging/Viewer/LogViewerComposer.cs index 0909ec67ad..d340bb817f 100644 --- a/src/Umbraco.Infrastructure/Logging/Viewer/LogViewerComposer.cs +++ b/src/Umbraco.Infrastructure/Logging/Viewer/LogViewerComposer.cs @@ -11,16 +11,6 @@ namespace Umbraco.Core.Logging.Viewer { public void Compose(Composition composition) { - - - composition.RegisterUnique(factory => - { - var hostingEnvironment = factory.GetInstance(); - return new LoggingConfiguration( - Path.Combine(hostingEnvironment.ApplicationPhysicalPath, "App_Data", "Logs"), - Path.Combine(hostingEnvironment.ApplicationPhysicalPath, "config", "serilog.config"), - Path.Combine(hostingEnvironment.ApplicationPhysicalPath, "config", "serilog.user.config")); - }); composition.RegisterUnique(); composition.SetLogViewer(); composition.RegisterUnique(factory => diff --git a/src/Umbraco.Infrastructure/Media/ImageSharpImageUrlGenerator.cs b/src/Umbraco.Infrastructure/Media/ImageSharpImageUrlGenerator.cs index 48ff16f85b..cfe542badc 100644 --- a/src/Umbraco.Infrastructure/Media/ImageSharpImageUrlGenerator.cs +++ b/src/Umbraco.Infrastructure/Media/ImageSharpImageUrlGenerator.cs @@ -1,4 +1,5 @@ -using System.Globalization; +using System.Collections.Generic; +using System.Globalization; using System.Text; using Umbraco.Core; using Umbraco.Core.Media; @@ -9,6 +10,8 @@ namespace Umbraco.Infrastructure.Media { public class ImageSharpImageUrlGenerator : IImageUrlGenerator { + public IEnumerable SupportedImageFileTypes => new[] { "jpeg", "jpg", "gif", "bmp", "png" }; + public string GetImageUrl(ImageUrlGenerationOptions options) { if (options == null) return null; diff --git a/src/Umbraco.Infrastructure/Media/UploadAutoFillProperties.cs b/src/Umbraco.Infrastructure/Media/UploadAutoFillProperties.cs index 762e418441..482fa0a6b8 100644 --- a/src/Umbraco.Infrastructure/Media/UploadAutoFillProperties.cs +++ b/src/Umbraco.Infrastructure/Media/UploadAutoFillProperties.cs @@ -1,13 +1,11 @@ using System; using System.Drawing; using System.IO; -using Microsoft.Extensions.Options; using Umbraco.Core; -using Umbraco.Core.Configuration; using Umbraco.Core.Configuration.Models; -using Umbraco.Core.Configuration.UmbracoSettings; using Umbraco.Core.IO; using Umbraco.Core.Logging; +using Umbraco.Core.Media; using Umbraco.Core.Models; namespace Umbraco.Web.Media @@ -19,16 +17,16 @@ namespace Umbraco.Web.Media { private readonly IMediaFileSystem _mediaFileSystem; private readonly ILogger _logger; - private readonly ContentSettings _contentSettings; + private readonly IImageUrlGenerator _imageUrlGenerator; public UploadAutoFillProperties( IMediaFileSystem mediaFileSystem, ILogger logger, - IOptions contentSettings) + IImageUrlGenerator imageUrlGenerator) { _mediaFileSystem = mediaFileSystem ?? throw new ArgumentNullException(nameof(mediaFileSystem)); _logger = logger ?? throw new ArgumentNullException(nameof(logger)); - _contentSettings = contentSettings.Value ?? throw new ArgumentNullException(nameof(contentSettings)); + _imageUrlGenerator = imageUrlGenerator ?? throw new ArgumentNullException(nameof(imageUrlGenerator)); } /// @@ -38,7 +36,7 @@ namespace Umbraco.Web.Media /// The auto-fill configuration. /// Variation language. /// Variation segment. - public void Reset(IContentBase content, IImagingAutoFillUploadField autoFillConfig, string culture, string segment) + public void Reset(IContentBase content, ImagingAutoFillUploadField autoFillConfig, string culture, string segment) { if (content == null) throw new ArgumentNullException(nameof(content)); if (autoFillConfig == null) throw new ArgumentNullException(nameof(autoFillConfig)); @@ -55,7 +53,7 @@ namespace Umbraco.Web.Media /// The parameter is the path relative to the filesystem. /// Variation language. /// Variation segment. - public void Populate(IContentBase content, IImagingAutoFillUploadField autoFillConfig, string filepath, string culture, string segment) + public void Populate(IContentBase content, ImagingAutoFillUploadField autoFillConfig, string filepath, string culture, string segment) { if (content == null) throw new ArgumentNullException(nameof(content)); if (autoFillConfig == null) throw new ArgumentNullException(nameof(autoFillConfig)); @@ -73,7 +71,7 @@ namespace Umbraco.Web.Media using (var filestream = _mediaFileSystem.OpenFile(filepath)) { var extension = (Path.GetExtension(filepath) ?? "").TrimStart('.'); - var size = _contentSettings.IsImageFile(extension) ? (Size?)ImageHelper.GetDimensions(filestream) : null; + var size = _imageUrlGenerator.IsSupportedImageFormat(extension) ? (Size?)ImageHelper.GetDimensions(filestream) : null; SetProperties(content, autoFillConfig, size, filestream.Length, extension, culture, segment); } } @@ -94,7 +92,7 @@ namespace Umbraco.Web.Media /// The stream containing the file data. /// Variation language. /// Variation segment. - public void Populate(IContentBase content, IImagingAutoFillUploadField autoFillConfig, string filepath, Stream filestream, string culture, string segment) + public void Populate(IContentBase content, ImagingAutoFillUploadField autoFillConfig, string filepath, Stream filestream, string culture, string segment) { if (content == null) throw new ArgumentNullException(nameof(content)); if (autoFillConfig == null) throw new ArgumentNullException(nameof(autoFillConfig)); @@ -107,12 +105,12 @@ namespace Umbraco.Web.Media else { var extension = (Path.GetExtension(filepath) ?? "").TrimStart('.'); - var size = _contentSettings.IsImageFile(extension) ? (Size?)ImageHelper.GetDimensions(filestream) : null; + var size = _imageUrlGenerator.IsSupportedImageFormat(extension) ? (Size?)ImageHelper.GetDimensions(filestream) : null; SetProperties(content, autoFillConfig, size, filestream.Length, extension, culture, segment); } } - private static void SetProperties(IContentBase content, IImagingAutoFillUploadField autoFillConfig, Size? size, long length, string extension, string culture, string segment) + private static void SetProperties(IContentBase content, ImagingAutoFillUploadField autoFillConfig, Size? size, long length, string extension, string culture, string segment) { if (content == null) throw new ArgumentNullException(nameof(content)); if (autoFillConfig == null) throw new ArgumentNullException(nameof(autoFillConfig)); @@ -130,7 +128,7 @@ namespace Umbraco.Web.Media content.Properties[autoFillConfig.ExtensionFieldAlias].SetValue(extension, culture, segment); } - private static void ResetProperties(IContentBase content, IImagingAutoFillUploadField autoFillConfig, string culture, string segment) + private static void ResetProperties(IContentBase content, ImagingAutoFillUploadField autoFillConfig, string culture, string segment) { if (content == null) throw new ArgumentNullException(nameof(content)); if (autoFillConfig == null) throw new ArgumentNullException(nameof(autoFillConfig)); diff --git a/src/Umbraco.Infrastructure/PropertyEditors/FileUploadPropertyEditor.cs b/src/Umbraco.Infrastructure/PropertyEditors/FileUploadPropertyEditor.cs index d4c5130b21..ab0b943a2f 100644 --- a/src/Umbraco.Infrastructure/PropertyEditors/FileUploadPropertyEditor.cs +++ b/src/Umbraco.Infrastructure/PropertyEditors/FileUploadPropertyEditor.cs @@ -7,6 +7,7 @@ using Umbraco.Core.Configuration; using Umbraco.Core.Configuration.Models; using Umbraco.Core.IO; using Umbraco.Core.Logging; +using Umbraco.Core.Media; using Umbraco.Core.Models; using Umbraco.Core.PropertyEditors; using Umbraco.Core.Services; @@ -37,7 +38,8 @@ namespace Umbraco.Web.PropertyEditors IDataTypeService dataTypeService, ILocalizationService localizationService, ILocalizedTextService localizedTextService, - IShortStringHelper shortStringHelper) + IShortStringHelper shortStringHelper, + UploadAutoFillProperties uploadAutoFillProperties) : base(logger, dataTypeService, localizationService, localizedTextService, shortStringHelper) { _mediaFileSystem = mediaFileSystem ?? throw new ArgumentNullException(nameof(mediaFileSystem)); @@ -45,7 +47,7 @@ namespace Umbraco.Web.PropertyEditors _dataTypeService = dataTypeService; _localizationService = localizationService; _localizedTextService = localizedTextService; - _uploadAutoFillProperties = new UploadAutoFillProperties(_mediaFileSystem, logger, contentSettings); + _uploadAutoFillProperties = uploadAutoFillProperties; } /// diff --git a/src/Umbraco.Infrastructure/PropertyEditors/ImageCropperPropertyEditor.cs b/src/Umbraco.Infrastructure/PropertyEditors/ImageCropperPropertyEditor.cs index 0fea46f2d3..84d85f795c 100644 --- a/src/Umbraco.Infrastructure/PropertyEditors/ImageCropperPropertyEditor.cs +++ b/src/Umbraco.Infrastructure/PropertyEditors/ImageCropperPropertyEditor.cs @@ -9,6 +9,7 @@ using Umbraco.Core.Configuration; using Umbraco.Core.Configuration.Models; using Umbraco.Core.IO; using Umbraco.Core.Logging; +using Umbraco.Core.Media; using Umbraco.Core.Models; using Umbraco.Core.PropertyEditors; using Umbraco.Core.Services; @@ -33,7 +34,6 @@ namespace Umbraco.Web.PropertyEditors private readonly IMediaFileSystem _mediaFileSystem; private readonly ContentSettings _contentSettings; private readonly IDataTypeService _dataTypeService; - private readonly ILocalizationService _localizationService; private readonly IIOHelper _ioHelper; private readonly UploadAutoFillProperties _autoFillProperties; @@ -48,17 +48,15 @@ namespace Umbraco.Web.PropertyEditors ILocalizationService localizationService, IIOHelper ioHelper, IShortStringHelper shortStringHelper, - ILocalizedTextService localizedTextService) + ILocalizedTextService localizedTextService, + UploadAutoFillProperties uploadAutoFillProperties) : base(logger, dataTypeService, localizationService, localizedTextService, shortStringHelper) { _mediaFileSystem = mediaFileSystem ?? throw new ArgumentNullException(nameof(mediaFileSystem)); _contentSettings = contentSettings.Value ?? throw new ArgumentNullException(nameof(contentSettings)); - _dataTypeService = dataTypeService; - _localizationService = localizationService; - _ioHelper = ioHelper; - - // TODO: inject? - _autoFillProperties = new UploadAutoFillProperties(_mediaFileSystem, logger, contentSettings); + _dataTypeService = dataTypeService ?? throw new ArgumentNullException(nameof(dataTypeService)); + _ioHelper = ioHelper ?? throw new ArgumentNullException(nameof(ioHelper)); + _autoFillProperties = uploadAutoFillProperties ?? throw new ArgumentNullException(nameof(uploadAutoFillProperties)); } public bool TryGetMediaPath(string alias, object value, out string mediaPath) diff --git a/src/Umbraco.Infrastructure/Routing/NotFoundHandlerHelper.cs b/src/Umbraco.Infrastructure/Routing/NotFoundHandlerHelper.cs index 20fbe9a1ef..459d95466d 100644 --- a/src/Umbraco.Infrastructure/Routing/NotFoundHandlerHelper.cs +++ b/src/Umbraco.Infrastructure/Routing/NotFoundHandlerHelper.cs @@ -62,7 +62,7 @@ namespace Umbraco.Web.Routing } /// - /// Returns the content id based on the configured IContentErrorPage section + /// Returns the content id based on the configured ContentErrorPage section. /// /// /// diff --git a/src/Umbraco.Infrastructure/Runtime/CoreInitialComposer.cs b/src/Umbraco.Infrastructure/Runtime/CoreInitialComposer.cs index 3422252842..fdd358e64a 100644 --- a/src/Umbraco.Infrastructure/Runtime/CoreInitialComposer.cs +++ b/src/Umbraco.Infrastructure/Runtime/CoreInitialComposer.cs @@ -57,6 +57,7 @@ using IntegerValidator = Umbraco.Core.PropertyEditors.Validators.IntegerValidato using TextStringValueConverter = Umbraco.Core.PropertyEditors.ValueConverters.TextStringValueConverter; using Umbraco.Core.Configuration.Models; using Microsoft.Extensions.Options; +using Umbraco.Web.Media; namespace Umbraco.Core.Runtime { @@ -371,6 +372,8 @@ namespace Umbraco.Core.Runtime // Register noop versions for examine to be overridden by examine composition.RegisterUnique(); composition.RegisterUnique(); + + composition.RegisterUnique(); } } } diff --git a/src/Umbraco.Infrastructure/Umbraco.Infrastructure.csproj b/src/Umbraco.Infrastructure/Umbraco.Infrastructure.csproj index bcd3773ac8..4da891427f 100644 --- a/src/Umbraco.Infrastructure/Umbraco.Infrastructure.csproj +++ b/src/Umbraco.Infrastructure/Umbraco.Infrastructure.csproj @@ -34,6 +34,7 @@ + diff --git a/src/Umbraco.ModelsBuilder.Embedded/BackOffice/ContentTypeModelValidator.cs b/src/Umbraco.ModelsBuilder.Embedded/BackOffice/ContentTypeModelValidator.cs index 5f806883f0..023911d518 100644 --- a/src/Umbraco.ModelsBuilder.Embedded/BackOffice/ContentTypeModelValidator.cs +++ b/src/Umbraco.ModelsBuilder.Embedded/BackOffice/ContentTypeModelValidator.cs @@ -11,7 +11,7 @@ namespace Umbraco.ModelsBuilder.Embedded.BackOffice // ReSharper disable once UnusedMember.Global - This is typed scanned public class ContentTypeModelValidator : ContentTypeModelValidatorBase { - public ContentTypeModelValidator(IOptions config) : base(config) + public ContentTypeModelValidator(IOptions config) : base(config) { } } diff --git a/src/Umbraco.ModelsBuilder.Embedded/BackOffice/ContentTypeModelValidatorBase.cs b/src/Umbraco.ModelsBuilder.Embedded/BackOffice/ContentTypeModelValidatorBase.cs index c1684dde7a..0e4cd4f49a 100644 --- a/src/Umbraco.ModelsBuilder.Embedded/BackOffice/ContentTypeModelValidatorBase.cs +++ b/src/Umbraco.ModelsBuilder.Embedded/BackOffice/ContentTypeModelValidatorBase.cs @@ -14,9 +14,9 @@ namespace Umbraco.ModelsBuilder.Embedded.BackOffice where TModel : ContentTypeSave where TProperty : PropertyTypeBasic { - private readonly IOptions _config; + private readonly IOptions _config; - public ContentTypeModelValidatorBase(IOptions config) + public ContentTypeModelValidatorBase(IOptions config) { _config = config; } diff --git a/src/Umbraco.ModelsBuilder.Embedded/BackOffice/DashboardReport.cs b/src/Umbraco.ModelsBuilder.Embedded/BackOffice/DashboardReport.cs index a0928fafcf..c615559920 100644 --- a/src/Umbraco.ModelsBuilder.Embedded/BackOffice/DashboardReport.cs +++ b/src/Umbraco.ModelsBuilder.Embedded/BackOffice/DashboardReport.cs @@ -8,11 +8,11 @@ namespace Umbraco.ModelsBuilder.Embedded.BackOffice { internal class DashboardReport { - private readonly ModelsBuilderConfig _config; + private readonly ModelsBuilderSettings _config; private readonly OutOfDateModelsStatus _outOfDateModels; private readonly ModelsGenerationError _mbErrors; - public DashboardReport(IOptions config, OutOfDateModelsStatus outOfDateModels, ModelsGenerationError mbErrors) + public DashboardReport(IOptions config, OutOfDateModelsStatus outOfDateModels, ModelsGenerationError mbErrors) { _config = config.Value; _outOfDateModels = outOfDateModels; diff --git a/src/Umbraco.ModelsBuilder.Embedded/BackOffice/MediaTypeModelValidator.cs b/src/Umbraco.ModelsBuilder.Embedded/BackOffice/MediaTypeModelValidator.cs index b6cc135e7c..4ccdc1b362 100644 --- a/src/Umbraco.ModelsBuilder.Embedded/BackOffice/MediaTypeModelValidator.cs +++ b/src/Umbraco.ModelsBuilder.Embedded/BackOffice/MediaTypeModelValidator.cs @@ -11,7 +11,7 @@ namespace Umbraco.ModelsBuilder.Embedded.BackOffice // ReSharper disable once UnusedMember.Global - This is typed scanned public class MediaTypeModelValidator : ContentTypeModelValidatorBase { - public MediaTypeModelValidator(IOptions config) : base(config) + public MediaTypeModelValidator(IOptions config) : base(config) { } } diff --git a/src/Umbraco.ModelsBuilder.Embedded/BackOffice/MemberTypeModelValidator.cs b/src/Umbraco.ModelsBuilder.Embedded/BackOffice/MemberTypeModelValidator.cs index c930642155..9a735631ff 100644 --- a/src/Umbraco.ModelsBuilder.Embedded/BackOffice/MemberTypeModelValidator.cs +++ b/src/Umbraco.ModelsBuilder.Embedded/BackOffice/MemberTypeModelValidator.cs @@ -11,7 +11,7 @@ namespace Umbraco.ModelsBuilder.Embedded.BackOffice // ReSharper disable once UnusedMember.Global - This is typed scanned public class MemberTypeModelValidator : ContentTypeModelValidatorBase { - public MemberTypeModelValidator(IOptions config) : base(config) + public MemberTypeModelValidator(IOptions config) : base(config) { } } diff --git a/src/Umbraco.ModelsBuilder.Embedded/BackOffice/ModelsBuilderDashboardController.cs b/src/Umbraco.ModelsBuilder.Embedded/BackOffice/ModelsBuilderDashboardController.cs index 1339c79052..3adbc0df2c 100644 --- a/src/Umbraco.ModelsBuilder.Embedded/BackOffice/ModelsBuilderDashboardController.cs +++ b/src/Umbraco.ModelsBuilder.Embedded/BackOffice/ModelsBuilderDashboardController.cs @@ -23,14 +23,14 @@ namespace Umbraco.ModelsBuilder.Embedded.BackOffice [UmbracoApplicationAuthorize(Core.Constants.Applications.Settings)] public class ModelsBuilderDashboardController : UmbracoAuthorizedJsonController { - private readonly ModelsBuilderConfig _config; + private readonly ModelsBuilderSettings _config; private readonly ModelsGenerator _modelGenerator; private readonly OutOfDateModelsStatus _outOfDateModels; private readonly ModelsGenerationError _mbErrors; private readonly DashboardReport _dashboardReport; private readonly IHostingEnvironment _hostingEnvironment; - public ModelsBuilderDashboardController(IOptions config, ModelsGenerator modelsGenerator, OutOfDateModelsStatus outOfDateModels, ModelsGenerationError mbErrors, IHostingEnvironment hostingEnvironment) + public ModelsBuilderDashboardController(IOptions config, ModelsGenerator modelsGenerator, OutOfDateModelsStatus outOfDateModels, ModelsGenerationError mbErrors, IHostingEnvironment hostingEnvironment) { //_umbracoServices = umbracoServices; _config = config.Value; diff --git a/src/Umbraco.ModelsBuilder.Embedded/Building/Builder.cs b/src/Umbraco.ModelsBuilder.Embedded/Building/Builder.cs index 4c90234fab..aa7ab40ba5 100644 --- a/src/Umbraco.ModelsBuilder.Embedded/Building/Builder.cs +++ b/src/Umbraco.ModelsBuilder.Embedded/Building/Builder.cs @@ -66,7 +66,7 @@ namespace Umbraco.ModelsBuilder.Embedded.Building /// /// The list of models to generate. /// The models namespace. - protected Builder(ModelsBuilderConfig config, IList typeModels) + protected Builder(ModelsBuilderSettings config, IList typeModels) { _typeModels = typeModels ?? throw new ArgumentNullException(nameof(typeModels)); @@ -83,7 +83,7 @@ namespace Umbraco.ModelsBuilder.Embedded.Building protected Builder() { } - protected ModelsBuilderConfig Config { get; } + protected ModelsBuilderSettings Config { get; } /// /// Prepares generation by processing the result of code parsing. diff --git a/src/Umbraco.ModelsBuilder.Embedded/Building/ModelsGenerator.cs b/src/Umbraco.ModelsBuilder.Embedded/Building/ModelsGenerator.cs index 0348c287cd..bc97118ee4 100644 --- a/src/Umbraco.ModelsBuilder.Embedded/Building/ModelsGenerator.cs +++ b/src/Umbraco.ModelsBuilder.Embedded/Building/ModelsGenerator.cs @@ -11,11 +11,11 @@ namespace Umbraco.ModelsBuilder.Embedded.Building public class ModelsGenerator { private readonly UmbracoServices _umbracoService; - private readonly ModelsBuilderConfig _config; + private readonly ModelsBuilderSettings _config; private readonly OutOfDateModelsStatus _outOfDateModels; private readonly IHostingEnvironment _hostingEnvironment; - public ModelsGenerator(UmbracoServices umbracoService, IOptions config, OutOfDateModelsStatus outOfDateModels, IHostingEnvironment hostingEnvironment) + public ModelsGenerator(UmbracoServices umbracoService, IOptions config, OutOfDateModelsStatus outOfDateModels, IHostingEnvironment hostingEnvironment) { _umbracoService = umbracoService; _config = config.Value; diff --git a/src/Umbraco.ModelsBuilder.Embedded/Building/TextBuilder.cs b/src/Umbraco.ModelsBuilder.Embedded/Building/TextBuilder.cs index 607aa129b1..43771eb46a 100644 --- a/src/Umbraco.ModelsBuilder.Embedded/Building/TextBuilder.cs +++ b/src/Umbraco.ModelsBuilder.Embedded/Building/TextBuilder.cs @@ -18,7 +18,7 @@ namespace Umbraco.ModelsBuilder.Embedded.Building /// and the result of code parsing. /// /// The list of models to generate. - public TextBuilder(ModelsBuilderConfig config, IList typeModels) + public TextBuilder(ModelsBuilderSettings config, IList typeModels) : base(config, typeModels) { } diff --git a/src/Umbraco.ModelsBuilder.Embedded/Compose/ModelsBuilderComponent.cs b/src/Umbraco.ModelsBuilder.Embedded/Compose/ModelsBuilderComponent.cs index 1088dfb470..837bf18dae 100644 --- a/src/Umbraco.ModelsBuilder.Embedded/Compose/ModelsBuilderComponent.cs +++ b/src/Umbraco.ModelsBuilder.Embedded/Compose/ModelsBuilderComponent.cs @@ -21,7 +21,7 @@ namespace Umbraco.ModelsBuilder.Embedded.Compose { internal class ModelsBuilderComponent : IComponent { - private readonly ModelsBuilderConfig _config; + private readonly ModelsBuilderSettings _config; private readonly IShortStringHelper _shortStringHelper; private readonly LiveModelsProvider _liveModelsProvider; private readonly OutOfDateModelsStatus _outOfDateModels; @@ -29,7 +29,7 @@ namespace Umbraco.ModelsBuilder.Embedded.Compose private readonly IUmbracoApplicationLifetime _umbracoApplicationLifetime; private readonly IUmbracoRequestLifetime _umbracoRequestLifetime; - public ModelsBuilderComponent(IOptions config, IShortStringHelper shortStringHelper, + public ModelsBuilderComponent(IOptions config, IShortStringHelper shortStringHelper, LiveModelsProvider liveModelsProvider, OutOfDateModelsStatus outOfDateModels, LinkGenerator linkGenerator, IUmbracoRequestLifetime umbracoRequestLifetime, IUmbracoApplicationLifetime umbracoApplicationLifetime) { diff --git a/src/Umbraco.ModelsBuilder.Embedded/Compose/ModelsBuilderComposer.cs b/src/Umbraco.ModelsBuilder.Embedded/Compose/ModelsBuilderComposer.cs index fd5472b223..3e63fb8e94 100644 --- a/src/Umbraco.ModelsBuilder.Embedded/Compose/ModelsBuilderComposer.cs +++ b/src/Umbraco.ModelsBuilder.Embedded/Compose/ModelsBuilderComposer.cs @@ -27,7 +27,7 @@ namespace Umbraco.ModelsBuilder.Embedded.Compose composition.RegisterUnique(factory => { - var config = factory.GetInstance>().Value; + var config = factory.GetInstance>().Value; if (config.ModelsMode == ModelsMode.PureLive) { composition.RegisterUnique(); diff --git a/src/Umbraco.ModelsBuilder.Embedded/LiveModelsProvider.cs b/src/Umbraco.ModelsBuilder.Embedded/LiveModelsProvider.cs index 48a79ba953..628e66bc6a 100644 --- a/src/Umbraco.ModelsBuilder.Embedded/LiveModelsProvider.cs +++ b/src/Umbraco.ModelsBuilder.Embedded/LiveModelsProvider.cs @@ -20,7 +20,7 @@ namespace Umbraco.ModelsBuilder.Embedded private static Mutex _mutex; private static int _req; private readonly ILogger _logger; - private readonly ModelsBuilderConfig _config; + private readonly ModelsBuilderSettings _config; private readonly ModelsGenerator _modelGenerator; private readonly ModelsGenerationError _mbErrors; private readonly IHostingEnvironment _hostingEnvironment; @@ -28,7 +28,7 @@ namespace Umbraco.ModelsBuilder.Embedded // we do not manage pure live here internal bool IsEnabled => _config.ModelsMode.IsLiveNotPure(); - public LiveModelsProvider(ILogger logger, IOptions config, ModelsGenerator modelGenerator, ModelsGenerationError mbErrors, IHostingEnvironment hostingEnvironment) + public LiveModelsProvider(ILogger logger, IOptions config, ModelsGenerator modelGenerator, ModelsGenerationError mbErrors, IHostingEnvironment hostingEnvironment) { _logger = logger; _config = config.Value ?? throw new ArgumentNullException(nameof(config)); diff --git a/src/Umbraco.ModelsBuilder.Embedded/ModelsGenerationError.cs b/src/Umbraco.ModelsBuilder.Embedded/ModelsGenerationError.cs index a5911bc9c6..dca2fda0dc 100644 --- a/src/Umbraco.ModelsBuilder.Embedded/ModelsGenerationError.cs +++ b/src/Umbraco.ModelsBuilder.Embedded/ModelsGenerationError.cs @@ -10,10 +10,10 @@ namespace Umbraco.ModelsBuilder.Embedded { public sealed class ModelsGenerationError { - private readonly ModelsBuilderConfig _config; + private readonly ModelsBuilderSettings _config; private readonly IHostingEnvironment _hostingEnvironment; - public ModelsGenerationError(IOptions config, IHostingEnvironment hostingEnvironment) + public ModelsGenerationError(IOptions config, IHostingEnvironment hostingEnvironment) { _config = config.Value; _hostingEnvironment = hostingEnvironment; diff --git a/src/Umbraco.ModelsBuilder.Embedded/OutOfDateModelsStatus.cs b/src/Umbraco.ModelsBuilder.Embedded/OutOfDateModelsStatus.cs index 85d08ee975..92e0604a16 100644 --- a/src/Umbraco.ModelsBuilder.Embedded/OutOfDateModelsStatus.cs +++ b/src/Umbraco.ModelsBuilder.Embedded/OutOfDateModelsStatus.cs @@ -9,10 +9,10 @@ namespace Umbraco.ModelsBuilder.Embedded { public sealed class OutOfDateModelsStatus { - private readonly ModelsBuilderConfig _config; + private readonly ModelsBuilderSettings _config; private readonly IHostingEnvironment _hostingEnvironment; - public OutOfDateModelsStatus(IOptions config, IHostingEnvironment hostingEnvironment) + public OutOfDateModelsStatus(IOptions config, IHostingEnvironment hostingEnvironment) { _config = config.Value; _hostingEnvironment = hostingEnvironment; diff --git a/src/Umbraco.ModelsBuilder.Embedded/PureLiveModelFactory.cs b/src/Umbraco.ModelsBuilder.Embedded/PureLiveModelFactory.cs index 596cc9ed26..00c5ec723d 100644 --- a/src/Umbraco.ModelsBuilder.Embedded/PureLiveModelFactory.cs +++ b/src/Umbraco.ModelsBuilder.Embedded/PureLiveModelFactory.cs @@ -38,7 +38,7 @@ namespace Umbraco.ModelsBuilder.Embedded private static readonly Regex AssemblyVersionRegex = new Regex("AssemblyVersion\\(\"[0-9]+.[0-9]+.[0-9]+.[0-9]+\"\\)", RegexOptions.Compiled); private static readonly string[] OurFiles = { "models.hash", "models.generated.cs", "all.generated.cs", "all.dll.path", "models.err", "Compiled" }; - private readonly ModelsBuilderConfig _config; + private readonly ModelsBuilderSettings _config; private readonly IHostingEnvironment _hostingEnvironment; private readonly IApplicationShutdownRegistry _hostingLifetime; private readonly ModelsGenerationError _errors; @@ -47,7 +47,7 @@ namespace Umbraco.ModelsBuilder.Embedded public PureLiveModelFactory( Lazy umbracoServices, IProfilingLogger logger, - IOptions config, + IOptions config, IHostingEnvironment hostingEnvironment, IApplicationShutdownRegistry hostingLifetime, IPublishedValueFallback publishedValueFallback) diff --git a/src/Umbraco.PublishedCache.NuCache/DataSource/BTree.cs b/src/Umbraco.PublishedCache.NuCache/DataSource/BTree.cs index ae7393a91a..99d0e9da38 100644 --- a/src/Umbraco.PublishedCache.NuCache/DataSource/BTree.cs +++ b/src/Umbraco.PublishedCache.NuCache/DataSource/BTree.cs @@ -45,11 +45,10 @@ namespace Umbraco.Web.PublishedCache.NuCache.DataSource var blockSize = 4096; var appSetting = settings.BTreeBlockSize; - if (appSetting == null) + if (!appSetting.HasValue) return blockSize; - if (!int.TryParse(appSetting, out blockSize)) - throw new ConfigurationErrorsException($"Invalid block size value \"{appSetting}\": not a number."); + blockSize = appSetting.Value; var bit = 0; for (var i = blockSize; i != 1; i >>= 1) diff --git a/src/Umbraco.Tests.Common/Builders/ConnectionStringsBuilder.cs b/src/Umbraco.Tests.Common/Builders/ConnectionStringsBuilder.cs deleted file mode 100644 index 4aba98fccd..0000000000 --- a/src/Umbraco.Tests.Common/Builders/ConnectionStringsBuilder.cs +++ /dev/null @@ -1,27 +0,0 @@ -using Umbraco.Core; -using Umbraco.Core.Configuration; -using ConnectionStrings = Umbraco.Core.Configuration.Models.ConnectionStrings; - -namespace Umbraco.Tests.Common.Builders -{ - public class ConnectionStringsBuilder : BuilderBase - { - private string _umbracoConnectionString; - - public ConnectionStringsBuilder WithUmbracoConnectionString(string umbracoConnectionString) - { - _umbracoConnectionString = umbracoConnectionString; - return this; - } - - public override ConnectionStrings Build() - { - var umbracoConnectionString = _umbracoConnectionString ?? string.Empty; - - return new ConnectionStrings - { - UmbracoConnectionString = new ConfigConnectionString(Constants.System.UmbracoConnectionName, umbracoConnectionString), - }; - } - } -} diff --git a/src/Umbraco.Tests.Common/Builders/ContentSettingsBuilder.cs b/src/Umbraco.Tests.Common/Builders/ContentSettingsBuilder.cs deleted file mode 100644 index f5fb1fc08f..0000000000 --- a/src/Umbraco.Tests.Common/Builders/ContentSettingsBuilder.cs +++ /dev/null @@ -1,12 +0,0 @@ -using Umbraco.Core.Configuration.Models; - -namespace Umbraco.Tests.Common.Builders -{ - public class ContentSettingsBuilder : BuilderBase - { - public override ContentSettings Build() - { - return new ContentSettings(); - } - } -} diff --git a/src/Umbraco.Tests.Common/Builders/CoreDebugSettingsBuilder.cs b/src/Umbraco.Tests.Common/Builders/CoreDebugSettingsBuilder.cs deleted file mode 100644 index e14fb0ade5..0000000000 --- a/src/Umbraco.Tests.Common/Builders/CoreDebugSettingsBuilder.cs +++ /dev/null @@ -1,34 +0,0 @@ -using CoreDebugSettings = Umbraco.Core.Configuration.Models.CoreDebugSettings; - -namespace Umbraco.Tests.Common.Builders -{ - public class CoreDebugSettingsBuilder : BuilderBase - { - private bool? _dumpOnTimeoutThreadAbort; - private bool? _logUncompletedScopes; - - public CoreDebugSettingsBuilder WithDumpOnTimeoutThreadAbort(bool dumpOnTimeoutThreadAbort) - { - _dumpOnTimeoutThreadAbort = dumpOnTimeoutThreadAbort; - return this; - } - - public CoreDebugSettingsBuilder WithLogUncompletedScopes(bool logUncompletedScopes) - { - _logUncompletedScopes = logUncompletedScopes; - return this; - } - - public override CoreDebugSettings Build() - { - var dumpOnTimeoutThreadAbort = _dumpOnTimeoutThreadAbort ?? false; - var logUncompletedScopes = _logUncompletedScopes ?? false; - - return new CoreDebugSettings - { - DumpOnTimeoutThreadAbort = dumpOnTimeoutThreadAbort, - LogUncompletedScopes = logUncompletedScopes, - }; - } - } -} diff --git a/src/Umbraco.Tests.Common/Builders/GlobalSettingsBuilder.cs b/src/Umbraco.Tests.Common/Builders/GlobalSettingsBuilder.cs deleted file mode 100644 index d39bd71d2e..0000000000 --- a/src/Umbraco.Tests.Common/Builders/GlobalSettingsBuilder.cs +++ /dev/null @@ -1,207 +0,0 @@ -using Umbraco.Core.Configuration.Models; - -namespace Umbraco.Tests.Common.Builders -{ - public class GlobalSettingsBuilder : GlobalSettingsBuilder - { - public GlobalSettingsBuilder() : base(null) - { - } - } - - public class GlobalSettingsBuilder : ChildBuilderBase - { - private string _configurationStatus; - private string _databaseFactoryServerVersion; - private string _defaultUiLanguage; - private bool? _disableElectionForSingleServer; - private bool? _hideTopLevelNodeFromPath; - private bool? _installEmptyDatabase; - private bool? _installMissingDatabase; - private string _umbracoPath; - private string _registerType; - private string _reservedPaths; - private string _reservedUrls; - private int? _timeOutInMinutes; - private string _umbracoCssPath; - private string _umbracoMediaPath; - private string _umbracoScriptsPath; - private string _mainDomLock; - private string _noNodesViewPath; - private bool? _useHttps; - private int? _versionCheckPeriod; - private readonly SmtpSettingsBuilder> _smtpSettingsBuilder; - - public GlobalSettingsBuilder(TParent parentBuilder) : base(parentBuilder) - { - _smtpSettingsBuilder = new SmtpSettingsBuilder>(this); - } - - public SmtpSettingsBuilder> AddSmtpSettings() => _smtpSettingsBuilder; - - public GlobalSettingsBuilder WithConfigurationStatus(string configurationStatus) - { - _configurationStatus = configurationStatus; - return this; - } - - public GlobalSettingsBuilder WithDatabaseFactoryServerVersion(string databaseFactoryServerVersion) - { - _databaseFactoryServerVersion = databaseFactoryServerVersion; - return this; - } - - public GlobalSettingsBuilder WithDefaultUiLanguage(string defaultUiLanguage) - { - _defaultUiLanguage = defaultUiLanguage; - return this; - } - - public GlobalSettingsBuilder WithDisableElectionForSingleServer(bool disableElectionForSingleServer) - { - _disableElectionForSingleServer = disableElectionForSingleServer; - return this; - } - - public GlobalSettingsBuilder WithHideTopLevelNodeFromPath(bool hideTopLevelNodeFromPath) - { - _hideTopLevelNodeFromPath = hideTopLevelNodeFromPath; - return this; - } - - public GlobalSettingsBuilder WithInstallEmptyDatabase(bool installEmptyDatabase) - { - _installEmptyDatabase = installEmptyDatabase; - return this; - } - - public GlobalSettingsBuilder WithInstallMissingDatabase(bool installMissingDatabase) - { - _installMissingDatabase = installMissingDatabase; - return this; - } - - public GlobalSettingsBuilder WithUmbracoPath(string umbracoPath) - { - _umbracoPath = umbracoPath; - return this; - } - - public GlobalSettingsBuilder WithRegisterType(string registerType) - { - _registerType = registerType; - return this; - } - - public GlobalSettingsBuilder WithReservedPaths(string reservedPaths) - { - _reservedPaths = reservedPaths; - return this; - } - - public GlobalSettingsBuilder WithReservedUrls(string reservedUrls) - { - _reservedUrls = reservedUrls; - return this; - } - - public GlobalSettingsBuilder WithUseHttps(bool useHttps) - { - _useHttps = useHttps; - return this; - } - - public GlobalSettingsBuilder WithUmbracoCssPath(string umbracoCssPath) - { - _umbracoCssPath = umbracoCssPath; - return this; - } - - public GlobalSettingsBuilder WithUmbracoMediaPath(string umbracoMediaPath) - { - _umbracoMediaPath = umbracoMediaPath; - return this; - } - - public GlobalSettingsBuilder WithUmbracoScriptsPath(string umbracoScriptsPath) - { - _umbracoScriptsPath = umbracoScriptsPath; - return this; - } - - public GlobalSettingsBuilder WithMainDomLock(string mainDomLock) - { - _mainDomLock = mainDomLock; - return this; - } - - public GlobalSettingsBuilder WithNoNodesViewPath(string noNodesViewPath) - { - _noNodesViewPath = noNodesViewPath; - return this; - } - public GlobalSettingsBuilder WithVersionCheckPeriod(int versionCheckPeriod) - { - _versionCheckPeriod = versionCheckPeriod; - return this; - } - - public GlobalSettingsBuilder WithTimeOutInMinutes(int timeOutInMinutes) - { - _timeOutInMinutes = timeOutInMinutes; - return this; - } - - public override GlobalSettings Build() - { - var configurationStatus = _configurationStatus ?? "9.0.0"; - var databaseFactoryServerVersion = _databaseFactoryServerVersion ?? null; - var defaultUiLanguage = _defaultUiLanguage ?? "en"; - var disableElectionForSingleServer = _disableElectionForSingleServer ?? false; - var hideTopLevelNodeFromPath = _hideTopLevelNodeFromPath ?? false; - var installEmptyDatabase = _installEmptyDatabase ?? false; - var installMissingDatabase = _installMissingDatabase ?? false; - var registerType = _registerType ?? null; - var reservedPaths = _reservedPaths ?? GlobalSettings.StaticReservedPaths; - var reservedUrls = _reservedUrls ?? GlobalSettings.StaticReservedUrls; - var umbracoPath = _umbracoPath ?? "~/umbraco"; - var useHttps = _useHttps ?? false; - var umbracoCssPath = _umbracoCssPath ?? "~/css"; - var umbracoMediaPath = _umbracoMediaPath ?? "~/media"; - var umbracoScriptsPath = _umbracoScriptsPath ?? "~/scripts"; - var versionCheckPeriod = _versionCheckPeriod ?? 0; - var timeOutInMinutes = _timeOutInMinutes ?? 20; - var smtpSettings = _smtpSettingsBuilder.Build(); - var mainDomLock = _mainDomLock ?? string.Empty; - var noNodesViewPath = _noNodesViewPath ?? "~/config/splashes/NoNodes.cshtml"; - - return new GlobalSettings - { - ConfigurationStatus = configurationStatus, - DatabaseFactoryServerVersion = databaseFactoryServerVersion, - DefaultUILanguage = defaultUiLanguage, - DisableElectionForSingleServer = disableElectionForSingleServer, - HideTopLevelNodeFromPath = hideTopLevelNodeFromPath, - InstallEmptyDatabase = installEmptyDatabase, - InstallMissingDatabase = installMissingDatabase, - RegisterType = registerType, - ReservedPaths = reservedPaths, - ReservedUrls = reservedUrls, - UmbracoPath = umbracoPath, - UseHttps = useHttps, - UmbracoCssPath = umbracoCssPath, - UmbracoMediaPath = umbracoMediaPath, - UmbracoScriptsPath = umbracoScriptsPath, - VersionCheckPeriod = versionCheckPeriod, - TimeOutInMinutes = timeOutInMinutes, - Smtp = smtpSettings, - MainDomLock = mainDomLock, - NoNodesViewPath = noNodesViewPath, - }; - } - private string _iconsPath; - - public string IconsPath{ get; set; } - - } -} diff --git a/src/Umbraco.Tests.Common/Builders/HostingSettingsBuilder.cs b/src/Umbraco.Tests.Common/Builders/HostingSettingsBuilder.cs deleted file mode 100644 index 3e5e1db391..0000000000 --- a/src/Umbraco.Tests.Common/Builders/HostingSettingsBuilder.cs +++ /dev/null @@ -1,44 +0,0 @@ -using Umbraco.Core.Configuration; -using Umbraco.Core.Configuration.Models; - -namespace Umbraco.Tests.Common.Builders -{ - public class HostingSettingsBuilder : BuilderBase - { - private string _applicationVirtualPath; - private bool? _debug; - private LocalTempStorage? _localTempStorageLocation; - - public HostingSettingsBuilder WithApplicationVirtualPath(string applicationVirtualPath) - { - _applicationVirtualPath = applicationVirtualPath; - return this; - } - - public HostingSettingsBuilder WithDebug(bool debug) - { - _debug = debug; - return this; - } - - public HostingSettingsBuilder WithLocalTempStorageLocation(LocalTempStorage localTempStorageLocation) - { - _localTempStorageLocation = localTempStorageLocation; - return this; - } - - public override HostingSettings Build() - { - var debug = _debug ?? false; - var localTempStorageLocation = _localTempStorageLocation ?? LocalTempStorage.Default; - var applicationVirtualPath = _applicationVirtualPath ?? null; - - return new HostingSettings - { - ApplicationVirtualPath = applicationVirtualPath, - Debug = debug, - LocalTempStorageLocation = localTempStorageLocation, - }; - } - } -} diff --git a/src/Umbraco.Tests.Common/Builders/LanguageBuilder.cs b/src/Umbraco.Tests.Common/Builders/LanguageBuilder.cs index 7174baaba1..cb76a00f92 100644 --- a/src/Umbraco.Tests.Common/Builders/LanguageBuilder.cs +++ b/src/Umbraco.Tests.Common/Builders/LanguageBuilder.cs @@ -57,7 +57,7 @@ namespace Umbraco.Tests.Common.Builders public override ILanguage Build() { var cultureInfo = _cultureInfo ?? CultureInfo.GetCultureInfo("en-US"); - var globalSettings = new GlobalSettingsBuilder().WithDefaultUiLanguage(cultureInfo.Name).Build(); + var globalSettings = new GlobalSettings { DefaultUILanguage = cultureInfo.Name }; var key = _key ?? Guid.NewGuid(); var createDate = _createDate ?? DateTime.Now; var updateDate = _updateDate ?? DateTime.Now; diff --git a/src/Umbraco.Tests.Common/Builders/ModelsBuilderConfigBuilder.cs b/src/Umbraco.Tests.Common/Builders/ModelsBuilderConfigBuilder.cs deleted file mode 100644 index 4b94339dc0..0000000000 --- a/src/Umbraco.Tests.Common/Builders/ModelsBuilderConfigBuilder.cs +++ /dev/null @@ -1,12 +0,0 @@ -using Umbraco.Core.Configuration.Models; - -namespace Umbraco.Tests.Common.Builders -{ - public class ModelsBuilderConfigBuilder : BuilderBase - { - public override ModelsBuilderConfig Build() - { - return new ModelsBuilderConfig(); - } - } -} diff --git a/src/Umbraco.Tests.Common/Builders/NuCacheSettingsBuilder.cs b/src/Umbraco.Tests.Common/Builders/NuCacheSettingsBuilder.cs deleted file mode 100644 index 35d5c66e4a..0000000000 --- a/src/Umbraco.Tests.Common/Builders/NuCacheSettingsBuilder.cs +++ /dev/null @@ -1,12 +0,0 @@ -using Umbraco.Core.Configuration.Models; - -namespace Umbraco.Tests.Common.Builders -{ - public class NuCacheSettingsBuilder : BuilderBase - { - public override NuCacheSettings Build() - { - return new NuCacheSettings(); - } - } -} diff --git a/src/Umbraco.Tests.Common/Builders/RequestHandlerSettingsBuilder.cs b/src/Umbraco.Tests.Common/Builders/RequestHandlerSettingsBuilder.cs deleted file mode 100644 index 3c6f652014..0000000000 --- a/src/Umbraco.Tests.Common/Builders/RequestHandlerSettingsBuilder.cs +++ /dev/null @@ -1,45 +0,0 @@ -using System.Collections.Generic; -using Umbraco.Core.Configuration.Models; -using Umbraco.Core.Configuration.UmbracoSettings; - -namespace Umbraco.Tests.Common.Builders -{ - public class RequestHandlerSettingsBuilder : BuilderBase - { - private bool? _addTrailingSlash; - private string _convertUrlsToAscii; - private IEnumerable _charCollection; - - public RequestHandlerSettingsBuilder WithAddTrailingSlash(bool addTrailingSlash) - { - _addTrailingSlash = addTrailingSlash; - return this; - } - - public RequestHandlerSettingsBuilder WithConvertUrlsToAscii(string convertUrlsToAscii) - { - _convertUrlsToAscii = convertUrlsToAscii; - return this; - } - - public RequestHandlerSettingsBuilder WithCharCollection(IEnumerable charCollection) - { - _charCollection = charCollection; - return this; - } - - public override RequestHandlerSettings Build() - { - var addTrailingSlash = _addTrailingSlash ?? false; - var convertUrlsToAscii = _convertUrlsToAscii ?? "false"; - var charCollection = _charCollection ?? RequestHandlerSettings.DefaultCharCollection; - - return new RequestHandlerSettings - { - AddTrailingSlash = addTrailingSlash, - ConvertUrlsToAscii = convertUrlsToAscii, - CharCollection = charCollection, - }; - } - } -} diff --git a/src/Umbraco.Tests.Common/Builders/SmtpSettingsBuilder.cs b/src/Umbraco.Tests.Common/Builders/SmtpSettingsBuilder.cs deleted file mode 100644 index f979197e4c..0000000000 --- a/src/Umbraco.Tests.Common/Builders/SmtpSettingsBuilder.cs +++ /dev/null @@ -1,92 +0,0 @@ -using System.Net.Mail; -using Umbraco.Core.Configuration.Models; - -namespace Umbraco.Tests.Common.Builders -{ - public class SmtpSettingsBuilder : SmtpSettingsBuilder - { - public SmtpSettingsBuilder() : base(null) - { - } - } - - public class SmtpSettingsBuilder - : ChildBuilderBase - { - private string _from; - private string _host; - private int? _port; - private string _pickupDirectoryLocation; - private SmtpDeliveryMethod? _deliveryMethod; - private string _username; - private string _password; - - public SmtpSettingsBuilder(TParent parentBuilder) : base(parentBuilder) - { - } - - public SmtpSettingsBuilder WithFrom(string from) - { - _from = from; - return this; - } - - public SmtpSettingsBuilder WithHost(string host) - { - _host = host; - return this; - } - - public SmtpSettingsBuilder WithUsername(string username) - { - _username = username; - return this; - } - - public SmtpSettingsBuilder WithPost(int port) - { - _port = port; - return this; - } - - public SmtpSettingsBuilder WithPassword(string password) - { - _password = password; - return this; - } - - public SmtpSettingsBuilder WithPickupDirectoryLocation(string pickupDirectoryLocation) - { - _pickupDirectoryLocation = pickupDirectoryLocation; - return this; - } - - public SmtpSettingsBuilder WithDeliveryMethod(SmtpDeliveryMethod deliveryMethod) - { - _deliveryMethod = deliveryMethod; - return this; - } - - public override SmtpSettings Build() - { - var from = _from ?? null; - var host = _host ?? null; - var port = _port ?? 25; - var pickupDirectoryLocation = _pickupDirectoryLocation ?? null; - var deliveryMethod = _deliveryMethod ?? SmtpDeliveryMethod.Network; - var username = _username ?? null; - var password = _password ?? null; - - return new SmtpSettings() - { - From = from, - Host = host, - Port = port, - PickupDirectoryLocation = pickupDirectoryLocation, - DeliveryMethod = deliveryMethod, - Username = username, - Password = password, - }; - } - } -} diff --git a/src/Umbraco.Tests.Common/Builders/UserBuilder.cs b/src/Umbraco.Tests.Common/Builders/UserBuilder.cs index 83c036c101..9658b0453f 100644 --- a/src/Umbraco.Tests.Common/Builders/UserBuilder.cs +++ b/src/Umbraco.Tests.Common/Builders/UserBuilder.cs @@ -1,6 +1,7 @@ using System; using System.Collections.Generic; using System.Linq; +using Umbraco.Core.Configuration.Models; using Umbraco.Core.Models.Membership; using Umbraco.Tests.Common.Builders.Interfaces; @@ -12,6 +13,7 @@ namespace Umbraco.Tests.Common.Builders { } } + public class UserBuilder : ChildBuilderBase, IWithIdBuilder, @@ -91,8 +93,6 @@ namespace Umbraco.Tests.Common.Builders return this; } - - public UserBuilder WithSessionTimeout(int sessionTimeout) { _sessionTimeout = sessionTimeout; @@ -122,11 +122,18 @@ namespace Umbraco.Tests.Common.Builders return this; } + public UserGroupBuilder> AddUserGroup() + { + var builder = new UserGroupBuilder>(this); + _userGroupBuilders.Add(builder); + return builder; + } + public override User Build() { var id = _id ?? 0; var defaultLang = _defaultLang ?? "en"; - var globalSettings = new GlobalSettingsBuilder().WithDefaultUiLanguage(defaultLang).Build(); + var globalSettings = new GlobalSettings { DefaultUILanguage = defaultLang }; var key = _key ?? Guid.NewGuid(); var createDate = _createDate ?? DateTime.Now; var updateDate = _updateDate ?? DateTime.Now; @@ -175,20 +182,9 @@ namespace Umbraco.Tests.Common.Builders result.AddGroup(readOnlyUserGroup.ToReadOnlyGroup()); } - return result; } - public UserGroupBuilder> AddUserGroup() - { - var builder = new UserGroupBuilder>(this); - - _userGroupBuilders.Add(builder); - - return builder; - } - - int? IWithIdBuilder.Id { get => _id; diff --git a/src/Umbraco.Tests.Common/Builders/UserPasswordConfigurationSettingsBuilder.cs b/src/Umbraco.Tests.Common/Builders/UserPasswordConfigurationSettingsBuilder.cs deleted file mode 100644 index 3a0dfc3e9a..0000000000 --- a/src/Umbraco.Tests.Common/Builders/UserPasswordConfigurationSettingsBuilder.cs +++ /dev/null @@ -1,12 +0,0 @@ -using Umbraco.Core.Configuration.Models; - -namespace Umbraco.Tests.Common.Builders -{ - public class UserPasswordConfigurationSettingsBuilder : BuilderBase - { - public override UserPasswordConfigurationSettings Build() - { - return new UserPasswordConfigurationSettings(); - } - } -} diff --git a/src/Umbraco.Tests.Common/Builders/WebRoutingSettingsBuilder.cs b/src/Umbraco.Tests.Common/Builders/WebRoutingSettingsBuilder.cs deleted file mode 100644 index e32fff31fa..0000000000 --- a/src/Umbraco.Tests.Common/Builders/WebRoutingSettingsBuilder.cs +++ /dev/null @@ -1,89 +0,0 @@ -using Umbraco.Core.Configuration.Models; -using Umbraco.Core.Models.PublishedContent; - -namespace Umbraco.Tests.Common.Builders -{ - public class WebRoutingSettingsBuilder : BuilderBase - { - private bool? _trySkipIisCustomErrors; - private bool? _internalRedirectPreservesTemplate; - private bool? _disableAlternativeTemplates; - private bool? _validateAlternativeTemplates; - private bool? _disableFindContentByIdPath; - private bool? _disableRedirectUrlTracking; - private string _urlProviderMode; - private string _umbracoApplicationUrl; - - public WebRoutingSettingsBuilder WithTrySkipIisCustomErrors(bool trySkipIisCustomErrors) - { - _trySkipIisCustomErrors = trySkipIisCustomErrors; - return this; - } - - public WebRoutingSettingsBuilder WithInternalRedirectPreservesTemplate(bool internalRedirectPreservesTemplate) - { - _internalRedirectPreservesTemplate = internalRedirectPreservesTemplate; - return this; - } - - public WebRoutingSettingsBuilder WithDisableAlternativeTemplates(bool disableAlternativeTemplates) - { - _disableAlternativeTemplates = disableAlternativeTemplates; - return this; - } - - public WebRoutingSettingsBuilder WithValidateAlternativeTemplates(bool validateAlternativeTemplates) - { - _validateAlternativeTemplates = validateAlternativeTemplates; - return this; - } - - public WebRoutingSettingsBuilder WithDisableFindContentByIdPath(bool disableFindContentByIdPath) - { - _disableFindContentByIdPath = disableFindContentByIdPath; - return this; - } - - public WebRoutingSettingsBuilder WithDisableRedirectUrlTracking(bool disableRedirectUrlTracking) - { - _disableRedirectUrlTracking = disableRedirectUrlTracking; - return this; - } - - public WebRoutingSettingsBuilder WithUrlProviderMode(string urlProviderMode) - { - _urlProviderMode = urlProviderMode; - return this; - } - - public WebRoutingSettingsBuilder WithUmbracoApplicationUrl(string umbracoApplicationUrl) - { - _umbracoApplicationUrl = umbracoApplicationUrl; - return this; - } - - public override WebRoutingSettings Build() - { - var trySkipIisCustomErrors = _trySkipIisCustomErrors ?? false; - var internalRedirectPreservesTemplate = _internalRedirectPreservesTemplate ?? false; - var disableAlternativeTemplates = _disableAlternativeTemplates ?? false; - var validateAlternativeTemplates = _validateAlternativeTemplates ?? false; - var disableFindContentByIdPath = _disableFindContentByIdPath ?? false; - var disableRedirectUrlTracking = _disableRedirectUrlTracking ?? false; - var urlProviderMode = _urlProviderMode ?? UrlMode.Auto.ToString(); - var umbracoApplicationUrl = _umbracoApplicationUrl ?? string.Empty; - - return new WebRoutingSettings - { - TrySkipIisCustomErrors = trySkipIisCustomErrors, - InternalRedirectPreservesTemplate = internalRedirectPreservesTemplate, - DisableAlternativeTemplates = disableAlternativeTemplates, - ValidateAlternativeTemplates = validateAlternativeTemplates, - DisableFindContentByIdPath = disableFindContentByIdPath, - DisableRedirectUrlTracking = disableRedirectUrlTracking, - UrlProviderMode = urlProviderMode, - UmbracoApplicationUrl = umbracoApplicationUrl, - }; - } - } -} diff --git a/src/Umbraco.Tests.Common/TestHelperBase.cs b/src/Umbraco.Tests.Common/TestHelperBase.cs index 7b5fed3000..ed72661044 100644 --- a/src/Umbraco.Tests.Common/TestHelperBase.cs +++ b/src/Umbraco.Tests.Common/TestHelperBase.cs @@ -120,7 +120,7 @@ namespace Umbraco.Tests.Common public IRegister GetRegister() { - return RegisterFactory.Create(new GlobalSettingsBuilder().Build()); + return RegisterFactory.Create(new GlobalSettings()); } public abstract IHostingEnvironment GetHostingEnvironment(); @@ -144,9 +144,7 @@ namespace Umbraco.Tests.Common { hostingEnv = hostingEnv ?? GetHostingEnvironment(); return new LoggingConfiguration( - Path.Combine(hostingEnv.ApplicationPhysicalPath, "App_Data","Logs"), - Path.Combine(hostingEnv.ApplicationPhysicalPath, "config","serilog.config"), - Path.Combine(hostingEnv.ApplicationPhysicalPath, "config","serilog.user.config")); + Path.Combine(hostingEnv.ApplicationPhysicalPath, "umbraco","logs")); } } } diff --git a/src/Umbraco.Tests.Integration/Implementations/TestHelper.cs b/src/Umbraco.Tests.Integration/Implementations/TestHelper.cs index 0e46941904..9f1f9a4840 100644 --- a/src/Umbraco.Tests.Integration/Implementations/TestHelper.cs +++ b/src/Umbraco.Tests.Integration/Implementations/TestHelper.cs @@ -5,6 +5,7 @@ using System.Net; using System.Reflection; using Microsoft.AspNetCore.Hosting; using Microsoft.AspNetCore.Http; +using Microsoft.Extensions.FileProviders; using Microsoft.Extensions.Hosting; using Microsoft.Extensions.Options; using Moq; @@ -18,10 +19,8 @@ using Umbraco.Core.Persistence; using Umbraco.Core.Runtime; using Umbraco.Net; using Umbraco.Tests.Common; -using Umbraco.Tests.Common.Builders; using Umbraco.Web.Common.AspNetCore; using IHostingEnvironment = Umbraco.Core.Hosting.IHostingEnvironment; -using Microsoft.Extensions.FileProviders; namespace Umbraco.Tests.Integration.Implementations { @@ -112,7 +111,7 @@ namespace Umbraco.Tests.Integration.Implementations { if (_backOfficeInfo == null) { - var globalSettings = new GlobalSettingsBuilder().Build(); + var globalSettings = new GlobalSettings(); var mockedOptionsMonitorOfGlobalSettings = Mock.Of>(x => x.CurrentValue == globalSettings); _backOfficeInfo = new AspNetCoreBackOfficeInfo(mockedOptionsMonitorOfGlobalSettings); } @@ -127,7 +126,7 @@ namespace Umbraco.Tests.Integration.Implementations private IOptionsMonitor GetIOptionsMonitorOfHostingSettings() { - var hostingSettings = new HostingSettingsBuilder().Build(); + var hostingSettings = new HostingSettings(); return Mock.Of>(x => x.CurrentValue == hostingSettings); } diff --git a/src/Umbraco.Tests.Integration/Persistence/Repositories/DictionaryRepositoryTest.cs b/src/Umbraco.Tests.Integration/Persistence/Repositories/DictionaryRepositoryTest.cs index be9a0ce5ed..4d5bdac6b4 100644 --- a/src/Umbraco.Tests.Integration/Persistence/Repositories/DictionaryRepositoryTest.cs +++ b/src/Umbraco.Tests.Integration/Persistence/Repositories/DictionaryRepositoryTest.cs @@ -2,10 +2,10 @@ using System.Collections.Generic; using System.Linq; using NUnit.Framework; +using Umbraco.Core.Configuration.Models; using Umbraco.Core.Models; using Umbraco.Core.Persistence.Repositories; using Umbraco.Core.Services; -using Umbraco.Tests.Common.Builders; using Umbraco.Tests.Integration.Testing; using Umbraco.Tests.Testing; @@ -288,7 +288,7 @@ namespace Umbraco.Tests.Integration.Persistence.Repositories { var repository = CreateRepository(); - var globalSettings = new GlobalSettingsBuilder().Build(); + var globalSettings = new GlobalSettings(); var languageNo = new Language(globalSettings, "nb-NO") { CultureName = "nb-NO" }; localizationService.Save(languageNo); @@ -369,7 +369,7 @@ namespace Umbraco.Tests.Integration.Persistence.Repositories var localizationService = GetRequiredService(); var language = localizationService.GetLanguageByIsoCode("en-US"); - var globalSettings = new GlobalSettingsBuilder().Build(); + var globalSettings = new GlobalSettings(); var languageDK = new Language(globalSettings, "da-DK") { CultureName = "da-DK" }; localizationService.Save(languageDK);//Id 2 diff --git a/src/Umbraco.Tests.Integration/Persistence/Repositories/LanguageRepositoryTest.cs b/src/Umbraco.Tests.Integration/Persistence/Repositories/LanguageRepositoryTest.cs index 550f32adb1..0f57598e0f 100644 --- a/src/Umbraco.Tests.Integration/Persistence/Repositories/LanguageRepositoryTest.cs +++ b/src/Umbraco.Tests.Integration/Persistence/Repositories/LanguageRepositoryTest.cs @@ -9,7 +9,6 @@ using Umbraco.Core.Persistence; using Umbraco.Core.Persistence.Repositories.Implement; using Umbraco.Core.Scoping; using Umbraco.Core.Services; -using Umbraco.Tests.Common.Builders; using Umbraco.Tests.Integration.Testing; using Umbraco.Tests.Testing; @@ -25,7 +24,7 @@ namespace Umbraco.Tests.Integration.Persistence.Repositories public void SetUp() { CreateTestData(); - _globalSettings = new GlobalSettingsBuilder().Build(); + _globalSettings = new GlobalSettings(); } private LanguageRepository CreateRepository(IScopeProvider provider) diff --git a/src/Umbraco.Tests.Integration/Persistence/Repositories/TemplateRepositoryTest.cs b/src/Umbraco.Tests.Integration/Persistence/Repositories/TemplateRepositoryTest.cs index 4cb0217fe4..cb1fe9a57b 100644 --- a/src/Umbraco.Tests.Integration/Persistence/Repositories/TemplateRepositoryTest.cs +++ b/src/Umbraco.Tests.Integration/Persistence/Repositories/TemplateRepositoryTest.cs @@ -7,6 +7,7 @@ using Moq; using NUnit.Framework; using Umbraco.Core; using Umbraco.Core.Cache; +using Umbraco.Core.Configuration.Models; using Umbraco.Core.IO; using Umbraco.Core.Models; using Umbraco.Core.Persistence.Repositories; @@ -14,7 +15,6 @@ using Umbraco.Core.Persistence.Repositories.Implement; using Umbraco.Core.PropertyEditors; using Umbraco.Core.Scoping; using Umbraco.Core.Services; -using Umbraco.Tests.Common.Builders; using Umbraco.Tests.Integration.Implementations; using Umbraco.Tests.Integration.Testing; using Umbraco.Tests.TestHelpers.Entities; @@ -260,7 +260,7 @@ namespace Umbraco.Tests.Integration.Persistence.Repositories using (provider.CreateScope()) { var templateRepository = CreateRepository(provider); - var globalSettings = new GlobalSettingsBuilder().Build(); + var globalSettings = new GlobalSettings(); var tagRepository = new TagRepository(scopeAccessor, AppCaches.Disabled, Logger); var commonRepository = new ContentTypeCommonRepository(scopeAccessor, templateRepository, AppCaches, ShortStringHelper); var languageRepository = new LanguageRepository(scopeAccessor, AppCaches.Disabled, Logger, Microsoft.Extensions.Options.Options.Create(globalSettings)); diff --git a/src/Umbraco.Tests.Integration/RuntimeTests.cs b/src/Umbraco.Tests.Integration/RuntimeTests.cs index a5b421fcd3..ae6fe81314 100644 --- a/src/Umbraco.Tests.Integration/RuntimeTests.cs +++ b/src/Umbraco.Tests.Integration/RuntimeTests.cs @@ -1,24 +1,21 @@ -using Microsoft.Extensions.DependencyInjection; +using System.Threading.Tasks; +using Microsoft.AspNetCore.Builder; +using Microsoft.Extensions.DependencyInjection; using Microsoft.Extensions.Hosting; +using Microsoft.Extensions.Options; using Moq; using NUnit.Framework; -using System.Threading.Tasks; -using Microsoft.AspNetCore.Builder; -using Microsoft.AspNetCore.Http; -using Smidge; using Umbraco.Core; using Umbraco.Core.Cache; using Umbraco.Core.Composing; +using Umbraco.Core.Configuration.Models; using Umbraco.Core.Logging; using Umbraco.Core.Runtime; +using Umbraco.Extensions; using Umbraco.Tests.Common; using Umbraco.Tests.Integration.Extensions; using Umbraco.Tests.Integration.Implementations; using Umbraco.Tests.Integration.Testing; -using Umbraco.Web.Common.AspNetCore; -using Umbraco.Extensions; -using Umbraco.Tests.Common.Builders; -using Microsoft.Extensions.Options; namespace Umbraco.Tests.Integration { @@ -56,8 +53,8 @@ namespace Umbraco.Tests.Integration var testHelper = new TestHelper(); - var globalSettings = new GlobalSettingsBuilder().Build(); - var connectionStrings = new ConnectionStringsBuilder().Build(); + var globalSettings = new GlobalSettings(); + var connectionStrings = new ConnectionStrings(); // Create the core runtime var coreRuntime = new CoreRuntime(globalSettings, connectionStrings, testHelper.GetUmbracoVersion(), @@ -77,12 +74,12 @@ namespace Umbraco.Tests.Integration // 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(); - var nuCacheSettings = new NuCacheSettingsBuilder().Build(); - var requestHandlerSettings = new RequestHandlerSettingsBuilder().Build(); - var userPasswordConfigurationSettings = new UserPasswordConfigurationSettingsBuilder().Build(); - var webRoutingSettings = new WebRoutingSettingsBuilder().Build(); + var contentSettings = new ContentSettings(); + var coreDebugSettings = new CoreDebugSettings(); + var nuCacheSettings = new NuCacheSettings(); + var requestHandlerSettings = new RequestHandlerSettings(); + var userPasswordConfigurationSettings = new UserPasswordConfigurationSettings(); + var webRoutingSettings = new WebRoutingSettings(); umbracoContainer.Register(x => Options.Create(globalSettings)); umbracoContainer.Register(x => Options.Create(contentSettings)); @@ -123,7 +120,7 @@ namespace Umbraco.Tests.Integration // Add it! services.AddUmbracoConfiguration(hostContext.Configuration); - services.AddUmbracoCore(webHostEnvironment, umbracoContainer, GetType().Assembly, AppCaches.NoCache, testHelper.GetLoggingConfiguration(), out _); + services.AddUmbracoCore(webHostEnvironment, umbracoContainer, GetType().Assembly, AppCaches.NoCache, testHelper.GetLoggingConfiguration(), hostContext.Configuration,out _); }); var host = await hostBuilder.StartAsync(); @@ -163,7 +160,7 @@ namespace Umbraco.Tests.Integration // Add it! services.AddUmbracoConfiguration(hostContext.Configuration); - services.AddUmbracoCore(webHostEnvironment, umbracoContainer, GetType().Assembly, AppCaches.NoCache, testHelper.GetLoggingConfiguration(), out _); + services.AddUmbracoCore(webHostEnvironment, umbracoContainer, GetType().Assembly, AppCaches.NoCache, testHelper.GetLoggingConfiguration(),hostContext.Configuration, out _); }); var host = await hostBuilder.StartAsync(); diff --git a/src/Umbraco.Tests.Integration/TestServerTest/Controllers/ContentControllerTests.cs b/src/Umbraco.Tests.Integration/TestServerTest/Controllers/ContentControllerTests.cs index 9a1b335c62..85bdfae8fa 100644 --- a/src/Umbraco.Tests.Integration/TestServerTest/Controllers/ContentControllerTests.cs +++ b/src/Umbraco.Tests.Integration/TestServerTest/Controllers/ContentControllerTests.cs @@ -11,6 +11,7 @@ using Umbraco.Core.Services; using Umbraco.Tests.Common.Builders; using Umbraco.Tests.Common.Builders.Extensions; using Umbraco.Tests.Testing; +using Umbraco.Web.BackOffice.Controllers; using Umbraco.Web.Common.Formatters; using Umbraco.Web.Editors; using Umbraco.Web.Models.ContentEditing; diff --git a/src/Umbraco.Tests.Integration/TestServerTest/UmbracoBuilderExtensions.cs b/src/Umbraco.Tests.Integration/TestServerTest/UmbracoBuilderExtensions.cs index 953be73c27..29b360d636 100644 --- a/src/Umbraco.Tests.Integration/TestServerTest/UmbracoBuilderExtensions.cs +++ b/src/Umbraco.Tests.Integration/TestServerTest/UmbracoBuilderExtensions.cs @@ -22,36 +22,37 @@ namespace Umbraco.Tests.Integration.TestServerTest Action dbInstallEventHandler) { return builder.AddWith(nameof(global::Umbraco.Web.Common.Builder.UmbracoBuilderExtensions.WithCore), - () => - { - builder.Services.AddUmbracoCore( - builder.WebHostEnvironment, - container, - typeof(UmbracoBuilderExtensions).Assembly, - AppCaches.NoCache, // Disable caches in integration tests - testHelper.GetLoggingConfiguration(), - (globalSettings, connectionStrings, umbVersion, ioHelper, logger, profiler, hostingEnv, - backOfficeInfo, typeFinder, appCaches, dbProviderFactoryCreator) => - { - var runtime = UmbracoIntegrationTest.CreateTestRuntime( - globalSettings, - connectionStrings, - umbVersion, - ioHelper, - logger, - profiler, - hostingEnv, - backOfficeInfo, - typeFinder, - appCaches, - dbProviderFactoryCreator, - testHelper.MainDom, // SimpleMainDom - dbInstallEventHandler); // DB Installation event handler + () => + { + builder.Services.AddUmbracoCore( + builder.WebHostEnvironment, + container, + typeof(UmbracoBuilderExtensions).Assembly, + AppCaches.NoCache, // Disable caches in integration tests + testHelper.GetLoggingConfiguration(), + builder.Config, + // TODO: Yep that's extremely ugly + (globalSettings, connectionStrings, umbVersion, ioHelper, logger, profiler, hostingEnv, backOfficeInfo, typeFinder, appCaches, dbProviderFactoryCreator) => + { + var runtime = UmbracoIntegrationTest.CreateTestRuntime( + globalSettings, + connectionStrings, + umbVersion, + ioHelper, + logger, + profiler, + hostingEnv, + backOfficeInfo, + typeFinder, + appCaches, + dbProviderFactoryCreator, + testHelper.MainDom, // SimpleMainDom + dbInstallEventHandler); // DB Installation event handler - return runtime; - }, - out _); - }); + return runtime; + }, + out _); + }); } } } diff --git a/src/Umbraco.Tests.Integration/TestServerTest/UmbracoTestServerTestBase.cs b/src/Umbraco.Tests.Integration/TestServerTest/UmbracoTestServerTestBase.cs index 465305cd24..5fe06b8a99 100644 --- a/src/Umbraco.Tests.Integration/TestServerTest/UmbracoTestServerTestBase.cs +++ b/src/Umbraco.Tests.Integration/TestServerTest/UmbracoTestServerTestBase.cs @@ -22,6 +22,7 @@ using Umbraco.Web.Common.Builder; using Umbraco.Web.Common.Controllers; using Umbraco.Web.Editors; using Microsoft.Extensions.Hosting; +using Umbraco.Web.BackOffice.Controllers; namespace Umbraco.Tests.Integration.TestServerTest { diff --git a/src/Umbraco.Tests.Integration/Testing/UmbracoIntegrationTest.cs b/src/Umbraco.Tests.Integration/Testing/UmbracoIntegrationTest.cs index 705690b898..552bbf59ae 100644 --- a/src/Umbraco.Tests.Integration/Testing/UmbracoIntegrationTest.cs +++ b/src/Umbraco.Tests.Integration/Testing/UmbracoIntegrationTest.cs @@ -226,6 +226,7 @@ namespace Umbraco.Tests.Integration.Testing GetType().Assembly, AppCaches.NoCache, // Disable caches for integration tests TestHelper.GetLoggingConfiguration(), + Configuration, CreateTestRuntime, out _); @@ -435,7 +436,6 @@ namespace Umbraco.Tests.Integration.Testing #region Builders - protected GlobalSettingsBuilder GlobalSettingsBuilder = new GlobalSettingsBuilder(); protected UserBuilder UserBuilder = new UserBuilder(); protected UserGroupBuilder UserGroupBuilder = new UserGroupBuilder(); diff --git a/src/Umbraco.Tests.Integration/Umbraco.Web.BackOffice.Security/BackOfficeCookieManagerTests.cs b/src/Umbraco.Tests.Integration/Umbraco.Web.BackOffice.Security/BackOfficeCookieManagerTests.cs index 6fd5672085..83760bd177 100644 --- a/src/Umbraco.Tests.Integration/Umbraco.Web.BackOffice.Security/BackOfficeCookieManagerTests.cs +++ b/src/Umbraco.Tests.Integration/Umbraco.Web.BackOffice.Security/BackOfficeCookieManagerTests.cs @@ -1,15 +1,13 @@ - - +using System; using Microsoft.AspNetCore.Http; using Microsoft.AspNetCore.Routing; using Moq; using NUnit.Framework; -using System; using Umbraco.Core; using Umbraco.Core.Cache; +using Umbraco.Core.Configuration.Models; using Umbraco.Core.Hosting; using Umbraco.Extensions; -using Umbraco.Tests.Common.Builders; using Umbraco.Tests.Integration.Implementations; using Umbraco.Web; using Umbraco.Web.BackOffice.Controllers; @@ -26,7 +24,7 @@ namespace Umbraco.Tests.Security var testHelper = new TestHelper(); var httpContextAccessor = testHelper.GetHttpContextAccessor(); - var globalSettings = new GlobalSettingsBuilder().Build(); + var globalSettings = new GlobalSettings(); var runtime = Mock.Of(x => x.Level == RuntimeLevel.Install); var mgr = new BackOfficeCookieManager( @@ -51,7 +49,7 @@ namespace Umbraco.Tests.Security //hostingEnvironment.ToAbsolute(globalSettings.UmbracoPath); var httpContextAccessor = testHelper.GetHttpContextAccessor(); - var globalSettings = new GlobalSettingsBuilder().Build(); + var globalSettings = new GlobalSettings(); var runtime = Mock.Of(x => x.Level == RuntimeLevel.Run); var mgr = new BackOfficeCookieManager( @@ -73,7 +71,7 @@ namespace Umbraco.Tests.Security var testHelper = new TestHelper(); var httpContextAccessor = testHelper.GetHttpContextAccessor(); - var globalSettings = new GlobalSettingsBuilder().Build(); + var globalSettings = new GlobalSettings(); var runtime = Mock.Of(x => x.Level == RuntimeLevel.Run); @@ -98,7 +96,7 @@ namespace Umbraco.Tests.Security var testHelper = new TestHelper(); var httpContextAccessor = testHelper.GetHttpContextAccessor(); - var globalSettings = new GlobalSettingsBuilder().Build(); + var globalSettings = new GlobalSettings(); var runtime = Mock.Of(x => x.Level == RuntimeLevel.Run); @@ -120,7 +118,7 @@ namespace Umbraco.Tests.Security var testHelper = new TestHelper(); var httpContextAccessor = testHelper.GetHttpContextAccessor(); - var globalSettings = new GlobalSettingsBuilder().Build(); + var globalSettings = new GlobalSettings(); var runtime = Mock.Of(x => x.Level == RuntimeLevel.Run); diff --git a/src/Umbraco.Tests.Integration/Views/template1.cshtml b/src/Umbraco.Tests.Integration/Views/template1.cshtml new file mode 100644 index 0000000000..64a9c8d55f --- /dev/null +++ b/src/Umbraco.Tests.Integration/Views/template1.cshtml @@ -0,0 +1,5 @@ +@using Umbraco.Web.PublishedModels; +@inherits Umbraco.Web.Common.AspNetCore.UmbracoViewPage +@{ + Layout = null; +} \ No newline at end of file diff --git a/src/Umbraco.Tests.Integration/Views/template2.cshtml b/src/Umbraco.Tests.Integration/Views/template2.cshtml new file mode 100644 index 0000000000..64a9c8d55f --- /dev/null +++ b/src/Umbraco.Tests.Integration/Views/template2.cshtml @@ -0,0 +1,5 @@ +@using Umbraco.Web.PublishedModels; +@inherits Umbraco.Web.Common.AspNetCore.UmbracoViewPage +@{ + Layout = null; +} \ No newline at end of file diff --git a/src/Umbraco.Tests.Integration/Views/test.cshtml b/src/Umbraco.Tests.Integration/Views/test.cshtml new file mode 100644 index 0000000000..64a9c8d55f --- /dev/null +++ b/src/Umbraco.Tests.Integration/Views/test.cshtml @@ -0,0 +1,5 @@ +@using Umbraco.Web.PublishedModels; +@inherits Umbraco.Web.Common.AspNetCore.UmbracoViewPage +@{ + Layout = null; +} \ No newline at end of file diff --git a/src/Umbraco.Tests.UnitTests/AutoFixture/AutoMoqDataAttribute.cs b/src/Umbraco.Tests.UnitTests/AutoFixture/AutoMoqDataAttribute.cs index c2ef2b4f04..c1b0c453c5 100644 --- a/src/Umbraco.Tests.UnitTests/AutoFixture/AutoMoqDataAttribute.cs +++ b/src/Umbraco.Tests.UnitTests/AutoFixture/AutoMoqDataAttribute.cs @@ -40,7 +40,7 @@ namespace Umbraco.Tests.UnitTests.AutoFixture { fixture.Customize( u => u.FromFactory( - (a,b,c) => BackOfficeIdentityUser.CreateNew(new GlobalSettingsBuilder().Build(),a,b,c))); + (a,b,c) => BackOfficeIdentityUser.CreateNew(new GlobalSettings(),a,b,c))); fixture .Customize(new ConstructorCustomization(typeof(UsersController), new GreedyConstructorQuery())) .Customize(new ConstructorCustomization(typeof(InstallController), new GreedyConstructorQuery())) diff --git a/src/Umbraco.Tests.UnitTests/Umbraco.Core/BackOffice/BackOfficeClaimsPrincipalFactoryTests.cs b/src/Umbraco.Tests.UnitTests/Umbraco.Core/BackOffice/BackOfficeClaimsPrincipalFactoryTests.cs index 7d977fe686..13c73dfa96 100644 --- a/src/Umbraco.Tests.UnitTests/Umbraco.Core/BackOffice/BackOfficeClaimsPrincipalFactoryTests.cs +++ b/src/Umbraco.Tests.UnitTests/Umbraco.Core/BackOffice/BackOfficeClaimsPrincipalFactoryTests.cs @@ -9,6 +9,7 @@ using NUnit.Framework; using Umbraco.Core; using Umbraco.Core.BackOffice; using Umbraco.Core.Configuration; +using Umbraco.Core.Configuration.Models; using Umbraco.Core.Models.Membership; using Umbraco.Extensions; using Umbraco.Tests.Common.Builders; @@ -138,7 +139,7 @@ namespace Umbraco.Tests.UnitTests.Umbraco.Core.BackOffice [SetUp] public void Setup() { - var globalSettings = new GlobalSettingsBuilder().WithDefaultUiLanguage("test").Build(); + var globalSettings = new GlobalSettings { DefaultUILanguage = "test" }; _testUser = new BackOfficeIdentityUser(globalSettings, _testUserId, new List()) { diff --git a/src/Umbraco.Tests.UnitTests/Umbraco.Core/Configuration/Models/Validation/ContentSettingsValidatorTests.cs b/src/Umbraco.Tests.UnitTests/Umbraco.Core/Configuration/Models/Validation/ContentSettingsValidatorTests.cs new file mode 100644 index 0000000000..c90e4e4c7d --- /dev/null +++ b/src/Umbraco.Tests.UnitTests/Umbraco.Core/Configuration/Models/Validation/ContentSettingsValidatorTests.cs @@ -0,0 +1,65 @@ +using NUnit.Framework; +using Umbraco.Core.Configuration.Models; +using Umbraco.Core.Configuration.Models.Validation; +using Umbraco.Tests.Common.Builders; + +namespace Umbraco.Tests.UnitTests.Umbraco.Core.Configuration.Models.Validation +{ + [TestFixture] + public class ContentSettingsValidationTests + { + [Test] + public void Returns_Success_ForValid_Configuration() + { + var validator = new ContentSettingsValidator(); + var options = BuildContentSettings(); + var result = validator.Validate("settings", options); + Assert.True(result.Succeeded); + } + + [Test] + public void Returns_Fail_For_Configuration_With_Invalid_Error404Collection_Due_To_Duplicate_Id() + { + var validator = new ContentSettingsValidator(); + var options = BuildContentSettings(contentXPath: "/aaa/bbb"); + var result = validator.Validate("settings", options); + Assert.False(result.Succeeded); + } + + [Test] + public void Returns_Fail_For_Configuration_With_Invalid_Error404Collection_Due_To_Empty_Culture() + { + var validator = new ContentSettingsValidator(); + var options = BuildContentSettings(culture: string.Empty); + var result = validator.Validate("settings", options); + Assert.False(result.Succeeded); + } + + [Test] + public void Returns_Fail_For_Configuration_With_Invalid_AutoFillImageProperties_Collection() + { + var validator = new ContentSettingsValidator(); + var options = BuildContentSettings(culture: string.Empty); + var result = validator.Validate("settings", options); + Assert.False(result.Succeeded); + } + + private static ContentSettings BuildContentSettings(string culture = "en-US", string contentXPath = "", string autoFillImagePropertyAlias = "testAlias") + { + return new ContentSettings + { + Error404Collection = new ContentErrorPage[] + { + new ContentErrorPage { Culture = culture, ContentId = 1, ContentXPath = contentXPath }, + }, + Imaging = new ContentImagingSettings + { + AutoFillImageProperties = new ImagingAutoFillUploadField[] + { + new ImagingAutoFillUploadField { Alias = autoFillImagePropertyAlias, WidthFieldAlias = "w", HeightFieldAlias = "h", LengthFieldAlias = "l", ExtensionFieldAlias = "e" } + } + } + }; + } + } +} diff --git a/src/Umbraco.Tests.UnitTests/Umbraco.Core/Configuration/Models/Validation/GlobalSettingsValidatorTests.cs b/src/Umbraco.Tests.UnitTests/Umbraco.Core/Configuration/Models/Validation/GlobalSettingsValidatorTests.cs new file mode 100644 index 0000000000..3cc0532db2 --- /dev/null +++ b/src/Umbraco.Tests.UnitTests/Umbraco.Core/Configuration/Models/Validation/GlobalSettingsValidatorTests.cs @@ -0,0 +1,39 @@ +using NUnit.Framework; +using Umbraco.Core.Configuration.Models; +using Umbraco.Core.Configuration.Models.Validation; + +namespace Umbraco.Tests.UnitTests.Umbraco.Core.Configuration.Models.Validation +{ + [TestFixture] + public class GlobalSettingsValidationTests + { + [Test] + public void Returns_Success_ForValid_Configuration() + { + var validator = new GlobalSettingsValidator(); + var options = BuildGlobalSettings(); + var result = validator.Validate("settings", options); + Assert.True(result.Succeeded); + } + + [Test] + public void Returns_Fail_For_Configuration_With_Invalid_SmtpFrom_Field() + { + var validator = new GlobalSettingsValidator(); + var options = BuildGlobalSettings(smtpEmail: "invalid"); + var result = validator.Validate("settings", options); + Assert.False(result.Succeeded); + } + + private static GlobalSettings BuildGlobalSettings(string smtpEmail = "test@test.com") + { + return new GlobalSettings + { + Smtp = new SmtpSettings + { + From = smtpEmail, + } + }; + } + } +} diff --git a/src/Umbraco.Tests.UnitTests/Umbraco.Core/Configuration/Models/Validation/RequestHandlerSettingsValidatorTests.cs b/src/Umbraco.Tests.UnitTests/Umbraco.Core/Configuration/Models/Validation/RequestHandlerSettingsValidatorTests.cs new file mode 100644 index 0000000000..f579fec695 --- /dev/null +++ b/src/Umbraco.Tests.UnitTests/Umbraco.Core/Configuration/Models/Validation/RequestHandlerSettingsValidatorTests.cs @@ -0,0 +1,28 @@ +using NUnit.Framework; +using Umbraco.Core.Configuration.Models; +using Umbraco.Core.Configuration.Models.Validation; + +namespace Umbraco.Tests.UnitTests.Umbraco.Core.Configuration.Models.Validation +{ + [TestFixture] + public class RequestHandlerSettingsValidatorTests + { + [Test] + public void Returns_Success_ForValid_Configuration() + { + var validator = new RequestHandlerSettingsValidator(); + var options = new RequestHandlerSettings(); + var result = validator.Validate("settings", options); + Assert.True(result.Succeeded); + } + + [Test] + public void Returns_Fail_For_Configuration_With_Invalid_ConvertUrlsToAscii_Field() + { + var validator = new RequestHandlerSettingsValidator(); + var options = new RequestHandlerSettings { ConvertUrlsToAscii = "invalid" }; + var result = validator.Validate("settings", options); + Assert.False(result.Succeeded); + } + } +} diff --git a/src/Umbraco.Tests.UnitTests/Umbraco.Core/Extensions/UriExtensionsTests.cs b/src/Umbraco.Tests.UnitTests/Umbraco.Core/Extensions/UriExtensionsTests.cs index 77a7ba1732..e832f13671 100644 --- a/src/Umbraco.Tests.UnitTests/Umbraco.Core/Extensions/UriExtensionsTests.cs +++ b/src/Umbraco.Tests.UnitTests/Umbraco.Core/Extensions/UriExtensionsTests.cs @@ -18,7 +18,7 @@ namespace Umbraco.Tests.UnitTests.Umbraco.Core.Extensions public void Setup() { _hostEnvironment = Mock.Of(); - _globalSettings = new GlobalSettingsBuilder().Build(); + _globalSettings = new GlobalSettings(); } private IWebHostEnvironment _hostEnvironment; @@ -69,7 +69,7 @@ namespace Umbraco.Tests.UnitTests.Umbraco.Core.Extensions private AspNetCoreHostingEnvironment CreateHostingEnvironment(string virtualPath = "") { - var hostingSettings = new HostingSettingsBuilder().WithApplicationVirtualPath(virtualPath).Build(); + var hostingSettings = new HostingSettings { ApplicationVirtualPath = virtualPath }; var mockedOptionsMonitorOfHostingSettings = Mock.Of>(x => x.CurrentValue == hostingSettings); return new AspNetCoreHostingEnvironment(mockedOptionsMonitorOfHostingSettings, _hostEnvironment); } diff --git a/src/Umbraco.Tests.UnitTests/Umbraco.Core/PropertyEditors/PropertyEditorValueEditorTests.cs b/src/Umbraco.Tests.UnitTests/Umbraco.Core/PropertyEditors/PropertyEditorValueEditorTests.cs index 043f682a3f..e5d93a13da 100644 --- a/src/Umbraco.Tests.UnitTests/Umbraco.Core/PropertyEditors/PropertyEditorValueEditorTests.cs +++ b/src/Umbraco.Tests.UnitTests/Umbraco.Core/PropertyEditors/PropertyEditorValueEditorTests.cs @@ -2,6 +2,9 @@ using Moq; using NUnit.Framework; using Umbraco.Core; +using Umbraco.Core.Cache; +using Umbraco.Core.Composing; +using Umbraco.Core.Logging; using Umbraco.Core.Models; using Umbraco.Core.PropertyEditors; using Umbraco.Core.Strings; @@ -25,6 +28,7 @@ namespace Umbraco.Tests.PropertyEditors var result = valueEditor.ToEditor(prop); Assert.AreEqual(isOk, !(result is string)); + } [TestCase("STRING", "hello", "hello")] diff --git a/src/Umbraco.Tests.UnitTests/Umbraco.Core/Routing/UriUtilityTests.cs b/src/Umbraco.Tests.UnitTests/Umbraco.Core/Routing/UriUtilityTests.cs index 7a2a4c5965..e577fc28fa 100644 --- a/src/Umbraco.Tests.UnitTests/Umbraco.Core/Routing/UriUtilityTests.cs +++ b/src/Umbraco.Tests.UnitTests/Umbraco.Core/Routing/UriUtilityTests.cs @@ -1,10 +1,8 @@ using System; using Moq; using NUnit.Framework; -using Umbraco.Core.Configuration; -using Umbraco.Core.Configuration.UmbracoSettings; +using Umbraco.Core.Configuration.Models; using Umbraco.Core.Hosting; -using Umbraco.Tests.Common.Builders; using Umbraco.Web; namespace Umbraco.Tests.UnitTests.Umbraco.Core.Routing @@ -71,7 +69,7 @@ namespace Umbraco.Tests.UnitTests.Umbraco.Core.Routing { // Arrange var sourceUri = new Uri(sourceUrl, UriKind.Relative); - var requestHandlerSettings = new RequestHandlerSettingsBuilder().WithAddTrailingSlash(trailingSlash).Build(); + var requestHandlerSettings = new RequestHandlerSettings { AddTrailingSlash = trailingSlash }; var uriUtility = BuildUriUtility("/"); // Act diff --git a/src/Umbraco.Tests.UnitTests/Umbraco.Core/ShortStringHelper/CmsHelperCasingTests.cs b/src/Umbraco.Tests.UnitTests/Umbraco.Core/ShortStringHelper/CmsHelperCasingTests.cs index ecdeb2b9e5..a164242b2d 100644 --- a/src/Umbraco.Tests.UnitTests/Umbraco.Core/ShortStringHelper/CmsHelperCasingTests.cs +++ b/src/Umbraco.Tests.UnitTests/Umbraco.Core/ShortStringHelper/CmsHelperCasingTests.cs @@ -3,6 +3,7 @@ using Moq; using NUnit.Framework; using Umbraco.Core; using Umbraco.Core.Configuration.Models; +using Umbraco.Core.Configuration.Models; using Umbraco.Core.Configuration.UmbracoSettings; using Umbraco.Core.Strings; using Umbraco.Tests.Common.Builders; diff --git a/src/Umbraco.Tests.UnitTests/Umbraco.Tests.Common/ModelsBuilder/BuilderTests.cs b/src/Umbraco.Tests.UnitTests/Umbraco.ModelsBuilder.Embedded/BuilderTests.cs similarity index 87% rename from src/Umbraco.Tests.UnitTests/Umbraco.Tests.Common/ModelsBuilder/BuilderTests.cs rename to src/Umbraco.Tests.UnitTests/Umbraco.ModelsBuilder.Embedded/BuilderTests.cs index f185a56868..80c8b057ab 100644 --- a/src/Umbraco.Tests.UnitTests/Umbraco.Tests.Common/ModelsBuilder/BuilderTests.cs +++ b/src/Umbraco.Tests.UnitTests/Umbraco.ModelsBuilder.Embedded/BuilderTests.cs @@ -2,15 +2,13 @@ using System.Collections.Generic; using System.Linq; using System.Text; -using Moq; using NUnit.Framework; -using Umbraco.Core.Configuration; +using Umbraco.Core.Configuration.Models; using Umbraco.Core.Models.PublishedContent; using Umbraco.ModelsBuilder.Embedded; using Umbraco.ModelsBuilder.Embedded.Building; -using Umbraco.Tests.Common.Builders; -namespace Umbraco.Tests.ModelsBuilder +namespace Umbraco.Tests.UnitTests.Umbraco.ModelsBuilder.Embedded { [TestFixture] public class BuilderTests @@ -43,7 +41,7 @@ namespace Umbraco.Tests.ModelsBuilder { }; - var modelsBuilderConfig = new ModelsBuilderConfigBuilder().Build(); + var modelsBuilderConfig = new ModelsBuilderSettings(); var builder = new TextBuilder(modelsBuilderConfig, types); var btypes = builder.TypeModels; @@ -154,7 +152,7 @@ namespace Umbraco.Web.PublishedModels " } }; - var modelsBuilderConfig = new ModelsBuilderConfigBuilder().Build(); + var modelsBuilderConfig = new ModelsBuilderSettings(); var builder = new TextBuilder(modelsBuilderConfig, types); var btypes = builder.TypeModels; @@ -252,7 +250,7 @@ namespace Umbraco.Web.PublishedModels { Alias = "prop2", ClrName = "Prop2", - ModelClrType = typeof(global::System.Text.StringBuilder), + ModelClrType = typeof(StringBuilder), }); type1.Properties.Add(new PropertyModel { @@ -266,7 +264,7 @@ namespace Umbraco.Web.PublishedModels { }; - var modelsBuilderConfig = new ModelsBuilderConfigBuilder().Build(); + var modelsBuilderConfig = new ModelsBuilderSettings(); var builder = new TextBuilder(modelsBuilderConfig, types); builder.ModelsNamespace = "Umbraco.ModelsBuilder.Models"; // forces conflict with Umbraco.ModelsBuilder.Umbraco var btypes = builder.TypeModels; @@ -285,8 +283,8 @@ namespace Umbraco.Web.PublishedModels [TestCase("int", typeof(int))] [TestCase("global::System.Collections.Generic.IEnumerable", typeof(IEnumerable))] - [TestCase("global::Umbraco.Tests.ModelsBuilder.BuilderTestsClass1", typeof(BuilderTestsClass1))] - [TestCase("global::Umbraco.Tests.ModelsBuilder.BuilderTests.Class1", typeof(Class1))] + [TestCase("global::Umbraco.Tests.UnitTests.Umbraco.ModelsBuilder.Embedded.BuilderTestsClass1", typeof(BuilderTestsClass1))] + [TestCase("global::Umbraco.Tests.UnitTests.Umbraco.ModelsBuilder.Embedded.BuilderTests.Class1", typeof(Class1))] public void WriteClrType(string expected, Type input) { // note - these assertions differ from the original tests in MB because in the embedded version, the result of Builder.IsAmbiguousSymbol is always true @@ -301,15 +299,15 @@ namespace Umbraco.Web.PublishedModels [TestCase("int", typeof(int))] [TestCase("global::System.Collections.Generic.IEnumerable", typeof(IEnumerable))] - [TestCase("global::Umbraco.Tests.ModelsBuilder.BuilderTestsClass1", typeof(BuilderTestsClass1))] - [TestCase("global::Umbraco.Tests.ModelsBuilder.BuilderTests.Class1", typeof(Class1))] + [TestCase("global::Umbraco.Tests.UnitTests.Umbraco.ModelsBuilder.Embedded.BuilderTestsClass1", typeof(BuilderTestsClass1))] + [TestCase("global::Umbraco.Tests.UnitTests.Umbraco.ModelsBuilder.Embedded.BuilderTests.Class1", typeof(Class1))] public void WriteClrTypeUsing(string expected, Type input) { // note - these assertions differ from the original tests in MB because in the embedded version, the result of Builder.IsAmbiguousSymbol is always true // which means global:: syntax will be applied to most things var builder = new TextBuilder(); - builder.Using.Add("Umbraco.Tests.ModelsBuilder"); + builder.Using.Add("Umbraco.Tests.UnitTests.Umbraco.ModelsBuilder"); builder.ModelsNamespaceForTests = "ModelsNamespace"; var sb = new StringBuilder(); builder.WriteClrType(sb, input); @@ -321,7 +319,7 @@ namespace Umbraco.Web.PublishedModels { var builder = new TextBuilder(); builder.Using.Add("System.Text"); - builder.ModelsNamespaceForTests = "Umbraco.Tests.ModelsBuilder.Models"; + builder.ModelsNamespaceForTests = "Umbraco.Tests.UnitTests.Umbraco.ModelsBuilder.Models"; var sb = new StringBuilder(); builder.WriteClrType(sb, typeof(StringBuilder)); @@ -335,7 +333,7 @@ namespace Umbraco.Web.PublishedModels public void WriteClrTypeAnother_WithoutUsing() { var builder = new TextBuilder(); - builder.ModelsNamespaceForTests = "Umbraco.Tests.ModelsBuilder.Models"; + builder.ModelsNamespaceForTests = "Umbraco.Tests.UnitTests.Umbraco.ModelsBuilder.Models"; var sb = new StringBuilder(); builder.WriteClrType(sb, typeof(StringBuilder)); Assert.AreEqual("global::System.Text.StringBuilder", sb.ToString()); @@ -346,7 +344,7 @@ namespace Umbraco.Web.PublishedModels { var builder = new TextBuilder(); builder.Using.Add("System.Text"); - builder.Using.Add("Umbraco.Tests.ModelsBuilder"); + builder.Using.Add("Umbraco.Tests.UnitTests.Umbraco.ModelsBuilder.Embedded"); builder.ModelsNamespaceForTests = "SomeRandomNamespace"; var sb = new StringBuilder(); builder.WriteClrType(sb, typeof(global::System.Text.ASCIIEncoding)); @@ -362,7 +360,7 @@ namespace Umbraco.Web.PublishedModels { var builder = new TextBuilder(); builder.Using.Add("System.Text"); - builder.Using.Add("Umbraco.Tests.ModelsBuilder"); + builder.Using.Add("Umbraco.Tests.UnitTests.Umbraco.ModelsBuilder.Embedded"); builder.ModelsNamespaceForTests = "SomeBorkedNamespace"; var sb = new StringBuilder(); builder.WriteClrType(sb, typeof(global::System.Text.ASCIIEncoding)); @@ -378,7 +376,7 @@ namespace Umbraco.Web.PublishedModels { var builder = new TextBuilder(); builder.Using.Add("System.Text"); - builder.Using.Add("Umbraco.Tests.ModelsBuilder"); + builder.Using.Add("Umbraco.Tests.UnitTests.Umbraco.ModelsBuilder.Embedded"); builder.ModelsNamespaceForTests = "SomeRandomNamespace"; var sb = new StringBuilder(); builder.WriteClrType(sb, typeof(ASCIIEncoding)); @@ -386,7 +384,7 @@ namespace Umbraco.Web.PublishedModels // note - these assertions differ from the original tests in MB because in the embedded version, the result of Builder.IsAmbiguousSymbol is always true // which means global:: syntax will be applied to most things - Assert.AreEqual("global::Umbraco.Tests.ModelsBuilder.ASCIIEncoding", sb.ToString()); + Assert.AreEqual("global::Umbraco.Tests.UnitTests.Umbraco.ModelsBuilder.Embedded.ASCIIEncoding", sb.ToString()); } [Test] @@ -394,15 +392,15 @@ namespace Umbraco.Web.PublishedModels { var builder = new TextBuilder(); builder.Using.Add("System.Text"); - builder.Using.Add("Umbraco.Tests.ModelsBuilder"); - builder.ModelsNamespaceForTests = "Umbraco.Tests.ModelsBuilder.Models"; + builder.Using.Add("Umbraco.Tests.UnitTests.Umbraco.ModelsBuilder.Embedded"); + builder.ModelsNamespaceForTests = "Umbraco.Tests.UnitTests.Umbraco.ModelsBuilder.Models"; var sb = new StringBuilder(); builder.WriteClrType(sb, typeof(ASCIIEncoding)); // note - these assertions differ from the original tests in MB because in the embedded version, the result of Builder.IsAmbiguousSymbol is always true // which means global:: syntax will be applied to most things - Assert.AreEqual("global::Umbraco.Tests.ModelsBuilder.ASCIIEncoding", sb.ToString()); + Assert.AreEqual("global::Umbraco.Tests.UnitTests.Umbraco.ModelsBuilder.Embedded.ASCIIEncoding", sb.ToString()); } [Test] @@ -410,7 +408,7 @@ namespace Umbraco.Web.PublishedModels { var builder = new TextBuilder(); builder.Using.Add("System.Text"); - builder.Using.Add("Umbraco.Tests.ModelsBuilder"); + builder.Using.Add("Umbraco.Tests.UnitTests.Umbraco.ModelsBuilder.Embedded"); builder.ModelsNamespaceForTests = "SomeRandomNamespace"; var sb = new StringBuilder(); builder.WriteClrType(sb, typeof(ASCIIEncoding.Nested)); @@ -418,20 +416,20 @@ namespace Umbraco.Web.PublishedModels // note - these assertions differ from the original tests in MB because in the embedded version, the result of Builder.IsAmbiguousSymbol is always true // which means global:: syntax will be applied to most things - Assert.AreEqual("global::Umbraco.Tests.ModelsBuilder.ASCIIEncoding.Nested", sb.ToString()); + Assert.AreEqual("global::Umbraco.Tests.UnitTests.Umbraco.ModelsBuilder.Embedded.ASCIIEncoding.Nested", sb.ToString()); } public class Class1 { } } -// make it public to be ambiguous (see above) + // make it public to be ambiguous (see above) public class ASCIIEncoding { // can we handle nested types? public class Nested { } } - class BuilderTestsClass1 {} + class BuilderTestsClass1 { } public class System { } } diff --git a/src/Umbraco.Tests.UnitTests/Umbraco.Tests.Common/ModelsBuilder/StringExtensions.cs b/src/Umbraco.Tests.UnitTests/Umbraco.ModelsBuilder.Embedded/StringExtensions.cs similarity index 71% rename from src/Umbraco.Tests.UnitTests/Umbraco.Tests.Common/ModelsBuilder/StringExtensions.cs rename to src/Umbraco.Tests.UnitTests/Umbraco.ModelsBuilder.Embedded/StringExtensions.cs index 361d104911..2afcd4f471 100644 --- a/src/Umbraco.Tests.UnitTests/Umbraco.Tests.Common/ModelsBuilder/StringExtensions.cs +++ b/src/Umbraco.Tests.UnitTests/Umbraco.ModelsBuilder.Embedded/StringExtensions.cs @@ -1,4 +1,4 @@ -namespace Umbraco.Tests.ModelsBuilder +namespace Umbraco.Tests.UnitTests.Umbraco.ModelsBuilder.Embedded { public static class StringExtensions { diff --git a/src/Umbraco.Tests.UnitTests/Umbraco.Tests.Common/ModelsBuilder/UmbracoApplicationTests.cs b/src/Umbraco.Tests.UnitTests/Umbraco.ModelsBuilder.Embedded/UmbracoApplicationTests.cs similarity index 97% rename from src/Umbraco.Tests.UnitTests/Umbraco.Tests.Common/ModelsBuilder/UmbracoApplicationTests.cs rename to src/Umbraco.Tests.UnitTests/Umbraco.ModelsBuilder.Embedded/UmbracoApplicationTests.cs index 4d2ae0e6c6..25d1d9f1f9 100644 --- a/src/Umbraco.Tests.UnitTests/Umbraco.Tests.Common/ModelsBuilder/UmbracoApplicationTests.cs +++ b/src/Umbraco.Tests.UnitTests/Umbraco.ModelsBuilder.Embedded/UmbracoApplicationTests.cs @@ -4,7 +4,7 @@ using NUnit.Framework; using Umbraco.ModelsBuilder.Embedded; using Umbraco.ModelsBuilder.Embedded.Building; -namespace Umbraco.Tests.ModelsBuilder +namespace Umbraco.Tests.UnitTests.Umbraco.ModelsBuilder.Embedded { [TestFixture] public class UmbracoApplicationTests diff --git a/src/Umbraco.Tests.UnitTests/Umbraco.Tests.Common/Builders/ConnectionStringsBuilderTests.cs b/src/Umbraco.Tests.UnitTests/Umbraco.Tests.Common/Builders/ConnectionStringsBuilderTests.cs deleted file mode 100644 index 7a95df708e..0000000000 --- a/src/Umbraco.Tests.UnitTests/Umbraco.Tests.Common/Builders/ConnectionStringsBuilderTests.cs +++ /dev/null @@ -1,26 +0,0 @@ -using NUnit.Framework; -using Umbraco.Tests.Common.Builders; - -namespace Umbraco.Tests.UnitTests.Umbraco.Tests.Common.Builders -{ - [TestFixture] - public class ConnectionStringsBuilderTests - { - [Test] - public void Is_Built_Correctly() - { - // Arrange - const string umbracoConnectionString = "Server=(LocalDB)\\Umbraco;Database=FakeName;Integrated Security=true"; - - var builder = new ConnectionStringsBuilder(); - - // Act - var connectionStrings = builder - .WithUmbracoConnectionString(umbracoConnectionString) - .Build(); - - // Assert - Assert.AreEqual(umbracoConnectionString, connectionStrings.UmbracoConnectionString.ConnectionString); - } - } -} diff --git a/src/Umbraco.Tests.UnitTests/Umbraco.Tests.Common/Builders/CoreDebugSettingsBuilderTests.cs b/src/Umbraco.Tests.UnitTests/Umbraco.Tests.Common/Builders/CoreDebugSettingsBuilderTests.cs deleted file mode 100644 index d576f44072..0000000000 --- a/src/Umbraco.Tests.UnitTests/Umbraco.Tests.Common/Builders/CoreDebugSettingsBuilderTests.cs +++ /dev/null @@ -1,29 +0,0 @@ -using NUnit.Framework; -using Umbraco.Tests.Common.Builders; - -namespace Umbraco.Tests.UnitTests.Umbraco.Tests.Common.Builders -{ - [TestFixture] - public class CoreDebugSettingsBuilderTests - { - [Test] - public void Is_Built_Correctly() - { - // Arrange - const bool dumpOnTimeoutThreadAbort = true; - const bool logUncompletedScopes = true; - - var builder = new CoreDebugSettingsBuilder(); - - // Act - var coreDebugSettings = builder - .WithDumpOnTimeoutThreadAbort(dumpOnTimeoutThreadAbort) - .WithLogUncompletedScopes(logUncompletedScopes) - .Build(); - - // Assert - Assert.AreEqual(dumpOnTimeoutThreadAbort, coreDebugSettings.DumpOnTimeoutThreadAbort); - Assert.AreEqual(logUncompletedScopes, coreDebugSettings.LogUncompletedScopes); - } - } -} diff --git a/src/Umbraco.Tests.UnitTests/Umbraco.Tests.Common/Builders/HostingSettingsBuilderTests.cs b/src/Umbraco.Tests.UnitTests/Umbraco.Tests.Common/Builders/HostingSettingsBuilderTests.cs deleted file mode 100644 index 377e143b97..0000000000 --- a/src/Umbraco.Tests.UnitTests/Umbraco.Tests.Common/Builders/HostingSettingsBuilderTests.cs +++ /dev/null @@ -1,30 +0,0 @@ -using NUnit.Framework; -using Umbraco.Core.Configuration; -using Umbraco.Tests.Common.Builders; - -namespace Umbraco.Tests.UnitTests.Umbraco.Tests.Common.Builders -{ - [TestFixture] - public class HostingSettingsBuilderTests - { - [Test] - public void Is_Built_Correctly() - { - // Arrange - const bool debugMode = true; - const LocalTempStorage localTempStorageLocation = LocalTempStorage.AspNetTemp; - - var builder = new HostingSettingsBuilder(); - - // Act - var hostingSettings = builder - .WithDebug(debugMode) - .WithLocalTempStorageLocation(localTempStorageLocation) - .Build(); - - // Assert - Assert.AreEqual(debugMode, hostingSettings.Debug); - Assert.AreEqual(localTempStorageLocation, hostingSettings.LocalTempStorageLocation); - } - } -} diff --git a/src/Umbraco.Tests.UnitTests/Umbraco.Tests.Common/Builders/RequestHandlerSettingsBuilderTests.cs b/src/Umbraco.Tests.UnitTests/Umbraco.Tests.Common/Builders/RequestHandlerSettingsBuilderTests.cs deleted file mode 100644 index 199b3dadde..0000000000 --- a/src/Umbraco.Tests.UnitTests/Umbraco.Tests.Common/Builders/RequestHandlerSettingsBuilderTests.cs +++ /dev/null @@ -1,36 +0,0 @@ -using System.Collections.Generic; -using System.Linq; -using NUnit.Framework; -using Umbraco.Core.Configuration.UmbracoSettings; -using Umbraco.Tests.Common.Builders; -using static Umbraco.Core.Configuration.Models.RequestHandlerSettings; - -namespace Umbraco.Tests.UnitTests.Umbraco.Tests.Common.Builders -{ - [TestFixture] - public class RequestHandlerSettingsBuilderTests - { - [Test] - public void Is_Built_Correctly() - { - // Arrange - const bool addTrailingSlash = true; - const string convertUrlsToAscii = "try"; - var charCollection = new List { new CharItem { Char = "a", Replacement = "b" } }; - - var builder = new RequestHandlerSettingsBuilder(); - - // Act - var requestHandlerSettings = builder - .WithAddTrailingSlash(addTrailingSlash) - .WithConvertUrlsToAscii(convertUrlsToAscii) - .WithCharCollection(charCollection) - .Build(); - - // Assert - Assert.AreEqual(addTrailingSlash, requestHandlerSettings.AddTrailingSlash); - Assert.AreEqual(convertUrlsToAscii, requestHandlerSettings.ConvertUrlsToAscii); - Assert.AreEqual("a-b", string.Join(",", requestHandlerSettings.CharCollection.Select(x => $"{x.Char}-{x.Replacement}"))); - } - } -} diff --git a/src/Umbraco.Tests.UnitTests/Umbraco.Tests.Common/Builders/WebRoutingSettingsBuilderTests.cs b/src/Umbraco.Tests.UnitTests/Umbraco.Tests.Common/Builders/WebRoutingSettingsBuilderTests.cs deleted file mode 100644 index e3f4bcf04e..0000000000 --- a/src/Umbraco.Tests.UnitTests/Umbraco.Tests.Common/Builders/WebRoutingSettingsBuilderTests.cs +++ /dev/null @@ -1,47 +0,0 @@ -using NUnit.Framework; -using Umbraco.Tests.Common.Builders; - -namespace Umbraco.Tests.UnitTests.Umbraco.Tests.Common.Builders -{ - [TestFixture] - public class WebRoutingSettingsBuilderTests - { - [Test] - public void Is_Built_Correctly() - { - // Arrange - const bool disableAlternativeTemplates = true; - const bool disableFindContentByIdPath = true; - const bool disableRedirectUrlTracking = true; - const bool internalRedirectPreservesTemplate = true; - const bool trySkipIisCustomErrors = true; - const string umbracoApplicationUrl = "/test/"; - const string urlProviderMode = "test"; - const bool validateAlternativeTemplates = true; - - var builder = new WebRoutingSettingsBuilder(); - - // Act - var webRoutingSettings = builder - .WithDisableAlternativeTemplates(disableAlternativeTemplates) - .WithDisableFindContentByIdPath(disableFindContentByIdPath) - .WithDisableRedirectUrlTracking(disableRedirectUrlTracking) - .WithInternalRedirectPreservesTemplate(internalRedirectPreservesTemplate) - .WithTrySkipIisCustomErrors(trySkipIisCustomErrors) - .WithUmbracoApplicationUrl(umbracoApplicationUrl) - .WithUrlProviderMode(urlProviderMode) - .WithValidateAlternativeTemplates(validateAlternativeTemplates) - .Build(); - - // Assert - Assert.AreEqual(disableAlternativeTemplates, webRoutingSettings.DisableAlternativeTemplates); - Assert.AreEqual(disableFindContentByIdPath, webRoutingSettings.DisableFindContentByIdPath); - Assert.AreEqual(disableRedirectUrlTracking, webRoutingSettings.DisableRedirectUrlTracking); - Assert.AreEqual(internalRedirectPreservesTemplate, webRoutingSettings.InternalRedirectPreservesTemplate); - Assert.AreEqual(trySkipIisCustomErrors, webRoutingSettings.TrySkipIisCustomErrors); - Assert.AreEqual(umbracoApplicationUrl, webRoutingSettings.UmbracoApplicationUrl); - Assert.AreEqual(urlProviderMode, webRoutingSettings.UrlProviderMode); - Assert.AreEqual(validateAlternativeTemplates, webRoutingSettings.ValidateAlternativeTemplates); - } - } -} diff --git a/src/Umbraco.Tests.UnitTests/Umbraco.Web.Common/ImageCropperTest.cs b/src/Umbraco.Tests.UnitTests/Umbraco.Web.Common/ImageCropperTest.cs index 77d7aead5e..cf91550fe5 100644 --- a/src/Umbraco.Tests.UnitTests/Umbraco.Web.Common/ImageCropperTest.cs +++ b/src/Umbraco.Tests.UnitTests/Umbraco.Web.Common/ImageCropperTest.cs @@ -9,6 +9,7 @@ using Umbraco.Web.Models; using System.Text; using Umbraco.Core.Media; using Umbraco.Extensions; +using System.Collections.Generic; namespace Umbraco.Tests.PropertyEditors { @@ -311,6 +312,8 @@ namespace Umbraco.Tests.PropertyEditors internal class TestImageUrlGenerator : IImageUrlGenerator { + public IEnumerable SupportedImageFileTypes => new[] { "jpeg", "jpg", "gif", "bmp", "png", "tiff", "tif" }; + public string GetImageUrl(ImageUrlGenerationOptions options) { var imageProcessorUrl = new StringBuilder(options.ImageUrl ?? string.Empty); diff --git a/src/Umbraco.Tests.UnitTests/Umbraco.Web.Common/Routing/BackOfficeAreaRoutesTests.cs b/src/Umbraco.Tests.UnitTests/Umbraco.Web.Common/Routing/BackOfficeAreaRoutesTests.cs index 2a096bbd47..54147e67b9 100644 --- a/src/Umbraco.Tests.UnitTests/Umbraco.Web.Common/Routing/BackOfficeAreaRoutesTests.cs +++ b/src/Umbraco.Tests.UnitTests/Umbraco.Web.Common/Routing/BackOfficeAreaRoutesTests.cs @@ -1,14 +1,13 @@ -using Microsoft.AspNetCore.Mvc; +using System.Linq; +using Microsoft.AspNetCore.Mvc; using Microsoft.AspNetCore.Routing; using Microsoft.Extensions.Options; using Moq; using NUnit.Framework; -using System.Linq; using Umbraco.Core; -using Umbraco.Core.Configuration; +using Umbraco.Core.Configuration.Models; using Umbraco.Core.Hosting; using Umbraco.Extensions; -using Umbraco.Tests.Common.Builders; using Umbraco.Web.BackOffice.Controllers; using Umbraco.Web.BackOffice.Routing; using Umbraco.Web.Common.Attributes; @@ -96,7 +95,7 @@ namespace Umbraco.Tests.UnitTests.Umbraco.Web.Common.Routing private BackOfficeAreaRoutes GetBackOfficeAreaRoutes(RuntimeLevel level) { - var globalSettings = new GlobalSettingsBuilder().Build(); + var globalSettings = new GlobalSettings(); var routes = new BackOfficeAreaRoutes( Options.Create(globalSettings), Mock.Of(x => x.ToAbsolute(It.IsAny()) == "/umbraco" && x.ApplicationVirtualPath == string.Empty), diff --git a/src/Umbraco.Tests.UnitTests/Umbraco.Web.Website/Controllers/SurfaceControllerTests.cs b/src/Umbraco.Tests.UnitTests/Umbraco.Web.Website/Controllers/SurfaceControllerTests.cs index a1904cb0da..b1f7bbde79 100644 --- a/src/Umbraco.Tests.UnitTests/Umbraco.Web.Website/Controllers/SurfaceControllerTests.cs +++ b/src/Umbraco.Tests.UnitTests/Umbraco.Web.Website/Controllers/SurfaceControllerTests.cs @@ -1,5 +1,4 @@ -using System; -using System.Threading.Tasks; +using System.Threading.Tasks; using Microsoft.AspNetCore.Http; using Microsoft.AspNetCore.Mvc; using Microsoft.AspNetCore.Routing; @@ -7,12 +6,12 @@ using Microsoft.Extensions.Options; using Moq; using NUnit.Framework; using Umbraco.Core.Cache; +using Umbraco.Core.Configuration.Models; using Umbraco.Core.Hosting; using Umbraco.Core.Models.PublishedContent; using Umbraco.Core.Security; using Umbraco.Core.Services; using Umbraco.Tests.Common; -using Umbraco.Tests.Common.Builders; using Umbraco.Tests.Testing; using Umbraco.Web; using Umbraco.Web.PublishedCache; @@ -42,7 +41,7 @@ namespace Umbraco.Tests.Integration var hostingEnvironment = Mock.Of(); var backofficeSecurityAccessor = Mock.Of(); Mock.Get(backofficeSecurityAccessor).Setup(x => x.BackofficeSecurity).Returns(Mock.Of()); - var globalSettings = new GlobalSettingsBuilder().Build(); + var globalSettings = new GlobalSettings(); var umbracoContextFactory = new UmbracoContextFactory( _umbracoContextAccessor, @@ -73,7 +72,7 @@ namespace Umbraco.Tests.Integration [Test] public void Umbraco_Context_Not_Null() { - var globalSettings = new GlobalSettingsBuilder().Build(); + var globalSettings = new GlobalSettings(); var httpContextAccessor = Mock.Of(); var hostingEnvironment = Mock.Of(); var backofficeSecurityAccessor = Mock.Of(); @@ -114,7 +113,7 @@ namespace Umbraco.Tests.Integration var publishedSnapshotService = new Mock(); var httpContextAccessor = Mock.Of(); var hostingEnvironment = Mock.Of(); - var globalSettings = new GlobalSettingsBuilder().Build(); + var globalSettings = new GlobalSettings(); var umbracoContextFactory = new UmbracoContextFactory( _umbracoContextAccessor, @@ -149,7 +148,7 @@ namespace Umbraco.Tests.Integration [Test] public void Mock_Current_Page() { - var globalSettings = new GlobalSettingsBuilder().Build(); + var globalSettings = new GlobalSettings(); var httpContextAccessor = Mock.Of(); var hostingEnvironment = Mock.Of(); var backofficeSecurityAccessor = Mock.Of(); diff --git a/src/Umbraco.Tests/Cache/PublishedCache/PublishedContentCacheTests.cs b/src/Umbraco.Tests/Cache/PublishedCache/PublishedContentCacheTests.cs index 02f6f24779..75e4d1cfd2 100644 --- a/src/Umbraco.Tests/Cache/PublishedCache/PublishedContentCacheTests.cs +++ b/src/Umbraco.Tests/Cache/PublishedCache/PublishedContentCacheTests.cs @@ -60,7 +60,7 @@ namespace Umbraco.Tests.Cache.PublishedCache _httpContextFactory = new FakeHttpContextFactory("~/Home"); - var globalSettings = new GlobalSettingsBuilder().Build(); + var globalSettings = new GlobalSettings(); var umbracoContextAccessor = Factory.GetInstance(); _xml = new XmlDocument(); diff --git a/src/Umbraco.Tests/Components/ComponentTests.cs b/src/Umbraco.Tests/Components/ComponentTests.cs index e74516dab7..5bcde45681 100644 --- a/src/Umbraco.Tests/Components/ComponentTests.cs +++ b/src/Umbraco.Tests/Components/ComponentTests.cs @@ -9,6 +9,7 @@ using Umbraco.Core; using Umbraco.Core.Cache; using Umbraco.Core.Composing; using Umbraco.Core.Configuration; +using Umbraco.Core.Configuration.Models; using Umbraco.Core.IO; using Umbraco.Core.Logging; using Umbraco.Core.Persistence; @@ -34,13 +35,13 @@ namespace Umbraco.Tests.Components var logger = Mock.Of(); var typeFinder = TestHelper.GetTypeFinder(); - var globalSettings = new GlobalSettingsBuilder().Build(); - var connectionStrings = new ConnectionStringsBuilder().Build(); + var globalSettings = new GlobalSettings(); + var connectionStrings = new ConnectionStrings(); var f = new UmbracoDatabaseFactory(logger, Options.Create(globalSettings), Options.Create(connectionStrings), new Lazy(() => new MapperCollection(Enumerable.Empty())), TestHelper.DbProviderFactoryCreator); var fs = new FileSystems(mock.Object, logger, TestHelper.IOHelper, Options.Create(globalSettings), TestHelper.GetHostingEnvironment()); - var coreDebug = new CoreDebugSettingsBuilder().Build(); + var coreDebug = new CoreDebugSettings(); var mediaFileSystem = Mock.Of(); - var p = new ScopeProvider(f, fs, Microsoft.Extensions.Options.Options.Create(coreDebug), mediaFileSystem, logger, typeFinder, NoAppCache.Instance); + var p = new ScopeProvider(f, fs, Options.Create(coreDebug), mediaFileSystem, logger, typeFinder, NoAppCache.Instance); mock.Setup(x => x.GetInstance(typeof (ILogger))).Returns(logger); mock.Setup(x => x.GetInstance(typeof (IProfilingLogger))).Returns(new ProfilingLogger(Mock.Of(), Mock.Of())); diff --git a/src/Umbraco.Tests/Configurations/GlobalSettingsTests.cs b/src/Umbraco.Tests/Configurations/GlobalSettingsTests.cs index a7b148c8e5..60940019e5 100644 --- a/src/Umbraco.Tests/Configurations/GlobalSettingsTests.cs +++ b/src/Umbraco.Tests/Configurations/GlobalSettingsTests.cs @@ -1,5 +1,4 @@ -using Moq; -using NUnit.Framework; +using NUnit.Framework; using Umbraco.Core.Configuration; using Umbraco.Core.Configuration.Models; using Umbraco.Tests.Common.Builders; @@ -24,7 +23,7 @@ namespace Umbraco.Tests.Configurations ApplicationVirtualPath = rootPath })); - var globalSettings = new GlobalSettingsBuilder().WithUmbracoPath(path).Build(); + var globalSettings = new GlobalSettings { UmbracoPath = path }; Assert.AreEqual(outcome, globalSettings.GetUmbracoMvcAreaNoCache(hostingEnvironment)); } diff --git a/src/Umbraco.Tests/IO/FileSystemsTests.cs b/src/Umbraco.Tests/IO/FileSystemsTests.cs index 9d2df22739..ab8636cc18 100644 --- a/src/Umbraco.Tests/IO/FileSystemsTests.cs +++ b/src/Umbraco.Tests/IO/FileSystemsTests.cs @@ -6,17 +6,16 @@ using NUnit.Framework; using Umbraco.Core; using Umbraco.Core.Cache; using Umbraco.Core.Composing; -using Umbraco.Core.Configuration.UmbracoSettings; +using Umbraco.Core.Composing.CompositionExtensions; +using Umbraco.Core.Configuration.Models; using Umbraco.Core.IO; using Umbraco.Core.IO.MediaPathSchemes; using Umbraco.Core.Logging; using Umbraco.Core.Services; using Umbraco.Tests.Components; 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 { @@ -41,7 +40,7 @@ namespace Umbraco.Tests.IO composition.RegisterUnique(TestHelper.IOHelper); composition.RegisterUnique(TestHelper.GetHostingEnvironment()); - var globalSettings = new GlobalSettingsBuilder().Build(); + var globalSettings = new GlobalSettings(); composition.Register(x => Microsoft.Extensions.Options.Options.Create(globalSettings)); composition.ComposeFileSystems(); diff --git a/src/Umbraco.Tests/IO/ShadowFileSystemTests.cs b/src/Umbraco.Tests/IO/ShadowFileSystemTests.cs index 50ba5a3223..472714ba0e 100644 --- a/src/Umbraco.Tests/IO/ShadowFileSystemTests.cs +++ b/src/Umbraco.Tests/IO/ShadowFileSystemTests.cs @@ -8,6 +8,7 @@ using Moq; using NUnit.Framework; using Umbraco.Core; using Umbraco.Core.Composing; +using Umbraco.Core.Configuration.Models; using Umbraco.Core.IO; using Umbraco.Core.Logging; using Umbraco.Core.Scoping; @@ -438,7 +439,7 @@ namespace Umbraco.Tests.IO var phy = new PhysicalFileSystem(ioHelper, hostingEnvironment, logger, path, "ignore"); var container = Mock.Of(); - var globalSettings = Options.Create(new GlobalSettingsBuilder().Build()); + var globalSettings = Options.Create(new GlobalSettings()); var fileSystems = new FileSystems(container, logger, ioHelper, globalSettings, TestHelper.GetHostingEnvironment()) { IsScoped = () => scopedFileSystems }; var fs = fileSystems.GetFileSystem(phy); var sw = (ShadowWrapper) fs.InnerFileSystem; @@ -535,7 +536,7 @@ namespace Umbraco.Tests.IO var phy = new PhysicalFileSystem(ioHelper, hostingEnvironment, logger, path, "ignore"); var container = Mock.Of(); - var globalSettings = Options.Create(new GlobalSettingsBuilder().Build()); + var globalSettings = Options.Create(new GlobalSettings()); var fileSystems = new FileSystems(container, logger, ioHelper, globalSettings, TestHelper.GetHostingEnvironment()) { IsScoped = () => scopedFileSystems }; var fs = fileSystems.GetFileSystem( phy); var sw = (ShadowWrapper) fs.InnerFileSystem; @@ -591,7 +592,7 @@ namespace Umbraco.Tests.IO var phy = new PhysicalFileSystem(ioHelper, hostingEnvironment, logger, path, "ignore"); var container = Mock.Of(); - var globalSettings = Options.Create(new GlobalSettingsBuilder().Build()); + var globalSettings = Options.Create(new GlobalSettings()); var fileSystems = new FileSystems(container, logger, ioHelper, globalSettings, TestHelper.GetHostingEnvironment()) { IsScoped = () => scopedFileSystems }; var fs = fileSystems.GetFileSystem( phy); var sw = (ShadowWrapper)fs.InnerFileSystem; diff --git a/src/Umbraco.Tests/Models/MediaXmlTest.cs b/src/Umbraco.Tests/Models/MediaXmlTest.cs index 1a1f854e5e..b6236ec944 100644 --- a/src/Umbraco.Tests/Models/MediaXmlTest.cs +++ b/src/Umbraco.Tests/Models/MediaXmlTest.cs @@ -3,12 +3,11 @@ using System.Xml.Linq; using Moq; using NUnit.Framework; using Umbraco.Core; -using Umbraco.Core.Configuration.UmbracoSettings; +using Umbraco.Core.Configuration.Models; using Umbraco.Core.IO; using Umbraco.Core.Logging; using Umbraco.Core.Services; using Umbraco.Core.Strings; -using Umbraco.Tests.Common.Builders; using Umbraco.Tests.TestHelpers; using Umbraco.Tests.TestHelpers.Entities; using Umbraco.Tests.Testing; @@ -31,10 +30,10 @@ namespace Umbraco.Tests.Models // and then, this will reset the width, height... because the file does not exist, of course ;-( var logger = Mock.Of(); var scheme = Mock.Of(); - var contentSettings = new ContentSettingsBuilder().Build(); + var contentSettings = new ContentSettings(); var mediaFileSystem = new MediaFileSystem(Mock.Of(), scheme, logger, ShortStringHelper); - var ignored = new FileUploadPropertyEditor(Mock.Of(), mediaFileSystem, Microsoft.Extensions.Options.Options.Create(contentSettings), DataTypeService, LocalizationService, LocalizedTextService, ShortStringHelper); + var ignored = new FileUploadPropertyEditor(Mock.Of(), mediaFileSystem, Microsoft.Extensions.Options.Options.Create(contentSettings), DataTypeService, LocalizationService, LocalizedTextService, ShortStringHelper, UploadAutoFillProperties); var media = MockedMedia.CreateMediaImage(mediaType, -1); media.WriterId = -1; // else it's zero and that's not a user and it breaks the tests diff --git a/src/Umbraco.Tests/Packaging/CreatedPackagesRepositoryTests.cs b/src/Umbraco.Tests/Packaging/CreatedPackagesRepositoryTests.cs index 90a352ad39..d5988439b4 100644 --- a/src/Umbraco.Tests/Packaging/CreatedPackagesRepositoryTests.cs +++ b/src/Umbraco.Tests/Packaging/CreatedPackagesRepositoryTests.cs @@ -6,10 +6,10 @@ using System.Linq; using System.Xml.Linq; using NUnit.Framework; using Umbraco.Core; +using Umbraco.Core.Configuration.Models; using Umbraco.Core.Models.Packaging; using Umbraco.Core.Packaging; using Umbraco.Core.Services; -using Umbraco.Tests.Common.Builders; using Umbraco.Tests.TestHelpers; using Umbraco.Tests.Testing; @@ -41,7 +41,7 @@ namespace Umbraco.Tests.Packaging HostingEnvironment, Factory.GetInstance(), Logger, UmbracoVersion, - Microsoft.Extensions.Options.Options.Create(new GlobalSettingsBuilder().Build()), + Microsoft.Extensions.Options.Options.Create(new GlobalSettings()), "createdPackages.config", //temp paths tempFolderPath: "~/" + _testBaseFolder + "/temp", diff --git a/src/Umbraco.Tests/Packaging/PackageDataInstallationTests.cs b/src/Umbraco.Tests/Packaging/PackageDataInstallationTests.cs index ed1cd5424d..c5c71e0277 100644 --- a/src/Umbraco.Tests/Packaging/PackageDataInstallationTests.cs +++ b/src/Umbraco.Tests/Packaging/PackageDataInstallationTests.cs @@ -6,6 +6,8 @@ using Moq; using NUnit.Framework; using Umbraco.Core; using Umbraco.Core.Composing; +using Umbraco.Core.Composing.CompositionExtensions; +using Umbraco.Core.Configuration.Models; using Umbraco.Core.Logging; using Umbraco.Core.Models; using Umbraco.Core.Models.Packaging; @@ -13,12 +15,10 @@ using Umbraco.Core.Packaging; using Umbraco.Core.Persistence.Dtos; using Umbraco.Core.PropertyEditors; using Umbraco.Core.Services; +using Umbraco.Core.Strings; using Umbraco.Tests.Services; using Umbraco.Tests.Services.Importing; using Umbraco.Tests.Testing; -using Umbraco.Core.Composing.CompositionExtensions; -using Umbraco.Core.Strings; -using Umbraco.Tests.Common.Builders; namespace Umbraco.Tests.Packaging { @@ -713,7 +713,7 @@ namespace Umbraco.Tests.Packaging private void AddLanguages() { - var globalSettings = new GlobalSettingsBuilder().Build(); + var globalSettings = new GlobalSettings(); var norwegian = new Core.Models.Language(globalSettings, "nb-NO"); var english = new Core.Models.Language(globalSettings, "en-GB"); ServiceContext.LocalizationService.Save(norwegian, 0); diff --git a/src/Umbraco.Tests/Packaging/PackageInstallationTest.cs b/src/Umbraco.Tests/Packaging/PackageInstallationTest.cs index 3b4edd28c1..5d0f878ebd 100644 --- a/src/Umbraco.Tests/Packaging/PackageInstallationTest.cs +++ b/src/Umbraco.Tests/Packaging/PackageInstallationTest.cs @@ -5,18 +5,14 @@ using System.Linq; using Moq; using NUnit.Framework; using Umbraco.Core; -using Umbraco.Core.Composing; -using Umbraco.Core.Configuration; +using Umbraco.Core.Configuration.Models; using Umbraco.Core.Hosting; -using Umbraco.Core.IO; -using Umbraco.Core.Models; using Umbraco.Core.Models.Packaging; using Umbraco.Core.Packaging; using Umbraco.Core.PropertyEditors; using Umbraco.Core.Scoping; using Umbraco.Core.Services; using Umbraco.Core.Strings; -using Umbraco.Tests.Common.Builders; using Umbraco.Tests.TestHelpers; using Umbraco.Tests.Testing; using File = System.IO.File; @@ -51,7 +47,7 @@ namespace Umbraco.Tests.Packaging new ConflictingPackageData( ServiceContext.MacroService, ServiceContext.FileService), - Microsoft.Extensions.Options.Options.Create(new GlobalSettingsBuilder().Build())); + Microsoft.Extensions.Options.Options.Create(new GlobalSettings())); private PackageDataInstallation PackageDataInstallation => new PackageDataInstallation( Logger, ServiceContext.FileService, ServiceContext.MacroService, ServiceContext.LocalizationService, @@ -60,7 +56,7 @@ namespace Umbraco.Tests.Packaging Factory.GetInstance(), Factory.GetInstance(), Factory.GetInstance(), - Microsoft.Extensions.Options.Options.Create(new GlobalSettingsBuilder().Build()), + Microsoft.Extensions.Options.Options.Create(new GlobalSettings()), Factory.GetInstance()); private IPackageInstallation PackageInstallation => new PackageInstallation( diff --git a/src/Umbraco.Tests/Persistence/DatabaseContextTests.cs b/src/Umbraco.Tests/Persistence/DatabaseContextTests.cs index 7483b5c611..d7d58f8d4e 100644 --- a/src/Umbraco.Tests/Persistence/DatabaseContextTests.cs +++ b/src/Umbraco.Tests/Persistence/DatabaseContextTests.cs @@ -9,16 +9,14 @@ using NPoco; using NUnit.Framework; using Umbraco.Core; using Umbraco.Core.Configuration; +using Umbraco.Core.Configuration.Models; using Umbraco.Core.Logging; using Umbraco.Core.Migrations.Install; using Umbraco.Core.Persistence; using Umbraco.Core.Persistence.Mappers; using Umbraco.Core.Persistence.SqlSyntax; -using Umbraco.Core.Services; using Umbraco.Persistance.SqlCe; -using Umbraco.Tests.Common.Builders; using Umbraco.Tests.TestHelpers; -using Umbraco.Web.Security; namespace Umbraco.Tests.Persistence { @@ -40,8 +38,8 @@ namespace Umbraco.Tests.Persistence _sqlSyntaxProviders = new[] { (ISqlSyntaxProvider) _sqlCeSyntaxProvider }; _logger = Mock.Of(); _umbracoVersion = TestHelper.GetUmbracoVersion(); - var globalSettings = new GlobalSettingsBuilder().Build(); - var connectionStrings = new ConnectionStringsBuilder().Build(); + var globalSettings = new GlobalSettings(); + var connectionStrings = new ConnectionStrings(); _databaseFactory = new UmbracoDatabaseFactory(_logger, Options.Create(globalSettings), Options.Create(connectionStrings), new Lazy(() => Mock.Of()), TestHelper.DbProviderFactoryCreator); } diff --git a/src/Umbraco.Tests/Persistence/Repositories/ContentTypeRepositoryTest.cs b/src/Umbraco.Tests/Persistence/Repositories/ContentTypeRepositoryTest.cs index 0d6797bd9c..a5074bf758 100644 --- a/src/Umbraco.Tests/Persistence/Repositories/ContentTypeRepositoryTest.cs +++ b/src/Umbraco.Tests/Persistence/Repositories/ContentTypeRepositoryTest.cs @@ -32,7 +32,7 @@ namespace Umbraco.Tests.Persistence.Repositories CreateTestData(); - _globalSettings = Microsoft.Extensions.Options.Options.Create(new GlobalSettingsBuilder().Build()); + _globalSettings = Microsoft.Extensions.Options.Options.Create(new GlobalSettings()); } private DocumentRepository CreateRepository(IScopeAccessor scopeAccessor, out ContentTypeRepository contentTypeRepository) diff --git a/src/Umbraco.Tests/Persistence/Repositories/DocumentRepositoryTest.cs b/src/Umbraco.Tests/Persistence/Repositories/DocumentRepositoryTest.cs index 03cfe1af53..45539094ec 100644 --- a/src/Umbraco.Tests/Persistence/Repositories/DocumentRepositoryTest.cs +++ b/src/Umbraco.Tests/Persistence/Repositories/DocumentRepositoryTest.cs @@ -21,6 +21,7 @@ using Umbraco.Core.Services; using Umbraco.Tests.Testing; using Umbraco.Web.PropertyEditors; using Umbraco.Tests.Common.Builders; +using Umbraco.Core.Configuration.Models; namespace Umbraco.Tests.Persistence.Repositories { @@ -63,7 +64,7 @@ namespace Umbraco.Tests.Persistence.Repositories private DocumentRepository CreateRepository(IScopeAccessor scopeAccessor, out ContentTypeRepository contentTypeRepository, out TemplateRepository templateRepository, AppCaches appCaches = null) { - var globalSettings = Microsoft.Extensions.Options.Options.Create(new GlobalSettingsBuilder().Build()); + var globalSettings = Microsoft.Extensions.Options.Options.Create(new GlobalSettings()); appCaches = appCaches ?? AppCaches; diff --git a/src/Umbraco.Tests/Persistence/Repositories/DomainRepositoryTest.cs b/src/Umbraco.Tests/Persistence/Repositories/DomainRepositoryTest.cs index c3bf9db5de..2e531626cf 100644 --- a/src/Umbraco.Tests/Persistence/Repositories/DomainRepositoryTest.cs +++ b/src/Umbraco.Tests/Persistence/Repositories/DomainRepositoryTest.cs @@ -4,6 +4,7 @@ using System.Data; using System.Linq; using Moq; using NUnit.Framework; +using Umbraco.Core.Configuration.Models; using Umbraco.Core.Configuration.UmbracoSettings; using Umbraco.Core.Models; using Umbraco.Core.Persistence.Repositories.Implement; @@ -22,7 +23,7 @@ namespace Umbraco.Tests.Persistence.Repositories { private DomainRepository CreateRepository(IScopeProvider provider, out ContentTypeRepository contentTypeRepository, out DocumentRepository documentRepository, out LanguageRepository languageRepository) { - var globalSettings = Microsoft.Extensions.Options.Options.Create(new GlobalSettingsBuilder().Build()); + var globalSettings = Microsoft.Extensions.Options.Options.Create(new GlobalSettings()); var accessor = (IScopeAccessor) provider; var templateRepository = new TemplateRepository(accessor, Core.Cache.AppCaches.Disabled, Logger, TestObjects.GetFileSystemsMock(), IOHelper, ShortStringHelper); @@ -51,7 +52,7 @@ namespace Umbraco.Tests.Persistence.Repositories var repo = CreateRepository(provider, out contentTypeRepo, out documentRepo, out langRepo); - var globalSettings = new GlobalSettingsBuilder().Build(); + var globalSettings = new GlobalSettings(); var lang = new Language(globalSettings, isoName); langRepo.Save(lang); @@ -207,7 +208,7 @@ namespace Umbraco.Tests.Persistence.Repositories //more test data var lang1 = langRepo.GetByIsoCode("en-AU"); - var globalSettings = new GlobalSettingsBuilder().Build(); + var globalSettings = new GlobalSettings(); var lang2 = new Language(globalSettings, "es"); langRepo.Save(lang2); var content2 = new Content("test", -1, ct) { CreatorId = 0, WriterId = 0 }; diff --git a/src/Umbraco.Tests/Persistence/Repositories/MediaRepositoryTest.cs b/src/Umbraco.Tests/Persistence/Repositories/MediaRepositoryTest.cs index 119a207cb9..6318627c66 100644 --- a/src/Umbraco.Tests/Persistence/Repositories/MediaRepositoryTest.cs +++ b/src/Umbraco.Tests/Persistence/Repositories/MediaRepositoryTest.cs @@ -2,21 +2,21 @@ using System.Linq; using Moq; using NUnit.Framework; +using Umbraco.Core; using Umbraco.Core.Cache; +using Umbraco.Core.Configuration.Models; using Umbraco.Core.Models; using Umbraco.Core.Models.Entities; using Umbraco.Core.Persistence; +using Umbraco.Core.Persistence.Dtos; using Umbraco.Core.Persistence.Repositories; +using Umbraco.Core.Persistence.Repositories.Implement; +using Umbraco.Core.PropertyEditors; +using Umbraco.Core.Scoping; +using Umbraco.Core.Services; using Umbraco.Tests.TestHelpers; using Umbraco.Tests.TestHelpers.Entities; -using Umbraco.Core.Persistence.Dtos; -using Umbraco.Core.Persistence.Repositories.Implement; -using Umbraco.Core.Scoping; using Umbraco.Tests.Testing; -using Umbraco.Core.Services; -using Umbraco.Core; -using Umbraco.Core.PropertyEditors; -using Umbraco.Tests.Common.Builders; namespace Umbraco.Tests.Persistence.Repositories { @@ -35,7 +35,7 @@ namespace Umbraco.Tests.Persistence.Repositories { appCaches = appCaches ?? AppCaches; var scopeAccessor = (IScopeAccessor) provider; - var globalSettings = new GlobalSettingsBuilder().Build(); + var globalSettings = new GlobalSettings(); var templateRepository = new TemplateRepository(scopeAccessor, appCaches, Logger, TestObjects.GetFileSystemsMock(), IOHelper, ShortStringHelper); var commonRepository = new ContentTypeCommonRepository(scopeAccessor, templateRepository, appCaches, ShortStringHelper); var languageRepository = new LanguageRepository(scopeAccessor, appCaches, Logger, Microsoft.Extensions.Options.Options.Create(globalSettings)); diff --git a/src/Umbraco.Tests/Persistence/Repositories/MediaTypeRepositoryTest.cs b/src/Umbraco.Tests/Persistence/Repositories/MediaTypeRepositoryTest.cs index fac2a6665a..692ac522d9 100644 --- a/src/Umbraco.Tests/Persistence/Repositories/MediaTypeRepositoryTest.cs +++ b/src/Umbraco.Tests/Persistence/Repositories/MediaTypeRepositoryTest.cs @@ -3,12 +3,12 @@ using System.Linq; using NUnit.Framework; using Umbraco.Core; using Umbraco.Core.Cache; +using Umbraco.Core.Configuration.Models; using Umbraco.Core.Models; using Umbraco.Core.Persistence; using Umbraco.Core.Persistence.Dtos; using Umbraco.Core.Persistence.Repositories.Implement; using Umbraco.Core.Scoping; -using Umbraco.Tests.Common.Builders; using Umbraco.Tests.TestHelpers; using Umbraco.Tests.TestHelpers.Entities; using Umbraco.Tests.Testing; @@ -22,7 +22,7 @@ namespace Umbraco.Tests.Persistence.Repositories private MediaTypeRepository CreateRepository(IScopeProvider provider) { var cacheHelper = AppCaches.Disabled; - var globalSettings = new GlobalSettingsBuilder().Build(); + var globalSettings = new GlobalSettings(); var templateRepository = new TemplateRepository((IScopeAccessor)provider, cacheHelper, Logger, TestObjects.GetFileSystemsMock(), IOHelper, ShortStringHelper); var commonRepository = new ContentTypeCommonRepository((IScopeAccessor)provider, templateRepository, AppCaches, ShortStringHelper); var languageRepository = new LanguageRepository((IScopeAccessor)provider, AppCaches, Logger, Microsoft.Extensions.Options.Options.Create(globalSettings)); diff --git a/src/Umbraco.Tests/Persistence/Repositories/MemberRepositoryTest.cs b/src/Umbraco.Tests/Persistence/Repositories/MemberRepositoryTest.cs index 37d5260dc0..2da5b4c283 100644 --- a/src/Umbraco.Tests/Persistence/Repositories/MemberRepositoryTest.cs +++ b/src/Umbraco.Tests/Persistence/Repositories/MemberRepositoryTest.cs @@ -1,14 +1,12 @@ using System; using System.Diagnostics; using System.Linq; -using System.Xml.Linq; using Moq; using NPoco; using NUnit.Framework; using Umbraco.Core; using Umbraco.Core.Cache; -using Umbraco.Core.Configuration.UmbracoSettings; -using Umbraco.Core.Logging; +using Umbraco.Core.Configuration.Models; using Umbraco.Core.Models; using Umbraco.Core.Persistence; using Umbraco.Core.Persistence.Dtos; @@ -17,7 +15,6 @@ using Umbraco.Core.Persistence.Repositories; using Umbraco.Core.Persistence.Repositories.Implement; using Umbraco.Core.PropertyEditors; using Umbraco.Core.Scoping; -using Umbraco.Tests.Common.Builders; using Umbraco.Tests.TestHelpers; using Umbraco.Tests.TestHelpers.Entities; using Umbraco.Tests.Testing; @@ -31,7 +28,7 @@ namespace Umbraco.Tests.Persistence.Repositories private MemberRepository CreateRepository(IScopeProvider provider, out MemberTypeRepository memberTypeRepository, out MemberGroupRepository memberGroupRepository) { var accessor = (IScopeAccessor) provider; - var globalSettings = new GlobalSettingsBuilder().Build(); + var globalSettings = new GlobalSettings(); var templateRepository = Mock.Of(); var commonRepository = new ContentTypeCommonRepository(accessor, templateRepository, AppCaches, ShortStringHelper); var languageRepository = new LanguageRepository(accessor, AppCaches.Disabled, Logger, Microsoft.Extensions.Options.Options.Create(globalSettings)); diff --git a/src/Umbraco.Tests/Persistence/Repositories/MemberTypeRepositoryTest.cs b/src/Umbraco.Tests/Persistence/Repositories/MemberTypeRepositoryTest.cs index be32305cfc..11c9363a4f 100644 --- a/src/Umbraco.Tests/Persistence/Repositories/MemberTypeRepositoryTest.cs +++ b/src/Umbraco.Tests/Persistence/Repositories/MemberTypeRepositoryTest.cs @@ -4,13 +4,13 @@ using Moq; using NUnit.Framework; using Umbraco.Core; using Umbraco.Core.Cache; +using Umbraco.Core.Configuration.Models; using Umbraco.Core.Logging; using Umbraco.Core.Models; using Umbraco.Core.Persistence; using Umbraco.Core.Persistence.Repositories; using Umbraco.Core.Persistence.Repositories.Implement; using Umbraco.Core.Scoping; -using Umbraco.Tests.Common.Builders; using Umbraco.Tests.TestHelpers; using Umbraco.Tests.TestHelpers.Entities; using Umbraco.Tests.Testing; @@ -24,7 +24,7 @@ namespace Umbraco.Tests.Persistence.Repositories private MemberTypeRepository CreateRepository(IScopeProvider provider) { var templateRepository = Mock.Of(); - var globalSettings = new GlobalSettingsBuilder().Build(); + var globalSettings = new GlobalSettings(); var commonRepository = new ContentTypeCommonRepository((IScopeAccessor)provider, templateRepository, AppCaches, ShortStringHelper); var languageRepository = new LanguageRepository((IScopeAccessor)provider, AppCaches.Disabled, Mock.Of(), Microsoft.Extensions.Options.Options.Create(globalSettings)); return new MemberTypeRepository((IScopeAccessor) provider, AppCaches.Disabled, Mock.Of(), commonRepository, languageRepository, ShortStringHelper); diff --git a/src/Umbraco.Tests/Persistence/Repositories/PublicAccessRepositoryTest.cs b/src/Umbraco.Tests/Persistence/Repositories/PublicAccessRepositoryTest.cs index b31d490578..9677ac8982 100644 --- a/src/Umbraco.Tests/Persistence/Repositories/PublicAccessRepositoryTest.cs +++ b/src/Umbraco.Tests/Persistence/Repositories/PublicAccessRepositoryTest.cs @@ -1,15 +1,13 @@ using System; using System.Collections.Generic; using System.Linq; -using Moq; using NUnit.Framework; -using Umbraco.Core.Configuration.UmbracoSettings; +using Umbraco.Core.Configuration.Models; using Umbraco.Core.Models; using Umbraco.Core.Persistence; using Umbraco.Core.Persistence.Repositories.Implement; using Umbraco.Core.PropertyEditors; using Umbraco.Core.Scoping; -using Umbraco.Tests.Common.Builders; using Umbraco.Tests.TestHelpers; using Umbraco.Tests.TestHelpers.Entities; using Umbraco.Tests.Testing; @@ -307,7 +305,7 @@ namespace Umbraco.Tests.Persistence.Repositories private DocumentRepository CreateRepository(IScopeProvider provider, out ContentTypeRepository contentTypeRepository) { var accessor = (IScopeAccessor) provider; - var globalSettings = new GlobalSettingsBuilder().Build(); + var globalSettings = new GlobalSettings(); var templateRepository = new TemplateRepository(accessor, AppCaches, Logger, TestObjects.GetFileSystemsMock(), IOHelper, ShortStringHelper); var tagRepository = new TagRepository(accessor, AppCaches, Logger); var commonRepository = new ContentTypeCommonRepository(accessor, templateRepository, AppCaches, ShortStringHelper); diff --git a/src/Umbraco.Tests/Persistence/Repositories/ScriptRepositoryTest.cs b/src/Umbraco.Tests/Persistence/Repositories/ScriptRepositoryTest.cs index 6a45dafa54..9ff27b8e50 100644 --- a/src/Umbraco.Tests/Persistence/Repositories/ScriptRepositoryTest.cs +++ b/src/Umbraco.Tests/Persistence/Repositories/ScriptRepositoryTest.cs @@ -42,7 +42,7 @@ namespace Umbraco.Tests.Persistence.Repositories private IScriptRepository CreateRepository() { - var globalSettings = new GlobalSettingsBuilder().Build(); + var globalSettings = new GlobalSettings(); return new ScriptRepository(_fileSystems, IOHelper, Microsoft.Extensions.Options.Options.Create(globalSettings)); } diff --git a/src/Umbraco.Tests/Persistence/Repositories/StylesheetRepositoryTest.cs b/src/Umbraco.Tests/Persistence/Repositories/StylesheetRepositoryTest.cs index 028f99f89e..2be1843489 100644 --- a/src/Umbraco.Tests/Persistence/Repositories/StylesheetRepositoryTest.cs +++ b/src/Umbraco.Tests/Persistence/Repositories/StylesheetRepositoryTest.cs @@ -39,7 +39,7 @@ namespace Umbraco.Tests.Persistence.Repositories private IStylesheetRepository CreateRepository() { - var globalSettings = new GlobalSettingsBuilder().Build(); + var globalSettings = new GlobalSettings(); return new StylesheetRepository(_fileSystems, IOHelper, Microsoft.Extensions.Options.Options.Create(globalSettings)); } diff --git a/src/Umbraco.Tests/Persistence/Repositories/TagRepositoryTest.cs b/src/Umbraco.Tests/Persistence/Repositories/TagRepositoryTest.cs index 913fc876fe..9bbfc8a076 100644 --- a/src/Umbraco.Tests/Persistence/Repositories/TagRepositoryTest.cs +++ b/src/Umbraco.Tests/Persistence/Repositories/TagRepositoryTest.cs @@ -3,14 +3,12 @@ using System.Linq; using Moq; using NUnit.Framework; using Umbraco.Core.Cache; -using Umbraco.Core.Configuration.UmbracoSettings; -using Umbraco.Core.IO; +using Umbraco.Core.Configuration.Models; using Umbraco.Core.Models; using Umbraco.Core.Persistence.Repositories; using Umbraco.Core.Persistence.Repositories.Implement; using Umbraco.Core.PropertyEditors; using Umbraco.Core.Scoping; -using Umbraco.Tests.Common.Builders; using Umbraco.Tests.TestHelpers; using Umbraco.Tests.TestHelpers.Entities; using Umbraco.Tests.Testing; @@ -956,7 +954,7 @@ namespace Umbraco.Tests.Persistence.Repositories private DocumentRepository CreateDocumentRepository(IScopeProvider provider, out ContentTypeRepository contentTypeRepository) { var accessor = (IScopeAccessor) provider; - var globalSettings = new GlobalSettingsBuilder().Build(); + var globalSettings = new GlobalSettings(); var templateRepository = new TemplateRepository(accessor, AppCaches.Disabled, Logger, TestObjects.GetFileSystemsMock(), IOHelper, ShortStringHelper); var tagRepository = new TagRepository(accessor, AppCaches.Disabled, Logger); var commonRepository = new ContentTypeCommonRepository(accessor, templateRepository, AppCaches.Disabled, ShortStringHelper); @@ -974,7 +972,7 @@ namespace Umbraco.Tests.Persistence.Repositories private MediaRepository CreateMediaRepository(IScopeProvider provider, out MediaTypeRepository mediaTypeRepository) { var accessor = (IScopeAccessor) provider; - var globalSettings = new GlobalSettingsBuilder().Build(); + var globalSettings = new GlobalSettings(); var templateRepository = new TemplateRepository(accessor, AppCaches.Disabled, Logger, TestObjects.GetFileSystemsMock(), IOHelper, ShortStringHelper); var tagRepository = new TagRepository(accessor, AppCaches.Disabled, Logger); var commonRepository = new ContentTypeCommonRepository(accessor, templateRepository, AppCaches.Disabled, ShortStringHelper); diff --git a/src/Umbraco.Tests/Persistence/Repositories/UserRepositoryTest.cs b/src/Umbraco.Tests/Persistence/Repositories/UserRepositoryTest.cs index 448fce9579..fb017385ce 100644 --- a/src/Umbraco.Tests/Persistence/Repositories/UserRepositoryTest.cs +++ b/src/Umbraco.Tests/Persistence/Repositories/UserRepositoryTest.cs @@ -29,7 +29,7 @@ namespace Umbraco.Tests.Persistence.Repositories private MediaRepository CreateMediaRepository(IScopeProvider provider, out IMediaTypeRepository mediaTypeRepository) { var accessor = (IScopeAccessor) provider; - var globalSettings = new GlobalSettingsBuilder().Build(); + var globalSettings = new GlobalSettings(); var templateRepository = new TemplateRepository(accessor, AppCaches.Disabled, Logger, TestObjects.GetFileSystemsMock(), IOHelper, ShortStringHelper); var commonRepository = new ContentTypeCommonRepository(accessor, templateRepository, AppCaches, ShortStringHelper); var languageRepository = new LanguageRepository(accessor, AppCaches, Logger, Microsoft.Extensions.Options.Options.Create(globalSettings)); @@ -54,7 +54,7 @@ namespace Umbraco.Tests.Persistence.Repositories private DocumentRepository CreateContentRepository(IScopeProvider provider, out IContentTypeRepository contentTypeRepository, out ITemplateRepository templateRepository) { var accessor = (IScopeAccessor) provider; - var globalSettings = new GlobalSettingsBuilder().Build(); + var globalSettings = new GlobalSettings(); templateRepository = new TemplateRepository(accessor, AppCaches, Logger, TestObjects.GetFileSystemsMock(), IOHelper, ShortStringHelper); var tagRepository = new TagRepository(accessor, AppCaches, Logger); var commonRepository = new ContentTypeCommonRepository(accessor, templateRepository, AppCaches, ShortStringHelper); @@ -72,7 +72,7 @@ namespace Umbraco.Tests.Persistence.Repositories private UserRepository CreateRepository(IScopeProvider provider) { var accessor = (IScopeAccessor) provider; - var globalSettings = new GlobalSettingsBuilder().Build(); + var globalSettings = new GlobalSettings(); var repository = new UserRepository(accessor, AppCaches.Disabled, Logger, Mappers, Microsoft.Extensions.Options.Options.Create(globalSettings), Microsoft.Extensions.Options.Options.Create(new UserPasswordConfigurationSettings()), new JsonNetSerializer()); return repository; } diff --git a/src/Umbraco.Tests/Persistence/SqlCeTableByTableTest.cs b/src/Umbraco.Tests/Persistence/SqlCeTableByTableTest.cs index 1fe7153dd0..676e46e06d 100644 --- a/src/Umbraco.Tests/Persistence/SqlCeTableByTableTest.cs +++ b/src/Umbraco.Tests/Persistence/SqlCeTableByTableTest.cs @@ -18,7 +18,7 @@ namespace Umbraco.Tests.Persistence [UmbracoTest(Database = UmbracoTestOptions.Database.NewSchemaPerTest)] public class SqlCeTableByTableTest : TestWithDatabaseBase { - public GlobalSettings GlobalSettings => new GlobalSettingsBuilder().Build(); + public GlobalSettings GlobalSettings => new GlobalSettings(); [Test] public void Can_Create_umbracoNode_Table() diff --git a/src/Umbraco.Tests/PublishedContent/NuCacheChildrenTests.cs b/src/Umbraco.Tests/PublishedContent/NuCacheChildrenTests.cs index 42eb083667..8c29493318 100644 --- a/src/Umbraco.Tests/PublishedContent/NuCacheChildrenTests.cs +++ b/src/Umbraco.Tests/PublishedContent/NuCacheChildrenTests.cs @@ -7,6 +7,7 @@ using Moq; using NUnit.Framework; using Umbraco.Core; using Umbraco.Core.Composing; +using Umbraco.Core.Configuration.Models; using Umbraco.Core.Events; using Umbraco.Core.Hosting; using Umbraco.Core.Logging; @@ -19,7 +20,6 @@ using Umbraco.Core.Services; using Umbraco.Core.Services.Changes; using Umbraco.Core.Strings; using Umbraco.Tests.Common; -using Umbraco.Tests.Common.Builders; using Umbraco.Tests.TestHelpers; using Umbraco.Tests.Testing.Objects; using Umbraco.Web; @@ -138,8 +138,8 @@ namespace Umbraco.Tests.PublishedContent var typeFinder = TestHelper.GetTypeFinder(); - var globalSettings = new GlobalSettingsBuilder().Build(); - var nuCacheSettings = new NuCacheSettingsBuilder().Build(); + var globalSettings = new GlobalSettings(); + var nuCacheSettings = new NuCacheSettings(); // at last, create the complete NuCache snapshot service! var options = new PublishedSnapshotServiceOptions { IgnoreLocalDb = true }; diff --git a/src/Umbraco.Tests/PublishedContent/NuCacheTests.cs b/src/Umbraco.Tests/PublishedContent/NuCacheTests.cs index f21ad1a3db..19f91932ce 100644 --- a/src/Umbraco.Tests/PublishedContent/NuCacheTests.cs +++ b/src/Umbraco.Tests/PublishedContent/NuCacheTests.cs @@ -6,6 +6,7 @@ using Moq; using NUnit.Framework; using Umbraco.Core; using Umbraco.Core.Composing; +using Umbraco.Core.Configuration.Models; using Umbraco.Core.Events; using Umbraco.Core.Logging; using Umbraco.Core.Models; @@ -17,7 +18,6 @@ using Umbraco.Core.Services; using Umbraco.Core.Services.Changes; using Umbraco.Core.Strings; using Umbraco.Tests.Common; -using Umbraco.Tests.Common.Builders; using Umbraco.Tests.TestHelpers; using Umbraco.Tests.Testing.Objects; using Umbraco.Web; @@ -178,8 +178,8 @@ namespace Umbraco.Tests.PublishedContent var typeFinder = TestHelper.GetTypeFinder(); - var globalSettings = new GlobalSettingsBuilder().Build(); - var nuCacheSettings = new NuCacheSettingsBuilder().Build(); + var globalSettings = new GlobalSettings(); + var nuCacheSettings = new NuCacheSettings(); // at last, create the complete NuCache snapshot service! var options = new PublishedSnapshotServiceOptions { IgnoreLocalDb = true }; diff --git a/src/Umbraco.Tests/PublishedContent/PublishedContentLanguageVariantTests.cs b/src/Umbraco.Tests/PublishedContent/PublishedContentLanguageVariantTests.cs index 50e82998f9..d02a49385d 100644 --- a/src/Umbraco.Tests/PublishedContent/PublishedContentLanguageVariantTests.cs +++ b/src/Umbraco.Tests/PublishedContent/PublishedContentLanguageVariantTests.cs @@ -4,10 +4,10 @@ using System.Collections.ObjectModel; using System.Linq; using Moq; using NUnit.Framework; +using Umbraco.Core.Configuration.Models; using Umbraco.Core.Models; using Umbraco.Core.Models.PublishedContent; using Umbraco.Core.Services; -using Umbraco.Tests.Common.Builders; using Umbraco.Tests.TestHelpers; using Umbraco.Tests.Testing; using Umbraco.Web; @@ -39,7 +39,7 @@ namespace Umbraco.Tests.PublishedContent // Spanish falls back to English and Italian to Spanish (and then to English). // French has no fall back. // Danish, Swedish and Norweigan create an invalid loop. - var globalSettings = new GlobalSettingsBuilder().Build(); + var globalSettings = new GlobalSettings(); var languages = new List { new Language(globalSettings, "en-US") { Id = 1, CultureName = "English", IsDefault = true }, diff --git a/src/Umbraco.Tests/Routing/BaseUrlProviderTest.cs b/src/Umbraco.Tests/Routing/BaseUrlProviderTest.cs index a4f472898e..9860b5739f 100644 --- a/src/Umbraco.Tests/Routing/BaseUrlProviderTest.cs +++ b/src/Umbraco.Tests/Routing/BaseUrlProviderTest.cs @@ -1,9 +1,9 @@ using System.Linq; using Moq; using Umbraco.Core; +using Umbraco.Core.Configuration.Models; 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; @@ -24,8 +24,8 @@ namespace Umbraco.Tests.Routing protected override void ComposeSettings() { - var contentSettings = new ContentSettingsBuilder().Build(); - var userPasswordConfigurationSettings = new UserPasswordConfigurationSettingsBuilder().Build(); + var contentSettings = new ContentSettings(); + var userPasswordConfigurationSettings = new UserPasswordConfigurationSettings(); Composition.Register(x => Microsoft.Extensions.Options.Options.Create(contentSettings)); Composition.Register(x => Microsoft.Extensions.Options.Options.Create(userPasswordConfigurationSettings)); @@ -33,7 +33,7 @@ namespace Umbraco.Tests.Routing protected IPublishedUrlProvider GetPublishedUrlProvider(IUmbracoContext umbracoContext, DefaultUrlProvider urlProvider) { - var webRoutingSettings = new WebRoutingSettingsBuilder().Build(); + var webRoutingSettings = new WebRoutingSettings(); return new UrlProvider( new TestUmbracoContextAccessor(umbracoContext), Microsoft.Extensions.Options.Options.Create(webRoutingSettings), diff --git a/src/Umbraco.Tests/Routing/ContentFinderByIdTests.cs b/src/Umbraco.Tests/Routing/ContentFinderByIdTests.cs index 069aead6b3..100c398b7f 100644 --- a/src/Umbraco.Tests/Routing/ContentFinderByIdTests.cs +++ b/src/Umbraco.Tests/Routing/ContentFinderByIdTests.cs @@ -1,6 +1,6 @@ using NUnit.Framework; using Umbraco.Core; -using Umbraco.Tests.Common.Builders; +using Umbraco.Core.Configuration.Models; using Umbraco.Tests.TestHelpers; using Umbraco.Web; using Umbraco.Web.Routing; @@ -18,7 +18,7 @@ namespace Umbraco.Tests.Routing var umbracoContext = GetUmbracoContext(urlAsString); var publishedRouter = CreatePublishedRouter(); var frequest = publishedRouter.CreateRequest(umbracoContext); - var webRoutingSettings = new WebRoutingSettingsBuilder().Build(); + var webRoutingSettings = new WebRoutingSettings(); var lookup = new ContentFinderByIdPath(Microsoft.Extensions.Options.Options.Create(webRoutingSettings), Logger, Factory.GetInstance()); diff --git a/src/Umbraco.Tests/Routing/ContentFinderByUrlAndTemplateTests.cs b/src/Umbraco.Tests/Routing/ContentFinderByUrlAndTemplateTests.cs index 14a7ec3ab1..a8a5f68df8 100644 --- a/src/Umbraco.Tests/Routing/ContentFinderByUrlAndTemplateTests.cs +++ b/src/Umbraco.Tests/Routing/ContentFinderByUrlAndTemplateTests.cs @@ -1,14 +1,9 @@ -using Moq; -using NUnit.Framework; -using Umbraco.Core; -using Umbraco.Core.Composing; -using Umbraco.Core.Configuration; -using Umbraco.Tests.TestHelpers; -using Umbraco.Web.Routing; +using NUnit.Framework; +using Umbraco.Core.Configuration.Models; using Umbraco.Core.Models; +using Umbraco.Tests.TestHelpers; using Umbraco.Tests.Testing; -using Current = Umbraco.Web.Composing.Current; -using Umbraco.Tests.Common.Builders; +using Umbraco.Web.Routing; namespace Umbraco.Tests.Routing { @@ -31,16 +26,14 @@ namespace Umbraco.Tests.Routing [TestCase("/home/Sub1.aspx/blah")] public void Match_Document_By_Url_With_Template(string urlAsString) { - var globalSettings = new GlobalSettingsBuilder() - .WithHideTopLevelNodeFromPath(false) - .Build(); + var globalSettings = new GlobalSettings { HideTopLevelNodeFromPath = false }; var template1 = CreateTemplate("test"); var template2 = CreateTemplate("blah"); var umbracoContext = GetUmbracoContext(urlAsString, template1.Id, globalSettings: globalSettings); var publishedRouter = CreatePublishedRouter(); var frequest = publishedRouter.CreateRequest(umbracoContext); - var webRoutingSettings = new WebRoutingSettingsBuilder().Build(); + var webRoutingSettings = new WebRoutingSettings(); var lookup = new ContentFinderByUrlAndTemplate(Logger, ServiceContext.FileService, ServiceContext.ContentTypeService, Microsoft.Extensions.Options.Options.Create(webRoutingSettings)); var result = lookup.TryFindContent(frequest); diff --git a/src/Umbraco.Tests/Routing/ContentFinderByUrlTests.cs b/src/Umbraco.Tests/Routing/ContentFinderByUrlTests.cs index 0614d4a2bb..9564181889 100644 --- a/src/Umbraco.Tests/Routing/ContentFinderByUrlTests.cs +++ b/src/Umbraco.Tests/Routing/ContentFinderByUrlTests.cs @@ -1,11 +1,7 @@ using System; using System.Globalization; -using Moq; using NUnit.Framework; -using Umbraco.Core; -using Umbraco.Web.Composing; -using Umbraco.Core.Configuration; -using Umbraco.Tests.Common.Builders; +using Umbraco.Core.Configuration.Models; using Umbraco.Tests.TestHelpers; using Umbraco.Tests.Testing; using Umbraco.Web.Routing; @@ -29,7 +25,7 @@ namespace Umbraco.Tests.Routing [TestCase("/test-page", 1172)] public void Match_Document_By_Url_Hide_Top_Level(string urlString, int expectedId) { - var globalSettings = new GlobalSettingsBuilder().WithHideTopLevelNodeFromPath(true).Build(); + var globalSettings = new GlobalSettings { HideTopLevelNodeFromPath = true }; var snapshotService = CreatePublishedSnapshotService(globalSettings); var umbracoContext = GetUmbracoContext(urlString, globalSettings:globalSettings, snapshotService: snapshotService); @@ -64,7 +60,7 @@ namespace Umbraco.Tests.Routing [TestCase("/home/Sub1.aspx", 1173)] public void Match_Document_By_Url(string urlString, int expectedId) { - var globalSettings = new GlobalSettingsBuilder().WithHideTopLevelNodeFromPath(false).Build(); + var globalSettings = new GlobalSettings { HideTopLevelNodeFromPath = false }; var umbracoContext = GetUmbracoContext(urlString, globalSettings:globalSettings); var publishedRouter = CreatePublishedRouter(); @@ -88,7 +84,7 @@ namespace Umbraco.Tests.Routing [TestCase("/home/sub1/custom-sub-4-with-æøå", 1180)] public void Match_Document_By_Url_With_Special_Characters(string urlString, int expectedId) { - var globalSettings = new GlobalSettingsBuilder().WithHideTopLevelNodeFromPath(false).Build(); + var globalSettings = new GlobalSettings { HideTopLevelNodeFromPath = false }; var umbracoContext = GetUmbracoContext(urlString, globalSettings:globalSettings); var publishedRouter = CreatePublishedRouter(); @@ -114,7 +110,7 @@ namespace Umbraco.Tests.Routing [TestCase("/home/sub1/custom-sub-4-with-æøå", 1180)] public void Match_Document_By_Url_With_Special_Characters_Using_Hostname(string urlString, int expectedId) { - var globalSettings = new GlobalSettingsBuilder().WithHideTopLevelNodeFromPath(false).Build(); + var globalSettings = new GlobalSettings { HideTopLevelNodeFromPath = false }; var umbracoContext = GetUmbracoContext(urlString, globalSettings:globalSettings); var publishedRouter = CreatePublishedRouter(); @@ -142,7 +138,7 @@ namespace Umbraco.Tests.Routing [TestCase("/æøå/home/sub1/custom-sub-4-with-æøå", 1180)] public void Match_Document_By_Url_With_Special_Characters_In_Hostname(string urlString, int expectedId) { - var globalSettings = new GlobalSettingsBuilder().WithHideTopLevelNodeFromPath(false).Build(); + var globalSettings = new GlobalSettings { HideTopLevelNodeFromPath = false }; var umbracoContext = GetUmbracoContext(urlString, globalSettings:globalSettings); var publishedRouter = CreatePublishedRouter(); diff --git a/src/Umbraco.Tests/Routing/ContentFinderByUrlWithDomainsTests.cs b/src/Umbraco.Tests/Routing/ContentFinderByUrlWithDomainsTests.cs index 622df53d9e..b7ab02eeff 100644 --- a/src/Umbraco.Tests/Routing/ContentFinderByUrlWithDomainsTests.cs +++ b/src/Umbraco.Tests/Routing/ContentFinderByUrlWithDomainsTests.cs @@ -3,6 +3,7 @@ using NUnit.Framework; using Umbraco.Core; using Umbraco.Core.Composing; using Umbraco.Core.Configuration; +using Umbraco.Core.Configuration.Models; using Umbraco.Core.Models; using Umbraco.Tests.Common.Builders; using Umbraco.Tests.TestHelpers; @@ -128,7 +129,7 @@ namespace Umbraco.Tests.Routing { SetDomains3(); - var globalSettings = new GlobalSettingsBuilder().WithHideTopLevelNodeFromPath(true).Build(); + var globalSettings = new GlobalSettings { HideTopLevelNodeFromPath = true }; var umbracoContext = GetUmbracoContext(url, globalSettings:globalSettings); var publishedRouter = CreatePublishedRouter(Factory); @@ -169,7 +170,7 @@ namespace Umbraco.Tests.Routing // defaults depend on test environment expectedCulture = expectedCulture ?? System.Threading.Thread.CurrentThread.CurrentUICulture.Name; - var globalSettings = new GlobalSettingsBuilder().WithHideTopLevelNodeFromPath(true).Build(); + var globalSettings = new GlobalSettings { HideTopLevelNodeFromPath = true }; var umbracoContext = GetUmbracoContext(url, globalSettings:globalSettings); var publishedRouter = CreatePublishedRouter(Factory); diff --git a/src/Umbraco.Tests/Routing/DomainsAndCulturesTests.cs b/src/Umbraco.Tests/Routing/DomainsAndCulturesTests.cs index 0d39092b88..fd5d12b672 100644 --- a/src/Umbraco.Tests/Routing/DomainsAndCulturesTests.cs +++ b/src/Umbraco.Tests/Routing/DomainsAndCulturesTests.cs @@ -1,12 +1,9 @@ -using Moq; -using NUnit.Framework; -using Umbraco.Core.Models; -using Umbraco.Tests.TestHelpers; -using Umbraco.Web.Routing; +using NUnit.Framework; using Umbraco.Core; using Umbraco.Core.Composing; -using Umbraco.Core.Configuration; -using Umbraco.Tests.Common.Builders; +using Umbraco.Core.Configuration.Models; +using Umbraco.Core.Models; +using Umbraco.Web.Routing; namespace Umbraco.Tests.Routing { @@ -267,8 +264,7 @@ namespace Umbraco.Tests.Routing { SetDomains1(); - - var globalSettings = new GlobalSettingsBuilder().WithHideTopLevelNodeFromPath(false).Build(); + var globalSettings = new GlobalSettings { HideTopLevelNodeFromPath = false }; var umbracoContext = GetUmbracoContext(inputUrl, globalSettings:globalSettings); var publishedRouter = CreatePublishedRouter(Factory); @@ -316,7 +312,7 @@ namespace Umbraco.Tests.Routing // defaults depend on test environment expectedCulture = expectedCulture ?? System.Threading.Thread.CurrentThread.CurrentUICulture.Name; - var globalSettings = new GlobalSettingsBuilder().WithHideTopLevelNodeFromPath(false).Build(); + var globalSettings = new GlobalSettings { HideTopLevelNodeFromPath = false }; var umbracoContext = GetUmbracoContext(inputUrl, globalSettings:globalSettings); var publishedRouter = CreatePublishedRouter(Factory); @@ -370,7 +366,7 @@ namespace Umbraco.Tests.Routing { SetDomains3(); - var globalSettings = new GlobalSettingsBuilder().WithHideTopLevelNodeFromPath(false).Build(); + var globalSettings = new GlobalSettings { HideTopLevelNodeFromPath = false }; var umbracoContext = GetUmbracoContext(inputUrl, globalSettings:globalSettings); var publishedRouter = CreatePublishedRouter(Factory); var frequest = publishedRouter.CreateRequest(umbracoContext); diff --git a/src/Umbraco.Tests/Routing/GetContentUrlsTests.cs b/src/Umbraco.Tests/Routing/GetContentUrlsTests.cs index 27027c007f..c2c4c2f05a 100644 --- a/src/Umbraco.Tests/Routing/GetContentUrlsTests.cs +++ b/src/Umbraco.Tests/Routing/GetContentUrlsTests.cs @@ -8,7 +8,6 @@ using Umbraco.Core.Models; using Umbraco.Core.Models.PublishedContent; using Umbraco.Core.Services; using Umbraco.Tests.Common; -using Umbraco.Tests.Common.Builders; using Umbraco.Tests.TestHelpers.Entities; using Umbraco.Web.Routing; @@ -25,9 +24,9 @@ namespace Umbraco.Tests.Routing { base.SetUp(); - _globalSettings = new GlobalSettingsBuilder().Build(); - _webRoutingSettings = new WebRoutingSettingsBuilder().Build(); - _requestHandlerSettings = new RequestHandlerSettingsBuilder().WithAddTrailingSlash(true).Build(); + _globalSettings = new GlobalSettings(); + _webRoutingSettings = new WebRoutingSettings(); + _requestHandlerSettings = new RequestHandlerSettings { AddTrailingSlash = true }; } private ILocalizedTextService GetTextService() diff --git a/src/Umbraco.Tests/Routing/MediaUrlProviderTests.cs b/src/Umbraco.Tests/Routing/MediaUrlProviderTests.cs index b134934ee9..44bb782291 100644 --- a/src/Umbraco.Tests/Routing/MediaUrlProviderTests.cs +++ b/src/Umbraco.Tests/Routing/MediaUrlProviderTests.cs @@ -4,7 +4,7 @@ using Moq; using Newtonsoft.Json; using NUnit.Framework; using Umbraco.Core; -using Umbraco.Core.Configuration.UmbracoSettings; +using Umbraco.Core.Configuration.Models; using Umbraco.Core.IO; using Umbraco.Core.Logging; using Umbraco.Core.Models; @@ -13,7 +13,6 @@ using Umbraco.Core.PropertyEditors; using Umbraco.Core.PropertyEditors.ValueConverters; using Umbraco.Core.Services; using Umbraco.Tests.Common; -using Umbraco.Tests.Common.Builders; using Umbraco.Tests.PublishedContent; using Umbraco.Tests.TestHelpers; using Umbraco.Tests.Testing; @@ -35,12 +34,12 @@ namespace Umbraco.Tests.Routing var logger = Mock.Of(); var mediaFileSystemMock = Mock.Of(); - var contentSettings = new ContentSettingsBuilder().Build(); + var contentSettings = new ContentSettings(); var dataTypeService = Mock.Of(); var propertyEditors = new MediaUrlGeneratorCollection(new IMediaUrlGenerator[] { - new FileUploadPropertyEditor(logger, mediaFileSystemMock, Microsoft.Extensions.Options.Options.Create(contentSettings), dataTypeService, LocalizationService, LocalizedTextService, ShortStringHelper), - new ImageCropperPropertyEditor(logger, mediaFileSystemMock, Microsoft.Extensions.Options.Options.Create(contentSettings), dataTypeService, LocalizationService, IOHelper, ShortStringHelper, LocalizedTextService), + new FileUploadPropertyEditor(logger, mediaFileSystemMock, Microsoft.Extensions.Options.Options.Create(contentSettings), dataTypeService, LocalizationService, LocalizedTextService, ShortStringHelper, UploadAutoFillProperties), + new ImageCropperPropertyEditor(logger, mediaFileSystemMock, Microsoft.Extensions.Options.Options.Create(contentSettings), dataTypeService, LocalizationService, IOHelper, ShortStringHelper, LocalizedTextService, UploadAutoFillProperties), }); _mediaUrlProvider = new DefaultMediaUrlProvider(propertyEditors, UriUtility); } @@ -150,7 +149,7 @@ namespace Umbraco.Tests.Routing private IPublishedUrlProvider GetPublishedUrlProvider(IUmbracoContext umbracoContext) { - var webRoutingSettings = new WebRoutingSettingsBuilder().Build(); + var webRoutingSettings = new WebRoutingSettings(); return new UrlProvider( new TestUmbracoContextAccessor(umbracoContext), Microsoft.Extensions.Options.Options.Create(webRoutingSettings), diff --git a/src/Umbraco.Tests/Routing/RenderRouteHandlerTests.cs b/src/Umbraco.Tests/Routing/RenderRouteHandlerTests.cs index 5082919dc1..9ef758db8b 100644 --- a/src/Umbraco.Tests/Routing/RenderRouteHandlerTests.cs +++ b/src/Umbraco.Tests/Routing/RenderRouteHandlerTests.cs @@ -73,7 +73,7 @@ namespace Umbraco.Tests.Routing var umbracoApiControllerTypes = new UmbracoApiControllerTypeCollection(Composition.TypeLoader.GetUmbracoApiControllers()); Composition.RegisterUnique(umbracoApiControllerTypes); - var requestHandlerSettings = new RequestHandlerSettingsBuilder().Build(); + var requestHandlerSettings = new RequestHandlerSettings(); Composition.RegisterUnique(_ => new DefaultShortStringHelper(Microsoft.Extensions.Options.Options.Create(requestHandlerSettings))); } diff --git a/src/Umbraco.Tests/Routing/RoutableDocumentFilterTests.cs b/src/Umbraco.Tests/Routing/RoutableDocumentFilterTests.cs index c0b83b08cb..e3d6477988 100644 --- a/src/Umbraco.Tests/Routing/RoutableDocumentFilterTests.cs +++ b/src/Umbraco.Tests/Routing/RoutableDocumentFilterTests.cs @@ -2,6 +2,7 @@ using System.Web.Mvc; using System.Web.Routing; using NUnit.Framework; +using Umbraco.Core.Configuration.Models; using Umbraco.Tests.Common.Builders; using Umbraco.Tests.TestHelpers; using Umbraco.Web; @@ -51,10 +52,7 @@ namespace Umbraco.Tests.Routing { //reset the app config, we only want to test routes not the hard coded paths - var globalSettings = new GlobalSettingsBuilder() - .WithReservedPaths(string.Empty) - .WithReservedUrls(String.Empty) - .Build(); + var globalSettings = new GlobalSettings { ReservedPaths = string.Empty, ReservedUrls = string.Empty }; var routableDocFilter = new RoutableDocumentFilter(globalSettings, IOHelper); diff --git a/src/Umbraco.Tests/Routing/UmbracoModuleTests.cs b/src/Umbraco.Tests/Routing/UmbracoModuleTests.cs index ceea358a42..31f627827b 100644 --- a/src/Umbraco.Tests/Routing/UmbracoModuleTests.cs +++ b/src/Umbraco.Tests/Routing/UmbracoModuleTests.cs @@ -24,9 +24,8 @@ namespace Umbraco.Tests.Routing // FIXME: be able to get the UmbracoModule from the container. any reason settings were from testobjects? //create the module var logger = Mock.Of(); - var globalSettings = new GlobalSettingsBuilder() - .WithReservedPaths((GlobalSettings.StaticReservedPaths + "~/umbraco")) - .Build(); + + var globalSettings = new GlobalSettings { ReservedPaths = GlobalSettings.StaticReservedPaths + "~/umbraco" }; var runtime = Umbraco.Core.RuntimeState.Booting(); _module = new UmbracoInjectedModule diff --git a/src/Umbraco.Tests/Routing/UrlProviderWithHideTopLevelNodeFromPathTests.cs b/src/Umbraco.Tests/Routing/UrlProviderWithHideTopLevelNodeFromPathTests.cs index 2c5bfc52e9..18e0480a7b 100644 --- a/src/Umbraco.Tests/Routing/UrlProviderWithHideTopLevelNodeFromPathTests.cs +++ b/src/Umbraco.Tests/Routing/UrlProviderWithHideTopLevelNodeFromPathTests.cs @@ -1,7 +1,6 @@ using NUnit.Framework; using Umbraco.Core.Configuration.Models; using Umbraco.Tests.Common; -using Umbraco.Tests.Common.Builders; using Umbraco.Tests.Testing; using Umbraco.Web.Routing; @@ -15,7 +14,7 @@ namespace Umbraco.Tests.Routing public override void SetUp() { - _globalSettings = new GlobalSettingsBuilder().WithHideTopLevelNodeFromPath(HideTopLevelNodeFromPath).Build(); + _globalSettings = new GlobalSettings { HideTopLevelNodeFromPath = HideTopLevelNodeFromPath }; base.SetUp(); PublishedSnapshotService = CreatePublishedSnapshotService(_globalSettings); @@ -40,8 +39,7 @@ namespace Umbraco.Tests.Routing [TestCase(1172, "/test-page/")] // not hidden because not first root public void Get_Url_Hiding_Top_Level(int nodeId, string niceUrlMatch) { - - var requestHandlerSettings = new RequestHandlerSettingsBuilder().WithAddTrailingSlash(true).Build(); + var requestHandlerSettings = new RequestHandlerSettings { AddTrailingSlash = true }; var umbracoContext = GetUmbracoContext("/test", 1111, globalSettings: _globalSettings, snapshotService:PublishedSnapshotService); var umbracoContextAccessor = new TestUmbracoContextAccessor(umbracoContext); diff --git a/src/Umbraco.Tests/Routing/UrlProviderWithoutHideTopLevelNodeFromPathTests.cs b/src/Umbraco.Tests/Routing/UrlProviderWithoutHideTopLevelNodeFromPathTests.cs index e8f3bf97fd..ea64aa43f2 100644 --- a/src/Umbraco.Tests/Routing/UrlProviderWithoutHideTopLevelNodeFromPathTests.cs +++ b/src/Umbraco.Tests/Routing/UrlProviderWithoutHideTopLevelNodeFromPathTests.cs @@ -8,7 +8,6 @@ using Umbraco.Core.Configuration.Models; using Umbraco.Core.Models; using Umbraco.Core.Models.PublishedContent; using Umbraco.Tests.Common; -using Umbraco.Tests.Common.Builders; using Umbraco.Tests.LegacyXmlPublishedCache; using Umbraco.Tests.PublishedContent; using Umbraco.Tests.Testing; @@ -25,7 +24,7 @@ namespace Umbraco.Tests.Routing public UrlProviderWithoutHideTopLevelNodeFromPathTests() { - _globalSettings = new GlobalSettingsBuilder().WithHideTopLevelNodeFromPath(HideTopLevelNodeFromPath).Build(); + _globalSettings = new GlobalSettings { HideTopLevelNodeFromPath = HideTopLevelNodeFromPath }; } protected override bool HideTopLevelNodeFromPath => false; @@ -43,7 +42,7 @@ namespace Umbraco.Tests.Routing [Test] public void Ensure_Cache_Is_Correct() { - var requestHandlerSettings = new RequestHandlerSettingsBuilder().WithAddTrailingSlash(false).Build(); + var requestHandlerSettings = new RequestHandlerSettings { AddTrailingSlash = false }; var umbracoContext = GetUmbracoContext("/test", 1111, globalSettings: _globalSettings); var umbracoContextAccessor = new TestUmbracoContextAccessor(umbracoContext); @@ -104,7 +103,7 @@ namespace Umbraco.Tests.Routing [TestCase(1172, "/test-page/")] public void Get_Url_Not_Hiding_Top_Level(int nodeId, string niceUrlMatch) { - var requestHandlerSettings = new RequestHandlerSettingsBuilder().WithAddTrailingSlash(true).Build(); + var requestHandlerSettings = new RequestHandlerSettings { AddTrailingSlash = true }; var umbracoContext = GetUmbracoContext("/test", 1111, globalSettings: _globalSettings); var umbracoContextAccessor = new TestUmbracoContextAccessor(umbracoContext); @@ -124,7 +123,7 @@ namespace Umbraco.Tests.Routing { const string currentUri = "http://example.us/test"; - var requestHandlerSettings = new RequestHandlerSettingsBuilder().WithAddTrailingSlash(true).Build(); + var requestHandlerSettings = new RequestHandlerSettings { AddTrailingSlash = true }; var contentType = new PublishedContentType(Guid.NewGuid(), 666, "alias", PublishedItemType.Content, Enumerable.Empty(), Enumerable.Empty(), ContentVariation.Culture); var publishedContent = new SolidPublishedContent(contentType) { Id = 1234 }; @@ -170,7 +169,7 @@ namespace Umbraco.Tests.Routing { const string currentUri = "http://example.fr/test"; - var requestHandlerSettings = new RequestHandlerSettingsBuilder().WithAddTrailingSlash(true).Build(); + var requestHandlerSettings = new RequestHandlerSettings { AddTrailingSlash = true }; var contentType = new PublishedContentType(Guid.NewGuid(), 666, "alias", PublishedItemType.Content, Enumerable.Empty(), Enumerable.Empty(), ContentVariation.Culture); var publishedContent = new SolidPublishedContent(contentType) { Id = 1234 }; @@ -225,7 +224,7 @@ namespace Umbraco.Tests.Routing { const string currentUri = "http://example.us/test"; - var requestHandlerSettings = new RequestHandlerSettingsBuilder().WithAddTrailingSlash(true).Build(); + var requestHandlerSettings = new RequestHandlerSettings { AddTrailingSlash = true }; var contentType = new PublishedContentType(Guid.NewGuid(), 666, "alias", PublishedItemType.Content, Enumerable.Empty(), Enumerable.Empty(), ContentVariation.Culture); var publishedContent = new SolidPublishedContent(contentType) { Id = 1234 }; @@ -276,7 +275,7 @@ namespace Umbraco.Tests.Routing [Test] public void Get_Url_Relative_Or_Absolute() { - var requestHandlerSettings = new RequestHandlerSettingsBuilder().WithAddTrailingSlash(true).Build(); + var requestHandlerSettings = new RequestHandlerSettings { AddTrailingSlash = true }; var umbracoContext = GetUmbracoContext("http://example.com/test", 1111, globalSettings: _globalSettings); var umbracoContextAccessor = new TestUmbracoContextAccessor(umbracoContext); @@ -296,7 +295,7 @@ namespace Umbraco.Tests.Routing [Test] public void Get_Url_Unpublished() { - var requestHandlerSettings = new RequestHandlerSettingsBuilder().Build(); + var requestHandlerSettings = new RequestHandlerSettings(); var urlProvider = new DefaultUrlProvider(Microsoft.Extensions.Options.Options.Create(requestHandlerSettings), Logger, diff --git a/src/Umbraco.Tests/Routing/UrlRoutesTests.cs b/src/Umbraco.Tests/Routing/UrlRoutesTests.cs index d0dd708561..4894e1ad7e 100644 --- a/src/Umbraco.Tests/Routing/UrlRoutesTests.cs +++ b/src/Umbraco.Tests/Routing/UrlRoutesTests.cs @@ -4,6 +4,7 @@ using NUnit.Framework; using Umbraco.Core; using Umbraco.Core.Composing; using Umbraco.Core.Configuration; +using Umbraco.Core.Configuration.Models; using Umbraco.Core.Models; using Umbraco.Tests.Common.Builders; using Umbraco.Tests.LegacyXmlPublishedCache; @@ -197,7 +198,7 @@ DetermineRouteById(id): [TestCase(2006, false, "/x/b/e")] public void GetRouteByIdNoHide(int id, bool hide, string expected) { - var globalSettings = new GlobalSettingsBuilder().WithHideTopLevelNodeFromPath(hide).Build(); + var globalSettings = new GlobalSettings { HideTopLevelNodeFromPath = hide }; var umbracoContext = GetUmbracoContext("/test", 0, globalSettings: globalSettings); var cache = umbracoContext.Content as PublishedContentCache; @@ -220,7 +221,7 @@ DetermineRouteById(id): [TestCase(2006, true, "/b/e")] // risky! public void GetRouteByIdHide(int id, bool hide, string expected) { - var globalSettings = new GlobalSettingsBuilder().WithHideTopLevelNodeFromPath(hide).Build(); + var globalSettings = new GlobalSettings { HideTopLevelNodeFromPath = hide }; var snapshotService = CreatePublishedSnapshotService(globalSettings); var umbracoContext = GetUmbracoContext("/test", 0, globalSettings: globalSettings, snapshotService: snapshotService); @@ -234,7 +235,7 @@ DetermineRouteById(id): [Test] public void GetRouteByIdCache() { - var globalSettings = new GlobalSettingsBuilder().WithHideTopLevelNodeFromPath(false).Build(); + var globalSettings = new GlobalSettings { HideTopLevelNodeFromPath = false }; var snapshotService = CreatePublishedSnapshotService(globalSettings); var umbracoContext = GetUmbracoContext("/test", 0, globalSettings:globalSettings, snapshotService: snapshotService); @@ -265,7 +266,7 @@ DetermineRouteById(id): [TestCase("/x", false, 2000)] public void GetByRouteNoHide(string route, bool hide, int expected) { - var globalSettings = new GlobalSettingsBuilder().WithHideTopLevelNodeFromPath(hide).Build(); + var globalSettings = new GlobalSettings { HideTopLevelNodeFromPath = hide }; var snapshotService = CreatePublishedSnapshotService(globalSettings); var umbracoContext = GetUmbracoContext("/test", 0, globalSettings:globalSettings, snapshotService: snapshotService); @@ -296,7 +297,7 @@ DetermineRouteById(id): [TestCase("/b/c", true, 1002)] // (hence the 2005 collision) public void GetByRouteHide(string route, bool hide, int expected) { - var globalSettings = new GlobalSettingsBuilder().WithHideTopLevelNodeFromPath(hide).Build(); + var globalSettings = new GlobalSettings { HideTopLevelNodeFromPath = hide }; var snapshotService = CreatePublishedSnapshotService(globalSettings); var umbracoContext = GetUmbracoContext("/test", 0, globalSettings:globalSettings, snapshotService: snapshotService); @@ -319,7 +320,7 @@ DetermineRouteById(id): [Test] public void GetByRouteCache() { - var globalSettings = new GlobalSettingsBuilder().WithHideTopLevelNodeFromPath(false).Build(); + var globalSettings = new GlobalSettings { HideTopLevelNodeFromPath = false }; var snapshotService = CreatePublishedSnapshotService(globalSettings); var umbracoContext = GetUmbracoContext("/test", 0, globalSettings:globalSettings, snapshotService:snapshotService); diff --git a/src/Umbraco.Tests/Routing/UrlsProviderWithDomainsTests.cs b/src/Umbraco.Tests/Routing/UrlsProviderWithDomainsTests.cs index a960cdba53..b5142ae480 100644 --- a/src/Umbraco.Tests/Routing/UrlsProviderWithDomainsTests.cs +++ b/src/Umbraco.Tests/Routing/UrlsProviderWithDomainsTests.cs @@ -4,11 +4,11 @@ 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.Core.Services; using Umbraco.Tests.Common; -using Umbraco.Tests.Common.Builders; using Umbraco.Tests.LegacyXmlPublishedCache; using Umbraco.Web; using Umbraco.Web.Routing; @@ -177,9 +177,8 @@ 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().WithAddTrailingSlash(true).Build(); - - var globalSettings = new GlobalSettingsBuilder().WithHideTopLevelNodeFromPath(false).Build(); + var requestHandlerSettings = new RequestHandlerSettings { AddTrailingSlash = true }; + var globalSettings = new GlobalSettings { HideTopLevelNodeFromPath = false }; var umbracoContext = GetUmbracoContext("/test", 1111, globalSettings: globalSettings); var umbracoContextAccessor = new TestUmbracoContextAccessor(umbracoContext); @@ -212,8 +211,8 @@ 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().WithAddTrailingSlash(true).Build(); - var globalSettings = new GlobalSettingsBuilder().WithHideTopLevelNodeFromPath(false).Build(); + var requestHandlerSettings = new RequestHandlerSettings { AddTrailingSlash = true }; + var globalSettings = new GlobalSettings { HideTopLevelNodeFromPath = false }; var umbracoContext = GetUmbracoContext("/test", 1111, globalSettings: globalSettings); var umbracoContextAccessor = new TestUmbracoContextAccessor(umbracoContext); @@ -238,9 +237,8 @@ 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().WithAddTrailingSlash(true).Build(); - - var globalSettings = new GlobalSettingsBuilder().WithHideTopLevelNodeFromPath(false).Build(); + var requestHandlerSettings = new RequestHandlerSettings { AddTrailingSlash = true }; + var globalSettings = new GlobalSettings { HideTopLevelNodeFromPath = false }; var umbracoContext = GetUmbracoContext("/test", 1111, globalSettings: globalSettings); var umbracoContextAccessor = new TestUmbracoContextAccessor(umbracoContext); @@ -271,9 +269,8 @@ 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().WithAddTrailingSlash(true).Build(); - - var globalSettings = new GlobalSettingsBuilder().WithHideTopLevelNodeFromPath(false).Build(); + var requestHandlerSettings = new RequestHandlerSettings { AddTrailingSlash = true }; + var globalSettings = new GlobalSettings { HideTopLevelNodeFromPath = false }; var umbracoContext = GetUmbracoContext("/test", 1111, globalSettings: globalSettings); var umbracoContextAccessor = new TestUmbracoContextAccessor(umbracoContext); @@ -295,9 +292,8 @@ namespace Umbraco.Tests.Routing [Test] public void Get_Url_DomainsAndCache() { - var requestHandlerSettings = new RequestHandlerSettingsBuilder().WithAddTrailingSlash(true).Build(); - - var globalSettings = new GlobalSettingsBuilder().WithHideTopLevelNodeFromPath(false).Build(); + var requestHandlerSettings = new RequestHandlerSettings { AddTrailingSlash = true }; + var globalSettings = new GlobalSettings { HideTopLevelNodeFromPath = false }; var umbracoContext = GetUmbracoContext("/test", 1111, globalSettings: globalSettings); var umbracoContextAccessor = new TestUmbracoContextAccessor(umbracoContext); @@ -361,9 +357,8 @@ namespace Umbraco.Tests.Routing [Test] public void Get_Url_Relative_Or_Absolute() { - var requestHandlerSettings = new RequestHandlerSettingsBuilder().WithAddTrailingSlash(true).Build(); - - var globalSettings = new GlobalSettingsBuilder().WithHideTopLevelNodeFromPath(false).Build(); + var requestHandlerSettings = new RequestHandlerSettings { AddTrailingSlash = true }; + var globalSettings = new GlobalSettings { HideTopLevelNodeFromPath = false }; var umbracoContext = GetUmbracoContext("http://domain1.com/test", 1111, globalSettings: globalSettings); var umbracoContextAccessor = new TestUmbracoContextAccessor(umbracoContext); @@ -388,9 +383,8 @@ namespace Umbraco.Tests.Routing [Test] public void Get_Url_Alternate() { - var requestHandlerSettings = new RequestHandlerSettingsBuilder().WithAddTrailingSlash(true).Build(); - - var globalSettings = new GlobalSettingsBuilder().WithHideTopLevelNodeFromPath(false).Build(); + var requestHandlerSettings = new RequestHandlerSettings { AddTrailingSlash = true }; + var globalSettings = new GlobalSettings { HideTopLevelNodeFromPath = false }; var umbracoContext = GetUmbracoContext("http://domain1.com/en/test", 1111, globalSettings: globalSettings); var umbracoContextAccessor = new TestUmbracoContextAccessor(umbracoContext); @@ -417,7 +411,7 @@ namespace Umbraco.Tests.Routing private IPublishedUrlProvider GetPublishedUrlProvider(IUmbracoContext umbracoContext, DefaultUrlProvider urlProvider) { - var webRoutingSettings = new WebRoutingSettingsBuilder().Build(); + var webRoutingSettings = new WebRoutingSettings(); return new UrlProvider( new TestUmbracoContextAccessor(umbracoContext), Microsoft.Extensions.Options.Options.Create(webRoutingSettings), diff --git a/src/Umbraco.Tests/Routing/UrlsWithNestedDomains.cs b/src/Umbraco.Tests/Routing/UrlsWithNestedDomains.cs index 03faa70d8c..d4fac0cf9b 100644 --- a/src/Umbraco.Tests/Routing/UrlsWithNestedDomains.cs +++ b/src/Umbraco.Tests/Routing/UrlsWithNestedDomains.cs @@ -3,14 +3,14 @@ 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.Web.Routing; using Umbraco.Core.Services; +using Umbraco.Tests.Common; using Umbraco.Tests.LegacyXmlPublishedCache; using Umbraco.Web; -using Umbraco.Tests.Common; -using Umbraco.Tests.Common.Builders; +using Umbraco.Web.Routing; namespace Umbraco.Tests.Routing { @@ -32,8 +32,8 @@ namespace Umbraco.Tests.Routing [Test] public void DoNotPolluteCache() { - var globalSettings = new GlobalSettingsBuilder().WithHideTopLevelNodeFromPath(false).Build(); - var requestHandlerSettings = new RequestHandlerSettingsBuilder().WithAddTrailingSlash(true).Build(); + var requestHandlerSettings = new RequestHandlerSettings { AddTrailingSlash = true }; + var globalSettings = new GlobalSettings { HideTopLevelNodeFromPath = false }; SetDomains1(); @@ -97,7 +97,7 @@ namespace Umbraco.Tests.Routing private IPublishedUrlProvider GetPublishedUrlProvider(IUmbracoContext umbracoContext, DefaultUrlProvider urlProvider) { - var webRoutingSettings = new WebRoutingSettingsBuilder().Build(); + var webRoutingSettings = new WebRoutingSettings(); return new UrlProvider( new TestUmbracoContextAccessor(umbracoContext), Microsoft.Extensions.Options.Options.Create(webRoutingSettings), diff --git a/src/Umbraco.Tests/Runtimes/StandaloneTests.cs b/src/Umbraco.Tests/Runtimes/StandaloneTests.cs index 7c834d7cf3..aee0275fe0 100644 --- a/src/Umbraco.Tests/Runtimes/StandaloneTests.cs +++ b/src/Umbraco.Tests/Runtimes/StandaloneTests.cs @@ -39,6 +39,7 @@ using Umbraco.Tests.Common.Composing; using Umbraco.Core.Media; using Umbraco.Tests.Common.Builders; using Microsoft.Extensions.Options; +using Umbraco.Core.Configuration.Models; namespace Umbraco.Tests.Runtimes { @@ -65,8 +66,8 @@ namespace Umbraco.Tests.Runtimes var profiler = new LogProfiler(logger); var profilingLogger = new ProfilingLogger(logger, profiler); var appCaches = AppCaches.Disabled; - var globalSettings = new GlobalSettingsBuilder().Build(); - var connectionStrings = new ConnectionStringsBuilder().Build(); + var globalSettings = new GlobalSettings(); + var connectionStrings = new ConnectionStrings(); var typeFinder = TestHelper.GetTypeFinder(); var databaseFactory = new UmbracoDatabaseFactory(logger, Options.Create(globalSettings), Options.Create(connectionStrings), new Lazy(() => factory.GetInstance()), TestHelper.DbProviderFactoryCreator); var ioHelper = TestHelper.IOHelper; @@ -120,12 +121,12 @@ namespace Umbraco.Tests.Runtimes // 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(); + var contentSettings = new ContentSettings(); + var coreDebugSettings = new CoreDebugSettings(); + var nuCacheSettings = new NuCacheSettings(); + var requestHandlerSettings = new RequestHandlerSettings(); + var userPasswordConfigurationSettings = new UserPasswordConfigurationSettings(); + var webRoutingSettings = new WebRoutingSettings(); composition.Register(x => Options.Create(globalSettings)); composition.Register(x => Options.Create(contentSettings)); @@ -292,8 +293,8 @@ namespace Umbraco.Tests.Runtimes composition.RegisterEssentials(logger, profiler, profilingLogger, mainDom, appCaches, databaseFactory, typeLoader, runtimeState, typeFinder, ioHelper, umbracoVersion, TestHelper.DbProviderFactoryCreator, hostingEnvironment, backOfficeInfo); // create the core runtime and have it compose itself - var globalSettings = new GlobalSettingsBuilder().Build(); - var connectionStrings = new ConnectionStringsBuilder().Build(); + var globalSettings = new GlobalSettings(); + var connectionStrings = new ConnectionStrings(); var coreRuntime = new CoreRuntime(globalSettings, connectionStrings, umbracoVersion, ioHelper, logger, profiler, new AspNetUmbracoBootPermissionChecker(), hostingEnvironment, backOfficeInfo, TestHelper.DbProviderFactoryCreator, TestHelper.MainDom, typeFinder, AppCaches.NoCache); diff --git a/src/Umbraco.Tests/Scoping/ScopeEventDispatcherTests.cs b/src/Umbraco.Tests/Scoping/ScopeEventDispatcherTests.cs index 5ca6308bcd..f5748e7dba 100644 --- a/src/Umbraco.Tests/Scoping/ScopeEventDispatcherTests.cs +++ b/src/Umbraco.Tests/Scoping/ScopeEventDispatcherTests.cs @@ -5,18 +5,18 @@ using NUnit.Framework; using Umbraco.Core; using Umbraco.Core.Cache; using Umbraco.Core.Composing; +using Umbraco.Core.Configuration.Models; using Umbraco.Core.Events; -using Umbraco.Core.Models; using Umbraco.Core.IO; using Umbraco.Core.Logging; -using Umbraco.Core.Scoping; -using Umbraco.Tests.TestHelpers; -using Umbraco.Tests.TestHelpers.Entities; +using Umbraco.Core.Models; using Umbraco.Core.Persistence.Mappers; +using Umbraco.Core.Scoping; using Umbraco.Core.Services; using Umbraco.Tests.Components; +using Umbraco.Tests.TestHelpers; +using Umbraco.Tests.TestHelpers.Entities; using Current = Umbraco.Web.Composing.Current; -using Umbraco.Tests.Common.Builders; namespace Umbraco.Tests.Scoping { @@ -39,7 +39,7 @@ namespace Umbraco.Tests.Scoping _testObjects = new TestObjects(register); - var globalSettings = new GlobalSettingsBuilder().Build(); + var globalSettings = new GlobalSettings(); composition.RegisterUnique(factory => new FileSystems(factory, factory.TryGetInstance(), TestHelper.IOHelper, Microsoft.Extensions.Options.Options.Create(globalSettings), TestHelper.GetHostingEnvironment())); composition.WithCollectionBuilder(); diff --git a/src/Umbraco.Tests/Scoping/ScopedNuCacheTests.cs b/src/Umbraco.Tests/Scoping/ScopedNuCacheTests.cs index a669e543f2..4bce0e92ed 100644 --- a/src/Umbraco.Tests/Scoping/ScopedNuCacheTests.cs +++ b/src/Umbraco.Tests/Scoping/ScopedNuCacheTests.cs @@ -81,7 +81,7 @@ namespace Umbraco.Tests.Scoping var typeFinder = TestHelper.GetTypeFinder(); - var nuCacheSettings = new NuCacheSettingsBuilder().Build(); + var nuCacheSettings = new NuCacheSettings(); return new PublishedSnapshotService( options, @@ -96,7 +96,7 @@ namespace Umbraco.Tests.Scoping documentRepository, mediaRepository, memberRepository, DefaultCultureAccessor, new DatabaseDataSource(Mock.Of()), - Microsoft.Extensions.Options.Options.Create(globalSettings ?? new GlobalSettingsBuilder().Build()), + Microsoft.Extensions.Options.Options.Create(globalSettings ?? new GlobalSettings()), Factory.GetInstance(), new NoopPublishedModelFactory(), new UrlSegmentProviderCollection(new[] { new DefaultUrlSegmentProvider(ShortStringHelper) }), diff --git a/src/Umbraco.Tests/Scoping/ScopedRepositoryTests.cs b/src/Umbraco.Tests/Scoping/ScopedRepositoryTests.cs index da90d7fefa..15e9162708 100644 --- a/src/Umbraco.Tests/Scoping/ScopedRepositoryTests.cs +++ b/src/Umbraco.Tests/Scoping/ScopedRepositoryTests.cs @@ -33,7 +33,7 @@ namespace Umbraco.Tests.Scoping { base.SetUp(); - _globalSettings = new GlobalSettingsBuilder().Build(); + _globalSettings = new GlobalSettings(); } protected override void Compose() diff --git a/src/Umbraco.Tests/Scoping/ScopedXmlTests.cs b/src/Umbraco.Tests/Scoping/ScopedXmlTests.cs index 59610e43bd..21c9c2c67c 100644 --- a/src/Umbraco.Tests/Scoping/ScopedXmlTests.cs +++ b/src/Umbraco.Tests/Scoping/ScopedXmlTests.cs @@ -5,6 +5,7 @@ using Moq; using NUnit.Framework; using Umbraco.Core; using Umbraco.Core.Cache; +using Umbraco.Core.Configuration.Models; using Umbraco.Core.Events; using Umbraco.Core.Logging; using Umbraco.Core.Models; @@ -44,9 +45,9 @@ namespace Umbraco.Tests.Scoping protected override void ComposeSettings() { - var contentSettings = new ContentSettingsBuilder().Build(); - var globalSettings = new GlobalSettingsBuilder().Build(); - var userPasswordConfigurationSettings = new UserPasswordConfigurationSettingsBuilder().Build(); + var contentSettings = new ContentSettings(); + var globalSettings = new GlobalSettings(); + var userPasswordConfigurationSettings = new UserPasswordConfigurationSettings(); Composition.Register(x => Microsoft.Extensions.Options.Options.Create(contentSettings)); Composition.Register(x => Microsoft.Extensions.Options.Options.Create(globalSettings)); diff --git a/src/Umbraco.Tests/Security/OwinDataProtectorTokenProviderTests.cs b/src/Umbraco.Tests/Security/OwinDataProtectorTokenProviderTests.cs index 4874545571..66965ca632 100644 --- a/src/Umbraco.Tests/Security/OwinDataProtectorTokenProviderTests.cs +++ b/src/Umbraco.Tests/Security/OwinDataProtectorTokenProviderTests.cs @@ -229,7 +229,7 @@ namespace Umbraco.Tests.Security _mockDataProtector.Setup(x => x.Protect(It.IsAny())).Returns((byte[] originalBytes) => originalBytes); _mockDataProtector.Setup(x => x.Unprotect(It.IsAny())).Returns((byte[] originalBytes) => originalBytes); - var globalSettings = new GlobalSettingsBuilder().Build(); + var globalSettings = new GlobalSettings(); _mockUserManager = new Mock>(new Mock>().Object, null, null, null, null, null, null, null, null); diff --git a/src/Umbraco.Tests/Services/ContentServiceEventTests.cs b/src/Umbraco.Tests/Services/ContentServiceEventTests.cs index 208afe5b4b..c22679a820 100644 --- a/src/Umbraco.Tests/Services/ContentServiceEventTests.cs +++ b/src/Umbraco.Tests/Services/ContentServiceEventTests.cs @@ -26,7 +26,7 @@ namespace Umbraco.Tests.Services { base.SetUp(); ContentRepositoryBase.ThrowOnWarning = true; - _globalSettings = new GlobalSettingsBuilder().Build(); + _globalSettings = new GlobalSettings(); } public override void TearDown() diff --git a/src/Umbraco.Tests/Services/ContentServicePerformanceTest.cs b/src/Umbraco.Tests/Services/ContentServicePerformanceTest.cs index 02f6ad330f..24aac13ade 100644 --- a/src/Umbraco.Tests/Services/ContentServicePerformanceTest.cs +++ b/src/Umbraco.Tests/Services/ContentServicePerformanceTest.cs @@ -2,21 +2,17 @@ using System.Collections.Generic; using System.Diagnostics; using System.Linq; -using Moq; using NUnit.Framework; using Umbraco.Core; using Umbraco.Core.Cache; using Umbraco.Core.Composing; -using Umbraco.Core.Configuration.UmbracoSettings; -using Umbraco.Core.IO; +using Umbraco.Core.Configuration.Models; using Umbraco.Core.Logging; using Umbraco.Core.Models; using Umbraco.Core.Persistence.Dtos; -using Umbraco.Core.Persistence.Repositories; using Umbraco.Core.Persistence.Repositories.Implement; using Umbraco.Core.PropertyEditors; using Umbraco.Core.Scoping; -using Umbraco.Tests.Common.Builders; using Umbraco.Tests.TestHelpers; using Umbraco.Tests.TestHelpers.Entities; using Umbraco.Tests.TestHelpers.Stubs; @@ -44,7 +40,7 @@ namespace Umbraco.Tests.Services private DocumentRepository CreateDocumentRepository(IScopeProvider provider) { var accessor = (IScopeAccessor)provider; - var globalSettings = new GlobalSettingsBuilder().Build(); + var globalSettings = new GlobalSettings(); var tRepository = new TemplateRepository((IScopeAccessor) provider, AppCaches.Disabled, Logger, TestObjects.GetFileSystemsMock(), IOHelper, ShortStringHelper); var tagRepo = new TagRepository(accessor, AppCaches.Disabled, Logger); var commonRepository = new ContentTypeCommonRepository(accessor, tRepository, AppCaches, ShortStringHelper); diff --git a/src/Umbraco.Tests/Services/ContentServicePublishBranchTests.cs b/src/Umbraco.Tests/Services/ContentServicePublishBranchTests.cs index 35bbaa5f68..51adfbeae9 100644 --- a/src/Umbraco.Tests/Services/ContentServicePublishBranchTests.cs +++ b/src/Umbraco.Tests/Services/ContentServicePublishBranchTests.cs @@ -3,6 +3,7 @@ using System.Collections.Generic; using System.Linq; using NUnit.Framework; using Umbraco.Core; +using Umbraco.Core.Configuration.Models; using Umbraco.Core.Models; using Umbraco.Core.Services; using Umbraco.Tests.Common.Builders; @@ -426,7 +427,7 @@ namespace Umbraco.Tests.Services private void CreateTypes(out IContentType iContentType, out IContentType vContentType) { - var globalSettings = new GlobalSettingsBuilder().Build(); + var globalSettings = new GlobalSettings(); var langDe = new Language(globalSettings, "de") { IsDefault = true }; ServiceContext.LocalizationService.Save(langDe); diff --git a/src/Umbraco.Tests/Services/ContentServiceTagsTests.cs b/src/Umbraco.Tests/Services/ContentServiceTagsTests.cs index 10bd82cbde..d443951cad 100644 --- a/src/Umbraco.Tests/Services/ContentServiceTagsTests.cs +++ b/src/Umbraco.Tests/Services/ContentServiceTagsTests.cs @@ -29,7 +29,7 @@ namespace Umbraco.Tests.Services { base.SetUp(); ContentRepositoryBase.ThrowOnWarning = true; - _globalSettings = new GlobalSettingsBuilder().Build(); + _globalSettings = new GlobalSettings(); } public override void TearDown() diff --git a/src/Umbraco.Tests/Services/ContentServiceTests.cs b/src/Umbraco.Tests/Services/ContentServiceTests.cs index 82d7235388..49767e02dd 100644 --- a/src/Umbraco.Tests/Services/ContentServiceTests.cs +++ b/src/Umbraco.Tests/Services/ContentServiceTests.cs @@ -46,7 +46,7 @@ namespace Umbraco.Tests.Services { base.SetUp(); ContentRepositoryBase.ThrowOnWarning = true; - _globalSettings = new GlobalSettingsBuilder().Build(); + _globalSettings = new GlobalSettings(); } public override void TearDown() diff --git a/src/Umbraco.Tests/Services/ContentTypeServiceVariantsTests.cs b/src/Umbraco.Tests/Services/ContentTypeServiceVariantsTests.cs index 7e88e85360..22f3c8d605 100644 --- a/src/Umbraco.Tests/Services/ContentTypeServiceVariantsTests.cs +++ b/src/Umbraco.Tests/Services/ContentTypeServiceVariantsTests.cs @@ -60,7 +60,7 @@ namespace Umbraco.Tests.Services var typeFinder = TestHelper.GetTypeFinder(); - var nuCacheSettings = new NuCacheSettingsBuilder().Build(); + var nuCacheSettings = new NuCacheSettings(); return new PublishedSnapshotService( options, @@ -75,7 +75,7 @@ namespace Umbraco.Tests.Services documentRepository, mediaRepository, memberRepository, DefaultCultureAccessor, new DatabaseDataSource(Mock.Of()), - Microsoft.Extensions.Options.Options.Create(globalSettings ?? new GlobalSettingsBuilder().Build()), + Microsoft.Extensions.Options.Options.Create(globalSettings ?? new GlobalSettings()), Factory.GetInstance(), Mock.Of(), new UrlSegmentProviderCollection(new[] { new DefaultUrlSegmentProvider(ShortStringHelper) }), @@ -311,7 +311,7 @@ namespace Umbraco.Tests.Services var nlContentName = "Content nl-NL"; var nlCulture = "nl-NL"; - var globalSettings = new GlobalSettingsBuilder().Build(); + var globalSettings = new GlobalSettings(); ServiceContext.LocalizationService.Save(new Language(globalSettings, nlCulture)); @@ -669,7 +669,7 @@ namespace Umbraco.Tests.Services // can change it to variant and back // can then switch one property to variant - var globalSettings = new GlobalSettingsBuilder().Build(); + var globalSettings = new GlobalSettings(); var languageEn = new Language(globalSettings, "en") { IsDefault = true }; ServiceContext.LocalizationService.Save(languageEn); @@ -1264,7 +1264,7 @@ namespace Umbraco.Tests.Services private void CreateFrenchAndEnglishLangs() { - var globalSettings = new GlobalSettingsBuilder().Build(); + var globalSettings = new GlobalSettings(); var languageEn = new Language(globalSettings, "en") { IsDefault = true }; ServiceContext.LocalizationService.Save(languageEn); var languageFr = new Language(globalSettings, "fr"); diff --git a/src/Umbraco.Tests/Services/EntityServiceTests.cs b/src/Umbraco.Tests/Services/EntityServiceTests.cs index 8be2dcc962..ca2f123deb 100644 --- a/src/Umbraco.Tests/Services/EntityServiceTests.cs +++ b/src/Umbraco.Tests/Services/EntityServiceTests.cs @@ -4,6 +4,7 @@ using System.Linq; using System.Threading; using NUnit.Framework; using Umbraco.Core; +using Umbraco.Core.Configuration.Models; using Umbraco.Core.Models; using Umbraco.Core.Models.Entities; using Umbraco.Core.Persistence.DatabaseModelDefinitions; @@ -32,7 +33,7 @@ namespace Umbraco.Tests.Services if (_langFr == null && _langEs == null) { - var globalSettings = new GlobalSettingsBuilder().Build(); + var globalSettings = new GlobalSettings(); _langFr = new Language(globalSettings, "fr-FR"); _langEs = new Language(globalSettings, "es-ES"); ServiceContext.LocalizationService.Save(_langFr); diff --git a/src/Umbraco.Tests/Services/EntityXmlSerializerTests.cs b/src/Umbraco.Tests/Services/EntityXmlSerializerTests.cs index 8497208d93..1e8e6bd17d 100644 --- a/src/Umbraco.Tests/Services/EntityXmlSerializerTests.cs +++ b/src/Umbraco.Tests/Services/EntityXmlSerializerTests.cs @@ -23,7 +23,7 @@ namespace Umbraco.Tests.Services public override void SetUp() { base.SetUp(); - _globalSettings = new GlobalSettingsBuilder().Build(); + _globalSettings = new GlobalSettings(); } [Test] diff --git a/src/Umbraco.Tests/Services/LocalizationServiceTests.cs b/src/Umbraco.Tests/Services/LocalizationServiceTests.cs index 2785cdea27..4d3c5fdddc 100644 --- a/src/Umbraco.Tests/Services/LocalizationServiceTests.cs +++ b/src/Umbraco.Tests/Services/LocalizationServiceTests.cs @@ -36,7 +36,7 @@ namespace Umbraco.Tests.Services public override void SetUp() { base.SetUp(); - _globalSettings = new GlobalSettingsBuilder().Build(); + _globalSettings = new GlobalSettings(); } [Test] diff --git a/src/Umbraco.Tests/Services/SectionServiceTests.cs b/src/Umbraco.Tests/Services/SectionServiceTests.cs index 82fda67003..032d317ebc 100644 --- a/src/Umbraco.Tests/Services/SectionServiceTests.cs +++ b/src/Umbraco.Tests/Services/SectionServiceTests.cs @@ -3,6 +3,7 @@ using System.Linq; using System.Threading; using Umbraco.Core; using Umbraco.Core.Composing; +using Umbraco.Core.Configuration.Models; using Umbraco.Core.Models.Membership; using Umbraco.Tests.Common.Builders; using Umbraco.Tests.Testing; @@ -35,7 +36,7 @@ namespace Umbraco.Tests.Services private IUser CreateTestUser() { - var globalSettings = new GlobalSettingsBuilder().Build(); + var globalSettings = new GlobalSettings(); var user = new User(globalSettings) { Name = "Test user", diff --git a/src/Umbraco.Tests/Services/UserServiceTests.cs b/src/Umbraco.Tests/Services/UserServiceTests.cs index fef2fa30af..76eda054bc 100644 --- a/src/Umbraco.Tests/Services/UserServiceTests.cs +++ b/src/Umbraco.Tests/Services/UserServiceTests.cs @@ -6,6 +6,7 @@ using System.Text; using System.Threading; using NUnit.Framework; using Umbraco.Core; +using Umbraco.Core.Configuration.Models; using Umbraco.Core.Models; using Umbraco.Core.Models.Membership; using Umbraco.Core.Persistence.Querying; @@ -721,7 +722,7 @@ namespace Umbraco.Tests.Services var hash = new HMACSHA1(); hash.Key = Encoding.Unicode.GetBytes(password); var encodedPassword = Convert.ToBase64String(hash.ComputeHash(Encoding.Unicode.GetBytes(password))); - var globalSettings = new GlobalSettingsBuilder().Build(); + var globalSettings = new GlobalSettings(); var membershipUser = new User(globalSettings, "JohnDoe", "john@umbraco.io", encodedPassword, encodedPassword); userService.Save(membershipUser); diff --git a/src/Umbraco.Tests/Templates/HtmlImageSourceParserTests.cs b/src/Umbraco.Tests/Templates/HtmlImageSourceParserTests.cs index 4dc7ad0278..4a796e67af 100644 --- a/src/Umbraco.Tests/Templates/HtmlImageSourceParserTests.cs +++ b/src/Umbraco.Tests/Templates/HtmlImageSourceParserTests.cs @@ -1,20 +1,16 @@ -using Umbraco.Core.Logging; +using System; +using System.Diagnostics; +using System.Linq; using Moq; using NUnit.Framework; -using Umbraco.Web.Templates; -using Umbraco.Web; -using Umbraco.Core.Models.PublishedContent; -using Umbraco.Web.Routing; -using Umbraco.Tests.Testing.Objects; -using System.Web; -using System; -using System.Linq; -using Umbraco.Core.Models; using Umbraco.Core; -using System.Diagnostics; -using Umbraco.Tests.TestHelpers; +using Umbraco.Core.Configuration.Models; +using Umbraco.Core.Models; +using Umbraco.Core.Models.PublishedContent; using Umbraco.Tests.Common; -using Umbraco.Tests.Common.Builders; +using Umbraco.Tests.Testing.Objects; +using Umbraco.Web.Routing; +using Umbraco.Web.Templates; namespace Umbraco.Tests.Templates { @@ -77,7 +73,7 @@ namespace Umbraco.Tests.Templates var umbracoContextFactory = TestUmbracoContextFactory.Create( umbracoContextAccessor: umbracoContextAccessor); - var webRoutingSettings = new WebRoutingSettingsBuilder().Build(); + var webRoutingSettings = new WebRoutingSettings(); var publishedUrlProvider = new UrlProvider(umbracoContextAccessor, Microsoft.Extensions.Options.Options.Create(webRoutingSettings), new UrlProviderCollection(Enumerable.Empty()), diff --git a/src/Umbraco.Tests/Templates/HtmlLocalLinkParserTests.cs b/src/Umbraco.Tests/Templates/HtmlLocalLinkParserTests.cs index 375dc91d19..60fd2f103c 100644 --- a/src/Umbraco.Tests/Templates/HtmlLocalLinkParserTests.cs +++ b/src/Umbraco.Tests/Templates/HtmlLocalLinkParserTests.cs @@ -1,16 +1,13 @@ -using Moq; -using NUnit.Framework; -using System; +using System; using System.Linq; -using System.Web; +using Moq; +using NUnit.Framework; using Umbraco.Core; +using Umbraco.Core.Configuration.Models; using Umbraco.Core.Models; using Umbraco.Core.Models.PublishedContent; using Umbraco.Tests.Common; -using Umbraco.Tests.Common.Builders; -using Umbraco.Tests.TestHelpers; using Umbraco.Tests.Testing.Objects; -using Umbraco.Web; using Umbraco.Web.Routing; using Umbraco.Web.Templates; @@ -73,7 +70,7 @@ namespace Umbraco.Tests.Templates var umbracoContextFactory = TestUmbracoContextFactory.Create( umbracoContextAccessor: umbracoContextAccessor); - var webRoutingSettings = new WebRoutingSettingsBuilder().Build(); + var webRoutingSettings = new WebRoutingSettings(); var publishedUrlProvider = new UrlProvider(umbracoContextAccessor, Microsoft.Extensions.Options.Options.Create(webRoutingSettings), new UrlProviderCollection(new []{contentUrlProvider.Object}), diff --git a/src/Umbraco.Tests/TestHelpers/BaseWebTest.cs b/src/Umbraco.Tests/TestHelpers/BaseWebTest.cs index e51a10da50..8f18d96a97 100644 --- a/src/Umbraco.Tests/TestHelpers/BaseWebTest.cs +++ b/src/Umbraco.Tests/TestHelpers/BaseWebTest.cs @@ -93,7 +93,7 @@ namespace Umbraco.Tests.TestHelpers internal PublishedRouter CreatePublishedRouter(IFactory container = null, ContentFinderCollection contentFinders = null) { - var webRoutingSettings = new WebRoutingSettingsBuilder().Build(); + var webRoutingSettings = new WebRoutingSettings(); return CreatePublishedRouter(webRoutingSettings, container ?? Factory, contentFinders); } diff --git a/src/Umbraco.Tests/TestHelpers/Entities/MockedUser.cs b/src/Umbraco.Tests/TestHelpers/Entities/MockedUser.cs index 4977b5d81a..4707c4af38 100644 --- a/src/Umbraco.Tests/TestHelpers/Entities/MockedUser.cs +++ b/src/Umbraco.Tests/TestHelpers/Entities/MockedUser.cs @@ -1,8 +1,8 @@ -using Moq; -using System; +using System; using System.Collections.Generic; +using Moq; +using Umbraco.Core.Configuration.Models; using Umbraco.Core.Models.Membership; -using Umbraco.Tests.Common.Builders; namespace Umbraco.Tests.TestHelpers.Entities { @@ -24,7 +24,7 @@ namespace Umbraco.Tests.TestHelpers.Entities internal static User CreateUser(string suffix = "") { - var globalSettings = new GlobalSettingsBuilder().Build(); + var globalSettings = new GlobalSettings(); var user = new User(globalSettings) { Language = "en", @@ -43,7 +43,7 @@ namespace Umbraco.Tests.TestHelpers.Entities { var list = new List(); - var globalSettings = new GlobalSettingsBuilder().Build(); + var globalSettings = new GlobalSettings(); for (int i = 0; i < amount; i++) { var name = "Member No-" + i; diff --git a/src/Umbraco.Tests/TestHelpers/TestHelper.cs b/src/Umbraco.Tests/TestHelpers/TestHelper.cs index 041c9d0c21..4677d9b9b2 100644 --- a/src/Umbraco.Tests/TestHelpers/TestHelper.cs +++ b/src/Umbraco.Tests/TestHelpers/TestHelper.cs @@ -104,7 +104,7 @@ namespace Umbraco.Tests.TestHelpers public static IMainDom MainDom => _testHelperInternal.MainDom; public static UriUtility UriUtility => _testHelperInternal.UriUtility; - public static IEmailSender EmailSender { get; } = new EmailSender(Options.Create(new GlobalSettingsBuilder().Build())); + public static IEmailSender EmailSender { get; } = new EmailSender(Options.Create(new GlobalSettings())); /// diff --git a/src/Umbraco.Tests/TestHelpers/TestObjects.cs b/src/Umbraco.Tests/TestHelpers/TestObjects.cs index e101bb33a3..8e6dadaaeb 100644 --- a/src/Umbraco.Tests/TestHelpers/TestObjects.cs +++ b/src/Umbraco.Tests/TestHelpers/TestObjects.cs @@ -82,10 +82,10 @@ namespace Umbraco.Tests.TestHelpers public IScopeProvider GetScopeProvider(ILogger logger, ITypeFinder typeFinder = null, FileSystems fileSystems = null, IUmbracoDatabaseFactory databaseFactory = null) { - var globalSettings = new GlobalSettingsBuilder().Build(); + var globalSettings = new GlobalSettings(); var connectionString = ConfigurationManager.ConnectionStrings[Constants.System.UmbracoConnectionName].ConnectionString; - var connectionStrings = new ConnectionStringsBuilder().WithUmbracoConnectionString(connectionString).Build(); - var coreDebugSettings = new CoreDebugSettingsBuilder().Build(); + var connectionStrings = new ConnectionStrings { UmbracoConnectionString = new ConfigConnectionString(Constants.System.UmbracoConnectionName, connectionString) }; + var coreDebugSettings = new CoreDebugSettings(); if (databaseFactory == null) { diff --git a/src/Umbraco.Tests/TestHelpers/TestWithDatabaseBase.cs b/src/Umbraco.Tests/TestHelpers/TestWithDatabaseBase.cs index fe41ac2d9c..70a0d7a0db 100644 --- a/src/Umbraco.Tests/TestHelpers/TestWithDatabaseBase.cs +++ b/src/Umbraco.Tests/TestHelpers/TestWithDatabaseBase.cs @@ -373,7 +373,7 @@ namespace Umbraco.Tests.TestHelpers httpContextAccessor, service, Mock.Of(), - globalSettings ?? new GlobalSettingsBuilder().Build(), + globalSettings ?? new GlobalSettings(), HostingEnvironment, new TestVariationContextAccessor(), UriUtility, diff --git a/src/Umbraco.Tests/Testing/TestingTests/MockTests.cs b/src/Umbraco.Tests/Testing/TestingTests/MockTests.cs index 8a08e2be07..04bae0372a 100644 --- a/src/Umbraco.Tests/Testing/TestingTests/MockTests.cs +++ b/src/Umbraco.Tests/Testing/TestingTests/MockTests.cs @@ -86,7 +86,7 @@ namespace Umbraco.Tests.Testing.TestingTests .Returns(UrlInfo.Url("/hello/world/1234")); var urlProvider = urlProviderMock.Object; - var webRoutingSettings = new WebRoutingSettingsBuilder().Build(); + var webRoutingSettings = new WebRoutingSettings(); var theUrlProvider = new UrlProvider( new TestUmbracoContextAccessor(umbracoContext), Microsoft.Extensions.Options.Options.Create(webRoutingSettings), diff --git a/src/Umbraco.Tests/Testing/UmbracoTestBase.cs b/src/Umbraco.Tests/Testing/UmbracoTestBase.cs index 08a1297cda..165da95e48 100644 --- a/src/Umbraco.Tests/Testing/UmbracoTestBase.cs +++ b/src/Umbraco.Tests/Testing/UmbracoTestBase.cs @@ -40,7 +40,6 @@ using Umbraco.Core.Services.Implement; using Umbraco.Core.Strings; using Umbraco.Net; using Umbraco.Tests.Common; -using Umbraco.Tests.Common.Builders; using Umbraco.Tests.Components; using Umbraco.Tests.TestHelpers; using Umbraco.Tests.TestHelpers.Stubs; @@ -50,6 +49,7 @@ using Umbraco.Web.AspNet; using Umbraco.Web.ContentApps; using Umbraco.Web.Hosting; using Umbraco.Web.Install; +using Umbraco.Web.Media; using Umbraco.Web.PropertyEditors; using Umbraco.Web.PublishedCache; using Umbraco.Web.Routing; @@ -129,6 +129,8 @@ namespace Umbraco.Tests.Testing protected ILocalizationService LocalizationService => Factory.GetInstance(); protected ILocalizedTextService LocalizedTextService { get; private set; } protected IShortStringHelper ShortStringHelper => Factory?.GetInstance() ?? TestHelper.ShortStringHelper; + protected IImageUrlGenerator ImageUrlGenerator => Factory.GetInstance(); + protected UploadAutoFillProperties UploadAutoFillProperties => Factory.GetInstance(); protected IUmbracoVersion UmbracoVersion { get; private set; } protected ITypeFinder TypeFinder { get; private set; } @@ -173,7 +175,7 @@ namespace Umbraco.Tests.Testing TypeFinder = new TypeFinder(logger, new DefaultUmbracoAssemblyProvider(GetType().Assembly), new VaryingRuntimeHash()); var appCaches = GetAppCaches(); - var globalSettings = new GlobalSettingsBuilder().Build(); + var globalSettings = new GlobalSettings(); var settings = new WebRoutingSettings(); IBackOfficeInfo backOfficeInfo = new AspNetBackOfficeInfo(globalSettings, IOHelper, logger, Microsoft.Extensions.Options.Options.Create(settings)); @@ -323,7 +325,7 @@ namespace Umbraco.Tests.Testing Composition.RegisterUnique(); Composition.RegisterUnique(); - var webRoutingSettings = new WebRoutingSettingsBuilder().Build(); + var webRoutingSettings = new WebRoutingSettings(); Composition.RegisterUnique(factory => new UrlProvider( factory.GetInstance(), @@ -343,6 +345,7 @@ namespace Umbraco.Tests.Testing runtimeStateMock.Setup(x => x.Level).Returns(RuntimeLevel.Run); Composition.RegisterUnique(f => runtimeStateMock.Object); Composition.Register(_ => Mock.Of()); + Composition.Register(); // ah... Composition.WithCollectionBuilder(); @@ -414,13 +417,13 @@ namespace Umbraco.Tests.Testing protected virtual void ComposeSettings() { - var contentSettings = new ContentSettingsBuilder().Build(); - var coreDebugSettings = new CoreDebugSettingsBuilder().Build(); - var globalSettings = new GlobalSettingsBuilder().Build(); - var nuCacheSettings = new NuCacheSettingsBuilder().Build(); - var requestHandlerSettings = new RequestHandlerSettingsBuilder().Build(); - var userPasswordConfigurationSettings = new UserPasswordConfigurationSettingsBuilder().Build(); - var webRoutingSettings = new WebRoutingSettingsBuilder().Build(); + var contentSettings = new ContentSettings(); + var coreDebugSettings = new CoreDebugSettings(); + var globalSettings = new GlobalSettings(); + var nuCacheSettings = new NuCacheSettings(); + var requestHandlerSettings = new RequestHandlerSettings(); + var userPasswordConfigurationSettings = new UserPasswordConfigurationSettings(); + var webRoutingSettings = new WebRoutingSettings(); Composition.Register(x => Microsoft.Extensions.Options.Options.Create(contentSettings)); Composition.Register(x => Microsoft.Extensions.Options.Options.Create(coreDebugSettings)); @@ -465,8 +468,8 @@ namespace Umbraco.Tests.Testing Composition.RegisterUnique(_ => new TransientEventMessagesFactory()); - var globalSettings = new GlobalSettingsBuilder().Build(); - var connectionStrings = new ConnectionStringsBuilder().Build(); + var globalSettings = new GlobalSettings(); + var connectionStrings = new ConnectionStrings(); Composition.RegisterUnique(f => new UmbracoDatabaseFactory(Logger, globalSettings, diff --git a/src/Umbraco.Tests/UmbracoExamine/ExamineBaseTest.cs b/src/Umbraco.Tests/UmbracoExamine/ExamineBaseTest.cs index eac16e457f..0767bf3191 100644 --- a/src/Umbraco.Tests/UmbracoExamine/ExamineBaseTest.cs +++ b/src/Umbraco.Tests/UmbracoExamine/ExamineBaseTest.cs @@ -1,13 +1,10 @@ using System.IO; using NUnit.Framework; -using Umbraco.Core; using Umbraco.Core.Composing; -using Umbraco.Core.Configuration.UmbracoSettings; +using Umbraco.Core.Configuration.Models; using Umbraco.Core.Logging; using Umbraco.Core.Logging.Serilog; using Umbraco.Core.Strings; -using Umbraco.Tests.Common.Builders; -using Umbraco.Tests.Components; using Umbraco.Tests.TestHelpers; namespace Umbraco.Tests.UmbracoExamine @@ -34,7 +31,7 @@ namespace Umbraco.Tests.UmbracoExamine protected override void Compose() { base.Compose(); - var requestHandlerSettings = new RequestHandlerSettingsBuilder().Build(); + var requestHandlerSettings = new RequestHandlerSettings(); Composition.RegisterUnique(_ => new DefaultShortStringHelper(Microsoft.Extensions.Options.Options.Create(requestHandlerSettings))); } } diff --git a/src/Umbraco.Tests/Web/Mvc/SurfaceControllerTests.cs b/src/Umbraco.Tests/Web/Mvc/SurfaceControllerTests.cs index 8e0c534550..6950d69b3e 100644 --- a/src/Umbraco.Tests/Web/Mvc/SurfaceControllerTests.cs +++ b/src/Umbraco.Tests/Web/Mvc/SurfaceControllerTests.cs @@ -2,24 +2,18 @@ using System.Web; using System.Web.Mvc; using System.Web.Routing; -using System.Web.Security; using Moq; using NUnit.Framework; -using Umbraco.Core; using Umbraco.Core.Cache; -using Umbraco.Core.Dictionary; -using Umbraco.Core.Logging; +using Umbraco.Core.Configuration.Models; using Umbraco.Core.Models.PublishedContent; using Umbraco.Core.Services; using Umbraco.Tests.Common; -using Umbraco.Tests.Common.Builders; using Umbraco.Tests.TestHelpers; using Umbraco.Tests.Testing; using Umbraco.Web; using Umbraco.Web.Mvc; using Umbraco.Web.PublishedCache; -using Umbraco.Web.Security; -using Umbraco.Web.Security.Providers; using Current = Umbraco.Web.Composing.Current; namespace Umbraco.Tests.Web.Mvc @@ -156,7 +150,7 @@ namespace Umbraco.Tests.Web.Mvc var content = Mock.Of(publishedContent => publishedContent.Id == 12345); - var webRoutingSettings = new WebRoutingSettingsBuilder().Build(); + var webRoutingSettings = new WebRoutingSettings(); var publishedRouter = BaseWebTest.CreatePublishedRouter(webRoutingSettings); var frequest = publishedRouter.CreateRequest(umbracoContext, new Uri("http://localhost/test")); frequest.PublishedContent = content; diff --git a/src/Umbraco.Tests/Web/Mvc/UmbracoViewPageTests.cs b/src/Umbraco.Tests/Web/Mvc/UmbracoViewPageTests.cs index bcaf1ceccf..62131597d4 100644 --- a/src/Umbraco.Tests/Web/Mvc/UmbracoViewPageTests.cs +++ b/src/Umbraco.Tests/Web/Mvc/UmbracoViewPageTests.cs @@ -1,28 +1,25 @@ using System; using System.Globalization; -using System.Linq; using System.Web.Mvc; using System.Web.Routing; using Moq; using NUnit.Framework; using Umbraco.Core; using Umbraco.Core.Cache; -using Umbraco.Web.Composing; -using Umbraco.Core.Configuration.UmbracoSettings; +using Umbraco.Core.Configuration.Models; using Umbraco.Core.Logging; using Umbraco.Core.Models.PublishedContent; using Umbraco.Core.Services; -using Umbraco.Core.Strings; +using Umbraco.Tests.Common; using Umbraco.Tests.LegacyXmlPublishedCache; using Umbraco.Tests.TestHelpers; using Umbraco.Tests.Testing; -using Umbraco.Tests.Common; using Umbraco.Web; +using Umbraco.Web.Composing; using Umbraco.Web.Models; using Umbraco.Web.Mvc; using Umbraco.Web.Routing; using Umbraco.Web.Security; -using Umbraco.Tests.Common.Builders; namespace Umbraco.Tests.Web.Mvc { @@ -388,7 +385,7 @@ namespace Umbraco.Tests.Web.Mvc { var umbracoContext = GetUmbracoContext("/dang", 0); - var webRoutingSettings = new WebRoutingSettingsBuilder().Build(); + var webRoutingSettings = new WebRoutingSettings(); var publishedRouter = BaseWebTest.CreatePublishedRouter(webRoutingSettings); var frequest = publishedRouter.CreateRequest(umbracoContext, new Uri("http://localhost/dang")); diff --git a/src/Umbraco.Web.BackOffice/Controllers/BackOfficeServerVariables.cs b/src/Umbraco.Web.BackOffice/Controllers/BackOfficeServerVariables.cs index 755c0b3a3f..4f397c4a59 100644 --- a/src/Umbraco.Web.BackOffice/Controllers/BackOfficeServerVariables.cs +++ b/src/Umbraco.Web.BackOffice/Controllers/BackOfficeServerVariables.cs @@ -11,6 +11,7 @@ using Umbraco.Core; using Umbraco.Core.Configuration; using Umbraco.Core.Configuration.Models; using Umbraco.Core.Hosting; +using Umbraco.Core.Media; using Umbraco.Core.WebAssets; using Umbraco.Extensions; using Umbraco.Web.BackOffice.Profiling; @@ -41,6 +42,7 @@ namespace Umbraco.Web.BackOffice.Controllers private readonly SecuritySettings _securitySettings; private readonly IRuntimeMinifier _runtimeMinifier; private readonly IAuthenticationSchemeProvider _authenticationSchemeProvider; + private readonly IImageUrlGenerator _imageUrlGenerator; public BackOfficeServerVariables( LinkGenerator linkGenerator, @@ -55,7 +57,8 @@ namespace Umbraco.Web.BackOffice.Controllers IOptions runtimeSettings, IOptions securitySettings, IRuntimeMinifier runtimeMinifier, - IAuthenticationSchemeProvider authenticationSchemeProvider) + IAuthenticationSchemeProvider authenticationSchemeProvider, + IImageUrlGenerator imageUrlGenerator) { _linkGenerator = linkGenerator; _runtimeState = runtimeState; @@ -70,6 +73,7 @@ namespace Umbraco.Web.BackOffice.Controllers _securitySettings = securitySettings.Value; _runtimeMinifier = runtimeMinifier; _authenticationSchemeProvider = authenticationSchemeProvider; + _imageUrlGenerator = imageUrlGenerator; } /// @@ -363,7 +367,7 @@ namespace Umbraco.Web.BackOffice.Controllers {"appPluginsPath", _hostingEnvironment.ToAbsolute(Constants.SystemDirectories.AppPlugins).TrimEnd('/')}, { "imageFileTypes", - string.Join(",", _contentSettings.Imaging.ImageFileTypes) + string.Join(",", _imageUrlGenerator.SupportedImageFileTypes) }, { "disallowedUploadFiles", diff --git a/src/Umbraco.Web.BackOffice/Controllers/ContentController.cs b/src/Umbraco.Web.BackOffice/Controllers/ContentController.cs index 66ece55162..1d5be66a02 100644 --- a/src/Umbraco.Web.BackOffice/Controllers/ContentController.cs +++ b/src/Umbraco.Web.BackOffice/Controllers/ContentController.cs @@ -39,7 +39,7 @@ using Umbraco.Web.Models.Mapping; using Umbraco.Web.Security; using Umbraco.Web.WebApi.Filters; -namespace Umbraco.Web.Editors +namespace Umbraco.Web.BackOffice.Controllers { /// /// The API controller used for editing content diff --git a/src/Umbraco.Web.BackOffice/Controllers/IconController.cs b/src/Umbraco.Web.BackOffice/Controllers/IconController.cs index 28509e2425..cad92206ec 100644 --- a/src/Umbraco.Web.BackOffice/Controllers/IconController.cs +++ b/src/Umbraco.Web.BackOffice/Controllers/IconController.cs @@ -4,7 +4,7 @@ using Umbraco.Core.Services; using Umbraco.Web.BackOffice.Controllers; using Umbraco.Web.Common.Attributes; -namespace Umbraco.Web.Editors +namespace Umbraco.Web.BackOffice.Controllers { [PluginController("UmbracoApi")] public class IconController : UmbracoAuthorizedApiController diff --git a/src/Umbraco.Web.BackOffice/Controllers/ImagesController.cs b/src/Umbraco.Web.BackOffice/Controllers/ImagesController.cs index 6f1b7fb037..1f626b1b0f 100644 --- a/src/Umbraco.Web.BackOffice/Controllers/ImagesController.cs +++ b/src/Umbraco.Web.BackOffice/Controllers/ImagesController.cs @@ -1,10 +1,7 @@ using System; using System.IO; using Microsoft.AspNetCore.Mvc; -using Microsoft.Extensions.Options; using Umbraco.Core; -using Umbraco.Core.Configuration; -using Umbraco.Core.Configuration.Models; using Umbraco.Core.IO; using Umbraco.Core.Media; using Umbraco.Core.Models; @@ -20,16 +17,13 @@ namespace Umbraco.Web.BackOffice.Controllers public class ImagesController : UmbracoAuthorizedApiController { private readonly IMediaFileSystem _mediaFileSystem; - private readonly ContentSettings _contentSettings; private readonly IImageUrlGenerator _imageUrlGenerator; public ImagesController( IMediaFileSystem mediaFileSystem, - IOptions contentSettings, IImageUrlGenerator imageUrlGenerator) { _mediaFileSystem = mediaFileSystem; - _contentSettings = contentSettings.Value; _imageUrlGenerator = imageUrlGenerator; } @@ -62,7 +56,7 @@ namespace Umbraco.Web.BackOffice.Controllers var ext = Path.GetExtension(imagePath); // we need to check if it is an image by extension - if (_contentSettings.IsImageFile(ext) == false) + if (_imageUrlGenerator.IsSupportedImageFormat(ext) == false) return NotFound(); //redirect to ImageProcessor thumbnail with rnd generated from last modified time of original media file diff --git a/src/Umbraco.Web.BackOffice/Controllers/MediaController.cs b/src/Umbraco.Web.BackOffice/Controllers/MediaController.cs index 34f0f0afd7..8b6a60d299 100644 --- a/src/Umbraco.Web.BackOffice/Controllers/MediaController.cs +++ b/src/Umbraco.Web.BackOffice/Controllers/MediaController.cs @@ -18,6 +18,7 @@ using Umbraco.Core.Hosting; using Umbraco.Core.IO; using Umbraco.Core.Logging; using Umbraco.Core.Mapping; +using Umbraco.Core.Media; using Umbraco.Core.Models; using Umbraco.Core.Models.ContentEditing; using Umbraco.Core.Models.Entities; @@ -27,8 +28,6 @@ using Umbraco.Core.Persistence; using Umbraco.Core.Persistence.Querying; using Umbraco.Core.PropertyEditors; using Umbraco.Core.Security; -using Umbraco.Web.ContentApps; -using Umbraco.Web.WebApi.Filters; using Umbraco.Core.Services; using Umbraco.Core.Strings; using Umbraco.Extensions; @@ -39,7 +38,6 @@ using Umbraco.Web.Common.Attributes; using Umbraco.Web.Common.Exceptions; using Umbraco.Web.ContentApps; using Umbraco.Web.Models.ContentEditing; -using Umbraco.Web.Security; using Umbraco.Web.WebApi.Filters; using Constants = Umbraco.Core.Constants; @@ -65,6 +63,8 @@ namespace Umbraco.Web.BackOffice.Controllers private readonly ISqlContext _sqlContext; private readonly IContentTypeBaseServiceProvider _contentTypeBaseServiceProvider; private readonly IRelationService _relationService; + private readonly IImageUrlGenerator _imageUrlGenerator; + public MediaController( ICultureDictionary cultureDictionary, ILogger logger, @@ -83,7 +83,8 @@ namespace Umbraco.Web.BackOffice.Controllers IRelationService relationService, PropertyEditorCollection propertyEditors, IMediaFileSystem mediaFileSystem, - IHostingEnvironment hostingEnvironment) + IHostingEnvironment hostingEnvironment, + IImageUrlGenerator imageUrlGenerator) : base(cultureDictionary, logger, shortStringHelper, eventMessages, localizedTextService) { _shortStringHelper = shortStringHelper; @@ -101,6 +102,7 @@ namespace Umbraco.Web.BackOffice.Controllers _propertyEditors = propertyEditors; _mediaFileSystem = mediaFileSystem; _hostingEnvironment = hostingEnvironment; + _imageUrlGenerator = imageUrlGenerator; } /// @@ -744,7 +746,7 @@ namespace Umbraco.Web.BackOffice.Controllers if (contentTypeAlias == Constants.Conventions.MediaTypes.AutoSelect) { - if (_contentSettings.Imaging.ImageFileTypes.Contains(ext)) + if (_imageUrlGenerator.SupportedImageFileTypes.Contains(ext)) { mediaType = Constants.Conventions.MediaTypes.Image; } diff --git a/src/Umbraco.Web.BackOffice/Controllers/MemberTypeController.cs b/src/Umbraco.Web.BackOffice/Controllers/MemberTypeController.cs index e4d616cc43..69188e1636 100644 --- a/src/Umbraco.Web.BackOffice/Controllers/MemberTypeController.cs +++ b/src/Umbraco.Web.BackOffice/Controllers/MemberTypeController.cs @@ -21,10 +21,11 @@ using Umbraco.Web.BackOffice.Controllers; using Umbraco.Web.BackOffice.Filters; using Umbraco.Web.Common.Attributes; using Umbraco.Web.Common.Exceptions; +using Umbraco.Web.Editors; using Umbraco.Web.Routing; using Umbraco.Web.Security; -namespace Umbraco.Web.Editors +namespace Umbraco.Web.BackOffice.Controllers { /// /// An API controller used for dealing with member types diff --git a/src/Umbraco.Web.BackOffice/Controllers/SectionController.cs b/src/Umbraco.Web.BackOffice/Controllers/SectionController.cs index c579a3ec1d..982dab6dec 100644 --- a/src/Umbraco.Web.BackOffice/Controllers/SectionController.cs +++ b/src/Umbraco.Web.BackOffice/Controllers/SectionController.cs @@ -15,7 +15,7 @@ using Umbraco.Web.Security; using Umbraco.Web.Services; using Umbraco.Web.Trees; -namespace Umbraco.Web.Editors +namespace Umbraco.Web.BackOffice.Controllers { /// /// The API controller used for using the list of sections diff --git a/src/Umbraco.Web.BackOffice/Controllers/TinyMceController.cs b/src/Umbraco.Web.BackOffice/Controllers/TinyMceController.cs index b62d6b6080..4bae8970bc 100644 --- a/src/Umbraco.Web.BackOffice/Controllers/TinyMceController.cs +++ b/src/Umbraco.Web.BackOffice/Controllers/TinyMceController.cs @@ -12,6 +12,7 @@ using Umbraco.Core.Configuration; using Umbraco.Core.Configuration.Models; using Umbraco.Core.Hosting; using Umbraco.Core.IO; +using Umbraco.Core.Media; using Umbraco.Core.Strings; using Umbraco.Web.BackOffice.Filters; using Umbraco.Web.Common.ActionsResults; @@ -32,18 +33,20 @@ namespace Umbraco.Web.BackOffice.Controllers private readonly IShortStringHelper _shortStringHelper; private readonly ContentSettings _contentSettings; private readonly IIOHelper _ioHelper; + private readonly IImageUrlGenerator _imageUrlGenerator; public TinyMceController( IHostingEnvironment hostingEnvironment, IShortStringHelper shortStringHelper, IOptions contentSettings, - IIOHelper ioHelper - ) + IIOHelper ioHelper, + IImageUrlGenerator imageUrlGenerator) { _hostingEnvironment = hostingEnvironment; _shortStringHelper = shortStringHelper; _contentSettings = contentSettings.Value; _ioHelper = ioHelper; + _imageUrlGenerator = imageUrlGenerator; } [HttpPost] @@ -78,7 +81,7 @@ namespace Umbraco.Web.BackOffice.Controllers var safeFileName = fileName.ToSafeFileName(_shortStringHelper); var ext = safeFileName.Substring(safeFileName.LastIndexOf('.') + 1).ToLower(); - if (_contentSettings.IsFileAllowedForUpload(ext) == false || _contentSettings.Imaging.ImageFileTypes.Contains(ext) == false) + if (_contentSettings.IsFileAllowedForUpload(ext) == false || _imageUrlGenerator.SupportedImageFileTypes.Contains(ext) == false) { // Throw some error - to say can't upload this IMG type return new UmbracoProblemResult("This is not an image filetype extension that is approved", HttpStatusCode.BadRequest); diff --git a/src/Umbraco.Web.BackOffice/Trees/ApplicationTreeController.cs b/src/Umbraco.Web.BackOffice/Trees/ApplicationTreeController.cs index 92cb5b1b93..6f7eec68f8 100644 --- a/src/Umbraco.Web.BackOffice/Trees/ApplicationTreeController.cs +++ b/src/Umbraco.Web.BackOffice/Trees/ApplicationTreeController.cs @@ -30,7 +30,7 @@ namespace Umbraco.Web.Trees /// Used to return tree root nodes /// [AngularJsonOnlyConfiguration] - [PluginController("UmbracoTrees")] + [PluginController(Constants.Web.Mvc.BackOfficeTreeArea)] public class ApplicationTreeController : UmbracoAuthorizedApiController { private readonly ITreeService _treeService; diff --git a/src/Umbraco.Web.BackOffice/Trees/ContentBlueprintTreeController.cs b/src/Umbraco.Web.BackOffice/Trees/ContentBlueprintTreeController.cs index 5b7ffd2e05..607efbf2f9 100644 --- a/src/Umbraco.Web.BackOffice/Trees/ContentBlueprintTreeController.cs +++ b/src/Umbraco.Web.BackOffice/Trees/ContentBlueprintTreeController.cs @@ -23,7 +23,7 @@ namespace Umbraco.Web.Trees /// [UmbracoApplicationAuthorize(Constants.Applications.Content)] [Tree(Constants.Applications.Settings, Constants.Trees.ContentBlueprints, SortOrder = 12, TreeGroup = Constants.Trees.Groups.Settings)] - [PluginController("UmbracoTrees")] + [PluginController(Constants.Web.Mvc.BackOfficeTreeArea)] [CoreTree] public class ContentBlueprintTreeController : TreeController { diff --git a/src/Umbraco.Web.BackOffice/Trees/ContentTreeController.cs b/src/Umbraco.Web.BackOffice/Trees/ContentTreeController.cs index 10fbdea0b6..ab5ae19d77 100644 --- a/src/Umbraco.Web.BackOffice/Trees/ContentTreeController.cs +++ b/src/Umbraco.Web.BackOffice/Trees/ContentTreeController.cs @@ -36,7 +36,7 @@ namespace Umbraco.Web.Trees Constants.Applications.Packages, Constants.Applications.Members)] [Tree(Constants.Applications.Content, Constants.Trees.Content)] - [PluginController("UmbracoTrees")] + [PluginController(Constants.Web.Mvc.BackOfficeTreeArea)] [CoreTree] [SearchableTree("searchResultFormatter", "configureContentResult", 10)] public class ContentTreeController : ContentTreeControllerBase, ISearchableTree diff --git a/src/Umbraco.Web.BackOffice/Trees/ContentTypeTreeController.cs b/src/Umbraco.Web.BackOffice/Trees/ContentTypeTreeController.cs index 2ee5ef0b3f..82e4d70e8c 100644 --- a/src/Umbraco.Web.BackOffice/Trees/ContentTypeTreeController.cs +++ b/src/Umbraco.Web.BackOffice/Trees/ContentTypeTreeController.cs @@ -18,7 +18,7 @@ namespace Umbraco.Web.Trees { [UmbracoTreeAuthorize(Constants.Trees.DocumentTypes)] [Tree(Constants.Applications.Settings, Constants.Trees.DocumentTypes, SortOrder = 0, TreeGroup = Constants.Trees.Groups.Settings)] - [PluginController("UmbracoTrees")] + [PluginController(Constants.Web.Mvc.BackOfficeTreeArea)] [CoreTree] public class ContentTypeTreeController : TreeController, ISearchableTree { diff --git a/src/Umbraco.Web.BackOffice/Trees/DataTypeTreeController.cs b/src/Umbraco.Web.BackOffice/Trees/DataTypeTreeController.cs index c68908c3dc..7cffe230c7 100644 --- a/src/Umbraco.Web.BackOffice/Trees/DataTypeTreeController.cs +++ b/src/Umbraco.Web.BackOffice/Trees/DataTypeTreeController.cs @@ -19,7 +19,7 @@ namespace Umbraco.Web.Trees { [UmbracoTreeAuthorize(Constants.Trees.DataTypes)] [Tree(Constants.Applications.Settings, Constants.Trees.DataTypes, SortOrder = 3, TreeGroup = Constants.Trees.Groups.Settings)] - [PluginController("UmbracoTrees")] + [PluginController(Constants.Web.Mvc.BackOfficeTreeArea)] [CoreTree] public class DataTypeTreeController : TreeController, ISearchableTree { diff --git a/src/Umbraco.Web.BackOffice/Trees/DictionaryTreeController.cs b/src/Umbraco.Web.BackOffice/Trees/DictionaryTreeController.cs index d92ca0e6c7..657772e622 100644 --- a/src/Umbraco.Web.BackOffice/Trees/DictionaryTreeController.cs +++ b/src/Umbraco.Web.BackOffice/Trees/DictionaryTreeController.cs @@ -20,7 +20,7 @@ namespace Umbraco.Web.Trees // We are allowed to see the dictionary tree, if we are allowed to manage templates, such that se can use the // dictionary items in templates, even when we dont have authorization to manage the dictionary items )] - [PluginController("UmbracoTrees")] + [PluginController(Constants.Web.Mvc.BackOfficeTreeArea)] [CoreTree] [Tree(Constants.Applications.Translation, Constants.Trees.Dictionary, TreeGroup = Constants.Trees.Groups.Settings)] public class DictionaryTreeController : TreeController diff --git a/src/Umbraco.Web.BackOffice/Trees/LanguageTreeController.cs b/src/Umbraco.Web.BackOffice/Trees/LanguageTreeController.cs index d34c26b07d..a3c0354ca9 100644 --- a/src/Umbraco.Web.BackOffice/Trees/LanguageTreeController.cs +++ b/src/Umbraco.Web.BackOffice/Trees/LanguageTreeController.cs @@ -11,7 +11,7 @@ namespace Umbraco.Web.Trees { [UmbracoTreeAuthorize(Constants.Trees.Languages)] [Tree(Constants.Applications.Settings, Constants.Trees.Languages, SortOrder = 11, TreeGroup = Constants.Trees.Groups.Settings)] - [PluginController("UmbracoTrees")] + [PluginController(Constants.Web.Mvc.BackOfficeTreeArea)] [CoreTree] public class LanguageTreeController : TreeController { diff --git a/src/Umbraco.Web.BackOffice/Trees/LogViewerTreeController.cs b/src/Umbraco.Web.BackOffice/Trees/LogViewerTreeController.cs index e9fe918c52..4de3670fcd 100644 --- a/src/Umbraco.Web.BackOffice/Trees/LogViewerTreeController.cs +++ b/src/Umbraco.Web.BackOffice/Trees/LogViewerTreeController.cs @@ -11,7 +11,7 @@ namespace Umbraco.Web.Trees { [UmbracoTreeAuthorize(Constants.Trees.LogViewer)] [Tree(Constants.Applications.Settings, Constants.Trees.LogViewer, SortOrder= 9, TreeGroup = Constants.Trees.Groups.Settings)] - [PluginController("UmbracoTrees")] + [PluginController(Constants.Web.Mvc.BackOfficeTreeArea)] [CoreTree] public class LogViewerTreeController : TreeController { diff --git a/src/Umbraco.Web.BackOffice/Trees/MacrosTreeController.cs b/src/Umbraco.Web.BackOffice/Trees/MacrosTreeController.cs index c3d15996d5..690b1888c5 100644 --- a/src/Umbraco.Web.BackOffice/Trees/MacrosTreeController.cs +++ b/src/Umbraco.Web.BackOffice/Trees/MacrosTreeController.cs @@ -13,7 +13,7 @@ namespace Umbraco.Web.Trees { [UmbracoTreeAuthorize(Constants.Trees.Macros)] [Tree(Constants.Applications.Settings, Constants.Trees.Macros, TreeTitle = "Macros", SortOrder = 4, TreeGroup = Constants.Trees.Groups.Settings)] - [PluginController("UmbracoTrees")] + [PluginController(Constants.Web.Mvc.BackOfficeTreeArea)] [CoreTree] public class MacrosTreeController : TreeController { diff --git a/src/Umbraco.Web.BackOffice/Trees/MediaTreeController.cs b/src/Umbraco.Web.BackOffice/Trees/MediaTreeController.cs index 2a7f769c7b..bfcb3507f3 100644 --- a/src/Umbraco.Web.BackOffice/Trees/MediaTreeController.cs +++ b/src/Umbraco.Web.BackOffice/Trees/MediaTreeController.cs @@ -32,7 +32,7 @@ namespace Umbraco.Web.Trees Constants.Applications.Packages, Constants.Applications.Members)] [Tree(Constants.Applications.Media, Constants.Trees.Media)] - [PluginController("UmbracoTrees")] + [PluginController(Constants.Web.Mvc.BackOfficeTreeArea)] [CoreTree] [SearchableTree("searchResultFormatter", "configureMediaResult", 20)] public class MediaTreeController : ContentTreeControllerBase, ISearchableTree, ITreeNodeController diff --git a/src/Umbraco.Web.BackOffice/Trees/MediaTypeTreeController.cs b/src/Umbraco.Web.BackOffice/Trees/MediaTypeTreeController.cs index 27f4f8f77e..52a66d63ce 100644 --- a/src/Umbraco.Web.BackOffice/Trees/MediaTypeTreeController.cs +++ b/src/Umbraco.Web.BackOffice/Trees/MediaTypeTreeController.cs @@ -18,7 +18,7 @@ namespace Umbraco.Web.Trees { [UmbracoTreeAuthorize(Constants.Trees.MediaTypes)] [Tree(Constants.Applications.Settings, Constants.Trees.MediaTypes, SortOrder = 1, TreeGroup = Constants.Trees.Groups.Settings)] - [PluginController("UmbracoTrees")] + [PluginController(Constants.Web.Mvc.BackOfficeTreeArea)] [CoreTree] public class MediaTypeTreeController : TreeController, ISearchableTree { diff --git a/src/Umbraco.Web.BackOffice/Trees/MemberGroupTreeController.cs b/src/Umbraco.Web.BackOffice/Trees/MemberGroupTreeController.cs index 06bd355b7d..22925e27e2 100644 --- a/src/Umbraco.Web.BackOffice/Trees/MemberGroupTreeController.cs +++ b/src/Umbraco.Web.BackOffice/Trees/MemberGroupTreeController.cs @@ -13,7 +13,7 @@ namespace Umbraco.Web.Trees { [UmbracoTreeAuthorize(Constants.Trees.MemberGroups)] [Tree(Constants.Applications.Members, Constants.Trees.MemberGroups, SortOrder = 1)] - [PluginController("UmbracoTrees")] + [PluginController(Constants.Web.Mvc.BackOfficeTreeArea)] [CoreTree] public class MemberGroupTreeController : MemberTypeAndGroupTreeControllerBase { diff --git a/src/Umbraco.Web.BackOffice/Trees/MemberTreeController.cs b/src/Umbraco.Web.BackOffice/Trees/MemberTreeController.cs index 859ee2f846..e6d18f3b72 100644 --- a/src/Umbraco.Web.BackOffice/Trees/MemberTreeController.cs +++ b/src/Umbraco.Web.BackOffice/Trees/MemberTreeController.cs @@ -29,7 +29,7 @@ namespace Umbraco.Web.Trees Constants.Applications.Media, Constants.Applications.Members)] [Tree(Constants.Applications.Members, Constants.Trees.Members, SortOrder = 0)] - [PluginController("UmbracoTrees")] + [PluginController(Constants.Web.Mvc.BackOfficeTreeArea)] [CoreTree] [SearchableTree("searchResultFormatter", "configureMemberResult")] public class MemberTreeController : TreeController, ISearchableTree, ITreeNodeController diff --git a/src/Umbraco.Web.BackOffice/Trees/MemberTypeAndGroupTreeControllerBase.cs b/src/Umbraco.Web.BackOffice/Trees/MemberTypeAndGroupTreeControllerBase.cs index 882ef6def3..a82d08eeac 100644 --- a/src/Umbraco.Web.BackOffice/Trees/MemberTypeAndGroupTreeControllerBase.cs +++ b/src/Umbraco.Web.BackOffice/Trees/MemberTypeAndGroupTreeControllerBase.cs @@ -10,7 +10,7 @@ using Umbraco.Web.WebApi; namespace Umbraco.Web.Trees { - [PluginController("UmbracoTrees")] + [PluginController(Constants.Web.Mvc.BackOfficeTreeArea)] [CoreTree] public abstract class MemberTypeAndGroupTreeControllerBase : TreeController { diff --git a/src/Umbraco.Web.BackOffice/Trees/MemberTypeTreeController.cs b/src/Umbraco.Web.BackOffice/Trees/MemberTypeTreeController.cs index b2d4a172fb..ae8a883fda 100644 --- a/src/Umbraco.Web.BackOffice/Trees/MemberTypeTreeController.cs +++ b/src/Umbraco.Web.BackOffice/Trees/MemberTypeTreeController.cs @@ -17,7 +17,7 @@ namespace Umbraco.Web.Trees [CoreTree] [UmbracoTreeAuthorize(Constants.Trees.MemberTypes)] [Tree(Constants.Applications.Settings, Constants.Trees.MemberTypes, SortOrder = 2, TreeGroup = Constants.Trees.Groups.Settings)] - [PluginController("UmbracoTrees")] + [PluginController(Constants.Web.Mvc.BackOfficeTreeArea)] public class MemberTypeTreeController : MemberTypeAndGroupTreeControllerBase, ISearchableTree { private readonly UmbracoTreeSearcher _treeSearcher; diff --git a/src/Umbraco.Web.BackOffice/Trees/PackagesTreeController.cs b/src/Umbraco.Web.BackOffice/Trees/PackagesTreeController.cs index f58b822f1c..634c093f46 100644 --- a/src/Umbraco.Web.BackOffice/Trees/PackagesTreeController.cs +++ b/src/Umbraco.Web.BackOffice/Trees/PackagesTreeController.cs @@ -11,7 +11,7 @@ namespace Umbraco.Web.Trees { [UmbracoTreeAuthorize(Constants.Trees.Packages)] [Tree(Constants.Applications.Packages, Constants.Trees.Packages, SortOrder = 0, IsSingleNodeTree = true)] - [PluginController("UmbracoTrees")] + [PluginController(Constants.Web.Mvc.BackOfficeTreeArea)] [CoreTree] public class PackagesTreeController : TreeController { diff --git a/src/Umbraco.Web.BackOffice/Trees/PartialViewMacrosTreeController.cs b/src/Umbraco.Web.BackOffice/Trees/PartialViewMacrosTreeController.cs index 612b59ca4a..7fa4580372 100644 --- a/src/Umbraco.Web.BackOffice/Trees/PartialViewMacrosTreeController.cs +++ b/src/Umbraco.Web.BackOffice/Trees/PartialViewMacrosTreeController.cs @@ -14,7 +14,7 @@ namespace Umbraco.Web.Trees /// [Tree(Constants.Applications.Settings, Constants.Trees.PartialViewMacros, SortOrder = 8, TreeGroup = Constants.Trees.Groups.Templating)] [UmbracoTreeAuthorize(Constants.Trees.PartialViewMacros)] - [PluginController("UmbracoTrees")] + [PluginController(Constants.Web.Mvc.BackOfficeTreeArea)] [CoreTree] public class PartialViewMacrosTreeController : PartialViewsTreeController { diff --git a/src/Umbraco.Web.BackOffice/Trees/PartialViewsTreeController.cs b/src/Umbraco.Web.BackOffice/Trees/PartialViewsTreeController.cs index afe720fde9..761475612f 100644 --- a/src/Umbraco.Web.BackOffice/Trees/PartialViewsTreeController.cs +++ b/src/Umbraco.Web.BackOffice/Trees/PartialViewsTreeController.cs @@ -17,7 +17,7 @@ namespace Umbraco.Web.Trees /// [Tree(Core.Constants.Applications.Settings, Core.Constants.Trees.PartialViews, SortOrder = 7, TreeGroup = Core.Constants.Trees.Groups.Templating)] [UmbracoTreeAuthorize(Constants.Trees.PartialViews)] - [PluginController("UmbracoTrees")] + [PluginController(Constants.Web.Mvc.BackOfficeTreeArea)] [CoreTree] public class PartialViewsTreeController : FileSystemTreeController { diff --git a/src/Umbraco.Web.BackOffice/Trees/RelationTypeTreeController.cs b/src/Umbraco.Web.BackOffice/Trees/RelationTypeTreeController.cs index 46c6f004c6..a4fffc5760 100644 --- a/src/Umbraco.Web.BackOffice/Trees/RelationTypeTreeController.cs +++ b/src/Umbraco.Web.BackOffice/Trees/RelationTypeTreeController.cs @@ -14,7 +14,7 @@ namespace Umbraco.Web.Trees { [UmbracoTreeAuthorize(Constants.Trees.RelationTypes)] [Tree(Constants.Applications.Settings, Constants.Trees.RelationTypes, SortOrder = 5, TreeGroup = Constants.Trees.Groups.Settings)] - [PluginController("UmbracoTrees")] + [PluginController(Constants.Web.Mvc.BackOfficeTreeArea)] [CoreTree] public class RelationTypeTreeController : TreeController { diff --git a/src/Umbraco.Web.BackOffice/Trees/TemplatesTreeController.cs b/src/Umbraco.Web.BackOffice/Trees/TemplatesTreeController.cs index fca6d7beb7..109b5c93c9 100644 --- a/src/Umbraco.Web.BackOffice/Trees/TemplatesTreeController.cs +++ b/src/Umbraco.Web.BackOffice/Trees/TemplatesTreeController.cs @@ -21,7 +21,7 @@ namespace Umbraco.Web.Trees { [UmbracoTreeAuthorize(Constants.Trees.Templates)] [Tree(Constants.Applications.Settings, Constants.Trees.Templates, SortOrder = 6, TreeGroup = Constants.Trees.Groups.Templating)] - [PluginController("UmbracoTrees")] + [PluginController(Constants.Web.Mvc.BackOfficeTreeArea)] [CoreTree] public class TemplatesTreeController : TreeController, ISearchableTree { diff --git a/src/Umbraco.Web.BackOffice/Trees/UserTreeController.cs b/src/Umbraco.Web.BackOffice/Trees/UserTreeController.cs index de7cb6c33c..9019b71d1b 100644 --- a/src/Umbraco.Web.BackOffice/Trees/UserTreeController.cs +++ b/src/Umbraco.Web.BackOffice/Trees/UserTreeController.cs @@ -18,7 +18,7 @@ namespace Umbraco.Web.Trees { [UmbracoTreeAuthorize(Constants.Trees.Users)] [Tree(Constants.Applications.Users, Constants.Trees.Users, SortOrder = 0, IsSingleNodeTree = true)] - [PluginController("UmbracoTrees")] + [PluginController(Constants.Web.Mvc.BackOfficeTreeArea)] [CoreTree] public class UserTreeController : TreeController { diff --git a/src/Umbraco.Web.Common/ApplicationModels/BackOfficeApplicationModelProvider.cs b/src/Umbraco.Web.Common/ApplicationModels/BackOfficeApplicationModelProvider.cs index d7c9833c6f..0ad6c4ec1a 100644 --- a/src/Umbraco.Web.Common/ApplicationModels/BackOfficeApplicationModelProvider.cs +++ b/src/Umbraco.Web.Common/ApplicationModels/BackOfficeApplicationModelProvider.cs @@ -14,7 +14,7 @@ namespace Umbraco.Web.Common.ApplicationModels public BackOfficeApplicationModelProvider(IModelMetadataProvider modelMetadataProvider) { ActionModelConventions = new List() - { + { new BackOfficeIdentityCultureConvention() }; } @@ -52,7 +52,9 @@ namespace Umbraco.Web.Common.ApplicationModels { var pluginControllerAttribute = controller.Attributes.OfType().FirstOrDefault(); return pluginControllerAttribute != null - && pluginControllerAttribute.AreaName == Core.Constants.Web.Mvc.BackOfficeArea; + && (pluginControllerAttribute.AreaName == Core.Constants.Web.Mvc.BackOfficeArea + || pluginControllerAttribute.AreaName == Core.Constants.Web.Mvc.BackOfficeApiArea + || pluginControllerAttribute.AreaName == Core.Constants.Web.Mvc.BackOfficeTreeArea); } } } diff --git a/src/Umbraco.Web.Common/Builder/UmbracoBuilderExtensions.cs b/src/Umbraco.Web.Common/Builder/UmbracoBuilderExtensions.cs index 08b7670522..5b4876baca 100644 --- a/src/Umbraco.Web.Common/Builder/UmbracoBuilderExtensions.cs +++ b/src/Umbraco.Web.Common/Builder/UmbracoBuilderExtensions.cs @@ -26,7 +26,7 @@ namespace Umbraco.Web.Common.Builder => builder.AddWith(nameof(WithConfiguration), () => builder.Services.AddUmbracoConfiguration(builder.Config)); public static IUmbracoBuilder WithCore(this IUmbracoBuilder builder) - => builder.AddWith(nameof(WithCore), () => builder.Services.AddUmbracoCore(builder.WebHostEnvironment, out _)); + => builder.AddWith(nameof(WithCore), () => builder.Services.AddUmbracoCore(builder.WebHostEnvironment, builder.Config, out _)); public static IUmbracoBuilder WithMiniProfiler(this IUmbracoBuilder builder) => builder.AddWith(nameof(WithMiniProfiler), () => diff --git a/src/Umbraco.Web.Common/Extensions/UmbracoCoreServiceCollectionExtensions.cs b/src/Umbraco.Web.Common/Extensions/UmbracoCoreServiceCollectionExtensions.cs index e6808ea4e7..212faa3670 100644 --- a/src/Umbraco.Web.Common/Extensions/UmbracoCoreServiceCollectionExtensions.cs +++ b/src/Umbraco.Web.Common/Extensions/UmbracoCoreServiceCollectionExtensions.cs @@ -18,6 +18,7 @@ using Umbraco.Core.Cache; using Umbraco.Core.Composing; using Umbraco.Core.Configuration; using Umbraco.Core.Configuration.Models; +using Umbraco.Core.Configuration.Models.Validation; using Umbraco.Core.IO; using Umbraco.Core.Logging; using Umbraco.Core.Logging.Serilog; @@ -102,19 +103,20 @@ namespace Umbraco.Extensions /// /// /// - /// /// /// + /// + /// /// - public static IServiceCollection AddUmbracoCore( - this IServiceCollection services, + public static IServiceCollection AddUmbracoCore(this IServiceCollection services, IWebHostEnvironment webHostEnvironment, IRegister umbContainer, Assembly entryAssembly, AppCaches appCaches, ILoggingConfiguration loggingConfiguration, + IConfiguration configuration, out IFactory factory) - => services.AddUmbracoCore(webHostEnvironment, umbContainer, entryAssembly, appCaches, loggingConfiguration, GetCoreRuntime, out factory); + => services.AddUmbracoCore(webHostEnvironment, umbContainer, entryAssembly, appCaches, loggingConfiguration, configuration, GetCoreRuntime, out factory); /// /// Adds the Umbraco Configuration requirements @@ -126,29 +128,32 @@ namespace Umbraco.Extensions { if (configuration == null) throw new ArgumentNullException(nameof(configuration)); - services.Configure(configuration.GetSection(Constants.Configuration.ConfigPrefix + "ActiveDirectory")); - services.Configure(configuration.GetSection("ConnectionStrings"), o => o.BindNonPublicProperties = true); - services.Configure(configuration.GetSection(Constants.Configuration.ConfigPrefix + "Content")); - services.Configure(configuration.GetSection(Constants.Configuration.ConfigPrefix + "Core:Debug")); - services.Configure(configuration.GetSection(Constants.Configuration.ConfigPrefix + "ExceptionFilter")); - services.Configure(configuration.GetSection(Constants.Configuration.ConfigPrefix + "Global")); - services.Configure(configuration.GetSection(Constants.Configuration.ConfigPrefix + "HealthChecks")); - services.Configure(configuration.GetSection(Constants.Configuration.ConfigPrefix + "Hosting")); - services.Configure(configuration.GetSection(Constants.Configuration.ConfigPrefix + "Imaging")); - services.Configure(configuration.GetSection(Constants.Configuration.ConfigPrefix + "Examine")); - services.Configure(configuration.GetSection(Constants.Configuration.ConfigPrefix + "KeepAlive")); - services.Configure(configuration.GetSection(Constants.Configuration.ConfigPrefix + "Logging")); - services.Configure(configuration.GetSection(Constants.Configuration.ConfigSecurityPrefix + "MemberPassword")); - services.Configure(configuration.GetSection(Constants.Configuration.ConfigPrefix + "ModelsBuilder")); - services.Configure(configuration.GetSection(Constants.Configuration.ConfigPrefix + "NuCache")); - services.Configure(configuration.GetSection(Constants.Configuration.ConfigPrefix + "RequestHandler")); - services.Configure(configuration.GetSection(Constants.Configuration.ConfigPrefix + "Runtime")); - services.Configure(configuration.GetSection(Constants.Configuration.ConfigPrefix + "Security")); - services.Configure(configuration.GetSection(Constants.Configuration.ConfigPrefix + "Tours")); - services.Configure(configuration.GetSection(Constants.Configuration.ConfigPrefix + "TypeFinder")); - services.Configure(configuration.GetSection(Constants.Configuration.ConfigSecurityPrefix + "UserPassword")); - services.Configure(configuration.GetSection(Constants.Configuration.ConfigPrefix + "WebRouting")); + services.AddSingleton, ContentSettingsValidator>(); + services.AddSingleton, GlobalSettingsValidator>(); + services.AddSingleton, RequestHandlerSettingsValidator>(); + services.Configure(configuration.GetSection(Constants.Configuration.ConfigActiveDirectory)); + services.Configure(configuration.GetSection("ConnectionStrings"), o => o.BindNonPublicProperties = true); + services.Configure(configuration.GetSection(Constants.Configuration.ConfigContent)); + services.Configure(configuration.GetSection(Constants.Configuration.ConfigCoreDebug)); + services.Configure(configuration.GetSection(Constants.Configuration.ConfigExceptionFilter)); + services.Configure(configuration.GetSection(Constants.Configuration.ConfigGlobal)); + services.Configure(configuration.GetSection(Constants.Configuration.ConfigHealthChecks)); + services.Configure(configuration.GetSection(Constants.Configuration.ConfigHosting)); + services.Configure(configuration.GetSection(Constants.Configuration.ConfigImaging)); + services.Configure(configuration.GetSection(Constants.Configuration.ConfigExamine)); + services.Configure(configuration.GetSection(Constants.Configuration.ConfigKeepAlive)); + services.Configure(configuration.GetSection(Constants.Configuration.ConfigLogging)); + services.Configure(configuration.GetSection(Constants.Configuration.ConfigMemberPassword)); + services.Configure(configuration.GetSection(Constants.Configuration.ConfigModelsBuilder), o => o.BindNonPublicProperties = true); + services.Configure(configuration.GetSection(Constants.Configuration.ConfigNuCache)); + services.Configure(configuration.GetSection(Constants.Configuration.ConfigRequestHandler)); + services.Configure(configuration.GetSection(Constants.Configuration.ConfigRuntime)); + services.Configure(configuration.GetSection(Constants.Configuration.ConfigSecurity)); + services.Configure(configuration.GetSection(Constants.Configuration.ConfigTours)); + services.Configure(configuration.GetSection(Constants.Configuration.ConfigTypeFinder)); + services.Configure(configuration.GetSection(Constants.Configuration.ConfigUserPassword)); + services.Configure(configuration.GetSection(Constants.Configuration.ConfigWebRouting)); return services; } @@ -158,10 +163,11 @@ namespace Umbraco.Extensions /// /// /// + /// /// - public static IServiceCollection AddUmbracoCore(this IServiceCollection services, IWebHostEnvironment webHostEnvironment) + public static IServiceCollection AddUmbracoCore(this IServiceCollection services, IWebHostEnvironment webHostEnvironment, IConfiguration configuration) { - return services.AddUmbracoCore(webHostEnvironment, out _); + return services.AddUmbracoCore(webHostEnvironment, configuration, out _); } /// @@ -169,9 +175,10 @@ namespace Umbraco.Extensions /// /// /// + /// /// /// - public static IServiceCollection AddUmbracoCore(this IServiceCollection services, IWebHostEnvironment webHostEnvironment, out IFactory factory) + public static IServiceCollection AddUmbracoCore(this IServiceCollection services, IWebHostEnvironment webHostEnvironment, IConfiguration configuration, out IFactory factory) { if (!UmbracoServiceProviderFactory.IsActive) throw new InvalidOperationException("Ensure to add UseUmbraco() in your Program.cs after ConfigureWebHostDefaults to enable Umbraco's service provider factory"); @@ -179,12 +186,11 @@ namespace Umbraco.Extensions var umbContainer = UmbracoServiceProviderFactory.UmbracoContainer; var loggingConfig = new LoggingConfiguration( - Path.Combine(webHostEnvironment.ContentRootPath, "App_Data", "Logs"), - Path.Combine(webHostEnvironment.ContentRootPath, "config", "serilog.config"), - Path.Combine(webHostEnvironment.ContentRootPath, "config", "serilog.user.config")); + Path.Combine(webHostEnvironment.ContentRootPath, "umbraco", "logs")); IHttpContextAccessor httpContextAccessor = new HttpContextAccessor(); services.AddSingleton(httpContextAccessor); + services.AddSingleton(loggingConfig); var requestCache = new GenericDictionaryRequestAppCache(() => httpContextAccessor.HttpContext?.Items); var appCaches = new AppCaches( @@ -197,6 +203,7 @@ namespace Umbraco.Extensions Assembly.GetEntryAssembly(), appCaches, loggingConfig, + configuration, GetCoreRuntime, out factory); @@ -223,6 +230,7 @@ namespace Umbraco.Extensions Assembly entryAssembly, AppCaches appCaches, ILoggingConfiguration loggingConfiguration, + IConfiguration configuration, //TODO: Yep that's extremely ugly Func getRuntime, out IFactory factory) @@ -264,6 +272,7 @@ namespace Umbraco.Extensions hostingSettings, webHostEnvironment, loggingConfiguration, + configuration, out var logger, out var ioHelper, out var hostingEnvironment, out var backOfficeInfo, out var profiler); var umbracoVersion = new UmbracoVersion(); @@ -284,6 +293,13 @@ namespace Umbraco.Extensions factory = coreRuntime.Configure(container); + + services.Configure(hostingSettings => + { + hostingSettings.Debug = false; + }); + + return services; } @@ -334,6 +350,7 @@ namespace Umbraco.Extensions IOptionsMonitor hostingSettings, IWebHostEnvironment webHostEnvironment, ILoggingConfiguration loggingConfiguration, + IConfiguration configuration, out Core.Logging.ILogger logger, out IIOHelper ioHelper, out Core.Hosting.IHostingEnvironment hostingEnvironment, @@ -345,8 +362,7 @@ namespace Umbraco.Extensions hostingEnvironment = new AspNetCoreHostingEnvironment(hostingSettings, webHostEnvironment); ioHelper = new IOHelper(hostingEnvironment); - logger = AddLogger(services, hostingEnvironment, loggingConfiguration); - + logger = AddLogger(services, hostingEnvironment, loggingConfiguration, configuration); backOfficeInfo = new AspNetCoreBackOfficeInfo(globalSettings); profiler = GetWebProfiler(hostingEnvironment); @@ -357,10 +373,14 @@ namespace Umbraco.Extensions /// Create and configure the logger /// /// - private static Core.Logging.ILogger AddLogger(IServiceCollection services, Core.Hosting.IHostingEnvironment hostingEnvironment, ILoggingConfiguration loggingConfiguration) + private static Core.Logging.ILogger AddLogger(IServiceCollection services, Core.Hosting.IHostingEnvironment hostingEnvironment, ILoggingConfiguration loggingConfiguration, IConfiguration configuration) { // Create a serilog logger - var logger = SerilogLogger.CreateWithDefaultConfiguration(hostingEnvironment, loggingConfiguration); + var logger = SerilogLogger.CreateWithDefaultConfiguration(hostingEnvironment, loggingConfiguration, configuration); + + // This is nessasary to pick up all the loggins to MS ILogger. + Log.Logger = logger.SerilogLog; + // Wire up all the bits that serilog needs. We need to use our own code since the Serilog ext methods don't cater to our needs since // we don't want to use the global serilog `Log` object and we don't have our own ILogger implementation before the HostBuilder runs which @@ -368,7 +388,13 @@ namespace Umbraco.Extensions // I have created a PR to make this nicer https://github.com/serilog/serilog-extensions-hosting/pull/19 but we'll need to wait for that. // Also see : https://github.com/serilog/serilog-extensions-hosting/blob/dev/src/Serilog.Extensions.Hosting/SerilogHostBuilderExtensions.cs - services.AddSingleton(services => new SerilogLoggerFactory(logger.SerilogLog, false)); + services.AddLogging(configure => + { + configure.AddSerilog(logger.SerilogLog, false); + }); + + + //services.AddSingleton(services => new SerilogLoggerFactory(logger.SerilogLog, false)); // This won't (and shouldn't) take ownership of the logger. services.AddSingleton(logger.SerilogLog); diff --git a/src/Umbraco.Web.Common/Filters/BackOfficeCultureFilter.cs b/src/Umbraco.Web.Common/Filters/BackOfficeCultureFilter.cs index 99109fe230..8a241e6a9d 100644 --- a/src/Umbraco.Web.Common/Filters/BackOfficeCultureFilter.cs +++ b/src/Umbraco.Web.Common/Filters/BackOfficeCultureFilter.cs @@ -12,6 +12,7 @@ namespace Umbraco.Web.Common.Filters { public void OnActionExecuted(ActionExecutedContext context) { + } public void OnActionExecuting(ActionExecutingContext context) diff --git a/src/Umbraco.Web.UI.NetCore/Program.cs b/src/Umbraco.Web.UI.NetCore/Program.cs index 30aced6469..4a7722597d 100644 --- a/src/Umbraco.Web.UI.NetCore/Program.cs +++ b/src/Umbraco.Web.UI.NetCore/Program.cs @@ -1,5 +1,6 @@ using Microsoft.AspNetCore.Hosting; using Microsoft.Extensions.Hosting; +using Microsoft.Extensions.Logging; using Umbraco.Core.Composing; namespace Umbraco.Web.UI.NetCore @@ -15,6 +16,10 @@ namespace Umbraco.Web.UI.NetCore public static IHostBuilder CreateHostBuilder(string[] args) => Host.CreateDefaultBuilder(args) + .ConfigureLogging(x => + { + x.ClearProviders(); + }) .ConfigureWebHostDefaults(webBuilder => { webBuilder.UseStartup(); }) .UseUmbraco(); } diff --git a/src/Umbraco.Web.UI.NetCore/Umbraco.Web.UI.NetCore.csproj b/src/Umbraco.Web.UI.NetCore/Umbraco.Web.UI.NetCore.csproj index 5f7d57c475..1af278cbc3 100644 --- a/src/Umbraco.Web.UI.NetCore/Umbraco.Web.UI.NetCore.csproj +++ b/src/Umbraco.Web.UI.NetCore/Umbraco.Web.UI.NetCore.csproj @@ -59,11 +59,11 @@ - - - + + + - + diff --git a/src/Umbraco.Web.UI.NetCore/Views/asda.cshtml b/src/Umbraco.Web.UI.NetCore/Views/asda.cshtml deleted file mode 100644 index 3fa17ab54c..0000000000 --- a/src/Umbraco.Web.UI.NetCore/Views/asda.cshtml +++ /dev/null @@ -1,4 +0,0 @@ -@inherits Umbraco.Web.Common.AspNetCore.UmbracoViewPage -@{ - Layout = null; -} \ No newline at end of file diff --git a/src/Umbraco.Web.UI.NetCore/appsettings.Development.json b/src/Umbraco.Web.UI.NetCore/appsettings.Development.json index 13f4c95bbd..1ba7dd6c68 100644 --- a/src/Umbraco.Web.UI.NetCore/appsettings.Development.json +++ b/src/Umbraco.Web.UI.NetCore/appsettings.Development.json @@ -1,4 +1,21 @@ { + "Serilog": { + "MinimumLevel": { + "Default": "Information" + }, + "WriteTo":[ + { + "Name": "Async", + "Args": { + "configure": [ + { + "Name": "Console" + } + ] + } + } + ] + }, "Umbraco": { "CMS": { "Global":{ @@ -8,7 +25,7 @@ // "Port": "25" } }, - "Hosting":{ + "Hosting": { "Debug": true } } diff --git a/src/Umbraco.Web.UI.NetCore/appsettings.json b/src/Umbraco.Web.UI.NetCore/appsettings.json index 0082f3fa50..3d9560dd9a 100644 --- a/src/Umbraco.Web.UI.NetCore/appsettings.json +++ b/src/Umbraco.Web.UI.NetCore/appsettings.json @@ -2,6 +2,16 @@ "ConnectionStrings": { "umbracoDbDSN": "" }, + "Serilog": { + "MinimumLevel": { + "Default": "Information", + "Override": { + "Microsoft": "Warning", + "Microsoft.Hosting.Lifetime": "Information", + "System": "Warning" + } + } + }, "Umbraco": { "CMS": { "Content": { diff --git a/src/Umbraco.Web.UI.NetCore/config/serilog.Release.config b/src/Umbraco.Web.UI.NetCore/config/serilog.Release.config deleted file mode 100644 index 9aca408b36..0000000000 --- a/src/Umbraco.Web.UI.NetCore/config/serilog.Release.config +++ /dev/null @@ -1,41 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/src/Umbraco.Web.UI.NetCore/config/serilog.config b/src/Umbraco.Web.UI.NetCore/config/serilog.config deleted file mode 100644 index 1b357696b9..0000000000 --- a/src/Umbraco.Web.UI.NetCore/config/serilog.config +++ /dev/null @@ -1,41 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/src/Umbraco.Web.UI.NetCore/config/serilog.user.Release.config b/src/Umbraco.Web.UI.NetCore/config/serilog.user.Release.config deleted file mode 100644 index 8f207406e3..0000000000 --- a/src/Umbraco.Web.UI.NetCore/config/serilog.user.Release.config +++ /dev/null @@ -1,39 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/src/Umbraco.Web.UI.NetCore/config/serilog.user.config b/src/Umbraco.Web.UI.NetCore/config/serilog.user.config deleted file mode 100644 index 8f207406e3..0000000000 --- a/src/Umbraco.Web.UI.NetCore/config/serilog.user.config +++ /dev/null @@ -1,39 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/src/Umbraco.Web/Editors/BackOfficeServerVariables.cs b/src/Umbraco.Web/Editors/BackOfficeServerVariables.cs index 7b2cc04652..bfb2448926 100644 --- a/src/Umbraco.Web/Editors/BackOfficeServerVariables.cs +++ b/src/Umbraco.Web/Editors/BackOfficeServerVariables.cs @@ -10,6 +10,7 @@ using Umbraco.Core; using Umbraco.Core.Configuration; using Umbraco.Core.Configuration.Models; using Umbraco.Core.Hosting; +using Umbraco.Core.Media; using Umbraco.Core.WebAssets; using Umbraco.Web.Features; using Umbraco.Web.Mvc; @@ -36,6 +37,7 @@ namespace Umbraco.Web.Editors private readonly RuntimeSettings _settings; private readonly SecuritySettings _securitySettings; private readonly IRuntimeMinifier _runtimeMinifier; + private readonly IImageUrlGenerator _imageUrlGenerator; internal BackOfficeServerVariables( UrlHelper urlHelper, @@ -48,7 +50,8 @@ namespace Umbraco.Web.Editors IHostingEnvironment hostingEnvironment, IOptions settings, IOptions securitySettings, - IRuntimeMinifier runtimeMinifier) + IRuntimeMinifier runtimeMinifier, + IImageUrlGenerator imageUrlGenerator) { _urlHelper = urlHelper; _runtimeState = runtimeState; @@ -61,6 +64,7 @@ namespace Umbraco.Web.Editors _settings = settings.Value; _securitySettings = securitySettings.Value; _runtimeMinifier = runtimeMinifier; + _imageUrlGenerator = imageUrlGenerator; } /// @@ -147,7 +151,7 @@ namespace Umbraco.Web.Editors {"appPluginsPath", _hostingEnvironment.ToAbsolute(Constants.SystemDirectories.AppPlugins).TrimEnd('/')}, { "imageFileTypes", - string.Join(",", _contentSettings.Imaging.ImageFileTypes) + string.Join(",", _imageUrlGenerator.SupportedImageFileTypes) }, { "disallowedUploadFiles", diff --git a/src/Umbraco.Web/UmbracoApplicationBase.cs b/src/Umbraco.Web/UmbracoApplicationBase.cs index f144a52761..440cceebf5 100644 --- a/src/Umbraco.Web/UmbracoApplicationBase.cs +++ b/src/Umbraco.Web/UmbracoApplicationBase.cs @@ -1,9 +1,11 @@ using System; +using System.Collections.Generic; using System.IO; using System.Reflection; using System.Threading; using System.Web; using System.Web.Hosting; +using Microsoft.Extensions.Configuration; using Microsoft.Extensions.Options; using Serilog.Context; using Umbraco.Core; @@ -47,11 +49,9 @@ namespace Umbraco.Web var hostingEnvironment = new AspNetHostingEnvironment(Options.Create(hostingSettings)); var loggingConfiguration = new LoggingConfiguration( - Path.Combine(hostingEnvironment.ApplicationPhysicalPath, "App_Data\\Logs"), - Path.Combine(hostingEnvironment.ApplicationPhysicalPath, "config\\serilog.config"), - Path.Combine(hostingEnvironment.ApplicationPhysicalPath, "config\\serilog.user.config")); + Path.Combine(hostingEnvironment.ApplicationPhysicalPath, "App_Data\\Logs")); var ioHelper = new IOHelper(hostingEnvironment); - var logger = SerilogLogger.CreateWithDefaultConfiguration(hostingEnvironment, loggingConfiguration); + var logger = SerilogLogger.CreateWithDefaultConfiguration(hostingEnvironment, loggingConfiguration, new ConfigurationRoot(new List())); var backOfficeInfo = new AspNetBackOfficeInfo(globalSettings, ioHelper, logger, Options.Create(webRoutingSettings)); var profiler = GetWebProfiler(hostingEnvironment);