diff --git a/src/Umbraco.Core/DependencyInjection/UmbracoBuilder.Collections.cs b/src/Umbraco.Core/DependencyInjection/UmbracoBuilder.Collections.cs index 58cbb43cbf..7fbe365582 100644 --- a/src/Umbraco.Core/DependencyInjection/UmbracoBuilder.Collections.cs +++ b/src/Umbraco.Core/DependencyInjection/UmbracoBuilder.Collections.cs @@ -42,7 +42,6 @@ public static partial class UmbracoBuilderExtensions .Append() .Append() .Append() - /*.Append() // disabled, this is an odd finder */ .Append() .Append(); builder.EditorValidators().Add(() => builder.TypeLoader.GetTypes()); diff --git a/tests/Umbraco.Tests.UnitTests/Umbraco.Core/Routing/ContentFinderByAliasTests.cs b/tests/Umbraco.Tests.UnitTests/Umbraco.Core/Routing/ContentFinderByAliasTests.cs deleted file mode 100644 index 0a02d2d2c7..0000000000 --- a/tests/Umbraco.Tests.UnitTests/Umbraco.Core/Routing/ContentFinderByAliasTests.cs +++ /dev/null @@ -1,38 +0,0 @@ -// using System.Threading.Tasks; -// using Microsoft.Extensions.Logging; -// using Moq; -// using NUnit.Framework; -// using Umbraco.Cms.Core.Models.PublishedContent; -// using Umbraco.Cms.Core.Routing; -// using Umbraco.Extensions; -// -// namespace Umbraco.Cms.Tests.UnitTests.Umbraco.Core.Routing; -// -// // TODO: We should be able to decouple this from the base db tests since we're just mocking the services now -// FIXME: Reintroduce if relevant -// [TestFixture] -// public class ContentFinderByAliasTests : UrlRoutingTestBase -// { -// [TestCase("/this/is/my/alias", 1001)] -// [TestCase("/anotheralias", 1001)] -// [TestCase("/page2/alias", 10011)] -// [TestCase("/2ndpagealias", 10011)] -// [TestCase("/only/one/alias", 100111)] -// [TestCase("/ONLY/one/Alias", 100111)] -// [TestCase("/alias43", 100121)] -// public async Task Lookup_By_Url_Alias(string urlAsString, int nodeMatch) -// { -// var umbracoContextAccessor = GetUmbracoContextAccessor(urlAsString); -// var publishedRouter = CreatePublishedRouter(umbracoContextAccessor); -// var umbracoContext = umbracoContextAccessor.GetRequiredUmbracoContext(); -// -// var frequest = await publishedRouter.CreateRequestAsync(umbracoContext.CleanedUmbracoUrl); -// var lookup = -// new ContentFinderByUrlAlias(Mock.Of>(), Mock.Of(), VariationContextAccessor, umbracoContextAccessor); -// -// var result = await lookup.TryFindContent(frequest); -// -// Assert.IsTrue(result); -// Assert.AreEqual(frequest.PublishedContent.Id, nodeMatch); -// } -// } diff --git a/tests/Umbraco.Tests.UnitTests/Umbraco.Core/Routing/ContentFinderByAliasWithDomainsTests.cs b/tests/Umbraco.Tests.UnitTests/Umbraco.Core/Routing/ContentFinderByAliasWithDomainsTests.cs deleted file mode 100644 index 48f298f709..0000000000 --- a/tests/Umbraco.Tests.UnitTests/Umbraco.Core/Routing/ContentFinderByAliasWithDomainsTests.cs +++ /dev/null @@ -1,59 +0,0 @@ -// using System.Threading.Tasks; -// using Microsoft.Extensions.Logging; -// using Moq; -// using NUnit.Framework; -// using Umbraco.Cms.Core.Models.PublishedContent; -// using Umbraco.Cms.Core.Routing; -// using Umbraco.Extensions; -// -// namespace Umbraco.Cms.Tests.UnitTests.Umbraco.Core.Routing; -// -// FIXME: Reintroduce if relevant -// [TestFixture] -// public class ContentFinderByAliasWithDomainsTests : UrlRoutingTestBase -// { -// [TestCase("http://domain1.com/this/is/my/alias", "de-DE", -1001)] // alias to domain's page fails - no alias on domain's home -// [TestCase("http://domain1.com/page2/alias", "de-DE", 10011)] // alias to sub-page works -// [TestCase("http://domain1.com/en/flux", "en-US", -10011)] // alias to domain's page fails - no alias on domain's home -// [TestCase("http://domain1.com/endanger", "de-DE", 10011)] // alias to sub-page works, even with "en..." -// [TestCase("http://domain1.com/en/endanger", "en-US", -10011)] // no -// [TestCase("http://domain1.com/only/one/alias", "de-DE", 100111)] // ok -// [TestCase("http://domain1.com/entropy", "de-DE", 100111)] // ok -// [TestCase("http://domain1.com/bar/foo", "de-DE", 100111)] // ok -// [TestCase("http://domain1.com/en/bar/foo", "en-US", -100111)] // no, alias must include "en/" -// [TestCase("http://domain1.com/en/bar/nil", "en-US", 100111)] // ok, alias includes "en/" -// public async Task Lookup_By_Url_Alias_And_Domain(string inputUrl, string expectedCulture, int expectedNode) -// { -// // SetDomains1(); -// var umbracoContextAccessor = GetUmbracoContextAccessor(inputUrl); -// var publishedRouter = CreatePublishedRouter(umbracoContextAccessor); -// var umbracoContext = umbracoContextAccessor.GetRequiredUmbracoContext(); -// -// var request = await publishedRouter.CreateRequestAsync(umbracoContext.CleanedUmbracoUrl); -// -// // must lookup domain -// publishedRouter.FindAndSetDomain(request); -// -// if (expectedNode > 0) -// { -// Assert.AreEqual(expectedCulture, request.Culture); -// } -// -// var finder = new ContentFinderByUrlAlias( -// Mock.Of>(), -// Mock.Of(), -// VariationContextAccessor, -// umbracoContextAccessor); -// var result = await finder.TryFindContent(request); -// -// if (expectedNode > 0) -// { -// Assert.IsTrue(result); -// Assert.AreEqual(request.PublishedContent.Id, expectedNode); -// } -// else -// { -// Assert.IsFalse(result); -// } -// } -// } diff --git a/tests/Umbraco.Tests.UnitTests/Umbraco.Core/Routing/ContentFinderByIdTests.cs b/tests/Umbraco.Tests.UnitTests/Umbraco.Core/Routing/ContentFinderByIdTests.cs deleted file mode 100644 index 52f457b5ef..0000000000 --- a/tests/Umbraco.Tests.UnitTests/Umbraco.Core/Routing/ContentFinderByIdTests.cs +++ /dev/null @@ -1,51 +0,0 @@ -// using Microsoft.Extensions.Logging; -// using Microsoft.Extensions.Options; -// using Moq; -// using NUnit.Framework; -// using Umbraco.Cms.Core.Configuration.Models; -// using Umbraco.Cms.Core.Routing; -// using Umbraco.Cms.Core.Web; -// using Umbraco.Extensions; -// -// FIXME: Reintroduce if relevant -// namespace Umbraco.Cms.Tests.UnitTests.Umbraco.Core.Routing; -// -// [TestFixture] -// public class ContentFinderByIdTests : ContentFinderByIdentifierTestsBase -// { -// [SetUp] -// public override void Setup() -// { -// base.Setup(); -// } -// -// [TestCase("/1046", 1046, true)] -// [TestCase("/1046", 1047, false)] -// public async Task Lookup_By_Id(string urlAsString, int nodeId, bool shouldSucceed) -// { -// PopulateCache(nodeId, Guid.NewGuid()); -// -// var umbracoContextAccessor = GetUmbracoContextAccessor(urlAsString); -// var umbracoContext = umbracoContextAccessor.GetRequiredUmbracoContext(); -// var publishedRouter = CreatePublishedRouter(umbracoContextAccessor); -// var frequest = await publishedRouter.CreateRequestAsync(umbracoContext.CleanedUmbracoUrl); -// var webRoutingSettings = new WebRoutingSettings(); -// var lookup = new ContentFinderByIdPath( -// Mock.Of>(x => x.CurrentValue == webRoutingSettings), -// Mock.Of>(), -// Mock.Of(), -// umbracoContextAccessor); -// -// var result = await lookup.TryFindContent(frequest); -// -// Assert.AreEqual(shouldSucceed, result); -// if (shouldSucceed) -// { -// Assert.AreEqual(frequest.PublishedContent!.Id, nodeId); -// } -// else -// { -// Assert.IsNull(frequest.PublishedContent); -// } -// } -// } diff --git a/tests/Umbraco.Tests.UnitTests/Umbraco.Core/Routing/ContentFinderByIdentifierTestsBase.cs b/tests/Umbraco.Tests.UnitTests/Umbraco.Core/Routing/ContentFinderByIdentifierTestsBase.cs deleted file mode 100644 index ebdc08a792..0000000000 --- a/tests/Umbraco.Tests.UnitTests/Umbraco.Core/Routing/ContentFinderByIdentifierTestsBase.cs +++ /dev/null @@ -1,59 +0,0 @@ -// using Umbraco.Cms.Core.Models; -// using Umbraco.Cms.Tests.Common.Builders; -// using Umbraco.Cms.Tests.Common.Builders.Extensions; -// using Umbraco.Cms.Tests.UnitTests.TestHelpers; -// -// namespace Umbraco.Cms.Tests.UnitTests.Umbraco.Core.Routing; -// -// FIXME: Reintroduce if relevant -// public abstract class ContentFinderByIdentifierTestsBase : PublishedSnapshotServiceTestBase -// { -// protected void PopulateCache(int nodeId, Guid nodeKey) -// { -// var dataTypes = GetDefaultDataTypes().Select(dt => dt as IDataType).ToArray(); -// var propertyDataTypes = new Dictionary -// { -// // we only have one data type for this test which will be resolved with string empty. -// [string.Empty] = dataTypes[0], -// }; -// IContentType contentType1 = new ContentType(ShortStringHelper, -1); -// -// var rootData = new ContentDataBuilder() -// .WithName("Page" + Guid.NewGuid()) -// .Build(ShortStringHelper, propertyDataTypes, contentType1, "alias"); -// -// var root = ContentNodeKitBuilder.CreateWithContent( -// contentType1.Id, -// 9876, -// "-1,9876", -// draftData: rootData, -// publishedData: rootData); -// -// var parentData = new ContentDataBuilder() -// .WithName("Page" + Guid.NewGuid()) -// .Build(); -// -// var parent = ContentNodeKitBuilder.CreateWithContent( -// contentType1.Id, -// 5432, -// "-1,9876,5432", -// parentContentId: 9876, -// draftData: parentData, -// publishedData: parentData); -// -// var contentData = new ContentDataBuilder() -// .WithName("Page" + Guid.NewGuid()) -// .Build(); -// -// var content = ContentNodeKitBuilder.CreateWithContent( -// contentType1.Id, -// nodeId, -// "-1,9876,5432," + nodeId, -// parentContentId: 5432, -// draftData: contentData, -// publishedData: contentData, -// uid: nodeKey); -// -// InitializedCache(new[] { root, parent, content }, [contentType1], dataTypes); -// } -// } diff --git a/tests/Umbraco.Tests.UnitTests/Umbraco.Core/Routing/ContentFinderByKeyTests.cs b/tests/Umbraco.Tests.UnitTests/Umbraco.Core/Routing/ContentFinderByKeyTests.cs index a9b3771d86..8f6067b82c 100644 --- a/tests/Umbraco.Tests.UnitTests/Umbraco.Core/Routing/ContentFinderByKeyTests.cs +++ b/tests/Umbraco.Tests.UnitTests/Umbraco.Core/Routing/ContentFinderByKeyTests.cs @@ -1,53 +1,58 @@ -// using Microsoft.Extensions.Logging; -// using Microsoft.Extensions.Options; -// using Moq; -// using NUnit.Framework; -// using Umbraco.Cms.Core.Configuration.Models; -// using Umbraco.Cms.Core.Routing; -// using Umbraco.Cms.Core.Web; -// using Umbraco.Extensions; -// -// namespace Umbraco.Cms.Tests.UnitTests.Umbraco.Core.Routing; -// -// FIXME: Reintroduce if relevant -// [TestFixture] -// public class ContentFinderByKeyTests : ContentFinderByIdentifierTestsBase -// { -// [SetUp] -// public override void Setup() -// { -// base.Setup(); -// } -// -// [TestCase("/1598901d-ebbe-4996-b7fb-6a6cbac13a62", "1598901d-ebbe-4996-b7fb-6a6cbac13a62", true)] -// [TestCase("/1598901d-ebbe-4996-b7fb-6a6cbac13a62", "a383f6ed-cc54-46f1-a577-33f42e7214de", false)] -// public async Task Lookup_By_Key(string urlAsString, string nodeKeyString, bool shouldSucceed) -// { -// var nodeKey = Guid.Parse(nodeKeyString); -// -// PopulateCache(9999, nodeKey); -// -// var umbracoContextAccessor = GetUmbracoContextAccessor(urlAsString); -// var umbracoContext = umbracoContextAccessor.GetRequiredUmbracoContext(); -// var publishedRouter = CreatePublishedRouter(umbracoContextAccessor); -// var frequest = await publishedRouter.CreateRequestAsync(umbracoContext.CleanedUmbracoUrl); -// var webRoutingSettings = new WebRoutingSettings(); -// var lookup = new ContentFinderByKeyPath( -// Mock.Of>(x => x.CurrentValue == webRoutingSettings), -// Mock.Of>(), -// Mock.Of(), -// umbracoContextAccessor); -// -// var result = await lookup.TryFindContent(frequest); -// -// Assert.AreEqual(shouldSucceed, result); -// if (shouldSucceed) -// { -// Assert.AreEqual(frequest.PublishedContent!.Key, nodeKey); -// } -// else -// { -// Assert.IsNull(frequest.PublishedContent); -// } -// } -// } +using AutoFixture.NUnit3; +using Microsoft.Extensions.Logging; +using Microsoft.Extensions.Options; +using Moq; +using NUnit.Framework; +using Umbraco.Cms.Core.Configuration.Models; +using Umbraco.Cms.Core.Models.PublishedContent; +using Umbraco.Cms.Core.Routing; +using Umbraco.Cms.Core.Services; +using Umbraco.Cms.Core.Web; +using Umbraco.Cms.Tests.UnitTests.AutoFixture; + +namespace Umbraco.Cms.Tests.UnitTests.Umbraco.Core.Routing; + +[TestFixture] +public class ContentFinderByKeyTests +{ + [Test] + [InlineAutoMoqData("/1598901d-ebbe-4996-b7fb-6a6cbac13a62", "1598901d-ebbe-4996-b7fb-6a6cbac13a62", true)] + [InlineAutoMoqData("/1598901d-ebbe-4996-b7fb-6a6cbac13a62", "9E966427-25AB-4909-B403-DED1F421D1A7", false)] + public async Task Lookup_By_Key( + string urlAsString, + string nodeKeyString, + bool shouldSucceed, + [Frozen] IPublishedContent publishedContent, + [Frozen] IUmbracoContextAccessor umbracoContextAccessor, + [Frozen] IUmbracoContext umbracoContext, + IFileService fileService) + { + var absoluteUrl = "http://localhost" + urlAsString; + + Guid nodeKey = Guid.Parse(nodeKeyString); + + Mock.Get(umbracoContextAccessor).Setup(x => x.TryGetUmbracoContext(out umbracoContext)).Returns(true); + Mock.Get(umbracoContext).Setup(x => x.Content.GetById(nodeKey)).Returns(publishedContent); + Mock.Get(publishedContent).Setup(x => x.Key).Returns(nodeKey); + + var publishedRequestBuilder = new PublishedRequestBuilder(new Uri(absoluteUrl, UriKind.Absolute), fileService); + var webRoutingSettings = new WebRoutingSettings(); + + var sut = new ContentFinderByKeyPath( + Mock.Of>(x => x.CurrentValue == webRoutingSettings), + Mock.Of>(), + Mock.Of(), + umbracoContextAccessor); + + await sut.TryFindContent(publishedRequestBuilder); + + if (shouldSucceed) + { + Assert.AreEqual(publishedRequestBuilder.PublishedContent!.Key, nodeKey); + } + else + { + Assert.AreNotEqual(publishedRequestBuilder.PublishedContent!.Key, nodeKey); + } + } +} diff --git a/tests/Umbraco.Tests.UnitTests/Umbraco.Core/Routing/ContentFinderByPageIdQueryTests.cs b/tests/Umbraco.Tests.UnitTests/Umbraco.Core/Routing/ContentFinderByPageIdQueryTests.cs index 7c7993b0c0..af327e47ad 100644 --- a/tests/Umbraco.Tests.UnitTests/Umbraco.Core/Routing/ContentFinderByPageIdQueryTests.cs +++ b/tests/Umbraco.Tests.UnitTests/Umbraco.Core/Routing/ContentFinderByPageIdQueryTests.cs @@ -1,61 +1,49 @@ -// using System.Collections.Generic; -// using System.Linq; -// using System.Threading.Tasks; -// using System.Web; -// using Moq; -// using NUnit.Framework; -// using Umbraco.Cms.Core.Routing; -// using Umbraco.Cms.Core.Web; -// using Umbraco.Cms.Infrastructure.PublishedCache; -// using Umbraco.Cms.Tests.Common.Published; -// using Umbraco.Cms.Tests.UnitTests.TestHelpers; -// using Umbraco.Extensions; -// -// namespace Umbraco.Cms.Tests.UnitTests.Umbraco.Core.Routing; -// -// FIXME: Reintroduce if relevant -// [TestFixture] -// public class ContentFinderByPageIdQueryTests : PublishedSnapshotServiceTestBase -// { -// [SetUp] -// public override void Setup() -// { -// base.Setup(); -// -// var xml = PublishedContentXml.BaseWebTestXml(1234); -// -// IEnumerable kits = PublishedContentXmlAdapter.GetContentNodeKits( -// xml, -// TestHelper.ShortStringHelper, -// out var contentTypes, -// out var dataTypes).ToList(); -// -// InitializedCache(kits, contentTypes, dataTypes); -// } -// -// [TestCase("/?umbPageId=1046", 1046)] -// [TestCase("/?UMBPAGEID=1046", 1046)] -// [TestCase("/default.aspx?umbPageId=1046", 1046)] // TODO: Should this match?? -// [TestCase("/some/other/page?umbPageId=1046", 1046)] // TODO: Should this match?? -// [TestCase("/some/other/page.aspx?umbPageId=1046", 1046)] // TODO: Should this match?? -// public async Task Lookup_By_Page_Id(string urlAsString, int nodeMatch) -// { -// var umbracoContextAccessor = GetUmbracoContextAccessor(urlAsString); -// var umbracoContext = umbracoContextAccessor.GetRequiredUmbracoContext(); -// var publishedRouter = CreatePublishedRouter(umbracoContextAccessor); -// var frequest = await publishedRouter.CreateRequestAsync(umbracoContext.CleanedUmbracoUrl); -// -// var queryStrings = HttpUtility.ParseQueryString(umbracoContext.CleanedUmbracoUrl.Query); -// -// var mockRequestAccessor = new Mock(); -// mockRequestAccessor.Setup(x => x.GetRequestValue("umbPageID")) -// .Returns(queryStrings["umbPageID"]); -// -// var lookup = new ContentFinderByPageIdQuery(mockRequestAccessor.Object, umbracoContextAccessor); -// -// var result = await lookup.TryFindContent(frequest); -// -// Assert.IsTrue(result); -// Assert.AreEqual(frequest.PublishedContent.Id, nodeMatch); -// } -// } +using System.Web; +using AutoFixture.NUnit3; +using Moq; +using NUnit.Framework; +using Umbraco.Cms.Core.Models.PublishedContent; +using Umbraco.Cms.Core.Routing; +using Umbraco.Cms.Core.Services; +using Umbraco.Cms.Core.Web; +using Umbraco.Cms.Tests.UnitTests.AutoFixture; + +namespace Umbraco.Cms.Tests.UnitTests.Umbraco.Core.Routing; + +[TestFixture] +public class ContentFinderByPageIdQueryTests +{ + [Test] + [InlineAutoMoqData("/?umbPageId=1046", 1046)] + [InlineAutoMoqData("/?UMBPAGEID=1046", 1046)] + public async Task Lookup_By_Page_Id( + string urlAsString, + int nodeMatch, + [Frozen] IPublishedContent publishedContent, + [Frozen] IUmbracoContextAccessor umbracoContextAccessor, + [Frozen] IUmbracoContext umbracoContext, + [Frozen] IRequestAccessor requestAccessor, + IFileService fileService) + { + var absoluteUrl = "http://localhost" + urlAsString; + + Mock.Get(umbracoContextAccessor).Setup(x => x.TryGetUmbracoContext(out umbracoContext)).Returns(true); + Mock.Get(umbracoContext).Setup(x => x.Content.GetById(nodeMatch)).Returns(publishedContent); + Mock.Get(umbracoContext).Setup(x => x.CleanedUmbracoUrl) + .Returns(new Uri(absoluteUrl, UriKind.Absolute)); + Mock.Get(publishedContent).Setup(x => x.Id).Returns(nodeMatch); + + var queryStrings = HttpUtility.ParseQueryString(umbracoContext.CleanedUmbracoUrl.Query); + Mock.Get(requestAccessor).Setup(x => x.GetRequestValue("umbPageID")) + .Returns(queryStrings["umbPageID"]); + + var publishedRequestBuilder = new PublishedRequestBuilder(new Uri(absoluteUrl, UriKind.Absolute), fileService); + + var lookup = new ContentFinderByPageIdQuery(requestAccessor, umbracoContextAccessor); + + var result = await lookup.TryFindContent(publishedRequestBuilder); + + Assert.IsTrue(result); + Assert.AreEqual(publishedRequestBuilder.PublishedContent!.Id, nodeMatch); + } +} diff --git a/tests/Umbraco.Tests.UnitTests/Umbraco.Core/Routing/ContentFinderByUrlAndTemplateTests.cs b/tests/Umbraco.Tests.UnitTests/Umbraco.Core/Routing/ContentFinderByUrlAndTemplateTests.cs deleted file mode 100644 index 60639ee36b..0000000000 --- a/tests/Umbraco.Tests.UnitTests/Umbraco.Core/Routing/ContentFinderByUrlAndTemplateTests.cs +++ /dev/null @@ -1,84 +0,0 @@ -// using System.Collections.Generic; -// using System.Linq; -// using System.Threading.Tasks; -// using Microsoft.Extensions.Logging; -// using Microsoft.Extensions.Options; -// using Moq; -// using NUnit.Framework; -// using Umbraco.Cms.Core.Configuration.Models; -// using Umbraco.Cms.Core.Models; -// using Umbraco.Cms.Core.Routing; -// using Umbraco.Cms.Core.Services; -// using Umbraco.Cms.Infrastructure.PublishedCache; -// using Umbraco.Cms.Tests.Common.Published; -// using Umbraco.Cms.Tests.UnitTests.TestHelpers; -// using Umbraco.Extensions; -// -// namespace Umbraco.Cms.Tests.UnitTests.Umbraco.Core.Routing; -// -// FIXME: Reintroduce if relevant -// [TestFixture] -// public class ContentFinderByUrlAndTemplateTests : PublishedSnapshotServiceTestBase -// { -// [SetUp] -// public override void Setup() -// { -// base.Setup(); -// -// var xml = PublishedContentXml.BaseWebTestXml(1234); -// -// IEnumerable kits = PublishedContentXmlAdapter.GetContentNodeKits( -// xml, -// TestHelper.ShortStringHelper, -// out var contentTypes, -// out var dataTypes).ToList(); -// -// InitializedCache(kits, contentTypes, dataTypes); -// } -// -// private IFileService _fileService; -// -// protected override ServiceContext CreateServiceContext(IContentType[] contentTypes, IMediaType[] mediaTypes, IDataType[] dataTypes) -// { -// var serviceContext = base.CreateServiceContext(contentTypes, mediaTypes, dataTypes); -// -// var fileService = Mock.Get(serviceContext.FileService); -// fileService.Setup(x => x.GetTemplate(It.IsAny())) -// .Returns((string alias) => new Template(ShortStringHelper, alias, alias)); -// -// _fileService = fileService.Object; -// -// return serviceContext; -// } -// -// [TestCase("/blah")] -// [TestCase("/home/Sub1/blah")] -// [TestCase("/Home/Sub1/Blah")] // different cases -// public async Task Match_Document_By_Url_With_Template(string urlAsString) -// { -// GlobalSettings.HideTopLevelNodeFromPath = false; -// -// var umbracoContextAccessor = GetUmbracoContextAccessor(urlAsString); -// var umbracoContext = umbracoContextAccessor.GetRequiredUmbracoContext(); -// var publishedRouter = CreatePublishedRouter(umbracoContextAccessor); -// var frequest = await publishedRouter.CreateRequestAsync(umbracoContext.CleanedUmbracoUrl); -// -// var webRoutingSettings = new WebRoutingSettings(); -// var lookup = new ContentFinderByUrlAndTemplate( -// Mock.Of>(), -// _fileService, -// ContentTypeService, -// umbracoContextAccessor, -// Mock.Of>(x => x.CurrentValue == webRoutingSettings)); -// -// var result = await lookup.TryFindContent(frequest); -// -// var request = frequest.Build(); -// -// Assert.IsTrue(result); -// Assert.IsNotNull(frequest.PublishedContent); -// var templateAlias = request.GetTemplateAlias(); -// Assert.IsNotNull(templateAlias); -// Assert.AreEqual("blah".ToUpperInvariant(), templateAlias.ToUpperInvariant()); -// } -// } diff --git a/tests/Umbraco.Tests.UnitTests/Umbraco.Core/Routing/ContentFinderByUrlTests.cs b/tests/Umbraco.Tests.UnitTests/Umbraco.Core/Routing/ContentFinderByUrlTests.cs deleted file mode 100644 index ededa7144a..0000000000 --- a/tests/Umbraco.Tests.UnitTests/Umbraco.Core/Routing/ContentFinderByUrlTests.cs +++ /dev/null @@ -1,165 +0,0 @@ -// using System.Collections.Generic; -// using System.Diagnostics; -// using System.Linq; -// using System.Threading.Tasks; -// using Microsoft.Extensions.Logging; -// using Moq; -// using NUnit.Framework; -// using Umbraco.Cms.Core.Routing; -// using Umbraco.Cms.Infrastructure.PublishedCache; -// using Umbraco.Cms.Tests.Common.Published; -// using Umbraco.Cms.Tests.UnitTests.TestHelpers; -// using Umbraco.Extensions; -// -// namespace Umbraco.Cms.Tests.UnitTests.Umbraco.Core.Routing; -// -// FIXME: Reintroduce if relevant -// [TestFixture] -// public class ContentFinderByUrlTests : PublishedSnapshotServiceTestBase -// { -// private async Task<(ContentFinderByUrl finder, IPublishedRequestBuilder frequest)> GetContentFinder( -// string urlString) -// { -// var xml = PublishedContentXml.BaseWebTestXml(1234); -// -// IEnumerable kits = PublishedContentXmlAdapter.GetContentNodeKits( -// xml, -// TestHelper.ShortStringHelper, -// out var contentTypes, -// out var dataTypes).ToList(); -// -// InitializedCache(kits, contentTypes, dataTypes); -// -// var umbracoContextAccessor = GetUmbracoContextAccessor(urlString); -// var umbracoContext = umbracoContextAccessor.GetRequiredUmbracoContext(); -// var publishedRouter = CreatePublishedRouter(umbracoContextAccessor); -// var frequest = await publishedRouter.CreateRequestAsync(umbracoContext.CleanedUmbracoUrl); -// var lookup = new ContentFinderByUrl(Mock.Of>(), umbracoContextAccessor); -// return (lookup, frequest); -// } -// -// [TestCase("/", 1046)] -// [TestCase("/Sub1", 1173)] -// [TestCase("/sub1", 1173)] -// [TestCase("/home/sub1", -1)] // should fail -// -// // these two are special. getNiceUrl(1046) returns "/" but getNiceUrl(1172) cannot also return "/" so -// // we've made it return "/test-page" => we have to support that URL back in the lookup... -// [TestCase("/home", 1046)] -// [TestCase("/test-page", 1172)] -// public async Task Match_Document_By_Url_Hide_Top_Level(string urlString, int expectedId) -// { -// GlobalSettings.HideTopLevelNodeFromPath = true; -// -// var (finder, frequest) = await GetContentFinder(urlString); -// -// Assert.IsTrue(GlobalSettings.HideTopLevelNodeFromPath); -// -// // TODO: debugging - going further down, the routes cache is NOT empty?! -// if (urlString == "/home/sub1") -// { -// Debugger.Break(); -// } -// -// var result = await finder.TryFindContent(frequest); -// -// if (expectedId > 0) -// { -// Assert.IsTrue(result); -// Assert.AreEqual(expectedId, frequest.PublishedContent.Id); -// } -// else -// { -// Assert.IsFalse(result); -// } -// } -// -// [TestCase("/", 1046)] -// [TestCase("/home", 1046)] -// [TestCase("/home/Sub1", 1173)] -// [TestCase("/Home/Sub1", 1173)] // different cases -// public async Task Match_Document_By_Url(string urlString, int expectedId) -// { -// GlobalSettings.HideTopLevelNodeFromPath = false; -// -// var (finder, frequest) = await GetContentFinder(urlString); -// -// Assert.IsFalse(GlobalSettings.HideTopLevelNodeFromPath); -// -// var result = await finder.TryFindContent(frequest); -// -// Assert.IsTrue(result); -// Assert.AreEqual(expectedId, frequest.PublishedContent.Id); -// } -// -// /// -// /// This test handles requests with special characters in the URL. -// /// -// /// -// /// -// [TestCase("/", 1046)] -// [TestCase("/home/sub1/custom-sub-3-with-accént-character", 1179)] -// [TestCase("/home/sub1/custom-sub-4-with-æøå", 1180)] -// public async Task Match_Document_By_Url_With_Special_Characters(string urlString, int expectedId) -// { -// GlobalSettings.HideTopLevelNodeFromPath = false; -// -// var (finder, frequest) = await GetContentFinder(urlString); -// -// var result = await finder.TryFindContent(frequest); -// -// Assert.IsTrue(result); -// Assert.AreEqual(expectedId, frequest.PublishedContent.Id); -// } -// -// /// -// /// This test handles requests with a hostname associated. -// /// The logic for handling this goes through the DomainHelper and is a bit different -// /// from what happens in a normal request - so it has a separate test with a mocked -// /// hostname added. -// /// -// /// -// /// -// [TestCase("/", 1046)] -// [TestCase("/home/sub1/custom-sub-3-with-accént-character", 1179)] -// [TestCase("/home/sub1/custom-sub-4-with-æøå", 1180)] -// public async Task Match_Document_By_Url_With_Special_Characters_Using_Hostname(string urlString, int expectedId) -// { -// GlobalSettings.HideTopLevelNodeFromPath = false; -// -// var (finder, frequest) = await GetContentFinder(urlString); -// -// frequest.SetDomain(new DomainAndUri(new Domain(1, "mysite", -1, "en-US", false, 0), new Uri("http://mysite/"))); -// -// var result = await finder.TryFindContent(frequest); -// -// Assert.IsTrue(result); -// Assert.AreEqual(expectedId, frequest.PublishedContent.Id); -// } -// -// /// -// /// This test handles requests with a hostname with special characters associated. -// /// The logic for handling this goes through the DomainHelper and is a bit different -// /// from what happens in a normal request - so it has a separate test with a mocked -// /// hostname added. -// /// -// /// -// /// -// [TestCase("/æøå/", 1046)] -// [TestCase("/æøå/home/sub1", 1173)] -// [TestCase("/æøå/home/sub1/custom-sub-3-with-accént-character", 1179)] -// [TestCase("/æøå/home/sub1/custom-sub-4-with-æøå", 1180)] -// public async Task Match_Document_By_Url_With_Special_Characters_In_Hostname(string urlString, int expectedId) -// { -// GlobalSettings.HideTopLevelNodeFromPath = false; -// -// var (finder, frequest) = await GetContentFinder(urlString); -// -// frequest.SetDomain(new DomainAndUri(new Domain(1, "mysite/æøå", -1, "en-US", false, 0), new Uri("http://mysite/æøå"))); -// -// var result = await finder.TryFindContent(frequest); -// -// Assert.IsTrue(result); -// Assert.AreEqual(expectedId, frequest.PublishedContent.Id); -// } -// } diff --git a/tests/Umbraco.Tests.UnitTests/Umbraco.Core/Routing/ContentFinderByUrlWithDomainsTests.cs b/tests/Umbraco.Tests.UnitTests/Umbraco.Core/Routing/ContentFinderByUrlWithDomainsTests.cs deleted file mode 100644 index 25addd98e9..0000000000 --- a/tests/Umbraco.Tests.UnitTests/Umbraco.Core/Routing/ContentFinderByUrlWithDomainsTests.cs +++ /dev/null @@ -1,257 +0,0 @@ -// using System.Threading; -// using System.Threading.Tasks; -// using Microsoft.Extensions.Logging; -// using Moq; -// using NUnit.Framework; -// using Umbraco.Cms.Core.Models; -// using Umbraco.Cms.Core.Routing; -// using Umbraco.Extensions; -// -// namespace Umbraco.Cms.Tests.UnitTests.Umbraco.Core.Routing; -// -// FIXME: Reintroduce if relevant -// [TestFixture] -// public class ContentFinderByUrlWithDomainsTests : UrlRoutingTestBase -// { -// private void SetDomains3() -// { -// var domainService = Mock.Get(DomainService); -// -// domainService.Setup(service => service.GetAll(It.IsAny())) -// .Returns((bool incWildcards) => new[] -// { -// new UmbracoDomain("domain1.com/") -// { -// Id = 1, LanguageId = LangDeId, RootContentId = 1001, -// LanguageIsoCode = "de-DE", -// }, -// }); -// } -// -// private void SetDomains4() -// { -// var domainService = Mock.Get(DomainService); -// -// domainService.Setup(service => service.GetAll(It.IsAny())) -// .Returns((bool incWildcards) => new[] -// { -// new UmbracoDomain("domain1.com/") -// { -// Id = 1, LanguageId = LangEngId, RootContentId = 1001, LanguageIsoCode = "en-US", -// }, -// new UmbracoDomain("domain1.com/en") -// { -// Id = 2, LanguageId = LangEngId, RootContentId = 10011, LanguageIsoCode = "en-US", -// }, -// new UmbracoDomain("domain1.com/fr") -// { -// Id = 3, LanguageId = LangFrId, RootContentId = 10012, LanguageIsoCode = "fr-FR", -// }, -// new UmbracoDomain("http://domain3.com/") -// { -// Id = 4, LanguageId = LangEngId, RootContentId = 1003, LanguageIsoCode = "en-US", -// }, -// new UmbracoDomain("http://domain3.com/en") -// { -// Id = 5, LanguageId = LangEngId, RootContentId = 10031, LanguageIsoCode = "en-US", -// }, -// new UmbracoDomain("http://domain3.com/fr") -// { -// Id = 6, LanguageId = LangFrId, RootContentId = 10032, LanguageIsoCode = "fr-FR", -// }, -// }); -// } -// -// protected override string GetXmlContent(int templateId) -// => @" -// -// -// ]> -// -// -// -// -// This is some content]]> -// -// -// -// -// -// -// -// -// -// -// -// -// -// -// This is some content]]> -// -// -// -// -// -// -// -// -// -// -// -// -// -// -// -// -// -// -// -// -// -// This is some content]]> -// -// -// -// -// -// -// -// -// -// -// -// -// -// -// This is some content]]> -// -// -// -// -// -// -// -// -// -// -// -// -// -// -// -// -// "; -// -// [TestCase("http://domain1.com/", 1001)] -// [TestCase("http://domain1.com/1001-1", 10011)] -// [TestCase("http://domain1.com/1001-2/1001-2-1", 100121)] -// public async Task Lookup_SingleDomain(string url, int expectedId) -// { -// SetDomains3(); -// -// GlobalSettings.HideTopLevelNodeFromPath = true; -// -// var umbracoContextAccessor = GetUmbracoContextAccessor(url); -// var publishedRouter = CreatePublishedRouter(umbracoContextAccessor); -// var umbracoContext = umbracoContextAccessor.GetRequiredUmbracoContext(); -// var frequest = await publishedRouter.CreateRequestAsync(umbracoContext.CleanedUmbracoUrl); -// -// // must lookup domain else lookup by URL fails -// publishedRouter.FindAndSetDomain(frequest); -// -// var lookup = new ContentFinderByUrl(Mock.Of>(), umbracoContextAccessor); -// var result = await lookup.TryFindContent(frequest); -// Assert.IsTrue(result); -// Assert.AreEqual(expectedId, frequest.PublishedContent.Id); -// } -// -// [TestCase("http://domain1.com/", 1001, "en-US")] -// [TestCase("http://domain1.com/en", 10011, "en-US")] -// [TestCase("http://domain1.com/en/1001-1-1", 100111, "en-US")] -// [TestCase("http://domain1.com/fr", 10012, "fr-FR")] -// [TestCase("http://domain1.com/fr/1001-2-1", 100121, "fr-FR")] -// [TestCase("http://domain1.com/1001-3", 10013, "en-US")] -// [TestCase("http://domain2.com/1002", 1002, "")] -// [TestCase("http://domain3.com/", 1003, "en-US")] -// [TestCase("http://domain3.com/en", 10031, "en-US")] -// [TestCase("http://domain3.com/en/1003-1-1", 100311, "en-US")] -// [TestCase("http://domain3.com/fr", 10032, "fr-FR")] -// [TestCase("http://domain3.com/fr/1003-2-1", 100321, "fr-FR")] -// [TestCase("http://domain3.com/1003-3", 10033, "en-US")] -// [TestCase("https://domain1.com/", 1001, "en-US")] -// [TestCase("https://domain3.com/", 1001, "")] // because domain3 is explicitely set on http -// public async Task Lookup_NestedDomains(string url, int expectedId, string expectedCulture) -// { -// SetDomains4(); -// -// // defaults depend on test environment -// expectedCulture ??= Thread.CurrentThread.CurrentUICulture.Name; -// -// GlobalSettings.HideTopLevelNodeFromPath = true; -// -// var umbracoContextAccessor = GetUmbracoContextAccessor(url); -// var publishedRouter = CreatePublishedRouter(umbracoContextAccessor); -// var umbracoContext = umbracoContextAccessor.GetRequiredUmbracoContext(); -// var frequest = await publishedRouter.CreateRequestAsync(umbracoContext.CleanedUmbracoUrl); -// -// // must lookup domain else lookup by URL fails -// publishedRouter.FindAndSetDomain(frequest); -// Assert.AreEqual(expectedCulture, frequest.Culture); -// -// var lookup = new ContentFinderByUrl(Mock.Of>(), umbracoContextAccessor); -// var result = await lookup.TryFindContent(frequest); -// Assert.IsTrue(result); -// Assert.AreEqual(expectedId, frequest.PublishedContent.Id); -// } -// }