impl.flushBlockTags(output.length(), action);
@Test public void resetClearsBothInlinesAndBlocks() { final MarkwonHtmlParserImpl impl = MarkwonHtmlParserImpl.create(); final StringBuilder output = new StringBuilder(); impl.processFragment(output, "<p>paragraph <i>italic</i></p><div>div</div>"); impl.reset(); final CaptureInlineTagsAction inlineTagsAction = new CaptureInlineTagsAction(); final CaptureBlockTagsAction blockTagsAction = new CaptureBlockTagsAction(); impl.flushInlineTags(output.length(), inlineTagsAction); impl.flushBlockTags(output.length(), blockTagsAction); assertTrue(inlineTagsAction.called); assertTrue(blockTagsAction.called); assertEquals(0, inlineTagsAction.tags.size()); assertEquals(0, blockTagsAction.tags.size()); }
@Test public void flushClearsInternalState() { final MarkwonHtmlParserImpl impl = MarkwonHtmlParserImpl.create(); final StringBuilder output = new StringBuilder(); impl.processFragment(output, "<p><i>italic <b>bold italic</b></i></p><p>paragraph</p><div>and a div</div>"); final CaptureInlineTagsAction inlineTagsAction = new CaptureInlineTagsAction(); final CaptureBlockTagsAction blockTagsAction = new CaptureBlockTagsAction(); impl.flushInlineTags(output.length(), inlineTagsAction); impl.flushBlockTags(output.length(), blockTagsAction); assertTrue(inlineTagsAction.called); assertTrue(blockTagsAction.called); assertEquals(2, inlineTagsAction.tags.size()); assertEquals(3, blockTagsAction.tags.size()); final CaptureInlineTagsAction captureInlineTagsAction = new CaptureInlineTagsAction(); final CaptureBlockTagsAction captureBlockTagsAction = new CaptureBlockTagsAction(); impl.flushInlineTags(output.length(), captureInlineTagsAction); impl.flushBlockTags(output.length(), captureBlockTagsAction); assertTrue(captureInlineTagsAction.called); assertTrue(captureBlockTagsAction.called); assertEquals(0, captureInlineTagsAction.tags.size()); assertEquals(0, captureBlockTagsAction.tags.size()); }
impl.flushBlockTags(output.length(), action);
impl.flushBlockTags(output.length(), action);
impl.flushBlockTags(output.length(), action);
impl.flushBlockTags(output.length(), action);
impl.flushBlockTags(output.length(), action);
impl.flushBlockTags(output.length(), blockTagsAction);
impl.flushBlockTags(end, blockTagsAction);
impl.flushBlockTags(output.length(), blockTagsAction);
@Test public void flushDoesNotCloseTagsIfNoEndRequested() { final MarkwonHtmlParserImpl impl = MarkwonHtmlParserImpl.create(); final StringBuilder output = new StringBuilder(); impl.processFragment(output, "<div><i><b><em><strong>divibemstrong"); final CaptureInlineTagsAction inlineTagsAction = new CaptureInlineTagsAction(); final CaptureBlockTagsAction blockTagsAction = new CaptureBlockTagsAction(); impl.flushInlineTags(HtmlTag.NO_END, inlineTagsAction); impl.flushBlockTags(HtmlTag.NO_END, blockTagsAction); assertTrue(inlineTagsAction.called); assertTrue(blockTagsAction.called); with(inlineTagsAction.tags, new Action<List<HtmlTag.Inline>>() { @Override public void apply(@NonNull List<HtmlTag.Inline> inlines) { assertEquals(4, inlines.size()); for (HtmlTag.Inline inline : inlines) { assertFalse(inline.isClosed()); assertEquals(HtmlTag.NO_END, inline.end()); } } }); assertEquals(1, blockTagsAction.tags.size()); with(blockTagsAction.tags.get(0), new Action<HtmlTag.Block>() { @Override public void apply(@NonNull HtmlTag.Block block) { assertFalse(block.isClosed()); assertEquals(HtmlTag.NO_END, block.end()); } }); }