[Htmlparser-cvs] htmlparser/src/org/htmlparser/tests/scannersTests AllTests.java,1.45,1.46 BaseHREFS
Brought to you by:
derrickoswald
Update of /cvsroot/htmlparser/htmlparser/src/org/htmlparser/tests/scannersTests In directory sc8-pr-cvs1:/tmp/cvs-serv31228/tests/scannersTests Modified Files: AllTests.java BaseHREFScannerTest.java BodyScannerTest.java BulletListScannerTest.java BulletScannerTest.java CompositeTagScannerTest.java DivScannerTest.java FormScannerTest.java FrameScannerTest.java FrameSetScannerTest.java HeadScannerTest.java HtmlTest.java ImageScannerTest.java InputTagScannerTest.java JspScannerTest.java LabelScannerTest.java LinkScannerTest.java MetaTagScannerTest.java OptionTagScannerTest.java ScriptScannerTest.java SelectTagScannerTest.java SpanScannerTest.java StyleScannerTest.java TableScannerTest.java TagScannerTest.java TextareaTagScannerTest.java TitleScannerTest.java XmlEndTagScanningTest.java Log Message: Change tabs to spaces in all source files. Index: AllTests.java =================================================================== RCS file: /cvsroot/htmlparser/htmlparser/src/org/htmlparser/tests/scannersTests/AllTests.java,v retrieving revision 1.45 retrieving revision 1.46 diff -C2 -d -r1.45 -r1.46 *** AllTests.java 24 Aug 2003 21:59:43 -0000 1.45 --- AllTests.java 3 Sep 2003 23:36:21 -0000 1.46 *************** *** 54,93 **** { ! public AllTests(String name) { ! super(name); ! } ! ! public static TestSuite suite() { ! TestSuite suite = new TestSuite("Scanner Tests"); ! suite.addTestSuite(TagScannerTest.class); ! suite.addTestSuite(AppletScannerTest.class); ! suite.addTestSuite(ScriptScannerTest.class); ! suite.addTestSuite(ImageScannerTest.class); ! suite.addTestSuite(LinkScannerTest.class); ! suite.addTestSuite(StyleScannerTest.class); ! suite.addTestSuite(MetaTagScannerTest.class); ! suite.addTestSuite(TitleScannerTest.class); ! suite.addTestSuite(FormScannerTest.class); ! suite.addTestSuite(FrameScannerTest.class); ! suite.addTestSuite(FrameSetScannerTest.class); ! suite.addTestSuite(InputTagScannerTest.class); ! suite.addTestSuite(OptionTagScannerTest.class); ! suite.addTestSuite(SelectTagScannerTest.class); ! suite.addTestSuite(TextareaTagScannerTest.class); ! suite.addTestSuite(BaseHREFScannerTest.class); ! suite.addTestSuite(JspScannerTest.class); ! suite.addTestSuite(TableScannerTest.class); ! suite.addTestSuite(SpanScannerTest.class); ! suite.addTestSuite(DivScannerTest.class); ! suite.addTestSuite(LabelScannerTest.class); ! suite.addTestSuite(BodyScannerTest.class); ! suite.addTestSuite(CompositeTagScannerTest.class); ! suite.addTestSuite(HeadScannerTest.class); ! suite.addTestSuite(BulletListScannerTest.class); ! suite.addTestSuite(BulletScannerTest.class); ! suite.addTestSuite(HtmlTest.class); ! suite.addTestSuite(XmlEndTagScanningTest.class); ! return suite; ! } /** --- 54,93 ---- { ! public AllTests(String name) { ! super(name); ! } ! ! public static TestSuite suite() { ! TestSuite suite = new TestSuite("Scanner Tests"); ! suite.addTestSuite(TagScannerTest.class); ! suite.addTestSuite(AppletScannerTest.class); ! suite.addTestSuite(ScriptScannerTest.class); ! suite.addTestSuite(ImageScannerTest.class); ! suite.addTestSuite(LinkScannerTest.class); ! suite.addTestSuite(StyleScannerTest.class); ! suite.addTestSuite(MetaTagScannerTest.class); ! suite.addTestSuite(TitleScannerTest.class); ! suite.addTestSuite(FormScannerTest.class); ! suite.addTestSuite(FrameScannerTest.class); ! suite.addTestSuite(FrameSetScannerTest.class); ! suite.addTestSuite(InputTagScannerTest.class); ! suite.addTestSuite(OptionTagScannerTest.class); ! suite.addTestSuite(SelectTagScannerTest.class); ! suite.addTestSuite(TextareaTagScannerTest.class); ! suite.addTestSuite(BaseHREFScannerTest.class); ! suite.addTestSuite(JspScannerTest.class); ! suite.addTestSuite(TableScannerTest.class); ! suite.addTestSuite(SpanScannerTest.class); ! suite.addTestSuite(DivScannerTest.class); ! suite.addTestSuite(LabelScannerTest.class); ! suite.addTestSuite(BodyScannerTest.class); ! suite.addTestSuite(CompositeTagScannerTest.class); ! suite.addTestSuite(HeadScannerTest.class); ! suite.addTestSuite(BulletListScannerTest.class); ! suite.addTestSuite(BulletScannerTest.class); ! suite.addTestSuite(HtmlTest.class); ! suite.addTestSuite(XmlEndTagScanningTest.class); ! return suite; ! } /** *************** *** 102,106 **** * All other options are passed on to the junit framework. */ ! public static void main(String[] args) { String runner; --- 102,106 ---- * All other options are passed on to the junit framework. */ ! public static void main(String[] args) { String runner; *************** *** 152,156 **** + ")"); } ! } } --- 152,156 ---- + ")"); } ! } } Index: BaseHREFScannerTest.java =================================================================== RCS file: /cvsroot/htmlparser/htmlparser/src/org/htmlparser/tests/scannersTests/BaseHREFScannerTest.java,v retrieving revision 1.23 retrieving revision 1.24 diff -C2 -d -r1.23 -r1.24 *** BaseHREFScannerTest.java 24 Aug 2003 21:59:43 -0000 1.23 --- BaseHREFScannerTest.java 3 Sep 2003 23:36:21 -0000 1.24 *************** *** 39,80 **** public class BaseHREFScannerTest extends ParserTestCase { ! private BaseHrefScanner scanner; ! public BaseHREFScannerTest(String arg0) { ! super(arg0); ! } ! ! protected void setUp() { ! scanner=new BaseHrefScanner(); ! } ! public void testRemoveLastSlash() { ! String url1 = "http://www.yahoo.com/"; ! String url2 = "http://www.google.com"; ! String modifiedUrl1 = LinkProcessor.removeLastSlash(url1); ! String modifiedUrl2 = LinkProcessor.removeLastSlash(url2); ! assertEquals("Url1","http://www.yahoo.com",modifiedUrl1); ! assertEquals("Url2","http://www.google.com",modifiedUrl2); ! } ! ! public void testEvaluate() { ! String testData1 = "BASE HREF=\"http://www.abc.com/\""; ! assertTrue("Data 1 Should have evaluated true",scanner.evaluate(testData1,null)); ! String testData2 = "Base href=\"http://www.abc.com/\""; ! assertTrue("Data 2 Should have evaluated true",scanner.evaluate(testData2,null)); ! } ! ! public void testScan() throws ParserException{ ! createParser("<html><head><TITLE>test page</TITLE><BASE HREF=\"http://www.abc.com/\"><a href=\"home.cfm\">Home</a>...</html>","http://www.google.com/test/index.html"); ! LinkScanner linkScanner = new LinkScanner("-l"); ! parser.addScanner(linkScanner); ! parser.addScanner(new TitleScanner("-t")); ! parser.addScanner(linkScanner.createBaseHREFScanner("-b")); ! parseAndAssertNodeCount(7); ! //Base href tag should be the 4th tag ! assertTrue(node[3] instanceof BaseHrefTag); ! BaseHrefTag baseRefTag = (BaseHrefTag)node[3]; ! assertEquals("Base HREF Url","http://www.abc.com",baseRefTag.getBaseUrl()); ! } ! } --- 39,80 ---- public class BaseHREFScannerTest extends ParserTestCase { ! private BaseHrefScanner scanner; ! public BaseHREFScannerTest(String arg0) { ! super(arg0); ! } ! ! protected void setUp() { ! scanner=new BaseHrefScanner(); ! } ! public void testRemoveLastSlash() { ! String url1 = "http://www.yahoo.com/"; ! String url2 = "http://www.google.com"; ! String modifiedUrl1 = LinkProcessor.removeLastSlash(url1); ! String modifiedUrl2 = LinkProcessor.removeLastSlash(url2); ! assertEquals("Url1","http://www.yahoo.com",modifiedUrl1); ! assertEquals("Url2","http://www.google.com",modifiedUrl2); ! } ! ! public void testEvaluate() { ! String testData1 = "BASE HREF=\"http://www.abc.com/\""; ! assertTrue("Data 1 Should have evaluated true",scanner.evaluate(testData1,null)); ! String testData2 = "Base href=\"http://www.abc.com/\""; ! assertTrue("Data 2 Should have evaluated true",scanner.evaluate(testData2,null)); ! } ! ! public void testScan() throws ParserException{ ! createParser("<html><head><TITLE>test page</TITLE><BASE HREF=\"http://www.abc.com/\"><a href=\"home.cfm\">Home</a>...</html>","http://www.google.com/test/index.html"); ! LinkScanner linkScanner = new LinkScanner("-l"); ! parser.addScanner(linkScanner); ! parser.addScanner(new TitleScanner("-t")); ! parser.addScanner(linkScanner.createBaseHREFScanner("-b")); ! parseAndAssertNodeCount(7); ! //Base href tag should be the 4th tag ! assertTrue(node[3] instanceof BaseHrefTag); ! BaseHrefTag baseRefTag = (BaseHrefTag)node[3]; ! assertEquals("Base HREF Url","http://www.abc.com",baseRefTag.getBaseUrl()); ! } ! } Index: BodyScannerTest.java =================================================================== RCS file: /cvsroot/htmlparser/htmlparser/src/org/htmlparser/tests/scannersTests/BodyScannerTest.java,v retrieving revision 1.9 retrieving revision 1.10 diff -C2 -d -r1.9 -r1.10 *** BodyScannerTest.java 24 Aug 2003 21:59:43 -0000 1.9 --- BodyScannerTest.java 3 Sep 2003 23:36:21 -0000 1.10 *************** *** 39,109 **** public class BodyScannerTest extends ParserTestCase { ! public BodyScannerTest(String name) { ! super(name); ! } ! public void testSimpleBody() throws ParserException { ! createParser("<html><head><title>Test 1</title></head><body>This is a body tag</body></html>"); ! parser.registerScanners(); ! BodyScanner bodyScanner = new BodyScanner("-b"); ! parser.addScanner(bodyScanner); ! parseAndAssertNodeCount(6); ! assertTrue(node[4] instanceof BodyTag); ! // check the body node ! BodyTag bodyTag = (BodyTag) node[4]; ! assertEquals("Body","This is a body tag",bodyTag.getBody()); ! assertEquals("Body","<BODY>This is a body tag</BODY>",bodyTag.toHtml()); ! assertEquals("Body Scanner",bodyScanner,bodyTag.getThisScanner()); ! } ! ! public void testBodywithJsp() throws ParserException { ! createParser("<html><head><title>Test 1</title></head><body><%=BodyValue%></body></html>"); ! parser.registerScanners(); ! BodyScanner bodyScanner = new BodyScanner("-b"); ! parser.addScanner(bodyScanner); ! parseAndAssertNodeCount(6); ! assertTrue(node[4] instanceof BodyTag); ! // check the body node ! BodyTag bodyTag = (BodyTag) node[4]; ! assertStringEquals("Body","<BODY><%=BodyValue%></BODY>",bodyTag.toHtml()); ! assertEquals("Body Scanner",bodyScanner,bodyTag.getThisScanner()); ! } ! ! public void testBodyMixed() throws ParserException { ! createParser("<html><head><title>Test 1</title></head><body>before jsp<%=BodyValue%>after jsp</body></html>"); ! parser.registerScanners(); ! BodyScanner bodyScanner = new BodyScanner("-b"); ! parser.addScanner(bodyScanner); ! parseAndAssertNodeCount(6); ! assertTrue(node[4] instanceof BodyTag); ! // check the body node ! BodyTag bodyTag = (BodyTag) node[4]; ! assertEquals("Body","<BODY>before jsp<%=BodyValue%>after jsp</BODY>",bodyTag.toHtml()); ! assertEquals("Body Scanner",bodyScanner,bodyTag.getThisScanner()); ! } ! ! public void testBodyEnding() throws ParserException { ! createParser("<html><body>before jsp<%=BodyValue%>after jsp</html>"); ! parser.registerScanners(); ! BodyScanner bodyScanner = new BodyScanner("-b"); ! parser.addScanner(bodyScanner); ! parseAndAssertNodeCount(3); ! assertTrue(node[1] instanceof BodyTag); ! // check the body node ! BodyTag bodyTag = (BodyTag) node[1]; ! assertEquals("Body","<BODY>before jsp<%=BodyValue%>after jsp</BODY>",bodyTag.toHtml()); ! assertEquals("Body Scanner",bodyScanner,bodyTag.getThisScanner()); ! } ! ! public static TestSuite suite() ! { ! return new TestSuite(BodyScannerTest.class); ! } ! ! public static void main(String[] args) ! { ! new junit.awtui.TestRunner().start(new String[] {BodyScannerTest.class.getName()}); ! } ! } --- 39,109 ---- public class BodyScannerTest extends ParserTestCase { ! public BodyScannerTest(String name) { ! super(name); ! } ! public void testSimpleBody() throws ParserException { ! createParser("<html><head><title>Test 1</title></head><body>This is a body tag</body></html>"); ! parser.registerScanners(); ! BodyScanner bodyScanner = new BodyScanner("-b"); ! parser.addScanner(bodyScanner); ! parseAndAssertNodeCount(6); ! assertTrue(node[4] instanceof BodyTag); ! // check the body node ! BodyTag bodyTag = (BodyTag) node[4]; ! assertEquals("Body","This is a body tag",bodyTag.getBody()); ! assertEquals("Body","<BODY>This is a body tag</BODY>",bodyTag.toHtml()); ! assertEquals("Body Scanner",bodyScanner,bodyTag.getThisScanner()); ! } ! ! public void testBodywithJsp() throws ParserException { ! createParser("<html><head><title>Test 1</title></head><body><%=BodyValue%></body></html>"); ! parser.registerScanners(); ! BodyScanner bodyScanner = new BodyScanner("-b"); ! parser.addScanner(bodyScanner); ! parseAndAssertNodeCount(6); ! assertTrue(node[4] instanceof BodyTag); ! // check the body node ! BodyTag bodyTag = (BodyTag) node[4]; ! assertStringEquals("Body","<BODY><%=BodyValue%></BODY>",bodyTag.toHtml()); ! assertEquals("Body Scanner",bodyScanner,bodyTag.getThisScanner()); ! } ! ! public void testBodyMixed() throws ParserException { ! createParser("<html><head><title>Test 1</title></head><body>before jsp<%=BodyValue%>after jsp</body></html>"); ! parser.registerScanners(); ! BodyScanner bodyScanner = new BodyScanner("-b"); ! parser.addScanner(bodyScanner); ! parseAndAssertNodeCount(6); ! assertTrue(node[4] instanceof BodyTag); ! // check the body node ! BodyTag bodyTag = (BodyTag) node[4]; ! assertEquals("Body","<BODY>before jsp<%=BodyValue%>after jsp</BODY>",bodyTag.toHtml()); ! assertEquals("Body Scanner",bodyScanner,bodyTag.getThisScanner()); ! } ! ! public void testBodyEnding() throws ParserException { ! createParser("<html><body>before jsp<%=BodyValue%>after jsp</html>"); ! parser.registerScanners(); ! BodyScanner bodyScanner = new BodyScanner("-b"); ! parser.addScanner(bodyScanner); ! parseAndAssertNodeCount(3); ! assertTrue(node[1] instanceof BodyTag); ! // check the body node ! BodyTag bodyTag = (BodyTag) node[1]; ! assertEquals("Body","<BODY>before jsp<%=BodyValue%>after jsp</BODY>",bodyTag.toHtml()); ! assertEquals("Body Scanner",bodyScanner,bodyTag.getThisScanner()); ! } ! ! public static TestSuite suite() ! { ! return new TestSuite(BodyScannerTest.class); ! } ! ! public static void main(String[] args) ! { ! new junit.awtui.TestRunner().start(new String[] {BodyScannerTest.class.getName()}); ! } ! } Index: BulletListScannerTest.java =================================================================== RCS file: /cvsroot/htmlparser/htmlparser/src/org/htmlparser/tests/scannersTests/BulletListScannerTest.java,v retrieving revision 1.5 retrieving revision 1.6 diff -C2 -d -r1.5 -r1.6 *** BulletListScannerTest.java 24 Aug 2003 21:59:43 -0000 1.5 --- BulletListScannerTest.java 3 Sep 2003 23:36:21 -0000 1.6 *************** *** 46,102 **** public class BulletListScannerTest extends ParserTestCase { ! public BulletListScannerTest(String name) { ! super(name); ! } ! public void testScan() throws ParserException { ! createParser( ! "<ul TYPE=DISC>" + ! "<ul TYPE=\"DISC\"><li>Energy supply\n"+ ! " (Campbell) <A HREF=\"/hansard/37th3rd/h20307p.htm#1646\">1646</A>\n"+ ! " (MacPhail) <A HREF=\"/hansard/37th3rd/h20307p.htm#1646\">1646</A>\n"+ ! "</ul><A NAME=\"calpinecorp\"></A><B>Calpine Corp.</B>\n"+ ! "<ul TYPE=\"DISC\"><li>Power plant projects\n"+ ! " (Neufeld) <A HREF=\"/hansard/37th3rd/h20314p.htm#1985\">1985</A>\n"+ ! "</ul>" + ! "</ul>" ! ); ! parser.registerScanners(); ! parseAndAssertNodeCount(1); ! ! NodeList nestedBulletLists = ! ((CompositeTag)node[0]).searchFor( ! BulletList.class ! ); ! assertEquals( ! "bullets in first list", ! 2, ! nestedBulletLists.size() ! ); ! BulletList firstList = ! (BulletList)nestedBulletLists.elementAt(0); ! Bullet firstBullet = ! (Bullet)firstList.childAt(0); ! Node firstNodeInFirstBullet = ! firstBullet.childAt(0); ! assertType( ! "first child in bullet", ! StringNode.class, ! firstNodeInFirstBullet ! ); ! assertStringEquals( ! "expected text", ! "Energy supply\r\n" + ! " (Campbell) ", ! firstNodeInFirstBullet.toPlainTextString() ! ); ! } ! public void testMissingendtag () throws ParserException { ! createParser ("<li>item 1<li>item 2"); ! parser.registerScanners (); ! parseAndAssertNodeCount (2); assertStringEquals ("item 1 not correct", "item 1", ((Bullet)node[0]).childAt (0).toHtml ()); assertStringEquals ("item 2 not correct", "item 2", ((Bullet)node[1]).childAt (0).toHtml ()); --- 46,102 ---- public class BulletListScannerTest extends ParserTestCase { ! public BulletListScannerTest(String name) { ! super(name); ! } ! public void testScan() throws ParserException { ! createParser( ! "<ul TYPE=DISC>" + ! "<ul TYPE=\"DISC\"><li>Energy supply\n"+ ! " (Campbell) <A HREF=\"/hansard/37th3rd/h20307p.htm#1646\">1646</A>\n"+ ! " (MacPhail) <A HREF=\"/hansard/37th3rd/h20307p.htm#1646\">1646</A>\n"+ ! "</ul><A NAME=\"calpinecorp\"></A><B>Calpine Corp.</B>\n"+ ! "<ul TYPE=\"DISC\"><li>Power plant projects\n"+ ! " (Neufeld) <A HREF=\"/hansard/37th3rd/h20314p.htm#1985\">1985</A>\n"+ ! "</ul>" + ! "</ul>" ! ); ! parser.registerScanners(); ! parseAndAssertNodeCount(1); ! ! NodeList nestedBulletLists = ! ((CompositeTag)node[0]).searchFor( ! BulletList.class ! ); ! assertEquals( ! "bullets in first list", ! 2, ! nestedBulletLists.size() ! ); ! BulletList firstList = ! (BulletList)nestedBulletLists.elementAt(0); ! Bullet firstBullet = ! (Bullet)firstList.childAt(0); ! Node firstNodeInFirstBullet = ! firstBullet.childAt(0); ! assertType( ! "first child in bullet", ! StringNode.class, ! firstNodeInFirstBullet ! ); ! assertStringEquals( ! "expected text", ! "Energy supply\r\n" + ! " (Campbell) ", ! firstNodeInFirstBullet.toPlainTextString() ! ); ! } ! public void testMissingendtag () throws ParserException { ! createParser ("<li>item 1<li>item 2"); ! parser.registerScanners (); ! parseAndAssertNodeCount (2); assertStringEquals ("item 1 not correct", "item 1", ((Bullet)node[0]).childAt (0).toHtml ()); assertStringEquals ("item 2 not correct", "item 2", ((Bullet)node[1]).childAt (0).toHtml ()); Index: BulletScannerTest.java =================================================================== RCS file: /cvsroot/htmlparser/htmlparser/src/org/htmlparser/tests/scannersTests/BulletScannerTest.java,v retrieving revision 1.6 retrieving revision 1.7 diff -C2 -d -r1.6 -r1.7 *** BulletScannerTest.java 24 Aug 2003 21:59:43 -0000 1.6 --- BulletScannerTest.java 3 Sep 2003 23:36:21 -0000 1.7 *************** *** 38,100 **** public class BulletScannerTest extends ParserTestCase { ! public BulletScannerTest(String name) { ! super(name); ! } ! public void testBulletFound() throws Exception { ! createParser( ! "<LI><A HREF=\"collapseHierarchy.html\">Collapse Hierarchy</A>\n"+ ! "</LI>" ! ); ! parser.registerScanners(); ! parseAndAssertNodeCount(1); ! assertType("should be a bullet",Bullet.class,node[0]); ! } ! ! ! public void testOutOfMemoryBug() throws ParserException { ! createParser( ! "<html>" + ! "<head>" + ! "<title>Foo</title>" + ! "</head>" + ! "<body>" + ! " <ul>" + ! " <li>" + ! " <a href=\"http://foo.com/c.html\">bibliographies on:" + ! " <ul>" + ! " <li>chironomidae</li>" + ! " </ul>" + ! " </a>" + ! " </li>" + ! " </ul>" + ! "" + ! "</body>" + ! "</html>" ! ); ! parser.registerScanners(); ! for (NodeIterator i = parser.elements();i.hasMoreNodes();) { ! Node node = i.nextNode(); ! System.out.println(node.toHtml()); ! } ! } ! ! public void testNonEndedBullets() throws ParserException { ! createParser( ! "<li>forest practices legislation penalties for non-compliance\n"+ ! " (Kwan) <A HREF=\"/hansard/37th3rd/h21107a.htm#4384\">4384-5</A>\n"+ ! "<li>passenger rail service\n"+ ! " (MacPhail) <A HREF=\"/hansard/37th3rd/h21021p.htm#3904\">3904</A>\n"+ ! "<li>referendum on principles for treaty negotiations\n"+ ! " (MacPhail) <A HREF=\"/hansard/37th3rd/h20313p.htm#1894\">1894</A>\n"+ ! "<li>transportation infrastructure projects\n"+ ! " (MacPhail) <A HREF=\"/hansard/37th3rd/h21022a.htm#3945\">3945-7</A>\n"+ ! "<li>tuition fee freeze" ! ); ! parser.registerScanners(); ! parseAndAssertNodeCount(5); ! for (int i=0;i<nodeCount;i++) { ! assertType("node "+i,Bullet.class,node[i]); ! } ! } } --- 38,100 ---- public class BulletScannerTest extends ParserTestCase { ! public BulletScannerTest(String name) { ! super(name); ! } ! public void testBulletFound() throws Exception { ! createParser( ! "<LI><A HREF=\"collapseHierarchy.html\">Collapse Hierarchy</A>\n"+ ! "</LI>" ! ); ! parser.registerScanners(); ! parseAndAssertNodeCount(1); ! assertType("should be a bullet",Bullet.class,node[0]); ! } ! ! ! public void testOutOfMemoryBug() throws ParserException { ! createParser( ! "<html>" + ! "<head>" + ! "<title>Foo</title>" + ! "</head>" + ! "<body>" + ! " <ul>" + ! " <li>" + ! " <a href=\"http://foo.com/c.html\">bibliographies on:" + ! " <ul>" + ! " <li>chironomidae</li>" + ! " </ul>" + ! " </a>" + ! " </li>" + ! " </ul>" + ! "" + ! "</body>" + ! "</html>" ! ); ! parser.registerScanners(); ! for (NodeIterator i = parser.elements();i.hasMoreNodes();) { ! Node node = i.nextNode(); ! System.out.println(node.toHtml()); ! } ! } ! ! public void testNonEndedBullets() throws ParserException { ! createParser( ! "<li>forest practices legislation penalties for non-compliance\n"+ ! " (Kwan) <A HREF=\"/hansard/37th3rd/h21107a.htm#4384\">4384-5</A>\n"+ ! "<li>passenger rail service\n"+ ! " (MacPhail) <A HREF=\"/hansard/37th3rd/h21021p.htm#3904\">3904</A>\n"+ ! "<li>referendum on principles for treaty negotiations\n"+ ! " (MacPhail) <A HREF=\"/hansard/37th3rd/h20313p.htm#1894\">1894</A>\n"+ ! "<li>transportation infrastructure projects\n"+ ! " (MacPhail) <A HREF=\"/hansard/37th3rd/h21022a.htm#3945\">3945-7</A>\n"+ ! "<li>tuition fee freeze" ! ); ! parser.registerScanners(); ! parseAndAssertNodeCount(5); ! for (int i=0;i<nodeCount;i++) { ! assertType("node "+i,Bullet.class,node[i]); ! } ! } } Index: CompositeTagScannerTest.java =================================================================== RCS file: /cvsroot/htmlparser/htmlparser/src/org/htmlparser/tests/scannersTests/CompositeTagScannerTest.java,v retrieving revision 1.35 retrieving revision 1.36 diff -C2 -d -r1.35 -r1.36 *** CompositeTagScannerTest.java 24 Aug 2003 21:59:44 -0000 1.35 --- CompositeTagScannerTest.java 3 Sep 2003 23:36:21 -0000 1.36 *************** *** 41,627 **** public class CompositeTagScannerTest extends ParserTestCase { ! private CompositeTagScanner scanner; ! private String url; ! ! public CompositeTagScannerTest(String name) { ! super(name); ! } ! protected void setUp() { [...1145 lines suppressed...] ! return false; ! } ! ! } ! public static class CustomTag extends CompositeTag { ! public TagData tagData; ! public CustomTag(TagData tagData, CompositeTagData compositeTagData) { ! super(tagData,compositeTagData); ! this.tagData = tagData; ! } ! } ! ! public static class AnotherTag extends CompositeTag { ! public AnotherTag(TagData tagData, CompositeTagData compositeTagData) { ! super(tagData,compositeTagData); ! } ! } } Index: DivScannerTest.java =================================================================== RCS file: /cvsroot/htmlparser/htmlparser/src/org/htmlparser/tests/scannersTests/DivScannerTest.java,v retrieving revision 1.29 retrieving revision 1.30 diff -C2 -d -r1.29 -r1.30 *** DivScannerTest.java 24 Aug 2003 21:59:44 -0000 1.29 --- DivScannerTest.java 3 Sep 2003 23:36:21 -0000 1.30 *************** *** 40,71 **** public class DivScannerTest extends ParserTestCase { ! public DivScannerTest(String name) { ! super(name); ! } ! public void testScan() throws ParserException { ! createParser("<table><div align=\"left\">some text</div></table>"); ! parser.registerScanners(); ! parser.addScanner(new TableScanner(parser)); ! parser.addScanner(new DivScanner()); ! parseAndAssertNodeCount(1); ! assertType("node should be table",TableTag.class,node[0]); ! TableTag tableTag = (TableTag)node[0]; ! Div div = (Div)tableTag.searchFor(Div.class).toNodeArray()[0]; ! assertEquals("div contents","some text",div.toPlainTextString()); ! } /** * Test case for bug #735193 Explicit tag type recognition for CompositTags not working. */ ! public void testInputInDiv() throws ParserException ! { ! createParser("<div><INPUT type=\"text\" name=\"X\">Hello</INPUT></div>"); ! parser.addScanner(new DivScanner()); ! parser.addScanner(new InputTagScanner()); ! parseAndAssertNodeCount(1); ! assertType("node should be div",Div.class,node[0]); ! Div div = (Div)node[0]; ! assertType("child not input",InputTag.class,div.getChild (0)); ! } } --- 40,71 ---- public class DivScannerTest extends ParserTestCase { ! public DivScannerTest(String name) { ! super(name); ! } ! public void testScan() throws ParserException { ! createParser("<table><div align=\"left\">some text</div></table>"); ! parser.registerScanners(); ! parser.addScanner(new TableScanner(parser)); ! parser.addScanner(new DivScanner()); ! parseAndAssertNodeCount(1); ! assertType("node should be table",TableTag.class,node[0]); ! TableTag tableTag = (TableTag)node[0]; ! Div div = (Div)tableTag.searchFor(Div.class).toNodeArray()[0]; ! assertEquals("div contents","some text",div.toPlainTextString()); ! } /** * Test case for bug #735193 Explicit tag type recognition for CompositTags not working. */ ! public void testInputInDiv() throws ParserException ! { ! createParser("<div><INPUT type=\"text\" name=\"X\">Hello</INPUT></div>"); ! parser.addScanner(new DivScanner()); ! parser.addScanner(new InputTagScanner()); ! parseAndAssertNodeCount(1); ! assertType("node should be div",Div.class,node[0]); ! Div div = (Div)node[0]; ! assertType("child not input",InputTag.class,div.getChild (0)); ! } } Index: FormScannerTest.java =================================================================== RCS file: /cvsroot/htmlparser/htmlparser/src/org/htmlparser/tests/scannersTests/FormScannerTest.java,v retrieving revision 1.29 retrieving revision 1.30 diff -C2 -d -r1.29 -r1.30 *** FormScannerTest.java 24 Aug 2003 21:59:44 -0000 1.29 --- FormScannerTest.java 3 Sep 2003 23:36:21 -0000 1.30 *************** *** 45,299 **** public class FormScannerTest extends ParserTestCase { ! public static final String FORM_HTML = ! "<FORM METHOD=\""+FormTag.POST+"\" ACTION=\"do_login.php\" NAME=\"login_form\" onSubmit=\"return CheckData()\">\n"+ ! "<TR><TD ALIGN=\"center\"> </TD></TR>\n"+ ! "<TR><TD ALIGN=\"center\"><FONT face=\"Arial, verdana\" size=2><b>User Name</b></font></TD></TR>\n"+ ! "<TR><TD ALIGN=\"center\"><INPUT TYPE=\"text\" NAME=\"name\" SIZE=\"20\"></TD></TR>\n"+ ! "<TR><TD ALIGN=\"center\"><FONT face=\"Arial, verdana\" size=2><b>Password</b></font></TD></TR>\n"+ ! "<TR><TD ALIGN=\"center\"><INPUT TYPE=\"password\" NAME=\"passwd\" SIZE=\"20\"></TD></TR>\n"+ ! "<TR><TD ALIGN=\"center\"> </TD></TR>\n"+ ! "<TR><TD ALIGN=\"center\"><INPUT TYPE=\"submit\" NAME=\"submit\" VALUE=\"Login\"></TD></TR>\n"+ ! "<TR><TD ALIGN=\"center\"> </TD></TR>\n"+ ! "<TEXTAREA name=\"Description\" rows=\"15\" cols=\"55\" wrap=\"virtual\" class=\"composef\" tabindex=\"5\">Contents of TextArea</TEXTAREA>\n"+ ! // "<TEXTAREA name=\"AnotherDescription\" rows=\"15\" cols=\"55\" wrap=\"virtual\" class=\"composef\" tabindex=\"5\">\n"+ ! "<INPUT TYPE=\"hidden\" NAME=\"password\" SIZE=\"20\">\n"+ ! "<INPUT TYPE=\"submit\">\n"+ ! "</FORM>"; ! ! public static final String EXPECTED_FORM_HTML_FORMLINE="<FORM ACTION=\"http://www.google.com/test/do_login.php\" NAME=\"login_form\" ONSUBMIT=\"return CheckData()\" METHOD=\""+FormTag.POST+"\">\r\n"; ! public static final String EXPECTED_FORM_HTML_REST_OF_FORM= ! "<TR><TD ALIGN=\"center\"> </TD></TR>\r\n"+ ! "<TR><TD ALIGN=\"center\"><FONT FACE=\"Arial, verdana\" SIZE=\"2\"><B>User Name</B></FONT></TD></TR>\r\n"+ ! "<TR><TD ALIGN=\"center\"><INPUT NAME=\"name\" SIZE=\"20\" TYPE=\"text\"></TD></TR>\r\n"+ ! "<TR><TD ALIGN=\"center\"><FONT FACE=\"Arial, verdana\" SIZE=\"2\"><B>Password</B></FONT></TD></TR>\r\n"+ ! "<TR><TD ALIGN=\"center\"><INPUT NAME=\"passwd\" SIZE=\"20\" TYPE=\"password\"></TD></TR>\r\n"+ ! "<TR><TD ALIGN=\"center\"> </TD></TR>\r\n"+ ! "<TR><TD ALIGN=\"center\"><INPUT VALUE=\"Login\" NAME=\"submit\" TYPE=\"submit\"></TD></TR>\r\n"+ ! "<TR><TD ALIGN=\"center\"> </TD></TR>\r\n"+ ! "<TEXTAREA TABINDEX=\"5\" ROWS=\"15\" COLS=\"55\" CLASS=\"composef\" NAME=\"Description\" WRAP=\"virtual\">Contents of TextArea</TEXTAREA>\r\n"+ ! // "<TEXTAREA TABINDEX=\"5\" ROWS=\"15\" COLS=\"55\" CLASS=\"composef\" NAME=\"AnotherDescription\" WRAP=\"virtual\">\r\n"+ ! "<INPUT NAME=\"password\" SIZE=\"20\" TYPE=\"hidden\">\r\n"+ ! "<INPUT TYPE=\"submit\">\r\n"+ ! "</FORM>"; ! public static final String EXPECTED_FORM_HTML = EXPECTED_FORM_HTML_FORMLINE+EXPECTED_FORM_HTML_REST_OF_FORM; ! ! public FormScannerTest(String name) { ! super(name); ! } ! ! public void testEvaluate() { ! String line1="form method=\"post\" onsubmit=\"return implementsearch()\" name=frmsearch id=form"; ! String line2="FORM method=\"post\" onsubmit=\"return implementsearch()\" name=frmsearch id=form"; ! String line3="Form method=\"post\" onsubmit=\"return implementsearch()\" name=frmsearch id=form"; ! FormScanner formScanner = new FormScanner("",Parser.createParser("")); ! assertTrue("Line 1",formScanner.evaluate(line1,null)); ! assertTrue("Line 2",formScanner.evaluate(line2,null)); ! assertTrue("Line 3",formScanner.evaluate(line3,null)); ! } ! ! public void assertTypeNameSize(String description,String type,String name,String size,InputTag inputTag) { ! assertEquals(description+" type",type,inputTag.getAttribute("TYPE")); ! assertEquals(description+" name",name,inputTag.getAttribute("NAME")); ! assertEquals(description+" size",size,inputTag.getAttribute("SIZE")); ! } ! public void assertTypeNameValue(String description,String type,String name,String value,InputTag inputTag) { ! assertEquals(description+" type",type,inputTag.getAttribute("TYPE")); ! assertEquals(description+" name",name,inputTag.getAttribute("NAME")); ! assertEquals(description+" value",value,inputTag.getAttribute("VALUE")); ! } ! public void testScan() throws ParserException { ! createParser(FORM_HTML,"http://www.google.com/test/index.html"); ! parser.addScanner(new FormScanner("",parser)); ! parseAndAssertNodeCount(1); ! assertTrue("Node 0 should be Form Tag",node[0] instanceof FormTag); ! FormTag formTag = (FormTag)node[0]; ! assertStringEquals("Method",FormTag.POST,formTag.getFormMethod()); ! assertStringEquals("Location","http://www.google.com/test/do_login.php",formTag.getFormLocation()); ! assertStringEquals("Name","login_form",formTag.getFormName()); ! InputTag nameTag = formTag.getInputTag("name"); ! InputTag passwdTag = formTag.getInputTag("passwd"); ! InputTag submitTag = formTag.getInputTag("submit"); ! InputTag dummyTag = formTag.getInputTag("dummy"); ! assertNotNull("Input Name Tag should not be null",nameTag); ! assertNotNull("Input Password Tag should not be null",passwdTag); ! assertNotNull("Input Submit Tag should not be null",submitTag); ! assertNull("Input dummy tag should be null",dummyTag); ! ! assertTypeNameSize("Input Name Tag","text","name","20",nameTag); ! assertTypeNameSize("Input Password Tag","password","passwd","20",passwdTag); ! assertTypeNameValue("Input Submit Tag","submit","submit","Login",submitTag); ! ! TextareaTag textAreaTag = formTag.getTextAreaTag("Description"); ! assertNotNull("Text Area Tag should have been found",textAreaTag); ! assertEquals("Text Area Tag Contents","Contents of TextArea",textAreaTag.getValue()); ! assertNull("Should have been null",formTag.getTextAreaTag("junk")); ! ! assertStringEquals("toHTML",EXPECTED_FORM_HTML,formTag.toHtml()); ! } ! ! public void testScanFormWithNoEnding() throws Exception { ! createParser( ! "<TABLE>\n"+ ! "<FORM METHOD=\"post\" ACTION=\"do_login.php\" NAME=\"login_form\" onSubmit=\"return CheckData()\">\n"+ ! "<TR><TD ALIGN=\"center\"> </TD></TR>\n"+ ! "<TR><TD ALIGN=\"center\"><FONT face=\"Arial, verdana\" size=2><b>User Name</b></font></TD></TR>\n"+ ! "<TR><TD ALIGN=\"center\"><INPUT TYPE=\"text\" NAME=\"name\" SIZE=\"20\"></TD></TR>\n"+ ! "<TR><TD ALIGN=\"center\"><FONT face=\"Arial, verdana\" size=2><b>Password</b></font></TD></TR>\n"+ ! "<TR><TD ALIGN=\"center\"><INPUT TYPE=\"password\" NAME=\"passwd\" SIZE=\"20\"></TD></TR>\n"+ ! "<TR><TD ALIGN=\"center\"> </TD></TR>\n"+ ! "<TR><TD ALIGN=\"center\"><INPUT TYPE=\"submit\" NAME=\"submit\" VALUE=\"Login\"></TD></TR>\n"+ ! "<TR><TD ALIGN=\"center\"> </TD></TR>\n"+ ! "<INPUT TYPE=\"hidden\" NAME=\"password\" SIZE=\"20\">\n"+ ! "</TABLE>","http://www.google.com/test/index.html"); ! ! parser.addScanner(new FormScanner("",parser)); ! ! parseAndAssertNodeCount(2); ! } ! /** ! * Bug reported by Pavan Podila - forms with links are not being parsed ! * Sample html is from google ! */ ! public void testScanFormWithLinks() throws ParserException { ! createParser( ! "<form action=\"/search\" name=f><table cellspacing=0 cellpadding=0><tr><td width=75> "+ ! "</td><td align=center><input type=hidden name=hl value=en><input type=hidden name=ie "+ ! "value=\"UTF-8\"><input type=hidden name=oe value=\"UTF-8\"><input maxLength=256 size=55"+ ! " name=q value=\"\"><br><input type=submit value=\"Google Search\" name=btnG><input type="+ ! "submit value=\"I'm Feeling Lucky\" name=btnI></td><td valign=top nowrap><font size=-2>"+ ! " • <a href=/advanced_search?hl=en>Advanced Search</a><br> •"+ ! " <a href=/preferences?hl=en>Preferences</a><br> • <a href=/"+ ! "language_tools?hl=en>Language Tools</a></font></td></tr></table></form>" ! ); ! ! parser.addScanner(new FormScanner("",parser)); ! parser.addScanner(new LinkScanner()); ! parseAndAssertNodeCount(1); ! assertTrue("Should be a HTMLFormTag",node[0] instanceof FormTag); ! FormTag formTag = (FormTag)node[0]; ! LinkTag [] linkTag = new LinkTag[10]; ! int i = 0; ! for (SimpleNodeIterator e=formTag.children();e.hasMoreNodes();) { ! Node formNode = e.nextNode(); ! if (formNode instanceof LinkTag) { ! linkTag[i++] = (LinkTag)formNode; ! } ! } ! assertEquals("Link Tag Count",3,i); ! assertEquals("First Link Tag Text","Advanced Search",linkTag[0].getLinkText()); ! assertEquals("Second Link Tag Text","Preferences",linkTag[1].getLinkText()); ! assertEquals("Third Link Tag Text","Language Tools",linkTag[2].getLinkText()); ! } ! /** ! * Bug 652674 - forms with comments are not being parsed ! */ ! public void testScanFormWithComments() throws ParserException { ! createParser( ! "<form action=\"/search\" name=f><table cellspacing=0 cellpadding=0><tr><td width=75> "+ ! "</td><td align=center><input type=hidden name=hl value=en><input type=hidden name=ie "+ ! "value=\"UTF-8\"><input type=hidden name=oe value=\"UTF-8\"><!-- Hello World -->"+ ! "<input maxLength=256 size=55"+ ! " name=q value=\"\"><br><input type=submit value=\"Google Search\" name=btnG><input type="+ ! "submit value=\"I'm Feeling Lucky\" name=btnI></td><td valign=top nowrap><font size=-2>"+ ! " • <a href=/advanced_search?hl=en>Advanced Search</a><br> •"+ ! " <a href=/preferences?hl=en>Preferences</a><br> • <a href=/"+ ! "language_tools?hl=en>Language Tools</a></font></td></tr></table></form>" ! ); ! ! parser.addScanner(new FormScanner("",parser)); ! parseAndAssertNodeCount(1); ! assertTrue("Should be a HTMLFormTag",node[0] instanceof FormTag); ! FormTag formTag = (FormTag)node[0]; ! RemarkNode [] remarkNode = new RemarkNode[10]; ! int i = 0; ! for (SimpleNodeIterator e=formTag.children();e.hasMoreNodes();) { ! Node formNode = (Node)e.nextNode(); ! if (formNode instanceof RemarkNode) { ! remarkNode[i++] = (RemarkNode)formNode; ! } ! } ! assertEquals("Remark Node Count",1,i); ! assertEquals("First Remark Node"," Hello World ",remarkNode[0].toPlainTextString()); ! } ! /** ! * Bug 652674 - forms with comments are not being parsed ! */ ! public void testScanFormWithComments2() throws ParserException { ! createParser( ! "<FORM id=\"id\" name=\"name\" action=\"http://some.site/aPage.asp?id=97\" method=\"post\">\n"+ ! " <!--\n"+ ! " Just a Comment\n"+ ! " -->\n"+ ! "</FORM>"); ! parser.registerScanners(); ! parseAndAssertNodeCount(1); ! assertTrue("Should be a HTMLFormTag",node[0] instanceof FormTag); ! FormTag formTag = (FormTag)node[0]; ! RemarkNode [] remarkNode = new RemarkNode[10]; ! int i = 0; ! for (SimpleNodeIterator e=formTag.children();e.hasMoreNodes();) { ! Node formNode = (Node)e.nextNode(); ! if (formNode instanceof RemarkNode) { ! remarkNode[i++] = (RemarkNode)formNode; ! } ! } ! assertEquals("Remark Node Count",1,i); ! } ! ! /** ! * Bug 656870 - a form tag with a previously open link causes infinite loop ! * on encounter ! */ ! public void testScanFormWithPreviousOpenLink() throws ParserException { ! createParser( ! "<A HREF=\"http://www.oygevalt.org/\">Home</A>\n"+ ! "<P>\n"+ ! "And now, the good stuff:\n"+ ! "<P>\n"+ ! "<A HREF=\"http://www.yahoo.com\">Yahoo!\n"+ ! "<FORM ACTION=\".\" METHOD=\"GET\">\n"+ ! "<INPUT TYPE=\"TEXT\">\n"+ ! "<BR>\n"+ ! "<A HREF=\"http://www.helpme.com\">Help</A> " + ! "<INPUT TYPE=\"checkbox\">\n"+ ! "<P>\n"+ ! "<INPUT TYPE=\"SUBMIT\">\n"+ ! "</FORM>" ! ); ! parser.addScanner(new FormScanner("",parser)); ! parser.addScanner(new LinkScanner()); ! parseAndAssertNodeCount(6); ! assertTrue("Fifth Node is a link",node[4] instanceof LinkTag); ! LinkTag linkTag = (LinkTag)node[4]; ! assertEquals("Link Text","Yahoo!\r\n",linkTag.getLinkText()); ! assertEquals("Link URL","http://www.yahoo.com",linkTag.getLink()); ! assertType("Sixth Node",FormTag.class,node[5]); ! } ! /** ! * Bug 713907 reported by Dhaval Udani, erroneous ! * parsing of form tag (even when form scanner is not ! * registered) ! */ ! public void testFormScanningShouldNotHappen() throws Exception { ! String testHTML = ! "<HTML><HEAD><TITLE>Test Form Tag</TITLE></HEAD>" + ! "<BODY><FORM name=\"form0\"><INPUT type=\"text\" name=\"text0\"></FORM>" + ! "</BODY></HTML>"; ! createParser( ! testHTML ! ); ! parser.registerScanners(); ! parser.removeScanner(new FormScanner("",parser)); ! Node [] nodes = ! parser.extractAllNodesThatAre( ! FormTag.class ! ); ! assertEquals( ! "shouldnt have found form tag", ! 0, ! nodes.length ! ); ! } /** --- 45,299 ---- public class FormScannerTest extends ParserTestCase { ! public static final String FORM_HTML = ! "<FORM METHOD=\""+FormTag.POST+"\" ACTION=\"do_login.php\" NAME=\"login_form\" onSubmit=\"return CheckData()\">\n"+ ! "<TR><TD ALIGN=\"center\"> </TD></TR>\n"+ ! "<TR><TD ALIGN=\"center\"><FONT face=\"Arial, verdana\" size=2><b>User Name</b></font></TD></TR>\n"+ ! "<TR><TD ALIGN=\"center\"><INPUT TYPE=\"text\" NAME=\"name\" SIZE=\"20\"></TD></TR>\n"+ ! "<TR><TD ALIGN=\"center\"><FONT face=\"Arial, verdana\" size=2><b>Password</b></font></TD></TR>\n"+ ! "<TR><TD ALIGN=\"center\"><INPUT TYPE=\"password\" NAME=\"passwd\" SIZE=\"20\"></TD></TR>\n"+ ! "<TR><TD ALIGN=\"center\"> </TD></TR>\n"+ ! "<TR><TD ALIGN=\"center\"><INPUT TYPE=\"submit\" NAME=\"submit\" VALUE=\"Login\"></TD></TR>\n"+ ! "<TR><TD ALIGN=\"center\"> </TD></TR>\n"+ ! "<TEXTAREA name=\"Description\" rows=\"15\" cols=\"55\" wrap=\"virtual\" class=\"composef\" tabindex=\"5\">Contents of TextArea</TEXTAREA>\n"+ ! // "<TEXTAREA name=\"AnotherDescription\" rows=\"15\" cols=\"55\" wrap=\"virtual\" class=\"composef\" tabindex=\"5\">\n"+ ! "<INPUT TYPE=\"hidden\" NAME=\"password\" SIZE=\"20\">\n"+ ! "<INPUT TYPE=\"submit\">\n"+ ! "</FORM>"; ! ! public static final String EXPECTED_FORM_HTML_FORMLINE="<FORM ACTION=\"http://www.google.com/test/do_login.php\" NAME=\"login_form\" ONSUBMIT=\"return CheckData()\" METHOD=\""+FormTag.POST+"\">\r\n"; ! public static final String EXPECTED_FORM_HTML_REST_OF_FORM= ! "<TR><TD ALIGN=\"center\"> </TD></TR>\r\n"+ ! "<TR><TD ALIGN=\"center\"><FONT FACE=\"Arial, verdana\" SIZE=\"2\"><B>User Name</B></FONT></TD></TR>\r\n"+ ! "<TR><TD ALIGN=\"center\"><INPUT NAME=\"name\" SIZE=\"20\" TYPE=\"text\"></TD></TR>\r\n"+ ! "<TR><TD ALIGN=\"center\"><FONT FACE=\"Arial, verdana\" SIZE=\"2\"><B>Password</B></FONT></TD></TR>\r\n"+ ! "<TR><TD ALIGN=\"center\"><INPUT NAME=\"passwd\" SIZE=\"20\" TYPE=\"password\"></TD></TR>\r\n"+ ! "<TR><TD ALIGN=\"center\"> </TD></TR>\r\n"+ ! "<TR><TD ALIGN=\"center\"><INPUT VALUE=\"Login\" NAME=\"submit\" TYPE=\"submit\"></TD></TR>\r\n"+ ! "<TR><TD ALIGN=\"center\"> </TD></TR>\r\n"+ ! "<TEXTAREA TABINDEX=\"5\" ROWS=\"15\" COLS=\"55\" CLASS=\"composef\" NAME=\"Description\" WRAP=\"virtual\">Contents of TextArea</TEXTAREA>\r\n"+ ! // "<TEXTAREA TABINDEX=\"5\" ROWS=\"15\" COLS=\"55\" CLASS=\"composef\" NAME=\"AnotherDescription\" WRAP=\"virtual\">\r\n"+ ! "<INPUT NAME=\"password\" SIZE=\"20\" TYPE=\"hidden\">\r\n"+ ! "<INPUT TYPE=\"submit\">\r\n"+ ! "</FORM>"; ! public static final String EXPECTED_FORM_HTML = EXPECTED_FORM_HTML_FORMLINE+EXPECTED_FORM_HTML_REST_OF_FORM; ! ! public FormScannerTest(String name) { ! super(name); ! } ! ! public void testEvaluate() { ! String line1="form method=\"post\" onsubmit=\"return implementsearch()\" name=frmsearch id=form"; ! String line2="FORM method=\"post\" onsubmit=\"return implementsearch()\" name=frmsearch id=form"; ! String line3="Form method=\"post\" onsubmit=\"return implementsearch()\" name=frmsearch id=form"; ! FormScanner formScanner = new FormScanner("",Parser.createParser("")); ! assertTrue("Line 1",formScanner.evaluate(line1,null)); ! assertTrue("Line 2",formScanner.evaluate(line2,null)); ! assertTrue("Line 3",formScanner.evaluate(line3,null)); ! } ! ! public void assertTypeNameSize(String description,String type,String name,String size,InputTag inputTag) { ! assertEquals(description+" type",type,inputTag.getAttribute("TYPE")); ! assertEquals(description+" name",name,inputTag.getAttribute("NAME")); ! assertEquals(description+" size",size,inputTag.getAttribute("SIZE")); ! } ! public void assertTypeNameValue(String description,String type,String name,String value,InputTag inputTag) { ! assertEquals(description+" type",type,inputTag.getAttribute("TYPE")); ! assertEquals(description+" name",name,inputTag.getAttribute("NAME")); ! assertEquals(description+" value",value,inputTag.getAttribute("VALUE")); ! } ! public void testScan() throws ParserException { ! createParser(FORM_HTML,"http://www.google.com/test/index.html"); ! parser.addScanner(new FormScanner("",parser)); ! parseAndAssertNodeCount(1); ! assertTrue("Node 0 should be Form Tag",node[0] instanceof FormTag); ! FormTag formTag = (FormTag)node[0]; ! assertStringEquals("Method",FormTag.POST,formTag.getFormMethod()); ! assertStringEquals("Location","http://www.google.com/test/do_login.php",formTag.getFormLocation()); ! assertStringEquals("Name","login_form",formTag.getFormName()); ! InputTag nameTag = formTag.getInputTag("name"); ! InputTag passwdTag = formTag.getInputTag("passwd"); ! InputTag submitTag = formTag.getInputTag("submit"); ! InputTag dummyTag = formTag.getInputTag("dummy"); ! assertNotNull("Input Name Tag should not be null",nameTag); ! assertNotNull("Input Password Tag should not be null",passwdTag); ! assertNotNull("Input Submit Tag should not be null",submitTag); ! assertNull("Input dummy tag should be null",dummyTag); ! ! assertTypeNameSize("Input Name Tag","text","name","20",nameTag); ! assertTypeNameSize("Input Password Tag","password","passwd","20",passwdTag); ! assertTypeNameValue("Input Submit Tag","submit","submit","Login",submitTag); ! ! TextareaTag textAreaTag = formTag.getTextAreaTag("Description"); ! assertNotNull("Text Area Tag should have been found",textAreaTag); ! assertEquals("Text Area Tag Contents","Contents of TextArea",textAreaTag.getValue()); ! assertNull("Should have been null",formTag.getTextAreaTag("junk")); ! ! assertStringEquals("toHTML",EXPECTED_FORM_HTML,formTag.toHtml()); ! } ! ! public void testScanFormWithNoEnding() throws Exception { ! createParser( ! "<TABLE>\n"+ ! "<FORM METHOD=\"post\" ACTION=\"do_login.php\" NAME=\"login_form\" onSubmit=\"return CheckData()\">\n"+ ! "<TR><TD ALIGN=\"center\"> </TD></TR>\n"+ ! "<TR><TD ALIGN=\"center\"><FONT face=\"Arial, verdana\" size=2><b>User Name</b></font></TD></TR>\n"+ ! "<TR><TD ALIGN=\"center\"><INPUT TYPE=\"text\" NAME=\"name\" SIZE=\"20\"></TD></TR>\n"+ ! "<TR><TD ALIGN=\"center\"><FONT face=\"Arial, verdana\" size=2><b>Password</b></font></TD></TR>\n"+ ! "<TR><TD ALIGN=\"center\"><INPUT TYPE=\"password\" NAME=\"passwd\" SIZE=\"20\"></TD></TR>\n"+ ! "<TR><TD ALIGN=\"center\"> </TD></TR>\n"+ ! "<TR><TD ALIGN=\"center\"><INPUT TYPE=\"submit\" NAME=\"submit\" VALUE=\"Login\"></TD></TR>\n"+ ! "<TR><TD ALIGN=\"center\"> </TD></TR>\n"+ ! "<INPUT TYPE=\"hidden\" NAME=\"password\" SIZE=\"20\">\n"+ ! "</TABLE>","http://www.google.com/test/index.html"); ! ! parser.addScanner(new FormScanner("",parser)); ! ! parseAndAssertNodeCount(2); ! } ! /** ! * Bug reported by Pavan Podila - forms with links are not being parsed ! * Sample html is from google ! */ ! public void testScanFormWithLinks() throws ParserException { ! createParser( ! "<form action=\"/search\" name=f><table cellspacing=0 cellpadding=0><tr><td width=75> "+ ! "</td><td align=center><input type=hidden name=hl value=en><input type=hidden name=ie "+ ! "value=\"UTF-8\"><input type=hidden name=oe value=\"UTF-8\"><input maxLength=256 size=55"+ ! " name=q value=\"\"><br><input type=submit value=\"Google Search\" name=btnG><input type="+ ! "submit value=\"I'm Feeling Lucky\" name=btnI></td><td valign=top nowrap><font size=-2>"+ ! " • <a href=/advanced_search?hl=en>Advanced Search</a><br> •"+ ! " <a href=/preferences?hl=en>Preferences</a><br> • <a href=/"+ ! "language_tools?hl=en>Language Tools</a></font></td></tr></table></form>" ! ); ! ! parser.addScanner(new FormScanner("",parser)); ! parser.addScanner(new LinkScanner()); ! parseAndAssertNodeCount(1); ! assertTrue("Should be a HTMLFormTag",node[0] instanceof FormTag); ! FormTag formTag = (FormTag)node[0]; ! LinkTag [] linkTag = new LinkTag[10]; ! int i = 0; ! for (SimpleNodeIterator e=formTag.children();e.hasMoreNodes();) { ! Node formNode = e.nextNode(); ! if (formNode instanceof LinkTag) { ! linkTag[i++] = (LinkTag)formNode; ! } ! } ! assertEquals("Link Tag Count",3,i); ! assertEquals("First Link Tag Text","Advanced Search",linkTag[0].getLinkText()); ! assertEquals("Second Link Tag Text","Preferences",linkTag[1].getLinkText()); ! assertEquals("Third Link Tag Text","Language Tools",linkTag[2].getLinkText()); ! } ! /** ! * Bug 652674 - forms with comments are not being parsed ! */ ! public void testScanFormWithComments() throws ParserException { ! createParser( ! "<form action=\"/search\" name=f><table cellspacing=0 cellpadding=0><tr><td width=75> "+ ! "</td><td align=center><input type=hidden name=hl value=en><input type=hidden name=ie "+ ! "value=\"UTF-8\"><input type=hidden name=oe value=\"UTF-8\"><!-- Hello World -->"+ ! "<input maxLength=256 size=55"+ ! " name=q value=\"\"><br><input type=submit value=\"Google Search\" name=btnG><input type="+ ! "submit value=\"I'm Feeling Lucky\" name=btnI></td><td valign=top nowrap><font size=-2>"+ ! " • <a href=/advanced_search?hl=en>Advanced Search</a><br> •"+ ! " <a href=/preferences?hl=en>Preferences</a><br> • <a href=/"+ ! "language_tools?hl=en>Language Tools</a></font></td></tr></table></form>" ! ); ! ! parser.addScanner(new FormScanner("",parser)); ! parseAndAssertNodeCount(1); ! assertTrue("Should be a HTMLFormTag",node[0] instanceof FormTag); ! FormTag formTag = (FormTag)node[0]; ! RemarkNode [] remarkNode = new RemarkNode[10]; ! int i = 0; ! for (SimpleNodeIterator e=formTag.children();e.hasMoreNodes();) { ! Node formNode = (Node)e.nextNode(); ! if (formNode instanceof RemarkNode) { ! remarkNode[i++] = (RemarkNode)formNode; ! } ! } ! assertEquals("Remark Node Count",1,i); ! assertEquals("First Remark Node"," Hello World ",remarkNode[0].toPlainTextString()); ! } ! /** ! * Bug 652674 - forms with comments are not being parsed ! */ ! public void testScanFormWithComments2() throws ParserException { ! createParser( ! "<FORM id=\"id\" name=\"name\" action=\"http://some.site/aPage.asp?id=97\" method=\"post\">\n"+ ! " <!--\n"+ ! " Just a Comment\n"+ ! " -->\n"+ ! "</FORM>"); ! parser.registerScanners(); ! parseAndAssertNodeCount(1); ! assertTrue("Should be a HTMLFormTag",node[0] instanceof FormTag); ! FormTag formTag = (FormTag)node[0]; ! RemarkNode [] remarkNode = new RemarkNode[10]; ! int i = 0; ! for (SimpleNodeIterator e=formTag.children();e.hasMoreNodes();) { ! Node formNode = (Node)e.nextNode(); ! if (formNode instanceof RemarkNode) { ! remarkNode[i++] = (RemarkNode)formNode; ! } ! } ! assertEquals("Remark Node Count",1,i); ! } ! ! /** ! * Bug 656870 - a form tag with a previously open link causes infinite loop ! * on encounter ! */ ! public void testScanFormWithPreviousOpenLink() throws ParserException { ! createParser( ! "<A HREF=\"http://www.oygevalt.org/\">Home</A>\n"+ ! "<P>\n"+ ! "And now, the good stuff:\n"+ ! "<P>\n"+ ! "<A HREF=\"http://www.yahoo.com\">Yahoo!\n"+ ! "<FORM ACTION=\".\" METHOD=\"GET\">\n"+ ! "<INPUT TYPE=\"TEXT\">\n"+ ! "<BR>\n"+ ! "<A HREF=\"http://www.helpme.com\">Help</A> " + ! "<INPUT TYPE=\"checkbox\">\n"+ ! "<P>\n"+ ! "<INPUT TYPE=\"SUBMIT\">\n"+ ! "</FORM>" ! ); ! parser.addScanner(new FormScanner("",parser)); ! parser.addScanner(new LinkScanner()); ! parseAndAssertNodeCount(6); ! assertTrue("Fifth Node is a link",node[4] instanceof LinkTag); ! LinkTag linkTag = (LinkTag)node[4]; ! assertEquals("Link Text","Yahoo!\r\n",linkTag.getLinkText()); ! assertEquals("Link URL","http://www.yahoo.com",linkTag.getLink()); ! assertType("Sixth Node",FormTag.class,node[5]); ! } ! /** ! * Bug 713907 reported by Dhaval Udani, erroneous ! * parsing of form tag (even when form scanner is not ! * registered) ! */ ! public void testFormScanningShouldNotHappen() throws Exception { ! String testHTML = ! "<HTML><HEAD><TITLE>Test Form Tag</TITLE></HEAD>" + ! "<BODY><FORM name=\"form0\"><INPUT type=\"text\" name=\"text0\"></FORM>" + ! "</BODY></HTML>"; ! createParser( ! testHTML ! ); ! parser.registerScanners(); ! parser.removeScanner(new FormScanner("",parser)); ! Node [] nodes = ! parser.extractAllNodesThatAre( ! FormTag.class ! ); ! assertEquals( ! "shouldnt have found form tag", ! 0, ! nodes.length ! ); ! } /** *************** *** 301,316 **** * Under Windows this throws a stack overflow exception. */ ! public void testUnclosedOptions () throws ParserException { ! String url = "http://htmlparser.sourceforge.net/test/overflowpage.html"; int i; Node[] nodes; ! ! parser = new Parser(url); parser.registerScanners (); i = 0; nodes = new AbstractNode[50]; ! for (NodeIterator e = parser.elements(); e.hasMoreNodes();) ! nodes[i++] = e.nextNode(); assertEquals ("Expected nodes", 39, i); } --- 301,316 ---- * Under Windows this throws a stack overflow exception. */ ! public void testUnclosedOptions () throws ParserException { ! String url = "http://htmlparser.sourceforge.net/test/overflowpage.html"; int i; Node[] nodes; ! ! parser = new Parser(url); parser.registerScanners (); i = 0; nodes = new AbstractNode[50]; ! for (NodeIterator e = parser.elements(); e.hasMoreNodes();) ! nodes[i++] = e.nextNode(); assertEquals ("Expected nodes", 39, i); } Index: FrameScannerTest.java =================================================================== RCS file: /cvsroot/htmlparser/htmlparser/src/org/htmlparser/tests/scannersTests/FrameScannerTest.java,v retrieving revision 1.23 retrieving revision 1.24 diff -C2 -d -r1.23 -r1.24 *** FrameScannerTest.java 24 Aug 2003 21:59:44 -0000 1.23 --- FrameScannerTest.java 3 Sep 2003 23:36:21 -0000 1.24 *************** *** 36,65 **** public class FrameScannerTest extends ParserTestCase { ! public FrameScannerTest(String name) { ! super(name); ! } ! ! public void testScan() throws ParserException { ! createParser( ! "<frameset rows=\"115,*\" frameborder=\"NO\" border=\"0\" framespacing=\"0\">\n"+ ! "<frame name=\"topFrame\" noresize src=\"demo_bc_top.html\" scrolling=\"NO\" frameborder=\"NO\">\n"+ ! "<frame name=\"mainFrame\" src=\"http://www.kizna.com/web_e/\" scrolling=\"AUTO\">\n"+ ! "</frameset>","http://www.google.com/test/index.html"); ! ! parser.addScanner(new FrameScanner("")); ! ! parseAndAssertNodeCount(4); ! ! assertTrue("Node 1 should be Frame Tag",node[1] instanceof FrameTag); ! assertTrue("Node 2 should be Frame Tag",node[2] instanceof FrameTag); ! FrameTag frameTag1 = (FrameTag)node[1]; ! FrameTag frameTag2 = (FrameTag)node[2]; ! assertEquals("Frame 1 Locn","http://www.google.com/test/demo_bc_top.html",frameTag1.getFrameLocation()); ! assertEquals("Frame 1 Name","topFrame",frameTag1.getFrameName()); ! assertEquals("Frame 2 Locn","http://www.kizna.com/web_e/",frameTag2.getFrameLocation()); ! assertEquals("Frame 2 Name","mainFrame",frameTag2.getFrameName()); ! assertEquals("Frame 1 Scrolling","NO",frameTag1.getAttribute("scrolling")); ! assertEquals("Frame 1 Border","NO",frameTag1.getAttribute("frameborder")); ! } } --- 36,65 ---- public class FrameScannerTest extends ParserTestCase { ! public FrameScannerTest(String name) { ! super(name); ! } ! ! public void testScan() throws ParserException { ! createParser( ! "<frameset rows=\"115,*\" frameborder=\"NO\" border=\"0\" framespacing=\"0\">\n"+ ! "<frame name=\"topFrame\" noresize src=\"demo_bc_top.html\" scrolling=\"NO\" frameborder=\"NO\">\n"+ ! "<frame name=\"mainFrame\" src=\"http://www.kizna.com/web_e/\" scrolling=\"AUTO\">\n"+ ! "</frameset>","http://www.google.com/test/index.html"); ! ! parser.addScanner(new FrameScanner("")); ! ! parseAndAssertNodeCount(4); ! ! assertTrue("Node 1 should be Frame Tag",node[1] instanceof FrameTag); ! assertTrue("Node 2 should be Frame Tag",node[2] instanceof FrameTag); ! FrameTag frameTag1 = (FrameTag)node[1]; ! FrameTag frameTag2 = (FrameTag)node[2]; ! assertEquals("Frame 1 Locn","http://www.google.com/test/demo_bc_top.html",frameTag1.getFrameLocation()); ! assertEquals("Frame 1 Name","topFrame",frameTag1.getFrameName()); ! assertEquals("Frame 2 Locn","http://www.kizna.com/web_e/",frameTag2.getFrameLocation()); ! assertEquals("Frame 2 Name","mainFrame",frameTag2.getFrameName()); ! assertEquals("Frame 1 Scrolling","NO",frameTag1.getAttribute("scrolling")); ! assertEquals("Frame 1 Border","NO",frameTag1.... [truncated message content] |