Removed IOHelper.Default, to prepare for injecting

This commit is contained in:
Bjarke Berg
2019-11-26 08:15:00 +01:00
parent 0354fc91bc
commit 323a60fa76
37 changed files with 108 additions and 113 deletions

View File

@@ -206,7 +206,7 @@ namespace Umbraco.Core.Composing
public static IVariationContextAccessor VariationContextAccessor
=> Factory.GetInstance<IVariationContextAccessor>();
public static readonly IIOHelper IOHelper = Umbraco.Core.IO.IOHelper.Default;
public static IIOHelper IOHelper => new IOHelper();
public static IUmbracoVersion UmbracoVersion
=> Factory.GetInstance<IUmbracoVersion>();

View File

@@ -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

View File

@@ -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();
/// <summary>
/// Gets or sets a value forcing Umbraco to consider it is non-hosted.
/// </summary>

View File

@@ -956,15 +956,7 @@ namespace Umbraco.Core.Security
return sb.ToString();
}
/// <summary>
/// Returns the current request IP address for logging if there is one
/// </summary>
/// <returns></returns>
protected string GetCurrentRequestIpAddress()
{
var httpContext = HttpContext.Current == null ? (HttpContextBase) null : new HttpContextWrapper(HttpContext.Current);
return httpContext.GetCurrentRequestIpAddress();
}
}
}

View File

@@ -376,7 +376,6 @@
<Compile Include="Events\UninstallPackageEventArgs.cs" />
<Compile Include="Composing\LightInject\LightInjectException.cs" />
<Compile Include="FileResources\Files.Designer.cs" />
<Compile Include="HttpContextExtensions.cs" />
<Compile Include="IO\FileSecurityException.cs" />
<Compile Include="IO\FileSystemExtensions.cs" />
<Compile Include="IO\FileSystems.cs" />

View File

@@ -37,7 +37,7 @@ namespace Umbraco.Tests.Components
var logger = Mock.Of<ILogger>();
var typeFinder = new TypeFinder(logger);
var f = new UmbracoDatabaseFactory(logger, new Lazy<IMapperCollection>(() => new MapperCollection(Enumerable.Empty<BaseMapper>())), 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<ITypeFinder>(), Mock.Of<IAppPolicyCache>(), new DirectoryInfo(ioHelper.MapPath("~/App_Data/TEMP")), Mock.Of<IProfilingLogger>());
}
@@ -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<ILogger>());
var typeLoader = new TypeLoader(ioHelper, typeFinder, AppCaches.Disabled.RuntimeCache, new DirectoryInfo(ioHelper.MapPath("~/App_Data/TEMP")), Mock.Of<IProfilingLogger>());

View File

@@ -24,7 +24,7 @@ namespace Umbraco.Tests.Composing
ProfilingLogger = new ProfilingLogger(Mock.Of<ILogger>(), Mock.Of<IProfiler>());
var typeFinder = new TypeFinder(Mock.Of<ILogger>());
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);
}

View File

@@ -39,7 +39,7 @@ namespace Umbraco.Tests.Composing
var logger = new ProfilingLogger(Mock.Of<ILogger>(), Mock.Of<IProfiler>());
var typeFinder = new TypeFinder(Mock.Of<ILogger>());
var ioHelper = IOHelper.Default;
var ioHelper = TestHelper.IOHelper;
var typeLoader = new TypeLoader(ioHelper, typeFinder, Mock.Of<IAppPolicyCache>(), new DirectoryInfo(ioHelper.MapPath("~/App_Data/TEMP")), logger);
var composition = new Composition(mockedRegister, typeLoader, logger, Mock.Of<IRuntimeState>(), TestHelper.GetConfigs());

View File

@@ -28,8 +28,8 @@ namespace Umbraco.Tests.Composing
{
// this ensures it's reset
var typeFinder = new TypeFinder(Mock.Of<ILogger>());
_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<ILogger>(), Mock.Of<IProfiler>()), false,
// for testing, we'll specify which assemblies are scanned for the PluginTypeResolver

