From 323a60fa761d568571f5f5bbf5fdde9287fa5570 Mon Sep 17 00:00:00 2001 From: Bjarke Berg Date: Tue, 26 Nov 2019 08:15:00 +0100 Subject: [PATCH] Removed IOHelper.Default, to prepare for injecting --- src/Umbraco.Core/Composing/Current.cs | 2 +- src/Umbraco.Core/EmailSender.cs | 2 - src/Umbraco.Core/IO/IOHelper.cs | 4 -- .../Security/MembershipProviderBase.cs | 10 +--- src/Umbraco.Core/Umbraco.Core.csproj | 1 - .../Components/ComponentTests.cs | 6 +-- .../Composing/ComposingTestBase.cs | 2 +- .../Composing/CompositionTests.cs | 2 +- .../Composing/TypeLoaderTests.cs | 4 +- src/Umbraco.Tests/IO/FileSystemsTests.cs | 4 +- src/Umbraco.Tests/IO/IoHelperTests.cs | 29 ++++++----- .../IO/PhysicalFileSystemTests.cs | 3 +- src/Umbraco.Tests/IO/ShadowFileSystemTests.cs | 48 +++++++++---------- src/Umbraco.Tests/Logging/LogviewerTests.cs | 3 +- .../Manifest/ManifestContentAppTests.cs | 3 +- .../Manifest/ManifestParserTests.cs | 3 +- .../UmbracoServiceMembershipProviderTests.cs | 14 +++--- .../PublishedContent/NuCacheChildrenTests.cs | 2 +- .../PublishedContent/NuCacheTests.cs | 2 +- .../Runtimes/CoreRuntimeTests.cs | 2 +- src/Umbraco.Tests/Runtimes/StandaloneTests.cs | 4 +- .../Scoping/ScopeEventDispatcherTests.cs | 2 +- .../Scoping/ScopeFileSystemsTests.cs | 2 +- .../Services/MemberServiceTests.cs | 2 +- .../TestHelpers/BaseUsingSqlCeSyntax.cs | 2 +- .../TestHelpers/SettingsForTests.cs | 3 +- src/Umbraco.Tests/TestHelpers/TestHelper.cs | 16 ++++--- src/Umbraco.Tests/TestHelpers/TestObjects.cs | 2 +- src/Umbraco.Tests/Testing/UmbracoTestBase.cs | 5 +- .../AuthenticationControllerTests.cs | 4 +- src/Umbraco.Tests/Web/UmbracoHelperTests.cs | 2 +- .../HttpContextExtensions.cs | 0 .../Providers/MembersMembershipProvider.cs | 6 +-- .../Providers/UmbracoMembershipProvider.cs | 16 ++++--- .../Providers/UsersMembershipProvider.cs | 6 +-- src/Umbraco.Web/Umbraco.Web.csproj | 1 + src/Umbraco.Web/UmbracoApplicationBase.cs | 2 +- 37 files changed, 108 insertions(+), 113 deletions(-) rename src/{Umbraco.Core => Umbraco.Web}/HttpContextExtensions.cs (100%) diff --git a/src/Umbraco.Core/Composing/Current.cs b/src/Umbraco.Core/Composing/Current.cs index 85f80dede0..94b11c1973 100644 --- a/src/Umbraco.Core/Composing/Current.cs +++ b/src/Umbraco.Core/Composing/Current.cs @@ -206,7 +206,7 @@ namespace Umbraco.Core.Composing public static IVariationContextAccessor VariationContextAccessor => Factory.GetInstance(); - public static readonly IIOHelper IOHelper = Umbraco.Core.IO.IOHelper.Default; + public static IIOHelper IOHelper => new IOHelper(); public static IUmbracoVersion UmbracoVersion => Factory.GetInstance(); diff --git a/src/Umbraco.Core/EmailSender.cs b/src/Umbraco.Core/EmailSender.cs index 7dc75b116d..698034a7e9 100644 --- a/src/Umbraco.Core/EmailSender.cs +++ b/src/Umbraco.Core/EmailSender.cs @@ -1,9 +1,7 @@ using System; using System.Net.Mail; using System.Threading.Tasks; -using System.Web; using Umbraco.Core.Composing; -using Umbraco.Core.Configuration; using Umbraco.Core.Events; namespace Umbraco.Core diff --git a/src/Umbraco.Core/IO/IOHelper.cs b/src/Umbraco.Core/IO/IOHelper.cs index 61ac1f72c8..450e3862f2 100644 --- a/src/Umbraco.Core/IO/IOHelper.cs +++ b/src/Umbraco.Core/IO/IOHelper.cs @@ -6,15 +6,11 @@ using System.IO; using System.Linq; using System.Web; using System.Web.Hosting; -using Umbraco.Core.Composing; namespace Umbraco.Core.IO { public class IOHelper : IIOHelper { - internal static IIOHelper Default { get; } = new IOHelper(); - - /// /// Gets or sets a value forcing Umbraco to consider it is non-hosted. /// diff --git a/src/Umbraco.Core/Security/MembershipProviderBase.cs b/src/Umbraco.Core/Security/MembershipProviderBase.cs index 298f849591..972e9c642c 100644 --- a/src/Umbraco.Core/Security/MembershipProviderBase.cs +++ b/src/Umbraco.Core/Security/MembershipProviderBase.cs @@ -956,15 +956,7 @@ namespace Umbraco.Core.Security return sb.ToString(); } - /// - /// Returns the current request IP address for logging if there is one - /// - /// - protected string GetCurrentRequestIpAddress() - { - var httpContext = HttpContext.Current == null ? (HttpContextBase) null : new HttpContextWrapper(HttpContext.Current); - return httpContext.GetCurrentRequestIpAddress(); - } + } } diff --git a/src/Umbraco.Core/Umbraco.Core.csproj b/src/Umbraco.Core/Umbraco.Core.csproj index a156a0ea4d..1c65c8a4c4 100755 --- a/src/Umbraco.Core/Umbraco.Core.csproj +++ b/src/Umbraco.Core/Umbraco.Core.csproj @@ -376,7 +376,6 @@ - diff --git a/src/Umbraco.Tests/Components/ComponentTests.cs b/src/Umbraco.Tests/Components/ComponentTests.cs index 89bcd48d05..b43ac69b8a 100644 --- a/src/Umbraco.Tests/Components/ComponentTests.cs +++ b/src/Umbraco.Tests/Components/ComponentTests.cs @@ -37,7 +37,7 @@ namespace Umbraco.Tests.Components var logger = Mock.Of(); var typeFinder = new TypeFinder(logger); var f = new UmbracoDatabaseFactory(logger, new Lazy(() => new MapperCollection(Enumerable.Empty())), TestHelper.GetConfigs()); - var fs = new FileSystems(mock.Object, logger, IOHelper.Default, SettingsForTests.GenerateMockGlobalSettings()); + var fs = new FileSystems(mock.Object, logger, TestHelper.IOHelper, SettingsForTests.GenerateMockGlobalSettings()); var p = new ScopeProvider(f, fs, logger, typeFinder); mock.Setup(x => x.GetInstance(typeof (ILogger))).Returns(logger); @@ -56,7 +56,7 @@ namespace Umbraco.Tests.Components private static TypeLoader MockTypeLoader() { - var ioHelper = IOHelper.Default; + var ioHelper = TestHelper.IOHelper; return new TypeLoader(ioHelper, Mock.Of(), Mock.Of(), new DirectoryInfo(ioHelper.MapPath("~/App_Data/TEMP")), Mock.Of()); } @@ -367,7 +367,7 @@ namespace Umbraco.Tests.Components [Test] public void AllComposers() { - var ioHelper = IOHelper.Default; + var ioHelper = TestHelper.IOHelper; var typeFinder = new TypeFinder(Mock.Of()); var typeLoader = new TypeLoader(ioHelper, typeFinder, AppCaches.Disabled.RuntimeCache, new DirectoryInfo(ioHelper.MapPath("~/App_Data/TEMP")), Mock.Of()); diff --git a/src/Umbraco.Tests/Composing/ComposingTestBase.cs b/src/Umbraco.Tests/Composing/ComposingTestBase.cs index 8a0dc46e7f..7b80324686 100644 --- a/src/Umbraco.Tests/Composing/ComposingTestBase.cs +++ b/src/Umbraco.Tests/Composing/ComposingTestBase.cs @@ -24,7 +24,7 @@ namespace Umbraco.Tests.Composing ProfilingLogger = new ProfilingLogger(Mock.Of(), Mock.Of()); var typeFinder = new TypeFinder(Mock.Of()); - var ioHelper = IOHelper.Default; + var ioHelper = TestHelper.IOHelper; TypeLoader = new TypeLoader(ioHelper, typeFinder, NoAppCache.Instance, new DirectoryInfo(ioHelper.MapPath("~/App_Data/TEMP")), ProfilingLogger, false, AssembliesToScan); } diff --git a/src/Umbraco.Tests/Composing/CompositionTests.cs b/src/Umbraco.Tests/Composing/CompositionTests.cs index 560f79fb24..fd1db16ac4 100644 --- a/src/Umbraco.Tests/Composing/CompositionTests.cs +++ b/src/Umbraco.Tests/Composing/CompositionTests.cs @@ -39,7 +39,7 @@ namespace Umbraco.Tests.Composing var logger = new ProfilingLogger(Mock.Of(), Mock.Of()); var typeFinder = new TypeFinder(Mock.Of()); - var ioHelper = IOHelper.Default; + var ioHelper = TestHelper.IOHelper; var typeLoader = new TypeLoader(ioHelper, typeFinder, Mock.Of(), new DirectoryInfo(ioHelper.MapPath("~/App_Data/TEMP")), logger); var composition = new Composition(mockedRegister, typeLoader, logger, Mock.Of(), TestHelper.GetConfigs()); diff --git a/src/Umbraco.Tests/Composing/TypeLoaderTests.cs b/src/Umbraco.Tests/Composing/TypeLoaderTests.cs index 5163e6a4e8..db35e71c5a 100644 --- a/src/Umbraco.Tests/Composing/TypeLoaderTests.cs +++ b/src/Umbraco.Tests/Composing/TypeLoaderTests.cs @@ -28,8 +28,8 @@ namespace Umbraco.Tests.Composing { // this ensures it's reset var typeFinder = new TypeFinder(Mock.Of()); - _typeLoader = new TypeLoader(IOHelper.Default, typeFinder, NoAppCache.Instance, - new DirectoryInfo(IOHelper.Default.MapPath("~/App_Data/TEMP")), + _typeLoader = new TypeLoader(TestHelper.IOHelper, typeFinder, NoAppCache.Instance, + new DirectoryInfo(TestHelper.IOHelper.MapPath("~/App_Data/TEMP")), new ProfilingLogger(Mock.Of(), Mock.Of()), false, // for testing, we'll specify which assemblies are scanned for the PluginTypeResolver diff --git a/src/Umbraco.Tests/IO/FileSystemsTests.cs b/src/Umbraco.Tests/IO/FileSystemsTests.cs index 8030927233..423507bcfe 100644 --- a/src/Umbraco.Tests/IO/FileSystemsTests.cs +++ b/src/Umbraco.Tests/IO/FileSystemsTests.cs @@ -33,9 +33,9 @@ namespace Umbraco.Tests.IO composition.Register(_ => Mock.Of()); composition.Register(_ => Mock.Of()); composition.Register(_ => Mock.Of()); - composition.Register(_ => IOHelper.Default); + composition.Register(_ => TestHelper.IOHelper); composition.RegisterUnique(); - composition.RegisterUnique(IOHelper.Default); + composition.RegisterUnique(TestHelper.IOHelper); composition.Configs.Add(SettingsForTests.GetDefaultGlobalSettings); composition.Configs.Add(SettingsForTests.GetDefaultUmbracoSettings); diff --git a/src/Umbraco.Tests/IO/IoHelperTests.cs b/src/Umbraco.Tests/IO/IoHelperTests.cs index 55bd34c14a..910feb47be 100644 --- a/src/Umbraco.Tests/IO/IoHelperTests.cs +++ b/src/Umbraco.Tests/IO/IoHelperTests.cs @@ -11,22 +11,21 @@ namespace Umbraco.Tests.IO [TestFixture] public class IoHelperTests { - private IIOHelper _ioHelper => IOHelper.Default; + private IIOHelper _ioHelper => TestHelper.IOHelper; [TestCase("~/Scripts", "/Scripts", null)] [TestCase("/Scripts", "/Scripts", null)] [TestCase("../Scripts", "/Scripts", typeof(ArgumentException))] public void IOHelper_ResolveUrl(string input, string expected, Type expectedExceptionType) { - var ioHelper = new IOHelper(); if (expectedExceptionType != null) { - Assert.Throws(expectedExceptionType, () =>ioHelper.ResolveUrl(input)); + Assert.Throws(expectedExceptionType, () =>_ioHelper.ResolveUrl(input)); } else { - var result = ioHelper.ResolveUrl(input); + var result = _ioHelper.ResolveUrl(input); Assert.AreEqual(expected, result); } } @@ -40,17 +39,17 @@ namespace Umbraco.Tests.IO //System.Diagnostics.Debugger.Break(); var globalSettings = SettingsForTests.GenerateMockGlobalSettings(); - Assert.AreEqual(Current.IOHelper.MapPath(Constants.SystemDirectories.Bin, true), Current.IOHelper.MapPath(Constants.SystemDirectories.Bin, false)); - Assert.AreEqual(Current.IOHelper.MapPath(Constants.SystemDirectories.Config, true), Current.IOHelper.MapPath(Constants.SystemDirectories.Config, false)); - Assert.AreEqual(Current.IOHelper.MapPath(globalSettings.UmbracoCssPath, true), Current.IOHelper.MapPath(globalSettings.UmbracoCssPath, false)); - Assert.AreEqual(Current.IOHelper.MapPath(Constants.SystemDirectories.Data, true), Current.IOHelper.MapPath(Constants.SystemDirectories.Data, false)); - Assert.AreEqual(Current.IOHelper.MapPath(Constants.SystemDirectories.Install, true), Current.IOHelper.MapPath(Constants.SystemDirectories.Install, false)); - Assert.AreEqual(Current.IOHelper.MapPath(globalSettings.UmbracoMediaPath, true), Current.IOHelper.MapPath(globalSettings.UmbracoMediaPath, false)); - Assert.AreEqual(Current.IOHelper.MapPath(Constants.SystemDirectories.Packages, true), Current.IOHelper.MapPath(Constants.SystemDirectories.Packages, false)); - Assert.AreEqual(Current.IOHelper.MapPath(Constants.SystemDirectories.Preview, true), Current.IOHelper.MapPath(Constants.SystemDirectories.Preview, false)); - Assert.AreEqual(Current.IOHelper.MapPath(_ioHelper.Root, true), Current.IOHelper.MapPath(_ioHelper.Root, false)); - Assert.AreEqual(Current.IOHelper.MapPath(globalSettings.UmbracoScriptsPath, true), Current.IOHelper.MapPath(globalSettings.UmbracoScriptsPath, false)); - Assert.AreEqual(Current.IOHelper.MapPath(globalSettings.UmbracoPath, true), Current.IOHelper.MapPath(globalSettings.UmbracoPath, false)); + Assert.AreEqual(_ioHelper.MapPath(Constants.SystemDirectories.Bin, true), _ioHelper.MapPath(Constants.SystemDirectories.Bin, false)); + Assert.AreEqual(_ioHelper.MapPath(Constants.SystemDirectories.Config, true), _ioHelper.MapPath(Constants.SystemDirectories.Config, false)); + Assert.AreEqual(_ioHelper.MapPath(globalSettings.UmbracoCssPath, true), _ioHelper.MapPath(globalSettings.UmbracoCssPath, false)); + Assert.AreEqual(_ioHelper.MapPath(Constants.SystemDirectories.Data, true), _ioHelper.MapPath(Constants.SystemDirectories.Data, false)); + Assert.AreEqual(_ioHelper.MapPath(Constants.SystemDirectories.Install, true), _ioHelper.MapPath(Constants.SystemDirectories.Install, false)); + Assert.AreEqual(_ioHelper.MapPath(globalSettings.UmbracoMediaPath, true), _ioHelper.MapPath(globalSettings.UmbracoMediaPath, false)); + Assert.AreEqual(_ioHelper.MapPath(Constants.SystemDirectories.Packages, true), _ioHelper.MapPath(Constants.SystemDirectories.Packages, false)); + Assert.AreEqual(_ioHelper.MapPath(Constants.SystemDirectories.Preview, true), _ioHelper.MapPath(Constants.SystemDirectories.Preview, false)); + Assert.AreEqual(_ioHelper.MapPath(_ioHelper.Root, true), _ioHelper.MapPath(_ioHelper.Root, false)); + Assert.AreEqual(_ioHelper.MapPath(globalSettings.UmbracoScriptsPath, true), _ioHelper.MapPath(globalSettings.UmbracoScriptsPath, false)); + Assert.AreEqual(_ioHelper.MapPath(globalSettings.UmbracoPath, true), _ioHelper.MapPath(globalSettings.UmbracoPath, false)); } [Test] diff --git a/src/Umbraco.Tests/IO/PhysicalFileSystemTests.cs b/src/Umbraco.Tests/IO/PhysicalFileSystemTests.cs index 85c10b4005..2470b37eed 100644 --- a/src/Umbraco.Tests/IO/PhysicalFileSystemTests.cs +++ b/src/Umbraco.Tests/IO/PhysicalFileSystemTests.cs @@ -4,6 +4,7 @@ using System.Text; using System.Threading; using NUnit.Framework; using Umbraco.Core.IO; +using Umbraco.Tests.TestHelpers; namespace Umbraco.Tests.IO @@ -14,7 +15,7 @@ namespace Umbraco.Tests.IO { public PhysicalFileSystemTests() : base(new PhysicalFileSystem(Path.Combine(AppDomain.CurrentDomain.BaseDirectory, "FileSysTests"), - "/Media/", new IOHelper())) + "/Media/", TestHelper.IOHelper)) { } [SetUp] diff --git a/src/Umbraco.Tests/IO/ShadowFileSystemTests.cs b/src/Umbraco.Tests/IO/ShadowFileSystemTests.cs index d73c6124bc..fc16e27651 100644 --- a/src/Umbraco.Tests/IO/ShadowFileSystemTests.cs +++ b/src/Umbraco.Tests/IO/ShadowFileSystemTests.cs @@ -26,7 +26,7 @@ namespace Umbraco.Tests.IO public void SetUp() { SafeCallContext.Clear(); - ClearFiles(IOHelper.Default); + ClearFiles(TestHelper.IOHelper); FileSystems.ResetShadowId(); } @@ -34,7 +34,7 @@ namespace Umbraco.Tests.IO public void TearDown() { SafeCallContext.Clear(); - ClearFiles(IOHelper.Default); + ClearFiles(TestHelper.IOHelper); FileSystems.ResetShadowId(); } @@ -52,7 +52,7 @@ namespace Umbraco.Tests.IO [Test] public void ShadowDeleteDirectory() { - var ioHelper = IOHelper.Default; + var ioHelper = TestHelper.IOHelper; var path = ioHelper.MapPath("FileSysTests"); Directory.CreateDirectory(path); @@ -88,7 +88,7 @@ namespace Umbraco.Tests.IO [Test] public void ShadowDeleteDirectoryInDir() { - var ioHelper = IOHelper.Default; + var ioHelper = TestHelper.IOHelper; var path = ioHelper.MapPath("FileSysTests"); Directory.CreateDirectory(path); @@ -139,7 +139,7 @@ namespace Umbraco.Tests.IO [Test] public void ShadowDeleteFile() { - var ioHelper = IOHelper.Default; + var ioHelper = TestHelper.IOHelper; var path = ioHelper.MapPath("FileSysTests"); Directory.CreateDirectory(path); @@ -180,7 +180,7 @@ namespace Umbraco.Tests.IO [Test] public void ShadowDeleteFileInDir() { - var ioHelper = IOHelper.Default; + var ioHelper = TestHelper.IOHelper; var path = ioHelper.MapPath("FileSysTests"); @@ -238,7 +238,7 @@ namespace Umbraco.Tests.IO [Test] public void ShadowCantCreateFile() { - var ioHelper = IOHelper.Default; + var ioHelper = TestHelper.IOHelper; var path = ioHelper.MapPath("FileSysTests"); Directory.CreateDirectory(path); @@ -259,7 +259,7 @@ namespace Umbraco.Tests.IO [Test] public void ShadowCreateFile() { - var ioHelper = IOHelper.Default; + var ioHelper = TestHelper.IOHelper; var path = ioHelper.MapPath("FileSysTests"); Directory.CreateDirectory(path); @@ -300,7 +300,7 @@ namespace Umbraco.Tests.IO [Test] public void ShadowCreateFileInDir() { - var ioHelper = IOHelper.Default; + var ioHelper = TestHelper.IOHelper; var path = ioHelper.MapPath("FileSysTests"); Directory.CreateDirectory(path); @@ -342,7 +342,7 @@ namespace Umbraco.Tests.IO [Test] public void ShadowAbort() { - var ioHelper = IOHelper.Default; + var ioHelper = TestHelper.IOHelper; var path = ioHelper.MapPath("FileSysTests"); Directory.CreateDirectory(path); @@ -366,7 +366,7 @@ namespace Umbraco.Tests.IO [Test] public void ShadowComplete() { - var ioHelper = IOHelper.Default; + var ioHelper = TestHelper.IOHelper; var path = ioHelper.MapPath("FileSysTests"); Directory.CreateDirectory(path); @@ -405,7 +405,7 @@ namespace Umbraco.Tests.IO public void ShadowScopeComplete() { var logger = Mock.Of(); - var ioHelper = IOHelper.Default; + var ioHelper = TestHelper.IOHelper; var path = ioHelper.MapPath("FileSysTests"); var shadowfs = ioHelper.MapPath(Constants.SystemDirectories.TempData.EnsureEndsWith('/') + "ShadowFs"); @@ -501,7 +501,7 @@ namespace Umbraco.Tests.IO public void ShadowScopeCompleteWithFileConflict() { var logger = Mock.Of(); - var ioHelper = IOHelper.Default; + var ioHelper = TestHelper.IOHelper; var path = ioHelper.MapPath("FileSysTests"); var shadowfs = ioHelper.MapPath(Constants.SystemDirectories.TempData.EnsureEndsWith('/') + "ShadowFs"); @@ -555,7 +555,7 @@ namespace Umbraco.Tests.IO public void ShadowScopeCompleteWithDirectoryConflict() { var logger = Mock.Of(); - var ioHelper = IOHelper.Default; + var ioHelper = TestHelper.IOHelper; var path = ioHelper.MapPath("FileSysTests"); var shadowfs = ioHelper.MapPath(Constants.SystemDirectories.TempData.EnsureEndsWith('/') + "ShadowFs"); @@ -625,7 +625,7 @@ namespace Umbraco.Tests.IO [Test] public void GetFilesReturnsChildrenOnly() { - var ioHelper = IOHelper.Default; + var ioHelper = TestHelper.IOHelper; var path = ioHelper.MapPath("FileSysTests"); Directory.CreateDirectory(path); @@ -649,7 +649,7 @@ namespace Umbraco.Tests.IO [Test] public void DeleteDirectoryAndFiles() { - var ioHelper = IOHelper.Default; + var ioHelper = TestHelper.IOHelper; var path = ioHelper.MapPath("FileSysTests"); Directory.CreateDirectory(path); @@ -672,7 +672,7 @@ namespace Umbraco.Tests.IO public void ShadowGetFiles() { // Arrange - var ioHelper = IOHelper.Default; + var ioHelper = TestHelper.IOHelper; var path = ioHelper.MapPath("FileSysTests"); Directory.CreateDirectory(path); @@ -706,7 +706,7 @@ namespace Umbraco.Tests.IO public void ShadowGetFilesUsingEmptyFilter() { // Arrange - var ioHelper = IOHelper.Default; + var ioHelper = TestHelper.IOHelper; var path = ioHelper.MapPath("FileSysTests"); Directory.CreateDirectory(path); @@ -743,7 +743,7 @@ namespace Umbraco.Tests.IO public void ShadowGetFilesUsingNullFilter() { // Arrange - var ioHelper = IOHelper.Default; + var ioHelper = TestHelper.IOHelper; var path = ioHelper.MapPath("FileSysTests"); Directory.CreateDirectory(path); @@ -777,7 +777,7 @@ namespace Umbraco.Tests.IO public void ShadowGetFilesUsingWildcardFilter() { // Arrange - var ioHelper = IOHelper.Default; + var ioHelper = TestHelper.IOHelper; var path = ioHelper.MapPath("FileSysTests"); Directory.CreateDirectory(path); @@ -814,7 +814,7 @@ namespace Umbraco.Tests.IO public void ShadowGetFilesUsingSingleCharacterFilter() { // Arrange - var ioHelper = IOHelper.Default; + var ioHelper = TestHelper.IOHelper; var path = ioHelper.MapPath("FileSysTests"); Directory.CreateDirectory(path); @@ -863,7 +863,7 @@ namespace Umbraco.Tests.IO public void ShadowGetFullPath() { // Arrange - var ioHelper = IOHelper.Default; + var ioHelper = TestHelper.IOHelper; var path = ioHelper.MapPath("FileSysTests"); Directory.CreateDirectory(path); @@ -899,7 +899,7 @@ namespace Umbraco.Tests.IO public void ShadowGetRelativePath() { // Arrange - var ioHelper = IOHelper.Default; + var ioHelper = TestHelper.IOHelper; var path = ioHelper.MapPath("FileSysTests"); Directory.CreateDirectory(path); @@ -940,7 +940,7 @@ namespace Umbraco.Tests.IO public void ShadowGetUrl() { // Arrange - var ioHelper = IOHelper.Default; + var ioHelper = TestHelper.IOHelper; var path = ioHelper.MapPath("FileSysTests"); Directory.CreateDirectory(path); diff --git a/src/Umbraco.Tests/Logging/LogviewerTests.cs b/src/Umbraco.Tests/Logging/LogviewerTests.cs index d6e1c7ffae..cddd01c178 100644 --- a/src/Umbraco.Tests/Logging/LogviewerTests.cs +++ b/src/Umbraco.Tests/Logging/LogviewerTests.cs @@ -7,6 +7,7 @@ using Umbraco.Core; using Umbraco.Core.Composing; using Umbraco.Core.IO; using Umbraco.Core.Logging.Viewer; +using Umbraco.Tests.TestHelpers; namespace Umbraco.Tests.Logging { @@ -33,7 +34,7 @@ namespace Umbraco.Tests.Logging { //Create an example JSON log file to check results //As a one time setup for all tets in this class/fixture - var ioHelper = new IOHelper(); + var ioHelper = TestHelper.IOHelper; var exampleLogfilePath = Path.Combine(TestContext.CurrentContext.TestDirectory, @"Logging\", _logfileName); _newLogfileDirPath = Path.Combine(TestContext.CurrentContext.TestDirectory, @"App_Data\Logs\"); diff --git a/src/Umbraco.Tests/Manifest/ManifestContentAppTests.cs b/src/Umbraco.Tests/Manifest/ManifestContentAppTests.cs index fe3e8a6bdf..5265349e69 100644 --- a/src/Umbraco.Tests/Manifest/ManifestContentAppTests.cs +++ b/src/Umbraco.Tests/Manifest/ManifestContentAppTests.cs @@ -7,6 +7,7 @@ using Umbraco.Core.IO; using Umbraco.Core.Manifest; using Umbraco.Core.Models; using Umbraco.Core.Models.Membership; +using Umbraco.Tests.TestHelpers; using Umbraco.Web.Composing; namespace Umbraco.Tests.Manifest @@ -69,7 +70,7 @@ namespace Umbraco.Tests.Manifest private void AssertDefinition(object source, bool expected, string[] show, IReadOnlyUserGroup[] groups) { var definition = JsonConvert.DeserializeObject("{" + (show.Length == 0 ? "" : " \"show\": [" + string.Join(",", show.Select(x => "\"" + x + "\"")) + "] ") + "}"); - var factory = new ManifestContentAppFactory(definition, IOHelper.Default); + var factory = new ManifestContentAppFactory(definition, TestHelper.IOHelper); var app = factory.GetContentAppFor(source, groups); if (expected) Assert.IsNotNull(app); diff --git a/src/Umbraco.Tests/Manifest/ManifestParserTests.cs b/src/Umbraco.Tests/Manifest/ManifestParserTests.cs index 955c7ba776..fb980fc986 100644 --- a/src/Umbraco.Tests/Manifest/ManifestParserTests.cs +++ b/src/Umbraco.Tests/Manifest/ManifestParserTests.cs @@ -15,6 +15,7 @@ using Umbraco.Core.Services; using Umbraco.Core.Dashboards; using Umbraco.Core.IO; using Umbraco.Core.Serialization; +using Umbraco.Tests.TestHelpers; namespace Umbraco.Tests.Manifest { @@ -31,7 +32,7 @@ namespace Umbraco.Tests.Manifest new RequiredValidator(Mock.Of()), new RegexValidator(Mock.Of(), null) }; - _parser = new ManifestParser(AppCaches.Disabled, new ManifestValueValidatorCollection(validators), new ManifestFilterCollection(Array.Empty()), Mock.Of(), IOHelper.Default, Mock.Of(), Mock.Of(), new JsonNetSerializer()); + _parser = new ManifestParser(AppCaches.Disabled, new ManifestValueValidatorCollection(validators), new ManifestFilterCollection(Array.Empty()), Mock.Of(), TestHelper.IOHelper, Mock.Of(), Mock.Of(), new JsonNetSerializer()); } [Test] diff --git a/src/Umbraco.Tests/Membership/UmbracoServiceMembershipProviderTests.cs b/src/Umbraco.Tests/Membership/UmbracoServiceMembershipProviderTests.cs index 82d66fd9de..85c2a6fac5 100644 --- a/src/Umbraco.Tests/Membership/UmbracoServiceMembershipProviderTests.cs +++ b/src/Umbraco.Tests/Membership/UmbracoServiceMembershipProviderTests.cs @@ -23,7 +23,7 @@ namespace Umbraco.Tests.Membership { var memberTypeServiceMock = new Mock(); memberTypeServiceMock.Setup(x => x.GetDefault()).Returns("Blah"); - var provider = new MembersMembershipProvider(Mock.Of(), memberTypeServiceMock.Object, UmbracoVersion, HostingEnvironment); + var provider = new MembersMembershipProvider(Mock.Of(), memberTypeServiceMock.Object, UmbracoVersion, HostingEnvironment, IpResolver); provider.Initialize("test", new NameValueCollection()); Assert.AreEqual("Blah", provider.DefaultMemberTypeAlias); @@ -34,7 +34,7 @@ namespace Umbraco.Tests.Membership { var memberTypeServiceMock = new Mock(); memberTypeServiceMock.Setup(x => x.GetDefault()).Returns("Blah"); - var provider = new MembersMembershipProvider(Mock.Of(), memberTypeServiceMock.Object, UmbracoVersion, HostingEnvironment); + var provider = new MembersMembershipProvider(Mock.Of(), memberTypeServiceMock.Object, UmbracoVersion, HostingEnvironment, IpResolver); provider.Initialize("test", new NameValueCollection { { "defaultMemberTypeAlias", "Hello" } }); Assert.AreEqual("Hello", provider.DefaultMemberTypeAlias); @@ -48,7 +48,7 @@ namespace Umbraco.Tests.Membership var membershipServiceMock = new Mock(); membershipServiceMock.Setup(service => service.Exists("test")).Returns(true); - var provider = new MembersMembershipProvider(membershipServiceMock.Object, memberTypeServiceMock.Object, UmbracoVersion, HostingEnvironment); + var provider = new MembersMembershipProvider(membershipServiceMock.Object, memberTypeServiceMock.Object, UmbracoVersion, HostingEnvironment, IpResolver); provider.Initialize("test", new NameValueCollection()); MembershipCreateStatus status; @@ -65,7 +65,7 @@ namespace Umbraco.Tests.Membership var membershipServiceMock = new Mock(); membershipServiceMock.Setup(service => service.GetByEmail("test@test.com")).Returns(() => new Member("test", MockedContentTypes.CreateSimpleMemberType())); - var provider = new MembersMembershipProvider(membershipServiceMock.Object, memberTypeServiceMock.Object, UmbracoVersion, HostingEnvironment); + var provider = new MembersMembershipProvider(membershipServiceMock.Object, memberTypeServiceMock.Object, UmbracoVersion, HostingEnvironment, IpResolver); provider.Initialize("test", new NameValueCollection { { "requiresUniqueEmail", "true" } }); MembershipCreateStatus status; @@ -95,7 +95,7 @@ namespace Umbraco.Tests.Membership createdMember = new Member("test", e, u, p, memberType, isApproved); }) .Returns(() => createdMember); - var provider = new MembersMembershipProvider(membershipServiceMock.Object, memberTypeServiceMock.Object, UmbracoVersion, HostingEnvironment); + var provider = new MembersMembershipProvider(membershipServiceMock.Object, memberTypeServiceMock.Object, UmbracoVersion, HostingEnvironment, IpResolver); provider.Initialize("test", new NameValueCollection()); @@ -128,7 +128,7 @@ namespace Umbraco.Tests.Membership }) .Returns(() => createdMember); - var provider = new MembersMembershipProvider(membershipServiceMock.Object, memberTypeServiceMock.Object, UmbracoVersion, HostingEnvironment); + var provider = new MembersMembershipProvider(membershipServiceMock.Object, memberTypeServiceMock.Object, UmbracoVersion, HostingEnvironment, IpResolver); provider.Initialize("test", new NameValueCollection { { "passwordFormat", "Encrypted" } }); @@ -162,7 +162,7 @@ namespace Umbraco.Tests.Membership }) .Returns(() => createdMember); - var provider = new MembersMembershipProvider(membershipServiceMock.Object, memberTypeServiceMock.Object, UmbracoVersion, HostingEnvironment); + var provider = new MembersMembershipProvider(membershipServiceMock.Object, memberTypeServiceMock.Object, UmbracoVersion, HostingEnvironment, IpResolver); provider.Initialize("test", new NameValueCollection { { "passwordFormat", "Hashed" }, { "hashAlgorithmType", "HMACSHA256" } }); diff --git a/src/Umbraco.Tests/PublishedContent/NuCacheChildrenTests.cs b/src/Umbraco.Tests/PublishedContent/NuCacheChildrenTests.cs index 8c7b64aec7..0845daee9c 100644 --- a/src/Umbraco.Tests/PublishedContent/NuCacheChildrenTests.cs +++ b/src/Umbraco.Tests/PublishedContent/NuCacheChildrenTests.cs @@ -58,7 +58,7 @@ namespace Umbraco.Tests.PublishedContent var configs = TestHelper.GetConfigs(); Mock.Get(factory).Setup(x => x.GetInstance(typeof(Configs))).Returns(configs); - var globalSettings = new GlobalSettings(IOHelper.Default); + var globalSettings = new GlobalSettings(TestHelper.IOHelper); var hostingEnvironment = Mock.Of(); configs.Add(SettingsForTests.GenerateMockUmbracoSettings); configs.Add(() => globalSettings); diff --git a/src/Umbraco.Tests/PublishedContent/NuCacheTests.cs b/src/Umbraco.Tests/PublishedContent/NuCacheTests.cs index d34aaa7dfb..63eac1479b 100644 --- a/src/Umbraco.Tests/PublishedContent/NuCacheTests.cs +++ b/src/Umbraco.Tests/PublishedContent/NuCacheTests.cs @@ -52,7 +52,7 @@ namespace Umbraco.Tests.PublishedContent var configs = TestHelper.GetConfigs(); Mock.Get(factory).Setup(x => x.GetInstance(typeof(Configs))).Returns(configs); - var globalSettings = new GlobalSettings(IOHelper.Default); + var globalSettings = new GlobalSettings(TestHelper.IOHelper); configs.Add(SettingsForTests.GenerateMockUmbracoSettings); configs.Add(() => globalSettings); diff --git a/src/Umbraco.Tests/Runtimes/CoreRuntimeTests.cs b/src/Umbraco.Tests/Runtimes/CoreRuntimeTests.cs index 7a9a270267..a88d3146ed 100644 --- a/src/Umbraco.Tests/Runtimes/CoreRuntimeTests.cs +++ b/src/Umbraco.Tests/Runtimes/CoreRuntimeTests.cs @@ -89,7 +89,7 @@ namespace Umbraco.Tests.Runtimes } private static readonly DebugDiagnosticsLogger _logger = new DebugDiagnosticsLogger(new MessageTemplates()); - private static readonly IIOHelper _ioHelper = IOHelper.Default; + private static readonly IIOHelper _ioHelper = TestHelper.IOHelper; private static readonly IProfiler _profiler = new TestProfiler(); private static readonly Configs _configs = GetConfigs(); private static readonly IGlobalSettings _globalSettings = _configs.Global(); diff --git a/src/Umbraco.Tests/Runtimes/StandaloneTests.cs b/src/Umbraco.Tests/Runtimes/StandaloneTests.cs index 697d37f25a..ce8c1a2dd3 100644 --- a/src/Umbraco.Tests/Runtimes/StandaloneTests.cs +++ b/src/Umbraco.Tests/Runtimes/StandaloneTests.cs @@ -63,7 +63,7 @@ namespace Umbraco.Tests.Runtimes var appCaches = AppCaches.Disabled; var databaseFactory = new UmbracoDatabaseFactory(logger, new Lazy(() => factory.GetInstance()), TestHelper.GetConfigs()); var typeFinder = new TypeFinder(logger); - var ioHelper = IOHelper.Default; + var ioHelper = TestHelper.IOHelper; var hostingEnvironment = Mock.Of(); var typeLoader = new TypeLoader(ioHelper, typeFinder, appCaches.RuntimeCache, new DirectoryInfo(ioHelper.MapPath("~/App_Data/TEMP")), profilingLogger); var mainDom = new SimpleMainDom(); @@ -256,7 +256,7 @@ namespace Umbraco.Tests.Runtimes var appCaches = AppCaches.Disabled; var databaseFactory = Mock.Of(); var typeFinder = new TypeFinder(Mock.Of()); - var ioHelper = IOHelper.Default; + var ioHelper = TestHelper.IOHelper; var typeLoader = new TypeLoader(ioHelper, typeFinder, appCaches.RuntimeCache, new DirectoryInfo(ioHelper.MapPath("~/App_Data/TEMP")), profilingLogger); var runtimeState = Mock.Of(); var hostingEnvironment = Mock.Of(); diff --git a/src/Umbraco.Tests/Scoping/ScopeEventDispatcherTests.cs b/src/Umbraco.Tests/Scoping/ScopeEventDispatcherTests.cs index 708f0d29db..d48a54c625 100644 --- a/src/Umbraco.Tests/Scoping/ScopeEventDispatcherTests.cs +++ b/src/Umbraco.Tests/Scoping/ScopeEventDispatcherTests.cs @@ -36,7 +36,7 @@ namespace Umbraco.Tests.Scoping _testObjects = new TestObjects(register); - composition.RegisterUnique(factory => new FileSystems(factory, factory.TryGetInstance(), IOHelper.Default, SettingsForTests.GenerateMockGlobalSettings())); + composition.RegisterUnique(factory => new FileSystems(factory, factory.TryGetInstance(), TestHelper.IOHelper, SettingsForTests.GenerateMockGlobalSettings())); composition.WithCollectionBuilder(); composition.Configs.Add(SettingsForTests.GetDefaultGlobalSettings); diff --git a/src/Umbraco.Tests/Scoping/ScopeFileSystemsTests.cs b/src/Umbraco.Tests/Scoping/ScopeFileSystemsTests.cs index b5c441a280..ca550ab027 100644 --- a/src/Umbraco.Tests/Scoping/ScopeFileSystemsTests.cs +++ b/src/Umbraco.Tests/Scoping/ScopeFileSystemsTests.cs @@ -86,7 +86,7 @@ namespace Umbraco.Tests.Scoping [Test] public void MultiThread() { - var physMediaFileSystem = new PhysicalFileSystem(IOHelper.MapPath("media"), "ignore", new IOHelper()); + var physMediaFileSystem = new PhysicalFileSystem(IOHelper.MapPath("media"), "ignore", IOHelper); var mediaFileSystem = Current.MediaFileSystem; var scopeProvider = ScopeProvider; diff --git a/src/Umbraco.Tests/Services/MemberServiceTests.cs b/src/Umbraco.Tests/Services/MemberServiceTests.cs index 3dac633264..043ae9753f 100644 --- a/src/Umbraco.Tests/Services/MemberServiceTests.cs +++ b/src/Umbraco.Tests/Services/MemberServiceTests.cs @@ -41,7 +41,7 @@ namespace Umbraco.Tests.Services base.SetUp(); // HACK: but we have no choice until we remove the SavePassword method from IMemberService - var providerMock = new Mock(ServiceContext.MemberService, ServiceContext.MemberTypeService, TestHelper.GetUmbracoVersion(), TestHelper.GetHostingEnvironment()) { CallBase = true }; + var providerMock = new Mock(ServiceContext.MemberService, ServiceContext.MemberTypeService, TestHelper.GetUmbracoVersion(), TestHelper.GetHostingEnvironment(), new AspNetIpResolver()) { CallBase = true }; providerMock.Setup(@base => @base.AllowManuallyChangingPassword).Returns(false); providerMock.Setup(@base => @base.PasswordFormat).Returns(MembershipPasswordFormat.Hashed); var provider = providerMock.Object; diff --git a/src/Umbraco.Tests/TestHelpers/BaseUsingSqlCeSyntax.cs b/src/Umbraco.Tests/TestHelpers/BaseUsingSqlCeSyntax.cs index 140759c3bd..e66a8d2450 100644 --- a/src/Umbraco.Tests/TestHelpers/BaseUsingSqlCeSyntax.cs +++ b/src/Umbraco.Tests/TestHelpers/BaseUsingSqlCeSyntax.cs @@ -37,7 +37,7 @@ namespace Umbraco.Tests.TestHelpers var container = TestHelper.GetRegister(); - var ioHelper = IOHelper.Default; + var ioHelper = TestHelper.IOHelper; var logger = new ProfilingLogger(Mock.Of(), Mock.Of()); var typeFinder = new TypeFinder(Mock.Of()); var typeLoader = new TypeLoader(ioHelper, typeFinder, NoAppCache.Instance, diff --git a/src/Umbraco.Tests/TestHelpers/SettingsForTests.cs b/src/Umbraco.Tests/TestHelpers/SettingsForTests.cs index a81a1062fc..231e6aef66 100644 --- a/src/Umbraco.Tests/TestHelpers/SettingsForTests.cs +++ b/src/Umbraco.Tests/TestHelpers/SettingsForTests.cs @@ -18,11 +18,10 @@ namespace Umbraco.Tests.TestHelpers settings.ConfigurationStatus == TestHelper.GetUmbracoVersion().SemanticVersion.ToSemanticString() && settings.UseHttps == false && settings.HideTopLevelNodeFromPath == false && - settings.Path == Current.IOHelper.ResolveUrl("~/umbraco") && + settings.Path == TestHelper.IOHelper.ResolveUrl("~/umbraco") && settings.TimeOutInMinutes == 20 && settings.DefaultUILanguage == "en" && settings.LocalTempStorageLocation == LocalTempStorage.Default && - //settings.LocalTempPath == Current.IOHelper.MapPath("~/App_Data/TEMP") && settings.ReservedPaths == (GlobalSettings.StaticReservedPaths + "~/umbraco") && settings.ReservedUrls == GlobalSettings.StaticReservedUrls && settings.UmbracoPath == "~/umbraco" && diff --git a/src/Umbraco.Tests/TestHelpers/TestHelper.cs b/src/Umbraco.Tests/TestHelpers/TestHelper.cs index e1363bd679..87bde19add 100644 --- a/src/Umbraco.Tests/TestHelpers/TestHelper.cs +++ b/src/Umbraco.Tests/TestHelpers/TestHelper.cs @@ -35,7 +35,7 @@ namespace Umbraco.Tests.TestHelpers public static TypeLoader GetMockedTypeLoader() { - return new TypeLoader(IOHelper.Default, Mock.Of(), Mock.Of(), new DirectoryInfo(IOHelper.Default.MapPath("~/App_Data/TEMP")), Mock.Of()); + return new TypeLoader(IOHelper, Mock.Of(), Mock.Of(), new DirectoryInfo(IOHelper.MapPath("~/App_Data/TEMP")), Mock.Of()); } public static Configs GetConfigs() @@ -58,12 +58,12 @@ namespace Umbraco.Tests.TestHelpers public static IBackOfficeInfo GetBackOfficeInfo() { - return new AspNetBackOfficeInfo(SettingsForTests.GenerateMockGlobalSettings(), IOHelper.Default, SettingsForTests.GenerateMockUmbracoSettings(), Mock.Of()); + return new AspNetBackOfficeInfo(SettingsForTests.GenerateMockGlobalSettings(), TestHelper.IOHelper, SettingsForTests.GenerateMockUmbracoSettings(), Mock.Of()); } public static IConfigsFactory GetConfigsFactory() { - return new ConfigsFactory(IOHelper.Default); + return new ConfigsFactory(IOHelper); } /// @@ -81,6 +81,8 @@ namespace Umbraco.Tests.TestHelpers } } + public static IIOHelper IOHelper = new IOHelper(); + /// /// Maps the given making it rooted on . must start with ~/ /// @@ -108,9 +110,9 @@ namespace Umbraco.Tests.TestHelpers { foreach (var directory in directories) { - var directoryInfo = new DirectoryInfo(Current.IOHelper.MapPath(directory)); + var directoryInfo = new DirectoryInfo(IOHelper.MapPath(directory)); if (directoryInfo.Exists == false) - Directory.CreateDirectory(Current.IOHelper.MapPath(directory)); + Directory.CreateDirectory(IOHelper.MapPath(directory)); } } @@ -122,7 +124,7 @@ namespace Umbraco.Tests.TestHelpers }; foreach (var directory in directories) { - var directoryInfo = new DirectoryInfo(Current.IOHelper.MapPath(directory)); + var directoryInfo = new DirectoryInfo(IOHelper.MapPath(directory)); var preserve = preserves.ContainsKey(directory) ? preserves[directory] : null; if (directoryInfo.Exists) foreach (var x in directoryInfo.GetFiles().Where(x => preserve == null || preserve.Contains(x.Name) == false)) @@ -310,7 +312,7 @@ namespace Umbraco.Tests.TestHelpers public static IHostingEnvironment GetHostingEnvironment() { - return new AspNetHostingEnvironment(SettingsForTests.GetDefaultGlobalSettings(), IOHelper.Default); + return new AspNetHostingEnvironment(SettingsForTests.GetDefaultGlobalSettings(), TestHelper.IOHelper); } } } diff --git a/src/Umbraco.Tests/TestHelpers/TestObjects.cs b/src/Umbraco.Tests/TestHelpers/TestObjects.cs index 1ad0ef63dc..19b8857b47 100644 --- a/src/Umbraco.Tests/TestHelpers/TestObjects.cs +++ b/src/Umbraco.Tests/TestHelpers/TestObjects.cs @@ -243,7 +243,7 @@ namespace Umbraco.Tests.TestHelpers } typeFinder = typeFinder ?? new TypeFinder(logger); - fileSystems = fileSystems ?? new FileSystems(Current.Factory, logger, IOHelper.Default, SettingsForTests.GenerateMockGlobalSettings()); + fileSystems = fileSystems ?? new FileSystems(Current.Factory, logger, TestHelper.IOHelper, SettingsForTests.GenerateMockGlobalSettings()); var scopeProvider = new ScopeProvider(databaseFactory, fileSystems, logger, typeFinder); return scopeProvider; } diff --git a/src/Umbraco.Tests/Testing/UmbracoTestBase.cs b/src/Umbraco.Tests/Testing/UmbracoTestBase.cs index e634d600ea..a93eae2041 100644 --- a/src/Umbraco.Tests/Testing/UmbracoTestBase.cs +++ b/src/Umbraco.Tests/Testing/UmbracoTestBase.cs @@ -111,6 +111,7 @@ namespace Umbraco.Tests.Testing protected virtual IProfilingLogger ProfilingLogger => Factory.GetInstance(); protected IHostingEnvironment HostingEnvironment => Factory.GetInstance(); + protected IIpResolver IpResolver => Factory.GetInstance(); protected IBackOfficeInfo BackOfficeInfo => Factory.GetInstance(); protected AppCaches AppCaches => Factory.GetInstance(); @@ -139,7 +140,7 @@ namespace Umbraco.Tests.Testing var (logger, profiler) = GetLoggers(Options.Logger); var proflogger = new ProfilingLogger(logger, profiler); - IOHelper = Umbraco.Core.IO.IOHelper.Default; + IOHelper = TestHelper.IOHelper; TypeFinder = new TypeFinder(logger); var appCaches = GetAppCaches(); @@ -147,6 +148,7 @@ namespace Umbraco.Tests.Testing var settings = SettingsForTests.GetDefaultUmbracoSettings(); IHostingEnvironment hostingEnvironment = new AspNetHostingEnvironment(globalSettings, IOHelper); IBackOfficeInfo backOfficeInfo = new AspNetBackOfficeInfo(globalSettings, IOHelper, settings, logger); + IIpResolver ipResolver = new AspNetIpResolver(); UmbracoVersion = new UmbracoVersion(globalSettings); var typeLoader = GetTypeLoader(IOHelper, TypeFinder, appCaches.RuntimeCache, hostingEnvironment, proflogger, Options.TypeLoader); @@ -165,6 +167,7 @@ namespace Umbraco.Tests.Testing Composition.RegisterUnique(appCaches); Composition.RegisterUnique(hostingEnvironment); Composition.RegisterUnique(backOfficeInfo); + Composition.RegisterUnique(ipResolver); TestObjects = new TestObjects(register); Compose(); diff --git a/src/Umbraco.Tests/Web/Controllers/AuthenticationControllerTests.cs b/src/Umbraco.Tests/Web/Controllers/AuthenticationControllerTests.cs index ef28a7fc9d..3d264663b5 100644 --- a/src/Umbraco.Tests/Web/Controllers/AuthenticationControllerTests.cs +++ b/src/Umbraco.Tests/Web/Controllers/AuthenticationControllerTests.cs @@ -70,10 +70,10 @@ namespace Umbraco.Tests.Web.Controllers } else { - var baseDir = Current.IOHelper.MapPath("", false).TrimEnd(Current.IOHelper.DirSepChar); + var baseDir = IOHelper.MapPath("", false).TrimEnd(IOHelper.DirSepChar); HttpContext.Current = new HttpContext(new SimpleWorkerRequest("/", baseDir, "", "", new StringWriter())); } - Current.IOHelper.ForceNotHosted = true; + IOHelper.ForceNotHosted = true; var usersController = new AuthenticationController( Factory.GetInstance(), umbracoContextAccessor, diff --git a/src/Umbraco.Tests/Web/UmbracoHelperTests.cs b/src/Umbraco.Tests/Web/UmbracoHelperTests.cs index 425f24be41..826b62e599 100644 --- a/src/Umbraco.Tests/Web/UmbracoHelperTests.cs +++ b/src/Umbraco.Tests/Web/UmbracoHelperTests.cs @@ -261,7 +261,7 @@ namespace Umbraco.Tests.Web // FIXME: bad in a unit test - but Udi has a static ctor that wants it?! var container = new Mock(); var typeFinder = new TypeFinder(Mock.Of()); - var ioHelper = IOHelper.Default; + var ioHelper = TestHelper.IOHelper; container .Setup(x => x.GetInstance(typeof(TypeLoader))) .Returns(new TypeLoader( diff --git a/src/Umbraco.Core/HttpContextExtensions.cs b/src/Umbraco.Web/HttpContextExtensions.cs similarity index 100% rename from src/Umbraco.Core/HttpContextExtensions.cs rename to src/Umbraco.Web/HttpContextExtensions.cs diff --git a/src/Umbraco.Web/Security/Providers/MembersMembershipProvider.cs b/src/Umbraco.Web/Security/Providers/MembersMembershipProvider.cs index 6f77c352f7..ad54d5eed6 100644 --- a/src/Umbraco.Web/Security/Providers/MembersMembershipProvider.cs +++ b/src/Umbraco.Web/Security/Providers/MembersMembershipProvider.cs @@ -18,11 +18,11 @@ namespace Umbraco.Web.Security.Providers public class MembersMembershipProvider : UmbracoMembershipProvider, IUmbracoMemberTypeMembershipProvider { public MembersMembershipProvider() - : this(Current.Services.MemberService, Current.Services.MemberTypeService, Current.UmbracoVersion, Current.HostingEnvironment) + : this(Current.Services.MemberService, Current.Services.MemberTypeService, Current.UmbracoVersion, Current.HostingEnvironment, Current.IpResolver) { } - public MembersMembershipProvider(IMembershipMemberService memberService, IMemberTypeService memberTypeService, IUmbracoVersion umbracoVersion, IHostingEnvironment hostingEnvironment) - : base(memberService, umbracoVersion, hostingEnvironment) + public MembersMembershipProvider(IMembershipMemberService memberService, IMemberTypeService memberTypeService, IUmbracoVersion umbracoVersion, IHostingEnvironment hostingEnvironment, IIpResolver ipResolver) + : base(memberService, umbracoVersion, hostingEnvironment, ipResolver) { LockPropertyTypeAlias = Constants.Conventions.Member.IsLockedOut; LastLockedOutPropertyTypeAlias = Constants.Conventions.Member.LastLockoutDate; diff --git a/src/Umbraco.Web/Security/Providers/UmbracoMembershipProvider.cs b/src/Umbraco.Web/Security/Providers/UmbracoMembershipProvider.cs index 25fe97bb7e..6a89a745ce 100644 --- a/src/Umbraco.Web/Security/Providers/UmbracoMembershipProvider.cs +++ b/src/Umbraco.Web/Security/Providers/UmbracoMembershipProvider.cs @@ -29,13 +29,15 @@ namespace Umbraco.Web.Security.Providers where TEntity : class, IMembershipUser { private readonly IUmbracoVersion _umbracoVersion; + private readonly IIpResolver _ipResolver; protected IMembershipMemberService MemberService { get; private set; } - protected UmbracoMembershipProvider(IMembershipMemberService memberService, IUmbracoVersion umbracoVersion, IHostingEnvironment hostingEnvironment) + protected UmbracoMembershipProvider(IMembershipMemberService memberService, IUmbracoVersion umbracoVersion, IHostingEnvironment hostingEnvironment, IIpResolver ipResolver) :base(hostingEnvironment) { _umbracoVersion = umbracoVersion; + _ipResolver = ipResolver; MemberService = memberService; } @@ -528,7 +530,7 @@ namespace Umbraco.Web.Security.Providers if (member == null) { - Current.Logger.Info("Login attempt failed for username {Username} from IP address {IpAddress}, the user does not exist", username, GetCurrentRequestIpAddress()); + Current.Logger.Info("Login attempt failed for username {Username} from IP address {IpAddress}, the user does not exist", username, _ipResolver.GetCurrentRequestIpAddress()); return new ValidateUserResult { @@ -538,7 +540,7 @@ namespace Umbraco.Web.Security.Providers if (member.IsApproved == false) { - Current.Logger.Info("Login attempt failed for username {Username} from IP address {IpAddress}, the user is not approved", username, GetCurrentRequestIpAddress()); + Current.Logger.Info("Login attempt failed for username {Username} from IP address {IpAddress}, the user is not approved", username, _ipResolver.GetCurrentRequestIpAddress()); return new ValidateUserResult { @@ -548,7 +550,7 @@ namespace Umbraco.Web.Security.Providers } if (member.IsLockedOut) { - Current.Logger.Info("Login attempt failed for username {Username} from IP address {IpAddress}, the user is locked", username, GetCurrentRequestIpAddress()); + Current.Logger.Info("Login attempt failed for username {Username} from IP address {IpAddress}, the user is locked", username, _ipResolver.GetCurrentRequestIpAddress()); return new ValidateUserResult { @@ -572,11 +574,11 @@ namespace Umbraco.Web.Security.Providers member.IsLockedOut = true; member.LastLockoutDate = DateTime.Now; - Current.Logger.Info("Login attempt failed for username {Username} from IP address {IpAddress}, the user is now locked out, max invalid password attempts exceeded", username, GetCurrentRequestIpAddress()); + Current.Logger.Info("Login attempt failed for username {Username} from IP address {IpAddress}, the user is now locked out, max invalid password attempts exceeded", username, _ipResolver.GetCurrentRequestIpAddress()); } else { - Current.Logger.Info("Login attempt failed for username {Username} from IP address {IpAddress}", username, GetCurrentRequestIpAddress()); + Current.Logger.Info("Login attempt failed for username {Username} from IP address {IpAddress}", username, _ipResolver.GetCurrentRequestIpAddress()); } } else @@ -589,7 +591,7 @@ namespace Umbraco.Web.Security.Providers member.LastLoginDate = DateTime.Now; - Current.Logger.Info("Login attempt succeeded for username {Username} from IP address {IpAddress}", username, GetCurrentRequestIpAddress()); + Current.Logger.Info("Login attempt succeeded for username {Username} from IP address {IpAddress}", username, _ipResolver.GetCurrentRequestIpAddress()); } //don't raise events for this! It just sets the member dates, if we do raise events this will diff --git a/src/Umbraco.Web/Security/Providers/UsersMembershipProvider.cs b/src/Umbraco.Web/Security/Providers/UsersMembershipProvider.cs index 81fd4ed33b..24415b39cd 100644 --- a/src/Umbraco.Web/Security/Providers/UsersMembershipProvider.cs +++ b/src/Umbraco.Web/Security/Providers/UsersMembershipProvider.cs @@ -20,12 +20,12 @@ namespace Umbraco.Web.Security.Providers { public UsersMembershipProvider() - : this(Current.Services.UserService, Current.Services.MemberTypeService, Current.UmbracoVersion, Current.HostingEnvironment) + : this(Current.Services.UserService, Current.Services.MemberTypeService, Current.UmbracoVersion, Current.HostingEnvironment, Current.IpResolver) { } - public UsersMembershipProvider(IMembershipMemberService memberService, IMemberTypeService memberTypeService, IUmbracoVersion umbracoVersion, IHostingEnvironment hostingEnvironment) - : base(memberService, umbracoVersion, hostingEnvironment) + public UsersMembershipProvider(IMembershipMemberService memberService, IMemberTypeService memberTypeService, IUmbracoVersion umbracoVersion, IHostingEnvironment hostingEnvironment, IIpResolver ipResolver) + : base(memberService, umbracoVersion, hostingEnvironment, ipResolver) { _memberTypeService = memberTypeService; } diff --git a/src/Umbraco.Web/Umbraco.Web.csproj b/src/Umbraco.Web/Umbraco.Web.csproj index e1800c8311..21b637c0dd 100755 --- a/src/Umbraco.Web/Umbraco.Web.csproj +++ b/src/Umbraco.Web/Umbraco.Web.csproj @@ -166,6 +166,7 @@ + diff --git a/src/Umbraco.Web/UmbracoApplicationBase.cs b/src/Umbraco.Web/UmbracoApplicationBase.cs index 3e1f8ba808..731132d8bf 100644 --- a/src/Umbraco.Web/UmbracoApplicationBase.cs +++ b/src/Umbraco.Web/UmbracoApplicationBase.cs @@ -30,7 +30,7 @@ namespace Umbraco.Web protected UmbracoApplicationBase() { - _ioHelper = IOHelper.Default; + _ioHelper = new IOHelper(); _configs = new ConfigsFactory(_ioHelper).Create(); var globalSettings = _configs.Global();