[Htmlparser-cvs] htmlparser/src/org/htmlparser/tests/scannersTests CompositeTagScannerTest.java,1.39
Brought to you by:
derrickoswald
Update of /cvsroot/htmlparser/htmlparser/src/org/htmlparser/tests/scannersTests In directory sc8-pr-cvs1:/tmp/cvs-serv30684/tests/scannersTests Modified Files: CompositeTagScannerTest.java ImageScannerTest.java LinkScannerTest.java MetaTagScannerTest.java TagScannerTest.java Log Message: Lexer Integration Removed old Parser classes. Removed EndTag, this class was replaced by a call to the new isEndTag() method on the Tag class The StringNode, RemarkNode and tags.Tag class now derive from their lexeme counterparts in lexer.nodes instead of the other way around. The beginnings of a node factory interface are included. This was added so the lexer could return 'visitable' nodes to the parser. The parser acts as it's own node factory, as does the Lexer. The node count for parsing goes up in most cases because every whitespace (i.e. newline) now counts as a StringNode. This has whacked out a lot of the tests that were expecting fewer nodes or a certain type of node at a particular index. Attributes now maintain their order and case. The count of attributes also went up because whitespace is maintained within tags too. The storage in a Vector means the element 0 Attribute is actually the name of the tag, rather than having the $TAGNAME entry in a HashTable. Index: CompositeTagScannerTest.java =================================================================== RCS file: /cvsroot/htmlparser/htmlparser/src/org/htmlparser/tests/scannersTests/CompositeTagScannerTest.java,v retrieving revision 1.39 retrieving revision 1.40 diff -C2 -d -r1.39 -r1.40 *** CompositeTagScannerTest.java 22 Sep 2003 02:40:09 -0000 1.39 --- CompositeTagScannerTest.java 28 Sep 2003 15:33:59 -0000 1.40 *************** *** 33,37 **** import org.htmlparser.scanners.CompositeTagScanner; import org.htmlparser.tags.CompositeTag; - import org.htmlparser.tags.EndTag; import org.htmlparser.tags.Tag; import org.htmlparser.tags.data.CompositeTagData; --- 33,36 ---- *************** *** 449,453 **** customTag.toHtml() ); ! EndTag endTag = (EndTag)node[2]; assertStringEquals( "first custom tag html", --- 448,452 ---- customTag.toHtml() ); ! Tag endTag = (Tag)node[2]; assertStringEquals( "first custom tag html", *************** *** 496,500 **** assertSame("parent and custom tag should be the same",customTag,parent); ! EndTag endTag = (EndTag)node[2]; assertStringEquals( "first custom tag html", --- 495,499 ---- assertSame("parent and custom tag should be the same",customTag,parent); ! Tag endTag = (Tag)node[2]; assertStringEquals( "first custom tag html", Index: ImageScannerTest.java =================================================================== RCS file: /cvsroot/htmlparser/htmlparser/src/org/htmlparser/tests/scannersTests/ImageScannerTest.java,v retrieving revision 1.31 retrieving revision 1.32 diff -C2 -d -r1.31 -r1.32 *** ImageScannerTest.java 22 Sep 2003 02:40:10 -0000 1.31 --- ImageScannerTest.java 28 Sep 2003 15:33:59 -0000 1.32 *************** *** 73,80 **** public void testExtractImageLocnInvertedCommasBug() throws ParserException { ! Tag tag = new Tag(new TagData(0,0,"img width=638 height=53 border=0 usemap=\"#m\" src=http://us.a1.yimg.com/us.yimg.com/i/ww/m5v5.gif alt=Yahoo","")); ! String url = "c:\\cvs\\html\\binaries\\yahoo.htm"; ! ImageScanner scanner = new ImageScanner("-i",new LinkProcessor()); ! assertEquals("Extracted Image Locn","http://us.a1.yimg.com/us.yimg.com/i/ww/m5v5.gif",scanner.extractImageLocn(tag,url)); } --- 73,81 ---- public void testExtractImageLocnInvertedCommasBug() throws ParserException { ! fail ("not implemented"); ! // Tag tag = new Tag(new TagData(0,0,"img width=638 height=53 border=0 usemap=\"#m\" src=http://us.a1.yimg.com/us.yimg.com/i/ww/m5v5.gif alt=Yahoo","")); ! // String url = "c:\\cvs\\html\\binaries\\yahoo.htm"; ! // ImageScanner scanner = new ImageScanner("-i",new LinkProcessor()); ! // assertEquals("Extracted Image Locn","http://us.a1.yimg.com/us.yimg.com/i/ww/m5v5.gif",scanner.extractImageLocn(tag,url)); } Index: LinkScannerTest.java =================================================================== RCS file: /cvsroot/htmlparser/htmlparser/src/org/htmlparser/tests/scannersTests/LinkScannerTest.java,v retrieving revision 1.37 retrieving revision 1.38 diff -C2 -d -r1.37 -r1.38 *** LinkScannerTest.java 22 Sep 2003 02:40:11 -0000 1.37 --- LinkScannerTest.java 28 Sep 2003 15:33:59 -0000 1.38 *************** *** 35,39 **** import org.htmlparser.StringNode; import org.htmlparser.scanners.LinkScanner; - import org.htmlparser.tags.EndTag; import org.htmlparser.tags.ImageTag; import org.htmlparser.tags.LinkTag; --- 35,38 ---- *************** *** 158,166 **** public void testExtractLinkInvertedCommasBug() throws ParserException { ! String tagContents = "a href=r/anorth/top.html"; ! Tag tag = new Tag(new TagData(0,0,tagContents,"")); ! String url = "c:\\cvs\\html\\binaries\\yahoo.htm"; ! LinkScanner scanner = new LinkScanner("-l"); ! assertEquals("Extracted Link","r/anorth/top.html",scanner.extractLink(tag,url)); } --- 157,166 ---- public void testExtractLinkInvertedCommasBug() throws ParserException { ! fail ("not implemented"); ! // String tagContents = "a href=r/anorth/top.html"; ! // Tag tag = new Tag(new TagData(0,0,tagContents,"")); ! // String url = "c:\\cvs\\html\\binaries\\yahoo.htm"; ! // LinkScanner scanner = new LinkScanner("-l"); ! // assertEquals("Extracted Link","r/anorth/top.html",scanner.extractLink(tag,url)); } *************** *** 281,297 **** public void testReplaceFaultyTagWithEndTag() throws ParserException { ! String currentLine = "<p>Site Comments?<br><a href=\"mailto:sa...@ne...?subject=Site Comments\">Mail Us<a></p>"; ! Tag tag = new Tag(new TagData(85,87,"a",currentLine)); ! LinkScanner linkScanner = new LinkScanner(); ! String newLine = linkScanner.replaceFaultyTagWithEndTag(tag,currentLine); ! assertEquals("Expected replacement","<p>Site Comments?<br><a href=\"mailto:sa...@ne...?subject=Site Comments\">Mail Us</A></p>",newLine); } public void testInsertEndTagBeforeTag() throws ParserException { ! String currentLine = "<a href=s/7509><b>Yahoo! Movies</b></a>"; ! Tag tag = new Tag(new TagData(0,14,"a href=s/7509",currentLine)); ! LinkScanner linkScanner = new LinkScanner(); ! String newLine = linkScanner.insertEndTagBeforeNode(tag,currentLine); ! assertEquals("Expected insertion","</A><a href=s/7509><b>Yahoo! Movies</b></a>",newLine); } --- 281,299 ---- public void testReplaceFaultyTagWithEndTag() throws ParserException { ! fail ("not implemented"); ! // String currentLine = "<p>Site Comments?<br><a href=\"mailto:sa...@ne...?subject=Site Comments\">Mail Us<a></p>"; ! // Tag tag = new Tag(new TagData(85,87,"a",currentLine)); ! // LinkScanner linkScanner = new LinkScanner(); ! // String newLine = linkScanner.replaceFaultyTagWithEndTag(tag,currentLine); ! // assertEquals("Expected replacement","<p>Site Comments?<br><a href=\"mailto:sa...@ne...?subject=Site Comments\">Mail Us</A></p>",newLine); } public void testInsertEndTagBeforeTag() throws ParserException { ! fail ("not implemented"); ! // String currentLine = "<a href=s/7509><b>Yahoo! Movies</b></a>"; ! // Tag tag = new Tag(new TagData(0,14,"a href=s/7509",currentLine)); ! // LinkScanner linkScanner = new LinkScanner(); ! // String newLine = linkScanner.insertEndTagBeforeNode(tag,currentLine); ! // assertEquals("Expected insertion","</A><a href=s/7509><b>Yahoo! Movies</b></a>",newLine); } *************** *** 313,319 **** StringNode stringNode = (StringNode)node[1]; assertEquals("StringNode Contents","Revision",stringNode.getText()); ! assertTrue("Node 2 should be a string node",node[2] instanceof EndTag); ! EndTag endTag = (EndTag)node[2]; ! assertEquals("End Tag Contents","a",endTag.getText()); } --- 315,322 ---- StringNode stringNode = (StringNode)node[1]; assertEquals("StringNode Contents","Revision",stringNode.getText()); ! assertTrue("Node 2 should be an end tag",node[2] instanceof Tag); ! tag = (Tag)node[2]; ! assertTrue("Node 2 should be an end tag",tag.isEndTag ()); ! assertEquals("End Tag Contents","a",tag.getText()); } *************** *** 374,383 **** Tag tag2 = (Tag)containedNodes[2]; assertEquals("Tag Contents","b",tag2.getText()); ! assertTrue("Fourth contained node should be HTMLEndTag",containedNodes[3] instanceof EndTag); ! EndTag endTag1 = (EndTag)containedNodes[3]; ! assertEquals("Fourth Tag contents","b",endTag1.getText()); ! assertTrue("Fifth contained node should be HTMLEndTag",containedNodes[4] instanceof EndTag); ! EndTag endTag2 = (EndTag)containedNodes[4]; ! assertEquals("Fifth Tag contents","font",endTag2.getText()); } --- 377,388 ---- Tag tag2 = (Tag)containedNodes[2]; assertEquals("Tag Contents","b",tag2.getText()); ! assertTrue("Fourth contained node should be a Tag",containedNodes[3] instanceof Tag); ! Tag tag = (Tag)containedNodes[3]; ! assertTrue("Fourth contained node should be an EndTag",tag.isEndTag ()); ! assertEquals("Fourth Tag contents","b",tag.getText()); ! assertTrue("Fifth contained node should be a Tag",containedNodes[4] instanceof Tag); ! tag = (Tag)containedNodes[4]; ! assertTrue("Fifth contained node should be an EndTag",tag.isEndTag ()); ! assertEquals("Fifth Tag contents","font",tag.getText()); } Index: MetaTagScannerTest.java =================================================================== RCS file: /cvsroot/htmlparser/htmlparser/src/org/htmlparser/tests/scannersTests/MetaTagScannerTest.java,v retrieving revision 1.28 retrieving revision 1.29 diff -C2 -d -r1.28 -r1.29 *** MetaTagScannerTest.java 22 Sep 2003 02:40:11 -0000 1.28 --- MetaTagScannerTest.java 28 Sep 2003 15:33:59 -0000 1.29 *************** *** 30,35 **** import org.htmlparser.scanners.MetaTagScanner; - import org.htmlparser.tags.EndTag; import org.htmlparser.tags.MetaTag; import org.htmlparser.tests.ParserTestCase; import org.htmlparser.util.ParserException; --- 30,35 ---- import org.htmlparser.scanners.MetaTagScanner; import org.htmlparser.tags.MetaTag; + import org.htmlparser.tags.Tag; import org.htmlparser.tests.ParserTestCase; import org.htmlparser.util.ParserException; *************** *** 56,60 **** parseAndAssertNodeCount(11); ! assertTrue("Node 5 should be End Tag",node[5] instanceof EndTag); assertTrue("Node 6 should be META Tag",node[6] instanceof MetaTag); MetaTag metaTag; --- 56,60 ---- parseAndAssertNodeCount(11); ! assertTrue("Node 5 should be End Tag",node[5] instanceof Tag && ((Tag)node[5]).isEndTag ()); assertTrue("Node 6 should be META Tag",node[6] instanceof MetaTag); MetaTag metaTag; Index: TagScannerTest.java =================================================================== RCS file: /cvsroot/htmlparser/htmlparser/src/org/htmlparser/tests/scannersTests/TagScannerTest.java,v retrieving revision 1.29 retrieving revision 1.30 diff -C2 -d -r1.29 -r1.30 *** TagScannerTest.java 22 Sep 2003 02:40:11 -0000 1.29 --- TagScannerTest.java 28 Sep 2003 15:33:59 -0000 1.30 *************** *** 30,34 **** package org.htmlparser.tests.scannersTests; import org.htmlparser.Node; - import org.htmlparser.NodeReader; import org.htmlparser.Parser; import org.htmlparser.scanners.TagScanner; --- 30,33 ---- *************** *** 54,96 **** public void testExtractXMLData() throws ParserException { ! createParser( ! "<MESSAGE>\n"+ ! "Abhi\n"+ ! "Sri\n"+ ! "</MESSAGE>"); ! Parser.setLineSeparator("\r\n"); ! NodeIterator e = parser.elements(); ! ! Node node = e.nextNode(); ! try { ! String result = TagScanner.extractXMLData(node,"MESSAGE",parser.getReader()); ! assertEquals("Result","Abhi\r\nSri\r\n",result); ! } ! catch (ParserException ex) { ! assertTrue(e.toString(),false); ! } } public void testExtractXMLDataSingle() throws ParserException { ! createParser( ! "<MESSAGE>Test</MESSAGE>"); ! NodeIterator e = parser.elements(); ! ! Node node = (Node)e.nextNode(); ! try { ! String result = TagScanner.extractXMLData(node,"MESSAGE",parser.getReader()); ! assertEquals("Result","Test",result); ! } ! catch (ParserException ex) { ! assertTrue(e.toString(),false); ! } } public void testTagExtraction() { ! String testHTML = "<AREA \n coords=0,0,52,52 href=\"http://www.yahoo.com/r/c1\" shape=RECT>"; ! createParser(testHTML); ! Tag tag = Tag.find(parser.getReader(),testHTML,0); ! assertNotNull(tag); } --- 53,98 ---- public void testExtractXMLData() throws ParserException { ! fail ("not implemented"); ! // createParser( ! // "<MESSAGE>\n"+ ! // "Abhi\n"+ ! // "Sri\n"+ ! // "</MESSAGE>"); ! // Parser.setLineSeparator("\r\n"); ! // NodeIterator e = parser.elements(); ! // ! // Node node = e.nextNode(); ! // try { ! // String result = TagScanner.extractXMLData(node,"MESSAGE",parser.getReader()); ! // assertEquals("Result","Abhi\r\nSri\r\n",result); ! // } ! // catch (ParserException ex) { ! // assertTrue(e.toString(),false); ! // } } public void testExtractXMLDataSingle() throws ParserException { ! fail ("not implemented"); ! // createParser( ! // "<MESSAGE>Test</MESSAGE>"); ! // NodeIterator e = parser.elements(); ! // ! // Node node = (Node)e.nextNode(); ! // try { ! // String result = TagScanner.extractXMLData(node,"MESSAGE",parser.getReader()); ! // assertEquals("Result","Test",result); ! // } ! // catch (ParserException ex) { ! // assertTrue(e.toString(),false); ! // } } public void testTagExtraction() { ! fail ("not implemented"); ! // String testHTML = "<AREA \n coords=0,0,52,52 href=\"http://www.yahoo.com/r/c1\" shape=RECT>"; ! // createParser(testHTML); ! // Tag tag = Tag.find(parser.getReader(),testHTML,0); ! // assertNotNull(tag); } *************** *** 115,129 **** public void testRemoveChars2() { ! String test = "hello\r\nworld\r\n\tqsdsds"; ! TagScanner scanner = new TagScanner() { ! public Tag scan(Tag tag,String url,NodeReader reader,String currLine) { return null;} ! public boolean evaluate(String s,TagScanner previousOpenScanner) { return false; } ! public String [] getID() { ! return null; ! } ! ! }; ! String result = scanner.removeChars(test,"\r\n"); ! assertEquals("Removing Chars","helloworld\tqsdsds",result); } --- 117,132 ---- public void testRemoveChars2() { ! fail ("not implemented"); ! // String test = "hello\r\nworld\r\n\tqsdsds"; ! // TagScanner scanner = new TagScanner() { ! // public Tag scan(Tag tag,String url,NodeReader reader,String currLine) { return null;} ! // public boolean evaluate(String s,TagScanner previousOpenScanner) { return false; } ! // public String [] getID() { ! // return null; ! // } ! // ! // }; ! // String result = scanner.removeChars(test,"\r\n"); ! // assertEquals("Removing Chars","helloworld\tqsdsds",result); } |