View File

@@ -33,9 +33,9 @@ namespace Umbraco.Tests.IO
composition.Register(_ => Mock.Of<ILogger>());
composition.Register(_ => Mock.Of<IDataTypeService>());
composition.Register(_ => Mock.Of<IContentSection>());
composition.Register(_ => IOHelper.Default);
composition.Register(_ => TestHelper.IOHelper);
composition.RegisterUnique<IMediaPathScheme, UniqueMediaPathScheme>();
composition.RegisterUnique(IOHelper.Default);
composition.RegisterUnique(TestHelper.IOHelper);
composition.Configs.Add(SettingsForTests.GetDefaultGlobalSettings);
composition.Configs.Add(SettingsForTests.GetDefaultUmbracoSettings);

View File

@@ -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]

View File

@@ -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]

View File

@@ -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<ILogger>();
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<ILogger>();
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<ILogger>();
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);

View File

@@ -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\");

View File

@@ -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<ManifestContentAppDefinition>("{" + (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);

View File

@@ -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<ILocalizedTextService>()),
new RegexValidator(Mock.Of<ILocalizedTextService>(), null)
};
_parser = new ManifestParser(AppCaches.Disabled, new ManifestValueValidatorCollection(validators), new ManifestFilterCollection(Array.Empty<IManifestFilter>()), Mock.Of<ILogger>(), IOHelper.Default, Mock.Of<IDataTypeService>(), Mock.Of<ILocalizationService>(), new JsonNetSerializer());
_parser = new ManifestParser(AppCaches.Disabled, new ManifestValueValidatorCollection(validators), new ManifestFilterCollection(Array.Empty<IManifestFilter>()), Mock.Of<ILogger>(), TestHelper.IOHelper, Mock.Of<IDataTypeService>(), Mock.Of<ILocalizationService>(), new JsonNetSerializer());
}
[Test]

View File

