From ef7af69731c1d93eea742e5b359cf3a873c26808 Mon Sep 17 00:00:00 2001 From: Bjarke Berg Date: Mon, 10 Feb 2020 11:23:23 +0100 Subject: [PATCH] https://github.com/umbraco/Umbraco-CMS/issues/7138 - Injected IIOHelper (#7581) Co-authored-by: Elitsa Marinovska <21998037+elit0451@users.noreply.github.com> --- .../PublishedContentCacheTests.cs | 2 +- .../LegacyXmlPublishedCache/PreviewContent.cs | 5 ++- .../LegacyXmlPublishedCache/XmlStore.cs | 7 ++-- .../PublishedContentSnapshotTestBase.cs | 2 +- .../Routing/RoutableDocumentFilterTests.cs | 6 +-- .../Routing/UmbracoModuleTests.cs | 2 +- .../Scoping/ScopedNuCacheTests.cs | 2 +- .../Security/BackOfficeCookieManagerTests.cs | 4 +- .../TestControllerActivatorBase.cs | 3 +- .../TestHelpers/TestWithDatabaseBase.cs | 2 +- .../AuthenticationControllerTests.cs | 4 +- .../Web/Controllers/UsersControllerTests.cs | 16 ++++++-- .../Web/Mvc/UmbracoViewPageTests.cs | 2 +- .../Web/WebExtensionMethodTests.cs | 6 +-- .../Umbraco/Views/AuthorizeUpgrade.cshtml | 2 +- .../Umbraco/Views/Default.cshtml | 2 +- src/Umbraco.Web/AppBuilderExtensions.cs | 6 ++- .../Editors/AuthenticationController.cs | 13 ++++--- .../Editors/BackOfficeController.cs | 36 +++++++++++++----- src/Umbraco.Web/Editors/BackOfficeModel.cs | 8 +++- .../Editors/BackOfficePreviewModel.cs | 5 ++- .../Editors/BackOfficeServerVariables.cs | 17 +++++---- src/Umbraco.Web/Editors/CodeFileController.cs | 16 +++++--- .../Editors/ContentTypeController.cs | 10 +++-- .../Editors/CurrentUserController.cs | 7 +++- src/Umbraco.Web/Editors/MacrosController.cs | 31 +++++++++++---- src/Umbraco.Web/Editors/MediaController.cs | 19 +++------- src/Umbraco.Web/Editors/PackageController.cs | 31 ++++++++++++++- .../Editors/PackageInstallController.cs | 34 +++++++++++------ src/Umbraco.Web/Editors/PreviewController.cs | 14 +++++-- src/Umbraco.Web/Editors/TinyMceController.cs | 38 +++++++++++++------ src/Umbraco.Web/Editors/TourController.cs | 31 +++++++++++++-- src/Umbraco.Web/Editors/UsersController.cs | 25 ++++++------ .../HtmlHelperBackOfficeExtensions.cs | 6 ++- .../Install/Controllers/InstallController.cs | 9 +++-- .../Install/FilePermissionHelper.cs | 12 +++--- .../InstallSteps/ConfigureMachineKey.cs | 11 +++++- .../InstallSteps/DatabaseInstallStep.cs | 12 +++--- .../InstallSteps/DatabaseUpgradeStep.cs | 7 +++- .../InstallSteps/SetUmbracoVersionStep.cs | 7 +++- .../InstallSteps/StarterKitCleanupStep.cs | 11 +++++- .../ClientDependencyConfiguration.cs | 5 ++- .../JavaScript/JsInitialization.cs | 5 ++- .../UmbracoClientDependencyLoader.cs | 9 +++-- src/Umbraco.Web/Macros/MacroRenderer.cs | 10 +++-- src/Umbraco.Web/RoutableDocumentFilter.cs | 9 +++-- .../Scheduling/SchedulerComponent.cs | 7 +++- src/Umbraco.Web/Security/WebSecurity.cs | 11 ++++-- src/Umbraco.Web/UmbracoContextFactory.cs | 2 +- src/Umbraco.Web/UmbracoDefaultOwinStartup.cs | 2 +- 50 files changed, 371 insertions(+), 172 deletions(-) diff --git a/src/Umbraco.Tests/Cache/PublishedCache/PublishedContentCacheTests.cs b/src/Umbraco.Tests/Cache/PublishedCache/PublishedContentCacheTests.cs index 7ef4495ad2..a18733869d 100644 --- a/src/Umbraco.Tests/Cache/PublishedCache/PublishedContentCacheTests.cs +++ b/src/Umbraco.Tests/Cache/PublishedCache/PublishedContentCacheTests.cs @@ -77,7 +77,7 @@ namespace Umbraco.Tests.Cache.PublishedCache _umbracoContext = new UmbracoContext( _httpContextFactory.HttpContext, publishedSnapshotService.Object, - new WebSecurity(_httpContextFactory.HttpContext, Mock.Of(), globalSettings), + new WebSecurity(_httpContextFactory.HttpContext, Mock.Of(), globalSettings, IOHelper), umbracoSettings, Enumerable.Empty(), Enumerable.Empty(), diff --git a/src/Umbraco.Tests/LegacyXmlPublishedCache/PreviewContent.cs b/src/Umbraco.Tests/LegacyXmlPublishedCache/PreviewContent.cs index 5812fde11c..c058c9ac48 100644 --- a/src/Umbraco.Tests/LegacyXmlPublishedCache/PreviewContent.cs +++ b/src/Umbraco.Tests/LegacyXmlPublishedCache/PreviewContent.cs @@ -5,6 +5,7 @@ using System.Xml; using Umbraco.Core; using Umbraco.Core.IO; using Umbraco.Core.Logging; +using Umbraco.Tests.TestHelpers; using Umbraco.Web.Composing; namespace Umbraco.Tests.LegacyXmlPublishedCache @@ -108,7 +109,7 @@ namespace Umbraco.Tests.LegacyXmlPublishedCache _previewXml = _xmlStore.GetPreviewXml(contentId, includeSubs); // make sure the preview folder exists - var dir = new DirectoryInfo(Current.IOHelper.MapPath(Constants.SystemDirectories.Preview)); + var dir = new DirectoryInfo(TestHelper.IOHelper.MapPath(Constants.SystemDirectories.Preview)); if (dir.Exists == false) dir.Create(); @@ -122,7 +123,7 @@ namespace Umbraco.Tests.LegacyXmlPublishedCache // get the full path to the preview set private static string GetPreviewSetPath(int userId, Guid previewSet) { - return Current.IOHelper.MapPath(Path.Combine(Constants.SystemDirectories.Preview, userId + "_" + previewSet + ".config")); + return TestHelper.IOHelper.MapPath(Path.Combine(Constants.SystemDirectories.Preview, userId + "_" + previewSet + ".config")); } // deletes files for the user, and files accessed more than one hour ago diff --git a/src/Umbraco.Tests/LegacyXmlPublishedCache/XmlStore.cs b/src/Umbraco.Tests/LegacyXmlPublishedCache/XmlStore.cs index df46ab755f..238da68370 100644 --- a/src/Umbraco.Tests/LegacyXmlPublishedCache/XmlStore.cs +++ b/src/Umbraco.Tests/LegacyXmlPublishedCache/XmlStore.cs @@ -22,6 +22,7 @@ using Umbraco.Core.Services.Changes; using Umbraco.Core.Services.Implement; using Umbraco.Core.Strings; using Umbraco.Core.Xml; +using Umbraco.Tests.TestHelpers; using Umbraco.Web.Cache; using Umbraco.Web.Composing; using Umbraco.Web.PublishedCache; @@ -94,7 +95,7 @@ namespace Umbraco.Tests.LegacyXmlPublishedCache _hostingEnvironment = hostingEnvironment; _shortStringHelper = shortStringHelper; - _xmlFileName = Current.IOHelper.MapPath(SystemFiles.GetContentCacheXml(_hostingEnvironment)); + _xmlFileName = TestHelper.IOHelper.MapPath(SystemFiles.GetContentCacheXml(_hostingEnvironment)); if (testing) { @@ -118,7 +119,7 @@ namespace Umbraco.Tests.LegacyXmlPublishedCache _mediaRepository = mediaRepository; _memberRepository = memberRepository; _xmlFileEnabled = false; - _xmlFileName = Current.IOHelper.MapPath(SystemFiles.GetContentCacheXml(hostingEnvironment)); + _xmlFileName = TestHelper.IOHelper.MapPath(SystemFiles.GetContentCacheXml(hostingEnvironment)); // do not plug events, we may not have what it takes to handle them } @@ -132,7 +133,7 @@ namespace Umbraco.Tests.LegacyXmlPublishedCache _memberRepository = memberRepository; GetXmlDocument = getXmlDocument ?? throw new ArgumentNullException(nameof(getXmlDocument)); _xmlFileEnabled = false; - _xmlFileName = Current.IOHelper.MapPath(SystemFiles.GetContentCacheXml(hostingEnvironment)); + _xmlFileName = TestHelper.IOHelper.MapPath(SystemFiles.GetContentCacheXml(hostingEnvironment)); // do not plug events, we may not have what it takes to handle them } diff --git a/src/Umbraco.Tests/PublishedContent/PublishedContentSnapshotTestBase.cs b/src/Umbraco.Tests/PublishedContent/PublishedContentSnapshotTestBase.cs index 8698eb18d7..c38ca1b460 100644 --- a/src/Umbraco.Tests/PublishedContent/PublishedContentSnapshotTestBase.cs +++ b/src/Umbraco.Tests/PublishedContent/PublishedContentSnapshotTestBase.cs @@ -71,7 +71,7 @@ namespace Umbraco.Tests.PublishedContent var umbracoContext = new UmbracoContext( httpContext, publishedSnapshotService.Object, - new WebSecurity(httpContext, Current.Services.UserService, globalSettings), + new WebSecurity(httpContext, Current.Services.UserService, globalSettings, IOHelper), TestObjects.GetUmbracoSettings(), Enumerable.Empty(), Enumerable.Empty(), diff --git a/src/Umbraco.Tests/Routing/RoutableDocumentFilterTests.cs b/src/Umbraco.Tests/Routing/RoutableDocumentFilterTests.cs index 4079ea6c84..bedd8a8744 100644 --- a/src/Umbraco.Tests/Routing/RoutableDocumentFilterTests.cs +++ b/src/Umbraco.Tests/Routing/RoutableDocumentFilterTests.cs @@ -21,7 +21,7 @@ namespace Umbraco.Tests.Routing public void Is_Reserved_Path_Or_Url(string url) { var globalSettings = TestObjects.GetGlobalSettings(); - var routableDocFilter = new RoutableDocumentFilter(globalSettings); + var routableDocFilter = new RoutableDocumentFilter(globalSettings, IOHelper); Assert.IsTrue(routableDocFilter.IsReservedPathOrUrl(url)); } @@ -34,7 +34,7 @@ namespace Umbraco.Tests.Routing public void Is_Not_Reserved_Path_Or_Url(string url) { var globalSettings = TestObjects.GetGlobalSettings(); - var routableDocFilter = new RoutableDocumentFilter(globalSettings); + var routableDocFilter = new RoutableDocumentFilter(globalSettings, IOHelper); Assert.IsFalse(routableDocFilter.IsReservedPathOrUrl(url)); } @@ -55,7 +55,7 @@ namespace Umbraco.Tests.Routing globalSettingsMock.Setup(x => x.ReservedPaths).Returns(""); globalSettingsMock.Setup(x => x.ReservedUrls).Returns(""); - var routableDocFilter = new RoutableDocumentFilter(globalSettingsMock.Object); + var routableDocFilter = new RoutableDocumentFilter(globalSettingsMock.Object, IOHelper); var routes = new RouteCollection(); diff --git a/src/Umbraco.Tests/Routing/UmbracoModuleTests.cs b/src/Umbraco.Tests/Routing/UmbracoModuleTests.cs index bfb3bc6ac0..d4c242a762 100644 --- a/src/Umbraco.Tests/Routing/UmbracoModuleTests.cs +++ b/src/Umbraco.Tests/Routing/UmbracoModuleTests.cs @@ -42,7 +42,7 @@ namespace Umbraco.Tests.Routing logger, null, // FIXME: PublishedRouter complexities... Mock.Of(), - new RoutableDocumentFilter(globalSettings) + new RoutableDocumentFilter(globalSettings, IOHelper) ); runtime.Level = RuntimeLevel.Run; diff --git a/src/Umbraco.Tests/Scoping/ScopedNuCacheTests.cs b/src/Umbraco.Tests/Scoping/ScopedNuCacheTests.cs index 9e351ff3c9..d8d90de593 100644 --- a/src/Umbraco.Tests/Scoping/ScopedNuCacheTests.cs +++ b/src/Umbraco.Tests/Scoping/ScopedNuCacheTests.cs @@ -122,7 +122,7 @@ namespace Umbraco.Tests.Scoping var umbracoContext = new UmbracoContext( httpContext, service, - new WebSecurity(httpContext, Current.Services.UserService, globalSettings), + new WebSecurity(httpContext, Current.Services.UserService, globalSettings, IOHelper), umbracoSettings ?? SettingsForTests.GetDefaultUmbracoSettings(), urlProviders ?? Enumerable.Empty(), Enumerable.Empty(), diff --git a/src/Umbraco.Tests/Security/BackOfficeCookieManagerTests.cs b/src/Umbraco.Tests/Security/BackOfficeCookieManagerTests.cs index 9ac45ae87a..7ff0776ba8 100644 --- a/src/Umbraco.Tests/Security/BackOfficeCookieManagerTests.cs +++ b/src/Umbraco.Tests/Security/BackOfficeCookieManagerTests.cs @@ -33,7 +33,7 @@ namespace Umbraco.Tests.Security var umbracoContext = new UmbracoContext( Mock.Of(), Mock.Of(), - new WebSecurity(Mock.Of(), Current.Services.UserService, globalSettings), + new WebSecurity(Mock.Of(), Current.Services.UserService, globalSettings, IOHelper), TestObjects.GetUmbracoSettings(), new List(), Enumerable.Empty(), globalSettings, new TestVariationContextAccessor(), IOHelper); @@ -53,7 +53,7 @@ namespace Umbraco.Tests.Security var umbCtx = new UmbracoContext( Mock.Of(), Mock.Of(), - new WebSecurity(Mock.Of(), Current.Services.UserService, globalSettings), + new WebSecurity(Mock.Of(), Current.Services.UserService, globalSettings, IOHelper), TestObjects.GetUmbracoSettings(), new List(), Enumerable.Empty(), globalSettings, new TestVariationContextAccessor(), IOHelper); diff --git a/src/Umbraco.Tests/TestHelpers/ControllerTesting/TestControllerActivatorBase.cs b/src/Umbraco.Tests/TestHelpers/ControllerTesting/TestControllerActivatorBase.cs index 17e1918d05..841608cacb 100644 --- a/src/Umbraco.Tests/TestHelpers/ControllerTesting/TestControllerActivatorBase.cs +++ b/src/Umbraco.Tests/TestHelpers/ControllerTesting/TestControllerActivatorBase.cs @@ -11,6 +11,7 @@ using Moq; using Umbraco.Core.Cache; using Umbraco.Core.Configuration.UmbracoSettings; using Umbraco.Core.Dictionary; +using Umbraco.Core.IO; using Umbraco.Core.Models.Membership; using Umbraco.Core.Models.PublishedContent; using Umbraco.Core.Security; @@ -101,7 +102,7 @@ namespace Umbraco.Tests.TestHelpers.ControllerTesting var backofficeIdentity = (UmbracoBackOfficeIdentity) owinContext.Authentication.User.Identity; - var webSecurity = new Mock(null, null, globalSettings); + var webSecurity = new Mock(null, null, globalSettings, TestHelper.IOHelper); //mock CurrentUser var groups = new List(); diff --git a/src/Umbraco.Tests/TestHelpers/TestWithDatabaseBase.cs b/src/Umbraco.Tests/TestHelpers/TestWithDatabaseBase.cs index 86442d89c0..8d1f8c1f84 100644 --- a/src/Umbraco.Tests/TestHelpers/TestWithDatabaseBase.cs +++ b/src/Umbraco.Tests/TestHelpers/TestWithDatabaseBase.cs @@ -381,7 +381,7 @@ namespace Umbraco.Tests.TestHelpers httpContext, service, new WebSecurity(httpContext, Factory.GetInstance(), - Factory.GetInstance()), + Factory.GetInstance(), IOHelper), umbracoSettings ?? Factory.GetInstance(), urlProviders ?? Enumerable.Empty(), mediaUrlProviders ?? Enumerable.Empty(), diff --git a/src/Umbraco.Tests/Web/Controllers/AuthenticationControllerTests.cs b/src/Umbraco.Tests/Web/Controllers/AuthenticationControllerTests.cs index 3705d23162..7753b0495f 100644 --- a/src/Umbraco.Tests/Web/Controllers/AuthenticationControllerTests.cs +++ b/src/Umbraco.Tests/Web/Controllers/AuthenticationControllerTests.cs @@ -33,6 +33,7 @@ using Umbraco.Web.Features; using Umbraco.Web.Models.ContentEditing; using IUser = Umbraco.Core.Models.Membership.IUser; using Umbraco.Core.Configuration.UmbracoSettings; +using Umbraco.Core.IO; namespace Umbraco.Tests.Web.Controllers { @@ -87,7 +88,8 @@ namespace Umbraco.Tests.Web.Controllers Factory.GetInstance(), helper, Factory.GetInstance(), - Factory.GetInstance()); + Factory.GetInstance(), + Factory.GetInstance()); return usersController; } diff --git a/src/Umbraco.Tests/Web/Controllers/UsersControllerTests.cs b/src/Umbraco.Tests/Web/Controllers/UsersControllerTests.cs index 31ee27d399..0c9b4f428f 100644 --- a/src/Umbraco.Tests/Web/Controllers/UsersControllerTests.cs +++ b/src/Umbraco.Tests/Web/Controllers/UsersControllerTests.cs @@ -89,7 +89,9 @@ namespace Umbraco.Tests.Web.Controllers Factory.GetInstance(), ShortStringHelper, Factory.GetInstance(), - Factory.GetInstance()); + Factory.GetInstance(), + Factory.GetInstance() + ); return usersController; } @@ -157,7 +159,9 @@ namespace Umbraco.Tests.Web.Controllers Factory.GetInstance(), ShortStringHelper, Factory.GetInstance(), - Factory.GetInstance()); + Factory.GetInstance(), + Factory.GetInstance() + ); return usersController; } @@ -196,7 +200,9 @@ namespace Umbraco.Tests.Web.Controllers Factory.GetInstance(), ShortStringHelper, Factory.GetInstance(), - Factory.GetInstance()); + Factory.GetInstance(), + Factory.GetInstance() + ); return usersController; } @@ -270,7 +276,9 @@ namespace Umbraco.Tests.Web.Controllers Factory.GetInstance(), ShortStringHelper, Factory.GetInstance(), - Factory.GetInstance()); + Factory.GetInstance(), + Factory.GetInstance() + ); return usersController; } diff --git a/src/Umbraco.Tests/Web/Mvc/UmbracoViewPageTests.cs b/src/Umbraco.Tests/Web/Mvc/UmbracoViewPageTests.cs index adc0cbe770..942666c7b0 100644 --- a/src/Umbraco.Tests/Web/Mvc/UmbracoViewPageTests.cs +++ b/src/Umbraco.Tests/Web/Mvc/UmbracoViewPageTests.cs @@ -440,7 +440,7 @@ namespace Umbraco.Tests.Web.Mvc var ctx = new UmbracoContext( http, _service, - new WebSecurity(http, Current.Services.UserService, globalSettings), + new WebSecurity(http, Current.Services.UserService, globalSettings, IOHelper), TestObjects.GetUmbracoSettings(), Enumerable.Empty(), Enumerable.Empty(), diff --git a/src/Umbraco.Tests/Web/WebExtensionMethodTests.cs b/src/Umbraco.Tests/Web/WebExtensionMethodTests.cs index bb3db7273c..cb125fa851 100644 --- a/src/Umbraco.Tests/Web/WebExtensionMethodTests.cs +++ b/src/Umbraco.Tests/Web/WebExtensionMethodTests.cs @@ -29,7 +29,7 @@ namespace Umbraco.Tests.Web var umbCtx = new UmbracoContext( Mock.Of(), Mock.Of(), - new WebSecurity(Mock.Of(), Current.Services.UserService, TestObjects.GetGlobalSettings()), + new WebSecurity(Mock.Of(), Current.Services.UserService, TestObjects.GetGlobalSettings(), IOHelper), TestObjects.GetUmbracoSettings(), new List(), Enumerable.Empty(), @@ -49,7 +49,7 @@ namespace Umbraco.Tests.Web var umbCtx = new UmbracoContext( Mock.Of(), Mock.Of(), - new WebSecurity(Mock.Of(), Current.Services.UserService, TestObjects.GetGlobalSettings()), + new WebSecurity(Mock.Of(), Current.Services.UserService, TestObjects.GetGlobalSettings(), IOHelper), TestObjects.GetUmbracoSettings(), new List(), Enumerable.Empty(), @@ -79,7 +79,7 @@ namespace Umbraco.Tests.Web var umbCtx = new UmbracoContext( Mock.Of(), Mock.Of(), - new WebSecurity(Mock.Of(), Current.Services.UserService, TestObjects.GetGlobalSettings()), + new WebSecurity(Mock.Of(), Current.Services.UserService, TestObjects.GetGlobalSettings(), IOHelper), TestObjects.GetUmbracoSettings(), new List(), Enumerable.Empty(), diff --git a/src/Umbraco.Web.UI/Umbraco/Views/AuthorizeUpgrade.cshtml b/src/Umbraco.Web.UI/Umbraco/Views/AuthorizeUpgrade.cshtml index 040913cd1d..e95057efe9 100644 --- a/src/Umbraco.Web.UI/Umbraco/Views/AuthorizeUpgrade.cshtml +++ b/src/Umbraco.Web.UI/Umbraco/Views/AuthorizeUpgrade.cshtml @@ -48,7 +48,7 @@ redirectUrl = Url.Action("AuthorizeUpgrade", "BackOffice") }); } - @Html.BareMinimumServerVariablesScript(Url, externalLoginUrl, Model.Features, Model.GlobalSettings, Model.UmbracoVersion, Model.UmbracoSettingsSection) + @Html.BareMinimumServerVariablesScript(Url, externalLoginUrl, Model.Features, Model.GlobalSettings, Model.UmbracoVersion, Model.UmbracoSettingsSection, Model.IOHelper, Model.TreeCollection)