// HTMLParser Library $Name: v1_6 $ - A java-based parser for HTML // http://sourceforge.org/projects/htmlparser // Copyright (C) 2004 Somik Raha // // Revision Control Information // // $Source: /cvsroot/htmlparser/htmlparser/src/org/htmlparser/tests/tagTests/AppletTagTest.java,v $ // $Author: derrickoswald $ // $Date: 2004/01/02 16:24:57 $ // $Revision: 1.37 $ // // 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.tagTests; import java.util.Enumeration; import java.util.Hashtable; import org.htmlparser.tags.AppletTag; import org.htmlparser.tests.ParserTestCase; import org.htmlparser.util.ParserException; public class AppletTagTest extends ParserTestCase { static { System.setProperty ("org.htmlparser.tests.tagTests.AppletTagTest", "AppletTagTest"); } public AppletTagTest(String name) { super(name); } public void testToHTML() throws ParserException { String [][]paramsData = {{"Param1","Value1"},{"Name","Somik"},{"Age","23"}}; Hashtable paramsMap = new Hashtable(); String testHTML = new String("<APPLET CODE=Myclass.class ARCHIVE=test.jar CODEBASE=www.kizna.com>\n"); for (int i = 0;i<paramsData.length;i++) { testHTML+="<PARAM NAME=\""+paramsData[i][0]+"\" VALUE=\""+paramsData[i][1]+"\">\n"; paramsMap.put(paramsData[i][0],paramsData[i][1]); } testHTML+= "</APPLET>\n"+ "</HTML>"; createParser(testHTML); parseAndAssertNodeCount(3); assertTrue("Node should be an applet tag",node[0] instanceof AppletTag); // Check the data in the applet tag AppletTag appletTag = (AppletTag)node[0]; String expectedRawString = "<APPLET CODE=Myclass.class ARCHIVE=test.jar CODEBASE=www.kizna.com>\n"+ "<PARAM NAME=\"Param1\" VALUE=\"Value1\">\n"+ "<PARAM NAME=\"Name\" VALUE=\"Somik\">\n"+ "<PARAM NAME=\"Age\" VALUE=\"23\">\n"+ "</APPLET>"; assertStringEquals("toHTML()",expectedRawString,appletTag.toHtml()); } public void testScan() throws ParserException { String [][]paramsData = {{"Param1","Value1"},{"Name","Somik"},{"Age","23"}}; Hashtable paramsMap = new Hashtable(); String testHTML = new String("<APPLET CODE=Myclass.class ARCHIVE=test.jar CODEBASE=www.kizna.com>\n"); for (int i = 0;i<paramsData.length;i++) { testHTML+="<PARAM NAME=\""+paramsData[i][0]+"\" VALUE=\""+paramsData[i][1]+"\">\n"; paramsMap.put(paramsData[i][0],paramsData[i][1]); } testHTML+= "</APPLET></HTML>"; createParser(testHTML); parseAndAssertNodeCount(2); assertTrue("Node should be an applet tag",node[0] instanceof AppletTag); // Check the data in the applet tag AppletTag appletTag = (AppletTag)node[0]; assertEquals("Class Name","Myclass.class",appletTag.getAppletClass()); assertEquals("Archive","test.jar",appletTag.getArchive()); assertEquals("Codebase","www.kizna.com",appletTag.getCodeBase()); // Check the params data int cnt = 0; for (Enumeration e = appletTag.getParameterNames();e.hasMoreElements();) { String paramName = (String)e.nextElement(); String paramValue = appletTag.getParameter(paramName); assertEquals("Param "+cnt+" value",paramsMap.get(paramName),paramValue); cnt++; } assertEquals("Number of params",new Integer(paramsData.length),new Integer(cnt)); } public void testChangeCodebase() throws ParserException { String [][]paramsData = {{"Param1","Value1"},{"Name","Somik"},{"Age","23"}}; Hashtable paramsMap = new Hashtable(); String testHTML = new String("<APPLET CODE=Myclass.class ARCHIVE=test.jar CODEBASE=www.kizna.com>\n"); for (int i = 0;i<paramsData.length;i++) { testHTML+="<PARAM NAME=\""+paramsData[i][0]+"\" VALUE=\""+paramsData[i][1]+"\">\n"; paramsMap.put(paramsData[i][0],paramsData[i][1]); } testHTML+= "</APPLET>\n"+ "</HTML>"; createParser(testHTML); parseAndAssertNodeCount(3); assertTrue("Node should be an applet tag",node[0] instanceof AppletTag); AppletTag appletTag = (AppletTag)node[0]; appletTag.setCodeBase ("htmlparser.sourceforge.net"); // Check the data in the applet tag String expectedRawString = "<APPLET CODE=Myclass.class ARCHIVE=test.jar CODEBASE=htmlparser.sourceforge.net>\n"+ "<PARAM NAME=\"Param1\" VALUE=\"Value1\">\n"+ "<PARAM NAME=\"Name\" VALUE=\"Somik\">\n"+ "<PARAM NAME=\"Age\" VALUE=\"23\">\n"+ "</APPLET>"; assertStringEquals("toHTML()",expectedRawString,appletTag.toHtml()); } public void testChangeArchive() throws ParserException { String [][]paramsData = {{"Param1","Value1"},{"Name","Somik"},{"Age","23"}}; Hashtable paramsMap = new Hashtable(); String testHTML = "<APPLET CODE=Myclass.class ARCHIVE=test.jar CODEBASE=www.kizna.com>\n"; for (int i = 0;i<paramsData.length;i++) { testHTML+="<PARAM NAME=\""+paramsData[i][0]+"\" VALUE=\""+paramsData[i][1]+"\">\n"; paramsMap.put(paramsData[i][0],paramsData[i][1]); } testHTML += "</APPLET>"; createParser(testHTML + "\n</HTML>"); parseAndAssertNodeCount(3); assertTrue("Node should be an applet tag",node[0] instanceof AppletTag); AppletTag appletTag = (AppletTag)node[0]; appletTag.setArchive ("htmlparser.jar"); // Check the data in the applet tag testHTML = testHTML.substring (0, testHTML.indexOf ("test.jar")) + "htmlparser.jar" + testHTML.substring (testHTML.indexOf ("test.jar") + 8); assertStringEquals("toHTML()",testHTML,appletTag.toHtml()); } public void testChangeAppletClass() throws ParserException { String [][]paramsData = {{"Param1","Value1"},{"Name","Somik"},{"Age","23"}}; Hashtable paramsMap = new Hashtable(); String testHTML = new String("<APPLET CODE=Myclass.class ARCHIVE=test.jar CODEBASE=www.kizna.com>\n"); for (int i = 0;i<paramsData.length;i++) { testHTML+="<PARAM NAME=\""+paramsData[i][0]+"\" VALUE=\""+paramsData[i][1]+"\">\n"; paramsMap.put(paramsData[i][0],paramsData[i][1]); } testHTML+= "</APPLET>"; createParser(testHTML + "\n</HTML>"); parseAndAssertNodeCount(3); assertTrue("Node should be an applet tag",node[0] instanceof AppletTag); AppletTag appletTag = (AppletTag)node[0]; appletTag.setAppletClass ("MyOtherClass.class"); // Check the data in the applet tag testHTML = testHTML.substring (0, testHTML.indexOf ("Myclass.class")) + "MyOtherClass.class" + testHTML.substring (testHTML.indexOf ("Myclass.class") + 13); assertStringEquals("toHTML()",testHTML,appletTag.toHtml()); } public void testChangeAppletParams() throws ParserException { String [][]paramsData = {{"Param1","Value1"},{"Name","Somik"},{"Age","23"}}; Hashtable paramsMap = new Hashtable(); String testHTML = new String("<APPLET CODE=Myclass.class ARCHIVE=test.jar CODEBASE=www.kizna.com>\n"); for (int i = 0;i<paramsData.length;i++) { testHTML+="<PARAM NAME=\""+paramsData[i][0]+"\" VALUE=\""+paramsData[i][1]+"\">\n"; paramsMap.put(paramsData[i][0],paramsData[i][1]); } testHTML+= "</APPLET>\n"+ "</HTML>"; createParser(testHTML); parseAndAssertNodeCount(3); assertTrue("Node should be an applet tag",node[0] instanceof AppletTag); AppletTag appletTag = (AppletTag)node[0]; paramsMap = new Hashtable(); String [][] newparamsData = {{"First","One"},{"Second","Two"},{"Third","3"}}; for (int i = 0;i<paramsData.length;i++) { paramsMap.put(newparamsData[i][0],newparamsData[i][1]); } appletTag.setAppletParams (paramsMap); // Check the data in the applet tag String expectedRawString = "<APPLET CODE=Myclass.class ARCHIVE=test.jar CODEBASE=www.kizna.com>\n"+ "<PARAM VALUE=\"Two\" NAME=\"Second\">"+ // note these are out of orer because of the hashtable "<PARAM VALUE=\"One\" NAME=\"First\">"+ "<PARAM VALUE=\"3\" NAME=\"Third\">"+ "</APPLET>"; String actual = appletTag.toHtml(); assertStringEquals("toHTML()",expectedRawString,actual); } }