Merge branch 'v15/dev' into v16/merge-from-15
# Conflicts: # src/Umbraco.Cms.Api.Management/Controllers/PublishedCache/RebuildPublishedCacheController.cs # src/Umbraco.Cms.Api.Management/Factories/UserPresentationFactory.cs # src/Umbraco.Core/Persistence/Repositories/ITrackedReferencesRepository.cs # src/Umbraco.Core/Services/ContentEditingService.cs # src/Umbraco.Core/Services/DataTypeService.cs # src/Umbraco.Core/Services/IContentEditingService.cs # src/Umbraco.Core/Services/IDataTypeService.cs # src/Umbraco.Core/Services/ITrackedReferencesService.cs # src/Umbraco.Core/Services/RelationService.cs # src/Umbraco.Core/Services/TrackedReferencesService.cs # src/Umbraco.Infrastructure/Examine/Deferred/DeliveryApiContentIndexHandleContentTypeChanges.cs # src/Umbraco.Infrastructure/Examine/DeliveryApiIndexingHandler.cs # src/Umbraco.Infrastructure/Persistence/Repositories/Implement/TrackedReferencesRepository.cs # src/Umbraco.Web.UI.Client/src/external/backend-api/src/sdk.gen.ts # src/Umbraco.Web.UI.Client/src/mocks/data/document-blueprint/document-blueprint.data.ts # src/Umbraco.Web.UI.Client/src/mocks/data/document/document.db.ts # src/Umbraco.Web.UI.Client/src/packages/core/router/modal-registration/modal-route-registration.controller.ts # src/Umbraco.Web.UI.Client/src/packages/core/router/route/route.context.ts # src/Umbraco.Web.UI.Client/src/packages/core/router/route/route.interface.ts # src/Umbraco.Web.UI.Client/src/packages/core/router/route/router-slot.element.ts # src/Umbraco.Web.UI.Client/src/packages/core/router/router-slot/model.ts # src/Umbraco.Web.UI.Client/src/packages/data-type/reference/repository/data-type-reference.server.data.ts # src/Umbraco.Web.UI.Client/src/packages/documents/documents/publishing/repository/document-publishing.server.data-source.ts # src/Umbraco.Web.UI.Client/src/packages/documents/documents/rollback/entity-action/rollback.action.ts # tests/Umbraco.Tests.AcceptanceTest/package-lock.json # tests/Umbraco.Tests.AcceptanceTest/package.json # tests/Umbraco.Tests.Common/Builders/UserGroupBuilder.cs # tests/Umbraco.Tests.Integration/Umbraco.Core/Services/TemporaryFileServiceTests.cs
This commit is contained in:
@@ -48,7 +48,7 @@ public class ContentBuilderTests : DeliveryApiTests
|
||||
Assert.NotNull(result);
|
||||
Assert.AreEqual("The page", result.Name);
|
||||
Assert.AreEqual("thePageType", result.ContentType);
|
||||
Assert.AreEqual("/url:url-segment", result.Route.Path);
|
||||
Assert.AreEqual("/url:url-segment/", result.Route.Path);
|
||||
Assert.AreEqual(key, result.Id);
|
||||
Assert.AreEqual(2, result.Properties.Count);
|
||||
Assert.AreEqual("Delivery API value", result.Properties["deliveryApi"]);
|
||||
|
||||
@@ -40,7 +40,7 @@ public class ContentPickerValueConverterTests : PropertyValueConverterTests
|
||||
Assert.NotNull(result);
|
||||
Assert.AreEqual("The page", result.Name);
|
||||
Assert.AreEqual(PublishedContent.Key, result.Id);
|
||||
Assert.AreEqual("/the-page-url", result.Route.Path);
|
||||
Assert.AreEqual("/the-page-url/", result.Route.Path);
|
||||
Assert.AreEqual("TheContentType", result.ContentType);
|
||||
Assert.IsEmpty(result.Properties);
|
||||
}
|
||||
@@ -103,7 +103,7 @@ public class ContentPickerValueConverterTests : PropertyValueConverterTests
|
||||
Assert.NotNull(result);
|
||||
Assert.AreEqual("The page", result.Name);
|
||||
Assert.AreEqual(content.Object.Key, result.Id);
|
||||
Assert.AreEqual("/page-url-segment", result.Route.Path);
|
||||
Assert.AreEqual("/page-url-segment/", result.Route.Path);
|
||||
Assert.AreEqual("TheContentType", result.ContentType);
|
||||
Assert.AreEqual(2, result.Properties.Count);
|
||||
Assert.AreEqual("Delivery API value", result.Properties[DeliveryApiPropertyType.Alias]);
|
||||
|
||||
@@ -50,7 +50,7 @@ public class ContentRouteBuilderTests : DeliveryApiTests
|
||||
IEnumerable<Guid> ancestorsKeys = [rootKey];
|
||||
navigationQueryServiceMock.Setup(x => x.TryGetAncestorsKeys(childKey, out ancestorsKeys)).Returns(true);
|
||||
|
||||
var contentCache = CreatePublishedContentCache("#");
|
||||
var contentCache = CreatePublishedContentCache();
|
||||
Mock.Get(contentCache).Setup(x => x.GetById(It.IsAny<bool>(), root.Key)).Returns(root);
|
||||
Mock.Get(contentCache).Setup(x => x.GetById(It.IsAny<bool>(), child.Key)).Returns(child);
|
||||
|
||||
@@ -77,7 +77,7 @@ public class ContentRouteBuilderTests : DeliveryApiTests
|
||||
var grandchildKey = Guid.NewGuid();
|
||||
var grandchild = SetupInvariantPublishedContent("The Grandchild", grandchildKey, navigationQueryServiceMock, child);
|
||||
|
||||
var contentCache = CreatePublishedContentCache("#");
|
||||
var contentCache = CreatePublishedContentCache();
|
||||
Mock.Get(contentCache).Setup(x => x.GetById(It.IsAny<bool>(), root.Key)).Returns(root);
|
||||
Mock.Get(contentCache).Setup(x => x.GetById(It.IsAny<bool>(), child.Key)).Returns(child);
|
||||
Mock.Get(contentCache).Setup(x => x.GetById(It.IsAny<bool>(), grandchild.Key)).Returns(grandchild);
|
||||
@@ -104,7 +104,7 @@ public class ContentRouteBuilderTests : DeliveryApiTests
|
||||
var childKey = Guid.NewGuid();
|
||||
var child = SetupVariantPublishedContent("The Child", childKey, navigationQueryServiceMock, root);
|
||||
|
||||
var contentCache = CreatePublishedContentCache("#");
|
||||
var contentCache = CreatePublishedContentCache();
|
||||
Mock.Get(contentCache).Setup(x => x.GetById(It.IsAny<bool>(), root.Key)).Returns(root);
|
||||
Mock.Get(contentCache).Setup(x => x.GetById(It.IsAny<bool>(), child.Key)).Returns(child);
|
||||
|
||||
@@ -136,7 +136,7 @@ public class ContentRouteBuilderTests : DeliveryApiTests
|
||||
var childKey = Guid.NewGuid();
|
||||
var child = SetupInvariantPublishedContent("The Child", childKey, navigationQueryServiceMock, root);
|
||||
|
||||
var contentCache = CreatePublishedContentCache("#");
|
||||
var contentCache = CreatePublishedContentCache();
|
||||
Mock.Get(contentCache).Setup(x => x.GetById(It.IsAny<bool>(), root.Key)).Returns(root);
|
||||
Mock.Get(contentCache).Setup(x => x.GetById(It.IsAny<bool>(), child.Key)).Returns(child);
|
||||
|
||||
@@ -168,7 +168,7 @@ public class ContentRouteBuilderTests : DeliveryApiTests
|
||||
var childKey = Guid.NewGuid();
|
||||
var child = SetupVariantPublishedContent("The Child", childKey, navigationQueryServiceMock, root);
|
||||
|
||||
var contentCache = CreatePublishedContentCache("#");
|
||||
var contentCache = CreatePublishedContentCache();
|
||||
Mock.Get(contentCache).Setup(x => x.GetById(It.IsAny<bool>(), root.Key)).Returns(root);
|
||||
Mock.Get(contentCache).Setup(x => x.GetById(It.IsAny<bool>(), child.Key)).Returns(child);
|
||||
|
||||
@@ -209,7 +209,7 @@ public class ContentRouteBuilderTests : DeliveryApiTests
|
||||
{
|
||||
var result = GetUnRoutableRoute(resolvedUrl, "/the/content/route");
|
||||
Assert.IsNotNull(result);
|
||||
Assert.AreEqual("/the/content/route", result.Path);
|
||||
Assert.AreEqual("/the/content/route/", result.Path);
|
||||
}
|
||||
|
||||
[TestCase("")]
|
||||
@@ -266,7 +266,7 @@ public class ContentRouteBuilderTests : DeliveryApiTests
|
||||
var childKey = Guid.NewGuid();
|
||||
var child = SetupInvariantPublishedContent("The Child", childKey, navigationQueryServiceMock, root, false);
|
||||
|
||||
var contentCache = CreatePublishedContentCache("#");
|
||||
var contentCache = CreatePublishedContentCache();
|
||||
Mock.Get(contentCache).Setup(x => x.GetById(It.IsAny<bool>(), root.Key)).Returns(root);
|
||||
Mock.Get(contentCache).Setup(x => x.GetById(It.IsAny<bool>(), child.Key)).Returns(child);
|
||||
|
||||
@@ -293,7 +293,7 @@ public class ContentRouteBuilderTests : DeliveryApiTests
|
||||
var childKey = Guid.NewGuid();
|
||||
var child = SetupInvariantPublishedContent("The Child", childKey, navigationQueryServiceMock, root, false);
|
||||
|
||||
var contentCache = CreatePublishedContentCache("#");
|
||||
var contentCache = CreatePublishedContentCache();
|
||||
Mock.Get(contentCache).Setup(x => x.GetById(It.IsAny<bool>(), root.Key)).Returns(root);
|
||||
Mock.Get(contentCache).Setup(x => x.GetById(It.IsAny<bool>(), child.Key)).Returns(child);
|
||||
|
||||
@@ -321,7 +321,7 @@ public class ContentRouteBuilderTests : DeliveryApiTests
|
||||
var requestPreviewServiceMock = new Mock<IRequestPreviewService>();
|
||||
requestPreviewServiceMock.Setup(m => m.IsPreview()).Returns(isPreview);
|
||||
|
||||
var contentCache = CreatePublishedContentCache("#");
|
||||
var contentCache = CreatePublishedContentCache();
|
||||
Mock.Get(contentCache).Setup(x => x.GetById(It.IsAny<bool>(), root.Key)).Returns(root);
|
||||
Mock.Get(contentCache).Setup(x => x.GetById(It.IsAny<bool>(), child.Key)).Returns(child);
|
||||
|
||||
@@ -355,7 +355,7 @@ public class ContentRouteBuilderTests : DeliveryApiTests
|
||||
var childKey = Guid.NewGuid();
|
||||
var child = SetupInvariantPublishedContent("The Child", childKey, navigationQueryServiceMock, root);
|
||||
|
||||
var contentCache = CreatePublishedContentCache("#");
|
||||
var contentCache = CreatePublishedContentCache();
|
||||
Mock.Get(contentCache).Setup(x => x.GetById(It.IsAny<bool>(), root.Key)).Returns(root);
|
||||
Mock.Get(contentCache).Setup(x => x.GetById(It.IsAny<bool>(), child.Key)).Returns(child);
|
||||
|
||||
@@ -460,7 +460,7 @@ public class ContentRouteBuilderTests : DeliveryApiTests
|
||||
var requestPreviewServiceMock = new Mock<IRequestPreviewService>();
|
||||
requestPreviewServiceMock.Setup(m => m.IsPreview()).Returns(isPreview);
|
||||
|
||||
contentCache ??= CreatePublishedContentCache("#");
|
||||
contentCache ??= CreatePublishedContentCache();
|
||||
apiContentPathProvider ??= SetupApiContentPathProvider(hideTopLevelNodeFromPath, contentCache, navigationQueryService);
|
||||
|
||||
return CreateContentRouteBuilder(
|
||||
@@ -480,25 +480,24 @@ public class ContentRouteBuilderTests : DeliveryApiTests
|
||||
.Returns(publishedUrl);
|
||||
var contentPathProvider = new ApiContentPathProvider(publishedUrlProviderMock.Object);
|
||||
|
||||
var contentCache = CreatePublishedContentCache(routeById);
|
||||
var contentCache = CreatePublishedContentCache();
|
||||
var navigationQueryServiceMock = new Mock<IDocumentNavigationQueryService>();
|
||||
var content = SetupVariantPublishedContent("The Content", Guid.NewGuid(), navigationQueryServiceMock);
|
||||
|
||||
var documentUrlServiceMock = new Mock<IDocumentUrlService>();
|
||||
documentUrlServiceMock
|
||||
.Setup(m => m.GetLegacyRouteFormat(It.IsAny<Guid>(), It.IsAny<string?>(), It.IsAny<bool>()))
|
||||
.Returns(routeById);
|
||||
|
||||
var builder = CreateContentRouteBuilder(
|
||||
contentPathProvider,
|
||||
CreateGlobalSettings(),
|
||||
contentCache: contentCache);
|
||||
contentCache: contentCache,
|
||||
documentUrlService: documentUrlServiceMock.Object);
|
||||
|
||||
return builder.Build(content);
|
||||
}
|
||||
|
||||
private IPublishedContentCache CreatePublishedContentCache(string routeById)
|
||||
{
|
||||
var publishedContentCacheMock = new Mock<IPublishedContentCache>();
|
||||
publishedContentCacheMock
|
||||
.Setup(c => c.GetRouteById(It.IsAny<int>(), It.IsAny<string?>()))
|
||||
.Returns(routeById);
|
||||
|
||||
return publishedContentCacheMock.Object;
|
||||
}
|
||||
private IPublishedContentCache CreatePublishedContentCache()
|
||||
=> Mock.Of<IPublishedContentCache>();
|
||||
}
|
||||
|
||||
@@ -9,6 +9,7 @@ using Umbraco.Cms.Core.Models.PublishedContent;
|
||||
using Umbraco.Cms.Core.PropertyEditors;
|
||||
using Umbraco.Cms.Core.PropertyEditors.DeliveryApi;
|
||||
using Umbraco.Cms.Core.PublishedCache;
|
||||
using Umbraco.Cms.Core.Services;
|
||||
using Umbraco.Cms.Core.Services.Navigation;
|
||||
using Umbraco.Extensions;
|
||||
|
||||
@@ -128,7 +129,8 @@ public class DeliveryApiTests
|
||||
IOptionsMonitor<RequestHandlerSettings>? requestHandlerSettingsMonitor = null,
|
||||
IPublishedContentCache? contentCache = null,
|
||||
IDocumentNavigationQueryService? navigationQueryService = null,
|
||||
IPublishStatusQueryService? publishStatusQueryService = null)
|
||||
IPublishStatusQueryService? publishStatusQueryService = null,
|
||||
IDocumentUrlService? documentUrlService = null)
|
||||
{
|
||||
if (requestHandlerSettingsMonitor == null)
|
||||
{
|
||||
@@ -145,6 +147,7 @@ public class DeliveryApiTests
|
||||
requestHandlerSettingsMonitor,
|
||||
contentCache ?? Mock.Of<IPublishedContentCache>(),
|
||||
navigationQueryService ?? Mock.Of<IDocumentNavigationQueryService>(),
|
||||
publishStatusQueryService ?? PublishStatusQueryService);
|
||||
publishStatusQueryService ?? PublishStatusQueryService,
|
||||
documentUrlService ?? Mock.Of<IDocumentUrlService>());
|
||||
}
|
||||
}
|
||||
|
||||
@@ -59,7 +59,7 @@ public class MultiNodeTreePickerValueConverterTests : PropertyValueConverterTest
|
||||
Assert.AreEqual(1, result.Count());
|
||||
Assert.AreEqual(PublishedContent.Name, result.First().Name);
|
||||
Assert.AreEqual(PublishedContent.Key, result.First().Id);
|
||||
Assert.AreEqual("/the-page-url", result.First().Route.Path);
|
||||
Assert.AreEqual("/the-page-url/", result.First().Route.Path);
|
||||
Assert.AreEqual("TheContentType", result.First().ContentType);
|
||||
Assert.IsEmpty(result.First().Properties);
|
||||
}
|
||||
@@ -86,7 +86,7 @@ public class MultiNodeTreePickerValueConverterTests : PropertyValueConverterTest
|
||||
|
||||
Assert.AreEqual(PublishedContent.Name, result.First().Name);
|
||||
Assert.AreEqual(PublishedContent.Key, result.First().Id);
|
||||
Assert.AreEqual("/the-page-url", result.First().Route.Path);
|
||||
Assert.AreEqual("/the-page-url/", result.First().Route.Path);
|
||||
Assert.AreEqual("TheContentType", result.First().ContentType);
|
||||
|
||||
Assert.AreEqual("The other page", result.Last().Name);
|
||||
@@ -130,7 +130,7 @@ public class MultiNodeTreePickerValueConverterTests : PropertyValueConverterTest
|
||||
Assert.AreEqual(1, result.Count());
|
||||
Assert.AreEqual("The page", result.First().Name);
|
||||
Assert.AreEqual(key, result.First().Id);
|
||||
Assert.AreEqual("/page-url-segment", result.First().Route.Path);
|
||||
Assert.AreEqual("/page-url-segment/", result.First().Route.Path);
|
||||
Assert.AreEqual("TheContentType", result.First().ContentType);
|
||||
Assert.AreEqual(2, result.First().Properties.Count);
|
||||
Assert.AreEqual("Delivery API value", result.First().Properties[DeliveryApiPropertyType.Alias]);
|
||||
@@ -204,7 +204,7 @@ public class MultiNodeTreePickerValueConverterTests : PropertyValueConverterTest
|
||||
Assert.AreEqual(1, result.Count());
|
||||
Assert.AreEqual(PublishedContent.Name, result.First().Name);
|
||||
Assert.AreEqual(PublishedContent.Key, result.First().Id);
|
||||
Assert.AreEqual("/the-page-url", result.First().Route.Path);
|
||||
Assert.AreEqual("/the-page-url/", result.First().Route.Path);
|
||||
Assert.AreEqual("TheContentType", result.First().ContentType);
|
||||
}
|
||||
|
||||
|
||||
@@ -46,7 +46,7 @@ public class MultiUrlPickerValueConverterTests : PropertyValueConverterTests
|
||||
Assert.Null(link.Target);
|
||||
var route = link.Route;
|
||||
Assert.NotNull(route);
|
||||
Assert.AreEqual("/the-page-url", route.Path);
|
||||
Assert.AreEqual("/the-page-url/", route.Path);
|
||||
}
|
||||
|
||||
[Test]
|
||||
@@ -221,7 +221,7 @@ public class MultiUrlPickerValueConverterTests : PropertyValueConverterTests
|
||||
var link = result.First();
|
||||
Assert.AreEqual("Custom link name", link.Title);
|
||||
Assert.AreEqual(PublishedContent.Key, link.DestinationId);
|
||||
Assert.AreEqual("/the-page-url", link.Route!.Path);
|
||||
Assert.AreEqual("/the-page-url/", link.Route!.Path);
|
||||
Assert.AreEqual(LinkType.Content, link.LinkType);
|
||||
Assert.AreEqual("_blank", link.Target);
|
||||
Assert.AreEqual("?something=true", link.QueryString);
|
||||
@@ -252,7 +252,7 @@ public class MultiUrlPickerValueConverterTests : PropertyValueConverterTests
|
||||
var link = result.First();
|
||||
Assert.AreEqual(PublishedContent.Name, link.Title);
|
||||
Assert.AreEqual(PublishedContent.Key, link.DestinationId);
|
||||
Assert.AreEqual("/the-page-url", link.Route!.Path);
|
||||
Assert.AreEqual("/the-page-url/", link.Route!.Path);
|
||||
Assert.AreEqual(LinkType.Content, link.LinkType);
|
||||
Assert.Null(link.Target);
|
||||
Assert.Null(link.Url);
|
||||
|
||||
@@ -6,6 +6,7 @@ using Umbraco.Cms.Core.DeliveryApi;
|
||||
using Umbraco.Cms.Core.Models.PublishedContent;
|
||||
using Umbraco.Cms.Core.PublishedCache;
|
||||
using Umbraco.Cms.Core.Routing;
|
||||
using Umbraco.Cms.Core.Services;
|
||||
using Umbraco.Cms.Core.Services.Navigation;
|
||||
|
||||
namespace Umbraco.Cms.Tests.UnitTests.Umbraco.Core.DeliveryApi;
|
||||
@@ -127,7 +128,8 @@ public class PropertyValueConverterTests : DeliveryApiTests
|
||||
IOptionsMonitor<RequestHandlerSettings>? requestHandlerSettingsMonitor = null,
|
||||
IPublishedContentCache? contentCache = null,
|
||||
IDocumentNavigationQueryService? navigationQueryService = null,
|
||||
IPublishStatusQueryService? publishStatusQueryService = null)
|
||||
IPublishStatusQueryService? publishStatusQueryService = null,
|
||||
IDocumentUrlService? documentUrlService = null)
|
||||
{
|
||||
contentCache ??= PublishedContentCacheMock.Object;
|
||||
navigationQueryService ??= DocumentNavigationQueryServiceMock.Object;
|
||||
@@ -140,6 +142,7 @@ public class PropertyValueConverterTests : DeliveryApiTests
|
||||
requestHandlerSettingsMonitor,
|
||||
contentCache,
|
||||
navigationQueryService,
|
||||
publishStatusQueryService);
|
||||
publishStatusQueryService,
|
||||
documentUrlService);
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user