diff --git a/src/Umbraco.Configuration/Models/GlobalSettings.cs b/src/Umbraco.Configuration/Models/GlobalSettings.cs index ed1b4e58a2..68d293d104 100644 --- a/src/Umbraco.Configuration/Models/GlobalSettings.cs +++ b/src/Umbraco.Configuration/Models/GlobalSettings.cs @@ -12,7 +12,7 @@ namespace Umbraco.Configuration.Models /// internal class GlobalSettings : IGlobalSettings { - public const string Prefix = Constants.Configuration.ConfigPrefix + "Global:"; + private const string Prefix = Constants.Configuration.ConfigGlobalPrefix; internal const string StaticReservedPaths = "~/app_plugins/,~/install/,~/mini-profiler-resources/,"; //must end with a comma! diff --git a/src/Umbraco.Core/Constants-Configuration.cs b/src/Umbraco.Core/Constants-Configuration.cs index c45229d918..a34ad8294f 100644 --- a/src/Umbraco.Core/Constants-Configuration.cs +++ b/src/Umbraco.Core/Constants-Configuration.cs @@ -12,6 +12,7 @@ /// public const string ConfigPrefix = "Umbraco:CMS:"; public const string ConfigSecurityPrefix = ConfigPrefix+"Security:"; + public const string ConfigGlobalPrefix = ConfigPrefix + "Global:"; public const string ConfigModelsBuilderPrefix = ConfigPrefix+"ModelsBuilder:"; } } diff --git a/src/Umbraco.Tests.Common/Builders/Interfaces/IWithApprovedBuilder.cs b/src/Umbraco.Tests.Common/Builders/Interfaces/IWithApprovedBuilder.cs new file mode 100644 index 0000000000..48d41e7a84 --- /dev/null +++ b/src/Umbraco.Tests.Common/Builders/Interfaces/IWithApprovedBuilder.cs @@ -0,0 +1,7 @@ +namespace Umbraco.Tests.Common.Builders.Interfaces +{ + public interface IWithApprovedBuilder + { + bool? Approved { get; set; } + } +} diff --git a/src/Umbraco.Tests.Common/Builders/UserBuilder.cs b/src/Umbraco.Tests.Common/Builders/UserBuilder.cs index 07ab8ef3f7..cb24e0e8dc 100644 --- a/src/Umbraco.Tests.Common/Builders/UserBuilder.cs +++ b/src/Umbraco.Tests.Common/Builders/UserBuilder.cs @@ -1,16 +1,22 @@ -using System; -using System.Linq; -using Moq; -using Umbraco.Core; -using Umbraco.Core.Configuration; +using Umbraco.Configuration.Models; using Umbraco.Core.Models.Membership; using Umbraco.Tests.Common.Builders.Interfaces; namespace Umbraco.Tests.Common.Builders { - public class UserBuilder - : BuilderBase, - IWithIdBuilder + + public class UserBuilder : UserBuilder + { + public UserBuilder() : base(null) + { + } + } + + public class UserBuilder + : ChildBuilderBase, + IWithIdBuilder, + IWithNameBuilder, + IWithApprovedBuilder { private int? _id; private string _language; @@ -20,63 +26,57 @@ namespace Umbraco.Tests.Common.Builders private bool? _isLockedOut; private string _email; private string _username; - private string _defaultLang; private string _suffix = string.Empty; + private string _defaultLang; - public UserBuilder WithDefaultUILanguage(string defaultLang) + + public UserBuilder(TParent parentBuilder) : base(parentBuilder) + { + + } + + public UserBuilder WithDefaultUILanguage(string defaultLang) { _defaultLang = defaultLang; return this; } - public UserBuilder WithLanguage(string language) + public UserBuilder WithLanguage(string language) { _language = language; return this; } - public UserBuilder WithApproved(bool approved) - { - _approved = approved; - return this; - } - - public UserBuilder WithRawPassword(string rawPassword) + public UserBuilder WithRawPassword(string rawPassword) { _rawPassword = rawPassword; return this; } - public UserBuilder WithEmail(string email) + public UserBuilder WithEmail(string email) { _email = email; return this; } - public UserBuilder WithUsername(string username) + public UserBuilder WithUsername(string username) { _username = username; return this; } - public UserBuilder WithLockedOut(bool isLockedOut) + public UserBuilder WithLockedOut(bool isLockedOut) { _isLockedOut = isLockedOut; return this; } - public UserBuilder WithName(string name) - { - _name = name; - return this; - } - /// /// Will suffix the name, email and username for testing /// /// /// - public UserBuilder WithSuffix(string suffix) + public UserBuilder WithSuffix(string suffix) { _suffix = suffix; return this; @@ -84,16 +84,25 @@ namespace Umbraco.Tests.Common.Builders public override User Build() { - var globalSettings = Mock.Of(x => x.DefaultUILanguage == (_defaultLang ?? "en-US")); - return new User(globalSettings, - _name ?? "TestUser" + _suffix, - _email ?? "test" + _suffix + "@test.com", - _username ?? "TestUser" + _suffix, - _rawPassword ?? "abcdefghijklmnopqrstuvwxyz") + var globalSettings = new GlobalSettingsBuilder().WithDefaultUiLanguage(_defaultLang).Build(); + var name = _name ?? "TestUser" + _suffix; + var email = _email ?? "test" + _suffix + "@test.com"; + var username = _username ?? "TestUser" + _suffix; + var rawPassword = _rawPassword ?? "abcdefghijklmnopqrstuvwxyz"; + var language = _language ?? globalSettings.DefaultUILanguage; + var isLockedOut = _isLockedOut ?? false; + var approved = _approved ?? true; + + return new User( + globalSettings, + name, + email, + username, + rawPassword) { - Language = _language ?? _defaultLang ?? "en-US", - IsLockedOut = _isLockedOut ?? false, - IsApproved = _approved ?? true + Language = language, + IsLockedOut = isLockedOut, + IsApproved = approved }; } @@ -102,5 +111,17 @@ namespace Umbraco.Tests.Common.Builders get => _id; set => _id = value; } + + string IWithNameBuilder.Name + { + get => _name; + set => _name = value; + } + + bool? IWithApprovedBuilder.Approved + { + get => _approved; + set => _approved = value; + } } } diff --git a/src/Umbraco.Tests.Common/Builders/UserGroupBuilder.cs b/src/Umbraco.Tests.Common/Builders/UserGroupBuilder.cs index d3ce5e71a8..4c6bb7a74c 100644 --- a/src/Umbraco.Tests.Common/Builders/UserGroupBuilder.cs +++ b/src/Umbraco.Tests.Common/Builders/UserGroupBuilder.cs @@ -6,9 +6,20 @@ using Umbraco.Tests.Common.Builders.Interfaces; namespace Umbraco.Tests.Common.Builders { - public class UserGroupBuilder - : BuilderBase, - IWithIdBuilder + + public class UserGroupBuilder : UserGroupBuilder + { + public UserGroupBuilder() : base(null) + { + } + } + + public class UserGroupBuilder + : ChildBuilderBase, + IWithIdBuilder, + IWithIconBuilder, + IWithAliasBuilder, + IWithNameBuilder { private int? _startContentId; private int? _startMediaId; @@ -20,12 +31,16 @@ namespace Umbraco.Tests.Common.Builders private string _suffix; private int? _id; + public UserGroupBuilder(TParent parentBuilder) : base(parentBuilder) + { + } + /// /// Will suffix the name and alias for testing /// /// /// - public UserGroupBuilder WithSuffix(string suffix) + public UserGroupBuilder WithSuffix(string suffix) { _suffix = suffix; return this; @@ -61,5 +76,24 @@ namespace Umbraco.Tests.Common.Builders get => _id; set => _id = value; } + + + string IWithIconBuilder.Icon + { + get => _icon; + set => _icon = value; + } + + string IWithAliasBuilder.Alias + { + get => _alias; + set => _alias = value; + } + + string IWithNameBuilder.Name + { + get => _name; + set => _name = value; + } } } diff --git a/src/Umbraco.Tests.Integration/Extensions/ApplicationBuilderExtensions.cs b/src/Umbraco.Tests.Integration/Extensions/ApplicationBuilderExtensions.cs index 553aa4fe85..a162845200 100644 --- a/src/Umbraco.Tests.Integration/Extensions/ApplicationBuilderExtensions.cs +++ b/src/Umbraco.Tests.Integration/Extensions/ApplicationBuilderExtensions.cs @@ -75,7 +75,7 @@ namespace Umbraco.Tests.Integration.Extensions // dynamically change the config status var umbVersion = app.ApplicationServices.GetRequiredService(); var config = app.ApplicationServices.GetRequiredService(); - config[GlobalSettings.Prefix + "ConfigurationStatus"] = umbVersion.SemanticVersion.ToString(); + config[Constants.Configuration.ConfigGlobalPrefix + "ConfigurationStatus"] = umbVersion.SemanticVersion.ToString(); // re-run the runtime level check var profilingLogger = app.ApplicationServices.GetRequiredService(); diff --git a/src/Umbraco.Web.Common/Extensions/UmbracoCoreServiceCollectionExtensions.cs b/src/Umbraco.Web.Common/Extensions/UmbracoCoreServiceCollectionExtensions.cs index 6f2b31bac1..a0dd1f8e63 100644 --- a/src/Umbraco.Web.Common/Extensions/UmbracoCoreServiceCollectionExtensions.cs +++ b/src/Umbraco.Web.Common/Extensions/UmbracoCoreServiceCollectionExtensions.cs @@ -155,8 +155,6 @@ namespace Umbraco.Web.Common.Extensions backOfficeInfo = new AspNetCoreBackOfficeInfo(globalSettings); profiler = GetWebProfiler(hostingEnvironment, httpContextAccessor); - - Current.Initialize(logger, configs, ioHelper, hostingEnvironment, backOfficeInfo, profiler); } private static IProfiler GetWebProfiler(Umbraco.Core.Hosting.IHostingEnvironment hostingEnvironment, IHttpContextAccessor httpContextAccessor) diff --git a/src/Umbraco.Web.UI/Umbraco/PartialViewMacros/Templates/Gallery.cshtml b/src/Umbraco.Web.UI/Umbraco/PartialViewMacros/Templates/Gallery.cshtml index 9462b3b638..8388c7a90d 100755 --- a/src/Umbraco.Web.UI/Umbraco/PartialViewMacros/Templates/Gallery.cshtml +++ b/src/Umbraco.Web.UI/Umbraco/PartialViewMacros/Templates/Gallery.cshtml @@ -1,7 +1,7 @@ @using Umbraco.Core.Models.PublishedContent @using Umbraco.Web @using Umbraco.Core -@using Umbraco.Core.Models +@using Umbraco.Core.Media @using Umbraco.Web.Composing @inherits Umbraco.Web.Macros.PartialViewMacroPage diff --git a/src/Umbraco.Web.UI/Views/Partials/Grid/Editors/Media.cshtml b/src/Umbraco.Web.UI/Views/Partials/Grid/Editors/Media.cshtml index 0ed54ab958..9d91abc34a 100644 --- a/src/Umbraco.Web.UI/Views/Partials/Grid/Editors/Media.cshtml +++ b/src/Umbraco.Web.UI/Views/Partials/Grid/Editors/Media.cshtml @@ -1,5 +1,5 @@ @model dynamic -@using Umbraco.Web.Templates +@using Umbraco.Core.Media @if (Model.value != null) { @@ -21,7 +21,7 @@ var altText = Model.value.altText ?? Model.value.caption ?? string.Empty; @altText - + if (Model.value.caption != null) {

@Model.value.caption