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