@@ -23,7 +23,7 @@ namespace Umbraco.Tests.Membership
{
var memberTypeServiceMock = new Mock<IMemberTypeService>();
memberTypeServiceMock.Setup(x => x.GetDefault()).Returns("Blah");
var provider = new MembersMembershipProvider(Mock.Of<IMembershipMemberService>(), memberTypeServiceMock.Object, UmbracoVersion, HostingEnvironment);
var provider = new MembersMembershipProvider(Mock.Of<IMembershipMemberService>(), 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<IMemberTypeService>();
memberTypeServiceMock.Setup(x => x.GetDefault()).Returns("Blah");
var provider = new MembersMembershipProvider(Mock.Of<IMembershipMemberService>(), memberTypeServiceMock.Object, UmbracoVersion, HostingEnvironment);
var provider = new MembersMembershipProvider(Mock.Of<IMembershipMemberService>(), 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<IMembershipMemberService>();
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<IMembershipMemberService>();
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" } });

View File

@@ -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<IHostingEnvironment>();
configs.Add(SettingsForTests.GenerateMockUmbracoSettings);
configs.Add<IGlobalSettings>(() => globalSettings);

View File

@@ -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<IGlobalSettings>(() => globalSettings);

View File

@@ -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();

View File

@@ -63,7 +63,7 @@ namespace Umbraco.Tests.Runtimes
var appCaches = AppCaches.Disabled;
var databaseFactory = new UmbracoDatabaseFactory(logger, new Lazy<IMapperCollection>(() => factory.GetInstance<IMapperCollection>()), TestHelper.GetConfigs());
var typeFinder = new TypeFinder(logger);
var ioHelper = IOHelper.Default;
var ioHelper = TestHelper.IOHelper;
var hostingEnvironment = Mock.Of<IHostingEnvironment>();
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<IUmbracoDatabaseFactory>();
var typeFinder = new TypeFinder(Mock.Of<ILogger>());
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<IRuntimeState>();
var hostingEnvironment = Mock.Of<IHostingEnvironment>();

View File

@@ -36,7 +36,7 @@ namespace Umbraco.Tests.Scoping
_testObjects = new TestObjects(register);
composition.RegisterUnique(factory => new FileSystems(factory, factory.TryGetInstance<ILogger>(), IOHelper.Default, SettingsForTests.GenerateMockGlobalSettings()));
composition.RegisterUnique(factory => new FileSystems(factory, factory.TryGetInstance<ILogger>(), TestHelper.IOHelper, SettingsForTests.GenerateMockGlobalSettings()));
composition.WithCollectionBuilder<MapperCollectionBuilder>();
composition.Configs.Add(SettingsForTests.GetDefaultGlobalSettings);

View File

@@ -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;

View File

@@ -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<MembersMembershipProvider>(ServiceContext.MemberService, ServiceContext.MemberTypeService, TestHelper.GetUmbracoVersion(), TestHelper.GetHostingEnvironment()) { CallBase = true };
var providerMock = new Mock<MembersMembershipProvider>(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;

View File

@@ -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<ILogger>(), Mock.Of<IProfiler>());
var typeFinder = new TypeFinder(Mock.Of<ILogger>());
var typeLoader = new TypeLoader(ioHelper, typeFinder, NoAppCache.Instance,

View File

@@ -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" &&

View File

@@ -35,7 +35,7 @@ namespace Umbraco.Tests.TestHelpers
public static TypeLoader GetMockedTypeLoader()
{
return new TypeLoader(IOHelper.Default, Mock.Of<ITypeFinder>(), Mock.Of<IAppPolicyCache>(), new DirectoryInfo(IOHelper.Default.MapPath("~/App_Data/TEMP")), Mock.Of<IProfilingLogger>());
return new TypeLoader(IOHelper, Mock.Of<ITypeFinder>(), Mock.Of<IAppPolicyCache>(), new DirectoryInfo(IOHelper.MapPath("~/App_Data/TEMP")), Mock.Of<IProfilingLogger>());
}
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<ILogger>());
return new AspNetBackOfficeInfo(SettingsForTests.GenerateMockGlobalSettings(), TestHelper.IOHelper, SettingsForTests.GenerateMockUmbracoSettings(), Mock.Of<ILogger>());
}
public static IConfigsFactory GetConfigsFactory()
{
return new ConfigsFactory(IOHelper.Default);
return new ConfigsFactory(IOHelper);
}
/// <summary>
@@ -81,6 +81,8 @@ namespace Umbraco.Tests.TestHelpers
}
}
public static IIOHelper IOHelper = new IOHelper();
/// <summary>
/// Maps the given <paramref name="relativePath"/> making it rooted on <see cref="CurrentAssemblyDirectory"/>. <paramref name="relativePath"/> must start with <code>~/</code>
/// </summary>
@@ -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);
}
}
}

View File

@@ -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;
}

View File

@@ -111,6 +111,7 @@ namespace Umbraco.Tests.Testing
protected virtual IProfilingLogger ProfilingLogger => Factory.GetInstance<IProfilingLogger>();
protected IHostingEnvironment HostingEnvironment => Factory.GetInstance<IHostingEnvironment>();
protected IIpResolver IpResolver => Factory.GetInstance<IIpResolver>();
protected IBackOfficeInfo BackOfficeInfo => Factory.GetInstance<IBackOfficeInfo>();
protected AppCaches AppCaches => Factory.GetInstance<AppCaches>();
@@ -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();

View File

@@ -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<IGlobalSettings>(),
umbracoContextAccessor,

View File

