diff --git a/markwon/src/test/java/ru/noties/markwon/renderer/visitor/SpannableMarkdownVisitorTest.java b/markwon/src/test/java/ru/noties/markwon/renderer/visitor/SpannableMarkdownVisitorTest.java index ca9de641..2d3e12a4 100644 --- a/markwon/src/test/java/ru/noties/markwon/renderer/visitor/SpannableMarkdownVisitorTest.java +++ b/markwon/src/test/java/ru/noties/markwon/renderer/visitor/SpannableMarkdownVisitorTest.java @@ -72,7 +72,7 @@ public class SpannableMarkdownVisitorTest { assertEquals(stringBuilder.length(), index); } - private int validate(@NonNull SpannableStringBuilder builder, int index, @NonNull TestNode node) { + private int validate(@NonNull final SpannableStringBuilder builder, final int index, @NonNull TestNode node) { if (node.isText()) { @@ -109,6 +109,8 @@ public class SpannableMarkdownVisitorTest { out = validate(builder, out, child); } + final int end = out; + final String info = node.toString(); System.out.printf("%s: %s%n", file, builder.subSequence(index, out)); @@ -128,7 +130,9 @@ public class SpannableMarkdownVisitorTest { .filter(new IxPredicate() { @Override public boolean test(TestSpan testSpan) { - return span.name().equals(testSpan.name()); + return span.name().equals(testSpan.name()) + && index == builder.getSpanStart(testSpan) + && end == builder.getSpanEnd(testSpan); } }) .first(null); @@ -139,6 +143,11 @@ public class SpannableMarkdownVisitorTest { ); assertEquals(info, span.name(), testSpan.name()); + + // for correct tracking of nested blocks we must validate expected start/end + assertEquals(info, index, builder.getSpanStart(testSpan)); + assertEquals(info, out, builder.getSpanEnd(testSpan)); + assertMapEquals(info, span.attributes(), testSpan.attributes()); return out; diff --git a/markwon/src/test/resources/tests/nested-blockquotes.yaml b/markwon/src/test/resources/tests/nested-blockquotes.yaml new file mode 100644 index 00000000..93356d03 --- /dev/null +++ b/markwon/src/test/resources/tests/nested-blockquotes.yaml @@ -0,0 +1,12 @@ +input: |- + > First + > > Second + > > > Third + +output: + - blockquote: + - text: "First\n\n" + - blockquote: + - text: "Second\n\n" + - blockquote: + - text: "Third" \ No newline at end of file diff --git a/markwon/src/test/resources/tests/second.yaml b/markwon/src/test/resources/tests/second.yaml index bd088dc2..747a645e 100644 --- a/markwon/src/test/resources/tests/second.yaml +++ b/markwon/src/test/resources/tests/second.yaml @@ -21,8 +21,8 @@ output: - text: " " - s: "strike" - text: " down\n\n" - - blockquote: "Some quote here!" - - text: "\n\n" + - blockquote: "Some quote here!\n" + - text: "\n" - h1: "Header 1" - text: "\n\n" - h2: "Header 2"