* Remove nucache reference from Web.Common * Get tests building-ish * Move ReservedFieldNamesService to the right project * Remove IPublishedSnapshotStatus * Added functionality to the INavigationQueryService to get root keys * Fixed issue with navigation * Remove IPublishedSnapshot from UmbracoContext * Begin removing usage of IPublishedSnapshot from PublishedContentExtensions * Fix PublishedContentExtensions.cs * Don't use snapshots in delivery media api * Use IPublishedMediaCache in QueryMediaApiController * Remove more usages of IPublishedSnapshotAccessor * Comment out tests * Remove more usages of PublishedSnapshotAccessor * Remove PublishedSnapshot from property * Fixed test build * Fix errors * Fix some tests * Delete NuCache 🎉 * Implement DatabaseCacheRebuilder * Remove usage of IPublishedSnapshotService * Remove IPublishedSnapshotService * Remove TestPublishedSnapshotAccessor and make tests build * Don't test Snapshot cachelevel It's no longer supported * Fix BlockEditorConverter Element != Element document type * Remember to set cachemanager * Fix RichTextParserTests * Implement TryGetLevel on INavigationQueryService * Fake level and obsolete it in PublishedContent * Remove ChildrenForAllCultures * Hack Path property on PublishedContent * Remove usages of IPublishedSnapshot in tests * More ConvertersTests * Add hybrid cache to integration tests We can actually do this now because we no longer save files on disk * Rename IPublishedSnapshotRebuilder to ICacheRebuilder * Comment out tests * V15: Replacing the usages of Parent (navigation data) from IPublishedContent (#17125) * Fix .Parent references in PublishedContentExtensions * Add missing methods to FriendlyPublishedContentExtensions (ones that you were able to call on the content directly as they now require extra params) * Fix references from the extension methods * Fix dependencies in tests * Replace IPublishedSnapshotAccessor with the content cache in tests * Resolving more .Parent references * Fix unit tests * Obsolete and use extension methods * Remove private method and use extension instead * Moving code around * Fix tests * Fix more references * Cleanup * Fix more usages * Resolve merge conflict * Fix tests * Cleanup * Fix more tests * Fixed unit tests * Cleanup * Replace last usages --------- Co-authored-by: Bjarke Berg <mail@bergmania.dk> * Remove usage of IPublishedSnapshotAccessor from IRequestItemProvider * Post merge fixup * Remo IPublishedSnapshot * Add HasAny to IDocumentUrlService * Fix TextBuilder * Fix modelsbuilder tests * Use explicit types * Implement GetByContentType * Support element types in PublishedContentTypeCache * Run enlistments before publishing notifications * Fix elements cache refreshing * Implement GetByUdi * Implement GetAtRoot * Implement GetByRoute * Reimplement GetRouteById * Fix blocks unit tests * Initialize domain cache on boot * Only return routes with domains on non default lanauges * V15: Replacing the usages of `Children` (navigation data) from `IPublishedContent` (#17159) * Update params in PublishedContentExtensions to the general interfaces for the published cache and navigation service, so that we can use the extension methods on both documents and media * Introduce GetParent() which uses the right services * Fix obsolete message on .Parent * Obsolete .Children * Fix usages of Children for ApiMediaQueryService * Fix usage in internal * Fix usages in views * Fix indentation * Fix issue with delete language * Update nuget pacakges * Clear elements cache when content is deleted instead of trying to update it * Reset publishedModelFactory * Fixed publishing --------- Co-authored-by: Bjarke Berg <mail@bergmania.dk> Co-authored-by: Elitsa Marinovska <21998037+elit0451@users.noreply.github.com> Co-authored-by: kjac <kja@umbraco.dk>
243 lines
9.2 KiB
C#
243 lines
9.2 KiB
C#
// using System.Collections.Generic;
|
|
// using System.Linq;
|
|
// using Moq;
|
|
// using NUnit.Framework;
|
|
// using Umbraco.Cms.Core.Models;
|
|
// using Umbraco.Cms.Core.PropertyEditors;
|
|
// using Umbraco.Cms.Core.Strings;
|
|
// using Umbraco.Cms.Infrastructure.PublishedCache;
|
|
// using Umbraco.Cms.Infrastructure.Serialization;
|
|
// using Umbraco.Cms.Tests.Common.Builders;
|
|
// using Umbraco.Cms.Tests.Common.Builders.Extensions;
|
|
// using Umbraco.Cms.Tests.UnitTests.TestHelpers;
|
|
// using Umbraco.Extensions;
|
|
//
|
|
// namespace Umbraco.Cms.Tests.UnitTests.Umbraco.Infrastructure.PublishedCache;
|
|
//
|
|
// FIXME: Reintroduce if relevant
|
|
// /// <summary>
|
|
// /// Tests the typed extension methods on IPublishedContent using the DefaultPublishedMediaStore
|
|
// /// </summary>
|
|
// [TestFixture]
|
|
// public class PublishedMediaTests : PublishedSnapshotServiceTestBase
|
|
// {
|
|
// [SetUp]
|
|
// public override void Setup()
|
|
// {
|
|
// base.Setup();
|
|
//
|
|
// var dataTypes = GetDefaultDataTypes().ToList();
|
|
// var serializer = new SystemTextConfigurationEditorJsonSerializer();
|
|
// var rteDataType = new DataType(new VoidEditor("RTE", Mock.Of<IDataValueEditorFactory>()), serializer) { Id = 4 };
|
|
// dataTypes.Add(rteDataType);
|
|
// _dataTypes = dataTypes.ToArray();
|
|
//
|
|
// _propertyDataTypes = new Dictionary<string, IDataType>
|
|
// {
|
|
// // defaults will just use the first one
|
|
// [string.Empty] = _dataTypes[0],
|
|
//
|
|
// // content uses the RTE
|
|
// ["content"] = _dataTypes[1],
|
|
// };
|
|
// }
|
|
//
|
|
// private Dictionary<string, IDataType> _propertyDataTypes;
|
|
// private DataType[] _dataTypes;
|
|
//
|
|
// private ContentNodeKit CreateRoot(out MediaType mediaType)
|
|
// {
|
|
// mediaType = new MediaType(ShortStringHelper, -1);
|
|
//
|
|
// var item1Data = new ContentDataBuilder()
|
|
// .WithName("Content 1")
|
|
// .WithProperties(new PropertyDataBuilder()
|
|
// .WithPropertyData("content", "<div>This is some content</div>")
|
|
// .Build())
|
|
//
|
|
// // build with a dynamically created media type
|
|
// .Build(ShortStringHelper, _propertyDataTypes, mediaType, "image2");
|
|
//
|
|
// var item1 = ContentNodeKitBuilder.CreateWithContent(
|
|
// mediaType.Id,
|
|
// 1,
|
|
// "-1,1",
|
|
// draftData: item1Data,
|
|
// publishedData: item1Data);
|
|
//
|
|
// return item1;
|
|
// }
|
|
//
|
|
// private IEnumerable<ContentNodeKit> CreateChildren(
|
|
// int startId,
|
|
// ContentNodeKit parent,
|
|
// IMediaType mediaType,
|
|
// int count)
|
|
// {
|
|
// for (var i = 0; i < count; i++)
|
|
// {
|
|
// var id = startId + i + 1;
|
|
//
|
|
// var item1Data = new ContentDataBuilder()
|
|
// .WithName("Child " + id)
|
|
// .WithProperties(new PropertyDataBuilder()
|
|
// .WithPropertyData("content", "<div>This is some content</div>")
|
|
// .Build())
|
|
// .Build();
|
|
//
|
|
// var parentPath = parent.Node.Path;
|
|
//
|
|
// var item1 = ContentNodeKitBuilder.CreateWithContent(
|
|
// mediaType.Id,
|
|
// id,
|
|
// $"{parentPath},{id}",
|
|
// draftData: item1Data,
|
|
// publishedData: item1Data);
|
|
//
|
|
// yield return item1;
|
|
// }
|
|
// }
|
|
//
|
|
// private void InitializeWithHierarchy(
|
|
// out int rootId,
|
|
// out IReadOnlyList<ContentNodeKit> firstLevelChildren,
|
|
// out IReadOnlyList<ContentNodeKit> secondLevelChildren)
|
|
// {
|
|
// var cache = new List<ContentNodeKit>();
|
|
// var root = CreateRoot(out var mediaType);
|
|
// firstLevelChildren = CreateChildren(10, root, mediaType, 3).ToList();
|
|
// secondLevelChildren = CreateChildren(20, firstLevelChildren[0], mediaType, 3).ToList();
|
|
// cache.Add(root);
|
|
// cache.AddRange(firstLevelChildren);
|
|
// cache.AddRange(secondLevelChildren);
|
|
// InitializedCache(null, null, _dataTypes, cache, new[] { mediaType });
|
|
// rootId = root.Node.Id;
|
|
// }
|
|
//
|
|
// [Test]
|
|
// public void Get_Property_Value_Uses_Converter()
|
|
// {
|
|
// var cache = CreateRoot(out var mediaType);
|
|
// InitializedCache(null, null, _dataTypes.ToArray(), new[] { cache }, new[] { mediaType });
|
|
//
|
|
// var publishedMedia = GetMedia(1);
|
|
//
|
|
// var propVal = publishedMedia.Value(PublishedValueFallback, "content");
|
|
// Assert.IsInstanceOf<IHtmlEncodedString>(propVal);
|
|
// Assert.AreEqual("<div>This is some content</div>", propVal.ToString());
|
|
//
|
|
// var propVal2 = publishedMedia.Value<IHtmlEncodedString>(PublishedValueFallback, "content");
|
|
// Assert.IsInstanceOf<IHtmlEncodedString>(propVal2);
|
|
// Assert.AreEqual("<div>This is some content</div>", propVal2.ToString());
|
|
//
|
|
// var propVal3 = publishedMedia.Value(PublishedValueFallback, "Content");
|
|
// Assert.IsInstanceOf<IHtmlEncodedString>(propVal3);
|
|
// Assert.AreEqual("<div>This is some content</div>", propVal3.ToString());
|
|
// }
|
|
//
|
|
// [Test]
|
|
// public void Children()
|
|
// {
|
|
// InitializeWithHierarchy(
|
|
// out var rootId,
|
|
// out var firstLevelChildren,
|
|
// out var secondLevelChildren);
|
|
//
|
|
// var publishedMedia = GetMedia(rootId);
|
|
//
|
|
// var rootChildren = publishedMedia.Children(VariationContextAccessor);
|
|
// Assert.IsTrue(rootChildren.Select(x => x.Id).ContainsAll(firstLevelChildren.Select(x => x.Node.Id)));
|
|
//
|
|
// var publishedChild1 = GetMedia(firstLevelChildren[0].Node.Id);
|
|
// var subChildren = publishedChild1.Children(VariationContextAccessor);
|
|
// Assert.IsTrue(subChildren.Select(x => x.Id).ContainsAll(secondLevelChildren.Select(x => x.Node.Id)));
|
|
// }
|
|
//
|
|
// [Test]
|
|
// public void Descendants()
|
|
// {
|
|
// InitializeWithHierarchy(
|
|
// out var rootId,
|
|
// out var firstLevelChildren,
|
|
// out var secondLevelChildren);
|
|
//
|
|
// var publishedMedia = GetMedia(rootId);
|
|
// var rootDescendants = publishedMedia.Descendants(VariationContextAccessor);
|
|
//
|
|
// var descendentIds =
|
|
// firstLevelChildren.Select(x => x.Node.Id).Concat(secondLevelChildren.Select(x => x.Node.Id));
|
|
//
|
|
// Assert.IsTrue(rootDescendants.Select(x => x.Id).ContainsAll(descendentIds));
|
|
//
|
|
// var publishedChild1 = GetMedia(firstLevelChildren[0].Node.Id);
|
|
// var subDescendants = publishedChild1.Descendants(VariationContextAccessor);
|
|
// Assert.IsTrue(subDescendants.Select(x => x.Id).ContainsAll(secondLevelChildren.Select(x => x.Node.Id)));
|
|
// }
|
|
//
|
|
// [Test]
|
|
// public void DescendantsOrSelf()
|
|
// {
|
|
// InitializeWithHierarchy(
|
|
// out var rootId,
|
|
// out var firstLevelChildren,
|
|
// out var secondLevelChildren);
|
|
//
|
|
// var publishedMedia = GetMedia(rootId);
|
|
// var rootDescendantsOrSelf = publishedMedia.DescendantsOrSelf(VariationContextAccessor);
|
|
// var descendentAndSelfIds = firstLevelChildren.Select(x => x.Node.Id)
|
|
// .Concat(secondLevelChildren.Select(x => x.Node.Id))
|
|
// .Append(rootId);
|
|
//
|
|
// Assert.IsTrue(rootDescendantsOrSelf.Select(x => x.Id).ContainsAll(descendentAndSelfIds));
|
|
//
|
|
// var publishedChild1 = GetMedia(firstLevelChildren[0].Node.Id);
|
|
// var subDescendantsOrSelf = publishedChild1.DescendantsOrSelf(VariationContextAccessor);
|
|
// Assert.IsTrue(subDescendantsOrSelf.Select(x => x.Id).ContainsAll(
|
|
// secondLevelChildren.Select(x => x.Node.Id).Append(firstLevelChildren[0].Node.Id)));
|
|
// }
|
|
//
|
|
// [Test]
|
|
// public void Parent()
|
|
// {
|
|
// InitializeWithHierarchy(
|
|
// out var rootId,
|
|
// out var firstLevelChildren,
|
|
// out var secondLevelChildren);
|
|
//
|
|
// var publishedMedia = GetMedia(rootId);
|
|
// Assert.AreEqual(null, publishedMedia.Parent);
|
|
//
|
|
// var publishedChild1 = GetMedia(firstLevelChildren[0].Node.Id);
|
|
// Assert.AreEqual(publishedMedia.Id, publishedChild1.Parent.Id);
|
|
//
|
|
// var publishedSubChild1 = GetMedia(secondLevelChildren[0].Node.Id);
|
|
// Assert.AreEqual(firstLevelChildren[0].Node.Id, publishedSubChild1.Parent.Id);
|
|
// }
|
|
//
|
|
// [Test]
|
|
// public void Ancestors()
|
|
// {
|
|
// InitializeWithHierarchy(
|
|
// out var rootId,
|
|
// out var firstLevelChildren,
|
|
// out var secondLevelChildren);
|
|
//
|
|
// var publishedSubChild1 = GetMedia(secondLevelChildren[0].Node.Id);
|
|
// Assert.IsTrue(publishedSubChild1.Ancestors().Select(x => x.Id)
|
|
// .ContainsAll(new[] { firstLevelChildren[0].Node.Id, rootId }));
|
|
// }
|
|
//
|
|
// [Test]
|
|
// public void AncestorsOrSelf()
|
|
// {
|
|
// InitializeWithHierarchy(
|
|
// out var rootId,
|
|
// out var firstLevelChildren,
|
|
// out var secondLevelChildren);
|
|
//
|
|
// var publishedSubChild1 = GetMedia(secondLevelChildren[0].Node.Id);
|
|
// Assert.IsTrue(publishedSubChild1.AncestorsOrSelf().Select(x => x.Id)
|
|
// .ContainsAll(new[] { secondLevelChildren[0].Node.Id, firstLevelChildren[0].Node.Id, rootId }));
|
|
// }
|
|
// }
|