// 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 Dictionary() { { "test1", "value1" }, { "test2", "value2" } }); Assert.AreEqual( @"

asdfasdf

asdfsadf

Macro alias: My.Map.isCool eh[boy!]

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 Dictionary() { { "test1", "value1" }, { "test2", "value2" } }); Assert.AreEqual( @"

asdfasdf

asdfsadf

Macro alias: Map

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

asdfasdf

"; string result = MacroTagParser.FormatRichTextPersistedDataForEditor(content, new Dictionary() { { "test1", "value1" }, { "test2", "value2" } }); Assert.AreEqual( @"

asdfasdf

asdfsadf

Macro alias: Map

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 Dictionary() { { "test1", "value1" }, { "test2", "value2" } }); Assert.AreEqual( @"

asdfasdf

asdfsadf

Macro alias: Map

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 Dictionary() { { "test1", "value1" }, { "test2", "value2" } }); Assert.AreEqual( @"

asdfasdf

asdfsadf

Macro alias: Map

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 Dictionary() { { "test1", "value1" }, { "test2", "value2" } }); Assert.AreEqual( @"

asdfasdf

asdfsadf

Macro alias: Map

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 Dictionary() { { "test1", "value1" }, { "test2", "value2" } }); Assert.AreEqual( @"

asdfasdf

asdfsadf

Macro alias: Map

asdfsadf

Macro alias: Map

asdfsadf

Macro alias: Map

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()); Assert.AreEqual( @"

asdfasdf

Macro alias: Breadcrumb

asdfsadf

 

Macro alias: login

 

".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 asdfas asdfasdfasdf

asdfasdf

asdfdasf
asdfsdf
"; string result = MacroTagParser.FormatRichTextContentForPersistence(content); Assert.AreEqual( @"

asdfasdf

asdfdasf
asdfsdf
".Replace(Environment.NewLine, string.Empty), result.Replace(Environment.NewLine, string.Empty)); } [Test] public void Format_RTE_Data_For_Editor_With_Params_Closing_Tag() { string content = @"

asdfasdf

asdfsadf

asdfasdf

"; string result = MacroTagParser.FormatRichTextPersistedDataForEditor(content, new Dictionary() { { "test1", "value1" }, { "test2", "value2" } }); Assert.AreEqual( @"

asdfasdf

asdfsadf

Macro alias: Map

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

asdfasdf

"; string result = MacroTagParser.FormatRichTextPersistedDataForEditor(content, new Dictionary() { { "test1", "value1" }, { "test2", "value2" } }); Assert.AreEqual( @"

asdfasdf

asdfsadf

Macro alias: Map

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 Dictionary() { { "test1", "value1" }, { "test2", "value2\r\ntest" } }); Assert.AreEqual( @"

asdfasdf

asdfsadf

Macro alias: Map

asdfasdf

".NoCrLf(), result.NoCrLf()); } [Test] public void Format_RTE_Data_For_Persistence() { string content = @"

asdfasdf

asdfasdf asdfas asdfasdfasdf

asdfasdf

asdfdasf
asdfsdf
"; string result = MacroTagParser.FormatRichTextContentForPersistence(content); Assert.AreEqual( @"

asdfasdf

asdfdasf
asdfsdf
".Replace(Environment.NewLine, string.Empty), result.Replace(Environment.NewLine, string.Empty)); } [Test] public void Format_RTE_Data_For_Persistence_No_Class() { string content = @"

asdfasdf

asdfasdf asdfas asdfasdfasdf

asdfasdf

asdfdasf
asdfsdf
"; string result = MacroTagParser.FormatRichTextContentForPersistence(content); Assert.AreEqual( @"

asdfasdf

asdfdasf
asdfsdf
".Replace(Environment.NewLine, string.Empty), result.Replace(Environment.NewLine, string.Empty)); } [Test] public void Format_RTE_Data_For_Persistence_Custom_Single_Entry() { string content = @"

null

1089
"; string result = MacroTagParser.FormatRichTextContentForPersistence(content); Assert.AreEqual(@"", result); } } }