Author: ptahchiev Date: Mon Mar 3 03:36:26 2008 New Revision: 633042 URL: http://svn.apache.org/viewvc?rev=633042&view=rev Log: Added the HtmlUnit integration
Modified: jakarta/cactus/trunk/.classpath jakarta/cactus/trunk/framework/framework-13-14/src/main/java/org/apache/cactus/internal/client/WebResponseObjectFactory.java jakarta/cactus/trunk/pom.xml jakarta/cactus/trunk/samples/ivy.xml jakarta/cactus/trunk/samples/servlet/build.xml jakarta/cactus/trunk/samples/servlet/pom.xml jakarta/cactus/trunk/samples/servlet/src/main/java/org/apache/cactus/sample/servlet/unit/TestShareAll.java Modified: jakarta/cactus/trunk/.classpath URL: http://svn.apache.org/viewvc/jakarta/cactus/trunk/.classpath?rev=633042&r1=633041&r2=633042&view=diff ============================================================================== --- jakarta/cactus/trunk/.classpath (original) +++ jakarta/cactus/trunk/.classpath Mon Mar 3 03:36:26 2008 @@ -237,5 +237,7 @@ <classpathentry path="C:/eclipse/plugins/org.apache.cactus.eclipse.runner-1.8.0/lib/client/integration-ant-1.8.0-SNAPSHOT.jar" kind="lib"/> <classpathentry path="C:/eclipse/plugins/org.apache.cactus.eclipse.runner-1.8.0/lib/client/nekohtml-0.9.1.jar" kind="lib"/> <classpathentry path="C:/eclipse/plugins/org.apache.cactus.eclipse.runner-1.8.0/lib/client/servlet-api-2.5.jar" kind="lib"/> + <classpathentry path="samples/servlet/src/main/java" kind="src"/> + <classpathentry path="M2_REPO/htmlunit/htmlunit/1.10/htmlunit-1.10.jar" kind="var"/> <classpathentry path="bin" kind="output"/> </classpath> Modified: jakarta/cactus/trunk/framework/framework-13-14/src/main/java/org/apache/cactus/internal/client/WebResponseObjectFactory.java URL: http://svn.apache.org/viewvc/jakarta/cactus/trunk/framework/framework-13-14/src/main/java/org/apache/cactus/internal/client/WebResponseObjectFactory.java?rev=633042&r1=633041&r2=633042&view=diff ============================================================================== --- jakarta/cactus/trunk/framework/framework-13-14/src/main/java/org/apache/cactus/internal/client/WebResponseObjectFactory.java (original) +++ jakarta/cactus/trunk/framework/framework-13-14/src/main/java/org/apache/cactus/internal/client/WebResponseObjectFactory.java Mon Mar 3 03:36:26 2008 @@ -19,9 +19,13 @@ */ package org.apache.cactus.internal.client; +import java.io.ByteArrayInputStream; +import java.io.InputStream; +import java.lang.reflect.Constructor; import java.lang.reflect.Method; import java.net.HttpURLConnection; +import java.net.URL; import java.net.URLConnection; import org.apache.cactus.Request; @@ -67,6 +71,12 @@ { responseObject = createHttpUnitWebResponse(this.connection); + // Is it a Html Unit WebResponse ? + } + else if (theClassName.equals("com.gargoylesoftware.htmlunit.WebResponse")) + { + responseObject = createHtmlUnitWebResponse(this.connection); + // Is it a Cactus WebResponse ? } else if (theClassName.equals("org.apache.cactus.WebResponse")) @@ -116,6 +126,47 @@ new Class[] {URLConnection.class}); webResponse = method.invoke(null, new Object[] {theConnection}); + } + catch (Exception e) + { + throw new ClientException("Error calling " + + "[public static com.meterware.httpunit.WebResponse " + + "com.meterware.httpunit.WebResponse.newResponse(" + + "java.net.URLConnection) throws java.io.IOException]", e); + } + + return webResponse; + } + + /** + * Create a HtmlUnit <code>WebResponse</code> object by reflection (so + * that we don't need the HtmlUnit jar for users who are not using + * the HttpUnit endXXX() signature). + * + * @param theConnection the HTTP connection that was used when connecting + * to the server side and which now contains the returned HTTP + * response that we will pass to HttpUnit so that it can construct + * a <code>com.gargoylesoftware.htmlunit.WebResponse</code> object. + * @return a HtmlUnit <code>WebResponse</code> object + * @exception ClientException if it failes to create a HttpClient + * WebResponse object for any reason + */ + private Object createHtmlUnitWebResponse(HttpURLConnection theConnection) + throws ClientException + { + Object webResponse; + + try + { + Class responseClass = + Class.forName("com.gargoylesoftware.htmlunit.StringWebResponse"); + Constructor method = responseClass.getConstructor( + new Class[] {String.class, URL.class}); + + InputStream input = theConnection.getInputStream(); + byte[] buffer = new byte[input.available()]; + input.read(buffer); + webResponse = method.newInstance(new Object[] {new String(buffer), theConnection.getURL()}); } catch (Exception e) { Modified: jakarta/cactus/trunk/pom.xml URL: http://svn.apache.org/viewvc/jakarta/cactus/trunk/pom.xml?rev=633042&r1=633041&r2=633042&view=diff ============================================================================== --- jakarta/cactus/trunk/pom.xml (original) +++ jakarta/cactus/trunk/pom.xml Mon Mar 3 03:36:26 2008 @@ -71,6 +71,11 @@ <artifactId>nekohtml</artifactId> <version>0.9.1</version> </dependency> + <dependency> + <groupId>htmlunit</groupId> + <artifactId>htmlunit</artifactId> + <version>1.10</version> + </dependency> </dependencies> Modified: jakarta/cactus/trunk/samples/ivy.xml URL: http://svn.apache.org/viewvc/jakarta/cactus/trunk/samples/ivy.xml?rev=633042&r1=633041&r2=633042&view=diff ============================================================================== --- jakarta/cactus/trunk/samples/ivy.xml (original) +++ jakarta/cactus/trunk/samples/ivy.xml Mon Mar 3 03:36:26 2008 @@ -6,11 +6,15 @@ <dependency org="org.apache.cactus" name="cactus.integration.ant" rev="1.8.0-SNAPSHOT"/> <dependency org="org.apache.cactus" name="cactus.integration.shared.api" rev="1.8.0-SNAPSHOT"/> - <dependency org="commons-httpclient" name="commons-httpclient" rev="2.0.2"/> + <dependency org="commons-httpclient" name="commons-httpclient" rev="3.1"/> <dependency org="commons-logging" name="commons-logging" rev="1.0.4"/> <dependency org="junit" name="junit" rev="3.8.2"/> <dependency org="httpunit" name="httpunit" rev="1.6"/> + <dependency org="htmlunit" name="htmlunit" rev="1.10"/> + <dependency org="commons-io" name="commons-io" rev="1.4"/> + <dependency org="commons-lang" name="commons-lang" rev="2.3"/> + <dependency org="commons-codec" name="commons-codec" rev="1.3"/> <dependency org="aspectj" name="aspectjrt" rev="1.5.2a"/> <dependency org="org.codehaus.cargo" name="cargo-core-uberjar" rev="0.9"/> <dependency org="org.codehaus.cargo" name="cargo-ant" rev="0.9"/> Modified: jakarta/cactus/trunk/samples/servlet/build.xml URL: http://svn.apache.org/viewvc/jakarta/cactus/trunk/samples/servlet/build.xml?rev=633042&r1=633041&r2=633042&view=diff ============================================================================== --- jakarta/cactus/trunk/samples/servlet/build.xml (original) +++ jakarta/cactus/trunk/samples/servlet/build.xml Mon Mar 3 03:36:26 2008 @@ -152,6 +152,12 @@ <webinf dir="${basedir}/src/main/resources/conf/jboss3x"> <include name="jboss-web.xml"/> </webinf> + <lib dir="${ivy.lib.dir}"> + <include name="htmlunit-1.10.jar"/> + <include name="commons-io-1.4.jar"/> + <include name="commons-lang-2.3.jar"/> + <include name="commons-codec-1.3.jar"/> + </lib> </cactifywar> @@ -170,6 +176,7 @@ <classpath> <path refid="cactus.classpath"/> <pathelement location="${build.dir}"/> + <pathelement location="${ivy.lib.dir}/htmlunit-1.10.jar"/> </classpath> <containerset> <cargo containerId="${tomcat.container.id}" output="${logs.dir}/output.log" log="${logs.dir}/cargo.log"> Modified: jakarta/cactus/trunk/samples/servlet/pom.xml URL: http://svn.apache.org/viewvc/jakarta/cactus/trunk/samples/servlet/pom.xml?rev=633042&r1=633041&r2=633042&view=diff ============================================================================== --- jakarta/cactus/trunk/samples/servlet/pom.xml (original) +++ jakarta/cactus/trunk/samples/servlet/pom.xml Mon Mar 3 03:36:26 2008 @@ -69,6 +69,27 @@ <artifactId>ivy</artifactId> <version>2.0.0-beta1</version> </dependency> + <!-- Required by HtmlUnit --> + <dependency> + <groupId>commons-io</groupId> + <artifactId>commons-io</artifactId> + <version>1.4</version> + </dependency> + <dependency> + <groupId>commons-lang</groupId> + <artifactId>commons-lang</artifactId> + <version>2.3</version> + </dependency> + <dependency> + <groupId>commons-httpclient</groupId> + <artifactId>commons-httpclient</artifactId> + <version>3.1</version> + </dependency> + <dependency> + <groupId>commons-codec</groupId> + <artifactId>commons-codec</artifactId> + <version>1.3</version> + </dependency> </dependencies> <build> <plugins> Modified: jakarta/cactus/trunk/samples/servlet/src/main/java/org/apache/cactus/sample/servlet/unit/TestShareAll.java URL: http://svn.apache.org/viewvc/jakarta/cactus/trunk/samples/servlet/src/main/java/org/apache/cactus/sample/servlet/unit/TestShareAll.java?rev=633042&r1=633041&r2=633042&view=diff ============================================================================== --- jakarta/cactus/trunk/samples/servlet/src/main/java/org/apache/cactus/sample/servlet/unit/TestShareAll.java (original) +++ jakarta/cactus/trunk/samples/servlet/src/main/java/org/apache/cactus/sample/servlet/unit/TestShareAll.java Mon Mar 3 03:36:26 2008 @@ -53,9 +53,10 @@ suite.addTestSuite(TestTearDownException.class); suite.addTestSuite(TestBasicAuthentication.class); suite.addTestSuite(TestHttpUnitIntegration.class); + suite.addTestSuite(TestHtmlUnitIntegration.class); suite.addTestSuite(TestServletRedirectorOverride.class); suite.addTestSuite(TestHttpParameters.class); - suite.addTestSuite(TestHttpSession.class); + suite.addTest(TestHttpSession.suite()); suite.addTestSuite(TestHttpResponse.class); suite.addTestSuite(TestCookie.class); suite.addTestSuite(TestRequestDispatcher.class); --------------------------------------------------------------------- To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]