@@ -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<IFactory>();
var typeFinder = new TypeFinder(Mock.Of<ILogger>());
var ioHelper = IOHelper.Default;
var ioHelper = TestHelper.IOHelper;
container
.Setup(x => x.GetInstance(typeof(TypeLoader)))
.Returns(new TypeLoader(

View File

@@ -18,11 +18,11 @@ namespace Umbraco.Web.Security.Providers
public class MembersMembershipProvider : UmbracoMembershipProvider<IMembershipMemberService, IMember>, 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<IMember> memberService, IMemberTypeService memberTypeService, IUmbracoVersion umbracoVersion, IHostingEnvironment hostingEnvironment)
: base(memberService, umbracoVersion, hostingEnvironment)
public MembersMembershipProvider(IMembershipMemberService<IMember> memberService, IMemberTypeService memberTypeService, IUmbracoVersion umbracoVersion, IHostingEnvironment hostingEnvironment, IIpResolver ipResolver)
: base(memberService, umbracoVersion, hostingEnvironment, ipResolver)
{
LockPropertyTypeAlias = Constants.Conventions.Member.IsLockedOut;
LastLockedOutPropertyTypeAlias = Constants.Conventions.Member.LastLockoutDate;

View File

@@ -29,13 +29,15 @@ namespace Umbraco.Web.Security.Providers
where TEntity : class, IMembershipUser
{
private readonly IUmbracoVersion _umbracoVersion;
private readonly IIpResolver _ipResolver;
protected IMembershipMemberService<TEntity> MemberService { get; private set; }
protected UmbracoMembershipProvider(IMembershipMemberService<TEntity> memberService, IUmbracoVersion umbracoVersion, IHostingEnvironment hostingEnvironment)
protected UmbracoMembershipProvider(IMembershipMemberService<TEntity> 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<UmbracoMembershipProviderBase>("Login attempt failed for username {Username} from IP address {IpAddress}, the user does not exist", username, GetCurrentRequestIpAddress());
Current.Logger.Info<UmbracoMembershipProviderBase>("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<UmbracoMembershipProviderBase>("Login attempt failed for username {Username} from IP address {IpAddress}, the user is not approved", username, GetCurrentRequestIpAddress());
Current.Logger.Info<UmbracoMembershipProviderBase>("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<UmbracoMembershipProviderBase>("Login attempt failed for username {Username} from IP address {IpAddress}, the user is locked", username, GetCurrentRequestIpAddress());
Current.Logger.Info<UmbracoMembershipProviderBase>("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<UmbracoMembershipProviderBase>("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<UmbracoMembershipProviderBase>("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<UmbracoMembershipProviderBase>("Login attempt failed for username {Username} from IP address {IpAddress}", username, GetCurrentRequestIpAddress());
Current.Logger.Info<UmbracoMembershipProviderBase>("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<UmbracoMembershipProviderBase>("Login attempt succeeded for username {Username} from IP address {IpAddress}", username, GetCurrentRequestIpAddress());
Current.Logger.Info<UmbracoMembershipProviderBase>("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

View File

@@ -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<IUser> memberService, IMemberTypeService memberTypeService, IUmbracoVersion umbracoVersion, IHostingEnvironment hostingEnvironment)
: base(memberService, umbracoVersion, hostingEnvironment)
public UsersMembershipProvider(IMembershipMemberService<IUser> memberService, IMemberTypeService memberTypeService, IUmbracoVersion umbracoVersion, IHostingEnvironment hostingEnvironment, IIpResolver ipResolver)
: base(memberService, umbracoVersion, hostingEnvironment, ipResolver)
{
_memberTypeService = memberTypeService;
}

View File

@@ -166,6 +166,7 @@
<Compile Include="Editors\TinyMceController.cs" />
<Compile Include="Hosting\AspNetHostingEnvironment.cs" />
<Compile Include="AspNetIpResolver.cs" />
<Compile Include="HttpContextExtensions.cs" />
<Compile Include="IUmbracoContextFactory.cs" />
<Compile Include="Install\ChangesMonitor.cs" />
<Compile Include="Logging\WebProfiler.cs" />

View File

@@ -30,7 +30,7 @@ namespace Umbraco.Web
protected UmbracoApplicationBase()
{
_ioHelper = IOHelper.Default;
_ioHelper = new IOHelper();
_configs = new ConfigsFactory(_ioHelper).Create();
var globalSettings = _configs.Global();