package net.htmlparser.jericho; import org.junit.Test; import static org.junit.Assert.*; import java.io.*; import java.net.*; import java.util.*; import java.nio.CharBuffer; import java.nio.BufferOverflowException; public class StreamedSourceHugeFileTest { private static final String sourceUrlString="file:D:/Data/StreamedSourceHugeFileTest.txt"; @Test public void testDefault() throws Exception { if (true) return; // disable test StreamedSource streamedSource=null; int segmentCount=0; try { int originalInitialExpandableBufferSize=StreamedText.INITIAL_EXPANDABLE_BUFFER_SIZE; StreamedText.INITIAL_EXPANDABLE_BUFFER_SIZE=120; streamedSource=new StreamedSource(new URL(sourceUrlString)); StreamedText.INITIAL_EXPANDABLE_BUFFER_SIZE=originalInitialExpandableBufferSize; assertEquals(120,streamedSource.getBufferSize()); for (Segment segment : streamedSource) { segmentCount++; } assertEquals(30720,streamedSource.getBufferSize()); assertEquals(680158,segmentCount); } finally { if (streamedSource!=null) streamedSource.close(); } } @Test public void exampleFetchElementContent() throws Exception { if (true) return; // disable test int paragraphCount=0; StreamedSource streamedSource=null; try { streamedSource=new StreamedSource(new URL(sourceUrlString)); StringBuilder sb=new StringBuilder(); boolean insideParagraphElement=false; for (Segment segment : streamedSource) { if (segment instanceof Tag) { Tag tag=(Tag)segment; if (tag.getName().equals("p")) { if (tag instanceof StartTag) { insideParagraphElement=true; sb.setLength(0); } else { insideParagraphElement=false; // don't actually do anything with paragraph text, just count them paragraphCount++; } } } else if (insideParagraphElement) { if (segment instanceof CharacterReference) { ((CharacterReference)segment).appendCharTo(sb); } else { sb.append(segment); } } } } finally { if (streamedSource!=null) streamedSource.close(); } assertEquals(20000,paragraphCount); } }