public void ContentTransformer_EmptyAttribute_CanChooseValueFromAttributeRenderingContext() { var parser = BBCodeTestUtil.GetParserForTest(ErrorMode.Strict, true, BBTagClosingStyle.AutoCloseElement, false); Assert.AreEqual(@"<a href=""http://codekicker.de"">http://codekicker.de</a>", parser.ToHtml(@"[url2]http://codekicker.de[/url2]")); Assert.AreEqual(@"<a href=""http://codekicker.de"">http://codekicker.de</a>", parser.ToHtml(@"[url2=http://codekicker.de]http://codekicker.de[/url2]")); }
public void ToTextDoesNotCrash([PexAssumeNotNull] string input, out string text) { var parser = BBCodeTestUtil.GetParserForTest(ErrorMode.ErrorFree, true, BBTagClosingStyle.AutoCloseElement, false); text = parser.ParseSyntaxTree(input).ToText(); Assert.IsTrue(text.Length <= input.Length); }
public void NoScript_AnyInput_Tree() { var parser = BBCodeTestUtil.GetParserForTest(ErrorMode.ErrorFree, true, BBTagClosingStyle.AutoCloseElement, false); var tree = BBCodeTestUtil.CreateRootNode(parser.Tags.ToArray()); var output = tree.ToHtml(); PexAssert.IsTrue(!output.Contains("<script")); }
public void CorrectingErrorMode() { Assert.IsTrue(BBCodeTestUtil.IsValid(@"", ErrorMode.TryErrorCorrection)); Assert.IsTrue(BBCodeTestUtil.IsValid(@"[b]abc[/b]", ErrorMode.TryErrorCorrection)); Assert.IsTrue(BBCodeTestUtil.IsValid(@"[b]abc", ErrorMode.TryErrorCorrection)); Assert.AreEqual(@"\", BBEncodeForTest(@"\", ErrorMode.TryErrorCorrection)); Assert.AreEqual(@"\x", BBEncodeForTest(@"\x", ErrorMode.TryErrorCorrection)); Assert.AreEqual(@"\", BBEncodeForTest(@"\\", ErrorMode.TryErrorCorrection)); }
public void StrictErrorMode() { Assert.IsTrue(BBCodeTestUtil.IsValid(@"", ErrorMode.Strict)); Assert.IsTrue(BBCodeTestUtil.IsValid(@"[b]abc[/b]", ErrorMode.Strict)); Assert.IsFalse(BBCodeTestUtil.IsValid(@"[b]abc", ErrorMode.Strict)); Assert.IsFalse(BBCodeTestUtil.IsValid(@"abc[0]def", ErrorMode.Strict)); Assert.IsFalse(BBCodeTestUtil.IsValid(@"\", ErrorMode.Strict)); Assert.IsFalse(BBCodeTestUtil.IsValid(@"\x", ErrorMode.Strict)); Assert.IsFalse(BBCodeTestUtil.IsValid(@"[", ErrorMode.Strict)); Assert.IsFalse(BBCodeTestUtil.IsValid(@"]", ErrorMode.Strict)); }
public void Roundtrip(ErrorMode errorMode, out string bbcode, out string output) { PexAssume.EnumIsDefined(errorMode); var parser = BBCodeTestUtil.GetParserForTest(errorMode, false, BBTagClosingStyle.AutoCloseElement, false); var tree = BBCodeTestUtil.CreateRootNode(parser.Tags.ToArray()); bbcode = tree.ToBBCode(); var tree2 = parser.ParseSyntaxTree(bbcode); output = tree2.ToHtml(); Assert.IsTrue(tree == tree2); }
public void NoHtmlChars_AnyInput(ErrorMode errorMode, [PexAssumeNotNull] string input) { PexAssume.EnumIsDefined(errorMode); try { var output = BBCodeTestUtil.SimpleBBEncodeForTest(input, errorMode); PexObserve.ValueForViewing("output", output); PexAssert.IsTrue(output.IndexOf('<') == -1); PexAssert.IsTrue(output.IndexOf('>') == -1); } catch (BBCodeParsingException) { PexAssume.Fail(); } }
public void TextNodesCannotBeSplit(ErrorMode errorMode, [PexAssumeNotNull] string input) { PexAssume.EnumIsDefined(errorMode); var parser = BBCodeTestUtil.GetParserForTest(errorMode, true, BBTagClosingStyle.AutoCloseElement, false); SequenceNode tree; try { tree = parser.ParseSyntaxTree(input); } #pragma warning disable 168 catch (BBCodeParsingException e) #pragma warning restore 168 { PexAssume.Fail(); return; } AssertTextNodesNotSplit(tree); }
public void Roundtrip2(ErrorMode errorMode, [PexAssumeNotNull] string input, out string bbcode, out string output) { PexAssume.EnumIsDefined(errorMode); var parser = BBCodeTestUtil.GetParserForTest(errorMode, false, BBTagClosingStyle.AutoCloseElement, false); SequenceNode tree; try { tree = parser.ParseSyntaxTree(input); } #pragma warning disable 168 catch (BBCodeParsingException e) #pragma warning restore 168 { PexAssume.Fail(); tree = null; } bbcode = tree.ToBBCode(); var tree2 = parser.ParseSyntaxTree(bbcode); output = tree2.ToHtml(); Assert.IsTrue(tree == tree2); }
public static string BBEncodeForTest(string bbCode, ErrorMode errorMode, BBTagClosingStyle listItemBbTagClosingStyle, bool enableIterationElementBehavior) { return(BBCodeTestUtil.GetParserForTest(errorMode, true, listItemBbTagClosingStyle, enableIterationElementBehavior).ToHtml(bbCode).Replace("\r", "").Replace("\n", "<br/>")); }