package net.htmlparser.jericho; import org.junit.Test; import static org.junit.Assert.*; import java.io.*; import java.net.*; import java.util.*; public class SegmentTest { private static final String sourceUrlString="file:test/data/SegmentTest.html"; @Test public void test() throws Exception { Source source=new Source(new URL(sourceUrlString)); assertEquals("<HTML>",source.getFirstStartTag().toString()); assertEquals("SegmentTest",source.getFirstElement("title").getContent().toString()); assertEquals("document keywords",source.getFirstStartTag("name","keywords",false).getAttributeValue("content")); assertEquals("<!--<p>commented p</p>-->",source.getFirstStartTag(StartTagType.COMMENT).toString()); Segment outerDiv=source.getElementById("OuterDiv"); List<Element> elements=outerDiv.getAllElements(); assertEquals(4,elements.size()); // outerDiv itself plus 3 contained elements assertEquals(StartTagType.COMMENT,elements.get(2).getStartTag().getTagType()); assertEquals(1,outerDiv.getAllElements(StartTagType.COMMENT).size()); assertEquals(2,outerDiv.getAllElements(HTMLElementName.P).size()); Segment testSegment=new Segment(source,outerDiv.getBegin(),source.getElementById("p2").getStartTag().getEnd()+1); // this segment ends in the middle of the content of p2. assertEquals(4,testSegment.getAllStartTags().size()); // outerDiv start tag plus 3 contained start tags assertEquals(2,testSegment.getAllElements().size()); // only p1 and comment, as outerDiv and p2 are not enclosed by testSegment assertNull(source.getFirstStartTag(StartTagType.COMMENT).getFirstStartTag(HTMLElementName.P)); assertNull(testSegment.getFirstElement("id","p2",true)); assertEquals(0,source.getAllElementsByClass("de").size()); List<Element> defElements=source.getAllElementsByClass("def"); assertEquals(4,defElements.size()); assertEquals("p4",defElements.get(0).getContent().toString()); assertEquals("p5",defElements.get(1).getContent().toString()); assertEquals("p6",defElements.get(2).getContent().toString()); assertEquals("p7",defElements.get(3).getContent().toString()); } }