示例#1
0
 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());
     }
 }
示例#2
0
		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());
			}
		}