Cleaned up config for RequestHandler settings

This commit is contained in:
Bjarke Berg
2020-03-12 12:46:08 +01:00
parent e2dfc68718
commit e27a05c3e8
29 changed files with 135 additions and 108 deletions

View File

@@ -23,6 +23,7 @@ namespace Umbraco.Core.Configuration
public ILoggingSettings LoggingSettings { get; } = new LoggingSettings();
public IKeepAliveSettings KeepAliveSettings { get; } = new KeepAliveSettings();
public IWebRoutingSettings WebRoutingSettings { get; } = new WebRoutingSettings();
public IRequestHandlerSettings RequestHandlerSettings { get; } = new RequestHandlerSettings();
public IUmbracoSettingsSection UmbracoSettings { get; }
@@ -56,6 +57,7 @@ namespace Umbraco.Core.Configuration
configs.Add<ILoggingSettings>(() => LoggingSettings);
configs.Add<IKeepAliveSettings>(() => KeepAliveSettings);
configs.Add<IWebRoutingSettings>(() => WebRoutingSettings);
configs.Add<IRequestHandlerSettings>(() => RequestHandlerSettings);
configs.AddCoreConfigs(ioHelper);
return configs;

View File

@@ -0,0 +1,14 @@
using System.Collections.Generic;
using Umbraco.Core;
using Umbraco.Core.Configuration.UmbracoSettings;
namespace Umbraco.Configuration.Implementations
{
internal class RequestHandlerSettings : ConfigurationManagerConfigBase, IRequestHandlerSettings
{
public bool AddTrailingSlash => UmbracoSettingsSection.RequestHandler.AddTrailingSlash;
public bool ConvertUrlsToAscii => UmbracoSettingsSection.RequestHandler.UrlReplacing.ConvertUrlsToAscii.InvariantEquals("true");
public bool TryConvertUrlsToAscii => UmbracoSettingsSection.RequestHandler.UrlReplacing.ConvertUrlsToAscii.InvariantEquals("try");
public IEnumerable<IChar> CharCollection => UmbracoSettingsSection.RequestHandler.UrlReplacing.CharCollection;
}
}

View File

@@ -5,7 +5,7 @@ using System.Collections.Generic;
namespace Umbraco.Core.Configuration.UmbracoSettings
{
internal class RequestHandlerElement : UmbracoConfigurationElement, IRequestHandlerSection
internal class RequestHandlerElement : UmbracoConfigurationElement, IRequestHandlerSettings
{
[ConfigurationProperty("addTrailingSlash")]
public InnerTextConfigurationElement<bool> AddTrailingSlash => GetOptionalTextElement("addTrailingSlash", true);
@@ -85,12 +85,12 @@ namespace Umbraco.Core.Configuration.UmbracoSettings
return collection;
}
bool IRequestHandlerSection.AddTrailingSlash => AddTrailingSlash;
bool IRequestHandlerSettings.AddTrailingSlash => AddTrailingSlash;
bool IRequestHandlerSection.ConvertUrlsToAscii => UrlReplacing.ConvertUrlsToAscii.InvariantEquals("true");
bool IRequestHandlerSettings.ConvertUrlsToAscii => UrlReplacing.ConvertUrlsToAscii.InvariantEquals("true");
bool IRequestHandlerSection.TryConvertUrlsToAscii => UrlReplacing.ConvertUrlsToAscii.InvariantEquals("try");
bool IRequestHandlerSettings.TryConvertUrlsToAscii => UrlReplacing.ConvertUrlsToAscii.InvariantEquals("try");
IEnumerable<IChar> IRequestHandlerSection.CharCollection => UrlReplacing.CharCollection;
IEnumerable<IChar> IRequestHandlerSettings.CharCollection => UrlReplacing.CharCollection;
}
}

View File

@@ -28,7 +28,5 @@ namespace Umbraco.Core.Configuration.UmbracoSettings
IContentSection IUmbracoSettingsSection.Content => Content;
ISecuritySection IUmbracoSettingsSection.Security => Security;
IRequestHandlerSection IUmbracoSettingsSection.RequestHandler => RequestHandler;
}
}

View File

@@ -28,6 +28,9 @@ namespace Umbraco.Core
public static IUmbracoSettingsSection Settings(this Configs configs)
=> configs.GetConfig<IUmbracoSettingsSection>();
public static IRequestHandlerSettings RequestHandler(this Configs configs)
=> configs.GetConfig<IRequestHandlerSettings>();
public static IWebRoutingSettings WebRouting(this Configs configs)
=> configs.GetConfig<IWebRoutingSettings>();

View File

@@ -2,7 +2,7 @@
namespace Umbraco.Core.Configuration.UmbracoSettings
{
public interface IRequestHandlerSection : IUmbracoConfigurationSection
public interface IRequestHandlerSettings : IUmbracoConfigurationSection
{
bool AddTrailingSlash { get; }

View File

@@ -7,7 +7,5 @@ namespace Umbraco.Core.Configuration.UmbracoSettings
IContentSection Content { get; }
ISecuritySection Security { get; }
IRequestHandlerSection RequestHandler { get; }
}
}

View File

