// Copyright (c) Umbraco. // See LICENSE for more details. using System.Collections.Generic; using NUnit.Framework; using Umbraco.Cms.Infrastructure.Macros; using Umbraco.Cms.Tests.Common.Extensions; using Umbraco.Cms.Tests.Common.TestHelpers; namespace Umbraco.Cms.Tests.UnitTests.Umbraco.Web.Common.Macros; [TestFixture] public class MacroParserTests { [Test] [TestCase(@"
hello world
")] public void Format_RTE_Data_For_Editor_With_No_Macros(string expected) { var content = expected; var result = MacroTagParser.FormatRichTextContentForPersistence(content); Assert.AreEqual(expected, result); } [Test] public void Format_RTE_Data_For_Editor_With_Non_AlphaNumeric_Char_In_Alias() { var content = @"asdfasdf
asdfsadf
asdfasdf
"; var result = MacroTagParser.FormatRichTextPersistedDataForEditor( content, new Dictionaryasdfasdf
asdfsadf
asdfasdf
".StripNewLines(), result.StripNewLines()); } [Test] public void Format_RTE_Data_For_Editor() { var content = @"asdfasdf
asdfsadf
asdfasdf
"; var result = MacroTagParser.FormatRichTextPersistedDataForEditor( content, new Dictionaryasdfasdf
asdfsadf
asdfasdf
".StripNewLines(), result.StripNewLines()); } [Test] public void Format_RTE_Data_For_Editor_Closing_Tag() { var content = @"asdfasdf
asdfsadf
?UMBRACO_MACRO>asdfasdf
"; var result = MacroTagParser.FormatRichTextPersistedDataForEditor( content, new Dictionaryasdfasdf
asdfsadf
asdfasdf
".StripNewLines(), result.StripNewLines()); } [Test] public void Format_RTE_Data_For_Editor_With_Params() { var content = @"asdfasdf
asdfsadf
asdfasdf
"; var result = MacroTagParser.FormatRichTextPersistedDataForEditor( content, new Dictionaryasdfasdf
asdfsadf
asdfasdf
".StripNewLines(), result.StripNewLines()); } [Test] public void Format_RTE_Data_For_Editor_With_Params_When_MacroAlias_Not_First() { var content = @"asdfasdf
asdfsadf
asdfasdf
"; var result = MacroTagParser.FormatRichTextPersistedDataForEditor( content, new Dictionaryasdfasdf
asdfsadf
asdfasdf
".StripNewLines(), result.StripNewLines()); } [Test] public void Format_RTE_Data_For_Editor_With_Params_When_MacroAlias_Is_First() { var content = @"asdfasdf
asdfsadf
asdfasdf
"; var result = MacroTagParser.FormatRichTextPersistedDataForEditor( content, new Dictionaryasdfasdf
asdfsadf
asdfasdf
".StripNewLines(), result.StripNewLines()); } [Test] public void Format_RTE_Data_For_Editor_With_Params_When_Multiple_Macros() { var content = @"asdfasdf
asdfsadf
asdfsadf
asdfsadf
asdfasdf
"; var result = MacroTagParser.FormatRichTextPersistedDataForEditor( content, new Dictionaryasdfasdf
asdfsadf
asdfsadf
asdfsadf
asdfasdf
".StripNewLines(), result.StripNewLines()); } [Test] public void Format_RTE_Data_For_Editor_With_Multiple_Macros() { var content = @"asdfasdf
asdfsadf
"; var result = MacroTagParser.FormatRichTextPersistedDataForEditor(content, new Dictionary
asdfasdf
asdfsadf
".StripNewLines(), result.StripNewLines()); } [Test] public void Format_RTE_Data_For_Persistence_Multiline_Parameters() { var content = @"
asdfasdf
asdfasdf
asdfsadf
?UMBRACO_MACRO>asdfasdf
"; var result = MacroTagParser.FormatRichTextPersistedDataForEditor( content, new Dictionaryasdfasdf
asdfsadf
asdfasdf
".StripNewLines(), result.StripNewLines()); } [Test] public void Format_RTE_Data_For_Editor_With_Params_Closing_Tag_And_Content() { var content = @"asdfasdf
asdfsadf
?UMBRACO_MACRO>
asdfasdf
"; var result = MacroTagParser.FormatRichTextPersistedDataForEditor( content, new Dictionaryasdfasdf
asdfsadf
asdfasdf
".StripNewLines(), result.StripNewLines()); } [Test] public void Format_RTE_Data_For_Editor_With_Multiline_Parameters() { var content = @"asdfasdf
asdfsadf
asdfasdf
"; var result = MacroTagParser.FormatRichTextPersistedDataForEditor( content, new Dictionaryasdfasdf
asdfsadf
asdfasdf
".NoCrLf(), result.NoCrLf()); } [Test] public void Format_RTE_Data_For_Persistence() { var content = @"asdfasdf
asdfasdf
asdfasdf
asdfsadf
asdfasdf
"; var result = MacroTagParser.FormatRichTextPersistedDataForEditor( content, new Dictionaryasdfasdf
asdfsadf
Macro alias: My.Map.isCool eh[boy!]asdfasdf
".StripNewLines(), result.StripNewLines()); } }