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