@@ -14,13 +14,13 @@ namespace Umbraco.Web.Routing
public class AliasUrlProvider : IUrlProvider
{
private readonly IGlobalSettings _globalSettings;
private readonly IRequestHandlerSection _requestConfig;
private readonly IRequestHandlerSettings _requestConfig;
private readonly ISiteDomainHelper _siteDomainHelper;
private readonly IUmbracoContextAccessor _umbracoContextAccessor;
private readonly UriUtility _uriUtility;
private readonly IPublishedValueFallback _publishedValueFallback;
public AliasUrlProvider(IGlobalSettings globalSettings, IRequestHandlerSection requestConfig, ISiteDomainHelper siteDomainHelper, UriUtility uriUtility, IPublishedValueFallback publishedValueFallback, IUmbracoContextAccessor umbracoContextAccessor)
public AliasUrlProvider(IGlobalSettings globalSettings, IRequestHandlerSettings requestConfig, ISiteDomainHelper siteDomainHelper, UriUtility uriUtility, IPublishedValueFallback publishedValueFallback, IUmbracoContextAccessor umbracoContextAccessor)
{
_globalSettings = globalSettings;
_requestConfig = requestConfig;

View File

@@ -12,14 +12,14 @@ namespace Umbraco.Web.Routing
/// </summary>
public class DefaultUrlProvider : IUrlProvider
{
private readonly IRequestHandlerSection _requestSettings;
private readonly IRequestHandlerSettings _requestSettings;
private readonly ILogger _logger;
private readonly IGlobalSettings _globalSettings;
private readonly ISiteDomainHelper _siteDomainHelper;
private readonly IUmbracoContextAccessor _umbracoContextAccessor;
private readonly UriUtility _uriUtility;
public DefaultUrlProvider(IRequestHandlerSection requestSettings, ILogger logger, IGlobalSettings globalSettings, ISiteDomainHelper siteDomainHelper, IUmbracoContextAccessor umbracoContextAccessor, UriUtility uriUtility)
public DefaultUrlProvider(IRequestHandlerSettings requestSettings, ILogger logger, IGlobalSettings globalSettings, ISiteDomainHelper siteDomainHelper, IUmbracoContextAccessor umbracoContextAccessor, UriUtility uriUtility)
{
_requestSettings = requestSettings;
_logger = logger;

View File

@@ -61,7 +61,7 @@ namespace Umbraco.Web
// maps an internal umbraco uri to a public uri
// ie with virtual directory, .aspx if required...
public Uri UriFromUmbraco(Uri uri, IGlobalSettings globalSettings, IRequestHandlerSection requestConfig)
public Uri UriFromUmbraco(Uri uri, IGlobalSettings globalSettings, IRequestHandlerSettings requestConfig)
{
var path = uri.GetSafeAbsolutePath();

View File

@@ -19,7 +19,7 @@ namespace Umbraco.Core.Strings
{
#region Ctor, consts and vars
public DefaultShortStringHelper(IUmbracoSettingsSection settings)
public DefaultShortStringHelper(IRequestHandlerSettings settings)
{
_config = new DefaultShortStringHelperConfig().WithDefault(settings);
}
@@ -619,6 +619,6 @@ namespace Umbraco.Core.Strings
return new string(output, 0, opos);
}
#endregion
#endregion
}
}

View File

@@ -30,7 +30,7 @@ namespace Umbraco.Core.Strings
public string DefaultCulture { get; set; } = ""; // invariant
public Dictionary<string, string> UrlReplaceCharacters { get; set; }
public DefaultShortStringHelperConfig WithConfig(Config config)
{
return WithConfig(DefaultCulture, CleanStringType.RoleMask, config);
@@ -57,16 +57,16 @@ namespace Umbraco.Core.Strings
/// Sets the default configuration.
/// </summary>
/// <returns>The short string helper.</returns>
public DefaultShortStringHelperConfig WithDefault(IUmbracoSettingsSection umbracoSettings)
public DefaultShortStringHelperConfig WithDefault(IRequestHandlerSettings requestHandlerSettings)
{
UrlReplaceCharacters = umbracoSettings.RequestHandler.CharCollection
UrlReplaceCharacters = requestHandlerSettings.CharCollection
.Where(x => string.IsNullOrEmpty(x.Char) == false)
.ToDictionary(x => x.Char, x => x.Replacement);
var urlSegmentConvertTo = CleanStringType.Utf8;
if (umbracoSettings.RequestHandler.ConvertUrlsToAscii)
if (requestHandlerSettings.ConvertUrlsToAscii)
urlSegmentConvertTo = CleanStringType.Ascii;
if (umbracoSettings.RequestHandler.TryConvertUrlsToAscii)
if (requestHandlerSettings.TryConvertUrlsToAscii)
urlSegmentConvertTo = CleanStringType.TryAscii;
return WithConfig(CleanStringType.UrlSegment, new Config

View File

@@ -15,7 +15,6 @@ namespace Umbraco.Core.Composing.CompositionExtensions
// register others
composition.RegisterUnique(factory => factory.GetInstance<IUmbracoSettingsSection>().Content);
composition.RegisterUnique(factory => factory.GetInstance<IUmbracoSettingsSection>().RequestHandler);
composition.RegisterUnique(factory => factory.GetInstance<IUmbracoSettingsSection>().Security);
return composition;

View File

@@ -139,7 +139,7 @@ namespace Umbraco.Core.Runtime
composition.RegisterUnique<IPublishedContentTypeFactory, PublishedContentTypeFactory>();
composition.RegisterUnique<IShortStringHelper>(factory
=> new DefaultShortStringHelper(new DefaultShortStringHelperConfig().WithDefault(factory.GetInstance<IUmbracoSettingsSection>())));
=> new DefaultShortStringHelper(new DefaultShortStringHelperConfig().WithDefault(factory.GetInstance<IRequestHandlerSettings>())));
composition.UrlSegmentProviders()
.Append<DefaultUrlSegmentProvider>();

View File

@@ -10,7 +10,7 @@ namespace Umbraco.Tests.Configurations.UmbracoSettings
[Test]
public void AddTrailingSlash()
{
Assert.IsTrue(SettingsSection.RequestHandler.AddTrailingSlash == true);
Assert.IsTrue(RequestHandlerSettings.AddTrailingSlash == true);
}
[Test]
@@ -18,14 +18,14 @@ namespace Umbraco.Tests.Configurations.UmbracoSettings
{
var chars = @" ,"",',%,.,;,/,\,:,#,+,*,&,?,æ,ø,å,ä,ö,ü,ß,Ä,Ö,|,<,>";
var items = chars.Split(',');
Assert.AreEqual(items.Length, SettingsSection.RequestHandler.CharCollection.Count());
Assert.IsTrue(SettingsSection.RequestHandler.CharCollection
Assert.AreEqual(items.Length, RequestHandlerSettings.CharCollection.Count());
Assert.IsTrue(RequestHandlerSettings.CharCollection
.All(x => items.Contains(x.Char)));
var vals = @"-,plus,star,ae,oe,aa,ae,oe,ue,ss,ae,oe,-";
var splitVals = vals.Split(',');
Assert.AreEqual(splitVals.Length, SettingsSection.RequestHandler.CharCollection.Count(x => x.Replacement.IsNullOrWhiteSpace() == false));
Assert.IsTrue(SettingsSection.RequestHandler.CharCollection
Assert.AreEqual(splitVals.Length, RequestHandlerSettings.CharCollection.Count(x => x.Replacement.IsNullOrWhiteSpace() == false));
Assert.IsTrue(RequestHandlerSettings.CharCollection
.All(x => string.IsNullOrEmpty(x.Replacement) || vals.Split(',').Contains(x.Replacement)));
}

View File

@@ -37,5 +37,6 @@ namespace Umbraco.Tests.Configurations.UmbracoSettings
protected ILoggingSettings LoggingSettings => Settings.Logging;
protected IWebRoutingSettings WebRoutingSettings => Settings.WebRouting;
protected IRequestHandlerSettings RequestHandlerSettings => Settings.RequestHandler;
}
}

View File

@@ -14,7 +14,7 @@ namespace Umbraco.Tests.CoreThings
{
base.Compose();
Composition.RegisterUnique<IShortStringHelper>(f => new DefaultShortStringHelper(f.GetInstance<IUmbracoSettingsSection>()));
Composition.RegisterUnique<IShortStringHelper>(f => new DefaultShortStringHelper(f.GetInstance<IRequestHandlerSettings>()));
}
[Test]

View File

@@ -77,15 +77,15 @@ namespace Umbraco.Tests.Misc
{
var globalConfig = Mock.Get(SettingsForTests.GenerateMockGlobalSettings());
var settings = SettingsForTests.GenerateMockUmbracoSettings();
var requestMock = Mock.Get(settings.RequestHandler);
var settings = SettingsForTests.GenerateMockRequestHandlerSettings();
var requestMock = Mock.Get(settings);
requestMock.Setup(x => x.AddTrailingSlash).Returns(trailingSlash);
UriUtility.SetAppDomainAppVirtualPath("/");
var expectedUri = NewUri(expectedUrl);
var sourceUri = NewUri(sourceUrl);
var resultUri = UriUtility.UriFromUmbraco(sourceUri, globalConfig.Object, settings.RequestHandler);
var resultUri = UriUtility.UriFromUmbraco(sourceUri, globalConfig.Object, settings);
Assert.AreEqual(expectedUri.ToString(), resultUri.ToString());
}

View File

@@ -28,7 +28,7 @@ namespace Umbraco.Tests.PropertyEditors
var composition = new Composition(register, TestHelper.GetMockedTypeLoader(), Mock.Of<IProfilingLogger>(), ComponentTests.MockRuntimeState(RuntimeLevel.Run), TestHelper.GetConfigs(), TestHelper.IOHelper, AppCaches.NoCache);
register.Register<IShortStringHelper>(_
=> new DefaultShortStringHelper(new DefaultShortStringHelperConfig().WithDefault(SettingsForTests.GetDefaultUmbracoSettings())));
=> new DefaultShortStringHelper(new DefaultShortStringHelperConfig().WithDefault(SettingsForTests.GenerateMockRequestHandlerSettings())));
Current.Factory = composition.CreateFactory();
}

View File

@@ -77,11 +77,11 @@ namespace Umbraco.Tests.Routing
content.Path = "-1,1046";
content.Published = true;
var umbracoSettings = Current.Configs.Settings();
var umbracoSettings = Current.Configs.RequestHandler();
var umbContext = GetUmbracoContext("http://localhost:8000");
var umbracoContextAccessor = new TestUmbracoContextAccessor(umbContext);
var urlProvider = new DefaultUrlProvider(umbracoSettings.RequestHandler, Logger, TestObjects.GetGlobalSettings(), new SiteDomainHelper(),
var urlProvider = new DefaultUrlProvider(umbracoSettings, Logger, TestObjects.GetGlobalSettings(), new SiteDomainHelper(),
umbracoContextAccessor, UriUtility);
var publishedUrlProvider = new UrlProvider(
umbracoContextAccessor,
@@ -122,12 +122,12 @@ namespace Umbraco.Tests.Routing
child.Path = "-1,1046,1173";
child.Published = true;
var umbracoSettings = Current.Configs.Settings();
var umbracoSettings = Current.Configs.RequestHandler();
var umbContext = GetUmbracoContext("http://localhost:8000");
var umbracoContextAccessor = new TestUmbracoContextAccessor(umbContext);
var urlProvider = new DefaultUrlProvider(umbracoSettings.RequestHandler, Logger, TestObjects.GetGlobalSettings(), new SiteDomainHelper(), umbracoContextAccessor, UriUtility);
var urlProvider = new DefaultUrlProvider(umbracoSettings, Logger, TestObjects.GetGlobalSettings(), new SiteDomainHelper(), umbracoContextAccessor, UriUtility);
var publishedUrlProvider = new UrlProvider(
umbracoContextAccessor,
TestHelper.WebRoutingSettings,

View File

@@ -69,7 +69,7 @@ namespace Umbraco.Tests.Routing
var umbracoApiControllerTypes = new UmbracoApiControllerTypeCollection(Composition.TypeLoader.GetUmbracoApiControllers());
Composition.RegisterUnique(umbracoApiControllerTypes);
Composition.RegisterUnique<IShortStringHelper>(_ => new DefaultShortStringHelper(SettingsForTests.GetDefaultUmbracoSettings()));
Composition.RegisterUnique<IShortStringHelper>(_ => new DefaultShortStringHelper(SettingsForTests.GenerateMockRequestHandlerSettings()));
}
public override void TearDown()

View File

@@ -48,15 +48,15 @@ namespace Umbraco.Tests.Routing
var globalSettings = Mock.Get(Factory.GetInstance<IGlobalSettings>()); //this will modify the IGlobalSettings instance stored in the container
globalSettings.Setup(x => x.HideTopLevelNodeFromPath).Returns(false);
var umbracoSettings = Current.Configs.Settings();
var requestHandlerSettings = SettingsForTests.GenerateMockRequestHandlerSettings();
var umbracoContext = GetUmbracoContext("/test", 1111, globalSettings: globalSettings.Object);
var umbracoContextAccessor = new TestUmbracoContextAccessor(umbracoContext);
var urlProvider = new DefaultUrlProvider(umbracoSettings.RequestHandler, Logger, globalSettings.Object,
var urlProvider = new DefaultUrlProvider(requestHandlerSettings, Logger, globalSettings.Object,
new SiteDomainHelper(), umbracoContextAccessor, UriUtility);
var publishedUrlProvider = GetPublishedUrlProvider(umbracoContext, urlProvider);
var requestHandlerMock = Mock.Get(umbracoSettings.RequestHandler);
var requestHandlerMock = Mock.Get(requestHandlerSettings);
requestHandlerMock.Setup(x => x.AddTrailingSlash).Returns(false);// (cached routes have none)
var samples = new Dictionary<int, string> {
@@ -123,12 +123,12 @@ namespace Umbraco.Tests.Routing
var globalSettings = Mock.Get(Factory.GetInstance<IGlobalSettings>()); //this will modify the IGlobalSettings instance stored in the container
globalSettings.Setup(x => x.HideTopLevelNodeFromPath).Returns(false);
var umbracoSettings = Current.Configs.Settings();
var requestHandlerSettings = SettingsForTests.GenerateMockRequestHandlerSettings();
var umbracoContext = GetUmbracoContext("/test", 1111, globalSettings: globalSettings.Object);
var umbracoContextAccessor = new TestUmbracoContextAccessor(umbracoContext);
var urlProvider = new DefaultUrlProvider(umbracoSettings.RequestHandler, Logger, globalSettings.Object,
var urlProvider = new DefaultUrlProvider(requestHandlerSettings, Logger, globalSettings.Object,
new SiteDomainHelper(), umbracoContextAccessor, UriUtility);
var publishedUrlProvider = GetPublishedUrlProvider(umbracoContext, urlProvider);
@@ -152,12 +152,10 @@ namespace Umbraco.Tests.Routing
var globalSettings = Mock.Get(Factory.GetInstance<IGlobalSettings>()); //this will modify the IGlobalSettings instance stored in the container
globalSettings.Setup(x => x.HideTopLevelNodeFromPath).Returns(true);
var umbracoSettings = Current.Configs.Settings();
var requestHandlerSettings = SettingsForTests.GenerateMockRequestHandlerSettings();
var umbracoContext = GetUmbracoContext("/test", 1111, globalSettings: globalSettings.Object);
var umbracoContextAccessor = new TestUmbracoContextAccessor(umbracoContext);
var urlProvider = new DefaultUrlProvider(umbracoSettings.RequestHandler, Logger, globalSettings.Object,
var urlProvider = new DefaultUrlProvider(requestHandlerSettings, Logger, globalSettings.Object,
new SiteDomainHelper(), umbracoContextAccessor, UriUtility);
var publishedUrlProvider = GetPublishedUrlProvider(umbracoContext, urlProvider);
@@ -173,7 +171,7 @@ namespace Umbraco.Tests.Routing
var globalSettings = Mock.Get(Factory.GetInstance<IGlobalSettings>()); //this will modify the IGlobalSettings instance stored in the container
globalSettings.Setup(x => x.HideTopLevelNodeFromPath).Returns(false);
var umbracoSettings = Current.Configs.Settings();
var requestHandlerSettings = SettingsForTests.GenerateMockRequestHandlerSettings();
var contentType = new PublishedContentType(666, "alias", PublishedItemType.Content, Enumerable.Empty<string>(), Enumerable.Empty<PublishedPropertyType>(), ContentVariation.Culture);
@@ -200,7 +198,7 @@ namespace Umbraco.Tests.Routing
globalSettings: globalSettings.Object,
snapshotService: snapshotService.Object);
var umbracoContextAccessor = new TestUmbracoContextAccessor(umbracoContext);
var urlProvider = new DefaultUrlProvider(umbracoSettings.RequestHandler, Logger, globalSettings.Object,
var urlProvider = new DefaultUrlProvider(requestHandlerSettings, Logger, globalSettings.Object,
new SiteDomainHelper(), umbracoContextAccessor, UriUtility);
var publishedUrlProvider = GetPublishedUrlProvider(umbracoContext, urlProvider);
@@ -221,7 +219,7 @@ namespace Umbraco.Tests.Routing
var globalSettings = Mock.Get(Factory.GetInstance<IGlobalSettings>()); //this will modify the IGlobalSettings instance stored in the container
globalSettings.Setup(x => x.HideTopLevelNodeFromPath).Returns(false);
var umbracoSettings = Current.Configs.Settings();
var requestHandlerSettings = SettingsForTests.GenerateMockRequestHandlerSettings();
var contentType = new PublishedContentType(666, "alias", PublishedItemType.Content, Enumerable.Empty<string>(), Enumerable.Empty<PublishedPropertyType>(), ContentVariation.Culture);
var publishedContent = new SolidPublishedContent(contentType) { Id = 1234 };
@@ -256,7 +254,7 @@ namespace Umbraco.Tests.Routing
globalSettings: globalSettings.Object,
snapshotService: snapshotService.Object);
var umbracoContextAccessor = new TestUmbracoContextAccessor(umbracoContext);
var urlProvider = new DefaultUrlProvider(umbracoSettings.RequestHandler, Logger, globalSettings.Object,
var urlProvider = new DefaultUrlProvider(requestHandlerSettings, Logger, globalSettings.Object,
new SiteDomainHelper(), umbracoContextAccessor, UriUtility);
var publishedUrlProvider = GetPublishedUrlProvider(umbracoContext, urlProvider);
@@ -277,7 +275,7 @@ namespace Umbraco.Tests.Routing
var globalSettings = Mock.Get(Factory.GetInstance<IGlobalSettings>()); //this will modify the IGlobalSettings instance stored in the container
globalSettings.Setup(x => x.HideTopLevelNodeFromPath).Returns(false);
var umbracoSettings = Current.Configs.Settings();
var requestHandlerSettings = SettingsForTests.GenerateMockRequestHandlerSettings();
var contentType = new PublishedContentType(666, "alias", PublishedItemType.Content, Enumerable.Empty<string>(), Enumerable.Empty<PublishedPropertyType>(), ContentVariation.Culture);
var publishedContent = new SolidPublishedContent(contentType) { Id = 1234 };
@@ -311,7 +309,7 @@ namespace Umbraco.Tests.Routing
globalSettings: globalSettings.Object,
snapshotService: snapshotService.Object);
var umbracoContextAccessor = new TestUmbracoContextAccessor(umbracoContext);
var urlProvider = new DefaultUrlProvider(umbracoSettings.RequestHandler, Logger, globalSettings.Object,
var urlProvider = new DefaultUrlProvider(requestHandlerSettings, Logger, globalSettings.Object,
new SiteDomainHelper(), umbracoContextAccessor, UriUtility);
@@ -328,12 +326,12 @@ namespace Umbraco.Tests.Routing
var globalSettings = Mock.Get(Factory.GetInstance<IGlobalSettings>()); //this will modify the IGlobalSettings instance stored in the container
globalSettings.Setup(x => x.HideTopLevelNodeFromPath).Returns(false);
var umbracoSettings = Current.Configs.Settings();
var requestHandlerSettings = SettingsForTests.GenerateMockRequestHandlerSettings();
var umbracoContext = GetUmbracoContext("http://example.com/test", 1111, globalSettings: globalSettings.Object);
var umbracoContextAccessor = new TestUmbracoContextAccessor(umbracoContext);
var urlProvider = new DefaultUrlProvider(umbracoSettings.RequestHandler, Logger, globalSettings.Object,
var urlProvider = new DefaultUrlProvider(requestHandlerSettings, Logger, globalSettings.Object,
new SiteDomainHelper(), umbracoContextAccessor, UriUtility);
var publishedUrlProvider = GetPublishedUrlProvider(umbracoContext, urlProvider);
@@ -349,9 +347,9 @@ namespace Umbraco.Tests.Routing
var globalSettings = Mock.Get(Factory.GetInstance<IGlobalSettings>()); //this will modify the IGlobalSettings instance stored in the container
globalSettings.Setup(x => x.HideTopLevelNodeFromPath).Returns(false);
var umbracoSettings = Current.Configs.Settings();
var requestHandlerSettings = SettingsForTests.GenerateMockRequestHandlerSettings();
var urlProvider = new DefaultUrlProvider(umbracoSettings.RequestHandler, Logger, globalSettings.Object,
var urlProvider = new DefaultUrlProvider(requestHandlerSettings, Logger, globalSettings.Object,
new SiteDomainHelper(), UmbracoContextAccessor, UriUtility);
var umbracoContext = GetUmbracoContext("http://example.com/test", 1111, globalSettings: globalSettings.Object);
var publishedUrlProvider = GetPublishedUrlProvider(umbracoContext, urlProvider);

View File

@@ -178,14 +178,14 @@ namespace Umbraco.Tests.Routing
[TestCase(10011, "https://domain1.com", false, "/1001-1/")]
public void Get_Url_SimpleDomain(int nodeId, string currentUrl, bool absolute, string expected)
{
var settings = SettingsForTests.GenerateMockUmbracoSettings();
var settings = SettingsForTests.GenerateMockRequestHandlerSettings();
var globalSettings = Mock.Get(Factory.GetInstance<IGlobalSettings>()); //this will modify the IGlobalSettings instance stored in the container
globalSettings.Setup(x => x.HideTopLevelNodeFromPath).Returns(false); // ignored w/domains
var umbracoContext = GetUmbracoContext("/test", 1111, globalSettings:globalSettings.Object);
var umbracoContextAccessor = new TestUmbracoContextAccessor(umbracoContext);
var urlProvider = new DefaultUrlProvider(settings.RequestHandler, Logger, globalSettings.Object,
var urlProvider = new DefaultUrlProvider(settings, Logger, globalSettings.Object,
new SiteDomainHelper(), umbracoContextAccessor, UriUtility);
var publishedUrlProvider = GetPublishedUrlProvider(umbracoContext, urlProvider);
@@ -212,14 +212,14 @@ namespace Umbraco.Tests.Routing
[TestCase(10011, "https://domain1.com", false, "http://domain1.com/foo/1001-1/")]
public void Get_Url_SimpleWithSchemeAndPath(int nodeId, string currentUrl, bool absolute, string expected)
{
var settings = SettingsForTests.GenerateMockUmbracoSettings();
var settings = SettingsForTests.GenerateMockRequestHandlerSettings();
var globalSettings = Mock.Get(Factory.GetInstance<IGlobalSettings>()); //this will modify the IGlobalSettings instance stored in the container
globalSettings.Setup(x => x.HideTopLevelNodeFromPath).Returns(false); // ignored w/domains
var umbracoContext = GetUmbracoContext("/test", 1111, globalSettings:globalSettings.Object);
var umbracoContextAccessor = new TestUmbracoContextAccessor(umbracoContext);
var urlProvider = new DefaultUrlProvider(settings.RequestHandler, Logger, globalSettings.Object,
var urlProvider = new DefaultUrlProvider(settings, Logger, globalSettings.Object,
new SiteDomainHelper(), umbracoContextAccessor, UriUtility);
var publishedUrlProvider = GetPublishedUrlProvider(umbracoContext, urlProvider);
@@ -238,14 +238,14 @@ namespace Umbraco.Tests.Routing
[TestCase(1002, "http://domain1.com", false, "/1002/")]
public void Get_Url_DeepDomain(int nodeId, string currentUrl, bool absolute, string expected)
{
var settings = SettingsForTests.GenerateMockUmbracoSettings();
var settings = SettingsForTests.GenerateMockRequestHandlerSettings();
var globalSettings = Mock.Get(Factory.GetInstance<IGlobalSettings>()); //this will modify the IGlobalSettings instance stored in the container
globalSettings.Setup(x => x.HideTopLevelNodeFromPath).Returns(false); // ignored w/domains
var umbracoContext = GetUmbracoContext("/test", 1111, globalSettings:globalSettings.Object);
var umbracoContextAccessor = new TestUmbracoContextAccessor(umbracoContext);
var urlProvider = new DefaultUrlProvider(settings.RequestHandler, Logger, globalSettings.Object,
var urlProvider = new DefaultUrlProvider(settings, Logger, globalSettings.Object,
new SiteDomainHelper(), umbracoContextAccessor, UriUtility);
var publishedUrlProvider = GetPublishedUrlProvider(umbracoContext, urlProvider);
@@ -270,14 +270,14 @@ namespace Umbraco.Tests.Routing
[TestCase(100321, "http://domain3.com", false, "/fr/1003-2-1/")]
public void Get_Url_NestedDomains(int nodeId, string currentUrl, bool absolute, string expected)
{
var settings = SettingsForTests.GenerateMockUmbracoSettings();
var settings = SettingsForTests.GenerateMockRequestHandlerSettings();
var globalSettings = Mock.Get(Factory.GetInstance<IGlobalSettings>()); //this will modify the IGlobalSettings instance stored in the container
globalSettings.Setup(x => x.HideTopLevelNodeFromPath).Returns(false); // ignored w/domains
var umbracoContext = GetUmbracoContext("/test", 1111, globalSettings:globalSettings.Object);
var umbracoContextAccessor = new TestUmbracoContextAccessor(umbracoContext);
var urlProvider = new DefaultUrlProvider(settings.RequestHandler, Logger, globalSettings.Object,
var urlProvider = new DefaultUrlProvider(settings, Logger, globalSettings.Object,
new SiteDomainHelper(), umbracoContextAccessor, UriUtility);
var publishedUrlProvider = GetPublishedUrlProvider(umbracoContext, urlProvider);
@@ -292,14 +292,14 @@ namespace Umbraco.Tests.Routing
[Test]
public void Get_Url_DomainsAndCache()
{
var settings = SettingsForTests.GenerateMockUmbracoSettings();
var settings = SettingsForTests.GenerateMockRequestHandlerSettings();
var globalSettings = Mock.Get(Factory.GetInstance<IGlobalSettings>()); //this will modify the IGlobalSettings instance stored in the container
globalSettings.Setup(x => x.HideTopLevelNodeFromPath).Returns(false); // ignored w/domains
var umbracoContext = GetUmbracoContext("/test", 1111, globalSettings:globalSettings.Object);
var umbracoContextAccessor = new TestUmbracoContextAccessor(umbracoContext);
var urlProvider = new DefaultUrlProvider(settings.RequestHandler, Logger, globalSettings.Object,
var urlProvider = new DefaultUrlProvider(settings, Logger, globalSettings.Object,
new SiteDomainHelper(), umbracoContextAccessor, UriUtility);
var publishedUrlProvider = GetPublishedUrlProvider(umbracoContext, urlProvider);
@@ -356,14 +356,14 @@ namespace Umbraco.Tests.Routing
[Test]
public void Get_Url_Relative_Or_Absolute()
{
var settings = SettingsForTests.GenerateMockUmbracoSettings();
var settings = SettingsForTests.GenerateMockRequestHandlerSettings();
var globalSettings = Mock.Get(Factory.GetInstance<IGlobalSettings>()); //this will modify the IGlobalSettings instance stored in the container
globalSettings.Setup(x => x.HideTopLevelNodeFromPath).Returns(false); // ignored w/domains
var umbracoContext = GetUmbracoContext("http://domain1.com/test", 1111, globalSettings:globalSettings.Object);
var umbracoContextAccessor = new TestUmbracoContextAccessor(umbracoContext);
var urlProvider = new DefaultUrlProvider(settings.RequestHandler, Logger, globalSettings.Object,
var urlProvider = new DefaultUrlProvider(settings, Logger, globalSettings.Object,
new SiteDomainHelper(), umbracoContextAccessor, UriUtility);
var publishedUrlProvider = GetPublishedUrlProvider(umbracoContext, urlProvider);
@@ -381,14 +381,14 @@ namespace Umbraco.Tests.Routing
[Test]
public void Get_Url_Alternate()
{
var settings = SettingsForTests.GenerateMockUmbracoSettings();
var settings = SettingsForTests.GenerateMockRequestHandlerSettings();
var globalSettings = Mock.Get(Factory.GetInstance<IGlobalSettings>()); //this will modify the IGlobalSettings instance stored in the container
globalSettings.Setup(x => x.HideTopLevelNodeFromPath).Returns(false); // ignored w/domains
var umbracoContext = GetUmbracoContext("http://domain1.com/en/test", 1111, globalSettings:globalSettings.Object);
var umbracoContextAccessor = new TestUmbracoContextAccessor(umbracoContext);
var urlProvider = new DefaultUrlProvider(settings.RequestHandler, Logger, globalSettings.Object,
var urlProvider = new DefaultUrlProvider(settings, Logger, globalSettings.Object,
new SiteDomainHelper(), umbracoContextAccessor, UriUtility);
var publishedUrlProvider = GetPublishedUrlProvider(umbracoContext, urlProvider);

View File

@@ -36,7 +36,7 @@ namespace Umbraco.Tests.Routing
var globalSettings = Mock.Get(Factory.GetInstance<IGlobalSettings>()); //this will modify the IGlobalSettings instance stored in the container
globalSettings.Setup(x => x.HideTopLevelNodeFromPath).Returns(false);
var settings = SettingsForTests.GenerateMockUmbracoSettings();
var settings = SettingsForTests.GenerateMockRequestHandlerSettings();
SetDomains1();
@@ -45,7 +45,7 @@ namespace Umbraco.Tests.Routing
// get the nice url for 100111
var umbracoContext = GetUmbracoContext(url, 9999, globalSettings:globalSettings.Object);
var umbracoContextAccessor = new TestUmbracoContextAccessor(umbracoContext);
var urlProvider = new DefaultUrlProvider(settings.RequestHandler, Logger, globalSettings.Object,
var urlProvider = new DefaultUrlProvider(settings, Logger, globalSettings.Object,
new SiteDomainHelper(), umbracoContextAccessor, UriUtility);
var publishedUrlProvider = GetPublishedUrlProvider(umbracoContext, urlProvider);

View File

@@ -30,7 +30,7 @@ namespace Umbraco.Tests.Strings
[TestCase("WhoIsNumber6InTheVillage", "Who Is Number6 In The Village")] // issue is fixed
public void CompatibleDefaultReplacement(string input, string expected)
{
var helper = new DefaultShortStringHelper(SettingsForTests.GetDefaultUmbracoSettings());
var helper = new DefaultShortStringHelper(SettingsForTests.GenerateMockRequestHandlerSettings());
var output = input.Length < 2 ? input : helper.SplitPascalCasing(input, ' ').ToFirstUpperInvariant();
Assert.AreEqual(expected, output);
}

View File

@@ -26,7 +26,7 @@ namespace Umbraco.Tests.Strings
// NOTE pre-filters runs _before_ Recode takes place
// so there still may be utf8 chars even though you want ascii
_helper = new DefaultShortStringHelper(new DefaultShortStringHelperConfig().WithDefault(SettingsForTests.GetDefaultUmbracoSettings())
_helper = new DefaultShortStringHelper(new DefaultShortStringHelperConfig().WithDefault(SettingsForTests.GenerateMockRequestHandlerSettings())
.WithConfig(CleanStringType.FileName, new DefaultShortStringHelperConfig.Config
{
//PreFilter = ClearFileChars, // done in IsTerm
@@ -94,8 +94,8 @@ namespace Umbraco.Tests.Strings
[Test]
public void U4_4056()
{
var settings = SettingsForTests.GenerateMockUmbracoSettings();
var contentMock = Mock.Get(settings.RequestHandler);
var settings = SettingsForTests.GenerateMockRequestHandlerSettings();
var contentMock = Mock.Get(settings);
contentMock.Setup(x => x.CharCollection).Returns(Enumerable.Empty<IChar>());
contentMock.Setup(x => x.ConvertUrlsToAscii).Returns(false);
@@ -119,8 +119,8 @@ namespace Umbraco.Tests.Strings
[Test]
public void U4_4056_TryAscii()
{
var settings = SettingsForTests.GenerateMockUmbracoSettings();
var contentMock = Mock.Get(settings.RequestHandler);
var settings = SettingsForTests.GenerateMockRequestHandlerSettings();
var contentMock = Mock.Get(settings);
contentMock.Setup(x => x.CharCollection).Returns(Enumerable.Empty<IChar>());
contentMock.Setup(x => x.ConvertUrlsToAscii).Returns(false);
@@ -145,7 +145,7 @@ namespace Umbraco.Tests.Strings
[Test]
public void CleanStringUnderscoreInTerm()
{
var helper = new DefaultShortStringHelper(new DefaultShortStringHelperConfig().WithDefault(SettingsForTests.GetDefaultUmbracoSettings())
var helper = new DefaultShortStringHelper(new DefaultShortStringHelperConfig().WithDefault(SettingsForTests.GenerateMockRequestHandlerSettings())
.WithConfig(CleanStringType.Alias, new DefaultShortStringHelperConfig.Config
{
// underscore is accepted within terms
@@ -155,7 +155,7 @@ namespace Umbraco.Tests.Strings
}));
Assert.AreEqual("foo_bar*nil", helper.CleanString("foo_bar nil", CleanStringType.Alias));
helper = new DefaultShortStringHelper(new DefaultShortStringHelperConfig().WithDefault(SettingsForTests.GetDefaultUmbracoSettings())
helper = new DefaultShortStringHelper(new DefaultShortStringHelperConfig().WithDefault(SettingsForTests.GenerateMockRequestHandlerSettings())
.WithConfig(CleanStringType.Alias, new DefaultShortStringHelperConfig.Config
{
// underscore is not accepted within terms
@@ -169,7 +169,7 @@ namespace Umbraco.Tests.Strings
[Test]
public void CleanStringLeadingChars()
{
var helper = new DefaultShortStringHelper(new DefaultShortStringHelperConfig().WithDefault(SettingsForTests.GetDefaultUmbracoSettings())
var helper = new DefaultShortStringHelper(new DefaultShortStringHelperConfig().WithDefault(SettingsForTests.GenerateMockRequestHandlerSettings())
.WithConfig(CleanStringType.Alias, new DefaultShortStringHelperConfig.Config
{
// letters and digits are valid leading chars
@@ -179,7 +179,7 @@ namespace Umbraco.Tests.Strings
}));
Assert.AreEqual("0123foo*bar*543*nil*321", helper.CleanString("0123foo_bar 543 nil 321", CleanStringType.Alias));
helper = new DefaultShortStringHelper(new DefaultShortStringHelperConfig().WithDefault(SettingsForTests.GetDefaultUmbracoSettings())
helper = new DefaultShortStringHelper(new DefaultShortStringHelperConfig().WithDefault(SettingsForTests.GenerateMockRequestHandlerSettings())
.WithConfig(CleanStringType.Alias, new DefaultShortStringHelperConfig.Config
{
// only letters are valid leading chars
@@ -190,14 +190,14 @@ namespace Umbraco.Tests.Strings
Assert.AreEqual("foo*bar*543*nil*321", helper.CleanString("0123foo_bar 543 nil 321", CleanStringType.Alias));
Assert.AreEqual("foo*bar*543*nil*321", helper.CleanString("0123 foo_bar 543 nil 321", CleanStringType.Alias));
helper = new DefaultShortStringHelper(new DefaultShortStringHelperConfig().WithDefault(SettingsForTests.GetDefaultUmbracoSettings()));
helper = new DefaultShortStringHelper(new DefaultShortStringHelperConfig().WithDefault(SettingsForTests.GenerateMockRequestHandlerSettings()));
Assert.AreEqual("child2", helper.CleanStringForSafeAlias("1child2"));
}
[Test]
public void CleanStringTermOnUpper()
{
var helper = new DefaultShortStringHelper(new DefaultShortStringHelperConfig().WithDefault(SettingsForTests.GetDefaultUmbracoSettings())
var helper = new DefaultShortStringHelper(new DefaultShortStringHelperConfig().WithDefault(SettingsForTests.GenerateMockRequestHandlerSettings())
.WithConfig(CleanStringType.Alias, new DefaultShortStringHelperConfig.Config
{
StringType = CleanStringType.Utf8 | CleanStringType.Unchanged,
@@ -207,7 +207,7 @@ namespace Umbraco.Tests.Strings
}));
Assert.AreEqual("foo*Bar", helper.CleanString("fooBar", CleanStringType.Alias));
helper = new DefaultShortStringHelper(new DefaultShortStringHelperConfig().WithDefault(SettingsForTests.GetDefaultUmbracoSettings())
helper = new DefaultShortStringHelper(new DefaultShortStringHelperConfig().WithDefault(SettingsForTests.GenerateMockRequestHandlerSettings())
.WithConfig(CleanStringType.Alias, new DefaultShortStringHelperConfig.Config
{
StringType = CleanStringType.Utf8 | CleanStringType.Unchanged,
@@ -221,7 +221,7 @@ namespace Umbraco.Tests.Strings
[Test]
public void CleanStringAcronymOnNonUpper()
{
var helper = new DefaultShortStringHelper(new DefaultShortStringHelperConfig().WithDefault(SettingsForTests.GetDefaultUmbracoSettings())
var helper = new DefaultShortStringHelper(new DefaultShortStringHelperConfig().WithDefault(SettingsForTests.GenerateMockRequestHandlerSettings())
.WithConfig(CleanStringType.Alias, new DefaultShortStringHelperConfig.Config
{
StringType = CleanStringType.Utf8 | CleanStringType.Unchanged,
@@ -234,7 +234,7 @@ namespace Umbraco.Tests.Strings
Assert.AreEqual("foo*BAnil", helper.CleanString("foo BAnil", CleanStringType.Alias));
Assert.AreEqual("foo*Bnil", helper.CleanString("foo Bnil", CleanStringType.Alias));
helper = new DefaultShortStringHelper(new DefaultShortStringHelperConfig().WithDefault(SettingsForTests.GetDefaultUmbracoSettings())
helper = new DefaultShortStringHelper(new DefaultShortStringHelperConfig().WithDefault(SettingsForTests.GenerateMockRequestHandlerSettings())
.WithConfig(CleanStringType.Alias, new DefaultShortStringHelperConfig.Config
{
StringType = CleanStringType.Utf8 | CleanStringType.Unchanged,
@@ -251,7 +251,7 @@ namespace Umbraco.Tests.Strings
[Test]
public void CleanStringGreedyAcronyms()
{
var helper = new DefaultShortStringHelper(new DefaultShortStringHelperConfig().WithDefault(SettingsForTests.GetDefaultUmbracoSettings())
var helper = new DefaultShortStringHelper(new DefaultShortStringHelperConfig().WithDefault(SettingsForTests.GenerateMockRequestHandlerSettings())
.WithConfig(CleanStringType.Alias, new DefaultShortStringHelperConfig.Config
{
StringType = CleanStringType.Utf8 | CleanStringType.Unchanged,
@@ -264,7 +264,7 @@ namespace Umbraco.Tests.Strings
Assert.AreEqual("foo*BA*nil", helper.CleanString("foo BAnil", CleanStringType.Alias));
Assert.AreEqual("foo*Bnil", helper.CleanString("foo Bnil", CleanStringType.Alias));
helper = new DefaultShortStringHelper(new DefaultShortStringHelperConfig().WithDefault(SettingsForTests.GetDefaultUmbracoSettings())
helper = new DefaultShortStringHelper(new DefaultShortStringHelperConfig().WithDefault(SettingsForTests.GenerateMockRequestHandlerSettings())
.WithConfig(CleanStringType.Alias, new DefaultShortStringHelperConfig.Config
{
StringType = CleanStringType.Utf8 | CleanStringType.Unchanged,
@@ -281,7 +281,7 @@ namespace Umbraco.Tests.Strings
[Test]
public void CleanStringWhiteSpace()
{
var helper = new DefaultShortStringHelper(new DefaultShortStringHelperConfig().WithDefault(SettingsForTests.GetDefaultUmbracoSettings())
var helper = new DefaultShortStringHelper(new DefaultShortStringHelperConfig().WithDefault(SettingsForTests.GenerateMockRequestHandlerSettings())
.WithConfig(CleanStringType.Alias, new DefaultShortStringHelperConfig.Config
{
StringType = CleanStringType.Utf8 | CleanStringType.Unchanged,
@@ -294,7 +294,7 @@ namespace Umbraco.Tests.Strings
[Test]
public void CleanStringSeparator()
{
var helper = new DefaultShortStringHelper(new DefaultShortStringHelperConfig().WithDefault(SettingsForTests.GetDefaultUmbracoSettings())
var helper = new DefaultShortStringHelper(new DefaultShortStringHelperConfig().WithDefault(SettingsForTests.GenerateMockRequestHandlerSettings())
.WithConfig(CleanStringType.Alias, new DefaultShortStringHelperConfig.Config
{
StringType = CleanStringType.Utf8 | CleanStringType.Unchanged,
@@ -302,7 +302,7 @@ namespace Umbraco.Tests.Strings
}));
Assert.AreEqual("foo*bar", helper.CleanString("foo bar", CleanStringType.Alias));
helper = new DefaultShortStringHelper(new DefaultShortStringHelperConfig().WithDefault(SettingsForTests.GetDefaultUmbracoSettings())
helper = new DefaultShortStringHelper(new DefaultShortStringHelperConfig().WithDefault(SettingsForTests.GenerateMockRequestHandlerSettings())
.WithConfig(CleanStringType.Alias, new DefaultShortStringHelperConfig.Config
{
StringType = CleanStringType.Utf8 | CleanStringType.Unchanged,
@@ -310,14 +310,14 @@ namespace Umbraco.Tests.Strings
}));
Assert.AreEqual("foo bar", helper.CleanString("foo bar", CleanStringType.Alias));
helper = new DefaultShortStringHelper(new DefaultShortStringHelperConfig().WithDefault(SettingsForTests.GetDefaultUmbracoSettings())
helper = new DefaultShortStringHelper(new DefaultShortStringHelperConfig().WithDefault(SettingsForTests.GenerateMockRequestHandlerSettings())
.WithConfig(CleanStringType.Alias, new DefaultShortStringHelperConfig.Config
{
StringType = CleanStringType.Utf8 | CleanStringType.Unchanged
}));
Assert.AreEqual("foobar", helper.CleanString("foo bar", CleanStringType.Alias));
helper = new DefaultShortStringHelper(new DefaultShortStringHelperConfig().WithDefault(SettingsForTests.GetDefaultUmbracoSettings())
helper = new DefaultShortStringHelper(new DefaultShortStringHelperConfig().WithDefault(SettingsForTests.GenerateMockRequestHandlerSettings())
.WithConfig(CleanStringType.Alias, new DefaultShortStringHelperConfig.Config
{
StringType = CleanStringType.Utf8 | CleanStringType.Unchanged,
@@ -329,7 +329,7 @@ namespace Umbraco.Tests.Strings
[Test]
public void CleanStringSymbols()
{
var helper = new DefaultShortStringHelper(new DefaultShortStringHelperConfig().WithDefault(SettingsForTests.GetDefaultUmbracoSettings())
var helper = new DefaultShortStringHelper(new DefaultShortStringHelperConfig().WithDefault(SettingsForTests.GenerateMockRequestHandlerSettings())
.WithConfig(CleanStringType.Alias, new DefaultShortStringHelperConfig.Config
{
StringType = CleanStringType.Utf8 | CleanStringType.Unchanged,
@@ -383,7 +383,7 @@ namespace Umbraco.Tests.Strings
[Test]
public void CleanStringEncoding()
{
var helper = new DefaultShortStringHelper(new DefaultShortStringHelperConfig().WithDefault(SettingsForTests.GetDefaultUmbracoSettings())
var helper = new DefaultShortStringHelper(new DefaultShortStringHelperConfig().WithDefault(SettingsForTests.GenerateMockRequestHandlerSettings())
.WithConfig(CleanStringType.Alias, new DefaultShortStringHelperConfig.Config
{
StringType = CleanStringType.Utf8 | CleanStringType.Unchanged,
@@ -392,7 +392,7 @@ namespace Umbraco.Tests.Strings
Assert.AreEqual("中文测试", helper.CleanString("中文测试", CleanStringType.Alias));
Assert.AreEqual("léger*中文测试*ZÔRG", helper.CleanString("léger 中文测试 ZÔRG", CleanStringType.Alias));
helper = new DefaultShortStringHelper(new DefaultShortStringHelperConfig().WithDefault(SettingsForTests.GetDefaultUmbracoSettings())
helper = new DefaultShortStringHelper(new DefaultShortStringHelperConfig().WithDefault(SettingsForTests.GenerateMockRequestHandlerSettings())
.WithConfig(CleanStringType.Alias, new DefaultShortStringHelperConfig.Config
{
StringType = CleanStringType.Ascii | CleanStringType.Unchanged,
@@ -405,8 +405,8 @@ namespace Umbraco.Tests.Strings
[Test]
public void CleanStringDefaultConfig()
{
var settings = SettingsForTests.GenerateMockUmbracoSettings();
var contentMock = Mock.Get(settings.RequestHandler);
var settings = SettingsForTests.GenerateMockRequestHandlerSettings();
var contentMock = Mock.Get(settings);
contentMock.Setup(x => x.CharCollection).Returns(Enumerable.Empty<IChar>());
contentMock.Setup(x => x.ConvertUrlsToAscii).Returns(false);
@@ -431,7 +431,7 @@ namespace Umbraco.Tests.Strings
[Test]
public void CleanStringCasing()
{
var helper = new DefaultShortStringHelper(new DefaultShortStringHelperConfig().WithDefault(SettingsForTests.GetDefaultUmbracoSettings())
var helper = new DefaultShortStringHelper(new DefaultShortStringHelperConfig().WithDefault(SettingsForTests.GenerateMockRequestHandlerSettings())
.WithConfig(CleanStringType.Alias, new DefaultShortStringHelperConfig.Config
{
StringType = CleanStringType.Utf8 | CleanStringType.Unchanged,

View File

@@ -1,5 +1,6 @@
using System.IO;
using System.Configuration;
using System.Linq;
using Moq;
using Umbraco.Core;
using Umbraco.Core.Composing;
@@ -45,7 +46,7 @@ namespace Umbraco.Tests.TestHelpers
var content = new Mock<IContentSection>();
var security = new Mock<ISecuritySection>();
var requestHandler = new Mock<IRequestHandlerSection>();
var requestHandler = new Mock<IRequestHandlerSettings>();
var logging = new Mock<ILoggingSettings>();
var routing = new Mock<IWebRoutingSettings>();
@@ -56,13 +57,11 @@ namespace Umbraco.Tests.TestHelpers
settings.Setup(x => x.Content).Returns(content.Object);
settings.Setup(x => x.Security).Returns(security.Object);
settings.Setup(x => x.RequestHandler).Returns(requestHandler.Object);
//Now configure some defaults - the defaults in the config section classes do NOT pertain to the mocked data!!
settings.Setup(x => x.Content.ImageAutoFillProperties).Returns(ContentImagingElement.GetDefaultImageAutoFillProperties());
settings.Setup(x => x.Content.ImageFileTypes).Returns(ContentImagingElement.GetDefaultImageFileTypes());
settings.Setup(x => x.RequestHandler.AddTrailingSlash).Returns(true);
settings.Setup(x => x.RequestHandler.CharCollection).Returns(RequestHandlerElement.GetDefaultCharReplacements());
return settings.Object;
}
@@ -168,11 +167,23 @@ namespace Umbraco.Tests.TestHelpers
{
var mock = new Mock<IWebRoutingSettings>();
mock.Setup(x => x.TrySkipIisCustomErrors).Returns(false);
mock.Setup(x => x.DisableRedirectUrlTracking).Returns(false);
mock.Setup(x => x.InternalRedirectPreservesTemplate).Returns(false);
mock.Setup(x => x.UrlProviderMode).Returns(UrlMode.Auto.ToString());
return mock.Object;
}
public static IRequestHandlerSettings GenerateMockRequestHandlerSettings()
{
var mock = new Mock<IRequestHandlerSettings>();
mock.Setup(x => x.AddTrailingSlash).Returns(true);
mock.Setup(x => x.ConvertUrlsToAscii).Returns(false);
mock.Setup(x => x.TryConvertUrlsToAscii).Returns(false);
mock.Setup(x => x.CharCollection).Returns(RequestHandlerElement.GetDefaultCharReplacements);
return mock.Object;
}
}
}

View File

@@ -414,6 +414,9 @@ namespace Umbraco.Tests.Testing
Composition.Configs.Add(SettingsForTests.GetDefaultUmbracoSettings);
Composition.Configs.Add(SettingsForTests.GetDefaultGlobalSettings);
Composition.Configs.Add(SettingsForTests.GetDefaultHostingSettings);
Composition.Configs.Add(SettingsForTests.GenerateMockRequestHandlerSettings);
Composition.Configs.Add(SettingsForTests.GenerateMockWebRoutingSettings);
//Composition.Configs.Add<IUserPasswordConfiguration>(() => new DefaultUserPasswordConfig());
}

View File

@@ -33,7 +33,7 @@ namespace Umbraco.Tests.UmbracoExamine
{
base.Compose();
Composition.RegisterUnique<IShortStringHelper>(_ => new DefaultShortStringHelper(SettingsForTests.GetDefaultUmbracoSettings()));
Composition.RegisterUnique<IShortStringHelper>(_ => new DefaultShortStringHelper(SettingsForTests.GenerateMockRequestHandlerSettings()));
}
}
}