htmlparser-cvs Mailing List for HTML Parser (Page 35)
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-10-21 03:47:55
|
Update of /cvsroot/htmlparser/htmlparser/src/org/htmlparser/tests/utilTests In directory sc8-pr-cvs1:/tmp/cvs-serv21682/utilTests Modified Files: AllTests.java BeanTest.java CharacterTranslationTest.java HTMLLinkProcessorTest.java HTMLParserUtilsTest.java NodeListTest.java SortTest.java Log Message: Consolidated the various testing main() methods into ParserTestCase. All unit test classes in the org.htmlparser.tests heirarchy should now be executable. Index: AllTests.java =================================================================== RCS file: /cvsroot/htmlparser/htmlparser/src/org/htmlparser/tests/utilTests/AllTests.java,v retrieving revision 1.49 retrieving revision 1.50 diff -C2 -d -r1.49 -r1.50 *** AllTests.java 18 Oct 2003 20:50:37 -0000 1.49 --- AllTests.java 21 Oct 2003 02:24:01 -0000 1.50 *************** *** 32,35 **** --- 32,37 ---- import junit.framework.TestSuite; + import org.htmlparser.tests.ParserTestCase; + /** * Insert the type's description here. *************** *** 37,111 **** * @author: Administrator */ ! public class AllTests extends junit.framework.TestCase { ! /** ! * AllTests constructor comment. ! * @param name java.lang.String ! */ ! public AllTests(String name) { ! super(name); ! } /** ! * Mainline for all suites of tests. ! * @param args Command line arguments. The following options ! * are understood: ! * <pre> ! * -text -- use junit.textui.TestRunner ! * -awt -- use junit.awtui.TestRunner ! * -swing -- use junit.swingui.TestRunner (default) ! * </pre> ! * All other options are passed on to the junit framework. */ ! public static void main(String[] args) ! { ! String runner; ! int i; ! String arguments[]; ! Class cls; ! ! runner = null; ! for (i = 0; (i < args.length) && (null == runner); i++) ! { ! if (args[i].equalsIgnoreCase ("-text")) ! runner = "junit.textui.TestRunner"; ! else if (args[i].equalsIgnoreCase ("-awt")) ! runner = "junit.awtui.TestRunner"; ! else if (args[i].equalsIgnoreCase ("-swing")) ! runner = "junit.swingui.TestRunner"; ! } ! if (null != runner) ! { ! // remove it from the arguments ! arguments = new String[args.length - 1]; ! System.arraycopy (args, 0, arguments, 0, i - 1); ! System.arraycopy (args, i, arguments, i - 1, args.length - i); ! args = arguments; ! } ! else ! runner = "junit.swingui.TestRunner"; ! ! // append the test class ! arguments = new String[args.length + 1]; ! System.arraycopy (args, 0, arguments, 0, args.length); ! arguments[args.length] = "org.htmlparser.tests.utilTests.AllTests"; ! ! // invoke main() of the test runner ! try ! { ! cls = Class.forName (runner); ! java.lang.reflect.Method method = cls.getDeclaredMethod ( ! "main", new Class[] { String[].class }); ! method.invoke ( ! null, ! new Object[] { arguments }); ! } ! catch (Throwable t) ! { ! System.err.println ( ! "cannot run unit test (" ! + t.getMessage () ! + ")"); ! } } --- 39,55 ---- * @author: Administrator */ ! public class AllTests extends ParserTestCase { ! static ! { ! System.setProperty ("org.htmlparser.tests.utilTests.AllTests", "AllTests"); ! } /** ! * AllTests constructor comment. ! * @param name java.lang.String */ ! public AllTests(String name) { ! super(name); } Index: BeanTest.java =================================================================== RCS file: /cvsroot/htmlparser/htmlparser/src/org/htmlparser/tests/utilTests/BeanTest.java,v retrieving revision 1.43 retrieving revision 1.44 diff -C2 -d -r1.43 -r1.44 *** BeanTest.java 29 Sep 2003 00:00:39 -0000 1.43 --- BeanTest.java 21 Oct 2003 02:24:01 -0000 1.44 *************** *** 54,57 **** --- 54,62 ---- public class BeanTest extends ParserTestCase { + static + { + System.setProperty ("org.htmlparser.tests.utilTests.BeanTest", "BeanTest"); + } + public BeanTest (String name) { Index: CharacterTranslationTest.java =================================================================== RCS file: /cvsroot/htmlparser/htmlparser/src/org/htmlparser/tests/utilTests/CharacterTranslationTest.java,v retrieving revision 1.32 retrieving revision 1.33 diff -C2 -d -r1.32 -r1.33 *** CharacterTranslationTest.java 22 Sep 2003 02:40:13 -0000 1.32 --- CharacterTranslationTest.java 21 Oct 2003 02:24:01 -0000 1.33 *************** *** 29,38 **** package org.htmlparser.tests.utilTests; ! import junit.framework.TestCase; ! import org.htmlparser.util.Translate; ! public class CharacterTranslationTest extends TestCase { public CharacterTranslationTest (String name) { --- 29,42 ---- package org.htmlparser.tests.utilTests; ! import org.htmlparser.tests.ParserTestCase; import org.htmlparser.util.Translate; ! public class CharacterTranslationTest extends ParserTestCase { + static + { + System.setProperty ("org.htmlparser.tests.utilTests.CharacterTranslationTest", "CharacterTranslationTest"); + } + public CharacterTranslationTest (String name) { Index: HTMLLinkProcessorTest.java =================================================================== RCS file: /cvsroot/htmlparser/htmlparser/src/org/htmlparser/tests/utilTests/HTMLLinkProcessorTest.java,v retrieving revision 1.46 retrieving revision 1.47 diff -C2 -d -r1.46 -r1.47 *** HTMLLinkProcessorTest.java 22 Sep 2003 02:40:13 -0000 1.46 --- HTMLLinkProcessorTest.java 21 Oct 2003 02:24:01 -0000 1.47 *************** *** 28,31 **** --- 28,32 ---- package org.htmlparser.tests.utilTests; + import org.htmlparser.tags.LinkTag; import org.htmlparser.tests.ParserTestCase; *************** *** 34,37 **** --- 35,43 ---- public class HTMLLinkProcessorTest extends ParserTestCase { + static + { + System.setProperty ("org.htmlparser.tests.utilTests.HTMLLinkProcessorTest", "HTMLLinkProcessorTest"); + } + private LinkProcessor lp; Index: HTMLParserUtilsTest.java =================================================================== RCS file: /cvsroot/htmlparser/htmlparser/src/org/htmlparser/tests/utilTests/HTMLParserUtilsTest.java,v retrieving revision 1.10 retrieving revision 1.11 diff -C2 -d -r1.10 -r1.11 *** HTMLParserUtilsTest.java 22 Sep 2003 02:40:13 -0000 1.10 --- HTMLParserUtilsTest.java 21 Oct 2003 02:24:01 -0000 1.11 *************** *** 34,37 **** --- 34,42 ---- public class HTMLParserUtilsTest extends ParserTestCase { + static + { + System.setProperty ("org.htmlparser.tests.utilTests.HTMLParserUtilsTest", "HTMLParserUtilsTest"); + } + public HTMLParserUtilsTest(String name) { super(name); Index: NodeListTest.java =================================================================== RCS file: /cvsroot/htmlparser/htmlparser/src/org/htmlparser/tests/utilTests/NodeListTest.java,v retrieving revision 1.19 retrieving revision 1.20 diff -C2 -d -r1.19 -r1.20 *** NodeListTest.java 20 Oct 2003 01:28:04 -0000 1.19 --- NodeListTest.java 21 Oct 2003 02:24:01 -0000 1.20 *************** *** 36,39 **** --- 36,45 ---- public class NodeListTest extends ParserTestCase { + + static + { + System.setProperty ("org.htmlparser.tests.utilTests.NodeListTest", "NodeListTest"); + } + private NodeList nodeList; private Node[] testNodes; *************** *** 186,194 **** assertTrue("Second Element",null==nodeList.elementAt(1)); } - - public static void main(String[] args) - { - new junit.awtui.TestRunner().start(new String[] {NodeListTest.class.getName()}); - } - } --- 192,194 ---- Index: SortTest.java =================================================================== RCS file: /cvsroot/htmlparser/htmlparser/src/org/htmlparser/tests/utilTests/SortTest.java,v retrieving revision 1.6 retrieving revision 1.7 diff -C2 -d -r1.6 -r1.7 *** SortTest.java 22 Sep 2003 02:40:14 -0000 1.6 --- SortTest.java 21 Oct 2003 02:24:01 -0000 1.7 *************** *** 35,40 **** import java.util.Vector; ! import junit.framework.TestCase; ! import org.htmlparser.util.sort.Ordered; import org.htmlparser.util.sort.Sort; --- 35,39 ---- import java.util.Vector; ! import org.htmlparser.tests.ParserTestCase; import org.htmlparser.util.sort.Ordered; import org.htmlparser.util.sort.Sort; *************** *** 44,49 **** * Sort testing. */ ! public class SortTest extends TestCase { /** --- 43,52 ---- * Sort testing. */ ! public class SortTest extends ParserTestCase { + static + { + System.setProperty ("org.htmlparser.tests.utilTests.SortTest", "SortTest"); + } /** |
From: <der...@us...> - 2003-10-21 03:24:32
|
Update of /cvsroot/htmlparser/htmlparser/src/org/htmlparser/tests/visitorsTests In directory sc8-pr-cvs1:/tmp/cvs-serv21682/visitorsTests Modified Files: AllTests.java CompositeTagFindingVisitorTest.java HtmlPageTest.java LinkFindingVisitorTest.java NodeVisitorTest.java StringFindingVisitorTest.java TagFindingVisitorTest.java TextExtractingVisitorTest.java UrlModifyingVisitorTest.java Log Message: Consolidated the various testing main() methods into ParserTestCase. All unit test classes in the org.htmlparser.tests heirarchy should now be executable. Index: AllTests.java =================================================================== RCS file: /cvsroot/htmlparser/htmlparser/src/org/htmlparser/tests/visitorsTests/AllTests.java,v retrieving revision 1.36 retrieving revision 1.37 diff -C2 -d -r1.36 -r1.37 *** AllTests.java 22 Sep 2003 02:40:14 -0000 1.36 --- AllTests.java 21 Oct 2003 02:24:01 -0000 1.37 *************** *** 30,36 **** import junit.framework.TestSuite; ! public class AllTests extends junit.framework.TestCase { public AllTests(String name) { super(name); --- 30,42 ---- import junit.framework.TestSuite; + import org.htmlparser.tests.ParserTestCase; ! public class AllTests extends ParserTestCase { + static + { + System.setProperty ("org.htmlparser.tests.visitorsTests.AllTests", "AllTests"); + } + public AllTests(String name) { super(name); *************** *** 50,129 **** return suite; - } - - /** - * Mainline for all suites of tests. - * @param args Command line arguments. The following options - * are understood: - * <pre> - * -text -- use junit.textui.TestRunner - * -awt -- use junit.awtui.TestRunner - * -swing -- use junit.swingui.TestRunner (default) - * </pre> - * All other options are passed on to the junit framework. - */ - public static void main(String[] args) - { - String runner; - int i; - String arguments[]; - Class cls; - - runner = null; - for (i = 0; (i < args.length) && (null == runner); i++) - { - if (args[i].equalsIgnoreCase ("-text")) - runner = "junit.textui.TestRunner"; - else if (args[i].equalsIgnoreCase ("-awt")) - runner = "junit.awtui.TestRunner"; - else if (args[i].equalsIgnoreCase ("-swing")) - runner = "junit.swingui.TestRunner"; - } - if (null != runner) - { - // remove it from the arguments - arguments = new String[args.length - 1]; - System.arraycopy (args, 0, arguments, 0, i - 1); - System.arraycopy (args, i, arguments, i - 1, args.length - i); - args = arguments; - } - else - runner = "junit.swingui.TestRunner"; - - /* - * from http://www.mail-archive.com/commons-user%40jakarta.apache.org/msg02958.html - * - * The problem is within the UI test runners of JUnit. They bring - * with them a custom classloader, which causes the - * LogConfigurationException. Unfortunately Log4j doesn't work - * either. - * - * Solution: Disable "Reload classes every run" or start JUnit with - * command line option -noloading before the name of the Testsuite. - */ - - // append the test class - arguments = new String[args.length + 2]; - System.arraycopy (args, 0, arguments, 0, args.length); - arguments[arguments.length - 2] = "-noloading"; - arguments[arguments.length - 1] = "org.htmlparser.tests.visitorsTests.AllTests"; - - // invoke main() of the test runner - try - { - cls = Class.forName (runner); - java.lang.reflect.Method method = cls.getDeclaredMethod ( - "main", new Class[] { String[].class }); - method.invoke ( - null, - new Object[] { arguments }); - } - catch (Throwable t) - { - System.err.println ( - "cannot run unit test (" - + t.getMessage () - + ")"); - } } } --- 56,59 ---- Index: CompositeTagFindingVisitorTest.java =================================================================== RCS file: /cvsroot/htmlparser/htmlparser/src/org/htmlparser/tests/visitorsTests/CompositeTagFindingVisitorTest.java,v retrieving revision 1.9 retrieving revision 1.10 diff -C2 -d -r1.9 -r1.10 *** CompositeTagFindingVisitorTest.java 22 Sep 2003 02:40:14 -0000 1.9 --- CompositeTagFindingVisitorTest.java 21 Oct 2003 02:24:01 -0000 1.10 *************** *** 31,37 **** import org.htmlparser.tests.ParserTestCase; - - public class CompositeTagFindingVisitorTest extends ParserTestCase { public CompositeTagFindingVisitorTest(String name) { --- 31,40 ---- import org.htmlparser.tests.ParserTestCase; public class CompositeTagFindingVisitorTest extends ParserTestCase { + + static + { + System.setProperty ("org.htmlparser.tests.visitorsTests.CompositeTagFindingVisitorTest", "CompositeTagFindingVisitorTest"); + } public CompositeTagFindingVisitorTest(String name) { Index: HtmlPageTest.java =================================================================== RCS file: /cvsroot/htmlparser/htmlparser/src/org/htmlparser/tests/visitorsTests/HtmlPageTest.java,v retrieving revision 1.12 retrieving revision 1.13 diff -C2 -d -r1.12 -r1.13 *** HtmlPageTest.java 22 Sep 2003 02:40:14 -0000 1.12 --- HtmlPageTest.java 21 Oct 2003 02:24:01 -0000 1.13 *************** *** 40,43 **** --- 40,48 ---- public class HtmlPageTest extends ParserTestCase { + static + { + System.setProperty ("org.htmlparser.tests.visitorsTests.HtmlPageTest", "HtmlPageTest"); + } + private static final String SIMPLE_PAGE = "<html>" + Index: LinkFindingVisitorTest.java =================================================================== RCS file: /cvsroot/htmlparser/htmlparser/src/org/htmlparser/tests/visitorsTests/LinkFindingVisitorTest.java,v retrieving revision 1.9 retrieving revision 1.10 diff -C2 -d -r1.9 -r1.10 *** LinkFindingVisitorTest.java 22 Sep 2003 02:40:14 -0000 1.9 --- LinkFindingVisitorTest.java 21 Oct 2003 02:24:01 -0000 1.10 *************** *** 33,36 **** --- 33,42 ---- public class LinkFindingVisitorTest extends ParserTestCase { + + static + { + System.setProperty ("org.htmlparser.tests.visitorsTests.LinkFindingVisitorTest", "LinkFindingVisitorTest"); + } + private String html = "<HTML><HEAD><TITLE>This is the Title</TITLE></HEAD><BODY>Hello World, <A href=\"http://www.industriallogic.com\">Industrial Logic</a></BODY></HTML>"; Index: NodeVisitorTest.java =================================================================== RCS file: /cvsroot/htmlparser/htmlparser/src/org/htmlparser/tests/visitorsTests/NodeVisitorTest.java,v retrieving revision 1.9 retrieving revision 1.10 diff -C2 -d -r1.9 -r1.10 *** NodeVisitorTest.java 22 Sep 2003 02:40:14 -0000 1.9 --- NodeVisitorTest.java 21 Oct 2003 02:24:01 -0000 1.10 *************** *** 39,42 **** --- 39,47 ---- public class NodeVisitorTest extends ParserTestCase { + static + { + System.setProperty ("org.htmlparser.tests.visitorsTests.NodeVisitorTest", "NodeVisitorTest"); + } + public NodeVisitorTest(String name) { super(name); Index: StringFindingVisitorTest.java =================================================================== RCS file: /cvsroot/htmlparser/htmlparser/src/org/htmlparser/tests/visitorsTests/StringFindingVisitorTest.java,v retrieving revision 1.11 retrieving revision 1.12 diff -C2 -d -r1.11 -r1.12 *** StringFindingVisitorTest.java 22 Sep 2003 02:40:15 -0000 1.11 --- StringFindingVisitorTest.java 21 Oct 2003 02:24:01 -0000 1.12 *************** *** 33,36 **** --- 33,42 ---- public class StringFindingVisitorTest extends ParserTestCase { + + static + { + System.setProperty ("org.htmlparser.tests.visitorsTests.StringFindingVisitorTest", "StringFindingVisitorTest"); + } + private static final String HTML = "<HTML><HEAD><TITLE>This is the Title</TITLE>" + Index: TagFindingVisitorTest.java =================================================================== RCS file: /cvsroot/htmlparser/htmlparser/src/org/htmlparser/tests/visitorsTests/TagFindingVisitorTest.java,v retrieving revision 1.12 retrieving revision 1.13 diff -C2 -d -r1.12 -r1.13 *** TagFindingVisitorTest.java 22 Sep 2003 02:40:15 -0000 1.12 --- TagFindingVisitorTest.java 21 Oct 2003 02:24:01 -0000 1.13 *************** *** 35,38 **** --- 35,44 ---- public class TagFindingVisitorTest extends ParserTestCase { + + static + { + System.setProperty ("org.htmlparser.tests.visitorsTests.TagFindingVisitorTest", "TagFindingVisitorTest"); + } + private String html = "<HTML><HEAD><TITLE>This is the Title</TITLE></HEAD>" + Index: TextExtractingVisitorTest.java =================================================================== RCS file: /cvsroot/htmlparser/htmlparser/src/org/htmlparser/tests/visitorsTests/TextExtractingVisitorTest.java,v retrieving revision 1.9 retrieving revision 1.10 diff -C2 -d -r1.9 -r1.10 *** TextExtractingVisitorTest.java 22 Sep 2003 02:40:15 -0000 1.9 --- TextExtractingVisitorTest.java 21 Oct 2003 02:24:01 -0000 1.10 *************** *** 34,37 **** --- 34,42 ---- public class TextExtractingVisitorTest extends ParserTestCase { + static + { + System.setProperty ("org.htmlparser.tests.visitorsTests.TextExtractingVisitorTest", "TextExtractingVisitorTest"); + } + public TextExtractingVisitorTest(String name) { super(name); Index: UrlModifyingVisitorTest.java =================================================================== RCS file: /cvsroot/htmlparser/htmlparser/src/org/htmlparser/tests/visitorsTests/UrlModifyingVisitorTest.java,v retrieving revision 1.11 retrieving revision 1.12 diff -C2 -d -r1.11 -r1.12 *** UrlModifyingVisitorTest.java 20 Oct 2003 01:28:04 -0000 1.11 --- UrlModifyingVisitorTest.java 21 Oct 2003 02:24:01 -0000 1.12 *************** *** 34,37 **** --- 34,43 ---- public class UrlModifyingVisitorTest extends ParserTestCase { + + static + { + System.setProperty ("org.htmlparser.tests.visitorsTests.UrlModifyingVisitorTest", "UrlModifyingVisitorTest"); + } + private static final String HTML_WITH_LINK = "<HTML><BODY>" + |
Update of /cvsroot/htmlparser/htmlparser/src/org/htmlparser/tests/scannersTests In directory sc8-pr-cvs1:/tmp/cvs-serv21682/scannersTests Modified Files: AllTests.java AppletScannerTest.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: Consolidated the various testing main() methods into ParserTestCase. All unit test classes in the org.htmlparser.tests heirarchy should now be executable. Index: AllTests.java =================================================================== RCS file: /cvsroot/htmlparser/htmlparser/src/org/htmlparser/tests/scannersTests/AllTests.java,v retrieving revision 1.49 retrieving revision 1.50 diff -C2 -d -r1.49 -r1.50 *** AllTests.java 22 Sep 2003 02:40:08 -0000 1.49 --- AllTests.java 21 Oct 2003 02:24:01 -0000 1.50 *************** *** 51,56 **** import junit.framework.TestSuite; ! public class AllTests extends junit.framework.TestCase { public AllTests(String name) { --- 51,62 ---- import junit.framework.TestSuite; ! import org.htmlparser.tests.ParserTestCase; ! ! public class AllTests extends ParserTestCase { + static + { + System.setProperty ("org.htmlparser.tests.scannersTests.AllTests", "AllTests"); + } public AllTests(String name) { *************** *** 89,155 **** suite.addTestSuite(XmlEndTagScanningTest.class); return suite; - } - - /** - * Mainline for all suites of tests. - * @param args Command line arguments. The following options - * are understood: - * <pre> - * -text -- use junit.textui.TestRunner - * -awt -- use junit.awtui.TestRunner - * -swing -- use junit.swingui.TestRunner (default) - * </pre> - * All other options are passed on to the junit framework. - */ - public static void main(String[] args) - { - String runner; - int i; - String arguments[]; - Class cls; - - runner = null; - for (i = 0; (i < args.length) && (null == runner); i++) - { - if (args[i].equalsIgnoreCase ("-text")) - runner = "junit.textui.TestRunner"; - else if (args[i].equalsIgnoreCase ("-awt")) - runner = "junit.awtui.TestRunner"; - else if (args[i].equalsIgnoreCase ("-swing")) - runner = "junit.swingui.TestRunner"; - } - if (null != runner) - { - // remove it from the arguments - arguments = new String[args.length - 1]; - System.arraycopy (args, 0, arguments, 0, i - 1); - System.arraycopy (args, i, arguments, i - 1, args.length - i); - args = arguments; - } - else - runner = "junit.swingui.TestRunner"; - - // append the test class - arguments = new String[args.length + 1]; - System.arraycopy (args, 0, arguments, 0, args.length); - arguments[args.length] = "org.htmlparser.tests.scannersTests.AllTests"; - - // invoke main() of the test runner - try - { - cls = Class.forName (runner); - java.lang.reflect.Method method = cls.getDeclaredMethod ( - "main", new Class[] { String[].class }); - method.invoke ( - null, - new Object[] { arguments }); - } - catch (Throwable t) - { - System.err.println ( - "cannot run unit test (" - + t.getMessage () - + ")"); - } } } --- 95,98 ---- Index: AppletScannerTest.java =================================================================== RCS file: /cvsroot/htmlparser/htmlparser/src/org/htmlparser/tests/scannersTests/AppletScannerTest.java,v retrieving revision 1.28 retrieving revision 1.29 diff -C2 -d -r1.28 -r1.29 *** AppletScannerTest.java 5 Oct 2003 13:49:54 -0000 1.28 --- AppletScannerTest.java 21 Oct 2003 02:24:01 -0000 1.29 *************** *** 38,41 **** --- 38,45 ---- public class AppletScannerTest extends ParserTestCase { + static + { + System.setProperty ("org.htmlparser.tests.scannersTests.AppletScannerTest", "AppletScannerTest"); + } public AppletScannerTest(String name) { Index: BaseHREFScannerTest.java =================================================================== RCS file: /cvsroot/htmlparser/htmlparser/src/org/htmlparser/tests/scannersTests/BaseHREFScannerTest.java,v retrieving revision 1.27 retrieving revision 1.28 diff -C2 -d -r1.27 -r1.28 *** BaseHREFScannerTest.java 22 Sep 2003 02:40:09 -0000 1.27 --- BaseHREFScannerTest.java 21 Oct 2003 02:24:01 -0000 1.28 *************** *** 39,42 **** --- 39,47 ---- public class BaseHREFScannerTest extends ParserTestCase { + static + { + System.setProperty ("org.htmlparser.tests.scannersTests.BaseHREFScannerTest", "BaseHREFScannerTest"); + } + private BaseHrefScanner scanner; Index: BodyScannerTest.java =================================================================== RCS file: /cvsroot/htmlparser/htmlparser/src/org/htmlparser/tests/scannersTests/BodyScannerTest.java,v retrieving revision 1.14 retrieving revision 1.15 diff -C2 -d -r1.14 -r1.15 *** BodyScannerTest.java 6 Oct 2003 01:43:28 -0000 1.14 --- BodyScannerTest.java 21 Oct 2003 02:24:01 -0000 1.15 *************** *** 39,42 **** --- 39,47 ---- public class BodyScannerTest extends ParserTestCase { + static + { + System.setProperty ("org.htmlparser.tests.scannersTests.BodyScannerTest", "BodyScannerTest"); + } + public BodyScannerTest(String name) { super(name); *************** *** 103,112 **** return new TestSuite(BodyScannerTest.class); } - - public static void main(String[] args) - { - new junit.awtui.TestRunner().start(new String[] {BodyScannerTest.class.getName()}); - } - - } --- 108,110 ---- Index: BulletListScannerTest.java =================================================================== RCS file: /cvsroot/htmlparser/htmlparser/src/org/htmlparser/tests/scannersTests/BulletListScannerTest.java,v retrieving revision 1.10 retrieving revision 1.11 diff -C2 -d -r1.10 -r1.11 *** BulletListScannerTest.java 6 Oct 2003 01:43:28 -0000 1.10 --- BulletListScannerTest.java 21 Oct 2003 02:24:01 -0000 1.11 *************** *** 46,49 **** --- 46,54 ---- public class BulletListScannerTest extends ParserTestCase { + static + { + System.setProperty ("org.htmlparser.tests.scannersTests.BulletListScannerTest", "BulletListScannerTest"); + } + public BulletListScannerTest(String name) { super(name); Index: BulletScannerTest.java =================================================================== RCS file: /cvsroot/htmlparser/htmlparser/src/org/htmlparser/tests/scannersTests/BulletScannerTest.java,v retrieving revision 1.10 retrieving revision 1.11 diff -C2 -d -r1.10 -r1.11 *** BulletScannerTest.java 22 Sep 2003 02:40:09 -0000 1.10 --- BulletScannerTest.java 21 Oct 2003 02:24:01 -0000 1.11 *************** *** 38,41 **** --- 38,46 ---- public class BulletScannerTest extends ParserTestCase { + static + { + System.setProperty ("org.htmlparser.tests.scannersTests.BulletScannerTest", "BulletScannerTest"); + } + public BulletScannerTest(String name) { super(name); Index: CompositeTagScannerTest.java =================================================================== RCS file: /cvsroot/htmlparser/htmlparser/src/org/htmlparser/tests/scannersTests/CompositeTagScannerTest.java,v retrieving revision 1.42 retrieving revision 1.43 diff -C2 -d -r1.42 -r1.43 *** CompositeTagScannerTest.java 20 Oct 2003 01:28:04 -0000 1.42 --- CompositeTagScannerTest.java 21 Oct 2003 02:24:01 -0000 1.43 *************** *** 41,44 **** --- 41,49 ---- public class CompositeTagScannerTest extends ParserTestCase { + static + { + System.setProperty ("org.htmlparser.tests.scannersTests.CompositeTagScannerTest", "CompositeTagScannerTest"); + } + private CompositeTagScanner scanner; private String url; Index: DivScannerTest.java =================================================================== RCS file: /cvsroot/htmlparser/htmlparser/src/org/htmlparser/tests/scannersTests/DivScannerTest.java,v retrieving revision 1.33 retrieving revision 1.34 diff -C2 -d -r1.33 -r1.34 *** DivScannerTest.java 22 Sep 2003 02:40:09 -0000 1.33 --- DivScannerTest.java 21 Oct 2003 02:24:01 -0000 1.34 *************** *** 40,43 **** --- 40,48 ---- public class DivScannerTest extends ParserTestCase { + static + { + System.setProperty ("org.htmlparser.tests.scannersTests.DivScannerTest", "DivScannerTest"); + } + public DivScannerTest(String name) { super(name); Index: FormScannerTest.java =================================================================== RCS file: /cvsroot/htmlparser/htmlparser/src/org/htmlparser/tests/scannersTests/FormScannerTest.java,v retrieving revision 1.36 retrieving revision 1.37 diff -C2 -d -r1.36 -r1.37 *** FormScannerTest.java 18 Oct 2003 20:50:37 -0000 1.36 --- FormScannerTest.java 21 Oct 2003 02:24:01 -0000 1.37 *************** *** 45,48 **** --- 45,54 ---- public class FormScannerTest extends ParserTestCase { + + static + { + System.setProperty ("org.htmlparser.tests.scannersTests.FormScannerTest", "FormScannerTest"); + } + public static final String FORM_HTML = "<FORM METHOD=\""+FormTag.POST+"\" ACTION=\"do_login.php\" NAME=\"login_form\" onSubmit=\"return CheckData()\">\n"+ Index: FrameScannerTest.java =================================================================== RCS file: /cvsroot/htmlparser/htmlparser/src/org/htmlparser/tests/scannersTests/FrameScannerTest.java,v retrieving revision 1.28 retrieving revision 1.29 diff -C2 -d -r1.28 -r1.29 *** FrameScannerTest.java 5 Oct 2003 13:49:54 -0000 1.28 --- FrameScannerTest.java 21 Oct 2003 02:24:01 -0000 1.29 *************** *** 36,39 **** --- 36,44 ---- public class FrameScannerTest extends ParserTestCase { + static + { + System.setProperty ("org.htmlparser.tests.scannersTests.FrameScannerTest", "FrameScannerTest"); + } + public FrameScannerTest(String name) { super(name); Index: FrameSetScannerTest.java =================================================================== RCS file: /cvsroot/htmlparser/htmlparser/src/org/htmlparser/tests/scannersTests/FrameSetScannerTest.java,v retrieving revision 1.27 retrieving revision 1.28 diff -C2 -d -r1.27 -r1.28 *** FrameSetScannerTest.java 22 Sep 2003 02:40:10 -0000 1.27 --- FrameSetScannerTest.java 21 Oct 2003 02:24:01 -0000 1.28 *************** *** 38,41 **** --- 38,46 ---- public class FrameSetScannerTest extends ParserTestCase { + static + { + System.setProperty ("org.htmlparser.tests.scannersTests.FrameSetScannerTest", "FrameSetScannerTest"); + } + public FrameSetScannerTest(String name) { super(name); Index: HeadScannerTest.java =================================================================== RCS file: /cvsroot/htmlparser/htmlparser/src/org/htmlparser/tests/scannersTests/HeadScannerTest.java,v retrieving revision 1.17 retrieving revision 1.18 diff -C2 -d -r1.17 -r1.18 *** HeadScannerTest.java 22 Sep 2003 02:40:10 -0000 1.17 --- HeadScannerTest.java 21 Oct 2003 02:24:01 -0000 1.18 *************** *** 39,42 **** --- 39,47 ---- public class HeadScannerTest extends ParserTestCase { + static + { + System.setProperty ("org.htmlparser.tests.scannersTests.HeadScannerTest", "HeadScannerTest"); + } + public HeadScannerTest(String name) { super(name); *************** *** 77,89 **** } - public static TestSuite suite() { return new TestSuite(HeadScannerTest.class); } - - public static void main(String[] args) - { - new junit.awtui.TestRunner().start(new String[] {HeadScannerTest.class.getName()}); - } - } --- 82,87 ---- Index: HtmlTest.java =================================================================== RCS file: /cvsroot/htmlparser/htmlparser/src/org/htmlparser/tests/scannersTests/HtmlTest.java,v retrieving revision 1.11 retrieving revision 1.12 diff -C2 -d -r1.11 -r1.12 *** HtmlTest.java 22 Sep 2003 02:40:10 -0000 1.11 --- HtmlTest.java 21 Oct 2003 02:24:01 -0000 1.12 *************** *** 39,42 **** --- 39,47 ---- public class HtmlTest extends ParserTestCase { + static + { + System.setProperty ("org.htmlparser.tests.scannersTests.HtmlTest", "HtmlTest"); + } + public HtmlTest(String name) { super(name); Index: ImageScannerTest.java =================================================================== RCS file: /cvsroot/htmlparser/htmlparser/src/org/htmlparser/tests/scannersTests/ImageScannerTest.java,v retrieving revision 1.34 retrieving revision 1.35 diff -C2 -d -r1.34 -r1.35 *** ImageScannerTest.java 20 Oct 2003 01:28:04 -0000 1.34 --- ImageScannerTest.java 21 Oct 2003 02:24:01 -0000 1.35 *************** *** 46,49 **** --- 46,54 ---- { + static + { + System.setProperty ("org.htmlparser.tests.scannersTests.ImageScannerTest", "ImageScannerTest"); + } + public ImageScannerTest(String name) { super(name); Index: InputTagScannerTest.java =================================================================== RCS file: /cvsroot/htmlparser/htmlparser/src/org/htmlparser/tests/scannersTests/InputTagScannerTest.java,v retrieving revision 1.27 retrieving revision 1.28 diff -C2 -d -r1.27 -r1.28 *** InputTagScannerTest.java 22 Sep 2003 02:40:10 -0000 1.27 --- InputTagScannerTest.java 21 Oct 2003 02:24:01 -0000 1.28 *************** *** 36,39 **** --- 36,43 ---- public class InputTagScannerTest extends ParserTestCase { + static + { + System.setProperty ("org.htmlparser.tests.scannersTests.InputTagScannerTest", "InputTagScannerTest"); + } private String testHTML = new String("<INPUT type=\"text\" name=\"Google\">"); Index: JspScannerTest.java =================================================================== RCS file: /cvsroot/htmlparser/htmlparser/src/org/htmlparser/tests/scannersTests/JspScannerTest.java,v retrieving revision 1.30 retrieving revision 1.31 diff -C2 -d -r1.30 -r1.31 *** JspScannerTest.java 13 Oct 2003 21:48:13 -0000 1.30 --- JspScannerTest.java 21 Oct 2003 02:24:01 -0000 1.31 *************** *** 36,39 **** --- 36,45 ---- public class JspScannerTest extends ParserTestCase { + + static + { + System.setProperty ("org.htmlparser.tests.scannersTests.JspScannerTest", "JspScannerTest"); + } + private static final boolean JSP_TESTS_ENABLED = false; Index: LabelScannerTest.java =================================================================== RCS file: /cvsroot/htmlparser/htmlparser/src/org/htmlparser/tests/scannersTests/LabelScannerTest.java,v retrieving revision 1.38 retrieving revision 1.39 diff -C2 -d -r1.38 -r1.39 *** LabelScannerTest.java 6 Oct 2003 01:43:28 -0000 1.38 --- LabelScannerTest.java 21 Oct 2003 02:24:01 -0000 1.39 *************** *** 41,44 **** --- 41,49 ---- public class LabelScannerTest extends ParserTestCase { + static + { + System.setProperty ("org.htmlparser.tests.scannersTests.LabelScannerTest", "LabelScannerTest"); + } + public LabelScannerTest(String name) { super(name); *************** *** 195,203 **** return new TestSuite(LabelScannerTest.class); } - - public static void main(String[] args) - { - new junit.awtui.TestRunner().start(new String[] {LabelScannerTest.class.getName()}); - } - } --- 200,202 ---- Index: LinkScannerTest.java =================================================================== RCS file: /cvsroot/htmlparser/htmlparser/src/org/htmlparser/tests/scannersTests/LinkScannerTest.java,v retrieving revision 1.42 retrieving revision 1.43 diff -C2 -d -r1.42 -r1.43 *** LinkScannerTest.java 20 Oct 2003 01:28:04 -0000 1.42 --- LinkScannerTest.java 21 Oct 2003 02:24:01 -0000 1.43 *************** *** 46,49 **** --- 46,54 ---- public class LinkScannerTest extends ParserTestCase { + static + { + System.setProperty ("org.htmlparser.tests.scannersTests.LinkScannerTest", "LinkScannerTest"); + } + public LinkScannerTest(String name) { super(name); Index: MetaTagScannerTest.java =================================================================== RCS file: /cvsroot/htmlparser/htmlparser/src/org/htmlparser/tests/scannersTests/MetaTagScannerTest.java,v retrieving revision 1.32 retrieving revision 1.33 diff -C2 -d -r1.32 -r1.33 *** MetaTagScannerTest.java 13 Oct 2003 21:48:13 -0000 1.32 --- MetaTagScannerTest.java 21 Oct 2003 02:24:01 -0000 1.33 *************** *** 37,40 **** --- 37,45 ---- public class MetaTagScannerTest extends ParserTestCase { + static + { + System.setProperty ("org.htmlparser.tests.scannersTests.MetaTagScannerTest", "MetaTagScannerTest"); + } + public MetaTagScannerTest(String name) { super(name); Index: OptionTagScannerTest.java =================================================================== RCS file: /cvsroot/htmlparser/htmlparser/src/org/htmlparser/tests/scannersTests/OptionTagScannerTest.java,v retrieving revision 1.30 retrieving revision 1.31 diff -C2 -d -r1.30 -r1.31 *** OptionTagScannerTest.java 5 Oct 2003 13:49:54 -0000 1.30 --- OptionTagScannerTest.java 21 Oct 2003 02:24:01 -0000 1.31 *************** *** 40,43 **** --- 40,47 ---- public class OptionTagScannerTest extends ParserTestCase { + static + { + System.setProperty ("org.htmlparser.tests.scannersTests.OptionTagScannerTest", "OptionTagScannerTest"); + } private String testHTML = new String( *************** *** 76,83 **** } } - public static void main(String[] args) - { - new junit.awtui.TestRunner().start(new String[] {OptionTagScannerTest.class.getName()}); - } - } --- 80,82 ---- Index: ScriptScannerTest.java =================================================================== RCS file: /cvsroot/htmlparser/htmlparser/src/org/htmlparser/tests/scannersTests/ScriptScannerTest.java,v retrieving revision 1.42 retrieving revision 1.43 diff -C2 -d -r1.42 -r1.43 *** ScriptScannerTest.java 13 Oct 2003 21:48:14 -0000 1.42 --- ScriptScannerTest.java 21 Oct 2003 02:24:01 -0000 1.43 *************** *** 40,43 **** --- 40,47 ---- public class ScriptScannerTest extends ParserTestCase { + static + { + System.setProperty ("org.htmlparser.tests.scannersTests.ScriptScannerTest", "ScriptScannerTest"); + } public ScriptScannerTest(String name) { Index: SelectTagScannerTest.java =================================================================== RCS file: /cvsroot/htmlparser/htmlparser/src/org/htmlparser/tests/scannersTests/SelectTagScannerTest.java,v retrieving revision 1.29 retrieving revision 1.30 diff -C2 -d -r1.29 -r1.30 *** SelectTagScannerTest.java 22 Sep 2003 02:40:11 -0000 1.29 --- SelectTagScannerTest.java 21 Oct 2003 02:24:01 -0000 1.30 *************** *** 41,44 **** --- 41,48 ---- public class SelectTagScannerTest extends ParserTestCase { + static + { + System.setProperty ("org.htmlparser.tests.scannersTests.SelectTagScannerTest", "SelectTagScannerTest"); + } private String testHTML = new String( Index: SpanScannerTest.java =================================================================== RCS file: /cvsroot/htmlparser/htmlparser/src/org/htmlparser/tests/scannersTests/SpanScannerTest.java,v retrieving revision 1.30 retrieving revision 1.31 diff -C2 -d -r1.30 -r1.31 *** SpanScannerTest.java 22 Sep 2003 02:40:11 -0000 1.30 --- SpanScannerTest.java 21 Oct 2003 02:24:01 -0000 1.31 *************** *** 38,41 **** --- 38,46 ---- public class SpanScannerTest extends ParserTestCase { + static + { + System.setProperty ("org.htmlparser.tests.scannersTests.SpanScannerTest", "SpanScannerTest"); + } + private static final String HTML_WITH_SPAN = "<TD BORDER=\"0.0\" VALIGN=\"Top\" COLSPAN=\"4\" WIDTH=\"33.33%\">" + Index: StyleScannerTest.java =================================================================== RCS file: /cvsroot/htmlparser/htmlparser/src/org/htmlparser/tests/scannersTests/StyleScannerTest.java,v retrieving revision 1.29 retrieving revision 1.30 diff -C2 -d -r1.29 -r1.30 *** StyleScannerTest.java 6 Oct 2003 01:43:28 -0000 1.29 --- StyleScannerTest.java 21 Oct 2003 02:24:01 -0000 1.30 *************** *** 35,38 **** --- 35,42 ---- public class StyleScannerTest extends ParserTestCase { + static + { + System.setProperty ("org.htmlparser.tests.scannersTests.StyleScannerTest", "StyleScannerTest"); + } public StyleScannerTest(String name) { Index: TableScannerTest.java =================================================================== RCS file: /cvsroot/htmlparser/htmlparser/src/org/htmlparser/tests/scannersTests/TableScannerTest.java,v retrieving revision 1.37 retrieving revision 1.38 diff -C2 -d -r1.37 -r1.38 *** TableScannerTest.java 20 Oct 2003 01:28:04 -0000 1.37 --- TableScannerTest.java 21 Oct 2003 02:24:01 -0000 1.38 *************** *** 41,44 **** --- 41,49 ---- public class TableScannerTest extends ParserTestCase { + static + { + System.setProperty ("org.htmlparser.tests.scannersTests.TableScannerTest", "TableScannerTest"); + } + public TableScannerTest(String name) { super(name); Index: TagScannerTest.java =================================================================== RCS file: /cvsroot/htmlparser/htmlparser/src/org/htmlparser/tests/scannersTests/TagScannerTest.java,v retrieving revision 1.32 retrieving revision 1.33 diff -C2 -d -r1.32 -r1.33 *** TagScannerTest.java 20 Oct 2003 01:28:04 -0000 1.32 --- TagScannerTest.java 21 Oct 2003 02:24:01 -0000 1.33 *************** *** 44,47 **** --- 44,51 ---- public class TagScannerTest extends ParserTestCase { + static + { + System.setProperty ("org.htmlparser.tests.scannersTests.TagScannerTest", "TagScannerTest"); + } public TagScannerTest(String name) { Index: TextareaTagScannerTest.java =================================================================== RCS file: /cvsroot/htmlparser/htmlparser/src/org/htmlparser/tests/scannersTests/TextareaTagScannerTest.java,v retrieving revision 1.27 retrieving revision 1.28 diff -C2 -d -r1.27 -r1.28 *** TextareaTagScannerTest.java 22 Sep 2003 02:40:11 -0000 1.27 --- TextareaTagScannerTest.java 21 Oct 2003 02:24:01 -0000 1.28 *************** *** 38,41 **** --- 38,45 ---- public class TextareaTagScannerTest extends ParserTestCase { + static + { + System.setProperty ("org.htmlparser.tests.scannersTests.TextareaTagScannerTest", "TextareaTagScannerTest"); + } private String testHTML = new String( Index: TitleScannerTest.java =================================================================== RCS file: /cvsroot/htmlparser/htmlparser/src/org/htmlparser/tests/scannersTests/TitleScannerTest.java,v retrieving revision 1.30 retrieving revision 1.31 diff -C2 -d -r1.30 -r1.31 *** TitleScannerTest.java 6 Oct 2003 01:43:28 -0000 1.30 --- TitleScannerTest.java 21 Oct 2003 02:24:01 -0000 1.31 *************** *** 37,40 **** --- 37,45 ---- public class TitleScannerTest extends ParserTestCase { + static + { + System.setProperty ("org.htmlparser.tests.scannersTests.TitleScannerTest", "TitleScannerTest"); + } + public TitleScannerTest(String name) { super(name); Index: XmlEndTagScanningTest.java =================================================================== RCS file: /cvsroot/htmlparser/htmlparser/src/org/htmlparser/tests/scannersTests/XmlEndTagScanningTest.java,v retrieving revision 1.30 retrieving revision 1.31 diff -C2 -d -r1.30 -r1.31 *** XmlEndTagScanningTest.java 22 Sep 2003 02:40:11 -0000 1.30 --- XmlEndTagScanningTest.java 21 Oct 2003 02:24:01 -0000 1.31 *************** *** 35,38 **** --- 35,43 ---- public class XmlEndTagScanningTest extends ParserTestCase{ + static + { + System.setProperty ("org.htmlparser.tests.scannersTests.XmlEndTagScanningTest", "XmlEndTagScanningTest"); + } + public XmlEndTagScanningTest(String name) { super(name); |
Update of /cvsroot/htmlparser/htmlparser/src/org/htmlparser/tests/nodeDecoratorTests In directory sc8-pr-cvs1:/tmp/cvs-serv21682/nodeDecoratorTests Modified Files: AllTests.java DecodingNodeTest.java EscapeCharacterRemovingNodeTest.java NonBreakingSpaceConvertingNodeTest.java Log Message: Consolidated the various testing main() methods into ParserTestCase. All unit test classes in the org.htmlparser.tests heirarchy should now be executable. Index: AllTests.java =================================================================== RCS file: /cvsroot/htmlparser/htmlparser/src/org/htmlparser/tests/nodeDecoratorTests/AllTests.java,v retrieving revision 1.11 retrieving revision 1.12 diff -C2 -d -r1.11 -r1.12 *** AllTests.java 22 Sep 2003 02:40:06 -0000 1.11 --- AllTests.java 21 Oct 2003 02:24:00 -0000 1.12 *************** *** 31,36 **** import junit.framework.TestSuite; ! public class AllTests extends junit.framework.TestCase { public AllTests(String name) { super(name); --- 31,43 ---- import junit.framework.TestSuite; ! import org.htmlparser.tests.ParserTestCase; ! ! public class AllTests extends ParserTestCase { + static + { + System.setProperty ("org.htmlparser.tests.nodeDecoratorTests.AllTests", "AllTests"); + } + public AllTests(String name) { super(name); *************** *** 43,109 **** suite.addTestSuite(NonBreakingSpaceConvertingNodeTest.class); return suite; - } - - /** - * Mainline for all suites of tests. - * @param args Command line arguments. The following options - * are understood: - * <pre> - * -text -- use junit.textui.TestRunner - * -awt -- use junit.awtui.TestRunner - * -swing -- use junit.swingui.TestRunner (default) - * </pre> - * All other options are passed on to the junit framework. - */ - public static void main(String[] args) - { - String runner; - int i; - String arguments[]; - Class cls; - - runner = null; - for (i = 0; (i < args.length) && (null == runner); i++) - { - if (args[i].equalsIgnoreCase ("-text")) - runner = "junit.textui.TestRunner"; - else if (args[i].equalsIgnoreCase ("-awt")) - runner = "junit.awtui.TestRunner"; - else if (args[i].equalsIgnoreCase ("-swing")) - runner = "junit.swingui.TestRunner"; - } - if (null != runner) - { - // remove it from the arguments - arguments = new String[args.length - 1]; - System.arraycopy (args, 0, arguments, 0, i - 1); - System.arraycopy (args, i, arguments, i - 1, args.length - i); - args = arguments; - } - else - runner = "junit.swingui.TestRunner"; - - // append the test class - arguments = new String[args.length + 1]; - System.arraycopy (args, 0, arguments, 0, args.length); - arguments[args.length] = "org.htmlparser.tests.nodeDecoratorTests.AllTests"; - - // invoke main() of the test runner - try - { - cls = Class.forName (runner); - java.lang.reflect.Method method = cls.getDeclaredMethod ( - "main", new Class[] { String[].class }); - method.invoke ( - null, - new Object[] { arguments }); - } - catch (Throwable t) - { - System.err.println ( - "cannot run unit test (" - + t.getMessage () - + ")"); - } } } --- 50,53 ---- Index: DecodingNodeTest.java =================================================================== RCS file: /cvsroot/htmlparser/htmlparser/src/org/htmlparser/tests/nodeDecoratorTests/DecodingNodeTest.java,v retrieving revision 1.12 retrieving revision 1.13 diff -C2 -d -r1.12 -r1.13 *** DecodingNodeTest.java 22 Sep 2003 02:40:07 -0000 1.12 --- DecodingNodeTest.java 21 Oct 2003 02:24:00 -0000 1.13 *************** *** 38,41 **** --- 38,46 ---- public class DecodingNodeTest extends ParserTestCase { + static + { + System.setProperty ("org.htmlparser.tests.nodeDecoratorTests.DecodingNodeTest", "DecodingNodeTest"); + } + public DecodingNodeTest(String name) { super(name); Index: EscapeCharacterRemovingNodeTest.java =================================================================== RCS file: /cvsroot/htmlparser/htmlparser/src/org/htmlparser/tests/nodeDecoratorTests/EscapeCharacterRemovingNodeTest.java,v retrieving revision 1.12 retrieving revision 1.13 diff -C2 -d -r1.12 -r1.13 *** EscapeCharacterRemovingNodeTest.java 22 Sep 2003 02:40:07 -0000 1.12 --- EscapeCharacterRemovingNodeTest.java 21 Oct 2003 02:24:00 -0000 1.13 *************** *** 37,40 **** --- 37,46 ---- public class EscapeCharacterRemovingNodeTest extends ParserTestCase { + + static + { + System.setProperty ("org.htmlparser.tests.nodeDecoratorTests.EscapeCharacterRemovingNodeTest", "EscapeCharacterRemovingNodeTest"); + } + public EscapeCharacterRemovingNodeTest(String name) { super(name); Index: NonBreakingSpaceConvertingNodeTest.java =================================================================== RCS file: /cvsroot/htmlparser/htmlparser/src/org/htmlparser/tests/nodeDecoratorTests/NonBreakingSpaceConvertingNodeTest.java,v retrieving revision 1.11 retrieving revision 1.12 diff -C2 -d -r1.11 -r1.12 *** NonBreakingSpaceConvertingNodeTest.java 22 Sep 2003 02:40:07 -0000 1.11 --- NonBreakingSpaceConvertingNodeTest.java 21 Oct 2003 02:24:00 -0000 1.12 *************** *** 37,40 **** --- 37,45 ---- public class NonBreakingSpaceConvertingNodeTest extends ParserTestCase { + static + { + System.setProperty ("org.htmlparser.tests.nodeDecoratorTests.NonBreakingSpaceConvertingNodeTest", "NonBreakingSpaceConvertingNodeTest"); + } + public NonBreakingSpaceConvertingNodeTest(String name) { super(name); |
Update of /cvsroot/htmlparser/htmlparser/src/org/htmlparser/tests In directory sc8-pr-cvs1:/tmp/cvs-serv21682 Modified Files: AllTests.java AssertXmlEqualsTest.java FunctionalTests.java LineNumberAssignedByNodeReaderTest.java ParserTest.java ParserTestCase.java Log Message: Consolidated the various testing main() methods into ParserTestCase. All unit test classes in the org.htmlparser.tests heirarchy should now be executable. Index: AllTests.java =================================================================== RCS file: /cvsroot/htmlparser/htmlparser/src/org/htmlparser/tests/AllTests.java,v retrieving revision 1.53 retrieving revision 1.54 diff -C2 -d -r1.53 -r1.54 *** AllTests.java 13 Oct 2003 21:48:13 -0000 1.53 --- AllTests.java 21 Oct 2003 02:24:00 -0000 1.54 *************** *** 31,102 **** import junit.framework.TestSuite; ! public class AllTests extends junit.framework.TestCase { public AllTests(String name) { super(name); - } - - /** - * Mainline for all suites of tests. - * @param args Command line arguments. The following options - * are understood: - * <pre> - * -text -- use junit.textui.TestRunner - * -awt -- use junit.awtui.TestRunner - * -swing -- use junit.swingui.TestRunner (default) - * </pre> - * All other options are passed on to the junit framework. - */ - public static void main(String[] args) - { - String runner; - int i; - String arguments[]; - Class cls; - - runner = null; - for (i = 0; (i < args.length) && (null == runner); i++) - { - if (args[i].equalsIgnoreCase ("-text")) - runner = "junit.textui.TestRunner"; - else if (args[i].equalsIgnoreCase ("-awt")) - runner = "junit.awtui.TestRunner"; - else if (args[i].equalsIgnoreCase ("-swing")) - runner = "junit.swingui.TestRunner"; - } - if (null != runner) - { - // remove it from the arguments - arguments = new String[args.length - 1]; - System.arraycopy (args, 0, arguments, 0, i - 1); - System.arraycopy (args, i, arguments, i - 1, args.length - i); - args = arguments; - } - else - runner = "junit.swingui.TestRunner"; - - // append the test class - arguments = new String[args.length + 1]; - System.arraycopy (args, 0, arguments, 0, args.length); - arguments[args.length] = "org.htmlparser.tests.AllTests"; - - // invoke main() of the test runner - try - { - cls = Class.forName (runner); - java.lang.reflect.Method method = cls.getDeclaredMethod ( - "main", new Class[] { String[].class }); - method.invoke ( - null, - new Object[] { arguments }); - } - catch (Throwable t) - { - System.err.println ( - "cannot run unit test (" - + t.getMessage () - + ")"); - } } --- 31,45 ---- import junit.framework.TestSuite; ! import org.htmlparser.tests.ParserTestCase; ! ! public class AllTests extends ParserTestCase { + static + { + System.setProperty ("org.htmlparser.tests.AllTests", "AllTests"); + } public AllTests(String name) { super(name); } Index: AssertXmlEqualsTest.java =================================================================== RCS file: /cvsroot/htmlparser/htmlparser/src/org/htmlparser/tests/AssertXmlEqualsTest.java,v retrieving revision 1.13 retrieving revision 1.14 diff -C2 -d -r1.13 -r1.14 *** AssertXmlEqualsTest.java 22 Sep 2003 02:40:03 -0000 1.13 --- AssertXmlEqualsTest.java 21 Oct 2003 02:24:00 -0000 1.14 *************** *** 34,37 **** --- 34,42 ---- public class AssertXmlEqualsTest extends ParserTestCase { + static + { + System.setProperty ("org.htmlparser.tests.AssertXmlEqualsTest", "AssertXmlEqualsTest"); + } + public AssertXmlEqualsTest(String name) { super(name); Index: FunctionalTests.java =================================================================== RCS file: /cvsroot/htmlparser/htmlparser/src/org/htmlparser/tests/FunctionalTests.java,v retrieving revision 1.45 retrieving revision 1.46 diff -C2 -d -r1.45 -r1.46 *** FunctionalTests.java 20 Oct 2003 01:28:03 -0000 1.45 --- FunctionalTests.java 21 Oct 2003 02:24:00 -0000 1.46 *************** *** 48,52 **** import org.htmlparser.util.ParserException; ! public class FunctionalTests extends TestCase { public FunctionalTests(String arg0) { --- 48,57 ---- import org.htmlparser.util.ParserException; ! public class FunctionalTests extends ParserTestCase { ! ! static ! { ! System.setProperty ("org.htmlparser.tests.FunctionalTests", "FunctionalTests"); ! } public FunctionalTests(String arg0) { Index: LineNumberAssignedByNodeReaderTest.java =================================================================== RCS file: /cvsroot/htmlparser/htmlparser/src/org/htmlparser/tests/LineNumberAssignedByNodeReaderTest.java,v retrieving revision 1.24 retrieving revision 1.25 diff -C2 -d -r1.24 -r1.25 *** LineNumberAssignedByNodeReaderTest.java 20 Oct 2003 01:28:03 -0000 1.24 --- LineNumberAssignedByNodeReaderTest.java 21 Oct 2003 02:24:00 -0000 1.25 *************** *** 46,49 **** --- 46,54 ---- public class LineNumberAssignedByNodeReaderTest extends ParserTestCase { + static + { + System.setProperty ("org.htmlparser.tests.LineNumberAssignedByNodeReaderTest", "LineNumberAssignedByNodeReaderTest"); + } + public LineNumberAssignedByNodeReaderTest(String name) { super(name); Index: ParserTest.java =================================================================== RCS file: /cvsroot/htmlparser/htmlparser/src/org/htmlparser/tests/ParserTest.java,v retrieving revision 1.44 retrieving revision 1.45 diff -C2 -d -r1.44 -r1.45 *** ParserTest.java 5 Oct 2003 13:49:53 -0000 1.44 --- ParserTest.java 21 Oct 2003 02:24:00 -0000 1.45 *************** *** 53,57 **** import org.htmlparser.util.SimpleNodeIterator; ! public class ParserTest extends ParserTestCase { public ParserTest(String name) { --- 53,62 ---- import org.htmlparser.util.SimpleNodeIterator; ! public class ParserTest extends ParserTestCase ! { ! static ! { ! System.setProperty ("org.htmlparser.tests.ParserTest", "ParserTest"); ! } public ParserTest(String name) { Index: ParserTestCase.java =================================================================== RCS file: /cvsroot/htmlparser/htmlparser/src/org/htmlparser/tests/ParserTestCase.java,v retrieving revision 1.33 retrieving revision 1.34 diff -C2 -d -r1.33 -r1.34 *** ParserTestCase.java 20 Oct 2003 01:28:03 -0000 1.33 --- ParserTestCase.java 21 Oct 2003 02:24:00 -0000 1.34 *************** *** 31,35 **** --- 31,37 ---- import java.io.BufferedReader; import java.io.StringReader; + import java.util.Enumeration; import java.util.Iterator; + import java.util.Properties; import java.util.Vector; *************** *** 303,310 **** { tag.setEmptyXmlTag (false); - // data = new TagData - // ("/" + tag.getTagName (), tag.elementEnd (), new Vector (), "", false); node = new Tag (tag.getPage (), tag.getStartPosition (), tag.getEndPosition (), tag.getAttributesEx ()); - //data.getTagBegin (), data.getTagEnd (), data.getAttributes ()); // cheat here and poink the new node into the iterator ((IteratorImpl)iterator).push (node); --- 305,309 ---- *************** *** 313,318 **** } - - private void assertAttributesMatch(String displayMessage, Tag expectedTag, Tag actualTag) { assertAllExpectedTagAttributesFoundInActualTag( --- 312,315 ---- *************** *** 422,425 **** --- 419,531 ---- } fail(failMsg.toString()); + } + } + + /** + * Mainline for individual test cases. + * @param args Command line arguments. The following options + * are understood: + * <pre> + * -text -- use junit.textui.TestRunner + * -awt -- use junit.awtui.TestRunner + * -swing -- use junit.swingui.TestRunner (default) + * </pre> + * All other options are passed on to the junit framework. + * Decides the test class by examiing the system properties looking + * for a property that starts with "org.htmlparser.tests.", this is + * used as the name of the class (the value is ignored). + * Each class that subclasses ParserTestCase can inherit this mainline + * by adding a static block in their class similar to: + * <pre> + * static + * { + * System.setProperty ("org.htmlparser.tests.ParserTest", "ParserTest"); + * } + * </pre> + */ + public static void main(String[] args) + { + String runner; + int i; + String arguments[]; + Properties properties; + Enumeration enumeration; + String name; + Class cls; + + runner = null; + for (i = 0; (i < args.length) && (null == runner); i++) + { + if (args[i].equalsIgnoreCase ("-text")) + runner = "junit.textui.TestRunner"; + else if (args[i].equalsIgnoreCase ("-awt")) + runner = "junit.awtui.TestRunner"; + else if (args[i].equalsIgnoreCase ("-swing")) + runner = "junit.swingui.TestRunner"; + } + if (null != runner) + { + // remove it from the arguments + arguments = new String[args.length - 1]; + System.arraycopy (args, 0, arguments, 0, i - 1); + System.arraycopy (args, i, arguments, i - 1, args.length - i); + args = arguments; + } + else + runner = "junit.swingui.TestRunner"; + + // find the test class that has registered in the system properties + arguments = args; // default of no class name, works in GUI mode + properties = System.getProperties (); + enumeration = properties.propertyNames (); + while (enumeration.hasMoreElements ()) + { + name = (String)enumeration.nextElement (); + if (name.startsWith ("org.htmlparser.tests.")) + { + // from http://www.mail-archive.com/commons-user%40jakarta.apache.org/msg02958.html + // + // The problem is within the UI test runners of JUnit. They bring + // with them a custom classloader, which causes the + // LogConfigurationException. Unfortunately Log4j doesn't work + // either. + // + // Solution: Disable "Reload classes every run" or start JUnit with + // command line option -noloading before the name of the Testsuite. + if (true) + { + // append the test class + arguments = new String[args.length + 2]; + System.arraycopy (args, 0, arguments, 0, args.length); + arguments[arguments.length - 2] = "-noloading"; + arguments[arguments.length - 1] = name; + } + else + { + // append the test class + arguments = new String[args.length + 1]; + System.arraycopy (args, 0, arguments, 0, args.length); + arguments[args.length] = name; + } + break; // JUnit only handles one class on the command line + } + } + + // invoke main() of the test runner + try + { + cls = Class.forName (runner); + java.lang.reflect.Method method = cls.getDeclaredMethod ( + "main", new Class[] { String[].class }); + method.invoke ( + null, + new Object[] { arguments }); + } + catch (Throwable t) + { + System.err.println ( + "cannot run unit test (" + + t.getMessage () + + ")"); } } |
From: <der...@us...> - 2003-10-21 02:48:30
|
Update of /cvsroot/htmlparser/htmlparser/src/org/htmlparser/tests/lexerTests In directory sc8-pr-cvs1:/tmp/cvs-serv21682/lexerTests Modified Files: AllTests.java AttributeTests.java LexerTests.java PageIndexTests.java PageTests.java SourceTests.java StreamTests.java TagTests.java Log Message: Consolidated the various testing main() methods into ParserTestCase. All unit test classes in the org.htmlparser.tests heirarchy should now be executable. Index: AllTests.java =================================================================== RCS file: /cvsroot/htmlparser/htmlparser/src/org/htmlparser/tests/lexerTests/AllTests.java,v retrieving revision 1.12 retrieving revision 1.13 diff -C2 -d -r1.12 -r1.13 *** AllTests.java 13 Oct 2003 21:48:13 -0000 1.12 --- AllTests.java 21 Oct 2003 02:24:00 -0000 1.13 *************** *** 29,37 **** package org.htmlparser.tests.lexerTests; - import junit.framework.TestCase; import junit.framework.TestSuite; ! public class AllTests extends TestCase { public AllTests (String name) { --- 29,43 ---- package org.htmlparser.tests.lexerTests; import junit.framework.TestSuite; ! import org.htmlparser.tests.ParserTestCase; ! ! public class AllTests extends ParserTestCase { + static + { + System.setProperty ("org.htmlparser.tests.lexerTests.AllTests", "AllTests"); + } + public AllTests (String name) { *************** *** 50,129 **** suite.addTestSuite (TagTests.class); return suite; - } - - /** - * Mainline for all suites of tests. - * @param args Command line arguments. The following options - * are understood: - * <pre> - * -text -- use junit.textui.TestRunner - * -awt -- use junit.awtui.TestRunner - * -swing -- use junit.swingui.TestRunner (default) - * </pre> - * All other options are passed on to the junit framework. - */ - public static void main(String[] args) - { - String runner; - int i; - String arguments[]; - Class cls; - - runner = null; - for (i = 0; (i < args.length) && (null == runner); i++) - { - if (args[i].equalsIgnoreCase ("-text")) - runner = "junit.textui.TestRunner"; - else if (args[i].equalsIgnoreCase ("-awt")) - runner = "junit.awtui.TestRunner"; - else if (args[i].equalsIgnoreCase ("-swing")) - runner = "junit.swingui.TestRunner"; - } - if (null != runner) - { - // remove it from the arguments - arguments = new String[args.length - 1]; - System.arraycopy (args, 0, arguments, 0, i - 1); - System.arraycopy (args, i, arguments, i - 1, args.length - i); - args = arguments; - } - else - runner = "junit.swingui.TestRunner"; - - /* - * from http://www.mail-archive.com/commons-user%40jakarta.apache.org/msg02958.html - * - * The problem is within the UI test runners of JUnit. They bring - * with them a custom classloader, which causes the - * LogConfigurationException. Unfortunately Log4j doesn't work - * either. - * - * Solution: Disable "Reload classes every run" or start JUnit with - * command line option -noloading before the name of the Testsuite. - */ - - // append the test class - arguments = new String[args.length + 2]; - System.arraycopy (args, 0, arguments, 0, args.length); - arguments[arguments.length - 2] = "-noloading"; - arguments[arguments.length - 1] = "org.htmlparser.tests.lexerTests.AllTests"; - - // invoke main() of the test runner - try - { - cls = Class.forName (runner); - java.lang.reflect.Method method = cls.getDeclaredMethod ( - "main", new Class[] { String[].class }); - method.invoke ( - null, - new Object[] { arguments }); - } - catch (Throwable t) - { - System.err.println ( - "cannot run unit test (" - + t.getMessage () - + ")"); - } } } --- 56,59 ---- Index: AttributeTests.java =================================================================== RCS file: /cvsroot/htmlparser/htmlparser/src/org/htmlparser/tests/lexerTests/AttributeTests.java,v retrieving revision 1.3 retrieving revision 1.4 diff -C2 -d -r1.3 -r1.4 *** AttributeTests.java 20 Oct 2003 01:28:03 -0000 1.3 --- AttributeTests.java 21 Oct 2003 02:24:00 -0000 1.4 *************** *** 45,48 **** --- 45,53 ---- public class AttributeTests extends ParserTestCase { + static + { + System.setProperty ("org.htmlparser.tests.lexerTests.AttributeTests", "AttributeTests"); + } + private static final boolean JSP_TESTS_ENABLED = false; private Tag tag; *************** *** 512,578 **** assertTrue ("Attribute missing", table.containsKey ("OTHER")); assertEquals ("Attribute has wrong value", "fred", (String)table.get ("OTHER")); - } - - /** - * Mainline for all suites of tests. - * @param args Command line arguments. The following options - * are understood: - * <pre> - * -text -- use junit.textui.TestRunner - * -awt -- use junit.awtui.TestRunner - * -swing -- use junit.swingui.TestRunner (default) - * </pre> - * All other options are passed on to the junit framework. - */ - public static void main(String[] args) - { - String runner; - int i; - String arguments[]; - Class cls; - - runner = null; - for (i = 0; (i < args.length) && (null == runner); i++) - { - if (args[i].equalsIgnoreCase ("-text")) - runner = "junit.textui.TestRunner"; - else if (args[i].equalsIgnoreCase ("-awt")) - runner = "junit.awtui.TestRunner"; - else if (args[i].equalsIgnoreCase ("-swing")) - runner = "junit.swingui.TestRunner"; - } - if (null != runner) - { - // remove it from the arguments - arguments = new String[args.length - 1]; - System.arraycopy (args, 0, arguments, 0, i - 1); - System.arraycopy (args, i, arguments, i - 1, args.length - i); - args = arguments; - } - else - runner = "junit.swingui.TestRunner"; - - // append the test class - arguments = new String[args.length + 1]; - System.arraycopy (args, 0, arguments, 0, args.length); - arguments[args.length] = "org.htmlparser.tests.lexerTests.AttributeTests"; - - // invoke main() of the test runner - try - { - cls = Class.forName (runner); - java.lang.reflect.Method method = cls.getDeclaredMethod ( - "main", new Class[] { String[].class }); - method.invoke ( - null, - new Object[] { arguments }); - } - catch (Throwable t) - { - System.err.println ( - "cannot run unit test (" - + t.getMessage () - + ")"); - } } } --- 517,520 ---- Index: LexerTests.java =================================================================== RCS file: /cvsroot/htmlparser/htmlparser/src/org/htmlparser/tests/lexerTests/LexerTests.java,v retrieving revision 1.8 retrieving revision 1.9 diff -C2 -d -r1.8 -r1.9 *** LexerTests.java 28 Sep 2003 15:33:58 -0000 1.8 --- LexerTests.java 21 Oct 2003 02:24:00 -0000 1.9 *************** *** 39,44 **** import java.net.URLConnection; - import junit.framework.TestCase; - import org.htmlparser.Node; import org.htmlparser.Parser; --- 39,42 ---- *************** *** 52,59 **** import org.htmlparser.lexer.nodes.TagNode; import org.htmlparser.tags.Tag; import org.htmlparser.util.ParserException; ! public class LexerTests extends TestCase { /** --- 50,63 ---- import org.htmlparser.lexer.nodes.TagNode; import org.htmlparser.tags.Tag; + import org.htmlparser.tests.ParserTestCase; import org.htmlparser.util.ParserException; ! public class LexerTests extends ParserTestCase { + + static + { + System.setProperty ("org.htmlparser.tests.lexerTests.LexerTests", "LexerTests"); + } /** Index: PageIndexTests.java =================================================================== RCS file: /cvsroot/htmlparser/htmlparser/src/org/htmlparser/tests/lexerTests/PageIndexTests.java,v retrieving revision 1.8 retrieving revision 1.9 diff -C2 -d -r1.8 -r1.9 *** PageIndexTests.java 22 Sep 2003 02:40:05 -0000 1.8 --- PageIndexTests.java 21 Oct 2003 02:24:00 -0000 1.9 *************** *** 29,38 **** package org.htmlparser.tests.lexerTests; - import junit.framework.TestCase; - import org.htmlparser.lexer.PageIndex; ! public class PageIndexTests extends TestCase { /** --- 29,42 ---- package org.htmlparser.tests.lexerTests; import org.htmlparser.lexer.PageIndex; + import org.htmlparser.tests.ParserTestCase; ! public class PageIndexTests extends ParserTestCase { + + static + { + System.setProperty ("org.htmlparser.tests.lexerTests.PageIndexTests", "PageIndexTests"); + } /** Index: PageTests.java =================================================================== RCS file: /cvsroot/htmlparser/htmlparser/src/org/htmlparser/tests/lexerTests/PageTests.java,v retrieving revision 1.10 retrieving revision 1.11 diff -C2 -d -r1.10 -r1.11 *** PageTests.java 22 Sep 2003 02:40:06 -0000 1.10 --- PageTests.java 21 Oct 2003 02:24:00 -0000 1.11 *************** *** 34,44 **** import java.net.URLConnection; - import junit.framework.TestCase; - import org.htmlparser.lexer.Page; import org.htmlparser.util.ParserException; ! public class PageTests extends TestCase { /** * The default charset. --- 34,48 ---- import java.net.URLConnection; import org.htmlparser.lexer.Page; + import org.htmlparser.tests.ParserTestCase; import org.htmlparser.util.ParserException; ! public class PageTests extends ParserTestCase { + static + { + System.setProperty ("org.htmlparser.tests.lexerTests.PageTests", "PageTests"); + } + /** * The default charset. Index: SourceTests.java =================================================================== RCS file: /cvsroot/htmlparser/htmlparser/src/org/htmlparser/tests/lexerTests/SourceTests.java,v retrieving revision 1.9 retrieving revision 1.10 diff -C2 -d -r1.9 -r1.10 *** SourceTests.java 22 Sep 2003 02:40:06 -0000 1.9 --- SourceTests.java 21 Oct 2003 02:24:00 -0000 1.10 *************** *** 40,50 **** import java.util.Random; - import junit.framework.TestCase; - import org.htmlparser.lexer.Stream; import org.htmlparser.lexer.Source; ! public class SourceTests extends TestCase { /** * The default charset. --- 40,54 ---- import java.util.Random; import org.htmlparser.lexer.Stream; import org.htmlparser.lexer.Source; + import org.htmlparser.tests.ParserTestCase; ! public class SourceTests extends ParserTestCase { + static + { + System.setProperty ("org.htmlparser.tests.lexerTests.SourceTests", "SourceTests"); + } + /** * The default charset. Index: StreamTests.java =================================================================== RCS file: /cvsroot/htmlparser/htmlparser/src/org/htmlparser/tests/lexerTests/StreamTests.java,v retrieving revision 1.8 retrieving revision 1.9 diff -C2 -d -r1.8 -r1.9 *** StreamTests.java 22 Sep 2003 02:40:06 -0000 1.8 --- StreamTests.java 21 Oct 2003 02:24:00 -0000 1.9 *************** *** 39,48 **** import java.util.Random; - import junit.framework.TestCase; - import org.htmlparser.lexer.Stream; ! public class StreamTests extends TestCase { /** * Test the first level stream class. --- 39,52 ---- import java.util.Random; import org.htmlparser.lexer.Stream; + import org.htmlparser.tests.ParserTestCase; ! public class StreamTests extends ParserTestCase { + static + { + System.setProperty ("org.htmlparser.tests.lexerTests.StreamTests", "StreamTests"); + } + /** * Test the first level stream class. Index: TagTests.java =================================================================== RCS file: /cvsroot/htmlparser/htmlparser/src/org/htmlparser/tests/lexerTests/TagTests.java,v retrieving revision 1.1 retrieving revision 1.2 diff -C2 -d -r1.1 -r1.2 *** TagTests.java 13 Oct 2003 21:48:13 -0000 1.1 --- TagTests.java 21 Oct 2003 02:24:00 -0000 1.2 *************** *** 27,36 **** // Website : http://www.industriallogic.com - // ---- IMPORTANT: This class has failing tests ---- - // Original Location: org.htmlparser.tests.parserHelperTests; - // Pls rememeber to add test back to org.htmlparser.tests.parserHelperTests.AllTests.suite() - // and delete these comments when you're done. - // ---- NEEDS FIXING ---- - package org.htmlparser.tests.lexerTests; import java.util.HashMap; --- 27,30 ---- *************** *** 46,49 **** --- 40,48 ---- public class TagTests extends ParserTestCase { + static + { + System.setProperty ("org.htmlparser.tests.lexerTests.TagTests", "TagTests"); + } + private static final String TEST_HTML = "<!DOCTYPE HTML PUBLIC \"-//W3C//DTD HTML 4.0 Transitional//EN\">" + "<!-- Server: sf-web2 -->" + *************** *** 420,487 **** String html = tag.toHtml (); assertStringEquals ("html","<INPUT DISABLED=>", html); - } - - /** - * Mainline for all suites of tests. - * @param args Command line arguments. The following options - * are understood: - * <pre> - * -text -- use junit.textui.TestRunner - * -awt -- use junit.awtui.TestRunner - * -swing -- use junit.swingui.TestRunner (default) - * </pre> - * All other options are passed on to the junit framework. - */ - public static void main(String[] args) - { - String runner; - int i; - String arguments[]; - Class cls; - - System.out.println (System.getProperty ("testclass")); - runner = null; - for (i = 0; (i < args.length) && (null == runner); i++) - { - if (args[i].equalsIgnoreCase ("-text")) - runner = "junit.textui.TestRunner"; - else if (args[i].equalsIgnoreCase ("-awt")) - runner = "junit.awtui.TestRunner"; - else if (args[i].equalsIgnoreCase ("-swing")) - runner = "junit.swingui.TestRunner"; - } - if (null != runner) - { - // remove it from the arguments - arguments = new String[args.length - 1]; - System.arraycopy (args, 0, arguments, 0, i - 1); - System.arraycopy (args, i, arguments, i - 1, args.length - i); - args = arguments; - } - else - runner = "junit.swingui.TestRunner"; - - // append the test class - arguments = new String[args.length + 1]; - System.arraycopy (args, 0, arguments, 0, args.length); - arguments[args.length] = "org.htmlparser.tests.lexerTests.TagTests"; - - // invoke main() of the test runner - try - { - cls = Class.forName (runner); - java.lang.reflect.Method method = cls.getDeclaredMethod ( - "main", new Class[] { String[].class }); - method.invoke ( - null, - new Object[] { arguments }); - } - catch (Throwable t) - { - System.err.println ( - "cannot run unit test (" - + t.getMessage () - + ")"); - } } } --- 419,422 ---- |
Update of /cvsroot/htmlparser/htmlparser/src/org/htmlparser/tags In directory sc8-pr-cvs1:/tmp/cvs-serv26197/tags Modified Files: AppletTag.java BaseHrefTag.java BodyTag.java Bullet.java BulletList.java CompositeTag.java Div.java DoctypeTag.java FormTag.java FrameSetTag.java FrameTag.java HeadTag.java Html.java ImageTag.java InputTag.java JspTag.java LabelTag.java LinkTag.java MetaTag.java OptionTag.java ScriptTag.java SelectTag.java Span.java StyleTag.java TableColumn.java TableRow.java TableTag.java Tag.java TextareaTag.java TitleTag.java Log Message: Removed lexer level AbstractNode. Removed data package from parser level tags. Separated tag creation from recursion in NodeFactory interface. Index: AppletTag.java =================================================================== RCS file: /cvsroot/htmlparser/htmlparser/src/org/htmlparser/tags/AppletTag.java,v retrieving revision 1.31 retrieving revision 1.32 diff -C2 -d -r1.31 -r1.32 *** AppletTag.java 18 Oct 2003 20:50:37 -0000 1.31 --- AppletTag.java 20 Oct 2003 01:28:03 -0000 1.32 *************** *** 36,41 **** import org.htmlparser.StringNode; import org.htmlparser.lexer.nodes.Attribute; - import org.htmlparser.tags.data.CompositeTagData; - import org.htmlparser.tags.data.TagData; import org.htmlparser.util.NodeList; import org.htmlparser.util.SimpleNodeIterator; --- 36,39 ---- *************** *** 48,59 **** public class AppletTag extends CompositeTag { ! /** ! * Create a new AppletTag with the dats given. ! * @param tagData The data for this tag. ! * @param compositeTagData The data for this composite tag. ! */ ! public AppletTag (TagData tagData,CompositeTagData compositeTagData) { ! super(tagData,compositeTagData); } --- 46,52 ---- public class AppletTag extends CompositeTag { ! public AppletTag () { ! setTagName ("APPLET"); } Index: BaseHrefTag.java =================================================================== RCS file: /cvsroot/htmlparser/htmlparser/src/org/htmlparser/tags/BaseHrefTag.java,v retrieving revision 1.26 retrieving revision 1.27 diff -C2 -d -r1.26 -r1.27 *** BaseHrefTag.java 22 Sep 2003 02:40:01 -0000 1.26 --- BaseHrefTag.java 20 Oct 2003 01:28:03 -0000 1.27 *************** *** 30,60 **** package org.htmlparser.tags; ! import org.htmlparser.tags.data.TagData; /** ! * @author Somik Raha ! * ! * To change this generated comment edit the template variable "typecomment": ! * Window>Preferences>Java>Templates. ! * To enable and disable the creation of type comments go to ! * Window>Preferences>Java>Code Generation. */ ! public class BaseHrefTag extends Tag { ! private String baseUrl; ! ! public BaseHrefTag(TagData tagData, String baseUrl) { ! super(tagData); ! this.baseUrl = baseUrl; } ! public String getBaseUrl() { ! return baseUrl; } ! public void setBaseUrl(String baseUrl) { ! this.baseUrl = baseUrl; } ! public String toString() { return "BASE TAG\n"+ "--------\n"+ ! "Name : "+baseUrl; } } --- 30,72 ---- package org.htmlparser.tags; ! import org.htmlparser.util.LinkProcessor; /** ! * BaseHrefTag represents an <Base> tag. ! * It extends a basic tag by providing an accessor to the HREF attribute. */ ! public class BaseHrefTag extends Tag ! { ! public BaseHrefTag () ! { ! setTagName ("BASE"); } ! ! /** ! * Get the value of the HREF attribute, if any. ! * @return The HREF value, with the last slash removed, if any. ! */ ! public String getBaseUrl() ! { ! String base; ! ! base = getAttribute ("HREF"); ! if (base != null && base.length() > 0) ! base = LinkProcessor.removeLastSlash (base.trim()); ! base = (null == base) ? "" : base; ! ! return (base); } ! ! public void setBaseUrl (String base) ! { ! setAttribute ("HREF", base); } ! ! public String toString() ! { return "BASE TAG\n"+ "--------\n"+ ! "Name : "+getBaseUrl(); } } Index: BodyTag.java =================================================================== RCS file: /cvsroot/htmlparser/htmlparser/src/org/htmlparser/tags/BodyTag.java,v retrieving revision 1.15 retrieving revision 1.16 diff -C2 -d -r1.15 -r1.16 *** BodyTag.java 22 Sep 2003 02:40:01 -0000 1.15 --- BodyTag.java 20 Oct 2003 01:28:03 -0000 1.16 *************** *** 29,50 **** package org.htmlparser.tags; - import org.htmlparser.tags.data.CompositeTagData; - import org.htmlparser.tags.data.TagData; - - /** ! * A Body Tag */ public class BodyTag extends CompositeTag { ! public BodyTag(TagData tagData, CompositeTagData compositeTagData) { ! super(tagData,compositeTagData); } ! public String getBody() { return toPlainTextString(); } ! public String toString() { return "BODY: "+getBody(); } --- 29,50 ---- package org.htmlparser.tags; /** ! * A Body Tag. ! * Primarily a container for child tags. */ public class BodyTag extends CompositeTag { ! public BodyTag () ! { ! setTagName ("BODY"); } ! public String getBody() ! { return toPlainTextString(); } ! public String toString() ! { return "BODY: "+getBody(); } Index: Bullet.java =================================================================== RCS file: /cvsroot/htmlparser/htmlparser/src/org/htmlparser/tags/Bullet.java,v retrieving revision 1.15 retrieving revision 1.16 diff -C2 -d -r1.15 -r1.16 *** Bullet.java 22 Sep 2003 02:40:01 -0000 1.15 --- Bullet.java 20 Oct 2003 01:28:03 -0000 1.16 *************** *** 29,41 **** package org.htmlparser.tags; ! import org.htmlparser.tags.data.CompositeTagData; ! import org.htmlparser.tags.data.TagData; ! ! public class Bullet extends CompositeTag { ! public Bullet(TagData tagData, CompositeTagData compositeTagData) { ! super(tagData, compositeTagData); } - } --- 29,40 ---- package org.htmlparser.tags; ! /** ! * A bullet tag. ! */ public class Bullet extends CompositeTag { ! public Bullet () ! { ! setTagName ("LI"); } } Index: BulletList.java =================================================================== RCS file: /cvsroot/htmlparser/htmlparser/src/org/htmlparser/tags/BulletList.java,v retrieving revision 1.15 retrieving revision 1.16 diff -C2 -d -r1.15 -r1.16 *** BulletList.java 22 Sep 2003 02:40:01 -0000 1.15 --- BulletList.java 20 Oct 2003 01:28:03 -0000 1.16 *************** *** 29,51 **** package org.htmlparser.tags; - import org.htmlparser.tags.data.CompositeTagData; - import org.htmlparser.tags.data.TagData; - /** ! * @author Somik Raha ! * ! * To change the template for this generated type comment go to ! * Window>Preferences>Java>Code Generation>Code and Comments */ public class BulletList extends CompositeTag { ! public BulletList(TagData tagData, CompositeTagData compositeTagData) { ! super(tagData, compositeTagData); ! } ! ! public String toString() { ! // TODO Auto-generated method stub ! return "BulletList"; } - } --- 29,41 ---- package org.htmlparser.tags; /** ! * A bullet list tag. ! * Either <UL> or <OL>. */ public class BulletList extends CompositeTag { ! public BulletList () ! { ! setTagName ("UL"); // could be "OL" too } } Index: CompositeTag.java =================================================================== RCS file: /cvsroot/htmlparser/htmlparser/src/org/htmlparser/tags/CompositeTag.java,v retrieving revision 1.58 retrieving revision 1.59 diff -C2 -d -r1.58 -r1.59 *** CompositeTag.java 3 Oct 2003 02:15:19 -0000 1.58 --- CompositeTag.java 20 Oct 2003 01:28:03 -0000 1.59 *************** *** 29,63 **** package org.htmlparser.tags; import org.htmlparser.*; import org.htmlparser.AbstractNode; import org.htmlparser.lexer.nodes.TagNode; - import org.htmlparser.tags.data.CompositeTagData; - import org.htmlparser.tags.data.TagData; import org.htmlparser.util.NodeList; import org.htmlparser.util.SimpleNodeIterator; import org.htmlparser.visitors.NodeVisitor; public abstract class CompositeTag extends Tag { protected TagNode startTag; protected TagNode endTag; ! public CompositeTag(TagData tagData, CompositeTagData compositeTagData) { ! super(tagData); ! ! // from Tag(TagData) ! // super(tagData.getTagBegin(),tagData.getTagEnd()); ! // this.startLine = tagData.getStartLine(); ! // this.tagContents = new StringBuffer(); ! // this.tagContents.append(tagData.getTagContents()); ! // this.tagLine = tagData.getTagLine(); ! // this.tagLines = new String[] {tagData.getTagLine()}; ! // this.emptyXmlTag = tagData.isEmptyXmlTag(); ! ! ! startTag = compositeTagData.getStartTag(); ! endTag = compositeTagData.getEndTag(); ! setChildren (compositeTagData.getChildren()); } ! /** * Get an iterator over the children of this node. --- 29,55 ---- package org.htmlparser.tags; + import java.util.Vector; import org.htmlparser.*; import org.htmlparser.AbstractNode; + import org.htmlparser.lexer.Page; import org.htmlparser.lexer.nodes.TagNode; import org.htmlparser.util.NodeList; import org.htmlparser.util.SimpleNodeIterator; import org.htmlparser.visitors.NodeVisitor; + /* + * The base class for tags that have an end tag. + * Provided extra accessors for the children above and beyond what the basic + * {@link Tag} provides. Also handles the conversion of it's children for + * the {@link #toHtml toHtml} method. + */ public abstract class CompositeTag extends Tag { protected TagNode startTag; protected TagNode endTag; ! public CompositeTag () ! { } ! /** * Get an iterator over the children of this node. *************** *** 344,353 **** } ! public TagNode getStartTag() { return startTag; } ! public TagNode getEndTag() { return endTag; } --- 336,357 ---- } ! public TagNode getStartTag() ! { return startTag; } ! public void setStartTag (TagNode start) ! { ! startTag = start; ! } ! ! public TagNode getEndTag() ! { return endTag; + } + + public void setEndTag(TagNode end) + { + endTag = end; } Index: Div.java =================================================================== RCS file: /cvsroot/htmlparser/htmlparser/src/org/htmlparser/tags/Div.java,v retrieving revision 1.15 retrieving revision 1.16 diff -C2 -d -r1.15 -r1.16 *** Div.java 22 Sep 2003 02:40:01 -0000 1.15 --- Div.java 20 Oct 2003 01:28:03 -0000 1.16 *************** *** 29,40 **** package org.htmlparser.tags; ! import org.htmlparser.tags.data.CompositeTagData; ! import org.htmlparser.tags.data.TagData; ! ! public class Div extends CompositeTag { ! ! public Div(TagData tagData, CompositeTagData compositeTagData) { ! super(tagData, compositeTagData); } - } --- 29,40 ---- package org.htmlparser.tags; ! /** ! * A div tag. ! */ ! public class Div extends CompositeTag ! { ! public Div () ! { ! setTagName ("DIV"); } } Index: DoctypeTag.java =================================================================== RCS file: /cvsroot/htmlparser/htmlparser/src/org/htmlparser/tags/DoctypeTag.java,v retrieving revision 1.29 retrieving revision 1.30 diff -C2 -d -r1.29 -r1.30 *** DoctypeTag.java 28 Sep 2003 15:33:58 -0000 1.29 --- DoctypeTag.java 20 Oct 2003 01:28:03 -0000 1.30 *************** *** 30,35 **** package org.htmlparser.tags; - import org.htmlparser.tags.data.TagData; - /** * The HTML Document Declaration Tag can identify <!DOCTYPE> tags. --- 30,33 ---- *************** *** 37,58 **** public class DoctypeTag extends Tag { ! /** ! * The HTMLDoctypeTag is constructed by providing the beginning posn, ending posn ! * and the tag contents. ! * @param tagData The data for this tag. ! */ ! public DoctypeTag(TagData tagData) { ! super(tagData); } /** ! * Print the contents of the remark tag. */ public String toString() { ! return "Doctype Tag : "+getTagContents()+"; begins at : "+elementBegin()+"; ends at : "+elementEnd(); ! } ! public String toHtml() { ! return "<!DOCTYPE "+getTagContents()+">"; } } --- 35,51 ---- public class DoctypeTag extends Tag { ! public DoctypeTag () { ! setTagName ("!DOCTYPE"); } + /** ! * Print the contents of the document declaration tag. */ public String toString() { ! String guts = toHtml(); ! guts = guts.substring (1, guts.length () - 2); ! return "Doctype Tag : "+guts+"; begins at : "+elementBegin()+"; ends at : "+elementEnd(); } } Index: FormTag.java =================================================================== RCS file: /cvsroot/htmlparser/htmlparser/src/org/htmlparser/tags/FormTag.java,v retrieving revision 1.34 retrieving revision 1.35 diff -C2 -d -r1.34 -r1.35 *** FormTag.java 22 Sep 2003 02:40:01 -0000 1.34 --- FormTag.java 20 Oct 2003 01:28:03 -0000 1.35 *************** *** 30,48 **** package org.htmlparser.tags; - import org.htmlparser.tags.data.CompositeTagData; - import org.htmlparser.tags.data.TagData; import org.htmlparser.util.NodeList; import org.htmlparser.util.SimpleNodeIterator; /** - * @author ili - * - * To change this generated comment edit the template variable "typecomment": - * Window>Preferences>Java>Templates. - * To enable and disable the creation of type comments go to - * Window>Preferences>Java>Code Generation. - */ - /** * Represents a FORM tag. */ public class FormTag extends CompositeTag --- 30,39 ---- package org.htmlparser.tags; import org.htmlparser.util.NodeList; import org.htmlparser.util.SimpleNodeIterator; /** * Represents a FORM tag. + * @author ili */ public class FormTag extends CompositeTag *************** *** 50,73 **** public static final String POST="POST"; public static final String GET="GET"; - protected String formURL; - protected String formName; - protected String formMethod; - protected NodeList formInputList; - private NodeList textAreaList; ! /** ! * Constructor takes in tagData, compositeTagData, formTagData ! * @param tagData ! * @param compositeTagData ! */ ! public FormTag(TagData tagData, CompositeTagData compositeTagData) { ! super(tagData,compositeTagData); ! ! this.formURL = compositeTagData.getStartTag().getAttribute("ACTION"); ! this.formName = compositeTagData.getStartTag().getAttribute("NAME"); ! this.formMethod = compositeTagData.getStartTag().getAttribute("METHOD"); ! this.formInputList = compositeTagData.getChildren().searchFor(InputTag.class, true); ! this.textAreaList = compositeTagData.getChildren().searchFor(TextareaTag.class, true); } --- 41,48 ---- public static final String POST="POST"; public static final String GET="GET"; ! public FormTag () { ! setTagName ("FORM"); } *************** *** 78,111 **** public NodeList getFormInputs() { ! return formInputList; } /** * Get the list of text areas. ! * @return Textarea elements in the form */ public NodeList getFormTextareas() { ! return textAreaList; } /** ! * @return String The url of the form */ public String getFormLocation() { ! return formURL; } /** ! * Returns the method of the form ! * @return String The method of the form (GET if nothing is specified) */ ! public String getFormMethod() { ! if(formMethod==null) ! { ! formMethod = "GET"; ! } ! return formMethod; } --- 53,100 ---- public NodeList getFormInputs() { ! return (getChildren().searchFor(InputTag.class, true)); } /** * Get the list of text areas. ! * @return Textarea elements in the form. */ public NodeList getFormTextareas() { ! return (getChildren().searchFor(TextareaTag.class, true)); } /** ! * Get the value of the action attribute. ! * @return The submit url of the form. */ public String getFormLocation() { ! return (getAttribute("ACTION")); } /** ! * Set the form location. Modification of this element will cause the HTML rendering ! * to change as well (in a call to toHTML()). ! * @param url The new FORM location */ ! public void setFormLocation(String url) ! { ! setAttribute ("ACTION", url); ! } ! ! /** ! * Returns the method of the form, GET or POST. ! * @return String The method of the form (GET if nothing is specified). ! */ ! public String getFormMethod() ! { ! String ret; ! ! ret = getAttribute("METHOD"); ! if (null == ret) ! ret = GET; ! ! return (ret); } *************** *** 115,154 **** * @return Tag The input tag corresponding to the name provided */ ! public InputTag getInputTag(String name) { ! InputTag inputTag=null; ! boolean found=false; ! for (SimpleNodeIterator e = formInputList.elements();e.hasMoreNodes() && !found;) { inputTag = (InputTag)e.nextNode(); ! String inputTagName = inputTag.getAttribute("NAME"); ! if (inputTagName!=null && inputTagName.equalsIgnoreCase(name)) { found=true; - } } if (found) ! return inputTag; else return null; } /** * @return String The name of the form */ ! public String getFormName() { ! return formName; ! } ! ! /** ! * Set the form location. Modification of this element will cause the HTML rendering ! * to change as well (in a call to toHTML()). ! * @param formURL The new FORM location ! */ ! public void setFormLocation(String formURL) { ! setAttribute ("ACTION", formURL); ! this.formURL = formURL; ! } ! ! /** ! * @return String The contents of the FormTag ! */ ! public String toString() { ! return "FORM TAG : Form at "+formURL+"; begins at : "+elementBegin()+"; ends at : "+elementEnd(); } --- 104,135 ---- * @return Tag The input tag corresponding to the name provided */ ! public InputTag getInputTag (String name) ! { ! InputTag inputTag; ! boolean found; ! String inputTagName; ! ! inputTag = null; ! found = false; ! for (SimpleNodeIterator e = getFormInputs().elements();e.hasMoreNodes() && !found;) ! { inputTag = (InputTag)e.nextNode(); ! inputTagName = inputTag.getAttribute("NAME"); ! if (inputTagName!=null && inputTagName.equalsIgnoreCase(name)) found=true; } if (found) ! return (inputTag); ! else ! return (null); } /** + * Get the value of the name attribute. * @return String The name of the form */ ! public String getFormName() ! { ! return (getAttribute("NAME")); } *************** *** 157,175 **** * @param name Name of the textarea tag to be found within the form */ ! public TextareaTag getTextAreaTag(String name) { TextareaTag textareaTag=null; boolean found = false; ! for (SimpleNodeIterator e=textAreaList.elements();e.hasMoreNodes() && !found;) { textareaTag = (TextareaTag)e.nextNode(); String textAreaName = textareaTag.getAttribute("NAME"); ! if (textAreaName!=null && textAreaName.equals(name)) { found = true; - } } if (found) ! return textareaTag; else ! return null; } } --- 138,164 ---- * @param name Name of the textarea tag to be found within the form */ ! public TextareaTag getTextAreaTag(String name) ! { TextareaTag textareaTag=null; boolean found = false; ! for (SimpleNodeIterator e=getFormTextareas ().elements();e.hasMoreNodes() && !found;) ! { textareaTag = (TextareaTag)e.nextNode(); String textAreaName = textareaTag.getAttribute("NAME"); ! if (textAreaName!=null && textAreaName.equals(name)) found = true; } if (found) ! return (textareaTag); else ! return (null); } + /** + * @return A textual representation of the form tag. + */ + public String toString() + { + return "FORM TAG : Form at "+getFormLocation()+"; begins at : "+elementBegin()+"; ends at : "+elementEnd(); + } } Index: FrameSetTag.java =================================================================== RCS file: /cvsroot/htmlparser/htmlparser/src/org/htmlparser/tags/FrameSetTag.java,v retrieving revision 1.27 retrieving revision 1.28 diff -C2 -d -r1.27 -r1.28 *** FrameSetTag.java 3 Oct 2003 02:15:20 -0000 1.27 --- FrameSetTag.java 20 Oct 2003 01:28:03 -0000 1.28 *************** *** 30,85 **** import org.htmlparser.Node; - import org.htmlparser.tags.data.CompositeTagData; - import org.htmlparser.tags.data.TagData; import org.htmlparser.util.NodeList; import org.htmlparser.util.SimpleNodeIterator; /** ! * Identifies an frame tag */ public class FrameSetTag extends CompositeTag { ! /** ! * The URL where the image is stored. ! */ ! protected String frameURL; ! protected String frameName; ! protected NodeList frames; ! public FrameSetTag(TagData tagData,CompositeTagData compositeTagData) { ! super(tagData,compositeTagData); ! this.frames = compositeTagData.getChildren(); } /** ! * Returns the location of the frame */ ! public String getFrameLocation() { ! return frameURL; ! } ! ! public String getFrameName() { ! return frameName; } /** ! * Print the contents of the HTMLImageNode */ ! public String toString() { ! return "FRAME TAG : Image at "+frameURL+"; begins at : "+elementBegin()+"; ends at : "+elementEnd(); } /** ! * Returns the frames. ! * @return Vector */ ! public NodeList getFrames() { ! return frames; ! } ! ! public FrameTag getFrame(String frameName) { ! boolean found = false; Node node; ! FrameTag frameTag=null; ! for (SimpleNodeIterator e=frames.elements();e.hasMoreNodes() && !found;) { node = e.nextNode(); --- 30,78 ---- import org.htmlparser.Node; import org.htmlparser.util.NodeList; import org.htmlparser.util.SimpleNodeIterator; /** ! * Identifies an frame set tag. */ public class FrameSetTag extends CompositeTag { ! public FrameSetTag () ! { ! setTagName ("FRAMESET"); } /** ! * Print the contents of the FrameSetTag */ ! public String toString() ! { ! return "FRAMESET TAG : begins at : "+elementBegin()+"; ends at : "+elementEnd(); } /** ! * Returns the frames. ! * @return The children of this tag. */ ! public NodeList getFrames() ! { ! return (getChildren()); } /** ! * Gets a frame by name. ! * @param ! * @return The specified frame or <code>null</code> if it wasn't found. */ ! public FrameTag getFrame(String name) ! { ! boolean found; Node node; ! FrameTag frameTag; ! ! found = false; ! name = name.toUpperCase (); ! frameTag = null; ! for (SimpleNodeIterator e=getFrames().elements();e.hasMoreNodes() && !found;) { node = e.nextNode(); *************** *** 87,103 **** { frameTag = (FrameTag)node; ! if (frameTag.getFrameName().toUpperCase().equals(frameName.toUpperCase())) found = true; } } if (found) ! return frameTag; else return null; } /** ! * Sets the frames. * @param frames The frames to set */ ! public void setFrames(NodeList frames) { ! this.frames = frames; } } --- 80,100 ---- { frameTag = (FrameTag)node; ! if (frameTag.getFrameName().toUpperCase().equals(name)) found = true; } } if (found) ! return (frameTag); ! else ! return (null); } + /** ! * Sets the frames (children of this tag). * @param frames The frames to set */ ! public void setFrames(NodeList frames) ! { ! setChildren (frames); } } Index: FrameTag.java =================================================================== RCS file: /cvsroot/htmlparser/htmlparser/src/org/htmlparser/tags/FrameTag.java,v retrieving revision 1.26 retrieving revision 1.27 diff -C2 -d -r1.26 -r1.27 *** FrameTag.java 22 Sep 2003 02:40:01 -0000 1.26 --- FrameTag.java 20 Oct 2003 01:28:03 -0000 1.27 *************** *** 29,63 **** package org.htmlparser.tags; ! import org.htmlparser.tags.data.TagData; /** ! * Identifies an frame tag */ public class FrameTag extends Tag { ! /** ! * The URL where the image is stored. ! */ ! protected String frameURL; ! protected String frameName; ! public FrameTag(TagData tagData, String frameURL,String frameName) { ! super(tagData); ! this.frameURL = frameURL; ! this.frameName = frameName; } /** ! * Returns the location of the image */ ! public String getFrameLocation() { ! return frameURL; } ! public String getFrameName() { ! return frameName; } /** ! * Print the contents of the HTMLFrameTag */ ! public String toString() { ! return "FRAME TAG : Image at "+frameURL+"; begins at : "+elementBegin()+"; ends at : "+elementEnd(); } } --- 29,68 ---- package org.htmlparser.tags; ! import org.htmlparser.util.LinkProcessor; /** ! * Identifies a frame tag */ public class FrameTag extends Tag { ! public FrameTag () ! { ! setTagName ("FRAME"); } + /** ! * Returns the location of the frames. ! * TODO: handle base url? */ ! public String getFrameLocation() ! { ! String relativeFrame = getAttribute ("SRC"); ! if (relativeFrame==null) ! return ""; ! else ! return (new LinkProcessor()).extract(relativeFrame, getPage ().getUrl ()); } ! ! public String getFrameName() ! { ! return (getAttribute ("NAME")); } + /** ! * Print the contents of the FrameTag. */ ! public String toString() ! { ! return "FRAME TAG : Frame " +getFrameName() + " at "+getFrameLocation()+"; begins at : "+elementBegin()+"; ends at : "+elementEnd(); } } Index: HeadTag.java =================================================================== RCS file: /cvsroot/htmlparser/htmlparser/src/org/htmlparser/tags/HeadTag.java,v retrieving revision 1.15 retrieving revision 1.16 diff -C2 -d -r1.15 -r1.16 *** HeadTag.java 22 Sep 2003 02:40:01 -0000 1.15 --- HeadTag.java 20 Oct 2003 01:28:03 -0000 1.16 *************** *** 32,45 **** package org.htmlparser.tags; ! import org.htmlparser.tags.data.CompositeTagData; ! import org.htmlparser.tags.data.TagData; ! ! public class HeadTag extends CompositeTag { ! public HeadTag(TagData tagData, CompositeTagData compositeTagData) { ! super(tagData, compositeTagData); } ! public String toString() { return "HEAD: " + super.toString(); } --- 32,48 ---- package org.htmlparser.tags; ! /** ! * A head tag. ! */ ! public class HeadTag extends CompositeTag ! { ! public HeadTag () ! { ! setTagName ("HEAD"); } ! public String toString() ! { return "HEAD: " + super.toString(); } Index: Html.java =================================================================== RCS file: /cvsroot/htmlparser/htmlparser/src/org/htmlparser/tags/Html.java,v retrieving revision 1.27 retrieving revision 1.28 diff -C2 -d -r1.27 -r1.28 *** Html.java 22 Sep 2003 02:40:01 -0000 1.27 --- Html.java 20 Oct 2003 01:28:03 -0000 1.28 *************** *** 29,40 **** package org.htmlparser.tags; ! import org.htmlparser.tags.data.CompositeTagData; ! import org.htmlparser.tags.data.TagData; ! ! public class Html extends CompositeTag { ! public Html(TagData tagData, CompositeTagData compositeTagData) { ! super(tagData, compositeTagData); } - } --- 29,41 ---- package org.htmlparser.tags; ! /** ! * A html tag. ! */ ! public class Html extends CompositeTag ! { ! public Html () ! { ! setTagName ("HTML"); } } Index: ImageTag.java =================================================================== RCS file: /cvsroot/htmlparser/htmlparser/src/org/htmlparser/tags/ImageTag.java,v retrieving revision 1.29 retrieving revision 1.30 diff -C2 -d -r1.29 -r1.30 *** ImageTag.java 28 Sep 2003 19:30:04 -0000 1.29 --- ImageTag.java 20 Oct 2003 01:28:03 -0000 1.30 *************** *** 29,58 **** package org.htmlparser.tags; import org.htmlparser.lexer.nodes.TagNode; ! import org.htmlparser.tags.data.TagData; import org.htmlparser.visitors.NodeVisitor; /** ! * Identifies an image tag */ public class ImageTag extends Tag { public static final String IMAGE_TAG_FILTER="-i"; /** ! * The URL where the image is stored. */ protected String imageURL; /** ! * Constructor creates an HTMLImageNode object, which stores the location ! * where the image is to be found. ! * @param tagData Specifies character position and content of the tag. ! * @param imageURL Location of the image. ! */ ! public ImageTag(TagData tagData,String imageURL) { ! super(tagData); ! this.imageURL = imageURL; } /** * Returns the location of the image --- 29,164 ---- package org.htmlparser.tags; + import java.util.Vector; + import org.htmlparser.lexer.nodes.Attribute; import org.htmlparser.lexer.nodes.TagNode; ! import org.htmlparser.util.ParserException; ! import org.htmlparser.util.ParserUtils; import org.htmlparser.visitors.NodeVisitor; /** ! * Identifies an image tag. */ public class ImageTag extends Tag { public static final String IMAGE_TAG_FILTER="-i"; + /** ! * Holds the set value of the SRC attribute, since this can differ ! * from the attribute value due to relative references resolved by ! * the scanner. */ protected String imageURL; + public ImageTag () + { + setTagName ("IMG"); + imageURL = null; + } + /** ! * Extract the location of the image ! * Given the tag (with attributes), and the url of the html page in which ! * this tag exists, perform best effort to extract the 'intended' URL. ! * Attempts to handle such attributes as: ! * <pre> ! * <IMG SRC=http://www.redgreen.com> - normal ! * <IMG SRC =http://www.redgreen.com> - space between attribute name and equals sign ! * <IMG SRC= http://www.redgreen.com> - space between equals sign and attribute value ! * <IMG SRC = http://www.redgreen.com> - space both sides of equals sign ! * </pre> ! * @param tag The tag with the 'SRC' attribute. ! * @param url URL of web page being parsed. ! */ ! public String extractImageLocn () { ! Vector attributes; ! int size; ! Attribute attribute; ! String string; ! String data; ! int state; ! String name; ! String ret; ! ! // TODO: move this logic into the lexer? ! ! ret = ""; ! state = 0; ! attributes = getAttributesEx (); ! size = attributes.size (); ! for (int i = 0; (i < size) && (state < 3); i++) ! { ! attribute = (Attribute)attributes.elementAt (i); ! string = attribute.getName (); ! data = attribute.getValue (); ! switch (state) ! { ! case 0: // looking for 'src' ! if (null != string) ! { ! name = string.toUpperCase (); ! if (name.equals ("SRC")) ! { ! state = 1; ! if (null != data) ! { ! if ("".equals (data)) ! state = 2; // empty attribute, SRC= ! else ! { ! ret = data; ! i = size; // exit fast ! } ! } ! ! } ! else if (name.startsWith ("SRC")) ! { ! // missing equals sign ! ret = string.substring (3); ! state = 0; // go back to searching for SRC ! // because, maybe we found SRCXXX ! // where XXX isn't a URL ! } ! } ! break; ! case 1: // looking for equals sign ! if (null != string) ! { ! if (string.startsWith ("=")) ! { ! state = 2; ! if (1 < string.length ()) ! { ! ret = string.substring (1); ! state = 0; // keep looking ? ! } ! else if (null != data) ! { ! ret = string.substring (1); ! state = 0; // keep looking ? ! } ! } ! } ! break; ! case 2: // looking for a valueless attribute that could be a relative or absolute URL ! if (null != string) ! { ! if (null == data) ! ret = string; ! state = 0; // only check first non-whitespace item ! // not every valid attribute after an equals ! } ! break; ! default: ! throw new IllegalStateException ("we're not supposed to in state " + state); ! } ! } ! ret = ParserUtils.removeChars (ret, '\n'); ! ret = ParserUtils.removeChars (ret, '\r'); ! ! return (ret); } + /** * Returns the location of the image *************** *** 60,72 **** public String getImageURL() { ! return imageURL; } public String toString() { ! return "IMAGE TAG : Image at "+imageURL+"; begins at : "+elementBegin()+"; ends at : "+elementEnd(); } ! public void setImageURL(String imageURL) { ! this.imageURL = imageURL; setAttribute ("SRC", imageURL); } --- 166,182 ---- public String getImageURL() { ! if (null == imageURL) ! imageURL = extractImageLocn (); ! return (imageURL); } + public String toString() { ! return "IMAGE TAG : Image at " + getImageURL () +"; begins at : "+elementBegin()+"; ends at : "+elementEnd(); } ! public void setImageURL (String url) ! { ! imageURL = url; setAttribute ("SRC", imageURL); } Index: InputTag.java =================================================================== RCS file: /cvsroot/htmlparser/htmlparser/src/org/htmlparser/tags/InputTag.java,v retrieving revision 1.27 retrieving revision 1.28 diff -C2 -d -r1.27 -r1.28 *** InputTag.java 22 Sep 2003 02:40:01 -0000 1.27 --- InputTag.java 20 Oct 2003 01:28:03 -0000 1.28 *************** *** 29,39 **** package org.htmlparser.tags; - import org.htmlparser.tags.data.TagData; import org.htmlparser.util.ParserUtils; public class InputTag extends Tag { ! public InputTag(TagData tagData) { ! super(tagData); } --- 29,42 ---- package org.htmlparser.tags; import org.htmlparser.util.ParserUtils; + /** + * An input tag in a form. + */ public class InputTag extends Tag { ! public InputTag () ! { ! setTagName ("INPUT"); } Index: JspTag.java =================================================================== RCS file: /cvsroot/htmlparser/htmlparser/src/org/htmlparser/tags/JspTag.java,v retrieving revision 1.31 retrieving revision 1.32 diff -C2 -d -r1.31 -r1.32 *** JspTag.java 6 Oct 2003 01:43:28 -0000 1.31 --- JspTag.java 20 Oct 2003 01:28:03 -0000 1.32 *************** *** 29,33 **** package org.htmlparser.tags; ! import org.htmlparser.tags.data.TagData; /** --- 29,34 ---- package org.htmlparser.tags; ! import org.htmlparser.Node; ! import org.htmlparser.util.SimpleNodeIterator; /** *************** *** 36,59 **** public class JspTag extends Tag { ! /** ! * The JspTag is constructed by providing the beginning posn, ending posn ! * and the tag contents. ! * @param tagData The data for this tag. ! */ ! public JspTag(TagData tagData) { ! super(tagData); ! } ! ! public String toHtml() { ! return "<"+getTagContents()+">"; } /** ! * Print the contents of the remark tag. */ public String toString() { ! return "JSP/ASP Tag : "+getTagContents()+"; begins at : "+elementBegin()+"; ends at : "+elementEnd(); } } --- 37,53 ---- public class JspTag extends Tag { ! public JspTag () { ! setTagName ("%"); } /** ! * Print the contents of the jsp tag. */ public String toString() { ! String guts = toHtml(); ! guts = guts.substring (1, guts.length () - 2); ! return "JSP/ASP Tag : "+guts+"; begins at : "+elementBegin()+"; ends at : "+elementEnd(); } } Index: LabelTag.java =================================================================== RCS file: /cvsroot/htmlparser/htmlparser/src/org/htmlparser/tags/LabelTag.java,v retrieving revision 1.28 retrieving revision 1.29 diff -C2 -d -r1.28 -r1.29 *** LabelTag.java 22 Sep 2003 02:40:01 -0000 1.28 --- LabelTag.java 20 Oct 2003 01:28:03 -0000 1.29 *************** *** 32,49 **** package org.htmlparser.tags; ! import org.htmlparser.tags.data.CompositeTagData; ! import org.htmlparser.tags.data.TagData; ! ! public class LabelTag extends CompositeTag { ! ! public LabelTag(TagData tagData, CompositeTagData compositeTagData) { ! super(tagData, compositeTagData); } ! public String getLabel() { return toPlainTextString(); } ! public String toString() { return "LABEL: "+getLabel(); } --- 32,52 ---- package org.htmlparser.tags; ! /** ! * A label tag. ! */ ! public class LabelTag extends CompositeTag ! { ! public LabelTag () ! { ! setTagName ("LABEL"); } ! public String getLabel() ! { return toPlainTextString(); } ! public String toString() ! { return "LABEL: "+getLabel(); } Index: LinkTag.java =================================================================== RCS file: /cvsroot/htmlparser/htmlparser/src/org/htmlparser/tags/LinkTag.java,v retrieving revision 1.36 retrieving revision 1.37 diff -C2 -d -r1.36 -r1.37 *** LinkTag.java 28 Sep 2003 19:30:04 -0000 1.36 --- LinkTag.java 20 Oct 2003 01:28:03 -0000 1.37 *************** *** 31,41 **** import org.htmlparser.Node; ! import org.htmlparser.tags.data.CompositeTagData; ! import org.htmlparser.tags.data.LinkData; ! import org.htmlparser.tags.data.TagData; import org.htmlparser.util.SimpleNodeIterator; import org.htmlparser.visitors.NodeVisitor; /** ! * Identifies a link tag */ public class LinkTag extends CompositeTag --- 31,42 ---- import org.htmlparser.Node; ! import org.htmlparser.scanners.LinkScanner; ! import org.htmlparser.util.LinkProcessor; ! import org.htmlparser.util.ParserUtils; import org.htmlparser.util.SimpleNodeIterator; import org.htmlparser.visitors.NodeVisitor; + /** ! * Identifies a link tag. */ public class LinkTag extends CompositeTag *************** *** 45,63 **** * The URL where the link points to */ ! protected String link; /** ! * The text of of the link element */ ! protected String linkText; /** ! * The accesskey existing inside this link. */ - protected String accessKey; - private boolean mailLink; private boolean javascriptLink; - /** ! * Constructor creates an HTMLLinkNode object, which basically stores the location * where the link points to, and the text it contains. * <p> --- 46,63 ---- * The URL where the link points to */ ! protected String mLink; ! /** ! * Set to true when the link was a mailto: URL. */ ! private boolean mailLink; ! /** ! * Set to true when the link was a javascript: URL. */ private boolean javascriptLink; /** ! * Constructor creates an LinkNode object, which basically stores the location * where the link points to, and the text it contains. * <p> *************** *** 77,82 **** * } * </pre> ! * There is another mechanism available that allows for uniform extraction of images. You could do this to ! * get all images from a web page : * <pre> * Node node; --- 77,82 ---- * } * </pre> ! * There is another mechanism available that allows for uniform extraction ! * of images. You could do this to get all images from a web page : * <pre> * Node node; *************** *** 88,118 **** * </pre> * The link tag processes all its contents in collectInto(). - * @param tagData The data relating to the tag. - * @param compositeTagData The data regarding the composite structure of the tag. - * @param linkData The data specific to the link tag. * @see #linkData() */ ! public LinkTag(TagData tagData,CompositeTagData compositeTagData,LinkData linkData) { ! super(tagData,compositeTagData); ! this.link = linkData.getLink(); ! this.linkText = linkData.getLinkText(); ! this.accessKey = linkData.getAccessKey(); ! this.mailLink = linkData.isMailLink(); ! this.javascriptLink = linkData.isJavascriptLink(); } /** ! * Returns the accesskey element if any inside this link tag ! */ public String getAccessKey() { ! return accessKey; } /** ! * Returns the url as a string, to which this link points */ public String getLink() { ! return link; } /** * Returns the text contained inside this link tag --- 88,138 ---- * </pre> * The link tag processes all its contents in collectInto(). * @see #linkData() */ ! public LinkTag () ! { ! setTagName ("A"); } + /** ! * Returns the accesskey attribute value, if any. ! */ public String getAccessKey() { ! return (getAttribute("ACCESSKEY")); } + /** ! * Returns the url as a string, to which this link points. ! * This string has had the "mailto:" and "javascript:" protocol stripped ! * off the front (if those predicates return <code>true</code>) but not ! * for other protocols. Don't ask me why, it's a legacy thing. */ public String getLink() { ! if (null == mLink) ! { ! mailLink=false; ! javascriptLink = false; ! mLink = extractLink (); ! ! int mailto = mLink.indexOf("mailto"); ! if (mailto==0) ! { ! // yes it is ! mailto = mLink.indexOf(":"); ! mLink = mLink.substring(mailto+1); ! mailLink = true; ! } ! int javascript = mLink.indexOf("javascript:"); ! if (javascript == 0) ! { ! mLink = mLink.substring(11); // this magic number is "javascript:".length() ! javascriptLink = true; ! } ! } ! return (mLink); } + /** * Returns the text contained inside this link tag *************** *** 120,125 **** public String getLinkText() { ! return linkText; } /** * Return the text contained in this linkinode --- 140,146 ---- public String getLinkText() { ! return (getChildren().toString()); } + /** * Return the text contained in this linkinode *************** *** 130,139 **** return toHtml(); } /** * Is this a mail address * @return boolean true/false */ ! public boolean isMailLink() { ! return mailLink; } --- 151,163 ---- return toHtml(); } + /** * Is this a mail address * @return boolean true/false */ ! public boolean isMailLink() ! { ! getLink (); // force an evaluation of the booleans ! return (mailLink); } *************** *** 142,147 **** * @return flag indicating if the link is a javascript code */ ! public boolean isJavascriptLink() { ! return javascriptLink; } --- 166,173 ---- * @return flag indicating if the link is a javascript code */ ! public boolean isJavascriptLink() ! { ! getLink (); // force an evaluation of the booleans ! return (javascriptLink); } *************** *** 152,156 **** */ public boolean isFTPLink() { ! return link.indexOf("ftp://")==0; } --- 178,182 ---- */ public boolean isFTPLink() { ! return getLink ().indexOf("ftp://")==0; } *************** *** 160,164 **** */ public boolean isIRCLink() { ! return link.indexOf("irc://")==0; } --- 186,190 ---- */ public boolean isIRCLink() { ! return getLink ().indexOf("irc://")==0; } *************** *** 178,184 **** * @return flag indicating if this link is an HTTPS link */ ! public boolean isHTTPSLink() { ! return link.indexOf("https://")==0; ! } /** --- 204,210 ---- * @return flag indicating if this link is an HTTPS link */ ! public boolean isHTTPSLink() { ! return getLink ().indexOf("https://")==0; ! } /** *************** *** 187,193 **** * @return flag indicating if this link is an HTTP link or one of its variations (HTTPS, etc.) */ ! public boolean isHTTPLikeLink() { ! return isHTTPLink() || isHTTPSLink(); ! } --- 213,219 ---- * @return flag indicating if this link is an HTTP link or one of its variations (HTTPS, etc.) */ ! public boolean isHTTPLikeLink() { ! return isHTTPLink() || isHTTPSLink(); ! } *************** *** 197,201 **** * @param newMailLink boolean */ ! public void setMailLink(boolean newMailLink) { mailLink = newMailLink; } --- 223,228 ---- * @param newMailLink boolean */ ! public void setMailLink(boolean newMailLink) ! { mailLink = newMailLink; } *************** *** 206,210 **** * @param newJavascriptLink flag indicating if the link is a javascript code */ ! public void setJavascriptLink(boolean newJavascriptLink) { javascriptLink = newJavascriptLink; } --- 233,238 ---- * @param newJavascriptLink flag indicating if the link is a javascript code */ ! public void setJavascriptLink(boolean newJavascriptLink) ! { javascriptLink = newJavascriptLink; } *************** *** 216,222 **** { StringBuffer sb = new StringBuffer(); ! sb.append("Link to : "+link + "; titled : "+linkText+"; begins at : "+elementBegin()+"; ends at : "+elementEnd()+ ", AccessKey="); ! if (accessKey==null) sb.append("null\n"); ! else sb.append(accessKey+"\n"); if (children()!=null) { --- 244,252 ---- { StringBuffer sb = new StringBuffer(); ! sb.append("Link to : "+ getLink() + "; titled : "+getLinkText ()+"; begins at : "+elementBegin()+"; ends at : "+elementEnd()+ ", AccessKey="); ! if (getAccessKey ()==null) ! sb.append("null\n"); ! else ! sb.append(getAccessKey ()+"\n"); if (children()!=null) { *************** *** 237,242 **** } ! public void setLink(String link) { ! this.link = link; setAttribute ("HREF", link); } --- 267,273 ---- } ! public void setLink(String link) ! { ! mLink = link; setAttribute ("HREF", link); } *************** *** 262,265 **** --- 293,312 ---- visitor.visitLinkTag (this); super.accept (visitor); + } + + /** + * Extract the link from the HREF attribute. + * The URL of the actual html page is also provided. + */ + public String extractLink () + { + String relativeLink = getAttribute ("HREF"); + if (relativeLink!=null) + { + relativeLink = ParserUtils.removeChars(relativeLink,'\n'); + relativeLink = ParserUtils.removeChars(relativeLink,'\r'); + } + LinkProcessor processor = ((LinkScanner)getThisScanner ()).processor; + return (processor.extract(relativeLink,getPage ().getUrl ())); } } Index: MetaTag.java =================================================================== RCS file: /cvsroot/htmlparser/htmlparser/src/org/htmlparser/tags/MetaTag.java,v retrieving revision 1.27 retrieving revision 1.28 diff -C2 -d -r1.27 -r1.28 *** MetaTag.java 22 Sep 2003 02:40:01 -0000 1.27 --- MetaTag.java 20 Oct 2003 01:28:03 -0000 1.28 *************** *** 29,71 **** package org.htmlparser.tags; ! import org.htmlparser.tags.data.TagData; /** * A Meta Tag */ ! public class MetaTag extends Tag { ! private String metaTagName; ! private String metaTagContents; ! private String httpEquiv; ! public MetaTag(TagData tagData, String httpEquiv, String metaTagName,String metaTagContents) { ! super(tagData); ! this.httpEquiv = httpEquiv; ! this.metaTagName = metaTagName; ! this.metaTagContents = metaTagContents; } ! public String getHttpEquiv() { ! return httpEquiv; } ! public String getMetaContent() { ! return metaTagContents; } ! public String getMetaTagName() { ! return metaTagName; } ! public void setHttpEquiv(String httpEquiv) { ! this.httpEquiv = httpEquiv; } ! public void setMetaTagContents(String metaTagContents) { ! this.metaTagContents = metaTagContents; } ! public void setMetaTagName(String metaTagName) { ! this.metaTagName = metaTagName; } ! public String toString() { return "META TAG\n"+ "--------\n"+ "Http-Equiv : "+getHttpEquiv()+"\n"+ ! "Name : "+metaTagName+"\n"+ ! "Contents : "+metaTagContents+"\n"; } } --- 29,97 ---- package org.htmlparser.tags; ! import org.htmlparser.lexer.nodes.Attribute; /** * A Meta Tag */ ! public class MetaTag extends Tag ! { ! ! public MetaTag () ! { ! setTagName ("META"); } ! ! public String getHttpEquiv () ! { ! return (getAttribute ("HTTP-EQUIV")); } ! ! public String getMetaContent () ! { ! return (getAttribute ("CONTENT")); } ! ! public String getMetaTagName () ! { ! return (getAttribute ("NAME")); } ! ! public void setHttpEquiv(String httpEquiv) ! { ! Attribute equiv; ! equiv = getAttributeEx ("HTTP-EQUIV"); ! if (null != equiv) ! equiv.setValue (httpEquiv); ! else ! getAttributesEx ().add (new Attribute ("HTTP-EQUIV", httpEquiv)); } ! ! public void setMetaTagContents(String metaTagContents) ! { ! Attribute content; ! content = getAttributeEx ("CONTENT"); ! if (null != content) ! content.setValue (metaTagContents); ! else ! getAttributesEx ().add (new Attribute ("CONTENT", metaTagContents)); } ! ! public void setMetaTagName(String metaTagName) ! { ! Attribute name; ! name = getAttributeEx ("NAME"); ! if (null != name) ! name.setValue (metaTagName); ! else ! getAttributesEx ().add (new Attribute ("NAME", metaTagName)); } ! ! public String toString() ! { return "META TAG\n"+ "--------\n"+ "Http-Equiv : "+getHttpEquiv()+"\n"+ ! "Name : "+ getMetaTagName() +"\n"+ ! "Contents : "+getMetaContent()+"\n"; } } Index: OptionTag.java =================================================================== RCS file: /cvsroot/htmlparser/htmlparser/src/org/htmlparser/tags/OptionTag.java,v retrieving revision 1.30 retrieving revision 1.31 diff -C2 -d -r1.30 -r1.31 *** OptionTag.java 22 Sep 2003 02:40:01 -0000 1.30 --- OptionTag.java 20 Oct 2003 01:28:03 -0000 1.31 *************** *** 29,60 **** package org.htmlparser.tags; ! import org.htmlparser.tags.data.CompositeTagData; ! import org.htmlparser.tags.data.TagData; ! 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; } --- 29,69 ---- package org.htmlparser.tags; ! /** ! * An option tag within a form. ! */ public class OptionTag extends CompositeTag { ! public OptionTag () { ! setTagName ("OPTION"); } ! /** ! * Get the value of the value attribute. ! */ ! public String getValue() ! { ! return (getAttribute("VALUE")); } ! /** ! * Set the value of the value attribute. ! */ ! public void setValue(String value) ! { this.setAttribute("VALUE",value); } ! /** ! * Get the text of this optin. ! */ ! public String getOptionText() ! { return toPlainTextString(); } ! public String toString() ! { ! String output = "OPTION VALUE: " + getValue() + " TEXT: " + getOptionText()+"\n"; return output; } Index: ScriptTag.java =================================================================== RCS file: /cvsroot/htmlparser/htmlparser/src/org/htmlparser/tags/ScriptTag.java,v retrieving revision 1.28 retrieving revision 1.29 diff -C2 -d -r1.28 -r1.29 *** ScriptTag.java 22 Sep 2003 02:40:01 -0000 1.28 --- ScriptTag.java 20 Oct 2003 01:28:03 -0000 1.29 *************** *** 29,84 **** package org.htmlparser.tags; - import org.htmlparser.tags.data.CompositeTagData; - import org.htmlparser.tags.data.TagData; - /** ! * A HTMLScriptTag represents a JavaScript node */ ! public class ScriptTag extends CompositeTag { ! private java.lang.String language; ! private java.lang.String type; ! private String scriptCode; /** ! * The HTMLScriptTag is constructed by providing the beginning posn, ending posn ! * and the tag contents. ! * @param tagData The data for this tag. ! * @param compositeTagData The data for this composite tag. */ ! public ScriptTag(TagData tagData,CompositeTagData compositeTagData) { ! super(tagData,compositeTagData); ! this.scriptCode = getChildrenHTML(); ! this.language = getAttribute("LANGUAGE"); ! this.type = getAttribute("TYPE"); } ! public java.lang.String getLanguage() { ! return language; } ! public java.lang.String getScriptCode() { ! return scriptCode; } - public java.lang.String getType() { - return type; - } /** ! * Set the language of the javascript tag ! * @param newLanguage java.lang.String */ ! public void setLanguage(java.lang.String newLanguage) { ! language = newLanguage; } /** ! * Set the type of the javascript node ! * @param newType java.lang.String */ ! public void setType(java.lang.String newType) { ! type = newType; } /** ! * Print the contents of the javascript node */ public String toString() --- 29,86 ---- package org.htmlparser.tags; /** ! * A script tag. */ ! public class ScriptTag extends CompositeTag ! { ! public ScriptTag () ! { ! setTagName ("SCRIPT"); ! } ! /** ! * Get the language attribute value. */ ! public String getLanguage() { ! return (getAttribute("LANGUAGE")); } ! /** ! * Get the contents of the tag's children. ! */ ! public String getScriptCode() ! { ! return (getChildrenHTML ()); } ! /** ! * Get the type attribute value. ! */ ! public String getType() ! { ! return (getAttribute("TYPE")); } /** ! * Set the language of the script tag. ! * @param language The new language value. */ ! public void setLanguage (String language) ! { ! setAttribute ("LANGUAGE", language); } + /** ! * Set the type of the script tag. ! * @param type The new type value. */ ! public void setType (String type) ! { ! setAttribute ("TYPE", type); } /** ! * Print the contents of the script tag. */ public String toString() *************** *** 86,95 **** StringBuffer sb = new StringBuffer(); sb.append("Script Node : \n"); ! if (language!=null && type!=null) ! if (language.length()!=0 || type.length()!=0... [truncated message content] |
From: <der...@us...> - 2003-10-20 03:32:08
|
Update of /cvsroot/htmlparser/htmlparser/src/org/htmlparser/lexer In directory sc8-pr-cvs1:/tmp/cvs-serv26197/lexer Modified Files: Lexer.java Log Message: Removed lexer level AbstractNode. Removed data package from parser level tags. Separated tag creation from recursion in NodeFactory interface. Index: Lexer.java =================================================================== RCS file: /cvsroot/htmlparser/htmlparser/src/org/htmlparser/lexer/Lexer.java,v retrieving revision 1.14 retrieving revision 1.15 diff -C2 -d -r1.14 -r1.15 *** Lexer.java 18 Oct 2003 20:50:36 -0000 1.14 --- Lexer.java 20 Oct 2003 01:28:02 -0000 1.15 *************** *** 41,45 **** import org.htmlparser.Node; ! import org.htmlparser.lexer.nodes.AbstractNode; import org.htmlparser.lexer.nodes.PageAttribute; import org.htmlparser.lexer.nodes.NodeFactory; --- 41,45 ---- import org.htmlparser.Node; ! import org.htmlparser.AbstractNode; import org.htmlparser.lexer.nodes.PageAttribute; import org.htmlparser.lexer.nodes.NodeFactory; *************** *** 736,739 **** --- 736,740 ---- mCursor = cursor; ret = getNodeFactory ().createTagNode (this, begin, end, attributes); + ret = getNodeFactory ().scanTagNode (this, ret); } else *************** *** 897,900 **** --- 898,905 ---- /** * Create a new tag node. + * Note that the attributes vector contains at least one element, + * which is the tag name (standalone attribute) at position zero. + * This can be used to decide which type of node to create, or + * gate other processing that may be appropriate. * @param lexer The lexer parsing this tag. * @param start The beginning position of the tag. *************** *** 905,908 **** --- 910,943 ---- { return (new TagNode (lexer.getPage (), start, end, attributes)); + } + + /** + * Scan a new tag node. + * Provides composite tags the opportunity to collect their children by + * scanning forward using the same lexer that created the composite tag. + * On isolating a tag, processing in the lexer is: + * <pre><code> + * Node node = getNodeFactory ().createTagNode (this, begin, end, attributes); + * node = getNodeFactory ().scanTagNode (this, node); + * </code></pre> + * This two step process, allows a node factory to only handle node + * creation if it wishes, and delegate the recursion and scanning of child + * nodes to the original factory. + * Without giving too much implementation details, the low level lexer node + * factory simply returns the same tag, while the higher level parser node + * factory checks for a scanner registered for the node type and if there + * is one, calls the scanner to create the specific type of node, which + * advances the lexer past the children of the node. + * @param lexer The lexer that parsed this tag. + * @param tag The tag (just) created by createTagNode. Although this is + * of type Node, it can safely be cast to the type returned by + * {@link #createTagNode createTagNode}. + * @return Either the same node or a new node containing children. + * In any case the lexer should be positioned to proceed with the isolation + * of the next unknown node. + */ + public Node scanTagNode (Lexer lexer, Node tag) + { + return (tag); } |
From: <der...@us...> - 2003-10-20 02:54:26
|
Update of /cvsroot/htmlparser/htmlparser/src/org/htmlparser/parserHelper In directory sc8-pr-cvs1:/tmp/cvs-serv26197/parserHelper Modified Files: CompositeTagScannerHelper.java Log Message: Removed lexer level AbstractNode. Removed data package from parser level tags. Separated tag creation from recursion in NodeFactory interface. Index: CompositeTagScannerHelper.java =================================================================== RCS file: /cvsroot/htmlparser/htmlparser/src/org/htmlparser/parserHelper/CompositeTagScannerHelper.java,v retrieving revision 1.51 retrieving revision 1.52 diff -C2 -d -r1.51 -r1.52 *** CompositeTagScannerHelper.java 18 Oct 2003 20:50:37 -0000 1.51 --- CompositeTagScannerHelper.java 20 Oct 2003 01:28:02 -0000 1.52 *************** *** 38,43 **** import org.htmlparser.tags.CompositeTag; import org.htmlparser.tags.Tag; - import org.htmlparser.tags.data.CompositeTagData; - import org.htmlparser.tags.data.TagData; import org.htmlparser.util.NodeList; import org.htmlparser.util.ParserException; --- 38,41 ---- *************** *** 123,133 **** Vector attributes = new Vector (); attributes.addElement (new Attribute (endTagName, (String)null)); ! TagData data = new TagData( ! endTagName, ! position, ! attributes, ! mLexer.getPage ().getUrl (), ! false); ! endTag = new Tag (data); } --- 121,125 ---- Vector attributes = new Vector (); attributes.addElement (new Attribute (endTagName, (String)null)); ! endTag = new Tag (mLexer.getPage (), position, position, attributes); } *************** *** 151,174 **** private Tag createTag() throws ParserException { ! TagData data; ! ! data = new TagData( ! mLexer.getPage (), ! mTag.elementBegin(), ! endTag.elementEnd(), ! mTag.getAttributesEx (), ! mLexer.getPage ().getUrl (), ! mTag.isEmptyXmlTag ()); ! CompositeTag newTag = (CompositeTag)scanner.createTag (data, ! new CompositeTagData( ! mTag,endTag,nodeList ! ) ! ); ! for (int i=0;i<newTag.getChildCount();i++) { ! Node child = newTag.childAt(i); ! child.setParent(newTag); } ! return newTag; } --- 143,156 ---- private Tag createTag() throws ParserException { ! CompositeTag ret; ! ret = (CompositeTag)scanner.createTag (mLexer.getPage (), mTag.elementBegin(), endTag.elementEnd(), mTag.getAttributesEx (), mTag, endTag, nodeList); ! for (int i=0;i<ret.getChildCount();i++) ! { ! Node child = ret.childAt(i); ! child.setParent(ret); } ! ! return (ret); } |
Update of /cvsroot/htmlparser/htmlparser/src/org/htmlparser/lexer/nodes In directory sc8-pr-cvs1:/tmp/cvs-serv26197/lexer/nodes Modified Files: NodeFactory.java RemarkNode.java StringNode.java TagNode.java Removed Files: AbstractNode.java Log Message: Removed lexer level AbstractNode. Removed data package from parser level tags. Separated tag creation from recursion in NodeFactory interface. Index: NodeFactory.java =================================================================== RCS file: /cvsroot/htmlparser/htmlparser/src/org/htmlparser/lexer/nodes/NodeFactory.java,v retrieving revision 1.1 retrieving revision 1.2 diff -C2 -d -r1.1 -r1.2 *** NodeFactory.java 28 Sep 2003 15:33:58 -0000 1.1 --- NodeFactory.java 20 Oct 2003 01:28:02 -0000 1.2 *************** *** 61,64 **** --- 61,68 ---- /** * Create a new tag node. + * Note that the attributes vector contains at least one element, + * which is the tag name (standalone attribute) at position zero. + * This can be used to decide which type of node to create, or + * gate other processing that may be appropriate. * @param lexer The lexer parsing this tag. * @param start The beginning position of the tag. *************** *** 67,70 **** --- 71,103 ---- */ public Node createTagNode (Lexer lexer, int start, int end, Vector attributes) + throws + ParserException; + + /** + * Scan a new tag node. + * Provides composite tags the opportunity to collect their children by + * scanning forward using the same lexer that created the composite tag. + * On isolating a tag, processing in the lexer is: + * <pre><code> + * Node node = getNodeFactory ().createTagNode (this, begin, end, attributes); + * node = getNodeFactory ().scanTagNode (this, node); + * </code></pre> + * This two step process, allows a node factory to only handle node + * creation if it wishes, and delegate the recursion and scanning of child + * nodes to the original factory. + * Without giving too much implementation details, the low level lexer node + * factory simply returns the same tag, while the higher level parser node + * factory checks for a scanner registered for the node type and if there + * is one, calls the scanner to create the specific type of node, which + * advances the lexer past the children of the node. + * @param lexer The lexer that parsed this tag. + * @param tag The tag (just) created by createTagNode. Although this is + * of type Node, it can safely be cast to the type returned by + * {@link #createTagNode createTagNode}. + * @return Either the same node or a new node containing children. + * In any case the lexer should be positioned to proceed with the isolation + * of the next unknown node. + */ + public Node scanTagNode (Lexer lexer, Node tag) throws ParserException; Index: RemarkNode.java =================================================================== RCS file: /cvsroot/htmlparser/htmlparser/src/org/htmlparser/lexer/nodes/RemarkNode.java,v retrieving revision 1.7 retrieving revision 1.8 diff -C2 -d -r1.7 -r1.8 *** RemarkNode.java 22 Sep 2003 02:39:59 -0000 1.7 --- RemarkNode.java 20 Oct 2003 01:28:02 -0000 1.8 *************** *** 30,33 **** --- 30,34 ---- package org.htmlparser.lexer.nodes; + import org.htmlparser.AbstractNode; import org.htmlparser.lexer.Cursor; import org.htmlparser.lexer.Page; Index: StringNode.java =================================================================== RCS file: /cvsroot/htmlparser/htmlparser/src/org/htmlparser/lexer/nodes/StringNode.java,v retrieving revision 1.9 retrieving revision 1.10 diff -C2 -d -r1.9 -r1.10 *** StringNode.java 3 Oct 2003 02:15:19 -0000 1.9 --- StringNode.java 20 Oct 2003 01:28:02 -0000 1.10 *************** *** 30,33 **** --- 30,34 ---- package org.htmlparser.lexer.nodes; + import org.htmlparser.AbstractNode; import org.htmlparser.lexer.Cursor; import org.htmlparser.lexer.Page; Index: TagNode.java =================================================================== RCS file: /cvsroot/htmlparser/htmlparser/src/org/htmlparser/lexer/nodes/TagNode.java,v retrieving revision 1.17 retrieving revision 1.18 diff -C2 -d -r1.17 -r1.18 *** TagNode.java 18 Oct 2003 20:50:37 -0000 1.17 --- TagNode.java 20 Oct 2003 01:28:02 -0000 1.18 *************** *** 32,35 **** --- 32,36 ---- import java.util.Hashtable; import java.util.Vector; + import org.htmlparser.AbstractNode; import org.htmlparser.lexer.Cursor; *************** *** 162,175 **** singleq = true; doubleq = true; ! for (int i = 0; i < value.length (); i++) ! { ! ch = value.charAt (i); ! if (Character.isWhitespace (ch)) ! needed = true; ! else if ('\'' == ch) ! singleq = false; ! else if ('"' == ch) ! doubleq = false; ! } // now apply quoting --- 163,177 ---- singleq = true; doubleq = true; ! if (null != value) ! for (int i = 0; i < value.length (); i++) ! { ! ch = value.charAt (i); ! if (Character.isWhitespace (ch)) ! needed = true; ! else if ('\'' == ch) ! singleq = false; ! else if ('"' == ch) ! doubleq = false; ! } // now apply quoting *************** *** 205,208 **** --- 207,223 ---- /** + * Remove the attribute with the given key, if it exists. + * @param key The name of the attribute. + */ + public void removeAttribute (String key) + { + Attribute attribute; + + attribute = getAttributeEx (key); + if (null != attribute) + getAttributesEx ().remove (attribute); + } + + /** * Set attribute with given key, value pair where the value is quoted by quote. * @param key The name of the attribute. *************** *** 284,288 **** { // add whitespace between attributes ! if (!((Attribute)attributes.elementAt (length - 1)).isWhitespace ()) attributes.addElement (new Attribute (" ")); attributes.addElement (attribute); --- 299,303 ---- { // add whitespace between attributes ! if ((0 != length) && !((Attribute)attributes.elementAt (length - 1)).isWhitespace ()) attributes.addElement (new Attribute (" ")); attributes.addElement (attribute); *************** *** 586,600 **** attributes = getAttributesEx (); ret.append ("<"); ! if (0 < attributes.size ()) { ! // special handling for the node name ! attribute = (Attribute)attributes.elementAt (0); ! ret.append (attribute.getName ()); ! // the rest ! for (int i = 1; i < attributes.size (); i++) ! { ! attribute = (Attribute)attributes.elementAt (i); ! attribute.toString (ret); ! } } ret.append (">"); --- 601,608 ---- attributes = getAttributesEx (); ret.append ("<"); ! for (int i = 0; i < attributes.size (); i++) { ! attribute = (Attribute)attributes.elementAt (i); ! attribute.toString (ret); } ret.append (">"); --- AbstractNode.java DELETED --- |
From: <der...@us...> - 2003-10-20 02:52:47
|
Update of /cvsroot/htmlparser/htmlparser/src/org/htmlparser In directory sc8-pr-cvs1:/tmp/cvs-serv26197 Modified Files: AbstractNode.java Parser.java Log Message: Removed lexer level AbstractNode. Removed data package from parser level tags. Separated tag creation from recursion in NodeFactory interface. Index: AbstractNode.java =================================================================== RCS file: /cvsroot/htmlparser/htmlparser/src/org/htmlparser/AbstractNode.java,v retrieving revision 1.16 retrieving revision 1.17 diff -C2 -d -r1.16 -r1.17 *** AbstractNode.java 5 Oct 2003 13:49:40 -0000 1.16 --- AbstractNode.java 20 Oct 2003 01:28:02 -0000 1.17 *************** *** 30,33 **** --- 30,34 ---- import java.io.Serializable; + import org.htmlparser.lexer.Page; import org.htmlparser.util.NodeList; *************** *** 36,40 **** * AbstractNode, which implements the Node interface, is the base class for all types of nodes, including tags, string elements, etc */ ! public abstract class AbstractNode implements Node, Serializable { /** * The beginning position of the tag in the line --- 37,47 ---- * AbstractNode, which implements the Node interface, is the base class for all types of nodes, including tags, string elements, etc */ ! public abstract class AbstractNode implements Node, Serializable ! { ! /** ! * The page this node came from. ! */ ! protected Page mPage; ! /** * The beginning position of the tag in the line *************** *** 59,70 **** /** * Create an abstract node with the page positions given. ! * @param begin The starting position of the node. ! * @param end The ending position of the node. */ ! public AbstractNode (int begin, int end) { ! nodeBegin = begin; ! nodeEnd = end; parent = null; } --- 66,81 ---- /** * Create an abstract node with the page positions given. ! * Remember the page and start & end cursor positions. ! * @param page The page this tag was read from. ! * @param start The starting offset of this node within the page. ! * @param end The ending offset of this node within the page. */ ! public AbstractNode (Page page, int start, int end) { ! mPage = page; ! nodeBegin = start; ! nodeEnd = end; parent = null; + children = null; } *************** *** 164,177 **** /** * Returns the beginning position of the tag. */ ! public int elementBegin() { ! return nodeBegin; } /** * Returns the ending position fo the tag */ ! public int elementEnd() { ! return nodeEnd; } --- 175,210 ---- /** * Returns the beginning position of the tag. + * @deprecated Use {@link #getStartPosition}. */ ! public int elementBegin() ! { ! return (getStartPosition ()); } /** * Returns the ending position fo the tag + * @deprecated Use {@link #getEndPosition}. */ ! public int elementEnd() ! { ! return (getEndPosition ()); ! } ! ! /** ! * Get the page this node came from. ! * @return The page that supplied this node. ! */ ! public Page getPage () ! { ! return (mPage); ! } ! ! /** ! * Set the page this node came from. ! * @param page The page that supplied this node. ! */ ! public void setPage (Page page) ! { ! mPage = page; } Index: Parser.java =================================================================== RCS file: /cvsroot/htmlparser/htmlparser/src/org/htmlparser/Parser.java,v retrieving revision 1.66 retrieving revision 1.67 diff -C2 -d -r1.66 -r1.67 *** Parser.java 13 Oct 2003 21:48:11 -0000 1.66 --- Parser.java 20 Oct 2003 01:28:02 -0000 1.67 *************** *** 1016,1021 **** /** * Create a new tag node. ! * This recurses into the created tag by calling the tag's scanner, ! * if it is in the list of registered scanners. * @param lexer The lexer parsing this tag. * @param start The beginning position of the tag. --- 1016,1023 ---- /** * Create a new tag node. ! * Note that the attributes vector contains at least one element, ! * which is the tag name (standalone attribute) at position zero. ! * This can be used to decide which type of node to create, or ! * gate other processing that may be appropriate. * @param lexer The lexer parsing this tag. * @param start The beginning position of the tag. *************** *** 1027,1030 **** --- 1029,1064 ---- ParserException { + return (new Tag (lexer.getPage (), start, end, attributes)); + } + + /** + * Scan a new tag node. + * Provides composite tags the opportunity to collect their children by + * scanning forward using the same lexer that created the composite tag. + * On isolating a tag, processing in the lexer is: + * <pre><code> + * Node node = getNodeFactory ().createTagNode (this, begin, end, attributes); + * node = getNodeFactory ().scanTagNode (this, node); + * </code></pre> + * This two step process, allows a node factory to only handle node + * creation if it wishes, and delegate the recursion and scanning of child + * nodes to the original factory. + * Without giving too much implementation details, the low level lexer node + * factory simply returns the same tag, while the higher level parser node + * factory checks for a scanner registered for the node type and if there + * is one, calls the scanner to create the specific type of node, which + * advances the lexer past the children of the node. + * @param lexer The lexer that parsed this tag. + * @param tag The tag (just) created by createTagNode. Although this is + * of type Node, it can safely be cast to the type returned by + * {@link #createTagNode createTagNode}. + * @return Either the same node or a new node containing children. + * In any case the lexer should be positioned to proceed with the isolation + * of the next unknown node. + */ + public Node scanTagNode (Lexer lexer, Node tag) + throws + ParserException + { String name; TagScanner save; *************** *** 1032,1036 **** Tag ret; ! ret = new Tag (lexer.getPage (), start, end, attributes); if (!ret.isEndTag ()) { --- 1066,1070 ---- Tag ret; ! ret = (Tag)tag; if (!ret.isEndTag ()) { |
Update of /cvsroot/htmlparser/htmlparser/src/org/htmlparser/scanners In directory sc8-pr-cvs1:/tmp/cvs-serv26197/scanners Modified Files: AppletScanner.java BaseHrefScanner.java BodyScanner.java BulletListScanner.java BulletScanner.java CompositeTagScanner.java DivScanner.java DoctypeScanner.java FormScanner.java FrameScanner.java FrameSetScanner.java HeadScanner.java HtmlScanner.java ImageScanner.java InputTagScanner.java JspScanner.java LabelScanner.java LinkScanner.java MetaTagScanner.java OptionTagScanner.java ScriptScanner.java SelectTagScanner.java SpanScanner.java StyleScanner.java TableColumnScanner.java TableRowScanner.java TableScanner.java TagScanner.java TextareaTagScanner.java TitleScanner.java Log Message: Removed lexer level AbstractNode. Removed data package from parser level tags. Separated tag creation from recursion in NodeFactory interface. Index: AppletScanner.java =================================================================== RCS file: /cvsroot/htmlparser/htmlparser/src/org/htmlparser/scanners/AppletScanner.java,v retrieving revision 1.32 retrieving revision 1.33 diff -C2 -d -r1.32 -r1.33 *** AppletScanner.java 22 Sep 2003 02:40:00 -0000 1.32 --- AppletScanner.java 20 Oct 2003 01:28:02 -0000 1.33 *************** *** 29,42 **** package org.htmlparser.scanners; import org.htmlparser.tags.AppletTag; import org.htmlparser.tags.Tag; ! import org.htmlparser.tags.data.CompositeTagData; ! import org.htmlparser.tags.data.TagData; import org.htmlparser.util.ParserException; /** ! * Scanner for Applet tags */ ! public class AppletScanner extends CompositeTagScanner { private static String [] MATCH_STRING = {"APPLET"}; --- 29,45 ---- package org.htmlparser.scanners; + + import java.util.Vector; + import org.htmlparser.lexer.Page; import org.htmlparser.tags.AppletTag; import org.htmlparser.tags.Tag; ! import org.htmlparser.util.NodeList; import org.htmlparser.util.ParserException; /** ! * Scanner for applet tags. */ ! public class AppletScanner extends CompositeTagScanner ! { private static String [] MATCH_STRING = {"APPLET"}; *************** *** 53,61 **** } ! public Tag createTag(TagData tagData, CompositeTagData compositeTagData) ! throws ParserException { ! return new AppletTag(tagData,compositeTagData); ! } } --- 56,73 ---- } ! public Tag createTag(Page page, int start, int end, Vector attributes, Tag startTag, Tag endTag, NodeList children) throws ParserException ! { ! AppletTag ret; ! ret = new AppletTag (); ! ret.setPage (page); ! ret.setStartPosition (start); ! ret.setEndPosition (end); ! ret.setAttributesEx (attributes); ! ret.setStartTag (startTag); ! ret.setEndTag (endTag); ! ret.setChildren (children); + return (ret); + } } Index: BaseHrefScanner.java =================================================================== RCS file: /cvsroot/htmlparser/htmlparser/src/org/htmlparser/scanners/BaseHrefScanner.java,v retrieving revision 1.26 retrieving revision 1.27 diff -C2 -d -r1.26 -r1.27 *** BaseHrefScanner.java 22 Sep 2003 02:40:00 -0000 1.26 --- BaseHrefScanner.java 20 Oct 2003 01:28:03 -0000 1.27 *************** *** 29,51 **** package org.htmlparser.scanners; import org.htmlparser.tags.BaseHrefTag; import org.htmlparser.tags.Tag; - import org.htmlparser.tags.data.TagData; import org.htmlparser.util.LinkProcessor; import org.htmlparser.util.ParserException; ! public class BaseHrefScanner extends TagScanner { private LinkProcessor processor; ! public BaseHrefScanner() { super(); } ! public BaseHrefScanner(String filter,LinkProcessor processor) { super(filter); this.processor = processor; } ! public String [] getID() { String [] ids = new String[1]; ids[0] = "BASE"; --- 29,61 ---- package org.htmlparser.scanners; + import java.util.Vector; + import org.htmlparser.lexer.Page; import org.htmlparser.tags.BaseHrefTag; import org.htmlparser.tags.Tag; import org.htmlparser.util.LinkProcessor; import org.htmlparser.util.ParserException; ! /** ! * Scanner for base tags. ! * Even though BASE is not a composite tag, this scanner is present to ! * handle setting the base href which is referenced by other tags. ! */ ! public class BaseHrefScanner extends TagScanner ! { private LinkProcessor processor; ! public BaseHrefScanner() ! { super(); } ! public BaseHrefScanner(String filter,LinkProcessor processor) ! { super(filter); this.processor = processor; } ! public String [] getID() ! { String [] ids = new String[1]; ids[0] = "BASE"; *************** *** 53,65 **** } ! protected Tag createTag(TagData tagData, Tag tag, String url) ! throws ParserException { ! String baseUrl = (String)tag.getAttribute("HREF"); ! String absoluteBaseUrl=""; ! if (baseUrl != null && baseUrl.length()>0) { ! absoluteBaseUrl = LinkProcessor.removeLastSlash(baseUrl.trim()); ! processor.setBaseUrl(absoluteBaseUrl); ! } ! return new BaseHrefTag(tagData,absoluteBaseUrl); } } --- 63,82 ---- } ! protected Tag createTag (Page page, int start, int end, Vector attributes, Tag tag, String url) throws ParserException ! { ! BaseHrefTag ret; ! ! ret = new BaseHrefTag (); ! ret.setPage (page); ! ret.setStartPosition (start); ! ret.setEndPosition (end); ! ret.setAttributesEx (attributes); ! ! // special step here ! // Need to set the base url for the current link processor, ! // which can't be done in the tag because it doesn't have it. ! processor.setBaseUrl (ret.getBaseUrl ()); ! ! return (ret); } } Index: BodyScanner.java =================================================================== RCS file: /cvsroot/htmlparser/htmlparser/src/org/htmlparser/scanners/BodyScanner.java,v retrieving revision 1.18 retrieving revision 1.19 diff -C2 -d -r1.18 -r1.19 *** BodyScanner.java 22 Sep 2003 02:40:00 -0000 1.18 --- BodyScanner.java 20 Oct 2003 01:28:03 -0000 1.19 *************** *** 30,63 **** package org.htmlparser.scanners; import org.htmlparser.tags.BodyTag; import org.htmlparser.tags.Tag; ! import org.htmlparser.tags.data.CompositeTagData; ! import org.htmlparser.tags.data.TagData; /** ! * Scans body tags. */ ! public class BodyScanner extends CompositeTagScanner { private static final String MATCH_NAME [] = {"BODY"}; private static final String ENDERS [] = {}; private static final String END_TAG_ENDERS [] = {"HTML"}; ! public BodyScanner() { this(""); } ! public BodyScanner(String filter) { super(filter,MATCH_NAME,ENDERS,END_TAG_ENDERS,false); } ! public String [] getID() { return MATCH_NAME; } ! public Tag createTag( ! TagData tagData, ! CompositeTagData compositeTagData) { ! return new BodyTag(tagData,compositeTagData); ! } } --- 30,78 ---- package org.htmlparser.scanners; + import java.util.Vector; + import org.htmlparser.lexer.Page; import org.htmlparser.tags.BodyTag; import org.htmlparser.tags.Tag; ! import org.htmlparser.util.NodeList; ! import org.htmlparser.util.ParserException; /** ! * Scanner for body tags. */ ! public class BodyScanner extends CompositeTagScanner ! { private static final String MATCH_NAME [] = {"BODY"}; private static final String ENDERS [] = {}; private static final String END_TAG_ENDERS [] = {"HTML"}; ! public BodyScanner() ! { this(""); } ! public BodyScanner(String filter) ! { super(filter,MATCH_NAME,ENDERS,END_TAG_ENDERS,false); } ! public String [] getID() ! { return MATCH_NAME; } ! public Tag createTag(Page page, int start, int end, Vector attributes, Tag startTag, Tag endTag, NodeList children) throws ParserException ! { ! BodyTag ret; + ret = new BodyTag (); + ret.setPage (page); + ret.setStartPosition (start); + ret.setEndPosition (end); + ret.setAttributesEx (attributes); + ret.setStartTag (startTag); + ret.setEndTag (endTag); + ret.setChildren (children); + + return (ret); + } } Index: BulletListScanner.java =================================================================== RCS file: /cvsroot/htmlparser/htmlparser/src/org/htmlparser/scanners/BulletListScanner.java,v retrieving revision 1.17 retrieving revision 1.18 diff -C2 -d -r1.17 -r1.18 *** BulletListScanner.java 22 Sep 2003 02:40:00 -0000 1.17 --- BulletListScanner.java 20 Oct 2003 01:28:03 -0000 1.18 *************** *** 30,66 **** import java.util.Stack; import org.htmlparser.Parser; import org.htmlparser.tags.BulletList; import org.htmlparser.tags.Tag; ! import org.htmlparser.tags.data.CompositeTagData; ! import org.htmlparser.tags.data.TagData; import org.htmlparser.util.ParserException; ! ! public class BulletListScanner extends CompositeTagScanner { private static final String [] MATCH_STRING = { "UL", "OL" }; private final static String ENDERS [] = { "BODY", "HTML" }; private Stack ulli = new Stack(); ! public BulletListScanner(Parser parser) { this("",parser); } ! public BulletListScanner(String filter, Parser parser) { super(filter, MATCH_STRING, ENDERS); parser.addScanner(new BulletScanner("-bullet",ulli)); } ! public Tag createTag(TagData tagData, CompositeTagData compositeTagData) ! throws ParserException { ! return new BulletList(tagData,compositeTagData); } ! public String[] getID() { return MATCH_STRING; } ! public void beforeScanningStarts() { ulli.push(this); } --- 30,86 ---- import java.util.Stack; + import java.util.Vector; import org.htmlparser.Parser; + import org.htmlparser.lexer.Page; import org.htmlparser.tags.BulletList; import org.htmlparser.tags.Tag; ! import org.htmlparser.util.NodeList; import org.htmlparser.util.ParserException; ! /** ! * Scanner for bullet lists. ! * Handles both UL and OL tags. ! */ ! public class BulletListScanner extends CompositeTagScanner ! { private static final String [] MATCH_STRING = { "UL", "OL" }; private final static String ENDERS [] = { "BODY", "HTML" }; private Stack ulli = new Stack(); ! public BulletListScanner(Parser parser) ! { this("",parser); } ! public BulletListScanner(String filter, Parser parser) ! { super(filter, MATCH_STRING, ENDERS); parser.addScanner(new BulletScanner("-bullet",ulli)); } ! public Tag createTag(Page page, int start, int end, Vector attributes, Tag startTag, Tag endTag, NodeList children) throws ParserException ! { ! BulletList ret; ! ! ret = new BulletList (); ! ret.setPage (page); ! ret.setStartPosition (start); ! ret.setEndPosition (end); ! ret.setAttributesEx (attributes); ! ret.setStartTag (startTag); ! ret.setEndTag (endTag); ! ret.setChildren (children); ! ! return (ret); } ! public String[] getID() ! { return MATCH_STRING; } ! public void beforeScanningStarts() ! { ulli.push(this); } Index: BulletScanner.java =================================================================== RCS file: /cvsroot/htmlparser/htmlparser/src/org/htmlparser/scanners/BulletScanner.java,v retrieving revision 1.22 retrieving revision 1.23 diff -C2 -d -r1.22 -r1.23 *** BulletScanner.java 22 Sep 2003 02:40:00 -0000 1.22 --- BulletScanner.java 20 Oct 2003 01:28:03 -0000 1.23 *************** *** 30,38 **** import java.util.Stack; import org.htmlparser.tags.Bullet; import org.htmlparser.tags.Tag; ! import org.htmlparser.tags.data.CompositeTagData; ! import org.htmlparser.tags.data.TagData; import org.htmlparser.util.ParserException; --- 30,39 ---- import java.util.Stack; + import java.util.Vector; + import org.htmlparser.lexer.Page; import org.htmlparser.tags.Bullet; import org.htmlparser.tags.Tag; ! import org.htmlparser.util.NodeList; import org.htmlparser.util.ParserException; *************** *** 46,50 **** * These rules are implemented easily through the shared stack. */ ! public class BulletScanner extends CompositeTagScanner { private static final String [] MATCH_STRING = {"LI"}; private final static String ENDERS [] = { "BODY", "HTML" }; --- 47,52 ---- * These rules are implemented easily through the shared stack. */ ! public class BulletScanner extends CompositeTagScanner ! { private static final String [] MATCH_STRING = {"LI"}; private final static String ENDERS [] = { "BODY", "HTML" }; *************** *** 52,70 **** private Stack ulli; ! public BulletScanner(Stack ulli) { this("",ulli); } ! public BulletScanner(String filter, Stack ulli) { super(filter, MATCH_STRING, ENDERS, END_TAG_ENDERS, false); this.ulli = ulli; } ! public Tag createTag(TagData tagData, CompositeTagData compositeTagData) ! throws ParserException { ! return new Bullet(tagData,compositeTagData); } ! public String[] getID() { return MATCH_STRING; } --- 54,86 ---- private Stack ulli; ! public BulletScanner(Stack ulli) ! { this("",ulli); } ! public BulletScanner(String filter, Stack ulli) ! { super(filter, MATCH_STRING, ENDERS, END_TAG_ENDERS, false); this.ulli = ulli; } ! public Tag createTag(Page page, int start, int end, Vector attributes, Tag startTag, Tag endTag, NodeList children) throws ParserException ! { ! Bullet ret; ! ! ret = new Bullet (); ! ret.setPage (page); ! ret.setStartPosition (start); ! ret.setEndPosition (end); ! ret.setAttributesEx (attributes); ! ret.setStartTag (startTag); ! ret.setEndTag (endTag); ! ret.setChildren (children); ! ! return (ret); } ! public String[] getID() ! { return MATCH_STRING; } *************** *** 73,87 **** * This is the logic that decides when a bullet tag can be allowed */ ! public boolean shouldCreateEndTagAndExit() { ! if (ulli.size()==0) return false; CompositeTagScanner parentScanner = (CompositeTagScanner)ulli.peek(); ! if (parentScanner == this) { ulli.pop(); return true; ! } else return false; } ! public void beforeScanningStarts() { ulli.push(this); } --- 89,108 ---- * This is the logic that decides when a bullet tag can be allowed */ ! public boolean shouldCreateEndTagAndExit() ! { ! if (ulli.size()==0) ! return false; CompositeTagScanner parentScanner = (CompositeTagScanner)ulli.peek(); ! if (parentScanner == this) ! { ulli.pop(); return true; ! } ! else return false; } ! public void beforeScanningStarts() ! { ulli.push(this); } Index: CompositeTagScanner.java =================================================================== RCS file: /cvsroot/htmlparser/htmlparser/src/org/htmlparser/scanners/CompositeTagScanner.java,v retrieving revision 1.69 retrieving revision 1.70 diff -C2 -d -r1.69 -r1.70 *** CompositeTagScanner.java 5 Oct 2003 13:49:52 -0000 1.69 --- CompositeTagScanner.java 20 Oct 2003 01:28:03 -0000 1.70 *************** *** 31,45 **** import java.util.HashSet; import java.util.Set; import org.htmlparser.Node; import org.htmlparser.lexer.Lexer; import org.htmlparser.parserHelper.CompositeTagScannerHelper; import org.htmlparser.tags.Tag; ! import org.htmlparser.tags.data.CompositeTagData; ! import org.htmlparser.tags.data.TagData; import org.htmlparser.util.ParserException; /** ! * To create your own scanner that can hold children, create a subclass of this class. * The composite tag scanner can be configured with:<br> * <ul> --- 31,46 ---- import java.util.HashSet; import java.util.Set; + import java.util.Vector; import org.htmlparser.Node; import org.htmlparser.lexer.Lexer; + import org.htmlparser.lexer.Page; import org.htmlparser.parserHelper.CompositeTagScannerHelper; import org.htmlparser.tags.Tag; ! import org.htmlparser.util.NodeList; import org.htmlparser.util.ParserException; /** ! * To create your own scanner that can create tags tht hold children, create a subclass of this class. * The composite tag scanner can be configured with:<br> * <ul> *************** *** 91,95 **** * Inside the scanner, use createTag() to specify what tag needs to be created. */ ! public abstract class CompositeTagScanner extends TagScanner { protected String [] nameOfTagToMatch; private boolean allowSelfChildren; --- 92,97 ---- * Inside the scanner, use createTag() to specify what tag needs to be created. */ ! public abstract class CompositeTagScanner extends TagScanner ! { protected String [] nameOfTagToMatch; private boolean allowSelfChildren; *************** *** 98,118 **** private boolean balance_quotes; ! public CompositeTagScanner(String [] nameOfTagToMatch) { this(nameOfTagToMatch,new String[] {}); } ! public CompositeTagScanner(String [] nameOfTagToMatch, String [] tagEnders) { this("",nameOfTagToMatch,tagEnders); } ! public CompositeTagScanner(String [] nameOfTagToMatch, String [] tagEnders, boolean allowSelfChildren) { this("",nameOfTagToMatch,tagEnders,allowSelfChildren); } ! public CompositeTagScanner(String filter, String [] nameOfTagToMatch) { this(filter,nameOfTagToMatch,new String [] {},true); } ! public CompositeTagScanner(String filter, String [] nameOfTagToMatch, String [] tagEnders) { this(filter,nameOfTagToMatch,tagEnders,true); } --- 100,125 ---- private boolean balance_quotes; ! public CompositeTagScanner(String [] nameOfTagToMatch) ! { this(nameOfTagToMatch,new String[] {}); } ! public CompositeTagScanner(String [] nameOfTagToMatch, String [] tagEnders) ! { this("",nameOfTagToMatch,tagEnders); } ! public CompositeTagScanner(String [] nameOfTagToMatch, String [] tagEnders, boolean allowSelfChildren) ! { this("",nameOfTagToMatch,tagEnders,allowSelfChildren); } ! public CompositeTagScanner(String filter, String [] nameOfTagToMatch) ! { this(filter,nameOfTagToMatch,new String [] {},true); } ! public CompositeTagScanner(String filter, String [] nameOfTagToMatch, String [] tagEnders) ! { this(filter,nameOfTagToMatch,tagEnders,true); } *************** *** 122,126 **** String [] nameOfTagToMatch, String [] tagEnders, ! boolean allowSelfChildren) { this(filter,nameOfTagToMatch,tagEnders,new String[] {}, allowSelfChildren); } --- 129,134 ---- String [] nameOfTagToMatch, String [] tagEnders, ! boolean allowSelfChildren) ! { this(filter,nameOfTagToMatch,tagEnders,new String[] {}, allowSelfChildren); } *************** *** 163,167 **** String [] endTagEnders, boolean allowSelfChildren, ! boolean balance_quotes) { super(filter); this.nameOfTagToMatch = nameOfTagToMatch; --- 171,176 ---- String [] endTagEnders, boolean allowSelfChildren, ! boolean balance_quotes) ! { super(filter); this.nameOfTagToMatch = nameOfTagToMatch; *************** *** 176,180 **** } ! public Tag scan (Tag tag, String url, Lexer lexer) throws ParserException { CompositeTagScannerHelper helper = new CompositeTagScannerHelper(this, tag, lexer, balance_quotes); --- 185,190 ---- } ! public Tag scan (Tag tag, String url, Lexer lexer) throws ParserException ! { CompositeTagScannerHelper helper = new CompositeTagScannerHelper(this, tag, lexer, balance_quotes); *************** *** 187,191 **** * but before the scanner begins its processing. */ ! public void beforeScanningStarts() { } --- 197,202 ---- * but before the scanner begins its processing. */ ! public void beforeScanningStarts() ! { } *************** *** 194,218 **** * need to store special children seperately. Though, all children are collected anyway into a node list. */ ! public void childNodeEncountered(Node node) { } /** * For composite tags this shouldn't be used and hence throws an exception. - * @param tagData - * @param tag - * @param url - * @return Tag - * @throws ParserException */ ! protected Tag createTag(TagData tagData, Tag tag, String url) throws ParserException { ! throw new IllegalStateException ("composite tags shouldn't be using this"); } /** ! * You must override this method to create the tag of your choice upon successful parsing. Data required ! * for construction of your tag can be found within tagData and compositeTagData */ ! public abstract Tag createTag(TagData tagData, CompositeTagData compositeTagData) throws ParserException; public final boolean isTagToBeEndedFor(Tag tag) --- 205,236 ---- * need to store special children seperately. Though, all children are collected anyway into a node list. */ ! public void childNodeEncountered(Node node) ! { } /** * For composite tags this shouldn't be used and hence throws an exception. */ ! protected Tag createTag (Page page, int start, int end, Vector attributes, Tag tag, String url) throws ParserException { ! throw new ParserException ("composite tags shouldn't be using this"); } /** ! * You must override this method to create the tag of your choice upon successful parsing. ! * This method is called after the scanner has completed the scan. ! * The first four arguments are standard tag constructor arguments. ! * The last three are for the composite tag construction. ! * @param page The page the tag is found on. ! * @param start The starting offset in the page of the tag. ! * @param end The ending offset in the page of the tag. ! * @param attributes The contents of the tag as a list of {@list Attribute} objects. ! * @param startTag The tag that begins the composite tag. ! * @param endTag The tag that ends the composite tag. Note this could be a ! * virtual tag created to satisfy the scanner (check is it's starting and ! * ending position are the same). ! * @param children The list of nodes contained within the ebgin end tag pair. */ ! public abstract Tag createTag(Page page, int start, int end, Vector attributes, Tag startTag, Tag endTag, NodeList children) throws ParserException; public final boolean isTagToBeEndedFor(Tag tag) Index: DivScanner.java =================================================================== RCS file: /cvsroot/htmlparser/htmlparser/src/org/htmlparser/scanners/DivScanner.java,v retrieving revision 1.30 retrieving revision 1.31 diff -C2 -d -r1.30 -r1.31 *** DivScanner.java 22 Sep 2003 02:40:00 -0000 1.30 --- DivScanner.java 20 Oct 2003 01:28:03 -0000 1.31 *************** *** 29,55 **** package org.htmlparser.scanners; import org.htmlparser.tags.Div; import org.htmlparser.tags.Tag; ! import org.htmlparser.tags.data.CompositeTagData; ! import org.htmlparser.tags.data.TagData; ! public class DivScanner extends CompositeTagScanner { private static String MATCH_STRING [] = {"DIV"}; ! public DivScanner() { this(""); } ! public DivScanner(String filter) { super(filter, MATCH_STRING); } ! public Tag createTag( ! TagData tagData, ! CompositeTagData compositeTagData) { ! return new Div(tagData,compositeTagData); } ! public String[] getID() { return MATCH_STRING; } --- 29,74 ---- package org.htmlparser.scanners; + import java.util.Vector; + import org.htmlparser.lexer.Page; import org.htmlparser.tags.Div; import org.htmlparser.tags.Tag; ! import org.htmlparser.util.NodeList; ! import org.htmlparser.util.ParserException; ! /** ! * A scanner for dic tags. ! */ ! public class DivScanner extends CompositeTagScanner ! { private static String MATCH_STRING [] = {"DIV"}; ! public DivScanner() ! { this(""); } ! public DivScanner(String filter) ! { super(filter, MATCH_STRING); } ! public Tag createTag(Page page, int start, int end, Vector attributes, Tag startTag, Tag endTag, NodeList children) throws ParserException ! { ! Div ret; ! ! ret = new Div (); ! ret.setPage (page); ! ret.setStartPosition (start); ! ret.setEndPosition (end); ! ret.setAttributesEx (attributes); ! ret.setStartTag (startTag); ! ret.setEndTag (endTag); ! ret.setChildren (children); ! ! return (ret); } ! public String[] getID() ! { return MATCH_STRING; } Index: DoctypeScanner.java =================================================================== RCS file: /cvsroot/htmlparser/htmlparser/src/org/htmlparser/scanners/DoctypeScanner.java,v retrieving revision 1.28 retrieving revision 1.29 diff -C2 -d -r1.28 -r1.29 *** DoctypeScanner.java 28 Sep 2003 15:33:58 -0000 1.28 --- DoctypeScanner.java 20 Oct 2003 01:28:03 -0000 1.29 *************** *** 28,53 **** package org.htmlparser.scanners; ! ///////////////////////// ! // HTML Parser Imports // ! ///////////////////////// import org.htmlparser.tags.DoctypeTag; import org.htmlparser.tags.Tag; - import org.htmlparser.tags.data.TagData; import org.htmlparser.util.ParserException; /** ! * The HTMLDoctypeScanner identifies Doctype tags */ ! ! public class DoctypeScanner extends TagScanner { ! public DoctypeScanner() { super(); } ! public DoctypeScanner(String filter) { super(filter); } ! public String [] getID() { String [] ids = new String[1]; ids[0] = "!DOCTYPE"; --- 28,56 ---- package org.htmlparser.scanners; ! ! import java.util.Vector; ! import org.htmlparser.lexer.Page; ! import org.htmlparser.tags.DoctypeTag; import org.htmlparser.tags.Tag; import org.htmlparser.util.ParserException; /** ! * The DoctypeScanner identifies doctype tags. */ ! public class DoctypeScanner extends TagScanner ! { ! public DoctypeScanner() ! { super(); } ! public DoctypeScanner(String filter) ! { super(filter); } ! public String [] getID() ! { String [] ids = new String[1]; ids[0] = "!DOCTYPE"; *************** *** 55,65 **** } ! protected Tag createTag(TagData tagData, Tag tag, String url) ! throws ParserException { ! String tagContents = tag.getText(); ! tagContents=tagContents.substring(9,tagContents.length()); ! tagData.setTagContents (tagContents, tag.getAttributesEx (), "" /*url*/, false /*xml_end_tag*/); ! return new DoctypeTag(tagData); ! } } --- 58,72 ---- } ! protected Tag createTag (Page page, int start, int end, Vector attributes, Tag tag, String url) throws ParserException ! { ! DoctypeTag ret; ! ! ret = new DoctypeTag (); ! ret.setPage (page); ! ret.setStartPosition (start); ! ret.setEndPosition (end); ! ret.setAttributesEx (attributes); + return (ret); + } } Index: FormScanner.java =================================================================== RCS file: /cvsroot/htmlparser/htmlparser/src/org/htmlparser/scanners/FormScanner.java,v retrieving revision 1.45 retrieving revision 1.46 diff -C2 -d -r1.45 -r1.46 *** FormScanner.java 22 Sep 2003 02:40:00 -0000 1.45 --- FormScanner.java 20 Oct 2003 01:28:03 -0000 1.46 *************** *** 29,50 **** package org.htmlparser.scanners; - ////////////////// - // Java Imports // - ////////////////// import java.util.Stack; import org.htmlparser.Parser; import org.htmlparser.tags.FormTag; import org.htmlparser.tags.Tag; - import org.htmlparser.tags.data.CompositeTagData; - import org.htmlparser.tags.data.TagData; import org.htmlparser.util.LinkProcessor; import org.htmlparser.util.ParserException; /** ! * Scans for the Image Tag. This is a subclass of TagScanner, and is called using a ! * variant of the template method. If the evaluate() method returns true, that means the ! * given string contains an image tag. Extraction is done by the scan method thereafter ! * by the user of this class. */ public class FormScanner extends CompositeTagScanner --- 29,45 ---- package org.htmlparser.scanners; import java.util.Stack; + import java.util.Vector; import org.htmlparser.Parser; + import org.htmlparser.lexer.Page; import org.htmlparser.tags.FormTag; import org.htmlparser.tags.Tag; import org.htmlparser.util.LinkProcessor; + import org.htmlparser.util.NodeList; import org.htmlparser.util.ParserException; /** ! * Scanner for form tags. */ public class FormScanner extends CompositeTagScanner *************** *** 53,67 **** public static final String PREVIOUS_DIRTY_LINK_MESSAGE="Encountered a form tag after an open link tag.\nThere should have been an end tag for the link before the form tag began.\nCorrecting this.."; private boolean linkScannerAlreadyOpen=false; ! private static final String [] formTagEnders = {"HTML","BODY" ! }; private Stack stack = new Stack(); /** ! * HTMLFormScanner constructor comment. */ ! public FormScanner(Parser parser) { this("", parser); } /** ! * Overriding the constructor to accept the filter */ public FormScanner(String filter, Parser parser) --- 48,67 ---- public static final String PREVIOUS_DIRTY_LINK_MESSAGE="Encountered a form tag after an open link tag.\nThere should have been an end tag for the link before the form tag began.\nCorrecting this.."; private boolean linkScannerAlreadyOpen=false; ! private static final String [] formTagEnders = {"HTML","BODY"}; ! private Stack stack = new Stack(); + /** ! * Constructs a form scanner. ! * Adds input, textarea, select and option scanners to the parser's ! * scanner list. */ ! public FormScanner(Parser parser) ! { this("", parser); } + /** ! * Overriding the constructor to accept the filter. */ public FormScanner(String filter, Parser parser) *************** *** 74,83 **** } ! /** ! * Extract the location of the image, given the string to be parsed, and the url ! * of the html page in which this tag exists. ! * @param tag The form tag with the 'ACTION' attribute. ! * @param url URL of web page being parsed. ! */ public String extractFormLocn(Tag tag,String url) throws ParserException { --- 74,83 ---- } ! /** ! * Extract the location of the image, given the tag, and the url ! * of the html page in which this tag exists. ! * @param tag The form tag with the 'ACTION' attribute. ! * @param url URL of web page being parsed. ! */ public String extractFormLocn(Tag tag,String url) throws ParserException { *************** *** 108,147 **** /** - * Scan the tag and extract the information related to the <IMG> tag. The url of the - * initiating scan has to be provided in case relative links are found. The initial - * url is then prepended to it to give an absolute link. - * The NodeReader is provided in order to do a lookahead operation. We assume that - * the identification has already been performed using the evaluate() method. - * @param tag HTML Tag to be scanned for identification - * @param url The initiating url of the scan (Where the html page lies) - * @param reader The reader object responsible for reading the html page - * @param currentLine The current line (automatically provided by Tag) - */ - // public Tag scan(Tag tag,String url,NodeReader reader,String currentLine) throws ParserException - // { - // if (linkScannerAlreadyOpen) { - // String newLine = insertEndTagBeforeNode(tag, currentLine); - // reader.changeLine(newLine); - // return new EndTag( - // new TagData( - // tag.elementBegin(), - // tag.elementBegin()+3, - // "A", - // currentLine - // ) - // ); - // } - // return super.scan(tag,url,reader,currentLine); - // } - - - /** * @see org.htmlparser.scanners.TagScanner#getID() */ ! public String [] getID() { return MATCH_ID; } ! public boolean evaluate(String s, TagScanner previousOpenScanner) { if (previousOpenScanner instanceof LinkScanner) { linkScannerAlreadyOpen = true; --- 108,120 ---- /** * @see org.htmlparser.scanners.TagScanner#getID() */ ! public String [] getID() ! { return MATCH_ID; } ! public boolean evaluate(String s, TagScanner previousOpenScanner) ! { if (previousOpenScanner instanceof LinkScanner) { linkScannerAlreadyOpen = true; *************** *** 163,179 **** } ! public Tag createTag(TagData tagData, CompositeTagData compositeTagData) ! throws ParserException { ! String formUrl = extractFormLocn(compositeTagData.getStartTag(),tagData.getUrlBeingParsed()); ! if (formUrl!=null && formUrl.length()>0) ! compositeTagData.getStartTag().setAttribute("ACTION",formUrl); if (!stack.empty () && (this == stack.peek ())) stack.pop (); ! return new FormTag(tagData, compositeTagData); } ! public void beforeScanningStarts() { stack.push(this); } - } --- 136,170 ---- } ! public Tag createTag(Page page, int start, int end, Vector attributes, Tag startTag, Tag endTag, NodeList children) throws ParserException ! { ! FormTag ret; ! ! // special step here... ! // not sure why the recursion is tracked this way, ! // rather than using the ENDERS and END_TAG_ENDERS arrays... if (!stack.empty () && (this == stack.peek ())) stack.pop (); ! ! ret = new FormTag (); ! ret.setPage (page); ! ret.setStartPosition (start); ! ret.setEndPosition (end); ! ret.setAttributesEx (attributes); ! ret.setStartTag (startTag); ! ret.setEndTag (endTag); ! ret.setChildren (children); ! ! // special step here... ! // ... is it true that without an ACTION the default is to send it back to the same page? ! String formUrl = extractFormLocn(startTag, page.getUrl ()); ! if (formUrl!=null && formUrl.length()>0) ! startTag.setAttribute("ACTION",formUrl); ! ! return (ret); } ! public void beforeScanningStarts() ! { stack.push(this); } } Index: FrameScanner.java =================================================================== RCS file: /cvsroot/htmlparser/htmlparser/src/org/htmlparser/scanners/FrameScanner.java,v retrieving revision 1.29 retrieving revision 1.30 diff -C2 -d -r1.29 -r1.30 *** FrameScanner.java 22 Sep 2003 02:40:00 -0000 1.29 --- FrameScanner.java 20 Oct 2003 01:28:03 -0000 1.30 *************** *** 30,49 **** package org.htmlparser.scanners; - - ////////////////// - // Java Imports // - ////////////////// import java.util.Hashtable; import org.htmlparser.tags.FrameTag; import org.htmlparser.tags.Tag; - import org.htmlparser.tags.data.TagData; import org.htmlparser.util.LinkProcessor; import org.htmlparser.util.ParserException; /** ! * Scans for the Frame Tag. This is a subclass of TagScanner, and is called using a ! * variant of the template method. If the evaluate() method returns true, that means the ! * given string contains an image tag. Extraction is done by the scan method thereafter ! * by the user of this class. */ public class FrameScanner extends TagScanner --- 30,44 ---- package org.htmlparser.scanners; import java.util.Hashtable; + import java.util.Vector; + import org.htmlparser.lexer.Page; import org.htmlparser.tags.FrameTag; import org.htmlparser.tags.Tag; import org.htmlparser.util.LinkProcessor; import org.htmlparser.util.ParserException; + /** ! * Scanner for frame tags. */ public class FrameScanner extends TagScanner *************** *** 56,59 **** --- 51,55 ---- super(); } + /** * Overriding the constructor to accept the filter *************** *** 63,97 **** super(filter); } - /** - * Extract the location of the image, given the string to be parsed, and the url - * of the html page in which this tag exists. - * @param tag The tag with the 'SRC' attribute. - * @param url URL of web page being parsed. - */ - public String extractFrameLocn(Tag tag,String url) throws ParserException - { - try { - Hashtable table = tag.getAttributes(); - String relativeFrame = (String)table.get("SRC"); - if (relativeFrame==null) return ""; else - return (new LinkProcessor()).extract(relativeFrame,url); - } - catch (Exception e) { - String msg; - if (tag!=null) msg = tag.getText(); else msg = "null"; - throw new ParserException("HTMLFrameScanner.extractFrameLocn() : Error in extracting frame location from tag "+msg,e); - } - } - - - - public String extractFrameName(Tag tag,String url) { - return tag.getAttribute("NAME"); - } /** * @see org.htmlparser.scanners.TagScanner#getID() */ ! public String [] getID() { String [] ids = new String[1]; ids[0] = "FRAME"; --- 59,68 ---- super(filter); } /** * @see org.htmlparser.scanners.TagScanner#getID() */ ! public String [] getID() ! { String [] ids = new String[1]; ids[0] = "FRAME"; *************** *** 99,108 **** } ! protected Tag createTag(TagData tagData, Tag tag, String url) throws ParserException { ! String frameUrl = extractFrameLocn(tag,url); ! String frameName = extractFrameName(tag,url); ! ! return new FrameTag(tagData,frameUrl,frameName); } - } --- 70,84 ---- } ! protected Tag createTag (Page page, int start, int end, Vector attributes, Tag tag, String url) throws ParserException ! { ! FrameTag ret; ! ! ret = new FrameTag (); ! ret.setPage (page); ! ret.setStartPosition (start); ! ret.setEndPosition (end); ! ret.setAttributesEx (attributes); ! ! return (ret); } } Index: FrameSetScanner.java =================================================================== RCS file: /cvsroot/htmlparser/htmlparser/src/org/htmlparser/scanners/FrameSetScanner.java,v retrieving revision 1.28 retrieving revision 1.29 diff -C2 -d -r1.28 -r1.29 *** FrameSetScanner.java 22 Sep 2003 02:40:00 -0000 1.28 --- FrameSetScanner.java 20 Oct 2003 01:28:03 -0000 1.29 *************** *** 27,47 **** // Website : http://www.industriallogic.com - package org.htmlparser.scanners; - ////////////////// - // Java Imports // - ////////////////// import org.htmlparser.tags.FrameSetTag; import org.htmlparser.tags.Tag; ! import org.htmlparser.tags.data.CompositeTagData; ! import org.htmlparser.tags.data.TagData; /** ! * Scans for the Frame Tag. This is a subclass of TagScanner, and is called using a ! * variant of the template method. If the evaluate() method returns true, that means the ! * given string contains an image tag. Extraction is done by the scan method thereafter ! * by the user of this class. */ public class FrameSetScanner extends CompositeTagScanner --- 27,42 ---- // Website : http://www.industriallogic.com package org.htmlparser.scanners; + import java.util.Vector; + import org.htmlparser.lexer.Page; import org.htmlparser.tags.FrameSetTag; import org.htmlparser.tags.Tag; ! import org.htmlparser.util.NodeList; ! import org.htmlparser.util.ParserException; /** ! * Scanner for frame set tags. */ public class FrameSetScanner extends CompositeTagScanner *************** *** 59,71 **** } ! public String [] getID() { return MATCH_NAME; } ! public Tag createTag( ! TagData tagData, ! CompositeTagData compositeTagData) { ! return new FrameSetTag(tagData,compositeTagData); ! } } --- 54,76 ---- } ! public String [] getID() ! { return MATCH_NAME; } ! public Tag createTag(Page page, int start, int end, Vector attributes, Tag startTag, Tag endTag, NodeList children) throws ParserException ! { ! FrameSetTag ret; ! ! ret = new FrameSetTag (); ! ret.setPage (page); ! ret.setStartPosition (start); ! ret.setEndPosition (end); ! ret.setAttributesEx (attributes); ! ret.setStartTag (startTag); ! ret.setEndTag (endTag); ! ret.setChildren (children); + return (ret); + } } Index: HeadScanner.java =================================================================== RCS file: /cvsroot/htmlparser/htmlparser/src/org/htmlparser/scanners/HeadScanner.java,v retrieving revision 1.15 retrieving revision 1.16 diff -C2 -d -r1.15 -r1.16 *** HeadScanner.java 22 Sep 2003 02:40:00 -0000 1.15 --- HeadScanner.java 20 Oct 2003 01:28:03 -0000 1.16 *************** *** 32,61 **** package org.htmlparser.scanners; import org.htmlparser.tags.HeadTag; import org.htmlparser.tags.Tag; ! import org.htmlparser.tags.data.CompositeTagData; ! import org.htmlparser.tags.data.TagData; ! public class HeadScanner extends CompositeTagScanner { private static final String MATCH_NAME [] = {"HEAD"}; private static final String ENDERS [] = {"BODY"}; private static final String END_TAG_ENDERS [] = {"HTML"}; ! public HeadScanner() { this(""); } ! public HeadScanner(String filter) { super(filter,MATCH_NAME,ENDERS,END_TAG_ENDERS,false); } ! public String [] getID() { return MATCH_NAME; } ! public Tag createTag( ! TagData tagData, ! CompositeTagData compositeTagData) { ! return new HeadTag(tagData,compositeTagData); } } --- 32,80 ---- package org.htmlparser.scanners; + import java.util.Vector; + import org.htmlparser.lexer.Page; import org.htmlparser.tags.HeadTag; import org.htmlparser.tags.Tag; ! import org.htmlparser.util.NodeList; ! import org.htmlparser.util.ParserException; ! /** ! * Scanner for head tags. ! */ ! public class HeadScanner extends CompositeTagScanner ! { private static final String MATCH_NAME [] = {"HEAD"}; private static final String ENDERS [] = {"BODY"}; private static final String END_TAG_ENDERS [] = {"HTML"}; ! public HeadScanner() ! { this(""); } ! public HeadScanner(String filter) ! { super(filter,MATCH_NAME,ENDERS,END_TAG_ENDERS,false); } ! public String [] getID() ! { return MATCH_NAME; } ! public Tag createTag(Page page, int start, int end, Vector attributes, Tag startTag, Tag endTag, NodeList children) throws ParserException ! { ! HeadTag ret; ! ! ret = new HeadTag (); ! ret.setPage (page); ! ret.setStartPosition (start); ! ret.setEndPosition (end); ! ret.setAttributesEx (attributes); ! ret.setStartTag (startTag); ! ret.setEndTag (endTag); ! ret.setChildren (children); ! ! return (ret); } } Index: HtmlScanner.java =================================================================== RCS file: /cvsroot/htmlparser/htmlparser/src/org/htmlparser/scanners/HtmlScanner.java,v retrieving revision 1.30 retrieving revision 1.31 diff -C2 -d -r1.30 -r1.31 *** HtmlScanner.java 22 Sep 2003 02:40:00 -0000 1.30 --- HtmlScanner.java 20 Oct 2003 01:28:03 -0000 1.31 *************** *** 29,37 **** package org.htmlparser.scanners; import org.htmlparser.tags.Html; import org.htmlparser.tags.Tag; ! import org.htmlparser.tags.data.CompositeTagData; ! import org.htmlparser.tags.data.TagData; public class HtmlScanner extends CompositeTagScanner { private static String MATCH_STRING [] = {"HTML"}; --- 29,42 ---- package org.htmlparser.scanners; + import java.util.Vector; + import org.htmlparser.lexer.Page; import org.htmlparser.tags.Html; import org.htmlparser.tags.Tag; ! import org.htmlparser.util.NodeList; ! import org.htmlparser.util.ParserException; + /** + * Scanner for html tags. + */ public class HtmlScanner extends CompositeTagScanner { private static String MATCH_STRING [] = {"HTML"}; *************** *** 49,57 **** } ! public Tag createTag( ! TagData tagData, ! CompositeTagData compositeTagData) { ! return new Html(tagData,compositeTagData); ! } } --- 54,71 ---- } ! public Tag createTag(Page page, int start, int end, Vector attributes, Tag startTag, Tag endTag, NodeList children) throws ParserException ! { ! Html ret; ! ! ret = new Html (); ! ret.setPage (page); ! ret.setStartPosition (start); ! ret.setEndPosition (end); ! ret.setAttributesEx (attributes); ! ret.setStartTag (startTag); ! ret.setEndTag (endTag); ! ret.setChildren (children); + return (ret); + } } Index: ImageScanner.java =================================================================== RCS file: /cvsroot/htmlparser/htmlparser/src/org/htmlparser/scanners/ImageScanner.java,v retrieving revision 1.30 retrieving revision 1.31 diff -C2 -d -r1.30 -r1.31 *** ImageScanner.java 5 Oct 2003 13:49:52 -0000 1.30 --- ImageScanner.java 20 Oct 2003 01:28:03 -0000 1.31 *************** *** 34,42 **** import java.util.Hashtable; import java.util.Vector; import org.htmlparser.lexer.nodes.Attribute; import org.htmlparser.tags.ImageTag; import org.htmlparser.tags.Tag; - import org.htmlparser.tags.data.TagData; import org.htmlparser.util.LinkProcessor; import org.htmlparser.util.ParserException; --- 34,42 ---- import java.util.Hashtable; import java.util.Vector; + import org.htmlparser.lexer.Page; import org.htmlparser.lexer.nodes.Attribute; import org.htmlparser.tags.ImageTag; import org.htmlparser.tags.Tag; import org.htmlparser.util.LinkProcessor; import org.htmlparser.util.ParserException; *************** *** 69,176 **** } - /** - * Extract the location of the image - * Given the tag (with attributes), and the url of the html page in which - * this tag exists, perform best effort to extract the 'intended' URL. - * Attempts to handle such attributes as: - * <pre> - * <IMG SRC=http://www.redgreen.com> - normal - * <IMG SRC =http://www.redgreen.com> - space between attribute name and equals sign - * <IMG SRC= http://www.redgreen.com> - space between equals sign and attribute value - * <IMG SRC = http://www.redgreen.com> - space both sides of equals sign - * </pre> - * @param tag The tag with the 'SRC' attribute. - * @param url URL of web page being parsed. - */ - public String extractImageLocn (Tag tag, String url) throws ParserException - { - Vector attributes; - int size; - Attribute attribute; - String string; - String data; - int state; - String name; - String ret; - - ret = ""; - state = 0; - attributes = tag.getAttributesEx (); - size = attributes.size (); - for (int i = 0; (i < size) && (state < 3); i++) - { - attribute = (Attribute)attributes.elementAt (i); - string = attribute.getName (); - data = attribute.getValue (); - switch (state) - { - case 0: // looking for 'src' - if (null != string) - { - name = string.toUpperCase (); - if (name.equals ("SRC")) - { - state = 1; - if (null != data) - { - if ("".equals (data)) - state = 2; // empty attribute, SRC= - else - { - ret = data; - i = size; // exit fast - } - } - - } - else if (name.startsWith ("SRC")) - { - // missing equals sign - ret = string.substring (3); - state = 0; // go back to searching for SRC - // because, maybe we found SRCXXX - // where XXX isn't a URL - } - } - break; - case 1: // looking for equals sign - if (null != string) - { - if (string.startsWith ("=")) - { - state = 2; - if (1 < string.length ()) - { - ret = string.substring (1); - state = 0; // keep looking ? - } - else if (null != data) - { - ret = string.substring (1); - state = 0; // keep looking ? - } - } - } - break; - case 2: // looking for a valueless attribute that could be a relative or absolute URL - if (null != string) - { - if (null == data) - ret = string; - state = 0; // only check first non-whitespace item - // not every valid attribute after an equals - } - break; - default: - throw new IllegalStateException ("we're not supposed to in state " + state); - } - } - ret = ParserUtils.removeChars (ret, '\n'); - ret = ParserUtils.removeChars (ret, '\r'); - ret = processor.extract (ret, url); - - return (ret); - } - public String [] getID() { String [] ids = new String[1]; --- 69,72 ---- *************** *** 179,187 **** } ! protected Tag createTag(TagData tagData, Tag tag, String url) ! throws ParserException { ! String link = extractImageLocn(tag,url); ! return new ImageTag(tagData, link); ! } ! } --- 75,102 ---- } ! protected Tag createTag (Page page, int start, int end, Vector attributes, Tag tag, String url) throws ParserException ! { ! ImageTag ret; ! ret = new ImageTag (); ! ret.setPage (page); ! ret.setStartPosition (start); ! ret.setEndPosition (end); ! ret.setAttributesEx (attributes); ! ! // special step here... ! // Need to update the imageURL string in the image tag, ! // but not the SRC attribute which it does when you set the ImageURL ! // property. Can't do it in the tag, because the tag doesn't have the ! // current link processor object which might have a BASE href different ! // than the page. ! String src = ret.getAttribute ("SRC"); ! ret.setImageURL (processor.extract (ret.getImageURL (), page.getUrl ())); ! if (null == src) ! ret.removeAttribute ("SRC"); ! else ! ret.setAttribute ("SRC", src); ! ! return (ret); ! } ! } \ No newline at end of file Index: InputTagScanner.java =================================================================== RCS file: /cvsroot/htmlparser/htmlparser/src/org/htmlparser/scanners/InputTagScanner.java,v retrieving revision 1.26 retrieving revision 1.27 diff -C2 -d -r1.26 -r1.27 *** InputTagScanner.java 22 Sep 2003 02:40:00 -0000 1.26 --- InputTagScanner.java 20 Oct 2003 01:28:03 -0000 1.27 *************** *** 29,35 **** package org.htmlparser.scanners; import org.htmlparser.tags.InputTag; import org.htmlparser.tags.Tag; - import org.htmlparser.tags.data.TagData; import org.htmlparser.util.ParserException; --- 29,36 ---- package org.htmlparser.scanners; + import java.util.Vector; + import org.htmlparser.lexer.Page; import org.htmlparser.tags.InputTag; import org.htmlparser.tags.Tag; import org.htmlparser.util.ParserException; *************** *** 52,59 **** } ! protected Tag createTag(TagData tagData, Tag tag, String url) ! throws ParserException { ! return new InputTag(tagData); ! } } --- 53,67 ---- } ! protected Tag createTag (Page page, int start, int end, Vector attributes, Tag tag, String url) throws ParserException ! { ! InputTag ret; + ret = new InputTag (); + ret.setPage (page); + ret.setStartPosition (start); + ret.setEndPosition (end); + ret.setAttributesEx (attributes); + + return (ret); + } } Index: JspScanner.java =================================================================== RCS file: /cvsroot/htmlparser/htmlparser/src/org/htmlparser/scanners/JspScanner.java,v retrieving revision 1.28 retrieving revision 1.29 diff -C2 -d -r1.28 -r1.29 *** JspScanner.java 28 Sep 2003 15:33:58 -0000 1.28 --- JspScanner.java 20 Oct 2003 01:28:03 -0000 1.29 *************** *** 30,33 **** --- 30,35 ---- package org.htmlparser.scanners; + import java.util.Vector; + import org.htmlparser.lexer.Page; ///////////////////////// // HTML Parser Imports // *************** *** 35,39 **** import org.htmlparser.tags.JspTag; import org.htmlparser.tags.Tag; - import org.htmlparser.tags.data.TagData; import org.htmlparser.util.ParserException; --- 37,40 ---- *************** *** 56,66 **** } ! protected Tag createTag(TagData tagData, Tag tag, String url) ! throws ParserException { ! tagData.setTagBegin (tagData.getTagBegin () + 1); ! tagData.setTagEnd (tagData.getTagEnd () - 1); ! return new JspTag(tagData); } - } --- 57,71 ---- } ! protected Tag createTag (Page page, int start, int end, Vector attributes, Tag tag, String url) throws ParserException { ! JspTag ret; ! ! ret = new JspTag (); ! ret.setPage (page); ! ret.setStartPosition (start); ! ret.setEndPosition (end); ! ret.setAttributesEx (attributes); ! ! return (ret); } } Index: LabelScanner.java =================================================================== RCS file: /cvsroot/htmlparser/htmlparser/src/org/htmlparser/scanners/LabelScanner.java,v retrieving revision 1.33 retrieving revision 1.34 diff -C2 -d -r1.33 -r1.34 *** LabelScanner.java 22 Sep 2003 02:40:00 -0000 1.33 --- LabelScanner.java 20 Oct 2003 01:28:03 -0000 1.34 *************** *** 32,39 **** package org.htmlparser.scanners; import org.htmlparser.tags.LabelTag; import org.htmlparser.tags.Tag; ! import org.htmlparser.tags.data.CompositeTagData; ! import org.htmlparser.tags.data.TagData; public class LabelScanner extends CompositeTagScanner { --- 32,41 ---- package org.htmlparser.scanners; + import java.util.Vector; + import org.htmlparser.lexer.Page; import org.htmlparser.tags.LabelTag; import org.htmlparser.tags.Tag; ! import org.htmlparser.util.NodeList; ! import org.htmlparser.util.ParserException; public class LabelScanner extends CompositeTagScanner { *************** *** 52,59 **** } ! public Tag createTag( ! TagData tagData, ! CompositeTagData compositeTagData) { ! return new LabelTag(tagData,compositeTagData); } } --- 54,71 ---- } ! public Tag createTag(Page page, int start, int end, Vector attributes, Tag startTag, Tag endTag, NodeList children) throws ParserException ! { ! LabelTag ret; ! ! ret = new LabelTag (); ! ret.setPage (page); ! ret.setStartPosition (start); ! ret.setEndPosition (end); ! ret.setAttributesEx (attributes); ! ret.setStartTag (startTag); ! ret.setEndTag (endTag); ! ret.setChildren (children); ! ! return (ret); } } Index: LinkScanner.java =================================================================== RCS file: /cvsroot/htmlparser/htmlparser/src/org/htmlparser/scanners/LinkScanner.java,v retrieving revision 1.54 retrieving revision 1.55 diff -C2 -d -r1.54 -r1.55 *** LinkScanner.java 5 Oct 2003 13:49:53 -0000 1.54 --- LinkScanner.java 20 Oct 2003 01:28:03 -0000 1.55 *************** *** 34,44 **** ////////////////// import java.util.Hashtable; import org.htmlparser.tags.LinkTag; import org.htmlparser.tags.Tag; - import org.htmlparser.tags.data.CompositeTagData; - import org.htmlparser.tags.data.LinkData; - import org.htmlparser.tags.data.TagData; import org.htmlparser.util.LinkProcessor; import org.htmlparser.util.ParserException; import org.htmlparser.util.ParserUtils; --- 34,44 ---- ////////////////// import java.util.Hashtable; + import java.util.Vector; + import org.htmlparser.lexer.Page; import org.htmlparser.tags.LinkTag; import org.htmlparser.tags.Tag; import org.htmlparser.util.LinkProcessor; + import org.htmlparser.util.NodeList; import org.htmlparser.util.ParserException; import org.htmlparser.util.ParserUtils; *************** *** 53,57 **** private static final String MATCH_NAME [] = {"A"}; public static final String LINK_SCANNER_ID = "A"; ! private LinkProcessor processor; private final static String ENDERS [] = { "TD","TR","FORM","LI","BODY", "HTML" }; private final static String ENDTAG_ENDERS [] = { "TD","TR","FORM","LI","BODY", "HTML" }; --- 53,57 ---- private static final String MATCH_NAME [] = {"A"}; public static final String LINK_SCANNER_ID = "A"; ! public LinkProcessor processor; private final static String ENDERS [] = { "TD","TR","FORM","LI","BODY", "HTML" }; private final static String ENDTAG_ENDERS [] = { "TD","TR","FORM","LI","BODY", "HTML" }; *************** *** 72,111 **** } ! public Tag creat... [truncated message content] |
From: <der...@us...> - 2003-10-20 01:37:47
|
Update of /cvsroot/htmlparser/htmlparser/src/org/htmlparser/util In directory sc8-pr-cvs1:/tmp/cvs-serv26197/util Modified Files: LinkProcessor.java NodeList.java Log Message: Removed lexer level AbstractNode. Removed data package from parser level tags. Separated tag creation from recursion in NodeFactory interface. Index: LinkProcessor.java =================================================================== RCS file: /cvsroot/htmlparser/htmlparser/src/org/htmlparser/util/LinkProcessor.java,v retrieving revision 1.28 retrieving revision 1.29 diff -C2 -d -r1.28 -r1.29 *** LinkProcessor.java 28 Sep 2003 19:30:04 -0000 1.28 --- LinkProcessor.java 20 Oct 2003 01:28:04 -0000 1.29 *************** *** 61,66 **** */ public String extract (String link, String base) - throws - ParserException { String ret; --- 61,64 ---- Index: NodeList.java =================================================================== RCS file: /cvsroot/htmlparser/htmlparser/src/org/htmlparser/util/NodeList.java,v retrieving revision 1.46 retrieving revision 1.47 diff -C2 -d -r1.46 -r1.47 *** NodeList.java 18 Oct 2003 20:50:38 -0000 1.46 --- NodeList.java 20 Oct 2003 01:28:04 -0000 1.47 *************** *** 140,143 **** --- 140,147 ---- } + public void copyToNodeArray(Node[] array) { + System.arraycopy(nodeData, 0, array, 0, size); + } + public String asString() { StringBuffer buff = new StringBuffer(); |
From: <der...@us...> - 2003-10-20 01:37:01
|
Update of /cvsroot/htmlparser/htmlparser/src/org/htmlparser/tests/lexerTests In directory sc8-pr-cvs1:/tmp/cvs-serv26197/tests/lexerTests Modified Files: AttributeTests.java KitTest.java Log Message: Removed lexer level AbstractNode. Removed data package from parser level tags. Separated tag creation from recursion in NodeFactory interface. Index: AttributeTests.java =================================================================== RCS file: /cvsroot/htmlparser/htmlparser/src/org/htmlparser/tests/lexerTests/AttributeTests.java,v retrieving revision 1.2 retrieving revision 1.3 diff -C2 -d -r1.2 -r1.3 *** AttributeTests.java 18 Oct 2003 20:50:37 -0000 1.2 --- AttributeTests.java 20 Oct 2003 01:28:03 -0000 1.3 *************** *** 38,42 **** import org.htmlparser.lexer.nodes.PageAttribute; import org.htmlparser.tags.Tag; - import org.htmlparser.tags.data.TagData; import org.htmlparser.tests.ParserTestCase; import org.htmlparser.util.NodeIterator; --- 38,41 ---- Index: KitTest.java =================================================================== RCS file: /cvsroot/htmlparser/htmlparser/src/org/htmlparser/tests/lexerTests/KitTest.java,v retrieving revision 1.4 retrieving revision 1.5 diff -C2 -d -r1.4 -r1.5 *** KitTest.java 10 Sep 2003 03:38:24 -0000 1.4 --- KitTest.java 20 Oct 2003 01:28:03 -0000 1.5 *************** *** 44,48 **** import org.htmlparser.lexer.Lexer; import org.htmlparser.lexer.Page; ! import org.htmlparser.lexer.nodes.AbstractNode; import org.htmlparser.lexer.nodes.Attribute; import org.htmlparser.lexer.nodes.TagNode; --- 44,48 ---- import org.htmlparser.lexer.Lexer; import org.htmlparser.lexer.Page; ! import org.htmlparser.AbstractNode; import org.htmlparser.lexer.nodes.Attribute; import org.htmlparser.lexer.nodes.TagNode; *************** *** 608,611 **** --- 608,616 ---- * * $Log$ + * Revision 1.5 2003/10/20 01:28:03 derrickoswald + * Removed lexer level AbstractNode. + * Removed data package from parser level tags. + * Separated tag creation from recursion in NodeFactory interface. + * * Revision 1.4 2003/09/10 03:38:24 derrickoswald * Add style checking target to ant build script: |
From: <der...@us...> - 2003-10-20 01:36:52
|
Update of /cvsroot/htmlparser/htmlparser/src/org/htmlparser/tests/visitorsTests In directory sc8-pr-cvs1:/tmp/cvs-serv26197/tests/visitorsTests Modified Files: UrlModifyingVisitorTest.java Log Message: Removed lexer level AbstractNode. Removed data package from parser level tags. Separated tag creation from recursion in NodeFactory interface. Index: UrlModifyingVisitorTest.java =================================================================== RCS file: /cvsroot/htmlparser/htmlparser/src/org/htmlparser/tests/visitorsTests/UrlModifyingVisitorTest.java,v retrieving revision 1.10 retrieving revision 1.11 diff -C2 -d -r1.10 -r1.11 *** UrlModifyingVisitorTest.java 28 Sep 2003 19:30:04 -0000 1.10 --- UrlModifyingVisitorTest.java 20 Oct 2003 01:28:04 -0000 1.11 *************** *** 43,48 **** private static final String MODIFIED_HTML = "<HTML><BODY>" + ! "<A HREF=localhost://mylink.html>" + ! "<IMG SRC=localhost://mypic.jpg></A>" + "<IMG SRC=\"localhost://my second image.gif\">" + "</BODY></HTML>"; --- 43,48 ---- private static final String MODIFIED_HTML = "<HTML><BODY>" + ! "<A HREF=\"localhost://mylink.html\">" + ! "<IMG SRC=\"localhost://mypic.jpg\"></A>" + "<IMG SRC=\"localhost://my second image.gif\">" + "</BODY></HTML>"; |
From: <der...@us...> - 2003-10-20 01:36:52
|
Update of /cvsroot/htmlparser/htmlparser/src/org/htmlparser/tests/utilTests In directory sc8-pr-cvs1:/tmp/cvs-serv26197/tests/utilTests Modified Files: NodeListTest.java Log Message: Removed lexer level AbstractNode. Removed data package from parser level tags. Separated tag creation from recursion in NodeFactory interface. Index: NodeListTest.java =================================================================== RCS file: /cvsroot/htmlparser/htmlparser/src/org/htmlparser/tests/utilTests/NodeListTest.java,v retrieving revision 1.18 retrieving revision 1.19 diff -C2 -d -r1.18 -r1.19 *** NodeListTest.java 22 Sep 2003 02:40:14 -0000 1.18 --- NodeListTest.java 20 Oct 2003 01:28:04 -0000 1.19 *************** *** 116,120 **** private Node createHTMLNodeObject() { ! Node node = new AbstractNode(10,20) { public void accept(Object visitor) { } --- 116,120 ---- private Node createHTMLNodeObject() { ! Node node = new AbstractNode(null,10,20) { public void accept(Object visitor) { } |
From: <der...@us...> - 2003-10-20 01:36:52
|
Update of /cvsroot/htmlparser/htmlparser/src/org/htmlparser/tags/data In directory sc8-pr-cvs1:/tmp/cvs-serv26197/tags/data Removed Files: CompositeTagData.java FormData.java LinkData.java TagData.java Log Message: Removed lexer level AbstractNode. Removed data package from parser level tags. Separated tag creation from recursion in NodeFactory interface. --- CompositeTagData.java DELETED --- --- FormData.java DELETED --- --- LinkData.java DELETED --- --- TagData.java DELETED --- |
From: <der...@us...> - 2003-10-20 01:36:51
|
Update of /cvsroot/htmlparser/htmlparser/src/org/htmlparser/tests In directory sc8-pr-cvs1:/tmp/cvs-serv26197/tests Modified Files: FunctionalTests.java LineNumberAssignedByNodeReaderTest.java ParserTestCase.java Log Message: Removed lexer level AbstractNode. Removed data package from parser level tags. Separated tag creation from recursion in NodeFactory interface. Index: FunctionalTests.java =================================================================== RCS file: /cvsroot/htmlparser/htmlparser/src/org/htmlparser/tests/FunctionalTests.java,v retrieving revision 1.44 retrieving revision 1.45 diff -C2 -d -r1.44 -r1.45 *** FunctionalTests.java 22 Sep 2003 02:40:03 -0000 1.44 --- FunctionalTests.java 20 Oct 2003 01:28:03 -0000 1.45 *************** *** 76,80 **** int imgTagCount = 0; try { ! URL url = new URL("http://www.yahoo.com"); InputStream is = url.openStream(); BufferedReader reader; --- 76,80 ---- int imgTagCount = 0; try { ! URL url = new URL("http://education.yahoo.com/"); InputStream is = url.openStream(); BufferedReader reader; *************** *** 93,97 **** public int countImageTagsWithHTMLParser() throws ParserException { ! Parser parser = new Parser("http://www.yahoo.com",new DefaultParserFeedback()); parser.addScanner(new ImageScanner("-i",new LinkProcessor())); int parserImgTagCount = 0; --- 93,97 ---- public int countImageTagsWithHTMLParser() throws ParserException { ! Parser parser = new Parser("http://education.yahoo.com/",new DefaultParserFeedback()); parser.addScanner(new ImageScanner("-i",new LinkProcessor())); int parserImgTagCount = 0; Index: LineNumberAssignedByNodeReaderTest.java =================================================================== RCS file: /cvsroot/htmlparser/htmlparser/src/org/htmlparser/tests/LineNumberAssignedByNodeReaderTest.java,v retrieving revision 1.23 retrieving revision 1.24 diff -C2 -d -r1.23 -r1.24 *** LineNumberAssignedByNodeReaderTest.java 3 Oct 2003 00:20:44 -0000 1.23 --- LineNumberAssignedByNodeReaderTest.java 20 Oct 2003 01:28:03 -0000 1.24 *************** *** 111,117 **** assertType("custom node",CustomTag.class,node[useNode]); CustomTag tag = (CustomTag)node[useNode]; ! assertEquals("start line", expectedStartLine, tag.tagData.getStartLine()); ! assertEquals("end line", expectedEndLine, tag.tagData.getEndLine()); ! } --- 111,116 ---- assertType("custom node",CustomTag.class,node[useNode]); CustomTag tag = (CustomTag)node[useNode]; ! assertEquals("start line", expectedStartLine, tag.getStartingLineNumber ()); ! assertEquals("end line", expectedEndLine, tag.getEndingLineNumber ()); } Index: ParserTestCase.java =================================================================== RCS file: /cvsroot/htmlparser/htmlparser/src/org/htmlparser/tests/ParserTestCase.java,v retrieving revision 1.32 retrieving revision 1.33 diff -C2 -d -r1.32 -r1.33 *** ParserTestCase.java 5 Oct 2003 13:49:53 -0000 1.32 --- ParserTestCase.java 20 Oct 2003 01:28:03 -0000 1.33 *************** *** 45,49 **** import org.htmlparser.tags.InputTag; import org.htmlparser.tags.Tag; - import org.htmlparser.tags.data.TagData; import org.htmlparser.util.DefaultParserFeedback; import org.htmlparser.util.IteratorImpl; --- 45,48 ---- *************** *** 294,300 **** } private void fixIfXmlEndTag (NodeIterator iterator, Node node) { - TagData data; if (node instanceof Tag) { --- 293,300 ---- } + // TODO: + // Man, this is really screwed up. private void fixIfXmlEndTag (NodeIterator iterator, Node node) { if (node instanceof Tag) { *************** *** 303,309 **** { tag.setEmptyXmlTag (false); ! data = new TagData ! ("/" + tag.getTagName (), tag.elementEnd (), new Vector (), "", false); ! node = new Tag (data); // cheat here and poink the new node into the iterator ((IteratorImpl)iterator).push (node); --- 303,310 ---- { tag.setEmptyXmlTag (false); ! // data = new TagData ! // ("/" + tag.getTagName (), tag.elementEnd (), new Vector (), "", false); ! node = new Tag (tag.getPage (), tag.getStartPosition (), tag.getEndPosition (), tag.getAttributesEx ()); ! //data.getTagBegin (), data.getTagEnd (), data.getAttributes ()); // cheat here and poink the new node into the iterator ((IteratorImpl)iterator).push (node); |
From: <der...@us...> - 2003-10-20 01:36:51
|
Update of /cvsroot/htmlparser/htmlparser/src/org/htmlparser/tests/tagTests In directory sc8-pr-cvs1:/tmp/cvs-serv26197/tests/tagTests Modified Files: BaseHrefTagTest.java LinkTagTest.java ScriptTagTest.java Log Message: Removed lexer level AbstractNode. Removed data package from parser level tags. Separated tag creation from recursion in NodeFactory interface. Index: BaseHrefTagTest.java =================================================================== RCS file: /cvsroot/htmlparser/htmlparser/src/org/htmlparser/tests/tagTests/BaseHrefTagTest.java,v retrieving revision 1.29 retrieving revision 1.30 diff -C2 -d -r1.29 -r1.30 *** BaseHrefTagTest.java 6 Oct 2003 01:43:28 -0000 1.29 --- BaseHrefTagTest.java 20 Oct 2003 01:28:04 -0000 1.30 *************** *** 31,35 **** import java.util.Vector; import org.htmlparser.tags.BaseHrefTag; - import org.htmlparser.tags.data.TagData; import org.htmlparser.tests.ParserTestCase; import org.htmlparser.util.ParserException; --- 31,34 ---- *************** *** 42,46 **** public void testConstruction() { ! BaseHrefTag baseRefTag = new BaseHrefTag(new TagData("BASE", 0, new Vector (), "http://www.abc.com", false),"http://www.abc.com"); assertEquals("Expected Base URL","http://www.abc.com",baseRefTag.getBaseUrl()); } --- 41,46 ---- public void testConstruction() { ! BaseHrefTag baseRefTag = new BaseHrefTag (); ! baseRefTag.setBaseUrl ("http://www.abc.com"); assertEquals("Expected Base URL","http://www.abc.com",baseRefTag.getBaseUrl()); } Index: LinkTagTest.java =================================================================== RCS file: /cvsroot/htmlparser/htmlparser/src/org/htmlparser/tests/tagTests/LinkTagTest.java,v retrieving revision 1.37 retrieving revision 1.38 diff -C2 -d -r1.37 -r1.38 *** LinkTagTest.java 6 Oct 2003 01:43:28 -0000 1.37 --- LinkTagTest.java 20 Oct 2003 01:28:04 -0000 1.38 *************** *** 33,39 **** import org.htmlparser.scanners.LinkScanner; import org.htmlparser.tags.LinkTag; - import org.htmlparser.tags.data.CompositeTagData; - import org.htmlparser.tags.data.LinkData; - import org.htmlparser.tags.data.TagData; import org.htmlparser.tests.ParserTestCase; import org.htmlparser.util.ParserException; --- 33,36 ---- *************** *** 59,64 **** parseAndAssertNodeCount(1); ! // The node should be an HTMLLinkTag ! assertTrue("Node should be a HTMLLinkTag",node[0] instanceof LinkTag); LinkTag linkNode = (LinkTag)node[0]; assertEquals("The image locn","http://www.google.com/test.html",linkNode.getLink()); --- 56,61 ---- parseAndAssertNodeCount(1); ! // The node should be an LinkTag ! assertTrue("Node should be a LinkTag",node[0] instanceof LinkTag); LinkTag linkNode = (LinkTag)node[0]; assertEquals("The image locn","http://www.google.com/test.html",linkNode.getLink()); *************** *** 79,84 **** parseAndAssertNodeCount(1); ! // The node should be an HTMLLinkTag ! assertTrue("Node should be a HTMLLinkTag",node[0] instanceof LinkTag); LinkTag linkNode = (LinkTag)node[0]; assertEquals("The image locn","http://www.google.com/test.html",linkNode.getLink()); --- 76,81 ---- parseAndAssertNodeCount(1); ! // The node should be an LinkTag ! assertTrue("Node should be a LinkTag",node[0] instanceof LinkTag); LinkTag linkNode = (LinkTag)node[0]; assertEquals("The image locn","http://www.google.com/test.html",linkNode.getLink()); *************** *** 98,103 **** parseAndAssertNodeCount(1); ! // The node should be an HTMLLinkTag ! assertTrue("Node should be a HTMLLinkTag",node[0] instanceof LinkTag); LinkTag linkNode = (LinkTag)node[0]; assertEquals("Link incorrect","http://www.cj.com/mylink.html",linkNode.getLink()); --- 95,100 ---- parseAndAssertNodeCount(1); ! // The node should be an LinkTag ! assertTrue("Node should be a LinkTag",node[0] instanceof LinkTag); LinkTag linkNode = (LinkTag)node[0]; assertEquals("Link incorrect","http://www.cj.com/mylink.html",linkNode.getLink()); *************** *** 117,122 **** parseAndAssertNodeCount(1); ! // The node should be an HTMLLinkTag ! assertTrue("Node should be a HTMLLinkTag",node[0] instanceof LinkTag); LinkTag linkNode = (LinkTag)node[0]; assertEquals("Link incorrect!!","http://www.cj.com/mylink.html",linkNode.getLink()); --- 114,119 ---- parseAndAssertNodeCount(1); ! // The node should be an LinkTag ! assertTrue("Node should be a LinkTag",node[0] instanceof LinkTag); LinkTag linkNode = (LinkTag)node[0]; assertEquals("Link incorrect!!","http://www.cj.com/mylink.html",linkNode.getLink()); *************** *** 171,175 **** parseAndAssertNodeCount(1); ! assertTrue("Node should be a HTMLLinkTag",node[0] instanceof LinkTag); LinkTag linkNode = (LinkTag)node[0]; assertStringEquals("Link incorrect","so...@ya...",linkNode.getLink()); --- 168,172 ---- parseAndAssertNodeCount(1); ! assertTrue("Node should be a LinkTag",node[0] instanceof LinkTag); LinkTag linkNode = (LinkTag)node[0]; assertStringEquals("Link incorrect","so...@ya...",linkNode.getLink()); *************** *** 189,193 **** parseAndAssertNodeCount(1); ! assertTrue("Node should be a HTMLLinkTag",node[0] instanceof LinkTag); LinkTag linkNode = (LinkTag)node[0]; assertEquals("Link incorrect","http://www.cj.com/abcd.html",linkNode.getLink()); --- 186,190 ---- parseAndAssertNodeCount(1); ! assertTrue("Node should be a LinkTag",node[0] instanceof LinkTag); LinkTag linkNode = (LinkTag)node[0]; assertEquals("Link incorrect","http://www.cj.com/abcd.html",linkNode.getLink()); *************** *** 208,213 **** parseAndAssertNodeCount(1); ! // The node should be an HTMLLinkTag ! assertTrue("Node should be a HTMLLinkTag",node[0] instanceof LinkTag); LinkTag LinkTag = (LinkTag)node[0]; assertEquals("The image locn","http://www.google.com/test/test.html",LinkTag.getLink()); --- 205,210 ---- parseAndAssertNodeCount(1); ! // The node should be an LinkTag ! assertTrue("Node should be a LinkTag",node[0] instanceof LinkTag); LinkTag LinkTag = (LinkTag)node[0]; assertEquals("The image locn","http://www.google.com/test/test.html",LinkTag.getLink()); *************** *** 228,233 **** parseAndAssertNodeCount(1); ! // The node should be an HTMLLinkTag ! assertTrue("Node should be a HTMLLinkTag",node[0] instanceof LinkTag); LinkTag LinkTag = (LinkTag)node[0]; assertEquals("The image locn","http://www.google.com/test.html",LinkTag.getLink()); --- 225,230 ---- parseAndAssertNodeCount(1); ! // The node should be an LinkTag ! assertTrue("Node should be a LinkTag",node[0] instanceof LinkTag); LinkTag LinkTag = (LinkTag)node[0]; assertEquals("The image locn","http://www.google.com/test.html",LinkTag.getLink()); *************** *** 248,253 **** parseAndAssertNodeCount(1); ! // The node should be an HTMLLinkTag ! assertTrue("Node should be a HTMLLinkTag",node[0] instanceof LinkTag); LinkTag linkTag = (LinkTag)node[0]; assertEquals("The link location","",linkTag.getLink()); --- 245,250 ---- parseAndAssertNodeCount(1); ! // The node should be an LinkTag ! assertTrue("Node should be a LinkTag",node[0] instanceof LinkTag); LinkTag linkTag = (LinkTag)node[0]; assertEquals("The link location","",linkTag.getLink()); *************** *** 261,265 **** parseAndAssertNodeCount(1); ! assertTrue("Node should be a HTMLLinkTag",node[0] instanceof LinkTag); LinkTag linkTag = (LinkTag)node[0]; assertEquals("Link Plain Text","hello",linkTag.toPlainTextString()); --- 258,262 ---- parseAndAssertNodeCount(1); ! assertTrue("Node should be a LinkTag",node[0] instanceof LinkTag); LinkTag linkTag = (LinkTag)node[0]; assertEquals("Link Plain Text","hello",linkTag.toPlainTextString()); *************** *** 282,359 **** LinkTag linkTag = (LinkTag)node[0]; assertStringEquals("Link Raw Text",link1,linkTag.toHtml()); ! assertTrue("Ninth Node should be a HTMLLinkTag",node[8] instanceof LinkTag); linkTag = (LinkTag)node[8]; assertStringEquals("Link Raw Text",link2,linkTag.toHtml()); } ! public void testTypeHttps() throws ParserException{ ! LinkTag linkTag = ! new LinkTag( ! new TagData("A", 0, new Vector (), "http://www.someurl.com", false), ! new CompositeTagData(null,null,null), ! new LinkData("https://www.someurl.com","","",false,false) ! ); ! assertTrue("This is a https link",linkTag.isHTTPSLink()); } ! public void testTypeFtp() throws ParserException{ ! LinkTag linkTag = ! new LinkTag( ! new TagData("A", 0, new Vector (), "http://www.someurl.com", false), ! new CompositeTagData(null,null,null), ! new LinkData("ftp://www.someurl.com","","",false,false) ! ); ! assertTrue("This is an ftp link",linkTag.isFTPLink()); } ! public void testTypeJavaScript() throws ParserException { ! LinkTag linkTag = ! new LinkTag( ! new TagData("A", 0, new Vector (), "http://www.someurl.com", false), ! new CompositeTagData(null,null,null), ! new LinkData("javascript://www.someurl.com","","",false,true) ! ); ! assertTrue("This is a javascript link",linkTag.isJavascriptLink()); } ! public void testTypeHttpLink() throws ParserException { ! LinkTag linkTag = ! new LinkTag( ! new TagData("A", 0, new Vector (), "http://www.someurl.com", false), ! new CompositeTagData(null,null,null), ! new LinkData("http://www.someurl.com","","",false,false) ! ); ! assertTrue("This is a http link : "+linkTag.getLink(),linkTag.isHTTPLink()); ! linkTag = ! new LinkTag( ! new TagData("A", 0, new Vector (), "http://www.someurl.com", false), ! new CompositeTagData(null,null,null), ! new LinkData("somePage.html","","",false,false) ! ); ! assertTrue("This relative link is alsp a http link : "+linkTag.getLink(),linkTag.isHTTPLink()); ! linkTag = ! new LinkTag( ! new TagData("A", 0, new Vector (), "http://www.someurl.com", false), ! new CompositeTagData(null,null,null), ! new LinkData("ftp://somePage.html","","",false,false) ! ); ! assertTrue("This is not a http link : "+linkTag.getLink(),!linkTag.isHTTPLink()); } ! public void testTypeHttpLikeLink() throws ParserException { ! LinkTag linkTag = ! new LinkTag( ! new TagData("A", 0, new Vector (), "http://www.someurl.com", false), ! new CompositeTagData(null,null,null), ! new LinkData("http://","","",false,false) ! ); ! assertTrue("This is a http link",linkTag.isHTTPLikeLink()); ! LinkTag linkTag2 = ! new LinkTag( ! new TagData("A", 0, new Vector (), "http://www.someurl.com", false), ! new CompositeTagData(null,null,null), ! new LinkData("https://www.someurl.com","","",false,false) ! ); ! assertTrue("This is a https link",linkTag2.isHTTPLikeLink()); } --- 279,376 ---- LinkTag linkTag = (LinkTag)node[0]; assertStringEquals("Link Raw Text",link1,linkTag.toHtml()); ! assertTrue("Ninth Node should be a LinkTag",node[8] instanceof LinkTag); linkTag = (LinkTag)node[8]; assertStringEquals("Link Raw Text",link2,linkTag.toHtml()); } ! public void testTypeHttps() throws ParserException ! { ! LinkTag link; ! ! createParser ("<A HREF='https://www.someurl.com'>Try https.</A>","http://sourceforge.net"); ! parser.addScanner (new LinkScanner ("-l")); ! parseAndAssertNodeCount (1); ! assertTrue ("Node should be a LinkTag", node[0] instanceof LinkTag); ! link = (LinkTag)node[0]; ! assertTrue("This is a https link",link.isHTTPSLink()); } ! public void testTypeFtp() throws ParserException ! { ! LinkTag link; ! ! createParser ("<A HREF='ftp://www.someurl.com'>Try ftp.</A>","http://sourceforge.net"); ! parser.addScanner (new LinkScanner ("-l")); ! parseAndAssertNodeCount (1); ! assertTrue ("Node should be a LinkTag", node[0] instanceof LinkTag); ! link = (LinkTag)node[0]; ! assertTrue("This is an ftp link",link.isFTPLink()); } ! public void testTypeJavaScript() throws ParserException ! { ! LinkTag link; ! ! createParser ("<A HREF='javascript://www.someurl.com'>Try javascript.</A>","http://sourceforge.net"); ! parser.addScanner (new LinkScanner ("-l")); ! parseAndAssertNodeCount (1); ! assertTrue ("Node should be a LinkTag", node[0] instanceof LinkTag); ! link = (LinkTag)node[0]; ! assertTrue("This is a javascript link",link.isJavascriptLink()); } ! public void testTypeHttpLink() throws ParserException ! { ! LinkTag link; ! ! createParser ("<A HREF='http://www.someurl.com'>Try http.</A>","http://sourceforge.net"); ! parser.addScanner (new LinkScanner ("-l")); ! parseAndAssertNodeCount (1); ! assertTrue ("Node should be a LinkTag", node[0] instanceof LinkTag); ! link = (LinkTag)node[0]; ! assertTrue("This is a http link : "+link.getLink(),link.isHTTPLink()); } ! public void testRelativeTypeHttpLink() throws ParserException ! { ! LinkTag link; ! ! createParser ("<A HREF='somePage.html'>Try relative http.</A>","http://sourceforge.net"); ! parser.addScanner (new LinkScanner ("-l")); ! parseAndAssertNodeCount (1); ! assertTrue ("Node should be a LinkTag", node[0] instanceof LinkTag); ! link = (LinkTag)node[0]; ! assertTrue("This relative link is also a http link : "+link.getLink(),link.isHTTPLink()); ! } ! ! public void testTypeNonHttp() throws ParserException ! { ! LinkTag link; ! ! createParser ("<A HREF='ftp://www.someurl.com'>Try non-http.</A>","http://sourceforge.net"); ! parser.addScanner (new LinkScanner ("-l")); ! parseAndAssertNodeCount (1); ! assertTrue ("Node should be a LinkTag", node[0] instanceof LinkTag); ! link = (LinkTag)node[0]; ! assertTrue("This is not a http link : "+link.getLink(),!link.isHTTPLink()); ! } ! ! public void testTypeHttpLikeLink() throws ParserException ! { ! LinkTag link; ! ! createParser ("<A HREF='http://'>Try basic http.</A>","http://sourceforge.net"); ! parser.addScanner (new LinkScanner ("-l")); ! parseAndAssertNodeCount (1); ! assertTrue ("Node should be a LinkTag", node[0] instanceof LinkTag); ! link = (LinkTag)node[0]; ! assertTrue("This is a http link",link.isHTTPLikeLink()); ! ! createParser ("<A HREF='https://www.someurl.com'>Try https.</A>","http://sourceforge.net"); ! parser.addScanner (new LinkScanner ("-l")); ! parseAndAssertNodeCount (1); ! assertTrue ("Node should be a LinkTag", node[0] instanceof LinkTag); ! link = (LinkTag)node[0]; ! assertTrue("This is a https link",link.isHTTPLikeLink()); } *************** *** 370,374 **** parseAndAssertNodeCount (1); ! assertTrue ("Node should be a HTMLLinkTag", node[0] instanceof LinkTag); link = (LinkTag)node[0]; assertTrue ("bug #738504 MailLink != HTTPLink", !link.isHTTPLink ()); --- 387,391 ---- parseAndAssertNodeCount (1); ! assertTrue ("Node should be a LinkTag", node[0] instanceof LinkTag); link = (LinkTag)node[0]; assertTrue ("bug #738504 MailLink != HTTPLink", !link.isHTTPLink ()); *************** *** 383,391 **** LinkTag link; ! link = new LinkTag( ! new TagData("A", 0, new Vector (), "http://www.someurl.com", false), ! new CompositeTagData(null,null,null), ! new LinkData("irc://server/channel","","",false,false) ! ); assertTrue("This is not a http link", !link.isHTTPLikeLink ()); } --- 400,408 ---- LinkTag link; ! createParser ("<A HREF='irc://server/channel'>Try irc.</A>","http://sourceforge.net"); ! parser.addScanner (new LinkScanner ("-l")); ! parseAndAssertNodeCount (1); ! assertTrue ("Node should be a LinkTag", node[0] instanceof LinkTag); ! link = (LinkTag)node[0]; assertTrue("This is not a http link", !link.isHTTPLikeLink ()); } Index: ScriptTagTest.java =================================================================== RCS file: /cvsroot/htmlparser/htmlparser/src/org/htmlparser/tests/tagTests/ScriptTagTest.java,v retrieving revision 1.33 retrieving revision 1.34 diff -C2 -d -r1.33 -r1.34 *** ScriptTagTest.java 18 Oct 2003 20:50:37 -0000 1.33 --- ScriptTagTest.java 20 Oct 2003 01:28:04 -0000 1.34 *************** *** 33,38 **** import org.htmlparser.scanners.ScriptScanner; import org.htmlparser.tags.ScriptTag; - import org.htmlparser.tags.data.CompositeTagData; - import org.htmlparser.tags.data.TagData; import org.htmlparser.tests.ParserTestCase; import org.htmlparser.util.NodeList; --- 33,36 ---- |
From: <der...@us...> - 2003-10-20 01:35:08
|
Update of /cvsroot/htmlparser/htmlparser/src/org/htmlparser/tests/parserHelperTests In directory sc8-pr-cvs1:/tmp/cvs-serv26197/tests/parserHelperTests Modified Files: CompositeTagScannerHelperTest.java Log Message: Removed lexer level AbstractNode. Removed data package from parser level tags. Separated tag creation from recursion in NodeFactory interface. Index: CompositeTagScannerHelperTest.java =================================================================== RCS file: /cvsroot/htmlparser/htmlparser/src/org/htmlparser/tests/parserHelperTests/CompositeTagScannerHelperTest.java,v retrieving revision 1.22 retrieving revision 1.23 diff -C2 -d -r1.22 -r1.23 *** CompositeTagScannerHelperTest.java 28 Sep 2003 15:33:59 -0000 1.22 --- CompositeTagScannerHelperTest.java 20 Oct 2003 01:28:04 -0000 1.23 *************** *** 31,35 **** import org.htmlparser.parserHelper.CompositeTagScannerHelper; import org.htmlparser.tags.Tag; - import org.htmlparser.tags.data.TagData; import org.htmlparser.tests.ParserTestCase; --- 31,34 ---- |
Update of /cvsroot/htmlparser/htmlparser/src/org/htmlparser/tests/scannersTests In directory sc8-pr-cvs1:/tmp/cvs-serv26197/tests/scannersTests Modified Files: CompositeTagScannerTest.java ImageScannerTest.java LinkScannerTest.java TableScannerTest.java TagScannerTest.java Log Message: Removed lexer level AbstractNode. Removed data package from parser level tags. Separated tag creation from recursion in NodeFactory interface. Index: CompositeTagScannerTest.java =================================================================== RCS file: /cvsroot/htmlparser/htmlparser/src/org/htmlparser/tests/scannersTests/CompositeTagScannerTest.java,v retrieving revision 1.41 retrieving revision 1.42 diff -C2 -d -r1.41 -r1.42 *** CompositeTagScannerTest.java 6 Oct 2003 01:43:28 -0000 1.41 --- CompositeTagScannerTest.java 20 Oct 2003 01:28:04 -0000 1.42 *************** *** 29,40 **** package org.htmlparser.tests.scannersTests; import org.htmlparser.Node; import org.htmlparser.StringNode; import org.htmlparser.scanners.CompositeTagScanner; import org.htmlparser.tags.CompositeTag; import org.htmlparser.tags.Tag; - import org.htmlparser.tags.data.CompositeTagData; - import org.htmlparser.tags.data.TagData; import org.htmlparser.tests.ParserTestCase; import org.htmlparser.util.ParserException; --- 29,41 ---- package org.htmlparser.tests.scannersTests; + import java.util.Vector; import org.htmlparser.Node; import org.htmlparser.StringNode; + import org.htmlparser.lexer.Page; import org.htmlparser.scanners.CompositeTagScanner; import org.htmlparser.tags.CompositeTag; import org.htmlparser.tags.Tag; import org.htmlparser.tests.ParserTestCase; + import org.htmlparser.util.NodeList; import org.htmlparser.util.ParserException; *************** *** 53,57 **** scanner = new CompositeTagScanner(arr) { ! public Tag createTag(TagData tagData, CompositeTagData compositeTagData) throws ParserException { return null; } --- 54,59 ---- scanner = new CompositeTagScanner(arr) { ! public Tag createTag(Page page, int start, int end, Vector attributes, Tag startTag, Tag endTag, NodeList children) throws ParserException ! { return null; } *************** *** 79,84 **** assertEquals("starting loc",0,customTag.getStartTag().elementBegin()); assertEquals("ending loc",9,customTag.getStartTag().elementEnd()); ! assertEquals("starting line position",0,customTag.tagData.getStartLine()); ! assertEquals("ending line position",0,customTag.tagData.getEndLine()); assertStringEquals("html",html,customTag.toHtml()); } --- 81,86 ---- assertEquals("starting loc",0,customTag.getStartTag().elementBegin()); assertEquals("ending loc",9,customTag.getStartTag().elementEnd()); ! // assertEquals("starting line position",0,customTag.tagData.getStartLine()); ! // assertEquals("ending line position",0,customTag.tagData.getEndLine()); assertStringEquals("html",html,customTag.toHtml()); } *************** *** 92,97 **** assertEquals("starting loc",0,customTag.getStartTag().elementBegin()); assertEquals("ending loc",8,customTag.getStartTag().elementEnd()); ! assertEquals("starting line position",0,customTag.tagData.getStartLine()); ! assertEquals("ending line position",0,customTag.tagData.getEndLine()); assertEquals("html",html,customTag.toHtml()); } --- 94,99 ---- assertEquals("starting loc",0,customTag.getStartTag().elementBegin()); assertEquals("ending loc",8,customTag.getStartTag().elementEnd()); ! // assertEquals("starting line position",0,customTag.tagData.getStartLine()); ! // assertEquals("ending line position",0,customTag.tagData.getEndLine()); assertEquals("html",html,customTag.toHtml()); } *************** *** 108,113 **** assertEquals("starting loc",0,customTag.getStartTag().elementBegin()); assertEquals("ending loc",8,customTag.getStartTag().elementEnd()); ! assertEquals("starting line position",0,customTag.tagData.getStartLine()); ! assertEquals("ending line position",0,customTag.tagData.getEndLine()); Node child = customTag.childAt(0); --- 110,115 ---- assertEquals("starting loc",0,customTag.getStartTag().elementBegin()); assertEquals("ending loc",8,customTag.getStartTag().elementEnd()); ! // assertEquals("starting line position",0,customTag.tagData.getStartLine()); ! // assertEquals("ending line position",0,customTag.tagData.getEndLine()); Node child = customTag.childAt(0); *************** *** 258,263 **** assertEquals("starting loc",0,customTag.getStartTag().elementBegin()); assertEquals("ending loc",8,customTag.getStartTag().elementEnd()); ! assertEquals("starting line position",0,customTag.tagData.getStartLine()); ! assertEquals("ending line position",0,customTag.tagData.getEndLine()); assertStringEquals("html",html + "</custom>",customTag.toHtml()); } --- 260,265 ---- assertEquals("starting loc",0,customTag.getStartTag().elementBegin()); assertEquals("ending loc",8,customTag.getStartTag().elementEnd()); ! // assertEquals("starting line position",0,customTag.tagData.getStartLine()); ! // assertEquals("ending line position",0,customTag.tagData.getEndLine()); assertStringEquals("html",html + "</custom>",customTag.toHtml()); } *************** *** 271,276 **** assertEquals("starting loc",0,customTag.getStartTag().elementBegin()); assertEquals("ending loc",8,customTag.getStartTag().elementEnd()); ! assertEquals("starting line position",0,customTag.tagData.getStartLine()); ! assertEquals("ending line position",0,customTag.tagData.getEndLine()); assertStringEquals("html",html + "</custom>",customTag.toHtml()); } --- 273,278 ---- assertEquals("starting loc",0,customTag.getStartTag().elementBegin()); assertEquals("ending loc",8,customTag.getStartTag().elementEnd()); ! // assertEquals("starting line position",0,customTag.tagData.getStartLine()); ! // assertEquals("ending line position",0,customTag.tagData.getEndLine()); assertStringEquals("html",html + "</custom>",customTag.toHtml()); } *************** *** 284,289 **** assertEquals("starting loc",0,customTag.getStartTag().elementBegin()); assertEquals("ending loc",8,customTag.getStartTag().elementEnd()); ! assertEquals("starting line position",0,customTag.tagData.getStartLine()); ! assertEquals("ending line position",1,customTag.tagData.getEndLine()); assertStringEquals("html", html + "</custom>", customTag.toHtml() ); --- 286,291 ---- assertEquals("starting loc",0,customTag.getStartTag().elementBegin()); assertEquals("ending loc",8,customTag.getStartTag().elementEnd()); ! // assertEquals("starting line position",0,customTag.tagData.getStartLine()); ! // assertEquals("ending line position",1,customTag.tagData.getEndLine()); assertStringEquals("html", html + "</custom>", customTag.toHtml() ); *************** *** 302,307 **** assertEquals("ending loc",8,customTag.getStartTag().elementEnd()); assertEquals("ending loc of custom tag",17,customTag.elementEnd()); ! assertEquals("starting line position",0,customTag.tagData.getStartLine()); ! assertEquals("ending line position",0,customTag.tagData.getEndLine()); assertStringEquals("1st custom tag", tag1 + "</custom>", customTag.toHtml()); customTag = (CustomTag)node[1]; --- 304,309 ---- assertEquals("ending loc",8,customTag.getStartTag().elementEnd()); assertEquals("ending loc of custom tag",17,customTag.elementEnd()); ! // assertEquals("starting line position",0,customTag.tagData.getStartLine()); ! // assertEquals("ending line position",0,customTag.tagData.getEndLine()); assertStringEquals("1st custom tag", tag1 + "</custom>", customTag.toHtml()); customTag = (CustomTag)node[1]; *************** *** 327,332 **** assertEquals("starting loc",9,customTag.getStartTag().elementBegin()); assertEquals("ending loc",17,customTag.getStartTag().elementEnd()); ! assertEquals("starting line position",0,customTag.tagData.getStartLine()); ! assertEquals("ending line position",1,customTag.tagData.getEndLine()); assertStringEquals("another tag html",another,anotherTag.toHtml()); assertStringEquals("custom tag html",custom,customTag.toHtml()); --- 329,334 ---- assertEquals("starting loc",9,customTag.getStartTag().elementBegin()); assertEquals("ending loc",17,customTag.getStartTag().elementEnd()); ! // assertEquals("starting line position",0,customTag.tagData.getStartLine()); ! // assertEquals("ending line position",1,customTag.tagData.getEndLine()); assertStringEquals("another tag html",another,anotherTag.toHtml()); assertStringEquals("custom tag html",custom,customTag.toHtml()); *************** *** 347,352 **** AnotherTag anotherTag = (AnotherTag)customTag.childAt(0); assertEquals("another tag ending loc",17,anotherTag.elementEnd()); ! assertEquals("starting line position",0,customTag.tagData.getStartLine()); ! assertEquals("ending line position",0,customTag.tagData.getEndLine()); assertStringEquals("html","<custom><another></another></custom>",customTag.toHtml()); } --- 349,354 ---- AnotherTag anotherTag = (AnotherTag)customTag.childAt(0); assertEquals("another tag ending loc",17,anotherTag.elementEnd()); ! // assertEquals("starting line position",0,customTag.tagData.getStartLine()); ! // assertEquals("ending line position",0,customTag.tagData.getEndLine()); assertStringEquals("html","<custom><another></another></custom>",customTag.toHtml()); } *************** *** 367,372 **** assertEquals("starting loc",0,customTag.getStartTag().elementBegin()); assertEquals("ending loc",8,customTag.getStartTag().elementEnd()); ! assertEquals("starting line position",0,customTag.tagData.getStartLine()); ! assertEquals("ending line position",0,customTag.tagData.getEndLine()); AnotherTag anotherTag = (AnotherTag)customTag.childAt(0); assertEquals("anotherTag child count",1,anotherTag.getChildCount()); --- 369,374 ---- assertEquals("starting loc",0,customTag.getStartTag().elementBegin()); assertEquals("ending loc",8,customTag.getStartTag().elementEnd()); ! // assertEquals("starting line position",0,customTag.tagData.getStartLine()); ! // assertEquals("ending line position",0,customTag.tagData.getEndLine()); AnotherTag anotherTag = (AnotherTag)customTag.childAt(0); assertEquals("anotherTag child count",1,anotherTag.getChildCount()); *************** *** 494,506 **** parser.addScanner(new CustomScanner() { ! public Tag createTag( ! TagData tagData, ! CompositeTagData compositeTagData) { ! url = tagData.getUrlBeingParsed(); ! return super.createTag( ! tagData, ! compositeTagData ! ); ! } }); parseAndAssertNodeCount(1); --- 496,513 ---- parser.addScanner(new CustomScanner() { ! public Tag createTag(Page page, int start, int end, Vector attributes, Tag startTag, Tag endTag, NodeList children) throws ParserException ! { ! url = page.getUrl (); ! return (super.createTag (page, start, end, attributes, startTag, endTag, children)); ! } ! // public Tag createTag( ! // TagData tagData, ! // CompositeTagData compositeTagData) { ! // url = tagData.getUrlBeingParsed(); ! // return super.createTag( ! // tagData, ! // compositeTagData ! // ); ! // } }); parseAndAssertNodeCount(1); *************** *** 564,569 **** } ! public Tag createTag(TagData tagData, CompositeTagData compositeTagData) { ! return new CustomTag(tagData, compositeTagData); } } --- 571,588 ---- } ! public Tag createTag(Page page, int start, int end, Vector attributes, Tag startTag, Tag endTag, NodeList children) throws ParserException ! { ! CustomTag ret; ! ! ret = new CustomTag (); ! ret.setPage (page); ! ret.setStartPosition (start); ! ret.setEndPosition (end); ! ret.setAttributesEx (attributes); ! ret.setStartTag (startTag); ! ret.setEndTag (endTag); ! ret.setChildren (children); ! ! return (ret); } } *************** *** 583,588 **** } ! public Tag createTag(TagData tagData, CompositeTagData compositeTagData) { ! return new AnotherTag(tagData, compositeTagData); } protected boolean isBrokenTag() { --- 602,619 ---- } ! public Tag createTag(Page page, int start, int end, Vector attributes, Tag startTag, Tag endTag, NodeList children) throws ParserException ! { ! AnotherTag ret; ! ! ret = new AnotherTag (); ! ret.setPage (page); ! ret.setStartPosition (start); ! ret.setEndPosition (end); ! ret.setAttributesEx (attributes); ! ret.setStartTag (startTag); ! ret.setEndTag (endTag); ! ret.setChildren (children); ! ! return (ret); } protected boolean isBrokenTag() { *************** *** 593,606 **** 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); } } --- 624,637 ---- public static class CustomTag extends CompositeTag { ! // public TagData tagData; ! public CustomTag(/*TagData data, CompositeTagData compositeTagData*/) { ! // super(data.getPage (), data.getTagBegin (), data.getTagEnd (), data.getAttributes (),compositeTagData); ! // tagData = data; } } public static class AnotherTag extends CompositeTag { ! public AnotherTag(/*TagData data, CompositeTagData compositeTagData*/) { ! // super(data.getPage (), data.getTagBegin (), data.getTagEnd (), data.getAttributes (),compositeTagData); } } Index: ImageScannerTest.java =================================================================== RCS file: /cvsroot/htmlparser/htmlparser/src/org/htmlparser/tests/scannersTests/ImageScannerTest.java,v retrieving revision 1.33 retrieving revision 1.34 diff -C2 -d -r1.33 -r1.34 *** ImageScannerTest.java 5 Oct 2003 13:49:54 -0000 1.33 --- ImageScannerTest.java 20 Oct 2003 01:28:04 -0000 1.34 *************** *** 38,42 **** import org.htmlparser.tags.TableRow; import org.htmlparser.tags.Tag; - import org.htmlparser.tags.data.TagData; import org.htmlparser.tests.ParserTestCase; import org.htmlparser.util.LinkProcessor; --- 38,41 ---- Index: LinkScannerTest.java =================================================================== RCS file: /cvsroot/htmlparser/htmlparser/src/org/htmlparser/tests/scannersTests/LinkScannerTest.java,v retrieving revision 1.41 retrieving revision 1.42 diff -C2 -d -r1.41 -r1.42 *** LinkScannerTest.java 18 Oct 2003 20:50:37 -0000 1.41 --- LinkScannerTest.java 20 Oct 2003 01:28:04 -0000 1.42 *************** *** 40,44 **** import org.htmlparser.tags.LinkTag; import org.htmlparser.tags.Tag; - import org.htmlparser.tags.data.TagData; import org.htmlparser.tests.ParserTestCase; import org.htmlparser.util.ParserException; --- 40,43 ---- *************** *** 157,174 **** } ! /** ! * This is the reproduction of a bug which causes a null pointer exception ! */ ! public void testExtractLinkInvertedCommasBug() throws ParserException ! { ! String link = "r/anorth/top.html"; ! Vector attributes = new Vector (); ! attributes.addElement (new Attribute ("A", null)); ! attributes.addElement (new Attribute ("HREF", link)); ! Tag tag = new Tag(null, 0, 0, attributes); ! String url = "c:\\cvs\\html\\binaries\\yahoo.htm"; ! LinkScanner scanner = new LinkScanner(); ! assertEquals("Extracted Link","r/anorth/top.html",scanner.extractLink(tag,url)); ! } /** --- 156,173 ---- } ! // /** ! // * This is the reproduction of a bug which causes a null pointer exception ! // */ ! // public void testExtractLinkInvertedCommasBug() throws ParserException ! // { ! // String link = "r/anorth/top.html"; ! // Vector attributes = new Vector (); ! // attributes.addElement (new Attribute ("A", null)); ! // attributes.addElement (new Attribute ("HREF", link)); ! // Tag tag = new Tag(null, 0, 0, attributes); ! // String url = "c:\\cvs\\html\\binaries\\yahoo.htm"; ! // LinkScanner scanner = new LinkScanner(); ! // assertEquals("Extracted Link","r/anorth/top.html",scanner.extractLink(tag,url)); ! // } /** Index: TableScannerTest.java =================================================================== RCS file: /cvsroot/htmlparser/htmlparser/src/org/htmlparser/tests/scannersTests/TableScannerTest.java,v retrieving revision 1.36 retrieving revision 1.37 diff -C2 -d -r1.36 -r1.37 *** TableScannerTest.java 6 Oct 2003 01:43:28 -0000 1.36 --- TableScannerTest.java 20 Oct 2003 01:28:04 -0000 1.37 *************** *** 104,108 **** assertEquals("columns",1,tr.getColumnCount()); TableColumn td = tr.getColumns()[0]; ! Node node = td.childAt(0); assertType("node",TableTag.class,node); TableTag table2 = (TableTag)node; --- 104,108 ---- assertEquals("columns",1,tr.getColumnCount()); TableColumn td = tr.getColumns()[0]; ! Node node = td.childAt(1); assertType("node",TableTag.class,node); TableTag table2 = (TableTag)node; Index: TagScannerTest.java =================================================================== RCS file: /cvsroot/htmlparser/htmlparser/src/org/htmlparser/tests/scannersTests/TagScannerTest.java,v retrieving revision 1.31 retrieving revision 1.32 diff -C2 -d -r1.31 -r1.32 *** TagScannerTest.java 5 Oct 2003 13:49:54 -0000 1.31 --- TagScannerTest.java 20 Oct 2003 01:28:04 -0000 1.32 *************** *** 29,38 **** package org.htmlparser.tests.scannersTests; import org.htmlparser.Node; import org.htmlparser.Parser; import org.htmlparser.lexer.Lexer; import org.htmlparser.scanners.TagScanner; import org.htmlparser.tags.Tag; - import org.htmlparser.tags.data.TagData; import org.htmlparser.tests.ParserTestCase; import org.htmlparser.util.NodeIterator; --- 29,40 ---- package org.htmlparser.tests.scannersTests; + + import java.util.Vector; import org.htmlparser.Node; import org.htmlparser.Parser; import org.htmlparser.lexer.Lexer; + import org.htmlparser.lexer.Page; import org.htmlparser.scanners.TagScanner; import org.htmlparser.tags.Tag; import org.htmlparser.tests.ParserTestCase; import org.htmlparser.util.NodeIterator; *************** *** 121,125 **** public boolean evaluate(String s,TagScanner previousOpenScanner) { return false; } public String [] getID() { return null; } ! protected Tag createTag(TagData tagData, Tag tag, String url) { return null; } }; String result = scanner.removeChars(test,"\r\n"); --- 123,127 ---- public boolean evaluate(String s,TagScanner previousOpenScanner) { return false; } public String [] getID() { return null; } ! protected Tag createTag (Page page, int start, int end, Vector attributes, Tag tag, String url) { return null; } }; String result = scanner.removeChars(test,"\r\n"); |
From: <der...@us...> - 2003-10-19 14:52:48
|
Update of /cvsroot/htmlparser/htmlparser/src/org/htmlparser/tags/data In directory sc8-pr-cvs1:/tmp/cvs-serv10542/tags/data Modified Files: TagData.java Log Message: Partition Attribute into a base class and PageAttribute class for the Lexer. Fixed the AppletTag.setAppletParams in a cheesy manner. Clear out the released NodeList entry on remove(). Dropped the HTMLTagParserTest tests, because they really weren't relevant any more. Index: TagData.java =================================================================== RCS file: /cvsroot/htmlparser/htmlparser/src/org/htmlparser/tags/data/TagData.java,v retrieving revision 1.34 retrieving revision 1.35 diff -C2 -d -r1.34 -r1.35 *** TagData.java 5 Oct 2003 13:49:53 -0000 1.34 --- TagData.java 18 Oct 2003 20:50:37 -0000 1.35 *************** *** 75,79 **** isXmlEndTag); if (null != name && (0 == attributes.size ())) ! attributes.insertElementAt (new Attribute (name), 0); } --- 75,79 ---- isXmlEndTag); if (null != name && (0 == attributes.size ())) ! attributes.insertElementAt (new Attribute (name, null), 0); } |
From: <der...@us...> - 2003-10-19 14:07:25
|
Update of /cvsroot/htmlparser/htmlparser/src/org/htmlparser/tests/scannersTests In directory sc8-pr-cvs1:/tmp/cvs-serv10542/tests/scannersTests Modified Files: FormScannerTest.java LinkScannerTest.java Log Message: Partition Attribute into a base class and PageAttribute class for the Lexer. Fixed the AppletTag.setAppletParams in a cheesy manner. Clear out the released NodeList entry on remove(). Dropped the HTMLTagParserTest tests, because they really weren't relevant any more. Index: FormScannerTest.java =================================================================== RCS file: /cvsroot/htmlparser/htmlparser/src/org/htmlparser/tests/scannersTests/FormScannerTest.java,v retrieving revision 1.35 retrieving revision 1.36 diff -C2 -d -r1.35 -r1.36 *** FormScannerTest.java 6 Oct 2003 01:43:28 -0000 1.35 --- FormScannerTest.java 18 Oct 2003 20:50:37 -0000 1.36 *************** *** 131,135 **** String expected = FORM_HTML.substring (0, FORM_HTML.indexOf ("\"do_login.php\"")) ! + "http://www.google.com/test/do_login.php" + FORM_HTML.substring (FORM_HTML.indexOf ("\"do_login.php\"") + 14); assertStringEquals("toHTML",expected,formTag.toHtml()); --- 131,135 ---- String expected = FORM_HTML.substring (0, FORM_HTML.indexOf ("\"do_login.php\"")) ! + "\"http://www.google.com/test/do_login.php\"" + FORM_HTML.substring (FORM_HTML.indexOf ("\"do_login.php\"") + 14); assertStringEquals("toHTML",expected,formTag.toHtml()); Index: LinkScannerTest.java =================================================================== RCS file: /cvsroot/htmlparser/htmlparser/src/org/htmlparser/tests/scannersTests/LinkScannerTest.java,v retrieving revision 1.40 retrieving revision 1.41 diff -C2 -d -r1.40 -r1.41 *** LinkScannerTest.java 6 Oct 2003 01:43:28 -0000 1.40 --- LinkScannerTest.java 18 Oct 2003 20:50:37 -0000 1.41 *************** *** 164,169 **** String link = "r/anorth/top.html"; Vector attributes = new Vector (); ! attributes.addElement (new Attribute ("A")); ! attributes.addElement (new Attribute ("HREF", link, (char)0)); Tag tag = new Tag(null, 0, 0, attributes); String url = "c:\\cvs\\html\\binaries\\yahoo.htm"; --- 164,169 ---- String link = "r/anorth/top.html"; Vector attributes = new Vector (); ! attributes.addElement (new Attribute ("A", null)); ! attributes.addElement (new Attribute ("HREF", link)); Tag tag = new Tag(null, 0, 0, attributes); String url = "c:\\cvs\\html\\binaries\\yahoo.htm"; |
From: <der...@us...> - 2003-10-19 13:33:35
|
Update of /cvsroot/htmlparser/htmlparser/src/org/htmlparser/parserHelper In directory sc8-pr-cvs1:/tmp/cvs-serv10542/parserHelper Modified Files: CompositeTagScannerHelper.java Log Message: Partition Attribute into a base class and PageAttribute class for the Lexer. Fixed the AppletTag.setAppletParams in a cheesy manner. Clear out the released NodeList entry on remove(). Dropped the HTMLTagParserTest tests, because they really weren't relevant any more. Index: CompositeTagScannerHelper.java =================================================================== RCS file: /cvsroot/htmlparser/htmlparser/src/org/htmlparser/parserHelper/CompositeTagScannerHelper.java,v retrieving revision 1.50 retrieving revision 1.51 diff -C2 -d -r1.50 -r1.51 *** CompositeTagScannerHelper.java 6 Oct 2003 01:43:27 -0000 1.50 --- CompositeTagScannerHelper.java 18 Oct 2003 20:50:37 -0000 1.51 *************** *** 122,126 **** String endTagName = "/" + mTag.getRawTagName(); Vector attributes = new Vector (); ! attributes.addElement (new Attribute (endTagName, (String)null, (char)0)); TagData data = new TagData( endTagName, --- 122,126 ---- String endTagName = "/" + mTag.getRawTagName(); Vector attributes = new Vector (); ! attributes.addElement (new Attribute (endTagName, (String)null)); TagData data = new TagData( endTagName, *************** *** 138,142 **** // possibleEndTagCauser.setTagBegin(endTagEnd+1); // Vector attributes = new Vector (); ! // attributes.addElement (new Attribute (endTagName, (String)null, (char)0)); // TagData data = new TagData( // endTagName, --- 138,142 ---- // possibleEndTagCauser.setTagBegin(endTagEnd+1); // Vector attributes = new Vector (); ! // attributes.addElement (new Attribute (endTagName, (String)null)); // TagData data = new TagData( // endTagName, |
From: <der...@us...> - 2003-10-19 12:43:35
|
Update of /cvsroot/htmlparser/htmlparser/src/org/htmlparser/tests/utilTests In directory sc8-pr-cvs1:/tmp/cvs-serv10542/tests/utilTests Modified Files: AllTests.java Removed Files: HTMLTagParserTest.java Log Message: Partition Attribute into a base class and PageAttribute class for the Lexer. Fixed the AppletTag.setAppletParams in a cheesy manner. Clear out the released NodeList entry on remove(). Dropped the HTMLTagParserTest tests, because they really weren't relevant any more. Index: AllTests.java =================================================================== RCS file: /cvsroot/htmlparser/htmlparser/src/org/htmlparser/tests/utilTests/AllTests.java,v retrieving revision 1.48 retrieving revision 1.49 diff -C2 -d -r1.48 -r1.49 *** AllTests.java 22 Sep 2003 02:40:13 -0000 1.48 --- AllTests.java 18 Oct 2003 20:50:37 -0000 1.49 *************** *** 123,127 **** suite.addTestSuite(HTMLLinkProcessorTest.class); suite.addTestSuite(HTMLParserUtilsTest.class); - suite.addTestSuite(HTMLTagParserTest.class); suite.addTestSuite(NodeListTest.class); suite.addTestSuite(SortTest.class); --- 123,126 ---- --- HTMLTagParserTest.java DELETED --- |