📄 beantest.java
字号:
// HTMLParser Library $Name: v1_6 $ - A java-based parser for HTML// http://sourceforge.org/projects/htmlparser// Copyright (C) 2004 Derrick Oswald//// Revision Control Information//// $Source: /cvsroot/htmlparser/htmlparser/src/org/htmlparser/tests/utilTests/BeanTest.java,v $// $Author: derrickoswald $// $Date: 2006/05/30 01:07:15 $// $Revision: 1.51 $//// This library is free software; you can redistribute it and/or// modify it under the terms of the GNU Lesser General Public// License as published by the Free Software Foundation; either// version 2.1 of the License, or (at your option) any later version.//// This library is distributed in the hope that it will be useful,// but WITHOUT ANY WARRANTY; without even the implied warranty of// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU// Lesser General Public License for more details.//// You should have received a copy of the GNU Lesser General Public// License along with this library; if not, write to the Free Software// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA//package org.htmlparser.tests.utilTests;import java.beans.PropertyChangeEvent;import java.beans.PropertyChangeListener;import java.io.ByteArrayInputStream;import java.io.ByteArrayOutputStream;import java.io.File;import java.io.FileWriter;import java.io.IOException;import java.io.ObjectInputStream;import java.io.ObjectOutputStream;import java.io.PrintWriter;import java.net.URL;import java.util.Vector;import org.htmlparser.Node;import org.htmlparser.Parser;import org.htmlparser.beans.LinkBean;import org.htmlparser.beans.StringBean;import org.htmlparser.lexer.Lexer;import org.htmlparser.lexer.Page;import org.htmlparser.tests.*;import org.htmlparser.util.NodeIterator;import org.htmlparser.util.ParserException;public class BeanTest extends ParserTestCase{ static { System.setProperty ("org.htmlparser.tests.utilTests.BeanTest", "BeanTest"); } public BeanTest (String name) { super (name); } protected byte[] pickle (Object object) throws IOException { ByteArrayOutputStream bos; ObjectOutputStream oos; byte[] ret; bos = new ByteArrayOutputStream (); oos = new ObjectOutputStream (bos); oos.writeObject (object); oos.close (); ret = bos.toByteArray (); return (ret); } protected Object unpickle (byte[] data) throws IOException, ClassNotFoundException { ByteArrayInputStream bis; ObjectInputStream ois; Object ret; bis = new ByteArrayInputStream (data); ois = new ObjectInputStream (bis); ret = ois.readObject (); ois.close (); return (ret); } /** * Makes sure that the bean returns text when passed the html. */ protected void check (StringBean bean, String html, String text) { String path; File file; PrintWriter out; String string; path = System.getProperty ("user.dir"); if (!path.endsWith (File.separator)) path += File.separator; file = new File (path + "delete_me.html"); try { out = new PrintWriter (new FileWriter (file)); out.print (html); out.close (); bean.setURL (file.getAbsolutePath ()); string = bean.getStrings (); } catch (Exception e) { fail (e.toString ()); string = null; // never reached } finally { file.delete (); } assertStringEquals ("stringbean text differs", text, string); } public void testZeroArgPageConstructor () throws IOException, ClassNotFoundException, ParserException { Page page; byte[] data; page = new Page (); data = pickle (page); page = (Page)unpickle (data); } public void testZeroArgLexerConstructor () throws IOException, ClassNotFoundException, ParserException { Lexer lexer; byte[] data; lexer = new Lexer (); data = pickle (lexer); lexer = (Lexer)unpickle (data); } public void testZeroArgParserConstructor () throws IOException, ClassNotFoundException, ParserException { Parser parser; byte[] data; parser = new Parser (); data = pickle (parser); parser = (Parser)unpickle (data); } public void testSerializable () throws IOException, ClassNotFoundException, ParserException { Parser parser; Vector vector; NodeIterator enumeration; byte[] data; parser = new Parser ("http://htmlparser.sourceforge.net/test/example.html"); enumeration = parser.elements (); vector = new Vector (50); while (enumeration.hasMoreNodes ()) vector.addElement (enumeration.nextNode ()); data = pickle (parser); parser = (Parser)unpickle (data); enumeration = parser.elements (); while (enumeration.hasMoreNodes ()) assertEquals ( "Nodes before and after serialization differ", ((Node)vector.remove (0)).toHtml (), enumeration.nextNode ().toHtml ()); } public void testSerializableScanners () throws IOException, ClassNotFoundException, ParserException { Parser parser; Vector vector; NodeIterator enumeration; byte[] data; parser = new Parser ("http://htmlparser.sourceforge.net/test/example.html"); enumeration = parser.elements (); vector = new Vector (50); while (enumeration.hasMoreNodes ()) vector.addElement (enumeration.nextNode ()); data = pickle (parser); parser = (Parser)unpickle (data); enumeration = parser.elements (); while (enumeration.hasMoreNodes ()) assertEquals ( "Nodes before and after serialization differ", ((Node)vector.remove (0)).toHtml (), enumeration.nextNode ().toHtml ()); } public void testSerializableStringBean () throws IOException, ClassNotFoundException, ParserException { StringBean sb; String text; byte[] data; sb = new StringBean (); sb.setURL ("http://htmlparser.sourceforge.net/test/example.html"); text = sb.getStrings (); data = pickle (sb); sb = (StringBean)unpickle (data); assertEquals ( "Strings before and after serialization differ", text, sb.getStrings ()); } public void testSerializableLinkBean () throws IOException, ClassNotFoundException, ParserException { LinkBean lb; URL[] links; byte[] data; URL[] links2; lb = new LinkBean (); lb.setURL ("http://htmlparser.sourceforge.net/test/example.html"); links = lb.getLinks (); data = pickle (lb);
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -