package net.sourceforge.javautil.developer.web.unit.html;
import java.net.URL;
import org.apache.commons.httpclient.protocol.Protocol;
import com.gargoylesoftware.htmlunit.Page;
import com.gargoylesoftware.htmlunit.WebClient;
import net.sourceforge.javautil.classloader.boot.EntryPoint;
import net.sourceforge.javautil.classloader.boot.EntryPointConfiguration;
import net.sourceforge.javautil.classloader.boot.EntryPointConsole;
import net.sourceforge.javautil.classloader.boot.EntryPointSettings;
import net.sourceforge.javautil.classloader.boot.EntryPointTypeAbstract;
import net.sourceforge.javautil.common.URLStreamHandlerFactoryComposite;
import net.sourceforge.javautil.common.coersion.CoersionContext;
import net.sourceforge.javautil.common.io.VirtualArtifact;
import net.sourceforge.javautil.common.io.impl.SystemDirectory;
import net.sourceforge.javautil.developer.web.unit.mockbrowser.MockBrowser;
import net.sourceforge.javautil.developer.web.unit.mockserver.MockServer;
import net.sourceforge.javautil.developer.web.unit.mockserver.MockServerHostURLStreamHandler;
import net.sourceforge.javautil.groovy.cli.GroovyCLI;
import net.sourceforge.javautil.groovy.cli.GroovyCLICommandSet;
import net.sourceforge.javautil.groovy.cli.GroovyRunCommand;
import net.sourceforge.javautil.groovy.dsl.GroovyDSLContext;
import net.sourceforge.javautil.groovy.dsl.GroovyMetaClassCreationHandle;
import net.sourceforge.javautil.groovy.dsl.impl.standard.GroovyDSLManagerStandard;
import net.sourceforge.javautil.web.server.WebServerHost;
import net.sourceforge.javautil.web.server.application.impl.WebApplicationStandard;
import net.sourceforge.javautil.web.server.impl.WebServerConnectorHTTP;
import net.sourceforge.javautil.web.server.impl.tomcat.TomcatHost;
import net.sourceforge.javautil.web.server.impl.tomcat.TomcatWebServer;
/**
* This will boot strap the unit test.
*
* @author elponderador
* @author $Author$
* @version $Id$
*/
public class HtmlUnitEntryPoint extends EntryPointTypeAbstract {
public HtmlUnitEntryPoint(EntryPoint entryPoint, EntryPointSettings settings) {
super(entryPoint, settings);
}
public void main(EntryPointConfiguration config) throws Throwable {
TomcatWebServer server = new TomcatWebServer();
server.initialize();
server.addConnector(new WebServerConnectorHTTP("default", "localhost", 80, false));
WebServerHost host = server.createHost("default", "/", true);
server.start();
GroovyMetaClassCreationHandle.bootstrap();
CoersionContext.detectCoersions();
GroovyDSLContext.setGlobalManager(new GroovyDSLManagerStandard().initialize());
GroovyCLI cli = new GroovyCLI();
WebClient client = new WebClient();
client.setThrowExceptionOnFailingStatusCode(false);
client.setThrowExceptionOnScriptError(false);
cli.getDomain().setVariable("server", server);
cli.getDomain().setVariable("host", host);
cli.getDomain().setVariable("client", client);
cli.getImports().add(VirtualArtifact.class.getPackage().getName());
cli.getImports().add(SystemDirectory.class.getPackage().getName());
cli.getImports().add(WebApplicationStandard.class.getPackage().getName());
cli.getSet().add(new GroovyRunCommand(cli.getCompiler(), "run"));
cli.initialize();
cli.run();
}
}