You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@tomcat.apache.org by cr...@apache.org on 2001/06/25 17:40:57 UTC
cvs commit: jakarta-tomcat-4.0/tester/web Session07a.jsp Session07b.jsp
craigmcc 01/06/25 08:40:56
Modified: tester/src/bin tester.xml
tester/src/tester/org/apache/tester TestClient.java
Added: tester/web Session07a.jsp Session07b.jsp
Log:
Add unit tests for maintaining a session across redirects.
Revision Changes Path
1.52 +17 -0 jakarta-tomcat-4.0/tester/src/bin/tester.xml
Index: tester.xml
===================================================================
RCS file: /home/cvs/jakarta-tomcat-4.0/tester/src/bin/tester.xml,v
retrieving revision 1.51
retrieving revision 1.52
diff -u -r1.51 -r1.52
--- tester.xml 2001/06/23 19:27:24 1.51
+++ tester.xml 2001/06/25 15:40:47 1.52
@@ -1144,6 +1144,23 @@
request="${context.path}/WrappedSession06" debug="${debug}"
outContent="Session06 PASSED"/>
+ <!-- ========== Pass Attributes Across Redirect ======================= -->
+
+ <!-- Session maintained across redirect -->
+ <!-- NOTE: The following two-step pattern is required because
+ HttpURLConnection does not forward the session cookie it
+ receives on to the redirected location (the way that a
+ browser will do so) -->
+
+ <tester host="${host}" port="${port}" protocol="${protocol}"
+ request="${context.path}/Session07a.jsp" debug="${debug}"
+ status="302"/>
+
+ <tester host="${host}" port="${port}" protocol="${protocol}"
+ request="${context.path}/Session07b.jsp" debug="${debug}"
+ joinSession="true"
+ outContent="Session07 PASSED"/>
+
</target>
1.8 +25 -3 jakarta-tomcat-4.0/tester/src/tester/org/apache/tester/TestClient.java
Index: TestClient.java
===================================================================
RCS file: /home/cvs/jakarta-tomcat-4.0/tester/src/tester/org/apache/tester/TestClient.java,v
retrieving revision 1.7
retrieving revision 1.8
diff -u -r1.7 -r1.8
--- TestClient.java 2001/04/17 04:22:25 1.7
+++ TestClient.java 2001/06/25 15:40:52 1.8
@@ -108,16 +108,19 @@
* are expected in the response (order independent).</li>
* <li><strong>port</strong> - The port number to which this request will be
* sent. Defaults to <code>8080</code> if not specified.</li>
+ * <li><strong>redirect</strong> - If set to true, follow any redirect that
+ * is returned by the server. (Only works when using HttpURLConnection).
+ * </li>
* <li><strong>request</strong> - The request URI to be transmitted for this
* request. This value should start with a slash character ("/"), and
* be the server-relative URI of the requested resource.</li>
* <li><strong>status</strong> - The HTTP status code that is expected in the
* response from the server. Defaults to <code>200</code> if not
- * specified.</li>
+ * specified. Set to zero to disable checking the return value.</li>
* </ul>
*
* @author Craig R. McClanahan
- * @version $Revision: 1.7 $ $Date: 2001/04/17 04:22:25 $
+ * @version $Revision: 1.8 $ $Date: 2001/06/25 15:40:52 $
*/
public class TestClient extends Task {
@@ -326,6 +329,20 @@
/**
+ * Should we follow redirects returned by the server?
+ */
+ protected boolean redirect = false;
+
+ public boolean getRedirect() {
+ return (this.redirect);
+ }
+
+ public void setRedirect(boolean redirect) {
+ this.redirect = redirect;
+ }
+
+
+ /**
* The request URI to be sent to the server. This value is required.
*/
protected String request = null;
@@ -435,7 +452,10 @@
sessionId);
}
- conn.setFollowRedirects(false);
+ if (this.redirect && (debug >= 1))
+ System.out.println("FLAG: setInstanceFollowRedirects(" +
+ this.redirect + ")");
+ conn.setInstanceFollowRedirects(this.redirect);
conn.setRequestMethod(method);
if (inHeaders != null) {
String headers = inHeaders;
@@ -1053,6 +1073,8 @@
*/
protected String validateStatus(int status) {
+ if (this.status == 0)
+ return (null);
if (this.status == status)
return (null);
else
1.1 jakarta-tomcat-4.0/tester/web/Session07a.jsp
Index: Session07a.jsp
===================================================================
<%@ page contentType="text/plain" %><jsp:useBean id="simpleBean"
scope="session" class="org.apache.tester.SessionBean"/><%
simpleBean.setStringProperty("From Session07a");
response.sendRedirect("Session07b.jsp");
%>
1.1 jakarta-tomcat-4.0/tester/web/Session07b.jsp
Index: Session07b.jsp
===================================================================
<%@ page contentType="text/plain" %><jsp:useBean id="simpleBean"
scope="session" class="org.apache.tester.SessionBean"/><%
if ("From Session07a".equals(simpleBean.getStringProperty())) {
out.println("Session07 PASSED");
} else {
out.println("Session07 FAILED - Property = '" +
simpleBean.getStringProperty() + "'");
}
%>