public void Format_RTE_Data_For_Editor() { var content = @"<p>asdfasdf</p> <p>asdfsadf</p> <?UMBRACO_MACRO macroAlias=""Map"" /> <p>asdfasdf</p>"; var result = MacroTagParser.FormatRichTextPersistedDataForEditor(content, new Dictionary <string, string>() { { "test1", "value1" }, { "test2", "value2" } }); // Assert.AreEqual(@"<p>asdfasdf</p> //<p>asdfsadf</p> //<div class=""umb-macro-holder Map mceNonEditable"" test1=""value1"" test2=""value2""> //<!-- <?UMBRACO_MACRO macroAlias=""Map"" /> --> //<ins>Macro alias: <strong>Map</strong></ins></div> //<p>asdfasdf</p>".Replace(Environment.NewLine, string.Empty), result.Replace(Environment.NewLine, string.Empty)); Assert.AreEqual(@"<p>asdfasdf</p> <p>asdfsadf</p> <div class=""umb-macro-holder mceNonEditable"" test1=""value1"" test2=""value2""> <!-- <?UMBRACO_MACRO macroAlias=""Map"" /> --> <ins>Macro alias: <strong>Map</strong></ins></div> <p>asdfasdf</p>".Replace(Environment.NewLine, string.Empty), result.Replace(Environment.NewLine, string.Empty)); }
public void Format_RTE_Data_For_Editor_With_Params_When_Multiple_Macros() { var content = @"<p>asdfasdf</p> <p>asdfsadf</p> <?UMBRACO_MACRO test1=""value1"" test2=""value2"" macroAlias=""Map"" /> <p>asdfsadf</p> <?UMBRACO_MACRO test1=""value1"" macroAlias=""Map"" test2=""value2"" /> <p>asdfsadf</p> <?UMBRACO_MACRO macroAlias=""Map"" test1=""value1"" test2=""value2"" /> <p>asdfasdf</p>"; var result = MacroTagParser.FormatRichTextPersistedDataForEditor( content, new Dictionary <string, string> { { "test1", "value1" }, { "test2", "value2" } }); Assert.AreEqual( @"<p>asdfasdf</p> <p>asdfsadf</p> <div class=""umb-macro-holder mceNonEditable"" test1=""value1"" test2=""value2""> <!-- <?UMBRACO_MACRO test1=""value1"" test2=""value2"" macroAlias=""Map"" /> --> <ins>Macro alias: <strong>Map</strong></ins></div> <p>asdfsadf</p> <div class=""umb-macro-holder mceNonEditable"" test1=""value1"" test2=""value2""> <!-- <?UMBRACO_MACRO test1=""value1"" macroAlias=""Map"" test2=""value2"" /> --> <ins>Macro alias: <strong>Map</strong></ins></div> <p>asdfsadf</p> <div class=""umb-macro-holder mceNonEditable"" test1=""value1"" test2=""value2""> <!-- <?UMBRACO_MACRO macroAlias=""Map"" test1=""value1"" test2=""value2"" /> --> <ins>Macro alias: <strong>Map</strong></ins></div> <p>asdfasdf</p>".StripNewLines(), result.StripNewLines()); }
/// <summary> /// Format the data for the editor /// </summary> /// <param name="property"></param> /// <param name="propertyType"></param> /// <param name="dataTypeService"></param> /// <returns></returns> public override object ConvertDbToEditor(Property property, PropertyType propertyType, IDataTypeService dataTypeService) { if (property.Value == null) { return(null); } var parsed = MacroTagParser.FormatRichTextPersistedDataForEditor(property.Value.ToString(), new Dictionary <string, string>()); return(parsed); }
/// <summary> /// Format the data for the editor /// </summary> /// <param name="property"></param> /// <param name="propertyType"></param> /// <param name="dataTypeService"></param> /// <returns></returns> public override object ConvertDbToEditor(Property property, PropertyType propertyType, IDataTypeService dataTypeService) { if (property.Value == null) { return(null); } var propertyValueWithMediaResolved = TemplateUtilities.ResolveMediaFromTextString(property.Value.ToString()); var parsed = MacroTagParser.FormatRichTextPersistedDataForEditor(propertyValueWithMediaResolved, new Dictionary <string, string>()); return(parsed); }
public void Format_RTE_Data_For_Editor_With_Params_Closing_Tag_And_Content() { string content = @"<p>asdfasdf</p> <p>asdfsadf</p> <?UMBRACO_MACRO macroAlias=""Map"" test1=""value1"" test2=""value2"" ><img src='blah.jpg'/></?UMBRACO_MACRO> <p>asdfasdf</p>"; string result = MacroTagParser.FormatRichTextPersistedDataForEditor(content, new Dictionary <string, string>() { { "test1", "value1" }, { "test2", "value2" } }); Assert.AreEqual( @"<p>asdfasdf</p> <p>asdfsadf</p> <div class=""umb-macro-holder mceNonEditable"" test1=""value1"" test2=""value2""> <!-- <?UMBRACO_MACRO macroAlias=""Map"" test1=""value1"" test2=""value2"" /> --> <ins>Macro alias: <strong>Map</strong></ins></div> <p>asdfasdf</p>".Replace(Environment.NewLine, string.Empty), result.Replace(Environment.NewLine, string.Empty)); }
public void Format_RTE_Data_For_Editor_With_Non_AlphaNumeric_Char_In_Alias() { string content = @"<p>asdfasdf</p> <p>asdfsadf</p> <?UMBRACO_MACRO macroAlias=""My.Map.isCool eh[boy!]"" /> <p>asdfasdf</p>"; string result = MacroTagParser.FormatRichTextPersistedDataForEditor(content, new Dictionary <string, string>() { { "test1", "value1" }, { "test2", "value2" } }); Assert.AreEqual( @"<p>asdfasdf</p> <p>asdfsadf</p> <div class=""umb-macro-holder mceNonEditable"" test1=""value1"" test2=""value2""> <!-- <?UMBRACO_MACRO macroAlias=""My.Map.isCool eh[boy!]"" /> --> <ins>Macro alias: <strong>My.Map.isCool eh[boy!]</strong></ins></div> <p>asdfasdf</p>".Replace(Environment.NewLine, string.Empty), result.Replace(Environment.NewLine, string.Empty)); }
public void Format_RTE_Data_For_Editor_With_Multiple_Macros() { var content = @"<p>asdfasdf</p> <?UMBRACO_MACRO macroAlias=""Breadcrumb"" /> <p>asdfsadf</p> <p> </p> <?UMBRACO_MACRO macroAlias=""login"" /> <p> </p>"; var result = MacroTagParser.FormatRichTextPersistedDataForEditor(content, new Dictionary <string, string>()); Assert.AreEqual(@"<p>asdfasdf</p> <div class=""umb-macro-holder mceNonEditable""> <!-- <?UMBRACO_MACRO macroAlias=""Breadcrumb"" /> --> <ins>Macro alias: <strong>Breadcrumb</strong></ins></div> <p>asdfsadf</p> <p> </p> <div class=""umb-macro-holder mceNonEditable""> <!-- <?UMBRACO_MACRO macroAlias=""login"" /> --> <ins>Macro alias: <strong>login</strong></ins></div> <p> </p>".Replace(Environment.NewLine, string.Empty), result.Replace(Environment.NewLine, string.Empty)); }
public void Format_RTE_Data_For_Editor_With_Multiline_Parameters() { string content = @"<p>asdfasdf</p> <p>asdfsadf</p> <?UMBRACO_MACRO macroAlias=""Map"" test1=""value1"" test2=""value2 test"" /> <p>asdfasdf</p>"; string result = MacroTagParser.FormatRichTextPersistedDataForEditor(content, new Dictionary <string, string>() { { "test1", "value1" }, { "test2", "value2\r\ntest" } }); Assert.AreEqual( @"<p>asdfasdf</p> <p>asdfsadf</p> <div class=""umb-macro-holder mceNonEditable"" test1=""value1"" test2=""value2 test""> <!-- <?UMBRACO_MACRO macroAlias=""Map"" test1=""value1"" test2=""value2 test"" /> --> <ins>Macro alias: <strong>Map</strong></ins></div> <p>asdfasdf</p>".NoCrLf(), result.NoCrLf()); }