You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@beehive.apache.org by ri...@apache.org on 2004/09/14 09:32:13 UTC
svn commit: rev 46009 - in incubator/beehive/trunk/netui: src/compiler/org/apache/beehive/netui/compiler/grammar src/pageflow/org/apache/beehive/netui/pageflow src/pageflow/org/apache/beehive/netui/pageflow/internal src/util/schema test/webapps/drt/coreWeb/miniTests/backButton test/webapps/drt/coreWeb/miniTests/backButton/nestedOne test/webapps/drt/coreWeb/miniTests/backButton/nestedTwo test/webapps/drt/testRecorder/config test/webapps/drt/testRecorder/tests
Author: rich
Date: Tue Sep 14 00:32:12 2004
New Revision: 46009
Added:
incubator/beehive/trunk/netui/test/webapps/drt/coreWeb/miniTests/backButton/
incubator/beehive/trunk/netui/test/webapps/drt/coreWeb/miniTests/backButton/BackButtonController.jpf (contents, props changed)
incubator/beehive/trunk/netui/test/webapps/drt/coreWeb/miniTests/backButton/index.jsp (contents, props changed)
incubator/beehive/trunk/netui/test/webapps/drt/coreWeb/miniTests/backButton/nestedOne/
incubator/beehive/trunk/netui/test/webapps/drt/coreWeb/miniTests/backButton/nestedOne/NestedOneController.jpf (contents, props changed)
incubator/beehive/trunk/netui/test/webapps/drt/coreWeb/miniTests/backButton/nestedOne/index.jsp (contents, props changed)
incubator/beehive/trunk/netui/test/webapps/drt/coreWeb/miniTests/backButton/nestedTwo/
incubator/beehive/trunk/netui/test/webapps/drt/coreWeb/miniTests/backButton/nestedTwo/NestedTwoController.jpf (contents, props changed)
incubator/beehive/trunk/netui/test/webapps/drt/coreWeb/miniTests/backButton/nestedTwo/index.jsp (contents, props changed)
incubator/beehive/trunk/netui/test/webapps/drt/testRecorder/tests/BackButtonToNested.xml (contents, props changed)
incubator/beehive/trunk/netui/test/webapps/drt/testRecorder/tests/BackButtonToNonNested.xml (contents, props changed)
Modified:
incubator/beehive/trunk/netui/src/compiler/org/apache/beehive/netui/compiler/grammar/WebappPathType.java
incubator/beehive/trunk/netui/src/pageflow/org/apache/beehive/netui/pageflow/FlowController.java
incubator/beehive/trunk/netui/src/pageflow/org/apache/beehive/netui/pageflow/FlowControllerFactory.java
incubator/beehive/trunk/netui/src/pageflow/org/apache/beehive/netui/pageflow/PageFlowController.java
incubator/beehive/trunk/netui/src/pageflow/org/apache/beehive/netui/pageflow/PageFlowStack.java
incubator/beehive/trunk/netui/src/pageflow/org/apache/beehive/netui/pageflow/internal/InternalUtils.java
incubator/beehive/trunk/netui/src/util/schema/netui-config.xsd
incubator/beehive/trunk/netui/test/webapps/drt/testRecorder/config/testRecorder-tests.xml
Log:
- Fixed a browser back button issue related to nesting. The problem occurs with this sequence of requests:
1) request an action on nested page flow A
2) request nested page flow B (or an action on nested page flow B)
3) press back button, and re-execute the action on A.
What happened previously was that a new instance of page flow A was created, and the current instance of B was pushed onto the stack. This is not intuitive, given the use of the back button (and is dangerous in that the nesting stack can grow unintentionally). Now, unless a <pageflow-options><enable-renesting>true</enable-renesting></pageflow-options> configuration is present in /WEB-INF/netui-config.xml, the current instance of B will be discarded, and the original instance of A will be restored.
- Fixed an NPE that occurred when forwarding to a nested page flow using a relative path in a @Jpf.SimpleAction, e.g.,
@Jpf.SimpleAction(name="foo", path="nested/NestedController.jpf")
DRT/BVT: netui (WinXP)
BB: self (linux)
Modified: incubator/beehive/trunk/netui/src/compiler/org/apache/beehive/netui/compiler/grammar/WebappPathType.java
==============================================================================
--- incubator/beehive/trunk/netui/src/compiler/org/apache/beehive/netui/compiler/grammar/WebappPathType.java (original)
+++ incubator/beehive/trunk/netui/src/compiler/org/apache/beehive/netui/compiler/grammar/WebappPathType.java Tue Sep 14 00:32:12 2004
@@ -139,7 +139,7 @@
if ( stringValue.endsWith( JPF_FILE_EXTENSION_DOT ) )
{
String className = stringValue.substring( 0, stringValue.length() - JPF_FILE_EXTENSION_DOT.length() );
- String pkg = classMember.getDeclaringType().getPackage().getQualifiedName();
+ String pkg = CompilerUtils.getOutermostClass( classMember ).getPackage().getQualifiedName();
className = ( pkg.length() > 0 ? pkg + '.' : "" ) + className.replace( '/', '.' );
TypeDeclaration type = getEnv().getTypeDeclaration( className );
fileToCheck = type != null ? CompilerUtils.getOriginalFile( type ) : null;
Modified: incubator/beehive/trunk/netui/src/pageflow/org/apache/beehive/netui/pageflow/FlowController.java
==============================================================================
--- incubator/beehive/trunk/netui/src/pageflow/org/apache/beehive/netui/pageflow/FlowController.java (original)
+++ incubator/beehive/trunk/netui/src/pageflow/org/apache/beehive/netui/pageflow/FlowController.java Tue Sep 14 00:32:12 2004
@@ -538,6 +538,8 @@
synchronized void create( HttpServletRequest request, HttpServletResponse response, ServletContext servletContext )
{
+ reinitialize( request, response, servletContext );
+
PerRequestState prevState = setPerRequestState( new PerRequestState( request, response, null ) );
try
Modified: incubator/beehive/trunk/netui/src/pageflow/org/apache/beehive/netui/pageflow/FlowControllerFactory.java
==============================================================================
--- incubator/beehive/trunk/netui/src/pageflow/org/apache/beehive/netui/pageflow/FlowControllerFactory.java (original)
+++ incubator/beehive/trunk/netui/src/pageflow/org/apache/beehive/netui/pageflow/FlowControllerFactory.java Tue Sep 14 00:32:12 2004
@@ -18,6 +18,8 @@
package org.apache.beehive.netui.pageflow;
import org.apache.beehive.netui.util.logging.Logger;
+import org.apache.beehive.netui.util.config.ConfigUtil;
+import org.apache.beehive.netui.util.config.bean.PageflowOptions;
import org.apache.beehive.netui.pageflow.internal.InternalUtils;
import javax.servlet.http.HttpServletRequest;
@@ -204,8 +206,9 @@
String modulePath = PageFlowUtils.getModulePath( request );
ModuleConfig mc = InternalUtils.getModuleConfig( modulePath, servletContext );
boolean createdNew = false;
+ assert mc != null : "no module config for page flow class " + jpfClass.getName();
- if ( mc != null && InternalUtils.isSingleton( mc ) )
+ if ( InternalUtils.isSingleton( mc ) )
{
retVal = InternalUtils.getSingletonPageFlow( modulePath, request, false );
@@ -218,6 +221,42 @@
}
}
+ //
+ // First, see if this is a nested page flow that's already on the stack. Unless "renesting" is explicitly
+ // enabled, we don't want to allow another instance of this page flow to be nested. This is a common
+ // browser back-button problem:
+ // 1) request nested page flow A
+ // 2) request nested page flow B
+ // 3) press back button, and execute an action on A.
+ //
+ // This logic does not deal with immediate self-nesting (A->A), which is taken care of in
+ // PageFlowController.forwardTo(). Nested page flows can only self-nest by forwarding to the .jpf URI, not
+ // indirectly by executing actions on themselves (think about it -- that would be a disaster).
+ //
+ boolean isNestable = InternalUtils.isNestable( mc );
+ PageFlowStack pfStack = PageFlowStack.get( request, false );
+
+ if ( isNestable && pfStack != null )
+ {
+ PageflowOptions options = ConfigUtil.getConfig().getPageflowOptions();
+
+ if ( options == null || ! Boolean.parseBoolean( options.getEnableRenesting() ) )
+ {
+ int lastIndexOfJpfClass = pfStack.lastIndexOf( request, jpfClass );
+
+ if ( lastIndexOfJpfClass != -1 )
+ {
+ retVal = pfStack.popUntil( request, lastIndexOfJpfClass );
+ retVal.persistInSession( request, response, servletContext );
+ return retVal;
+ }
+ }
+ }
+
+ //
+ // OK, if it's not an existing singleton page flow, and if this wasn't a nested page flow already on the
+ // stack, then create a new instance.
+ //
if ( retVal == null )
{
if ( _log.isDebugEnabled() )
@@ -233,7 +272,7 @@
// Store the previous PageFlowController on the nesting stack (if this one is nestable),
// or destroy the nesting stack.
//
- if ( retVal.isNestable( request, servletContext ) )
+ if ( isNestable )
{
//
// Call create() on the newly-created page flow.
@@ -248,7 +287,7 @@
_log.debug( "Pushing PageFlowController " + current + " onto the nesting stack" );
}
- PageFlowStack pfStack = PageFlowStack.get( request );
+ if ( pfStack == null ) pfStack = PageFlowStack.get( request, true );
pfStack.push( current, request );
}
@@ -259,8 +298,6 @@
//
// Going to a non-nested pageflow. Blow away the pageflow stack.
//
- PageFlowStack pfStack = PageFlowStack.get( request, false );
-
if ( pfStack != null )
{
if ( _log.isDebugEnabled() )
@@ -294,21 +331,21 @@
// Note that we make the call to persistInSession *before* create, so the previous flow's
// onDestroy() gets called before the new one's onCreate().
//
+ retVal.reinitialize( request, response, servletContext );
retVal.persistInSession( request, response, servletContext );
retVal.create( request, response, servletContext );
}
}
else
{
- retVal.persistInSession( request, response, servletContext );
-
//
- // We're actually using the newly-created page flow, so call create() on it.
+ // We're actually using the newly-created page flow, so call create() on it (*after* persisting
+ // in the session so the previous page flow's onDestroy() gets called before the new one's
+ // onCreate()).
//
- if ( createdNew )
- {
- retVal.create( request, response, servletContext );
- }
+ if ( createdNew ) retVal.reinitialize( request, response, servletContext );
+ retVal.persistInSession( request, response, servletContext );
+ if ( createdNew ) retVal.create( request, response, servletContext );
}
}
Modified: incubator/beehive/trunk/netui/src/pageflow/org/apache/beehive/netui/pageflow/PageFlowController.java
==============================================================================
--- incubator/beehive/trunk/netui/src/pageflow/org/apache/beehive/netui/pageflow/PageFlowController.java (original)
+++ incubator/beehive/trunk/netui/src/pageflow/org/apache/beehive/netui/pageflow/PageFlowController.java Tue Sep 14 00:32:12 2004
@@ -116,34 +116,11 @@
* flow with the intention of returning to the original one. Page flows are declared to be nested
* using the <code>@jpf:controller nested="true"</code> annotation.
*
- * @param request the current HttpServletRequest.
- * @param servletContext the current ServletContext.
- * @return <code>true</code> if this PageFlowController can be nested.
- */
- boolean isNestable( HttpServletRequest request, ServletContext servletContext )
- {
- ControllerConfig cc = getModuleConfig( servletContext, request ).getControllerConfig();
-
- if ( cc instanceof PageFlowControllerConfig )
- {
- return ( ( PageFlowControllerConfig ) cc ).isNestedPageFlow();
- }
- else
- {
- return false;
- }
- }
-
- /**
- * Tell whether this PageFlowController can be "nested", i.e., if it can be invoked from another page
- * flow with the intention of returning to the original one. Page flows are declared to be nested
- * using the <code>@jpf:controller nested="true"</code> annotation.
- *
* @return <code>true</code> if this PageFlowController can be nested.
*/
protected boolean isNestable()
{
- return isNestable( getRequest(), getServletContext() );
+ return InternalUtils.isNestable( getModuleConfig() );
}
/**
@@ -261,6 +238,7 @@
final synchronized void create( HttpServletRequest request, HttpServletResponse response,
ServletContext servletContext )
{
+ reinitialize( request, response, servletContext );
initializeSharedFlowField( request, response, servletContext );
super.create( request, response, servletContext );
}
@@ -275,7 +253,7 @@
assert getRequest() != null : "this method can only be called during execute()";
String contextPath = getRequest().getContextPath();
assert contextPath.startsWith( "/" ) : contextPath;
- return contextPath.substring( 1 ) + "." + getClass().getName();
+ return contextPath.substring( 1 ) + '.' + getClass().getName();
}
/**
@@ -305,7 +283,7 @@
*/
protected ActionForm getPreviousForm()
{
- return ( _previousActionInfo != null ? _previousActionInfo.getForm() : null );
+ return _previousActionInfo != null ? _previousActionInfo.getForm() : null;
}
/**
@@ -416,7 +394,7 @@
if ( prevPageInfo != null )
{
ActionForward prevForward = prevPageInfo.getForward();
- return ( prevForward != null ? prevForward.getPath() : null );
+ return prevForward != null ? prevForward.getPath() : null;
}
else
{
@@ -498,7 +476,7 @@
*/
public final PreviousPageInfo getPreviousPageInfo()
{
- PreviousPageInfo ret = ( _previousPageInfo != null ? _previousPageInfo : _currentPageInfo );
+ PreviousPageInfo ret = _previousPageInfo != null ? _previousPageInfo : _currentPageInfo;
if ( ret != null )
{
@@ -590,7 +568,7 @@
// Make sure previous-page is disabled in the SharedFlowController, too; if not, we can't do it.
//
ModuleConfig sharedFlowConfig = InternalUtils.getSharedFlowConfig( mc, request, servletContext );
- ControllerConfig sc = ( sharedFlowConfig != null ? sharedFlowConfig.getControllerConfig() : null );
+ ControllerConfig sc = sharedFlowConfig != null ? sharedFlowConfig.getControllerConfig() : null;
if ( sc == null ||
( sc instanceof PageFlowControllerConfig && ( ( PageFlowControllerConfig ) sc ).isReturnToPageDisabled() ) )
@@ -632,7 +610,7 @@
if ( ! forward.getContextRelative() )
{
- return ( path.indexOf( '/', 1 ) == -1 ); // all paths in Struts start with '/'
+ return path.indexOf( '/', 1 ) == -1; // all paths in Struts start with '/'
}
else
{
@@ -683,7 +661,7 @@
// enough, obviously, since it's impossible to tell whether it should be executed
// in the current pageflow or a new nested one.
//
- if ( superFwd != null && isNestable( request, servletContext ) )
+ if ( superFwd != null && InternalUtils.isNestable( getModuleConfig() ) )
{
boolean selfNesting = false;
Modified: incubator/beehive/trunk/netui/src/pageflow/org/apache/beehive/netui/pageflow/PageFlowStack.java
==============================================================================
--- incubator/beehive/trunk/netui/src/pageflow/org/apache/beehive/netui/pageflow/PageFlowStack.java (original)
+++ incubator/beehive/trunk/netui/src/pageflow/org/apache/beehive/netui/pageflow/PageFlowStack.java Tue Sep 14 00:32:12 2004
@@ -173,6 +173,33 @@
return null;
}
+ /**
+ * Pop page flows from the nesting stack until the given index.
+ * @return the last popped page flow of the given type.
+ */
+ PageFlowController popUntil( HttpServletRequest request, int index )
+ {
+ for ( int i = _stack.size() - 1; i > index; --i )
+ {
+ pop( request );
+ }
+
+ return pop( request ).getPageFlow();
+ }
+
+ int lastIndexOf( HttpServletRequest request, Class target )
+ {
+ for ( int i = _stack.size() - 1; i >= 0; --i )
+ {
+ if ( ( ( PushedPageFlow ) _stack.elementAt( i ) ).getPageFlow().getClass().equals( target ) )
+ {
+ return i;
+ }
+ }
+
+ return -1;
+ }
+
void ensureFailover( HttpServletRequest request )
{
String name =
Modified: incubator/beehive/trunk/netui/src/pageflow/org/apache/beehive/netui/pageflow/internal/InternalUtils.java
==============================================================================
--- incubator/beehive/trunk/netui/src/pageflow/org/apache/beehive/netui/pageflow/internal/InternalUtils.java (original)
+++ incubator/beehive/trunk/netui/src/pageflow/org/apache/beehive/netui/pageflow/internal/InternalUtils.java Tue Sep 14 00:32:12 2004
@@ -389,6 +389,15 @@
}
}
+ /**
+ * Tell whether the given module is a nested page flow.
+ */
+ public static boolean isNestable( ModuleConfig moduleConfig )
+ {
+ ControllerConfig cc = moduleConfig.getControllerConfig();
+ return cc instanceof PageFlowControllerConfig && ( ( PageFlowControllerConfig ) cc ).isNestedPageFlow();
+ }
+
public static String getSingletonFlowAttr( String modulePath )
{
return SINGLETON_PAGEFLOWS_ATTR_PREFIX + modulePath;
Modified: incubator/beehive/trunk/netui/src/util/schema/netui-config.xsd
==============================================================================
--- incubator/beehive/trunk/netui/src/util/schema/netui-config.xsd (original)
+++ incubator/beehive/trunk/netui/src/util/schema/netui-config.xsd Tue Sep 14 00:32:12 2004
@@ -13,6 +13,7 @@
<xsd:element name="expression-languages" type="netui:expression-languages" minOccurs="1" maxOccurs="1"/>
<xsd:element name="pageflow-action-interceptors" type="netui:pageflow-action-interceptors" minOccurs="0" maxOccurs="1"/>
<xsd:element name="pageflow-handlers" type="netui:pageflow-handlers" minOccurs="0" maxOccurs="1"/>
+ <xsd:element name="pageflow-options" type="netui:pageflow-options" minOccurs="0" maxOccurs="1"/>
<xsd:element name="type-converters" type="netui:type-converters" minOccurs="0" maxOccurs="1"/>
<xsd:element name="iterator-factories" type="netui:iterator-factories" minOccurs="0" maxOccurs="1"/>
</xsd:sequence>
@@ -56,6 +57,12 @@
<xsd:element name="forward-redirect-handler-class" type="xsd:string" minOccurs="0" maxOccurs="1"/>
<xsd:element name="reloadable-class-handler-class" type="xsd:string" minOccurs="0" maxOccurs="1"/>
<xsd:element name="exceptions-handler-class" type="xsd:string" minOccurs="0" maxOccurs="1"/>
+ </xsd:sequence>
+ </xsd:complexType>
+
+ <xsd:complexType name="pageflow-options">
+ <xsd:sequence>
+ <xsd:element name="enable-renesting" type="xsd:string" minOccurs="0" maxOccurs="1" default="false"/>
</xsd:sequence>
</xsd:complexType>
Added: incubator/beehive/trunk/netui/test/webapps/drt/coreWeb/miniTests/backButton/BackButtonController.jpf
==============================================================================
--- (empty file)
+++ incubator/beehive/trunk/netui/test/webapps/drt/coreWeb/miniTests/backButton/BackButtonController.jpf Tue Sep 14 00:32:12 2004
@@ -0,0 +1,28 @@
+package miniTests.backButton;
+
+import org.apache.beehive.netui.pageflow.PageFlowController;
+import org.apache.beehive.netui.pageflow.annotations.Jpf;
+
+
+@Jpf.Controller(
+ simpleActions={
+ @Jpf.SimpleAction(name="begin", path="index.jsp"),
+ @Jpf.SimpleAction(name="submit", path="index.jsp"),
+ @Jpf.SimpleAction(name="goNested", path="nestedOne/NestedOneController.jpf"),
+ @Jpf.SimpleAction(name="nestedOneDone", path="index.jsp")
+ }
+)
+public class BackButtonController extends PageFlowController
+{
+ private String _state;
+
+ public void setState( String state )
+ {
+ _state = state;
+ }
+
+ public String getState()
+ {
+ return _state;
+ }
+}
Added: incubator/beehive/trunk/netui/test/webapps/drt/coreWeb/miniTests/backButton/index.jsp
==============================================================================
--- (empty file)
+++ incubator/beehive/trunk/netui/test/webapps/drt/coreWeb/miniTests/backButton/index.jsp Tue Sep 14 00:32:12 2004
@@ -0,0 +1,21 @@
+<%@ page language="java" contentType="text/html;charset=UTF-8"%>
+<%@ taglib prefix="netui" uri="http://beehive.apache.org/netui/tags-html-1.0"%>
+<%@ taglib prefix="netui-data" uri="http://beehive.apache.org/netui/tags-databinding-1.0"%>
+<%@ taglib prefix="netui-template" uri="http://beehive.apache.org/netui/tags-template-1.0"%>
+
+
+<netui:html>
+ <head>
+ <netui:base/>
+ </head>
+ <netui:body>
+ <netui:form action="submit">
+ state: <netui:textBox dataSource="pageFlow.state" />
+ <netui:button value="submit"/>
+ </netui:form>
+ <br/>
+ <netui:anchor action="goNested">goNested</netui:anchor>
+ </netui:body>
+</netui:html>
+
+
\ No newline at end of file
Added: incubator/beehive/trunk/netui/test/webapps/drt/coreWeb/miniTests/backButton/nestedOne/NestedOneController.jpf
==============================================================================
--- (empty file)
+++ incubator/beehive/trunk/netui/test/webapps/drt/coreWeb/miniTests/backButton/nestedOne/NestedOneController.jpf Tue Sep 14 00:32:12 2004
@@ -0,0 +1,18 @@
+package miniTests.backButton.nestedOne;
+
+import org.apache.beehive.netui.pageflow.PageFlowController;
+import org.apache.beehive.netui.pageflow.annotations.Jpf;
+
+@Jpf.Controller(
+ nested=true,
+ simpleActions={
+ @Jpf.SimpleAction(name="begin", path="index.jsp"),
+ @Jpf.SimpleAction(name="backButton", path="/miniTests/backButton/BackButtonController.jpf"),
+ @Jpf.SimpleAction(name="goNestedTwo", path="/miniTests/backButton/nestedTwo/NestedTwoController.jpf"),
+ @Jpf.SimpleAction(name="nestedTwoDone", path="index.jsp"),
+ @Jpf.SimpleAction(name="done", returnAction="nestedOneDone")
+ }
+)
+public class NestedOneController extends PageFlowController
+{
+}
Added: incubator/beehive/trunk/netui/test/webapps/drt/coreWeb/miniTests/backButton/nestedOne/index.jsp
==============================================================================
--- (empty file)
+++ incubator/beehive/trunk/netui/test/webapps/drt/coreWeb/miniTests/backButton/nestedOne/index.jsp Tue Sep 14 00:32:12 2004
@@ -0,0 +1,24 @@
+<%@ page language="java" contentType="text/html;charset=UTF-8"%>
+<%@ taglib prefix="netui" uri="http://beehive.apache.org/netui/tags-html-1.0"%>
+<%@ taglib prefix="netui-data" uri="http://beehive.apache.org/netui/tags-databinding-1.0"%>
+<%@ taglib prefix="netui-template" uri="http://beehive.apache.org/netui/tags-template-1.0"%>
+
+
+<netui:html>
+ <head>
+ <netui:base/>
+ </head>
+ <netui:body>
+
+
+ <netui:anchor action="done">return from nesting</netui:anchor>
+ <br/>
+ <netui:anchor action="backButton">simulate back button</netui:anchor>
+ <br/>
+ <netui:anchor action="goNestedTwo">goNestedTwo</netui:anchor>
+
+
+ </netui:body>
+</netui:html>
+
+
\ No newline at end of file
Added: incubator/beehive/trunk/netui/test/webapps/drt/coreWeb/miniTests/backButton/nestedTwo/NestedTwoController.jpf
==============================================================================
--- (empty file)
+++ incubator/beehive/trunk/netui/test/webapps/drt/coreWeb/miniTests/backButton/nestedTwo/NestedTwoController.jpf Tue Sep 14 00:32:12 2004
@@ -0,0 +1,21 @@
+package miniTests.backButton.nestedTwo;
+
+import org.apache.beehive.netui.pageflow.PageFlowController;
+import org.apache.beehive.netui.pageflow.PageFlowStack;
+import org.apache.beehive.netui.pageflow.annotations.Jpf;
+
+@Jpf.Controller(
+ nested=true,
+ simpleActions={
+ @Jpf.SimpleAction(name="begin", path="index.jsp"),
+ @Jpf.SimpleAction(name="backButton", path="/miniTests/backButton/nestedOne/NestedOneController.jpf"),
+ @Jpf.SimpleAction(name="done", returnAction="nestedTwoDone")
+ }
+)
+public class NestedTwoController extends PageFlowController
+{
+ public int getStackSize()
+ {
+ return PageFlowStack.get( getRequest() ).size();
+ }
+}
Added: incubator/beehive/trunk/netui/test/webapps/drt/coreWeb/miniTests/backButton/nestedTwo/index.jsp
==============================================================================
--- (empty file)
+++ incubator/beehive/trunk/netui/test/webapps/drt/coreWeb/miniTests/backButton/nestedTwo/index.jsp Tue Sep 14 00:32:12 2004
@@ -0,0 +1,23 @@
+<%@ page language="java" contentType="text/html;charset=UTF-8"%>
+<%@ taglib prefix="netui" uri="http://beehive.apache.org/netui/tags-html-1.0"%>
+<%@ taglib prefix="netui-data" uri="http://beehive.apache.org/netui/tags-databinding-1.0"%>
+<%@ taglib prefix="netui-template" uri="http://beehive.apache.org/netui/tags-template-1.0"%>
+
+
+<netui:html>
+ <head>
+ <netui:base/>
+ </head>
+ <netui:body>
+ Page flow stack size: <b><netui:span value="${pageFlow.stackSize}"/></b>
+ <br/>
+ <br/>
+ <netui:anchor action="done">done</netui:anchor>
+ <br/>
+ <netui:anchor action="backButton">simulate back button</netui:anchor>
+
+
+ </netui:body>
+</netui:html>
+
+
\ No newline at end of file
Modified: incubator/beehive/trunk/netui/test/webapps/drt/testRecorder/config/testRecorder-tests.xml
==============================================================================
--- incubator/beehive/trunk/netui/test/webapps/drt/testRecorder/config/testRecorder-tests.xml (original)
+++ incubator/beehive/trunk/netui/test/webapps/drt/testRecorder/config/testRecorder-tests.xml Tue Sep 14 00:32:12 2004
@@ -1123,6 +1123,32 @@
</features>
</test>
<test>
+ <name>BackButtonToNested</name>
+ <description>Test of using the back button to go back from a nested page flow (B) to another nested page flow (A). Unless pageflow-renesting is enabled in netui-config.xml, the previous instance of A should be used; a new instance of A should not be created, and the page flow stack should not grow in size.</description>
+ <webapp>coreWeb</webapp>
+ <categories>
+ <category>bvt</category>
+ <category>corePageFlow</category>
+ </categories>
+ <features>
+ <feature>PageFlow</feature>
+ <feature>Nesting</feature>
+ </features>
+ </test>
+ <test>
+ <name>BackButtonToNonNested</name>
+ <description>Test of using the back button to go from a nested page flow to a non-nested page flow. The original non-nested page flow instance should be retrieved, not a new one.</description>
+ <webapp>coreWeb</webapp>
+ <categories>
+ <category>bvt</category>
+ <category>corePageFlow</category>
+ </categories>
+ <features>
+ <feature>PageFlow</feature>
+ <feature>Nesting</feature>
+ </features>
+ </test>
+ <test>
<name>BeginForm</name>
<description>Test passing a form to the begin node.</description>
<webapp>coreWeb</webapp>
Added: incubator/beehive/trunk/netui/test/webapps/drt/testRecorder/tests/BackButtonToNested.xml
==============================================================================
--- (empty file)
+++ incubator/beehive/trunk/netui/test/webapps/drt/testRecorder/tests/BackButtonToNested.xml Tue Sep 14 00:32:12 2004
@@ -0,0 +1,603 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<ses:recorderSession xmlns:ses="http://beehive.apache.org/netui/tools/testrecorder/2004/session">
+ <ses:sessionName>BackButtonToNested</ses:sessionName>
+ <ses:tester>rich</ses:tester>
+ <ses:startDate>14 Sep 2004, 01:09:50.811 AM MDT</ses:startDate>
+ <ses:description>Test of using the back button to go back from a nested page flow (B) to another nested page flow (A). Unless pageflow-renesting is enabled in netui-config.xml, the previous instance of A should be used; a new instance of A should not be created, and the page flow stack should not grow in size.</ses:description>
+ <ses:tests>
+ <ses:test>
+ <ses:testNumber>1</ses:testNumber>
+ <ses:request>
+ <ses:protocol>HTTP</ses:protocol>
+ <ses:protocolVersion>1.1</ses:protocolVersion>
+ <ses:host>localhost</ses:host>
+ <ses:port>8080</ses:port>
+ <ses:uri>/coreWeb/miniTests/backButton/BackButtonController.jpf</ses:uri>
+ <ses:method>GET</ses:method>
+ <ses:parameters/>
+ <ses:cookies>
+ <ses:cookie>
+ <ses:name>JSESSIONID</ses:name>
+ <ses:value>1EFA23C682DD4F794ADCF9D4D64176CB</ses:value>
+ </ses:cookie>
+ <ses:cookie>
+ <ses:name>JSESSIONID</ses:name>
+ <ses:value>BGW6JYzRPXwMGsREGLZ6XOzud7KqQEKDYx2UH92rwqrxUvl44p0a!-709003086</ses:value>
+ </ses:cookie>
+ </ses:cookies>
+ <ses:headers>
+ <ses:header>
+ <ses:name>accept</ses:name>
+ <ses:value>text/xml,application/xml,application/xhtml+xml,text/html;q=0.9,text/plain;q=0.8,image/png,*/*;q=0.5</ses:value>
+ </ses:header>
+ <ses:header>
+ <ses:name>accept-charset</ses:name>
+ <ses:value>ISO-8859-1,utf-8;q=0.7,*;q=0.7</ses:value>
+ </ses:header>
+ <ses:header>
+ <ses:name>accept-encoding</ses:name>
+ <ses:value>gzip,deflate</ses:value>
+ </ses:header>
+ <ses:header>
+ <ses:name>accept-language</ses:name>
+ <ses:value>en-us,en;q=0.5</ses:value>
+ </ses:header>
+ <ses:header>
+ <ses:name>connection</ses:name>
+ <ses:value>keep-alive</ses:value>
+ </ses:header>
+ <ses:header>
+ <ses:name>cookie</ses:name>
+ <ses:value>JSESSIONID=1EFA23C682DD4F794ADCF9D4D64176CB; JSESSIONID=BGW6JYzRPXwMGsREGLZ6XOzud7KqQEKDYx2UH92rwqrxUvl44p0a!-709003086</ses:value>
+ </ses:header>
+ <ses:header>
+ <ses:name>host</ses:name>
+ <ses:value>localhost:8080</ses:value>
+ </ses:header>
+ <ses:header>
+ <ses:name>keep-alive</ses:name>
+ <ses:value>300</ses:value>
+ </ses:header>
+ <ses:header>
+ <ses:name>user-agent</ses:name>
+ <ses:value>Mozilla/5.0 (Windows; U; Windows NT 5.1; en-US; rv:1.7) Gecko/20040803 Firefox/0.9.3</ses:value>
+ </ses:header>
+ </ses:headers>
+ </ses:request>
+ <ses:response>
+ <ses:statusCode>200</ses:statusCode>
+ <ses:reason/>
+ <ses:responseBody><![CDATA[<!DOCTYPE HTML PUBLIC "//W3C//DTD HTML 4.01 Transitional//EN"
+ "http://www.w3.org/TR/html4/loose.dtd">
+<html lang="en">
+<head>
+ <base href="http://localhost:8080/coreWeb/miniTests/backButton/index.jsp">
+ </head>
+ <body>
+ <form id="Netui_Form_0" action="/coreWeb/miniTests/backButton/submit.do" method="post">
+ state: <input type="text" name="{pageFlow.state}">
+ <input type="submit" value="submit">
+ </form>
+ <br/>
+ <a href="/coreWeb/miniTests/backButton/goNested.do">goNested</a>
+ </body>
+</html>]]></ses:responseBody>
+ </ses:response>
+ </ses:test>
+ <ses:test>
+ <ses:testNumber>2</ses:testNumber>
+ <ses:request>
+ <ses:protocol>HTTP</ses:protocol>
+ <ses:protocolVersion>1.1</ses:protocolVersion>
+ <ses:host>localhost</ses:host>
+ <ses:port>8080</ses:port>
+ <ses:uri>/coreWeb/miniTests/backButton/goNested.do</ses:uri>
+ <ses:method>GET</ses:method>
+ <ses:parameters/>
+ <ses:cookies>
+ <ses:cookie>
+ <ses:name>JSESSIONID</ses:name>
+ <ses:value>1EFA23C682DD4F794ADCF9D4D64176CB</ses:value>
+ </ses:cookie>
+ <ses:cookie>
+ <ses:name>JSESSIONID</ses:name>
+ <ses:value>BGW6JYzRPXwMGsREGLZ6XOzud7KqQEKDYx2UH92rwqrxUvl44p0a!-709003086</ses:value>
+ </ses:cookie>
+ </ses:cookies>
+ <ses:headers>
+ <ses:header>
+ <ses:name>accept</ses:name>
+ <ses:value>text/xml,application/xml,application/xhtml+xml,text/html;q=0.9,text/plain;q=0.8,image/png,*/*;q=0.5</ses:value>
+ </ses:header>
+ <ses:header>
+ <ses:name>accept-charset</ses:name>
+ <ses:value>ISO-8859-1,utf-8;q=0.7,*;q=0.7</ses:value>
+ </ses:header>
+ <ses:header>
+ <ses:name>accept-encoding</ses:name>
+ <ses:value>gzip,deflate</ses:value>
+ </ses:header>
+ <ses:header>
+ <ses:name>accept-language</ses:name>
+ <ses:value>en-us,en;q=0.5</ses:value>
+ </ses:header>
+ <ses:header>
+ <ses:name>connection</ses:name>
+ <ses:value>keep-alive</ses:value>
+ </ses:header>
+ <ses:header>
+ <ses:name>cookie</ses:name>
+ <ses:value>JSESSIONID=1EFA23C682DD4F794ADCF9D4D64176CB; JSESSIONID=BGW6JYzRPXwMGsREGLZ6XOzud7KqQEKDYx2UH92rwqrxUvl44p0a!-709003086</ses:value>
+ </ses:header>
+ <ses:header>
+ <ses:name>host</ses:name>
+ <ses:value>localhost:8080</ses:value>
+ </ses:header>
+ <ses:header>
+ <ses:name>keep-alive</ses:name>
+ <ses:value>300</ses:value>
+ </ses:header>
+ <ses:header>
+ <ses:name>referer</ses:name>
+ <ses:value>http://localhost:8080/coreWeb/miniTests/backButton/BackButtonController.jpf</ses:value>
+ </ses:header>
+ <ses:header>
+ <ses:name>user-agent</ses:name>
+ <ses:value>Mozilla/5.0 (Windows; U; Windows NT 5.1; en-US; rv:1.7) Gecko/20040803 Firefox/0.9.3</ses:value>
+ </ses:header>
+ </ses:headers>
+ </ses:request>
+ <ses:response>
+ <ses:statusCode>200</ses:statusCode>
+ <ses:reason/>
+ <ses:responseBody><![CDATA[<!DOCTYPE HTML PUBLIC "//W3C//DTD HTML 4.01 Transitional//EN"
+ "http://www.w3.org/TR/html4/loose.dtd">
+<html lang="en">
+<head>
+ <base href="http://localhost:8080/coreWeb/miniTests/backButton/nestedOne/index.jsp">
+ </head>
+ <body>
+
+
+ <a href="/coreWeb/miniTests/backButton/nestedOne/done.do">return from nesting</a>
+ <br/>
+ <a href="/coreWeb/miniTests/backButton/nestedOne/backButton.do">simulate back button</a>
+ <br/>
+ <a href="/coreWeb/miniTests/backButton/nestedOne/goNestedTwo.do">goNestedTwo</a>
+
+
+ </body>
+</html>]]></ses:responseBody>
+ </ses:response>
+ </ses:test>
+ <ses:test>
+ <ses:testNumber>3</ses:testNumber>
+ <ses:request>
+ <ses:protocol>HTTP</ses:protocol>
+ <ses:protocolVersion>1.1</ses:protocolVersion>
+ <ses:host>localhost</ses:host>
+ <ses:port>8080</ses:port>
+ <ses:uri>/coreWeb/miniTests/backButton/nestedOne/goNestedTwo.do</ses:uri>
+ <ses:method>GET</ses:method>
+ <ses:parameters/>
+ <ses:cookies>
+ <ses:cookie>
+ <ses:name>JSESSIONID</ses:name>
+ <ses:value>1EFA23C682DD4F794ADCF9D4D64176CB</ses:value>
+ </ses:cookie>
+ <ses:cookie>
+ <ses:name>JSESSIONID</ses:name>
+ <ses:value>BGW6JYzRPXwMGsREGLZ6XOzud7KqQEKDYx2UH92rwqrxUvl44p0a!-709003086</ses:value>
+ </ses:cookie>
+ </ses:cookies>
+ <ses:headers>
+ <ses:header>
+ <ses:name>accept</ses:name>
+ <ses:value>text/xml,application/xml,application/xhtml+xml,text/html;q=0.9,text/plain;q=0.8,image/png,*/*;q=0.5</ses:value>
+ </ses:header>
+ <ses:header>
+ <ses:name>accept-charset</ses:name>
+ <ses:value>ISO-8859-1,utf-8;q=0.7,*;q=0.7</ses:value>
+ </ses:header>
+ <ses:header>
+ <ses:name>accept-encoding</ses:name>
+ <ses:value>gzip,deflate</ses:value>
+ </ses:header>
+ <ses:header>
+ <ses:name>accept-language</ses:name>
+ <ses:value>en-us,en;q=0.5</ses:value>
+ </ses:header>
+ <ses:header>
+ <ses:name>connection</ses:name>
+ <ses:value>keep-alive</ses:value>
+ </ses:header>
+ <ses:header>
+ <ses:name>cookie</ses:name>
+ <ses:value>JSESSIONID=1EFA23C682DD4F794ADCF9D4D64176CB; JSESSIONID=BGW6JYzRPXwMGsREGLZ6XOzud7KqQEKDYx2UH92rwqrxUvl44p0a!-709003086</ses:value>
+ </ses:header>
+ <ses:header>
+ <ses:name>host</ses:name>
+ <ses:value>localhost:8080</ses:value>
+ </ses:header>
+ <ses:header>
+ <ses:name>keep-alive</ses:name>
+ <ses:value>300</ses:value>
+ </ses:header>
+ <ses:header>
+ <ses:name>referer</ses:name>
+ <ses:value>http://localhost:8080/coreWeb/miniTests/backButton/goNested.do</ses:value>
+ </ses:header>
+ <ses:header>
+ <ses:name>user-agent</ses:name>
+ <ses:value>Mozilla/5.0 (Windows; U; Windows NT 5.1; en-US; rv:1.7) Gecko/20040803 Firefox/0.9.3</ses:value>
+ </ses:header>
+ </ses:headers>
+ </ses:request>
+ <ses:response>
+ <ses:statusCode>200</ses:statusCode>
+ <ses:reason/>
+ <ses:responseBody><![CDATA[<!DOCTYPE HTML PUBLIC "//W3C//DTD HTML 4.01 Transitional//EN"
+ "http://www.w3.org/TR/html4/loose.dtd">
+<html lang="en">
+<head>
+ <base href="http://localhost:8080/coreWeb/miniTests/backButton/nestedTwo/index.jsp">
+ </head>
+ <body>
+ Page flow stack size: <b><span>2</span></b>
+ <br/>
+ <br/>
+ <a href="/coreWeb/miniTests/backButton/nestedTwo/done.do">done</a>
+ <br/>
+ <a href="/coreWeb/miniTests/backButton/nestedTwo/backButton.do">simulate back button</a>
+
+
+ </body>
+</html>]]></ses:responseBody>
+ </ses:response>
+ </ses:test>
+ <ses:test>
+ <ses:testNumber>4</ses:testNumber>
+ <ses:request>
+ <ses:protocol>HTTP</ses:protocol>
+ <ses:protocolVersion>1.1</ses:protocolVersion>
+ <ses:host>localhost</ses:host>
+ <ses:port>8080</ses:port>
+ <ses:uri>/coreWeb/miniTests/backButton/nestedTwo/done.do</ses:uri>
+ <ses:method>GET</ses:method>
+ <ses:parameters/>
+ <ses:cookies>
+ <ses:cookie>
+ <ses:name>JSESSIONID</ses:name>
+ <ses:value>1EFA23C682DD4F794ADCF9D4D64176CB</ses:value>
+ </ses:cookie>
+ <ses:cookie>
+ <ses:name>JSESSIONID</ses:name>
+ <ses:value>BGW6JYzRPXwMGsREGLZ6XOzud7KqQEKDYx2UH92rwqrxUvl44p0a!-709003086</ses:value>
+ </ses:cookie>
+ </ses:cookies>
+ <ses:headers>
+ <ses:header>
+ <ses:name>accept</ses:name>
+ <ses:value>text/xml,application/xml,application/xhtml+xml,text/html;q=0.9,text/plain;q=0.8,image/png,*/*;q=0.5</ses:value>
+ </ses:header>
+ <ses:header>
+ <ses:name>accept-charset</ses:name>
+ <ses:value>ISO-8859-1,utf-8;q=0.7,*;q=0.7</ses:value>
+ </ses:header>
+ <ses:header>
+ <ses:name>accept-encoding</ses:name>
+ <ses:value>gzip,deflate</ses:value>
+ </ses:header>
+ <ses:header>
+ <ses:name>accept-language</ses:name>
+ <ses:value>en-us,en;q=0.5</ses:value>
+ </ses:header>
+ <ses:header>
+ <ses:name>connection</ses:name>
+ <ses:value>keep-alive</ses:value>
+ </ses:header>
+ <ses:header>
+ <ses:name>cookie</ses:name>
+ <ses:value>JSESSIONID=1EFA23C682DD4F794ADCF9D4D64176CB; JSESSIONID=BGW6JYzRPXwMGsREGLZ6XOzud7KqQEKDYx2UH92rwqrxUvl44p0a!-709003086</ses:value>
+ </ses:header>
+ <ses:header>
+ <ses:name>host</ses:name>
+ <ses:value>localhost:8080</ses:value>
+ </ses:header>
+ <ses:header>
+ <ses:name>keep-alive</ses:name>
+ <ses:value>300</ses:value>
+ </ses:header>
+ <ses:header>
+ <ses:name>referer</ses:name>
+ <ses:value>http://localhost:8080/coreWeb/miniTests/backButton/nestedOne/goNestedTwo.do</ses:value>
+ </ses:header>
+ <ses:header>
+ <ses:name>user-agent</ses:name>
+ <ses:value>Mozilla/5.0 (Windows; U; Windows NT 5.1; en-US; rv:1.7) Gecko/20040803 Firefox/0.9.3</ses:value>
+ </ses:header>
+ </ses:headers>
+ </ses:request>
+ <ses:response>
+ <ses:statusCode>200</ses:statusCode>
+ <ses:reason/>
+ <ses:responseBody><![CDATA[<!DOCTYPE HTML PUBLIC "//W3C//DTD HTML 4.01 Transitional//EN"
+ "http://www.w3.org/TR/html4/loose.dtd">
+<html lang="en">
+<head>
+ <base href="http://localhost:8080/coreWeb/miniTests/backButton/nestedOne/index.jsp">
+ </head>
+ <body>
+
+
+ <a href="/coreWeb/miniTests/backButton/nestedOne/done.do">return from nesting</a>
+ <br/>
+ <a href="/coreWeb/miniTests/backButton/nestedOne/backButton.do">simulate back button</a>
+ <br/>
+ <a href="/coreWeb/miniTests/backButton/nestedOne/goNestedTwo.do">goNestedTwo</a>
+
+
+ </body>
+</html>]]></ses:responseBody>
+ </ses:response>
+ </ses:test>
+ <ses:test>
+ <ses:testNumber>5</ses:testNumber>
+ <ses:request>
+ <ses:protocol>HTTP</ses:protocol>
+ <ses:protocolVersion>1.1</ses:protocolVersion>
+ <ses:host>localhost</ses:host>
+ <ses:port>8080</ses:port>
+ <ses:uri>/coreWeb/miniTests/backButton/nestedOne/goNestedTwo.do</ses:uri>
+ <ses:method>GET</ses:method>
+ <ses:parameters/>
+ <ses:cookies>
+ <ses:cookie>
+ <ses:name>JSESSIONID</ses:name>
+ <ses:value>1EFA23C682DD4F794ADCF9D4D64176CB</ses:value>
+ </ses:cookie>
+ <ses:cookie>
+ <ses:name>JSESSIONID</ses:name>
+ <ses:value>BGW6JYzRPXwMGsREGLZ6XOzud7KqQEKDYx2UH92rwqrxUvl44p0a!-709003086</ses:value>
+ </ses:cookie>
+ </ses:cookies>
+ <ses:headers>
+ <ses:header>
+ <ses:name>accept</ses:name>
+ <ses:value>text/xml,application/xml,application/xhtml+xml,text/html;q=0.9,text/plain;q=0.8,image/png,*/*;q=0.5</ses:value>
+ </ses:header>
+ <ses:header>
+ <ses:name>accept-charset</ses:name>
+ <ses:value>ISO-8859-1,utf-8;q=0.7,*;q=0.7</ses:value>
+ </ses:header>
+ <ses:header>
+ <ses:name>accept-encoding</ses:name>
+ <ses:value>gzip,deflate</ses:value>
+ </ses:header>
+ <ses:header>
+ <ses:name>accept-language</ses:name>
+ <ses:value>en-us,en;q=0.5</ses:value>
+ </ses:header>
+ <ses:header>
+ <ses:name>connection</ses:name>
+ <ses:value>keep-alive</ses:value>
+ </ses:header>
+ <ses:header>
+ <ses:name>cookie</ses:name>
+ <ses:value>JSESSIONID=1EFA23C682DD4F794ADCF9D4D64176CB; JSESSIONID=BGW6JYzRPXwMGsREGLZ6XOzud7KqQEKDYx2UH92rwqrxUvl44p0a!-709003086</ses:value>
+ </ses:header>
+ <ses:header>
+ <ses:name>host</ses:name>
+ <ses:value>localhost:8080</ses:value>
+ </ses:header>
+ <ses:header>
+ <ses:name>keep-alive</ses:name>
+ <ses:value>300</ses:value>
+ </ses:header>
+ <ses:header>
+ <ses:name>referer</ses:name>
+ <ses:value>http://localhost:8080/coreWeb/miniTests/backButton/nestedTwo/done.do</ses:value>
+ </ses:header>
+ <ses:header>
+ <ses:name>user-agent</ses:name>
+ <ses:value>Mozilla/5.0 (Windows; U; Windows NT 5.1; en-US; rv:1.7) Gecko/20040803 Firefox/0.9.3</ses:value>
+ </ses:header>
+ </ses:headers>
+ </ses:request>
+ <ses:response>
+ <ses:statusCode>200</ses:statusCode>
+ <ses:reason/>
+ <ses:responseBody><![CDATA[<!DOCTYPE HTML PUBLIC "//W3C//DTD HTML 4.01 Transitional//EN"
+ "http://www.w3.org/TR/html4/loose.dtd">
+<html lang="en">
+<head>
+ <base href="http://localhost:8080/coreWeb/miniTests/backButton/nestedTwo/index.jsp">
+ </head>
+ <body>
+ Page flow stack size: <b><span>2</span></b>
+ <br/>
+ <br/>
+ <a href="/coreWeb/miniTests/backButton/nestedTwo/done.do">done</a>
+ <br/>
+ <a href="/coreWeb/miniTests/backButton/nestedTwo/backButton.do">simulate back button</a>
+
+
+ </body>
+</html>]]></ses:responseBody>
+ </ses:response>
+ </ses:test>
+ <ses:test>
+ <ses:testNumber>6</ses:testNumber>
+ <ses:request>
+ <ses:protocol>HTTP</ses:protocol>
+ <ses:protocolVersion>1.1</ses:protocolVersion>
+ <ses:host>localhost</ses:host>
+ <ses:port>8080</ses:port>
+ <ses:uri>/coreWeb/miniTests/backButton/nestedTwo/backButton.do</ses:uri>
+ <ses:method>GET</ses:method>
+ <ses:parameters/>
+ <ses:cookies>
+ <ses:cookie>
+ <ses:name>JSESSIONID</ses:name>
+ <ses:value>1EFA23C682DD4F794ADCF9D4D64176CB</ses:value>
+ </ses:cookie>
+ <ses:cookie>
+ <ses:name>JSESSIONID</ses:name>
+ <ses:value>BGW6JYzRPXwMGsREGLZ6XOzud7KqQEKDYx2UH92rwqrxUvl44p0a!-709003086</ses:value>
+ </ses:cookie>
+ </ses:cookies>
+ <ses:headers>
+ <ses:header>
+ <ses:name>accept</ses:name>
+ <ses:value>text/xml,application/xml,application/xhtml+xml,text/html;q=0.9,text/plain;q=0.8,image/png,*/*;q=0.5</ses:value>
+ </ses:header>
+ <ses:header>
+ <ses:name>accept-charset</ses:name>
+ <ses:value>ISO-8859-1,utf-8;q=0.7,*;q=0.7</ses:value>
+ </ses:header>
+ <ses:header>
+ <ses:name>accept-encoding</ses:name>
+ <ses:value>gzip,deflate</ses:value>
+ </ses:header>
+ <ses:header>
+ <ses:name>accept-language</ses:name>
+ <ses:value>en-us,en;q=0.5</ses:value>
+ </ses:header>
+ <ses:header>
+ <ses:name>connection</ses:name>
+ <ses:value>keep-alive</ses:value>
+ </ses:header>
+ <ses:header>
+ <ses:name>cookie</ses:name>
+ <ses:value>JSESSIONID=1EFA23C682DD4F794ADCF9D4D64176CB; JSESSIONID=BGW6JYzRPXwMGsREGLZ6XOzud7KqQEKDYx2UH92rwqrxUvl44p0a!-709003086</ses:value>
+ </ses:header>
+ <ses:header>
+ <ses:name>host</ses:name>
+ <ses:value>localhost:8080</ses:value>
+ </ses:header>
+ <ses:header>
+ <ses:name>keep-alive</ses:name>
+ <ses:value>300</ses:value>
+ </ses:header>
+ <ses:header>
+ <ses:name>referer</ses:name>
+ <ses:value>http://localhost:8080/coreWeb/miniTests/backButton/nestedOne/goNestedTwo.do</ses:value>
+ </ses:header>
+ <ses:header>
+ <ses:name>user-agent</ses:name>
+ <ses:value>Mozilla/5.0 (Windows; U; Windows NT 5.1; en-US; rv:1.7) Gecko/20040803 Firefox/0.9.3</ses:value>
+ </ses:header>
+ </ses:headers>
+ </ses:request>
+ <ses:response>
+ <ses:statusCode>200</ses:statusCode>
+ <ses:reason/>
+ <ses:responseBody><![CDATA[<!DOCTYPE HTML PUBLIC "//W3C//DTD HTML 4.01 Transitional//EN"
+ "http://www.w3.org/TR/html4/loose.dtd">
+<html lang="en">
+<head>
+ <base href="http://localhost:8080/coreWeb/miniTests/backButton/nestedOne/index.jsp">
+ </head>
+ <body>
+
+
+ <a href="/coreWeb/miniTests/backButton/nestedOne/done.do">return from nesting</a>
+ <br/>
+ <a href="/coreWeb/miniTests/backButton/nestedOne/backButton.do">simulate back button</a>
+ <br/>
+ <a href="/coreWeb/miniTests/backButton/nestedOne/goNestedTwo.do">goNestedTwo</a>
+
+
+ </body>
+</html>]]></ses:responseBody>
+ </ses:response>
+ </ses:test>
+ <ses:test>
+ <ses:testNumber>7</ses:testNumber>
+ <ses:request>
+ <ses:protocol>HTTP</ses:protocol>
+ <ses:protocolVersion>1.1</ses:protocolVersion>
+ <ses:host>localhost</ses:host>
+ <ses:port>8080</ses:port>
+ <ses:uri>/coreWeb/miniTests/backButton/nestedOne/goNestedTwo.do</ses:uri>
+ <ses:method>GET</ses:method>
+ <ses:parameters/>
+ <ses:cookies>
+ <ses:cookie>
+ <ses:name>JSESSIONID</ses:name>
+ <ses:value>1EFA23C682DD4F794ADCF9D4D64176CB</ses:value>
+ </ses:cookie>
+ <ses:cookie>
+ <ses:name>JSESSIONID</ses:name>
+ <ses:value>BGW6JYzRPXwMGsREGLZ6XOzud7KqQEKDYx2UH92rwqrxUvl44p0a!-709003086</ses:value>
+ </ses:cookie>
+ </ses:cookies>
+ <ses:headers>
+ <ses:header>
+ <ses:name>accept</ses:name>
+ <ses:value>text/xml,application/xml,application/xhtml+xml,text/html;q=0.9,text/plain;q=0.8,image/png,*/*;q=0.5</ses:value>
+ </ses:header>
+ <ses:header>
+ <ses:name>accept-charset</ses:name>
+ <ses:value>ISO-8859-1,utf-8;q=0.7,*;q=0.7</ses:value>
+ </ses:header>
+ <ses:header>
+ <ses:name>accept-encoding</ses:name>
+ <ses:value>gzip,deflate</ses:value>
+ </ses:header>
+ <ses:header>
+ <ses:name>accept-language</ses:name>
+ <ses:value>en-us,en;q=0.5</ses:value>
+ </ses:header>
+ <ses:header>
+ <ses:name>connection</ses:name>
+ <ses:value>keep-alive</ses:value>
+ </ses:header>
+ <ses:header>
+ <ses:name>cookie</ses:name>
+ <ses:value>JSESSIONID=1EFA23C682DD4F794ADCF9D4D64176CB; JSESSIONID=BGW6JYzRPXwMGsREGLZ6XOzud7KqQEKDYx2UH92rwqrxUvl44p0a!-709003086</ses:value>
+ </ses:header>
+ <ses:header>
+ <ses:name>host</ses:name>
+ <ses:value>localhost:8080</ses:value>
+ </ses:header>
+ <ses:header>
+ <ses:name>keep-alive</ses:name>
+ <ses:value>300</ses:value>
+ </ses:header>
+ <ses:header>
+ <ses:name>referer</ses:name>
+ <ses:value>http://localhost:8080/coreWeb/miniTests/backButton/nestedTwo/backButton.do</ses:value>
+ </ses:header>
+ <ses:header>
+ <ses:name>user-agent</ses:name>
+ <ses:value>Mozilla/5.0 (Windows; U; Windows NT 5.1; en-US; rv:1.7) Gecko/20040803 Firefox/0.9.3</ses:value>
+ </ses:header>
+ </ses:headers>
+ </ses:request>
+ <ses:response>
+ <ses:statusCode>200</ses:statusCode>
+ <ses:reason/>
+ <ses:responseBody><![CDATA[<!DOCTYPE HTML PUBLIC "//W3C//DTD HTML 4.01 Transitional//EN"
+ "http://www.w3.org/TR/html4/loose.dtd">
+<html lang="en">
+<head>
+ <base href="http://localhost:8080/coreWeb/miniTests/backButton/nestedTwo/index.jsp">
+ </head>
+ <body>
+ Page flow stack size: <b><span>2</span></b>
+ <br/>
+ <br/>
+ <a href="/coreWeb/miniTests/backButton/nestedTwo/done.do">done</a>
+ <br/>
+ <a href="/coreWeb/miniTests/backButton/nestedTwo/backButton.do">simulate back button</a>
+
+
+ </body>
+</html>]]></ses:responseBody>
+ </ses:response>
+ </ses:test>
+ </ses:tests>
+ <ses:endDate>14 Sep 2004, 01:10:25.671 AM MDT</ses:endDate>
+ <ses:testCount>7</ses:testCount>
+</ses:recorderSession>
Added: incubator/beehive/trunk/netui/test/webapps/drt/testRecorder/tests/BackButtonToNonNested.xml
==============================================================================
--- (empty file)
+++ incubator/beehive/trunk/netui/test/webapps/drt/testRecorder/tests/BackButtonToNonNested.xml Tue Sep 14 00:32:12 2004
@@ -0,0 +1,524 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<ses:recorderSession xmlns:ses="http://beehive.apache.org/netui/tools/testrecorder/2004/session">
+ <ses:sessionName>BackButtonToNonNested</ses:sessionName>
+ <ses:tester>rich</ses:tester>
+ <ses:startDate>14 Sep 2004, 01:07:25.061 AM MDT</ses:startDate>
+ <ses:description>Test of using the back button to go from a nested page flow to a non-nested page flow. The original non-nested page flow instance should be retrieved, not a new one.</ses:description>
+ <ses:tests>
+ <ses:test>
+ <ses:testNumber>1</ses:testNumber>
+ <ses:request>
+ <ses:protocol>HTTP</ses:protocol>
+ <ses:protocolVersion>1.1</ses:protocolVersion>
+ <ses:host>localhost</ses:host>
+ <ses:port>8080</ses:port>
+ <ses:uri>/coreWeb/miniTests/backButton/BackButtonController.jpf</ses:uri>
+ <ses:method>GET</ses:method>
+ <ses:parameters/>
+ <ses:cookies>
+ <ses:cookie>
+ <ses:name>JSESSIONID</ses:name>
+ <ses:value>1EFA23C682DD4F794ADCF9D4D64176CB</ses:value>
+ </ses:cookie>
+ <ses:cookie>
+ <ses:name>JSESSIONID</ses:name>
+ <ses:value>BGW6JYzRPXwMGsREGLZ6XOzud7KqQEKDYx2UH92rwqrxUvl44p0a!-709003086</ses:value>
+ </ses:cookie>
+ </ses:cookies>
+ <ses:headers>
+ <ses:header>
+ <ses:name>accept</ses:name>
+ <ses:value>text/xml,application/xml,application/xhtml+xml,text/html;q=0.9,text/plain;q=0.8,image/png,*/*;q=0.5</ses:value>
+ </ses:header>
+ <ses:header>
+ <ses:name>accept-charset</ses:name>
+ <ses:value>ISO-8859-1,utf-8;q=0.7,*;q=0.7</ses:value>
+ </ses:header>
+ <ses:header>
+ <ses:name>accept-encoding</ses:name>
+ <ses:value>gzip,deflate</ses:value>
+ </ses:header>
+ <ses:header>
+ <ses:name>accept-language</ses:name>
+ <ses:value>en-us,en;q=0.5</ses:value>
+ </ses:header>
+ <ses:header>
+ <ses:name>connection</ses:name>
+ <ses:value>keep-alive</ses:value>
+ </ses:header>
+ <ses:header>
+ <ses:name>cookie</ses:name>
+ <ses:value>JSESSIONID=1EFA23C682DD4F794ADCF9D4D64176CB; JSESSIONID=BGW6JYzRPXwMGsREGLZ6XOzud7KqQEKDYx2UH92rwqrxUvl44p0a!-709003086</ses:value>
+ </ses:header>
+ <ses:header>
+ <ses:name>host</ses:name>
+ <ses:value>localhost:8080</ses:value>
+ </ses:header>
+ <ses:header>
+ <ses:name>keep-alive</ses:name>
+ <ses:value>300</ses:value>
+ </ses:header>
+ <ses:header>
+ <ses:name>user-agent</ses:name>
+ <ses:value>Mozilla/5.0 (Windows; U; Windows NT 5.1; en-US; rv:1.7) Gecko/20040803 Firefox/0.9.3</ses:value>
+ </ses:header>
+ </ses:headers>
+ </ses:request>
+ <ses:response>
+ <ses:statusCode>200</ses:statusCode>
+ <ses:reason/>
+ <ses:responseBody><![CDATA[<!DOCTYPE HTML PUBLIC "//W3C//DTD HTML 4.01 Transitional//EN"
+ "http://www.w3.org/TR/html4/loose.dtd">
+<html lang="en">
+<head>
+ <base href="http://localhost:8080/coreWeb/miniTests/backButton/index.jsp">
+ </head>
+ <body>
+ <form id="Netui_Form_0" action="/coreWeb/miniTests/backButton/submit.do" method="post">
+ state: <input type="text" name="{pageFlow.state}">
+ <input type="submit" value="submit">
+ </form>
+ <br/>
+ <a href="/coreWeb/miniTests/backButton/goNested.do">goNested</a>
+ </body>
+</html>]]></ses:responseBody>
+ </ses:response>
+ </ses:test>
+ <ses:test>
+ <ses:testNumber>2</ses:testNumber>
+ <ses:request>
+ <ses:protocol>HTTP</ses:protocol>
+ <ses:protocolVersion>1.1</ses:protocolVersion>
+ <ses:host>localhost</ses:host>
+ <ses:port>8080</ses:port>
+ <ses:uri>/coreWeb/miniTests/backButton/submit.do</ses:uri>
+ <ses:method>POST</ses:method>
+ <ses:parameters>
+ <ses:parameter>
+ <ses:name>{pageFlow.state}</ses:name>
+ <ses:value>hello</ses:value>
+ </ses:parameter>
+ </ses:parameters>
+ <ses:cookies>
+ <ses:cookie>
+ <ses:name>JSESSIONID</ses:name>
+ <ses:value>1EFA23C682DD4F794ADCF9D4D64176CB</ses:value>
+ </ses:cookie>
+ <ses:cookie>
+ <ses:name>JSESSIONID</ses:name>
+ <ses:value>BGW6JYzRPXwMGsREGLZ6XOzud7KqQEKDYx2UH92rwqrxUvl44p0a!-709003086</ses:value>
+ </ses:cookie>
+ </ses:cookies>
+ <ses:headers>
+ <ses:header>
+ <ses:name>accept</ses:name>
+ <ses:value>text/xml,application/xml,application/xhtml+xml,text/html;q=0.9,text/plain;q=0.8,image/png,*/*;q=0.5</ses:value>
+ </ses:header>
+ <ses:header>
+ <ses:name>accept-charset</ses:name>
+ <ses:value>ISO-8859-1,utf-8;q=0.7,*;q=0.7</ses:value>
+ </ses:header>
+ <ses:header>
+ <ses:name>accept-encoding</ses:name>
+ <ses:value>gzip,deflate</ses:value>
+ </ses:header>
+ <ses:header>
+ <ses:name>accept-language</ses:name>
+ <ses:value>en-us,en;q=0.5</ses:value>
+ </ses:header>
+ <ses:header>
+ <ses:name>connection</ses:name>
+ <ses:value>keep-alive</ses:value>
+ </ses:header>
+ <ses:header>
+ <ses:name>content-length</ses:name>
+ <ses:value>26</ses:value>
+ </ses:header>
+ <ses:header>
+ <ses:name>content-type</ses:name>
+ <ses:value>application/x-www-form-urlencoded</ses:value>
+ </ses:header>
+ <ses:header>
+ <ses:name>cookie</ses:name>
+ <ses:value>JSESSIONID=1EFA23C682DD4F794ADCF9D4D64176CB; JSESSIONID=BGW6JYzRPXwMGsREGLZ6XOzud7KqQEKDYx2UH92rwqrxUvl44p0a!-709003086</ses:value>
+ </ses:header>
+ <ses:header>
+ <ses:name>host</ses:name>
+ <ses:value>localhost:8080</ses:value>
+ </ses:header>
+ <ses:header>
+ <ses:name>keep-alive</ses:name>
+ <ses:value>300</ses:value>
+ </ses:header>
+ <ses:header>
+ <ses:name>referer</ses:name>
+ <ses:value>http://localhost:8080/coreWeb/miniTests/backButton/BackButtonController.jpf</ses:value>
+ </ses:header>
+ <ses:header>
+ <ses:name>user-agent</ses:name>
+ <ses:value>Mozilla/5.0 (Windows; U; Windows NT 5.1; en-US; rv:1.7) Gecko/20040803 Firefox/0.9.3</ses:value>
+ </ses:header>
+ </ses:headers>
+ </ses:request>
+ <ses:response>
+ <ses:statusCode>200</ses:statusCode>
+ <ses:reason/>
+ <ses:responseBody><![CDATA[<!DOCTYPE HTML PUBLIC "//W3C//DTD HTML 4.01 Transitional//EN"
+ "http://www.w3.org/TR/html4/loose.dtd">
+<html lang="en">
+<head>
+ <base href="http://localhost:8080/coreWeb/miniTests/backButton/index.jsp">
+ </head>
+ <body>
+ <form id="Netui_Form_0" action="/coreWeb/miniTests/backButton/submit.do" method="post">
+ state: <input type="text" name="{pageFlow.state}" value="hello">
+ <input type="submit" value="submit">
+ </form>
+ <br/>
+ <a href="/coreWeb/miniTests/backButton/goNested.do">goNested</a>
+ </body>
+</html>]]></ses:responseBody>
+ </ses:response>
+ </ses:test>
+ <ses:test>
+ <ses:testNumber>3</ses:testNumber>
+ <ses:request>
+ <ses:protocol>HTTP</ses:protocol>
+ <ses:protocolVersion>1.1</ses:protocolVersion>
+ <ses:host>localhost</ses:host>
+ <ses:port>8080</ses:port>
+ <ses:uri>/coreWeb/miniTests/backButton/goNested.do</ses:uri>
+ <ses:method>GET</ses:method>
+ <ses:parameters/>
+ <ses:cookies>
+ <ses:cookie>
+ <ses:name>JSESSIONID</ses:name>
+ <ses:value>1EFA23C682DD4F794ADCF9D4D64176CB</ses:value>
+ </ses:cookie>
+ <ses:cookie>
+ <ses:name>JSESSIONID</ses:name>
+ <ses:value>BGW6JYzRPXwMGsREGLZ6XOzud7KqQEKDYx2UH92rwqrxUvl44p0a!-709003086</ses:value>
+ </ses:cookie>
+ </ses:cookies>
+ <ses:headers>
+ <ses:header>
+ <ses:name>accept</ses:name>
+ <ses:value>text/xml,application/xml,application/xhtml+xml,text/html;q=0.9,text/plain;q=0.8,image/png,*/*;q=0.5</ses:value>
+ </ses:header>
+ <ses:header>
+ <ses:name>accept-charset</ses:name>
+ <ses:value>ISO-8859-1,utf-8;q=0.7,*;q=0.7</ses:value>
+ </ses:header>
+ <ses:header>
+ <ses:name>accept-encoding</ses:name>
+ <ses:value>gzip,deflate</ses:value>
+ </ses:header>
+ <ses:header>
+ <ses:name>accept-language</ses:name>
+ <ses:value>en-us,en;q=0.5</ses:value>
+ </ses:header>
+ <ses:header>
+ <ses:name>connection</ses:name>
+ <ses:value>keep-alive</ses:value>
+ </ses:header>
+ <ses:header>
+ <ses:name>cookie</ses:name>
+ <ses:value>JSESSIONID=1EFA23C682DD4F794ADCF9D4D64176CB; JSESSIONID=BGW6JYzRPXwMGsREGLZ6XOzud7KqQEKDYx2UH92rwqrxUvl44p0a!-709003086</ses:value>
+ </ses:header>
+ <ses:header>
+ <ses:name>host</ses:name>
+ <ses:value>localhost:8080</ses:value>
+ </ses:header>
+ <ses:header>
+ <ses:name>keep-alive</ses:name>
+ <ses:value>300</ses:value>
+ </ses:header>
+ <ses:header>
+ <ses:name>referer</ses:name>
+ <ses:value>http://localhost:8080/coreWeb/miniTests/backButton/submit.do</ses:value>
+ </ses:header>
+ <ses:header>
+ <ses:name>user-agent</ses:name>
+ <ses:value>Mozilla/5.0 (Windows; U; Windows NT 5.1; en-US; rv:1.7) Gecko/20040803 Firefox/0.9.3</ses:value>
+ </ses:header>
+ </ses:headers>
+ </ses:request>
+ <ses:response>
+ <ses:statusCode>200</ses:statusCode>
+ <ses:reason/>
+ <ses:responseBody><![CDATA[<!DOCTYPE HTML PUBLIC "//W3C//DTD HTML 4.01 Transitional//EN"
+ "http://www.w3.org/TR/html4/loose.dtd">
+<html lang="en">
+<head>
+ <base href="http://localhost:8080/coreWeb/miniTests/backButton/nestedOne/index.jsp">
+ </head>
+ <body>
+
+
+ <a href="/coreWeb/miniTests/backButton/nestedOne/done.do">return from nesting</a>
+ <br/>
+ <a href="/coreWeb/miniTests/backButton/nestedOne/backButton.do">simulate back button</a>
+ <br/>
+ <a href="/coreWeb/miniTests/backButton/nestedOne/goNestedTwo.do">goNestedTwo</a>
+
+
+ </body>
+</html>]]></ses:responseBody>
+ </ses:response>
+ </ses:test>
+ <ses:test>
+ <ses:testNumber>4</ses:testNumber>
+ <ses:request>
+ <ses:protocol>HTTP</ses:protocol>
+ <ses:protocolVersion>1.1</ses:protocolVersion>
+ <ses:host>localhost</ses:host>
+ <ses:port>8080</ses:port>
+ <ses:uri>/coreWeb/miniTests/backButton/nestedOne/done.do</ses:uri>
+ <ses:method>GET</ses:method>
+ <ses:parameters/>
+ <ses:cookies>
+ <ses:cookie>
+ <ses:name>JSESSIONID</ses:name>
+ <ses:value>1EFA23C682DD4F794ADCF9D4D64176CB</ses:value>
+ </ses:cookie>
+ <ses:cookie>
+ <ses:name>JSESSIONID</ses:name>
+ <ses:value>BGW6JYzRPXwMGsREGLZ6XOzud7KqQEKDYx2UH92rwqrxUvl44p0a!-709003086</ses:value>
+ </ses:cookie>
+ </ses:cookies>
+ <ses:headers>
+ <ses:header>
+ <ses:name>accept</ses:name>
+ <ses:value>text/xml,application/xml,application/xhtml+xml,text/html;q=0.9,text/plain;q=0.8,image/png,*/*;q=0.5</ses:value>
+ </ses:header>
+ <ses:header>
+ <ses:name>accept-charset</ses:name>
+ <ses:value>ISO-8859-1,utf-8;q=0.7,*;q=0.7</ses:value>
+ </ses:header>
+ <ses:header>
+ <ses:name>accept-encoding</ses:name>
+ <ses:value>gzip,deflate</ses:value>
+ </ses:header>
+ <ses:header>
+ <ses:name>accept-language</ses:name>
+ <ses:value>en-us,en;q=0.5</ses:value>
+ </ses:header>
+ <ses:header>
+ <ses:name>connection</ses:name>
+ <ses:value>keep-alive</ses:value>
+ </ses:header>
+ <ses:header>
+ <ses:name>cookie</ses:name>
+ <ses:value>JSESSIONID=1EFA23C682DD4F794ADCF9D4D64176CB; JSESSIONID=BGW6JYzRPXwMGsREGLZ6XOzud7KqQEKDYx2UH92rwqrxUvl44p0a!-709003086</ses:value>
+ </ses:header>
+ <ses:header>
+ <ses:name>host</ses:name>
+ <ses:value>localhost:8080</ses:value>
+ </ses:header>
+ <ses:header>
+ <ses:name>keep-alive</ses:name>
+ <ses:value>300</ses:value>
+ </ses:header>
+ <ses:header>
+ <ses:name>referer</ses:name>
+ <ses:value>http://localhost:8080/coreWeb/miniTests/backButton/goNested.do</ses:value>
+ </ses:header>
+ <ses:header>
+ <ses:name>user-agent</ses:name>
+ <ses:value>Mozilla/5.0 (Windows; U; Windows NT 5.1; en-US; rv:1.7) Gecko/20040803 Firefox/0.9.3</ses:value>
+ </ses:header>
+ </ses:headers>
+ </ses:request>
+ <ses:response>
+ <ses:statusCode>200</ses:statusCode>
+ <ses:reason/>
+ <ses:responseBody><![CDATA[<!DOCTYPE HTML PUBLIC "//W3C//DTD HTML 4.01 Transitional//EN"
+ "http://www.w3.org/TR/html4/loose.dtd">
+<html lang="en">
+<head>
+ <base href="http://localhost:8080/coreWeb/miniTests/backButton/index.jsp">
+ </head>
+ <body>
+ <form id="Netui_Form_0" action="/coreWeb/miniTests/backButton/submit.do" method="post">
+ state: <input type="text" name="{pageFlow.state}" value="hello">
+ <input type="submit" value="submit">
+ </form>
+ <br/>
+ <a href="/coreWeb/miniTests/backButton/goNested.do">goNested</a>
+ </body>
+</html>]]></ses:responseBody>
+ </ses:response>
+ </ses:test>
+ <ses:test>
+ <ses:testNumber>5</ses:testNumber>
+ <ses:request>
+ <ses:protocol>HTTP</ses:protocol>
+ <ses:protocolVersion>1.1</ses:protocolVersion>
+ <ses:host>localhost</ses:host>
+ <ses:port>8080</ses:port>
+ <ses:uri>/coreWeb/miniTests/backButton/goNested.do</ses:uri>
+ <ses:method>GET</ses:method>
+ <ses:parameters/>
+ <ses:cookies>
+ <ses:cookie>
+ <ses:name>JSESSIONID</ses:name>
+ <ses:value>1EFA23C682DD4F794ADCF9D4D64176CB</ses:value>
+ </ses:cookie>
+ <ses:cookie>
+ <ses:name>JSESSIONID</ses:name>
+ <ses:value>BGW6JYzRPXwMGsREGLZ6XOzud7KqQEKDYx2UH92rwqrxUvl44p0a!-709003086</ses:value>
+ </ses:cookie>
+ </ses:cookies>
+ <ses:headers>
+ <ses:header>
+ <ses:name>accept</ses:name>
+ <ses:value>text/xml,application/xml,application/xhtml+xml,text/html;q=0.9,text/plain;q=0.8,image/png,*/*;q=0.5</ses:value>
+ </ses:header>
+ <ses:header>
+ <ses:name>accept-charset</ses:name>
+ <ses:value>ISO-8859-1,utf-8;q=0.7,*;q=0.7</ses:value>
+ </ses:header>
+ <ses:header>
+ <ses:name>accept-encoding</ses:name>
+ <ses:value>gzip,deflate</ses:value>
+ </ses:header>
+ <ses:header>
+ <ses:name>accept-language</ses:name>
+ <ses:value>en-us,en;q=0.5</ses:value>
+ </ses:header>
+ <ses:header>
+ <ses:name>connection</ses:name>
+ <ses:value>keep-alive</ses:value>
+ </ses:header>
+ <ses:header>
+ <ses:name>cookie</ses:name>
+ <ses:value>JSESSIONID=1EFA23C682DD4F794ADCF9D4D64176CB; JSESSIONID=BGW6JYzRPXwMGsREGLZ6XOzud7KqQEKDYx2UH92rwqrxUvl44p0a!-709003086</ses:value>
+ </ses:header>
+ <ses:header>
+ <ses:name>host</ses:name>
+ <ses:value>localhost:8080</ses:value>
+ </ses:header>
+ <ses:header>
+ <ses:name>keep-alive</ses:name>
+ <ses:value>300</ses:value>
+ </ses:header>
+ <ses:header>
+ <ses:name>referer</ses:name>
+ <ses:value>http://localhost:8080/coreWeb/miniTests/backButton/nestedOne/done.do</ses:value>
+ </ses:header>
+ <ses:header>
+ <ses:name>user-agent</ses:name>
+ <ses:value>Mozilla/5.0 (Windows; U; Windows NT 5.1; en-US; rv:1.7) Gecko/20040803 Firefox/0.9.3</ses:value>
+ </ses:header>
+ </ses:headers>
+ </ses:request>
+ <ses:response>
+ <ses:statusCode>200</ses:statusCode>
+ <ses:reason/>
+ <ses:responseBody><![CDATA[<!DOCTYPE HTML PUBLIC "//W3C//DTD HTML 4.01 Transitional//EN"
+ "http://www.w3.org/TR/html4/loose.dtd">
+<html lang="en">
+<head>
+ <base href="http://localhost:8080/coreWeb/miniTests/backButton/nestedOne/index.jsp">
+ </head>
+ <body>
+
+
+ <a href="/coreWeb/miniTests/backButton/nestedOne/done.do">return from nesting</a>
+ <br/>
+ <a href="/coreWeb/miniTests/backButton/nestedOne/backButton.do">simulate back button</a>
+ <br/>
+ <a href="/coreWeb/miniTests/backButton/nestedOne/goNestedTwo.do">goNestedTwo</a>
+
+
+ </body>
+</html>]]></ses:responseBody>
+ </ses:response>
+ </ses:test>
+ <ses:test>
+ <ses:testNumber>6</ses:testNumber>
+ <ses:request>
+ <ses:protocol>HTTP</ses:protocol>
+ <ses:protocolVersion>1.1</ses:protocolVersion>
+ <ses:host>localhost</ses:host>
+ <ses:port>8080</ses:port>
+ <ses:uri>/coreWeb/miniTests/backButton/nestedOne/backButton.do</ses:uri>
+ <ses:method>GET</ses:method>
+ <ses:parameters/>
+ <ses:cookies>
+ <ses:cookie>
+ <ses:name>JSESSIONID</ses:name>
+ <ses:value>1EFA23C682DD4F794ADCF9D4D64176CB</ses:value>
+ </ses:cookie>
+ <ses:cookie>
+ <ses:name>JSESSIONID</ses:name>
+ <ses:value>BGW6JYzRPXwMGsREGLZ6XOzud7KqQEKDYx2UH92rwqrxUvl44p0a!-709003086</ses:value>
+ </ses:cookie>
+ </ses:cookies>
+ <ses:headers>
+ <ses:header>
+ <ses:name>accept</ses:name>
+ <ses:value>text/xml,application/xml,application/xhtml+xml,text/html;q=0.9,text/plain;q=0.8,image/png,*/*;q=0.5</ses:value>
+ </ses:header>
+ <ses:header>
+ <ses:name>accept-charset</ses:name>
+ <ses:value>ISO-8859-1,utf-8;q=0.7,*;q=0.7</ses:value>
+ </ses:header>
+ <ses:header>
+ <ses:name>accept-encoding</ses:name>
+ <ses:value>gzip,deflate</ses:value>
+ </ses:header>
+ <ses:header>
+ <ses:name>accept-language</ses:name>
+ <ses:value>en-us,en;q=0.5</ses:value>
+ </ses:header>
+ <ses:header>
+ <ses:name>connection</ses:name>
+ <ses:value>keep-alive</ses:value>
+ </ses:header>
+ <ses:header>
+ <ses:name>cookie</ses:name>
+ <ses:value>JSESSIONID=1EFA23C682DD4F794ADCF9D4D64176CB; JSESSIONID=BGW6JYzRPXwMGsREGLZ6XOzud7KqQEKDYx2UH92rwqrxUvl44p0a!-709003086</ses:value>
+ </ses:header>
+ <ses:header>
+ <ses:name>host</ses:name>
+ <ses:value>localhost:8080</ses:value>
+ </ses:header>
+ <ses:header>
+ <ses:name>keep-alive</ses:name>
+ <ses:value>300</ses:value>
+ </ses:header>
+ <ses:header>
+ <ses:name>referer</ses:name>
+ <ses:value>http://localhost:8080/coreWeb/miniTests/backButton/goNested.do</ses:value>
+ </ses:header>
+ <ses:header>
+ <ses:name>user-agent</ses:name>
+ <ses:value>Mozilla/5.0 (Windows; U; Windows NT 5.1; en-US; rv:1.7) Gecko/20040803 Firefox/0.9.3</ses:value>
+ </ses:header>
+ </ses:headers>
+ </ses:request>
+ <ses:response>
+ <ses:statusCode>200</ses:statusCode>
+ <ses:reason/>
+ <ses:responseBody><![CDATA[<!DOCTYPE HTML PUBLIC "//W3C//DTD HTML 4.01 Transitional//EN"
+ "http://www.w3.org/TR/html4/loose.dtd">
+<html lang="en">
+<head>
+ <base href="http://localhost:8080/coreWeb/miniTests/backButton/index.jsp">
+ </head>
+ <body>
+ <form id="Netui_Form_0" action="/coreWeb/miniTests/backButton/submit.do" method="post">
+ state: <input type="text" name="{pageFlow.state}" value="hello">
+ <input type="submit" value="submit">
+ </form>
+ <br/>
+ <a href="/coreWeb/miniTests/backButton/goNested.do">goNested</a>
+ </body>
+</html>]]></ses:responseBody>
+ </ses:response>
+ </ses:test>
+ </ses:tests>
+ <ses:endDate>14 Sep 2004, 01:07:46.442 AM MDT</ses:endDate>
+ <ses:testCount>6</ses:testCount>
+</ses:recorderSession>