Migrations: Handles rich text blocks created with TinyMCE in convert local links migration and refreshes internal datatype cache following migration requiring cache rebuild (closes #20885) (#20887)

Handles rich text blocks created with TinyMCE in convert local links migration.
Refreshes internal datatype cache following migration requiring cache rebuild.
This commit is contained in:
Andy Butland
2025-11-19 14:54:12 +01:00
committed by GitHub
parent 386611bc70
commit a488d77ce7
7 changed files with 82 additions and 6 deletions

View File

@@ -110,15 +110,16 @@ public class RichTextPropertyEditorHelperTests
Assert.IsNull(value.Blocks);
}
[Test]
public void Can_Parse_Blocks_With_Both_Content_And_Settings()
[TestCase(Constants.PropertyEditors.Aliases.RichText)]
[TestCase("Umbraco.TinyMCE")]
public void Can_Parse_Blocks_With_Both_Content_And_Settings(string propertyEditorAlias)
{
const string input = """
string input = """
{
"markup": "<p>this is some markup</p><umb-rte-block data-content-key=\"36cc710a-d8a6-45d0-a07f-7bbd8742cf02\"><!--Umbraco-Block--></umb-rte-block>",
"blocks": {
"layout": {
"Umbraco.RichText": [{
"[PropertyEditorAlias]": [{
"contentKey": "36cc710a-d8a6-45d0-a07f-7bbd8742cf02",
"settingsKey": "d2eeef66-4111-42f4-a164-7a523eaffbc2"
}
@@ -143,6 +144,7 @@ public class RichTextPropertyEditorHelperTests
}
}
""";
input = input.Replace("[PropertyEditorAlias]", propertyEditorAlias);
var result = RichTextPropertyEditorHelper.TryParseRichTextEditorValue(input, JsonSerializer(), Logger(), out RichTextEditorValue? value);
Assert.IsTrue(result);
@@ -180,6 +182,12 @@ public class RichTextPropertyEditorHelperTests
Assert.AreEqual("settingsPropertyAlias", settingsProperties.First().Alias);
Assert.AreEqual("A settings property value", settingsProperties.First().Value);
});
Assert.IsTrue(value.Blocks.Layout.ContainsKey(Constants.PropertyEditors.Aliases.RichText));
var layout = value.Blocks.Layout[Constants.PropertyEditors.Aliases.RichText];
Assert.AreEqual(1, layout.Count());
Assert.AreEqual(Guid.Parse("36cc710a-d8a6-45d0-a07f-7bbd8742cf02"), layout.First().ContentKey);
Assert.AreEqual(Guid.Parse("d2eeef66-4111-42f4-a164-7a523eaffbc2"), layout.First().SettingsKey);
}
[Test]

View File

@@ -12,6 +12,7 @@ using NUnit.Framework;
using Umbraco.Cms.Core.Cache;
using Umbraco.Cms.Core.Configuration.Models;
using Umbraco.Cms.Core.Events;
using Umbraco.Cms.Core.Models.PublishedContent;
using Umbraco.Cms.Core.PublishedCache;
using Umbraco.Cms.Core.Services;
using Umbraco.Cms.Core.Sync;
@@ -85,7 +86,8 @@ public class MigrationPlanTests
distributedCache,
Mock.Of<IKeyValueService>(),
Mock.Of<IServiceScopeFactory>(),
appCaches);
appCaches,
Mock.Of<IPublishedContentTypeFactory>());
var plan = new MigrationPlan("default")
.From(string.Empty)