import java.applet.Applet; import java.applet.AppletContext; import java.util.Enumeration; import org.netbeans.jemmy.ComponentChooser; import org.netbeans.jemmy.JemmyException; import org.netbeans.jemmy.Test; import org.netbeans.jemmy.Waitable; import org.netbeans.jemmy.Waiter; import org.netbeans.jemmy.operators.ButtonOperator; import org.netbeans.jemmy.operators.ContainerOperator; import org.netbeans.jemmy.operators.LabelOperator; import org.netbeans.jemmy.operators.TextFieldOperator; //it's just another applet public class ContextTestExecutor extends Applet { //applet class name to look for private String appletclass = "MyApplet"; public ContextTestExecutor() { super(); } //starts test public void start() { super.start(); new MyTest(waitApplet()).startTest(); } //waits for tested applet to be loaded private Applet waitApplet() { //we have to wait here, cause this applet is loading first Waiter waiter = new Waiter(new Waitable() { public Object actionProduced(Object param) { //get all the applets from AppletContext Enumeration applets = getAppletContext().getApplets(); while(applets.hasMoreElements()) { Applet applet = (Applet)applets.nextElement(); if(applet != null && applet.getClass().getName().equals(appletclass)) { //found return(applet); } } return(null); } public String getDescription() { return("Wait for " + appletclass + " applet to be loaded"); } }); //lets wait for 10 seconds waiter.getTimeouts().setTimeout("Waiter.WaitingTime", 10000); try { return((Applet)waiter.waitAction(null)); } catch(Exception e) { //something wrong's happened even before test execution, //so have to care about exception. System.err.println("Applet has not be loaded!"); e.printStackTrace(); return(null); } } }