htmlparser-cvs Mailing List for HTML Parser (Page 61)
Brought to you by:
derrickoswald
You can subscribe to this list here.
2003 |
Jan
|
Feb
|
Mar
|
Apr
|
May
(141) |
Jun
(108) |
Jul
(66) |
Aug
(127) |
Sep
(155) |
Oct
(149) |
Nov
(72) |
Dec
(72) |
---|---|---|---|---|---|---|---|---|---|---|---|---|
2004 |
Jan
(100) |
Feb
(36) |
Mar
(21) |
Apr
(3) |
May
(87) |
Jun
(28) |
Jul
(84) |
Aug
(5) |
Sep
(14) |
Oct
|
Nov
|
Dec
|
2005 |
Jan
(1) |
Feb
(39) |
Mar
(26) |
Apr
(38) |
May
(14) |
Jun
(10) |
Jul
|
Aug
|
Sep
(13) |
Oct
(8) |
Nov
(10) |
Dec
|
2006 |
Jan
|
Feb
(1) |
Mar
(17) |
Apr
(20) |
May
(28) |
Jun
(24) |
Jul
|
Aug
|
Sep
|
Oct
|
Nov
|
Dec
|
2015 |
Jan
|
Feb
|
Mar
(1) |
Apr
|
May
|
Jun
|
Jul
|
Aug
|
Sep
|
Oct
|
Nov
|
Dec
|
From: <der...@us...> - 2003-05-11 20:42:33
|
Update of /cvsroot/htmlparser/htmlparser/src/org/htmlparser/tests/parserHelperTests In directory sc8-pr-cvs1:/tmp/cvs-serv22446/org/htmlparser/tests/parserHelperTests Modified Files: AttributeParserTest.java TagParserTest.java Log Message: Moved pending bugs to the 'feature request' tracker, and made the failing unit tests execution conditional on the Parser version being >= 1.4. Index: AttributeParserTest.java =================================================================== RCS file: /cvsroot/htmlparser/htmlparser/src/org/htmlparser/tests/parserHelperTests/AttributeParserTest.java,v retrieving revision 1.24 retrieving revision 1.25 diff -C2 -d -r1.24 -r1.25 *** AttributeParserTest.java 5 May 2003 03:12:24 -0000 1.24 --- AttributeParserTest.java 11 May 2003 20:42:30 -0000 1.25 *************** *** 31,34 **** --- 31,35 ---- import java.util.Hashtable; + import org.htmlparser.Parser; import org.htmlparser.parserHelper.AttributeParser; import org.htmlparser.tags.Tag; *************** *** 131,150 **** } - /** - * attributes are not parsed correctly, when they contain - * scriptlets. - * Submitted by Cory Seefurth - */ - public void testJspWithinAttributes() { - getParameterTableFor( - "a href=\"<%=Application(\"sURL\")%>/literature/index.htm" - ); - assertStringEquals( - "href", - "<%=Application(\"sURL\")%>/literature/index.htm", - (String)table.get("HREF") - ); - } - public void testQuestionMarksInAttributes() { getParameterTableFor( --- 132,135 ---- *************** *** 178,190 **** /** ! * Case of script in attributes. */ ! public void testScriptedTag () { ! getParameterTableFor("body onLoad=defaultStatus=''"); ! String name = (String)table.get(Tag.TAGNAME); ! assertNotNull ("No Tag.TAGNAME", name); ! assertStringEquals("tag name parsed incorrectly", "BODY", name); ! String value = (String)table.get ("ONLOAD"); ! assertStringEquals ("parameter parsed incorrectly", "defaultStatus=''", value); } } --- 163,208 ---- /** ! * Test attributes when they contain scriptlets. ! * Submitted by Cory Seefurth ! * See also feature request #725376 Handle script in attributes. ! * Only perform this test if it's version 1.4 or higher. */ ! public void testJspWithinAttributes() ! { ! Parser parser; ! ! parser = new Parser (); ! if (1.4 <= Double.parseDouble (parser.getVersion ().substring (0, parser.getVersion ().indexOf (' ')))) ! { ! getParameterTableFor( ! "a href=\"<%=Application(\"sURL\")%>/literature/index.htm" ! ); ! assertStringEquals( ! "href", ! "<%=Application(\"sURL\")%>/literature/index.htm", ! (String)table.get("HREF") ! ); ! } ! } ! ! /** ! * Test Script in attributes. ! * See feature request #725376 Handle script in attributes. ! * Only perform this test if it's version 1.4 or higher. ! */ ! public void testScriptedTag () ! { ! Parser parser; ! ! parser = new Parser (); ! if (1.4 <= Double.parseDouble (parser.getVersion ().substring (0, parser.getVersion ().indexOf (' ')))) ! { ! getParameterTableFor("body onLoad=defaultStatus=''"); ! String name = (String)table.get(Tag.TAGNAME); ! assertNotNull ("No Tag.TAGNAME", name); ! assertStringEquals("tag name parsed incorrectly", "BODY", name); ! String value = (String)table.get ("ONLOAD"); ! assertStringEquals ("parameter parsed incorrectly", "defaultStatus=''", value); ! } } } Index: TagParserTest.java =================================================================== RCS file: /cvsroot/htmlparser/htmlparser/src/org/htmlparser/tests/parserHelperTests/TagParserTest.java,v retrieving revision 1.24 retrieving revision 1.25 diff -C2 -d -r1.24 -r1.25 *** TagParserTest.java 5 May 2003 03:12:24 -0000 1.24 --- TagParserTest.java 11 May 2003 20:42:30 -0000 1.25 *************** *** 199,253 **** } ! /* ! <meta name="foo" content="<foo> ! bar"> ! */ public void testMultiLine5 () throws ParserException { createParser("<meta name=\"foo\" content=\"<foo>\nbar\">"); ! parseAndAssertNodeCount (1); ! assertType ("should be Tag", Tag.class, node[0]); ! Tag tag = (Tag)node[0]; ! String html = tag.toHtml (); ! assertStringEquals ("html","<META CONTENT=\"<foo>\r\nbar\" NAME=\"foo\">", html); ! String attribute1 = tag.getAttribute ("NAME"); ! assertStringEquals ("attribute 1","foo", attribute1); ! String attribute2 = tag.getAttribute ("CONTENT"); ! assertStringEquals ("attribute 2","<foo>\r\nbar", attribute2); } ! /** ! * <meta name="foo" content="foo> ! * bar"> ! */ ! public void testMultiLine6 () throws ParserException { createParser("<meta name=\"foo\" content=\"foo>\nbar\">"); ! parseAndAssertNodeCount (1); ! assertType ("should be Tag", Tag.class, node[0]); ! Tag tag = (Tag)node[0]; ! String html = tag.toHtml (); ! assertStringEquals ("html","<META CONTENT=\"foo>\r\nbar\" NAME=\"foo\">", html); ! String attribute1 = tag.getAttribute ("NAME"); ! assertStringEquals ("attribute 1","foo", attribute1); ! String attribute2 = tag.getAttribute ("CONTENT"); ! assertStringEquals ("attribute 2","foo>\r\nbar", attribute2); } ! /** ! * <meta name="foo" content="<foo ! * bar"> ! */ public void testMultiLine7 () throws ParserException { createParser("<meta name=\"foo\" content=\"<foo\nbar\""); ! parseAndAssertNodeCount (1); ! assertType ("should be Tag", Tag.class, node[0]); ! Tag tag = (Tag)node[0]; ! String html = tag.toHtml (); ! assertStringEquals ("html","<META CONTENT=\"<foo\r\nbar\" NAME=\"foo\">", html); ! String attribute1 = tag.getAttribute ("NAME"); ! assertStringEquals ("attribute 1","foo", attribute1); ! String attribute2 = tag.getAttribute ("CONTENT"); ! assertStringEquals ("attribute 2","<foo\r\nbar", attribute2); } --- 199,272 ---- } ! /** ! * Test multiline tag like attribute. ! * See feature request #725749 Handle < and > in multi-line attributes. ! * Only perform this test if it's version 1.4 or higher. ! */ public void testMultiLine5 () throws ParserException { + // <meta name="foo" content="<foo> + // bar"> createParser("<meta name=\"foo\" content=\"<foo>\nbar\">"); ! if (1.4 <= Double.parseDouble (parser.getVersion ().substring (0, parser.getVersion ().indexOf (' ')))) ! { ! parseAndAssertNodeCount (1); ! assertType ("should be Tag", Tag.class, node[0]); ! Tag tag = (Tag)node[0]; ! String html = tag.toHtml (); ! assertStringEquals ("html","<META CONTENT=\"<foo>\r\nbar\" NAME=\"foo\">", html); ! String attribute1 = tag.getAttribute ("NAME"); ! assertStringEquals ("attribute 1","foo", attribute1); ! String attribute2 = tag.getAttribute ("CONTENT"); ! assertStringEquals ("attribute 2","<foo>\r\nbar", attribute2); ! } } ! /** ! * Test multiline broken tag like attribute. ! * See feature request #725749 Handle < and > in multi-line attributes. ! * Only perform this test if it's version 1.4 or higher. ! */ ! public void testMultiLine6 () throws ParserException ! { ! // <meta name="foo" content="foo> ! // bar"> createParser("<meta name=\"foo\" content=\"foo>\nbar\">"); ! if (1.4 <= Double.parseDouble (parser.getVersion ().substring (0, parser.getVersion ().indexOf (' ')))) ! { ! parseAndAssertNodeCount (1); ! assertType ("should be Tag", Tag.class, node[0]); ! Tag tag = (Tag)node[0]; ! String html = tag.toHtml (); ! assertStringEquals ("html","<META CONTENT=\"foo>\r\nbar\" NAME=\"foo\">", html); ! String attribute1 = tag.getAttribute ("NAME"); ! assertStringEquals ("attribute 1","foo", attribute1); ! String attribute2 = tag.getAttribute ("CONTENT"); ! assertStringEquals ("attribute 2","foo>\r\nbar", attribute2); ! } } ! /** ! * Test multiline split tag like attribute. ! * See feature request #725749 Handle < and > in multi-line attributes. ! * Only perform this test if it's version 1.4 or higher. ! */ public void testMultiLine7 () throws ParserException { + // <meta name="foo" content="<foo + // bar"> createParser("<meta name=\"foo\" content=\"<foo\nbar\""); ! if (1.4 <= Double.parseDouble (parser.getVersion ().substring (0, parser.getVersion ().indexOf (' ')))) ! { ! parseAndAssertNodeCount (1); ! assertType ("should be Tag", Tag.class, node[0]); ! Tag tag = (Tag)node[0]; ! String html = tag.toHtml (); ! assertStringEquals ("html","<META CONTENT=\"<foo\r\nbar\" NAME=\"foo\">", html); ! String attribute1 = tag.getAttribute ("NAME"); ! assertStringEquals ("attribute 1","foo", attribute1); ! String attribute2 = tag.getAttribute ("CONTENT"); ! assertStringEquals ("attribute 2","<foo\r\nbar", attribute2); ! } } *************** *** 256,321 **** */ ! public void testThreadSafety() throws Exception { ! ! String testHtml1 = "<a HREF=\"/cgi-bin/view_search?query_text=postdate>20020701&txt_clr=White&bg_clr=Red&url=http://localhost/Testing/Report1.html\">20020702 Report 1</A>" + ! TEST_HTML; ! ! String testHtml2 = "<a href=\"http://normallink.com/sometext.html\">" + ! TEST_HTML; ! ParsingThread parsingThread [] = ! new ParsingThread[100]; ! results = new HashMap(); ! testProgress = 0; ! for (int i=0;i<parsingThread.length;i++) { ! if (i<parsingThread.length/2) ! parsingThread[i] = ! new ParsingThread(i,testHtml1,parsingThread.length); ! else ! parsingThread[i] = ! new ParsingThread(i,testHtml2,parsingThread.length); ! ! Thread thread = new Thread(parsingThread[i]); ! thread.start(); ! } ! ! int completionValue = computeCompletionValue(parsingThread.length); ! ! do { ! try { ! Thread.sleep(50); ! } ! catch (InterruptedException e) { ! } ! } ! while (testProgress!=completionValue); ! for (int i=0;i<parsingThread.length;i++) { ! if (!parsingThread[i].passed()) { ! assertNotNull("Thread "+i+" link 1",parsingThread[i].getLink1()); ! assertNotNull("Thread "+i+" link 2",parsingThread[i].getLink2()); ! if (i<parsingThread.length/2) { ! assertStringEquals( ! "Thread "+i+", link 1:", ! "/cgi-bin/view_search?query_text=postdate>20020701&txt_clr=White&bg_clr=Red&url=http://localhost/Testing/Report1.html", ! parsingThread[i].getLink1().getLink() ! ); ! assertStringEquals( ! "Thread "+i+", link 2:", ! "http://normallink.com/sometext.html", ! parsingThread[i].getLink2().getLink() ! ); ! } else { ! assertStringEquals( ! "Thread "+i+", link 1:", ! "http://normallink.com/sometext.html", ! parsingThread[i].getLink1().getLink() ! ); ! assertNotNull("Thread "+i+" link 2",parsingThread[i].getLink2()); ! assertStringEquals( ! "Thread "+i+", link 2:", ! "/cgi-bin/view_search?query_text=postdate>20020701&txt_clr=White&bg_clr=Red&url=http://localhost/Testing/Report1.html", ! parsingThread[i].getLink2().getLink() ! ); ! } ! } } --- 275,349 ---- */ ! /** ! * Test multiple threads running against the parser. ! * See feature request #736144 Handle multi-threaded operation. ! * Only perform this test if it's version 1.4 or higher. ! */ ! public void testThreadSafety() throws Exception ! { ! createParser("<html></html>"); ! if (1.4 <= Double.parseDouble (parser.getVersion ().substring (0, parser.getVersion ().indexOf (' ')))) ! { ! String testHtml1 = "<a HREF=\"/cgi-bin/view_search?query_text=postdate>20020701&txt_clr=White&bg_clr=Red&url=http://localhost/Testing/Report1.html\">20020702 Report 1</A>" + ! TEST_HTML; ! ! String testHtml2 = "<a href=\"http://normallink.com/sometext.html\">" + ! TEST_HTML; ! ParsingThread parsingThread [] = ! new ParsingThread[100]; ! results = new HashMap(); ! testProgress = 0; ! for (int i=0;i<parsingThread.length;i++) { ! if (i<parsingThread.length/2) ! parsingThread[i] = ! new ParsingThread(i,testHtml1,parsingThread.length); ! else ! parsingThread[i] = ! new ParsingThread(i,testHtml2,parsingThread.length); ! ! Thread thread = new Thread(parsingThread[i]); ! thread.start(); ! } ! ! int completionValue = computeCompletionValue(parsingThread.length); ! ! do { ! try { ! Thread.sleep(50); ! } ! catch (InterruptedException e) { ! } ! } ! while (testProgress!=completionValue); ! for (int i=0;i<parsingThread.length;i++) { ! if (!parsingThread[i].passed()) { ! assertNotNull("Thread "+i+" link 1",parsingThread[i].getLink1()); ! assertNotNull("Thread "+i+" link 2",parsingThread[i].getLink2()); ! if (i<parsingThread.length/2) { ! assertStringEquals( ! "Thread "+i+", link 1:", ! "/cgi-bin/view_search?query_text=postdate>20020701&txt_clr=White&bg_clr=Red&url=http://localhost/Testing/Report1.html", ! parsingThread[i].getLink1().getLink() ! ); ! assertStringEquals( ! "Thread "+i+", link 2:", ! "http://normallink.com/sometext.html", ! parsingThread[i].getLink2().getLink() ! ); ! } else { ! assertStringEquals( ! "Thread "+i+", link 1:", ! "http://normallink.com/sometext.html", ! parsingThread[i].getLink1().getLink() ! ); ! assertNotNull("Thread "+i+" link 2",parsingThread[i].getLink2()); ! assertStringEquals( ! "Thread "+i+", link 2:", ! "/cgi-bin/view_search?query_text=postdate>20020701&txt_clr=White&bg_clr=Red&url=http://localhost/Testing/Report1.html", ! parsingThread[i].getLink2().getLink() ! ); ! } ! } ! } } |
From: <der...@us...> - 2003-05-11 19:32:25
|
Update of /cvsroot/htmlparser/htmlparser/src/org/htmlparser/tests/scannersTests In directory sc8-pr-cvs1:/tmp/cvs-serv32380/org/htmlparser/tests/scannersTests Modified Files: DivScannerTest.java Log Message: Added testcase for bug #735193 Explicit tag type recognition for CompositTags not working. Index: DivScannerTest.java =================================================================== RCS file: /cvsroot/htmlparser/htmlparser/src/org/htmlparser/tests/scannersTests/DivScannerTest.java,v retrieving revision 1.17 retrieving revision 1.18 diff -C2 -d -r1.17 -r1.18 *** DivScannerTest.java 11 May 2003 18:10:59 -0000 1.17 --- DivScannerTest.java 11 May 2003 19:32:22 -0000 1.18 *************** *** 61,65 **** public void testInputInDiv() throws ParserException { ! createParser("<div><INPUT type=\"text\" name=\"X\"></div>"); parser.addScanner(new DivScanner()); parser.addScanner(new InputTagScanner()); --- 61,65 ---- public void testInputInDiv() throws ParserException { ! createParser("<div><INPUT type=\"text\" name=\"X\">Hello</INPUT></div>"); parser.addScanner(new DivScanner()); parser.addScanner(new InputTagScanner()); |
From: <der...@us...> - 2003-05-11 18:11:02
|
Update of /cvsroot/htmlparser/htmlparser/src/org/htmlparser/tests/scannersTests In directory sc8-pr-cvs1:/tmp/cvs-serv30453/org/htmlparser/tests/scannersTests Modified Files: DivScannerTest.java Log Message: Added testcase for bug #735193 Explicit tag type recognition for CompositTags not working Index: DivScannerTest.java =================================================================== RCS file: /cvsroot/htmlparser/htmlparser/src/org/htmlparser/tests/scannersTests/DivScannerTest.java,v retrieving revision 1.16 retrieving revision 1.17 diff -C2 -d -r1.16 -r1.17 *** DivScannerTest.java 5 May 2003 03:12:24 -0000 1.16 --- DivScannerTest.java 11 May 2003 18:10:59 -0000 1.17 *************** *** 30,35 **** --- 30,37 ---- import org.htmlparser.scanners.DivScanner; + import org.htmlparser.scanners.InputTagScanner; import org.htmlparser.scanners.TableScanner; import org.htmlparser.tags.Div; + import org.htmlparser.tags.InputTag; import org.htmlparser.tags.TableTag; import org.htmlparser.tests.ParserTestCase; *************** *** 52,55 **** --- 54,71 ---- 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\"></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)); } } |
From: <der...@us...> - 2003-05-11 04:48:15
|
Update of /cvsroot/htmlparser/htmlparser/src/org/htmlparser/tests/tagTests In directory sc8-pr-cvs1:/tmp/cvs-serv24541/org/htmlparser/tests/tagTests Modified Files: SelectTagTest.java Log Message: Fixed bug #735183 Problem in Label Scanning A NodeReader now prepends the pre-read tags onto the internal list, maintaining the correct order in recursively analysing unclosed tags. Also fixed OptionTagScanner tag enders. Index: SelectTagTest.java =================================================================== RCS file: /cvsroot/htmlparser/htmlparser/src/org/htmlparser/tests/tagTests/SelectTagTest.java,v retrieving revision 1.14 retrieving revision 1.15 diff -C2 -d -r1.14 -r1.15 *** SelectTagTest.java 10 May 2003 01:47:11 -0000 1.14 --- SelectTagTest.java 11 May 2003 04:48:12 -0000 1.15 *************** *** 72,81 **** { assertStringEquals("HTML String","<SELECT NAME=\"Nominees\">\r\n"+ ! "<OPTION VALUE=\"Spouse\">Spouse</OPTION>\r\n"+ "<OPTION VALUE=\"Father\"></OPTION>\r\n"+ "<OPTION VALUE=\"Mother\">Mother\r\n</OPTION>" + ! "<OPTION VALUE=\"Son\">Son\r\n</OPTION>\r\n"+ ! "<OPTION VALUE=\"Daughter\">Daughter\r\n</OPTION>"+ ! "<OPTION VALUE=\"Nephew\">Nephew</OPTION>\r\n"+ "<OPTION VALUE=\"Niece\">Niece\r\n</OPTION>"+ "</SELECT>", --- 72,81 ---- { assertStringEquals("HTML String","<SELECT NAME=\"Nominees\">\r\n"+ ! "<OPTION VALUE=\"Spouse\">Spouse</OPTION>"+ "<OPTION VALUE=\"Father\"></OPTION>\r\n"+ "<OPTION VALUE=\"Mother\">Mother\r\n</OPTION>" + ! "<OPTION VALUE=\"Son\">\r\nSon\r\n</OPTION>"+ ! "<OPTION VALUE=\"Daughter\">\r\nDaughter\r\n</OPTION>"+ ! "<OPTION VALUE=\"Nephew\">\r\nNephew</OPTION>\r\n"+ "<OPTION VALUE=\"Niece\">Niece\r\n</OPTION>"+ "</SELECT>", *************** *** 90,100 **** selectTag = (SelectTag) node[0]; assertStringEquals("HTML Raw String","SELECT TAG\n--------\nNAME : Nominees\n" + ! "OPTION TAG\n--------\nVALUE : Spouse\nTEXT : Spouse\n\n" + ! "OPTION TAG\n--------\nVALUE : Father\nTEXT : \n\n" + ! "OPTION TAG\n--------\nVALUE : Mother\nTEXT : Mother\r\n\n\n" + ! "OPTION TAG\n--------\nVALUE : Son\nTEXT : Son\r\n\n\n" + ! "OPTION TAG\n--------\nVALUE : Daughter\nTEXT : Daughter\r\n\n\n" + ! "OPTION TAG\n--------\nVALUE : Nephew\nTEXT : Nephew\n\n" + ! "OPTION TAG\n--------\nVALUE : Niece\nTEXT : Niece\r\n\n\n", selectTag.toString()); } --- 90,100 ---- selectTag = (SelectTag) node[0]; assertStringEquals("HTML Raw String","SELECT TAG\n--------\nNAME : Nominees\n" + ! "OPTION VALUE: Spouse TEXT: Spouse\n\n" + ! "OPTION VALUE: Father TEXT: \n\n" + ! "OPTION VALUE: Mother TEXT: Mother\r\n\n\n" + ! "OPTION VALUE: Son TEXT: Son\r\n\n\n" + ! "OPTION VALUE: Daughter TEXT: Daughter\r\n\n\n" + ! "OPTION VALUE: Nephew TEXT: Nephew\n\n" + ! "OPTION VALUE: Niece TEXT: Niece\r\n\n\n", selectTag.toString()); } |
From: <der...@us...> - 2003-05-11 04:48:15
|
Update of /cvsroot/htmlparser/htmlparser/src/org/htmlparser/tests/scannersTests In directory sc8-pr-cvs1:/tmp/cvs-serv24541/org/htmlparser/tests/scannersTests Modified Files: LabelScannerTest.java Log Message: Fixed bug #735183 Problem in Label Scanning A NodeReader now prepends the pre-read tags onto the internal list, maintaining the correct order in recursively analysing unclosed tags. Also fixed OptionTagScanner tag enders. Index: LabelScannerTest.java =================================================================== RCS file: /cvsroot/htmlparser/htmlparser/src/org/htmlparser/tests/scannersTests/LabelScannerTest.java,v retrieving revision 1.18 retrieving revision 1.19 diff -C2 -d -r1.18 -r1.19 *** LabelScannerTest.java 10 May 2003 01:22:24 -0000 1.18 --- LabelScannerTest.java 11 May 2003 04:48:11 -0000 1.19 *************** *** 155,164 **** parseAndAssertNodeCount(13); ! for(int j=0;j<nodeCount;j++) ! { ! //assertTrue("Node " + j + " should be Label Tag",node[j] instanceof LabelTag); ! System.out.println(node[j].getClass().getName()); ! System.out.println(node[j].toHtml()); ! } LabelTag LabelTag; --- 155,164 ---- parseAndAssertNodeCount(13); ! // for(int j=0;j<nodeCount;j++) ! // { ! // //assertTrue("Node " + j + " should be Label Tag",node[j] instanceof LabelTag); ! // System.out.println(node[j].getClass().getName()); ! // System.out.println(node[j].toHtml()); ! // } LabelTag LabelTag; *************** *** 188,192 **** assertStringEquals("HTML String","<LABEL VALUE=\"AOL\"><SPAN>AOL</SPAN></LABEL>",LabelTag.toHtml()); LabelTag = (LabelTag) node[12]; ! assertStringEquals("HTML String","<LABEL value=\"Time Warner\">Time <B>Warner <SPAN>AOL </SPAN>Inc.</B>",LabelTag.toHtml()); } --- 188,192 ---- assertStringEquals("HTML String","<LABEL VALUE=\"AOL\"><SPAN>AOL</SPAN></LABEL>",LabelTag.toHtml()); LabelTag = (LabelTag) node[12]; ! assertStringEquals("HTML String","<LABEL VALUE=\"Time Warner\">Time <B>Warner <SPAN>AOL </SPAN>Inc.</B></LABEL>",LabelTag.toHtml()); } |
From: <der...@us...> - 2003-05-11 04:48:15
|
Update of /cvsroot/htmlparser/htmlparser/src/org/htmlparser/scanners In directory sc8-pr-cvs1:/tmp/cvs-serv24541/org/htmlparser/scanners Modified Files: OptionTagScanner.java Log Message: Fixed bug #735183 Problem in Label Scanning A NodeReader now prepends the pre-read tags onto the internal list, maintaining the correct order in recursively analysing unclosed tags. Also fixed OptionTagScanner tag enders. Index: OptionTagScanner.java =================================================================== RCS file: /cvsroot/htmlparser/htmlparser/src/org/htmlparser/scanners/OptionTagScanner.java,v retrieving revision 1.16 retrieving revision 1.17 diff -C2 -d -r1.16 -r1.17 *** OptionTagScanner.java 10 May 2003 01:47:12 -0000 1.16 --- OptionTagScanner.java 11 May 2003 04:48:11 -0000 1.17 *************** *** 37,48 **** { private static final String MATCH_NAME [] = {"OPTION"}; ! private static final String [] ENDERS = { "SELECT" }; public OptionTagScanner() { ! super(MATCH_NAME, ENDERS, false); } public OptionTagScanner(String filter) { ! super(filter, MATCH_NAME, ENDERS, false); } --- 37,49 ---- { private static final String MATCH_NAME [] = {"OPTION"}; ! private static final String [] ENDERS = { }; ! private static final String [] END_TAG_ENDERS = { "SELECT", "BODY", "HTML" }; public OptionTagScanner() { ! super(MATCH_NAME[0], ENDERS, END_TAG_ENDERS, false); } public OptionTagScanner(String filter) { ! super(filter, MATCH_NAME, ENDERS, END_TAG_ENDERS, false); } |
From: <der...@us...> - 2003-05-11 04:48:14
|
Update of /cvsroot/htmlparser/htmlparser/src/org/htmlparser In directory sc8-pr-cvs1:/tmp/cvs-serv24541/org/htmlparser Modified Files: NodeReader.java Log Message: Fixed bug #735183 Problem in Label Scanning A NodeReader now prepends the pre-read tags onto the internal list, maintaining the correct order in recursively analysing unclosed tags. Also fixed OptionTagScanner tag enders. Index: NodeReader.java =================================================================== RCS file: /cvsroot/htmlparser/htmlparser/src/org/htmlparser/NodeReader.java,v retrieving revision 1.25 retrieving revision 1.26 diff -C2 -d -r1.25 -r1.26 *** NodeReader.java 5 May 2003 03:12:21 -0000 1.25 --- NodeReader.java 11 May 2003 04:48:11 -0000 1.26 *************** *** 385,391 **** return stringParser; } ! public void addNextParsedNode(Node nextParsedNode) { ! this.nextParsedNode.add(nextParsedNode); } --- 385,397 ---- return stringParser; } ! ! /** ! * Adds the given node on the front of an internal list of pre-parsed nodes. ! * Used in recursive calls where downstream nodes have been recognized in ! * order to parse the current node. ! * @param nextParsedNode The node that will be returned next by the reader. ! */ public void addNextParsedNode(Node nextParsedNode) { ! this.nextParsedNode.prepend(nextParsedNode); } |
From: <der...@us...> - 2003-05-11 04:48:14
|
Update of /cvsroot/htmlparser/htmlparser/src/org/htmlparser/tags In directory sc8-pr-cvs1:/tmp/cvs-serv24541/org/htmlparser/tags Modified Files: Tag.java Log Message: Fixed bug #735183 Problem in Label Scanning A NodeReader now prepends the pre-read tags onto the internal list, maintaining the correct order in recursively analysing unclosed tags. Also fixed OptionTagScanner tag enders. Index: Tag.java =================================================================== RCS file: /cvsroot/htmlparser/htmlparser/src/org/htmlparser/tags/Tag.java,v retrieving revision 1.22 retrieving revision 1.23 diff -C2 -d -r1.22 -r1.23 *** Tag.java 5 May 2003 03:12:22 -0000 1.22 --- Tag.java 11 May 2003 04:48:10 -0000 1.23 *************** *** 274,280 **** { found=true; reader.setPreviousOpenScanner(scanner); retVal=scanner.createScannedNode(this,url,reader,tagLine); ! reader.setPreviousOpenScanner(null); } --- 274,282 ---- { found=true; + TagScanner save; + save = reader.getPreviousOpenScanner (); reader.setPreviousOpenScanner(scanner); retVal=scanner.createScannedNode(this,url,reader,tagLine); ! reader.setPreviousOpenScanner(save); } |
From: <der...@us...> - 2003-05-11 04:48:14
|
Update of /cvsroot/htmlparser/htmlparser/src/org/htmlparser/util In directory sc8-pr-cvs1:/tmp/cvs-serv24541/org/htmlparser/util Modified Files: NodeList.java Log Message: Fixed bug #735183 Problem in Label Scanning A NodeReader now prepends the pre-read tags onto the internal list, maintaining the correct order in recursively analysing unclosed tags. Also fixed OptionTagScanner tag enders. Index: NodeList.java =================================================================== RCS file: /cvsroot/htmlparser/htmlparser/src/org/htmlparser/util/NodeList.java,v retrieving revision 1.23 retrieving revision 1.24 diff -C2 -d -r1.23 -r1.24 *** NodeList.java 7 May 2003 22:00:09 -0000 1.23 --- NodeList.java 11 May 2003 04:48:11 -0000 1.24 *************** *** 57,60 **** --- 57,73 ---- } + /** + * Insert the given node at the head of the list. + * @param node The new first element. + */ + public void prepend(Node node) + { + if (size==capacity) + adjustVectorCapacity(); + System.arraycopy (nodeData, 0, nodeData, 1, size); + size++; + nodeData[0]=node; + } + private void adjustVectorCapacity() { capacity += capacityIncrement; |
From: <der...@us...> - 2003-05-10 01:47:16
|
Update of /cvsroot/htmlparser/htmlparser/src/org/htmlparser/scanners In directory sc8-pr-cvs1:/tmp/cvs-serv21759/org/htmlparser/scanners Modified Files: OptionTagScanner.java Log Message: For Dhaval: I have converted the OptionTag to a composite tag. The problem that is present with Label tag exists here a well so my guess is that it is with CompositeTag itself. Once solved, all related problems will also get solved. In any case I have commented some test conditions in the OptionTagTest class. You can uncomment it and see it for yourself. Some SelectTag test cases are also changed as a result. Index: OptionTagScanner.java =================================================================== RCS file: /cvsroot/htmlparser/htmlparser/src/org/htmlparser/scanners/OptionTagScanner.java,v retrieving revision 1.15 retrieving revision 1.16 diff -C2 -d -r1.15 -r1.16 *** OptionTagScanner.java 5 May 2003 03:12:22 -0000 1.15 --- OptionTagScanner.java 10 May 2003 01:47:12 -0000 1.16 *************** *** 29,122 **** package org.htmlparser.scanners; - import java.util.Map; - - import org.htmlparser.Node; - import org.htmlparser.NodeReader; - import org.htmlparser.StringNode; - import org.htmlparser.tags.EndTag; import org.htmlparser.tags.OptionTag; import org.htmlparser.tags.Tag; import org.htmlparser.tags.data.TagData; - import org.htmlparser.util.ParserException; - import org.htmlparser.util.ParserUtils; ! public class OptionTagScanner extends TagScanner { ! public OptionTagScanner() ! { ! super(); } ! public OptionTagScanner(String filter) ! { ! super(filter); } - - public Tag scan(Tag tag, String pUrl, NodeReader reader, String currLine) - throws ParserException - { - try - { - EndTag endTag=null; - Node node = null; - Node prevNode = tag; - boolean endTagFound=false; - StringBuffer text=new StringBuffer(""); - // Remove all existing scanners, so as to parse only till the end tag - Map tempScanners = ParserUtils.adjustScanners(reader); ! do ! { ! node = reader.readElement(); ! if (node instanceof EndTag) ! { ! endTag = (EndTag)node; ! String endTagString = endTag.getText().toUpperCase(); ! if (endTagString.equals("OPTION") || endTagString.equals("SELECT")) ! { ! endTagFound = true; ! if (endTagString.equals("SELECT")) ! { ! node = prevNode; ! } ! } ! } ! else if (node instanceof StringNode) ! { ! text.append(node.toHtml()); ! } ! else ! { ! endTagFound = true; ! node = prevNode; ! } ! prevNode = node; ! } ! while (!endTagFound); ! OptionTag lOptionTag = ! new OptionTag( ! new TagData( ! 0, node.elementEnd(), tag.getText(),currLine ! ), ! text.toString() ! ); ! ParserUtils.restoreScanners(reader, tempScanners); ! return lOptionTag; ! } ! catch (Exception e) ! { ! throw new ParserException("HTMLOptionTagScanner.scan() : Error while scanning option tags, current line = "+currLine,e); ! } } ! ! ! /** ! * @see org.htmlparser.scanners.TagScanner#getID() ! */ ! public String [] getID() { ! String [] ids = new String[1]; ! ids[0] = "OPTION"; ! return ids; } } --- 29,58 ---- package org.htmlparser.scanners; import org.htmlparser.tags.OptionTag; import org.htmlparser.tags.Tag; + import org.htmlparser.tags.data.CompositeTagData; import org.htmlparser.tags.data.TagData; ! public class OptionTagScanner extends CompositeTagScanner { ! private static final String MATCH_NAME [] = {"OPTION"}; ! private static final String [] ENDERS = { "SELECT" }; ! ! public OptionTagScanner() { ! super(MATCH_NAME, ENDERS, false); } ! public OptionTagScanner(String filter) { ! super(filter, MATCH_NAME, ENDERS, false); } ! public String [] getID() { ! return MATCH_NAME; } ! public Tag createTag( ! TagData tagData, ! CompositeTagData compositeTagData) { ! return new OptionTag(tagData,compositeTagData); } } |
From: <der...@us...> - 2003-05-10 01:47:15
|
Update of /cvsroot/htmlparser/htmlparser/src/org/htmlparser/tags In directory sc8-pr-cvs1:/tmp/cvs-serv21759/org/htmlparser/tags Modified Files: OptionTag.java Log Message: For Dhaval: I have converted the OptionTag to a composite tag. The problem that is present with Label tag exists here a well so my guess is that it is with CompositeTag itself. Once solved, all related problems will also get solved. In any case I have commented some test conditions in the OptionTagTest class. You can uncomment it and see it for yourself. Some SelectTag test cases are also changed as a result. Index: OptionTag.java =================================================================== RCS file: /cvsroot/htmlparser/htmlparser/src/org/htmlparser/tags/OptionTag.java,v retrieving revision 1.13 retrieving revision 1.14 diff -C2 -d -r1.13 -r1.14 *** OptionTag.java 5 May 2003 03:12:22 -0000 1.13 --- OptionTag.java 10 May 2003 01:47:12 -0000 1.14 *************** *** 29,73 **** package org.htmlparser.tags; import org.htmlparser.tags.data.TagData; import org.htmlparser.util.ParserUtils; ! public class OptionTag extends Tag { private String value; ! public OptionTag(TagData tagData, String text) { ! super(tagData); ! this.value = text; } public String getValue() { ! return value; } ! public void setValue(String value) { this.value = value; } ! ! public String toHtml() ! { ! String lHTMLString = ParserUtils.toHTML(this); ! ! StringBuffer lOptionTag = new StringBuffer(lHTMLString); ! ! if (value != null) ! lOptionTag.append(value); ! ! lOptionTag.append("</OPTION>"); ! ! return lOptionTag.toString(); } ! public String toString() ! { ! StringBuffer lString = new StringBuffer(ParserUtils.toString(this)); ! lString.append("TEXT : ").append(value).append("\n"); ! ! return lString.toString(); } } --- 29,63 ---- package org.htmlparser.tags; + import org.htmlparser.tags.data.CompositeTagData; import org.htmlparser.tags.data.TagData; import org.htmlparser.util.ParserUtils; ! public class OptionTag extends CompositeTag { private String value; ! public OptionTag(TagData tagData, CompositeTagData compositeTagData) { ! super(tagData, compositeTagData); ! this.value = (String)this.getAttribute("VALUE"); } public String getValue() { ! return this.value; } ! public void setValue(String value) { this.value = value; + this.setAttribute("VALUE",value); } ! ! public String getOptionText() { ! return toPlainTextString(); } ! public String toString() { ! String output = "OPTION VALUE: " + value + " TEXT: "+getOptionText()+"\n"; ! return output; } + } |
From: <der...@us...> - 2003-05-10 01:47:15
|
Update of /cvsroot/htmlparser/htmlparser/src/org/htmlparser/tests/scannersTests In directory sc8-pr-cvs1:/tmp/cvs-serv21759/org/htmlparser/tests/scannersTests Modified Files: SelectTagScannerTest.java OptionTagScannerTest.java Log Message: For Dhaval: I have converted the OptionTag to a composite tag. The problem that is present with Label tag exists here a well so my guess is that it is with CompositeTag itself. Once solved, all related problems will also get solved. In any case I have commented some test conditions in the OptionTagTest class. You can uncomment it and see it for yourself. Some SelectTag test cases are also changed as a result. Index: SelectTagScannerTest.java =================================================================== RCS file: /cvsroot/htmlparser/htmlparser/src/org/htmlparser/tests/scannersTests/SelectTagScannerTest.java,v retrieving revision 1.12 retrieving revision 1.13 diff -C2 -d -r1.12 -r1.13 *** SelectTagScannerTest.java 5 May 2003 03:12:25 -0000 1.12 --- SelectTagScannerTest.java 10 May 2003 01:47:12 -0000 1.13 *************** *** 41,46 **** private String testHTML = new String( ! "<Select name=\"Remarks\">" + "<option value='option1'>option1</option>" + "</Select>" + ! "<Select name=\"something\">" + "<option value='option2'>option2</option>" + "</Select>" + "<Select></Select>" + "<Select name=\"Remarks\">The death threats of the organization\n" + --- 41,50 ---- private String testHTML = new String( ! "<Select name=\"Remarks\">" + ! "<option value='option1'>option1</option>" + ! "</Select>" + ! "<Select name=\"something\">" + ! "<option value='option2'>option2</option>" + ! "</Select>" + "<Select></Select>" + "<Select name=\"Remarks\">The death threats of the organization\n" + *************** *** 83,87 **** OptionTag [] optionTags = selectTag.getOptionTags(); assertEquals("option tag array length",1,optionTags.length); ! assertEquals("option tag value","option1",optionTags[0].getValue()); } --- 87,91 ---- OptionTag [] optionTags = selectTag.getOptionTags(); assertEquals("option tag array length",1,optionTags.length); ! assertEquals("option tag value","option1",optionTags[0].getOptionText()); } *************** *** 91,95 **** public void testSelectTagWithComments() throws Exception { createParser( ! "<form>" + "<select> " + "<!-- 1 --><option selected>123 " + "<option>345 " + "</select> " + "</form>" ); parser.registerScanners(); --- 95,104 ---- public void testSelectTagWithComments() throws Exception { createParser( ! "<form>" + ! "<select> " + ! "<!-- 1 --><option selected>123 " + ! "<option>345 " + ! "</select> " + ! "</form>" ); parser.registerScanners(); Index: OptionTagScannerTest.java =================================================================== RCS file: /cvsroot/htmlparser/htmlparser/src/org/htmlparser/tests/scannersTests/OptionTagScannerTest.java,v retrieving revision 1.12 retrieving revision 1.13 diff -C2 -d -r1.12 -r1.13 *** OptionTagScannerTest.java 5 May 2003 03:12:25 -0000 1.12 --- OptionTagScannerTest.java 10 May 2003 01:47:12 -0000 1.13 *************** *** 71,73 **** --- 71,78 ---- } } + public static void main(String[] args) + { + new junit.awtui.TestRunner().start(new String[] {OptionTagScannerTest.class.getName()}); + } + } |
From: <der...@us...> - 2003-05-10 01:47:15
|
Update of /cvsroot/htmlparser/htmlparser/src/org/htmlparser/tests/tagTests In directory sc8-pr-cvs1:/tmp/cvs-serv21759/org/htmlparser/tests/tagTests Modified Files: SelectTagTest.java OptionTagTest.java Log Message: For Dhaval: I have converted the OptionTag to a composite tag. The problem that is present with Label tag exists here a well so my guess is that it is with CompositeTag itself. Once solved, all related problems will also get solved. In any case I have commented some test conditions in the OptionTagTest class. You can uncomment it and see it for yourself. Some SelectTag test cases are also changed as a result. Index: SelectTagTest.java =================================================================== RCS file: /cvsroot/htmlparser/htmlparser/src/org/htmlparser/tests/tagTests/SelectTagTest.java,v retrieving revision 1.13 retrieving revision 1.14 diff -C2 -d -r1.13 -r1.14 *** SelectTagTest.java 5 May 2003 03:12:25 -0000 1.13 --- SelectTagTest.java 10 May 2003 01:47:11 -0000 1.14 *************** *** 103,109 **** OptionTag [] optionTags = selectTag.getOptionTags(); assertEquals("option tag array length",7,optionTags.length); ! assertEquals("option tag 1","Spouse",optionTags[0].getValue()); ! assertEquals("option tag 7","Niece\r\n",optionTags[6].getValue()); } } --- 103,114 ---- OptionTag [] optionTags = selectTag.getOptionTags(); assertEquals("option tag array length",7,optionTags.length); ! assertEquals("option tag 1","Spouse",optionTags[0].getOptionText()); ! assertEquals("option tag 7","Niece\r\n",optionTags[6].getOptionText()); } + public static void main(String[] args) + { + new junit.awtui.TestRunner().start(new String[] {SelectTagTest.class.getName()}); + } + } Index: OptionTagTest.java =================================================================== RCS file: /cvsroot/htmlparser/htmlparser/src/org/htmlparser/tests/tagTests/OptionTagTest.java,v retrieving revision 1.13 retrieving revision 1.14 diff -C2 -d -r1.13 -r1.14 *** OptionTagTest.java 5 May 2003 03:12:25 -0000 1.13 --- OptionTagTest.java 10 May 2003 01:47:12 -0000 1.14 *************** *** 51,54 **** --- 51,56 ---- "<OPTION>Cricinfo" + "<OPTION value=\"Microsoft Passport\">" + // "<OPTION value=\"AOL\"><SPAN>AOL</SPAN></OPTION>" + + // "<OPTION value=\"Time Warner\">Time <LABEL>Warner <SPAN>AOL </SPAN>Inc.</LABEL>" ); *************** *** 61,65 **** super.setUp(); createParser(testHTML); ! parser.addScanner(new OptionTagScanner("-i")); parseAndAssertNodeCount(11); } --- 63,67 ---- super.setUp(); createParser(testHTML); ! parser.addScanner(new OptionTagScanner("-option")); parseAndAssertNodeCount(11); } *************** *** 69,73 **** for(int j=0;j<nodeCount;j++) { ! assertTrue("Node " + j + " should be Option Tag",node[j] instanceof OptionTag); } OptionTag OptionTag; --- 71,77 ---- for(int j=0;j<nodeCount;j++) { ! //assertTrue("Node " + j + " should be Option Tag",node[j] instanceof OptionTag); ! System.out.println(node[j].getClass().getName()); ! System.out.println(node[j].toHtml()); } OptionTag OptionTag; *************** *** 81,85 **** assertStringEquals("HTML String","<OPTION>Yahoo!</OPTION>",OptionTag.toHtml()); OptionTag = (OptionTag) node[4]; ! assertStringEquals("HTML String","<OPTION>Hotmail</OPTION>",OptionTag.toHtml()); OptionTag = (OptionTag) node[5]; assertStringEquals("HTML String","<OPTION VALUE=\"ICQ Messenger\"></OPTION>",OptionTag.toHtml()); --- 85,89 ---- assertStringEquals("HTML String","<OPTION>Yahoo!</OPTION>",OptionTag.toHtml()); OptionTag = (OptionTag) node[4]; ! assertStringEquals("HTML String","<OPTION>\r\nHotmail</OPTION>",OptionTag.toHtml()); OptionTag = (OptionTag) node[5]; assertStringEquals("HTML String","<OPTION VALUE=\"ICQ Messenger\"></OPTION>",OptionTag.toHtml()); *************** *** 87,102 **** assertStringEquals("HTML String","<OPTION>Mailcity\r\n</OPTION>",OptionTag.toHtml()); OptionTag = (OptionTag) node[7]; ! assertStringEquals("HTML String","<OPTION>Indiatimes\r\n</OPTION>",OptionTag.toHtml()); OptionTag = (OptionTag) node[8]; ! assertStringEquals("HTML String","<OPTION>Rediff\r\n</OPTION>",OptionTag.toHtml()); OptionTag = (OptionTag) node[9]; assertStringEquals("HTML String","<OPTION>Cricinfo</OPTION>",OptionTag.toHtml()); OptionTag = (OptionTag) node[10]; assertStringEquals("HTML String","<OPTION VALUE=\"Microsoft Passport\"></OPTION>",OptionTag.toHtml()); ! } public void testToString() throws ParserException { ! for(int j=0;j<nodeCount;j++) { assertTrue("Node " + j + " should be Option Tag",node[j] instanceof OptionTag); --- 91,110 ---- assertStringEquals("HTML String","<OPTION>Mailcity\r\n</OPTION>",OptionTag.toHtml()); OptionTag = (OptionTag) node[7]; ! assertStringEquals("HTML String","<OPTION>\r\nIndiatimes\r\n</OPTION>",OptionTag.toHtml()); OptionTag = (OptionTag) node[8]; ! assertStringEquals("HTML String","<OPTION>\r\nRediff\r\n</OPTION>",OptionTag.toHtml()); OptionTag = (OptionTag) node[9]; assertStringEquals("HTML String","<OPTION>Cricinfo</OPTION>",OptionTag.toHtml()); OptionTag = (OptionTag) node[10]; assertStringEquals("HTML String","<OPTION VALUE=\"Microsoft Passport\"></OPTION>",OptionTag.toHtml()); ! /* OptionTag = (OptionTag) node[11]; ! assertStringEquals("HTML String","<OPTION VALUE=\"AOL\"><SPAN>AOL</SPAN></OPTION>",OptionTag.toHtml()); ! OptionTag = (OptionTag) node[12]; ! assertStringEquals("HTML String","<OPTION value=\"Time Warner\">Time <LABEL>Warner <SPAN>AOL </SPAN>Inc.</LABEL></OPTION>",OptionTag.toHtml()); ! */ } public void testToString() throws ParserException { ! for(int j=0;j<11;j++) { assertTrue("Node " + j + " should be Option Tag",node[j] instanceof OptionTag); *************** *** 104,128 **** OptionTag OptionTag; OptionTag = (OptionTag) node[0]; ! assertEquals("HTML Raw String","OPTION TAG\n--------\nVALUE : Google Search\nTEXT : Google\n",OptionTag.toString()); OptionTag = (OptionTag) node[1]; ! assertEquals("HTML Raw String","OPTION TAG\n--------\nVALUE : AltaVista Search\nTEXT : AltaVista\n",OptionTag.toString()); OptionTag = (OptionTag) node[2]; ! assertEquals("HTML Raw String","OPTION TAG\n--------\nVALUE : Lycos Search\nTEXT : \n",OptionTag.toString()); OptionTag = (OptionTag) node[3]; ! assertEquals("HTML Raw String","OPTION TAG\n--------\nTEXT : Yahoo!\n",OptionTag.toString()); OptionTag = (OptionTag) node[4]; ! assertEquals("HTML Raw String","OPTION TAG\n--------\nTEXT : Hotmail\n",OptionTag.toString()); OptionTag = (OptionTag) node[5]; ! assertEquals("HTML Raw String","OPTION TAG\n--------\nVALUE : ICQ Messenger\nTEXT : \n",OptionTag.toString()); OptionTag = (OptionTag) node[6]; ! assertEquals("HTML Raw String","OPTION TAG\n--------\nTEXT : Mailcity\r\n\n",OptionTag.toString()); OptionTag = (OptionTag) node[7]; ! assertEquals("HTML Raw String","OPTION TAG\n--------\nTEXT : Indiatimes\r\n\n",OptionTag.toString()); OptionTag = (OptionTag) node[8]; ! assertEquals("HTML Raw String","OPTION TAG\n--------\nTEXT : Rediff\r\n\n",OptionTag.toString()); OptionTag = (OptionTag) node[9]; ! assertEquals("HTML Raw String","OPTION TAG\n--------\nTEXT : Cricinfo\n",OptionTag.toString()); OptionTag = (OptionTag) node[10]; ! assertEquals("HTML Raw String","OPTION TAG\n--------\nVALUE : Microsoft Passport\nTEXT : \n",OptionTag.toString()); } --- 112,145 ---- OptionTag OptionTag; OptionTag = (OptionTag) node[0]; ! assertEquals("HTML Raw String","OPTION VALUE: Google Search TEXT: Google\n",OptionTag.toString()); OptionTag = (OptionTag) node[1]; ! assertEquals("HTML Raw String","OPTION VALUE: AltaVista Search TEXT: AltaVista\n",OptionTag.toString()); OptionTag = (OptionTag) node[2]; ! assertEquals("HTML Raw String","OPTION VALUE: Lycos Search TEXT: \n",OptionTag.toString()); OptionTag = (OptionTag) node[3]; ! assertEquals("HTML Raw String","OPTION VALUE: null TEXT: Yahoo!\n",OptionTag.toString()); OptionTag = (OptionTag) node[4]; ! assertEquals("HTML Raw String","OPTION VALUE: null TEXT: Hotmail\n",OptionTag.toString()); OptionTag = (OptionTag) node[5]; ! assertEquals("HTML Raw String","OPTION VALUE: ICQ Messenger TEXT: \n",OptionTag.toString()); OptionTag = (OptionTag) node[6]; ! assertEquals("HTML Raw String","OPTION VALUE: null TEXT: Mailcity\r\n\n",OptionTag.toString()); OptionTag = (OptionTag) node[7]; ! assertEquals("HTML Raw String","OPTION VALUE: null TEXT: Indiatimes\r\n\n",OptionTag.toString()); OptionTag = (OptionTag) node[8]; ! assertEquals("HTML Raw String","OPTION VALUE: null TEXT: Rediff\r\n\n",OptionTag.toString()); OptionTag = (OptionTag) node[9]; ! assertEquals("HTML Raw String","OPTION VALUE: null TEXT: Cricinfo\n",OptionTag.toString()); OptionTag = (OptionTag) node[10]; ! assertEquals("HTML Raw String","OPTION VALUE: Microsoft Passport TEXT: \n",OptionTag.toString()); ! /* OptionTag = (OptionTag) node[11]; ! assertEquals("HTML Raw String","OPTION VALUE: AOL TEXT: AOL\n",OptionTag.toString()); ! OptionTag = (OptionTag) node[12]; ! assertEquals("HTML Raw String","OPTION VALUE: Time Warner TEXT: Time Warner AOL Inc.\n",OptionTag.toString()); ! */ } ! ! public static void main(String[] args) ! { ! new junit.awtui.TestRunner().start(new String[] {OptionTagTest.class.getName()}); } |
From: <der...@us...> - 2003-05-10 01:22:28
|
Update of /cvsroot/htmlparser/htmlparser/src/org/htmlparser/tests/scannersTests In directory sc8-pr-cvs1:/tmp/cvs-serv13750/org/htmlparser/tests/scannersTests Modified Files: LabelScannerTest.java Log Message: For Dhaval: New Test case. I added the LabelScanner to the parser and parsed. Strangely instead of returning node count as 13(number of LABEL tags) I get 17. Also when I see output of every node (using toHtml()), uptil "Microsoft Passport" everything is correct and I am getting LABEL tags as well. But the next node that I get is a String node with value as #alue="AOL"># (without the hash) and that entire tag got messed up. Any ideas. I have attached test file for that purpose. U'll also have to use the new LabelScanner.java file. Its quite strange. Index: LabelScannerTest.java =================================================================== RCS file: /cvsroot/htmlparser/htmlparser/src/org/htmlparser/tests/scannersTests/LabelScannerTest.java,v retrieving revision 1.17 retrieving revision 1.18 diff -C2 -d -r1.17 -r1.18 *** LabelScannerTest.java 10 May 2003 01:14:59 -0000 1.17 --- LabelScannerTest.java 10 May 2003 01:22:24 -0000 1.18 *************** *** 117,121 **** public void testNestedLabels() throws ParserException { ! createParser("<label>John Doe<label>Jane Doe</label>"); parser.registerScanners(); LabelScanner labelScanner = new LabelScanner("-l"); --- 117,121 ---- public void testNestedLabels() throws ParserException { ! createParser("<label id=\"attr1\"><label>Jane Doe"); parser.registerScanners(); LabelScanner labelScanner = new LabelScanner("-l"); *************** *** 126,130 **** LabelTag labelTag = (LabelTag) node[0]; ! assertStringEquals("Label","<LABEL>John Doe</LABEL>",labelTag.toHtml()); labelTag = (LabelTag) node[1]; assertStringEquals("Label","<LABEL>Jane Doe</LABEL>",labelTag.toHtml()); --- 126,130 ---- LabelTag labelTag = (LabelTag) node[0]; ! assertStringEquals("Label","<LABEL ID=\"attr1\" ></LABEL>",labelTag.toHtml()); labelTag = (LabelTag) node[1]; assertStringEquals("Label","<LABEL>Jane Doe</LABEL>",labelTag.toHtml()); *************** *** 132,135 **** --- 132,193 ---- assertNull("ID",attr.get("id")); } + + public void testNestedLabels2() throws ParserException { + String testHTML = new String( + "<LABEL value=\"Google Search\">Google</LABEL>" + + "<LABEL value=\"AltaVista Search\">AltaVista" + + "<LABEL value=\"Lycos Search\"></LABEL>" + + "<LABEL>Yahoo!</LABEL>" + + "<LABEL>\nHotmail</LABEL>" + + "<LABEL value=\"ICQ Messenger\">" + + "<LABEL>Mailcity\n</LABEL>"+ + "<LABEL>\nIndiatimes\n</LABEL>"+ + "<LABEL>\nRediff\n</LABEL>\n"+ + "<LABEL>Cricinfo" + + "<LABEL value=\"Microsoft Passport\">" + + "<LABEL value=\"AOL\"><SPAN>AOL</SPAN></LABEL>" + + "<LABEL value=\"Time Warner\">Time <B>Warner <SPAN>AOL </SPAN>Inc.</B>" + ); + createParser(testHTML); + //parser.registerScanners(); + LabelScanner labelScanner = new LabelScanner("-l"); + parser.addScanner(labelScanner); + parseAndAssertNodeCount(13); + + for(int j=0;j<nodeCount;j++) + { + //assertTrue("Node " + j + " should be Label Tag",node[j] instanceof LabelTag); + System.out.println(node[j].getClass().getName()); + System.out.println(node[j].toHtml()); + } + + LabelTag LabelTag; + LabelTag = (LabelTag) node[0]; + assertStringEquals("HTML String","<LABEL VALUE=\"Google Search\">Google</LABEL>",LabelTag.toHtml()); + LabelTag = (LabelTag) node[1]; + assertStringEquals("HTML String","<LABEL VALUE=\"AltaVista Search\">AltaVista</LABEL>",LabelTag.toHtml()); + LabelTag = (LabelTag) node[2]; + assertStringEquals("HTML String","<LABEL VALUE=\"Lycos Search\"></LABEL>",LabelTag.toHtml()); + LabelTag = (LabelTag) node[3]; + assertStringEquals("HTML String","<LABEL>Yahoo!</LABEL>",LabelTag.toHtml()); + LabelTag = (LabelTag) node[4]; + assertStringEquals("HTML String","<LABEL>\r\nHotmail</LABEL>",LabelTag.toHtml()); + LabelTag = (LabelTag) node[5]; + assertStringEquals("HTML String","<LABEL VALUE=\"ICQ Messenger\"></LABEL>",LabelTag.toHtml()); + LabelTag = (LabelTag) node[6]; + assertStringEquals("HTML String","<LABEL>Mailcity\r\n</LABEL>",LabelTag.toHtml()); + LabelTag = (LabelTag) node[7]; + assertStringEquals("HTML String","<LABEL>\r\nIndiatimes\r\n</LABEL>",LabelTag.toHtml()); + LabelTag = (LabelTag) node[8]; + assertStringEquals("HTML String","<LABEL>\r\nRediff\r\n</LABEL>",LabelTag.toHtml()); + LabelTag = (LabelTag) node[9]; + assertStringEquals("HTML String","<LABEL>Cricinfo</LABEL>",LabelTag.toHtml()); + LabelTag = (LabelTag) node[10]; + assertStringEquals("HTML String","<LABEL VALUE=\"Microsoft Passport\"></LABEL>",LabelTag.toHtml()); + LabelTag = (LabelTag) node[11]; + assertStringEquals("HTML String","<LABEL VALUE=\"AOL\"><SPAN>AOL</SPAN></LABEL>",LabelTag.toHtml()); + LabelTag = (LabelTag) node[12]; + assertStringEquals("HTML String","<LABEL value=\"Time Warner\">Time <B>Warner <SPAN>AOL </SPAN>Inc.</B>",LabelTag.toHtml()); + } public static TestSuite suite() { |
From: <der...@us...> - 2003-05-10 01:15:03
|
Update of /cvsroot/htmlparser/htmlparser/src/org/htmlparser/tests/scannersTests In directory sc8-pr-cvs1:/tmp/cvs-serv11166/org/htmlparser/tests/scannersTests Modified Files: LabelScannerTest.java Log Message: For Dhaval: Changed code and test case for LabelScanner. Basically a string like <label>John Doe<label>Jane Doe</label> gets parsed as <LABEL>John Doe<LABEL>Jane Doe</LABEL></LABEL> instead of <LABEL>John Doe</LABEL><LABEL>Jane Doe</LABEL> after call to toHtml() on the single LabelTag. Also it is parsed as a single node instead of 2 distinct nodes. Index: LabelScannerTest.java =================================================================== RCS file: /cvsroot/htmlparser/htmlparser/src/org/htmlparser/tests/scannersTests/LabelScannerTest.java,v retrieving revision 1.16 retrieving revision 1.17 diff -C2 -d -r1.16 -r1.17 *** LabelScannerTest.java 5 May 2003 03:12:24 -0000 1.16 --- LabelScannerTest.java 10 May 2003 01:14:59 -0000 1.17 *************** *** 32,37 **** package org.htmlparser.tests.scannersTests; import junit.framework.TestSuite; ! import org.htmlparser.scanners.LabelScanner; import org.htmlparser.tags.LabelTag; --- 32,39 ---- package org.htmlparser.tests.scannersTests; + import java.util.*; import junit.framework.TestSuite; ! import org.htmlparser.Node; ! import org.htmlparser.StringNode; import org.htmlparser.scanners.LabelScanner; import org.htmlparser.tags.LabelTag; *************** *** 52,55 **** --- 54,58 ---- // check the title node LabelTag labelTag = (LabelTag) node[0]; + assertEquals("Label","This is a label tag",labelTag.getChildrenHTML()); assertEquals("Label","This is a label tag",labelTag.getLabel()); assertStringEquals("Label","<LABEL>This is a label tag</LABEL>",labelTag.toHtml()); *************** *** 84,89 **** --- 87,144 ---- } + public void testLabelWithManyCompositeTags() throws ParserException { + createParser("<label><span>Jane <b> Doe </b> Smith</span></label>"); + parser.registerScanners(); + LabelScanner labelScanner = new LabelScanner("-l"); + parser.addScanner(labelScanner); + parseAndAssertNodeCount(1); + assertTrue(node[0] instanceof LabelTag); + LabelTag labelTag = (LabelTag) node[0]; + assertEquals("Label value","<SPAN>Jane <B> Doe </B> Smith</SPAN>",labelTag.getChildrenHTML()); + assertEquals("Label value","Jane Doe Smith",labelTag.getLabel()); + assertStringEquals("Label","<LABEL><SPAN>Jane <B> Doe </B> Smith</SPAN></LABEL>",labelTag.toHtml()); + assertEquals("Label Scanner",labelScanner,labelTag.getThisScanner()); + } + + + public void testLabelsID() throws ParserException { + createParser("<label>John Doe</label>"); + parser.registerScanners(); + LabelScanner labelScanner = new LabelScanner("-l"); + parser.addScanner(labelScanner); + parseAndAssertNodeCount(1); + assertTrue(node[0] instanceof LabelTag); + + LabelTag labelTag = (LabelTag) node[0]; + assertStringEquals("Label","<LABEL>John Doe</LABEL>",labelTag.toHtml()); + Hashtable attr = labelTag.getAttributes(); + assertNull("ID",attr.get("id")); + } + + public void testNestedLabels() throws ParserException { + createParser("<label>John Doe<label>Jane Doe</label>"); + parser.registerScanners(); + LabelScanner labelScanner = new LabelScanner("-l"); + parser.addScanner(labelScanner); + parseAndAssertNodeCount(2); + assertTrue(node[0] instanceof LabelTag); + assertTrue(node[1] instanceof LabelTag); + + LabelTag labelTag = (LabelTag) node[0]; + assertStringEquals("Label","<LABEL>John Doe</LABEL>",labelTag.toHtml()); + labelTag = (LabelTag) node[1]; + assertStringEquals("Label","<LABEL>Jane Doe</LABEL>",labelTag.toHtml()); + Hashtable attr = labelTag.getAttributes(); + assertNull("ID",attr.get("id")); + } + public static TestSuite suite() { return new TestSuite(LabelScannerTest.class); } + + public static void main(String[] args) + { + new junit.awtui.TestRunner().start(new String[] {LabelScannerTest.class.getName()}); + } + } |
From: <der...@us...> - 2003-05-10 01:15:03
|
Update of /cvsroot/htmlparser/htmlparser/src/org/htmlparser/scanners In directory sc8-pr-cvs1:/tmp/cvs-serv11166/org/htmlparser/scanners Modified Files: LabelScanner.java Log Message: For Dhaval: Changed code and test case for LabelScanner. Basically a string like <label>John Doe<label>Jane Doe</label> gets parsed as <LABEL>John Doe<LABEL>Jane Doe</LABEL></LABEL> instead of <LABEL>John Doe</LABEL><LABEL>Jane Doe</LABEL> after call to toHtml() on the single LabelTag. Also it is parsed as a single node instead of 2 distinct nodes. Index: LabelScanner.java =================================================================== RCS file: /cvsroot/htmlparser/htmlparser/src/org/htmlparser/scanners/LabelScanner.java,v retrieving revision 1.17 retrieving revision 1.18 diff -C2 -d -r1.17 -r1.18 *** LabelScanner.java 6 May 2003 00:43:49 -0000 1.17 --- LabelScanner.java 10 May 2003 01:14:59 -0000 1.18 *************** *** 41,49 **** public LabelScanner() { ! this(""); } public LabelScanner(String filter) { ! super(filter,MATCH_NAME); } --- 41,49 ---- public LabelScanner() { ! super(MATCH_NAME,new String [] {},false); } public LabelScanner(String filter) { ! super(filter,MATCH_NAME,new String [] {},false); } |
From: <der...@us...> - 2003-05-09 03:32:13
|
Update of /cvsroot/htmlparser/htmlparser/docs In directory sc8-pr-cvs1:/tmp/cvs-serv12445/htmlparser/docs Modified Files: changes.txt Log Message: switch to cvs2cl mechanism Index: changes.txt =================================================================== RCS file: /cvsroot/htmlparser/htmlparser/docs/changes.txt,v retrieving revision 1.175 retrieving revision 1.176 diff -C2 -d -r1.175 -r1.176 *** changes.txt 7 May 2003 22:04:10 -0000 1.175 --- changes.txt 9 May 2003 03:32:10 -0000 1.176 *************** *** 1,2 **** --- 1,17 ---- + + ******************************************************************************* + * Developers * + * * + * Do not update this change log manually. * + * Instead, make your commit messages informative, and these will be harvested * + * at integration time by the cvs2cl.pl script and added here. * + * For details on this script see: * + * http://www.red-bean.com/cvs2cl/ * + * * + * For guidelines on what to put in commit messages see: * + * http://www.red-bean.com/cvs2cl/changelogs.html * + * * + ******************************************************************************* + Integration Build 1.3 - 20030511 -------------------------------- |