private void TestPrettyPrint(string pretty, LNode node, bool addPreCode = false, bool rawTest = true, bool htmlTest = true) { if (rawTest) { // Raw output test: must add {Opener}, {Closer} and {Separator} markers, // change {EndId} to {/} and remove excess {/}s var pretty2 = pretty.Replace("(", "{Opener}({/}").Replace("[", "{Opener}[{/}").Replace("{{", "{Opener}{{{/}") .Replace(")", "{Closer}){/}").Replace("]", "{Closer}]{/}").Replace("}}", "{Closer}}}{/}") .Replace("{/Id}", "{/}").Replace(",", "{Separator},{/}").Replace(";", "{Separator};{/}"); var pretty3 = (pretty2.EndsWith("{/}") ? pretty2.Substring(0, pretty2.Length - 3) : pretty2).Replace("{/}{", "{"); var expected = pretty3.FormatCore(ControlCodeTable); var pp = new Les3PrettyPrinter(); StringBuilder result = pp.Print(node); AreEqual(expected, result.ToString()); } if (htmlTest) { // HTML test: no spans are created for Ids so eliminate {Id} and {/Id}. var pretty2 = pretty.Replace("{Id}", "").Replace("{/Id}", ""); var expected = pretty2.FormatCore(HtmlCodeTable); if (addPreCode) { expected = "<pre class='highlight'><code>" + expected + "</code></pre>"; } var result = new Les3PrettyPrinter().PrintToHtml(node, addPreCode: addPreCode); AreEqual(expected, result.ToString()); } }
private void TestPrettyPrint(string pretty, LNode node, bool addPreCode = false, bool rawTest = true, bool htmlTest = true) { if (rawTest) { // Raw output test: must add {Opener}, {Closer} and {Separator} markers, // change {EndId} to {0} and remove excess {0}s var pretty2 = pretty.Replace("(", "{Opener}({0}").Replace("[", "{Opener}[{0}").Replace("{{", "{Opener}{{{0}") .Replace(")", "{Closer}){0}").Replace("]", "{Closer}]{0}").Replace("}}", "{Closer}}}{0}") .Replace("{/Id}", "{0}").Replace(",", "{Separator},{0}").Replace(";", "{Separator};{0}"); var pretty3 = (pretty2.EndsWith("{0}") ? pretty2.Substring(0, pretty2.Length - 3) : pretty2).Replace("{0}{", "{"); var expected = pretty3.FormatCore(ControlCodeTable); var pp = new Les3PrettyPrinter(); StringBuilder result = pp.Print(node); AreEqual(expected, result.ToString()); } if (htmlTest) { // HTML test: no spans are created for Ids so eliminate {Id} and {/Id}. var pretty2 = pretty.Replace("{Id}", "").Replace("{/Id}", ""); var expected = pretty2.FormatCore(HtmlCodeTable); if (addPreCode) expected = "<pre class='highlight'><code>" + expected + "</code></pre>"; var result = new Les3PrettyPrinter().PrintToHtml(node, addPreCode: addPreCode); AreEqual(expected, result.ToString()); } }