public void testCompositeTagWithDeadlock() throws ParserException { createParser( "<custom>" + "<another>something" + "</custom>" + "<custom>" + "<another>else</another>" + "</custom>"); parser.setNodeFactory( new PrototypicalNodeFactory( new Tag[] { new CustomTag(), new AnotherTag(true), })); parseAndAssertNodeCount(2); assertType("node", CustomTag.class, node[0]); CustomTag customTag = (CustomTag) node[0]; assertEquals("child count", 1, customTag.getChildCount()); assertFalse("custom tag should not be xml end tag", customTag.isEmptyXmlTag()); assertEquals("starting loc", 0, customTag.getStartPosition()); assertEquals("ending loc", 8, customTag.getEndPosition()); assertEquals("starting line position", 0, customTag.getStartingLineNumber()); assertEquals("ending line position", 0, customTag.getEndingLineNumber()); AnotherTag anotherTag = (AnotherTag) customTag.childAt(0); assertEquals("anotherTag child count", 1, anotherTag.getChildCount()); Text stringNode = (Text) anotherTag.childAt(0); assertStringEquals("anotherTag child text", "something", stringNode.toPlainTextString()); assertStringEquals( "first custom tag html", "<custom><another>something</another></custom>", customTag.toHtml()); customTag = (CustomTag) node[1]; assertStringEquals( "second custom tag html", "<custom><another>else</another></custom>", customTag.toHtml()); }
public void testEmptyCompositeTagAnotherStyle() throws ParserException { String html = "<Custom></Custom>"; createParser(html); CustomTag customTag = parseCustomTag(1); assertEquals("child count", 0, customTag.getChildCount()); assertFalse("custom tag should not be xml end tag", customTag.isEmptyXmlTag()); assertEquals("starting loc", 0, customTag.getStartPosition()); assertEquals("ending loc", 8, customTag.getEndPosition()); assertEquals("starting line position", 0, customTag.getStartingLineNumber()); assertEquals("ending line position", 0, customTag.getEndingLineNumber()); assertEquals("html", html, customTag.toHtml()); }
public void testErroneousCompositeTagWithChildren() throws ParserException { String html = "<custom>" + "<firstChild>" + "<secondChild>"; createParser(html); CustomTag customTag = parseCustomTag(1); assertEquals("child count", 2, customTag.getChildCount()); assertFalse("custom tag should not be xml end tag", customTag.isEmptyXmlTag()); assertEquals("starting loc", 0, customTag.getStartPosition()); assertEquals("ending loc", 8, customTag.getEndPosition()); assertEquals("starting line position", 0, customTag.getStartingLineNumber()); assertEquals("ending line position", 0, customTag.getEndingLineNumber()); assertStringEquals("html", html + "</custom>", customTag.toHtml()); }
public void testCompositeTagWithOneTextChild() throws ParserException { String html = "<Custom>" + "Hello" + "</Custom>"; createParser(html); CustomTag customTag = parseCustomTag(1); assertEquals("child count", 1, customTag.getChildCount()); assertFalse("custom tag should not be xml end tag", customTag.isEmptyXmlTag()); assertEquals("starting loc", 0, customTag.getStartPosition()); assertEquals("ending loc", 8, customTag.getEndPosition()); assertEquals("starting line position", 0, customTag.getStartingLineNumber()); assertEquals("ending line position", 0, customTag.getEndingLineNumber()); Node child = customTag.childAt(0); assertType("child", Text.class, child); assertStringEquals("child text", "Hello", child.toPlainTextString()); }
public void testCompositeTagWithErroneousAnotherTag() throws ParserException { createParser("<custom>" + "<another>" + "</custom>"); parser.setNodeFactory( new PrototypicalNodeFactory( new Tag[] { new CustomTag(), new AnotherTag(true), })); parseAndAssertNodeCount(1); assertType("node", CustomTag.class, node[0]); CustomTag customTag = (CustomTag) node[0]; assertEquals("child count", 1, customTag.getChildCount()); assertFalse("custom tag should be xml end tag", customTag.isEmptyXmlTag()); assertEquals("starting loc", 0, customTag.getStartPosition()); assertEquals("ending loc", 8, customTag.getEndPosition()); AnotherTag anotherTag = (AnotherTag) customTag.childAt(0); assertEquals("another tag ending loc", 17, anotherTag.getEndPosition()); assertEquals("starting line position", 0, customTag.getStartingLineNumber()); assertEquals("ending line position", 0, customTag.getEndingLineNumber()); assertStringEquals("html", "<custom><another></another></custom>", customTag.toHtml()); }