You are viewing a plain text version of this content. The canonical link for it is here.
Posted to cactus-dev@jakarta.apache.org by pt...@apache.org on 2008/03/03 12:36:39 UTC
svn commit: r633042 - in /jakarta/cactus/trunk: ./
framework/framework-13-14/src/main/java/org/apache/cactus/internal/client/
samples/ samples/servlet/
samples/servlet/src/main/java/org/apache/cactus/sample/servlet/unit/
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: cactus-dev-unsubscribe@jakarta.apache.org
For additional commands, e-mail: cactus-dev-help@jakarta.apache.org