Author: rich Date: Fri Jan 21 01:06:52 2005 New Revision: 125908 URL: http://svn.apache.org/viewcvs?view=rev&rev=125908 Log: Changes to allow preservation of the component tree in a JSF page, so the page can be returned to (intact) using a @Jpf.Forward with navigateTo=Jpf.NavigateTo.currentPage or navigateTo=Jpf.NavigateTo.previousPage.
Also, fixed the JSF DRT app to run again (mostly build changes). DRT/BVT: netui (WinXP) BB: self (linux) Added: incubator/beehive/trunk/netui/test/webapps/jsf/jsfWeb/restorePreviousPage/ incubator/beehive/trunk/netui/test/webapps/jsf/jsfWeb/restorePreviousPage/Controller.jpf (contents, props changed) incubator/beehive/trunk/netui/test/webapps/jsf/jsfWeb/restorePreviousPage/page1.jsfb (contents, props changed) incubator/beehive/trunk/netui/test/webapps/jsf/jsfWeb/restorePreviousPage/page1.jsp (contents, props changed) incubator/beehive/trunk/netui/test/webapps/jsf/jsfWeb/restorePreviousPage/page2.jsfb (contents, props changed) incubator/beehive/trunk/netui/test/webapps/jsf/jsfWeb/restorePreviousPage/page2.jsp (contents, props changed) incubator/beehive/trunk/netui/test/webapps/jsf/testRecorder/tests/RestorePreviousPage.xml (contents, props changed) incubator/beehive/trunk/netui/test/webapps/urlTemplates/urlTemplates/index/Beehive.gif (contents, props changed) incubator/beehive/trunk/netui/test/webapps/urlTemplates/urlTemplates/index/linkDown.gif (contents, props changed) incubator/beehive/trunk/netui/test/webapps/urlTemplates/urlTemplates/index/linkOver.gif (contents, props changed) Removed: incubator/beehive/trunk/netui/test/webapps/drt/coreWeb/miniTests/updateFormFromNestedPopup/ttt Modified: incubator/beehive/trunk/netui/src/pageflow/org/apache/beehive/netui/pageflow/ForwardHandler.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/PreviousPageInfo.java incubator/beehive/trunk/netui/src/pageflow/org/apache/beehive/netui/pageflow/faces/internal/PageFlowViewHandler.java incubator/beehive/trunk/netui/src/pageflow/org/apache/beehive/netui/pageflow/internal/RequestValues.java incubator/beehive/trunk/netui/test/webapps/jsf/build.xml incubator/beehive/trunk/netui/test/webapps/jsf/testRecorder/config/testRecorder-tests.xml incubator/beehive/trunk/netui/test/webapps/jsf/testRecorder/tests/BindingInFaces.xml incubator/beehive/trunk/netui/test/webapps/jsf/testRecorder/tests/SubmitFormBean.xml Modified: incubator/beehive/trunk/netui/src/pageflow/org/apache/beehive/netui/pageflow/ForwardHandler.java Url: http://svn.apache.org/viewcvs/incubator/beehive/trunk/netui/src/pageflow/org/apache/beehive/netui/pageflow/ForwardHandler.java?view=diff&rev=125908&p1=incubator/beehive/trunk/netui/src/pageflow/org/apache/beehive/netui/pageflow/ForwardHandler.java&r1=125907&p2=incubator/beehive/trunk/netui/src/pageflow/org/apache/beehive/netui/pageflow/ForwardHandler.java&r2=125908 ============================================================================== --- incubator/beehive/trunk/netui/src/pageflow/org/apache/beehive/netui/pageflow/ForwardHandler.java (original) +++ incubator/beehive/trunk/netui/src/pageflow/org/apache/beehive/netui/pageflow/ForwardHandler.java Fri Jan 21 01:06:52 2005 @@ -339,6 +339,7 @@ } } + RequestValues.setPreviousPageInfo( request, prevPageInfo ); return retFwd; } Modified: incubator/beehive/trunk/netui/src/pageflow/org/apache/beehive/netui/pageflow/PageFlowController.java Url: http://svn.apache.org/viewcvs/incubator/beehive/trunk/netui/src/pageflow/org/apache/beehive/netui/pageflow/PageFlowController.java?view=diff&rev=125908&p1=incubator/beehive/trunk/netui/src/pageflow/org/apache/beehive/netui/pageflow/PageFlowController.java&r1=125907&p2=incubator/beehive/trunk/netui/src/pageflow/org/apache/beehive/netui/pageflow/PageFlowController.java&r2=125908 ============================================================================== --- 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 Fri Jan 21 01:06:52 2005 @@ -21,8 +21,6 @@ import javax.servlet.http.HttpServletResponse; import javax.servlet.http.HttpSessionBindingEvent; import javax.servlet.ServletContext; -import javax.servlet.ServletRequest; -import javax.servlet.ServletResponse; import java.lang.reflect.Field; import java.util.Map; @@ -91,6 +89,7 @@ private ViewRenderer _returnActionViewRenderer = null; private static final String DELETING_PAGEFLOW_ATTR = InternalConstants.ATTR_PREFIX + "deletingPageFlow"; + private static final String SAVED_PREVIOUS_PAGE_INFO_ATTR = InternalConstants.ATTR_PREFIX + "savedPrevPageInfo"; private static final String CACHED_INFO_KEY = "cachedInfo"; private static final Logger _log = Logger.getInstance( PageFlowController.class ); @@ -447,7 +446,7 @@ * @see #getPreviousFormBean * @see #getPreviousForwardPath */ - protected String getCurrentForwardPath() + public String getCurrentForwardPath() { PreviousPageInfo curPageInfo = getCurrentPageInfo(); String path = null; @@ -649,7 +648,7 @@ return getURI(); } - private boolean isPreviousActionInfoDisabled() + public boolean isPreviousActionInfoDisabled() { if ( alwaysTrackPreviousAction() ) return false; @@ -658,7 +657,7 @@ return cc instanceof PageFlowControllerConfig && ( ( PageFlowControllerConfig ) cc ).isReturnToActionDisabled(); } - private boolean isPreviousPageInfoDisabled() + public boolean isPreviousPageInfoDisabled() { if ( alwaysTrackPreviousPage() ) return false; @@ -688,20 +687,17 @@ HttpServletRequest request, ServletContext servletContext, boolean isSpecialForward ) { - // - // If previous-page is disabled (unused in this pageflow), just return. - // - if ( isPreviousPageInfoDisabled() ) return; - if ( forward != null ) { + // + // If previous-page is disabled (unused in this pageflow), or if we've already saved prevous-page info in + // this request (for example, forward to foo.faces which forwards to foo.jsp), just return. + // + if ( request.getAttribute( SAVED_PREVIOUS_PAGE_INFO_ATTR ) != null || isPreviousPageInfoDisabled() ) return; + String path = forward.getPath(); int queryPos = path.indexOf( '?' ); - - if ( queryPos != -1 ) - { - path = path.substring( 0, queryPos ); - } + if ( queryPos != -1 ) path = path.substring( 0, queryPos ); // // If a form bean was generated in this request, add it to the most recent PreviousPageInfo, so when we @@ -730,6 +726,7 @@ { _previousPageInfo = _currentPageInfo; _currentPageInfo = new PreviousPageInfo( forward, form, mapping ); + request.setAttribute( SAVED_PREVIOUS_PAGE_INFO_ATTR, Boolean.TRUE ); } } } Modified: incubator/beehive/trunk/netui/src/pageflow/org/apache/beehive/netui/pageflow/PreviousPageInfo.java Url: http://svn.apache.org/viewcvs/incubator/beehive/trunk/netui/src/pageflow/org/apache/beehive/netui/pageflow/PreviousPageInfo.java?view=diff&rev=125908&p1=incubator/beehive/trunk/netui/src/pageflow/org/apache/beehive/netui/pageflow/PreviousPageInfo.java&r1=125907&p2=incubator/beehive/trunk/netui/src/pageflow/org/apache/beehive/netui/pageflow/PreviousPageInfo.java&r2=125908 ============================================================================== --- incubator/beehive/trunk/netui/src/pageflow/org/apache/beehive/netui/pageflow/PreviousPageInfo.java (original) +++ incubator/beehive/trunk/netui/src/pageflow/org/apache/beehive/netui/pageflow/PreviousPageInfo.java Fri Jan 21 01:06:52 2005 @@ -37,6 +37,7 @@ private ActionForm _form; private String _mappingPath; private transient ActionMapping _mapping; + private Object _clientState; /** @@ -140,5 +141,21 @@ public void setForward( ActionForward forward ) { _forward = forward; + } + + /** + * Get client state associated with the page (e.g., component tree state for a JSF page). + */ + public Object getClientState() + { + return _clientState; + } + + /** + * Set client state associated with the page (e.g., component tree state for a JSF page). + */ + public void setClientState( Object clientState ) + { + _clientState = clientState; } } Modified: incubator/beehive/trunk/netui/src/pageflow/org/apache/beehive/netui/pageflow/faces/internal/PageFlowViewHandler.java Url: http://svn.apache.org/viewcvs/incubator/beehive/trunk/netui/src/pageflow/org/apache/beehive/netui/pageflow/faces/internal/PageFlowViewHandler.java?view=diff&rev=125908&p1=incubator/beehive/trunk/netui/src/pageflow/org/apache/beehive/netui/pageflow/faces/internal/PageFlowViewHandler.java&r1=125907&p2=incubator/beehive/trunk/netui/src/pageflow/org/apache/beehive/netui/pageflow/faces/internal/PageFlowViewHandler.java&r2=125908 ============================================================================== --- incubator/beehive/trunk/netui/src/pageflow/org/apache/beehive/netui/pageflow/faces/internal/PageFlowViewHandler.java (original) +++ incubator/beehive/trunk/netui/src/pageflow/org/apache/beehive/netui/pageflow/faces/internal/PageFlowViewHandler.java Fri Jan 21 01:06:52 2005 @@ -17,6 +17,11 @@ */ package org.apache.beehive.netui.pageflow.faces.internal; +import org.apache.beehive.netui.pageflow.PageFlowUtils; +import org.apache.beehive.netui.pageflow.PageFlowController; +import org.apache.beehive.netui.pageflow.PreviousPageInfo; +import org.apache.beehive.netui.pageflow.internal.RequestValues; + import javax.faces.application.ViewHandler; import javax.faces.context.FacesContext; import javax.faces.component.UIViewRoot; @@ -52,7 +57,32 @@ public UIViewRoot createView(FacesContext context, String viewId) { - return _delegate.createView( context, viewId ); + Object request = context.getExternalContext().getRequest(); + HttpServletRequest httpRequest = null; + + // + // First, if this is a navigateTo=Jpf.NavigateTo.currentPage or a navigateTo=Jpf.NavigateTo.previousPage, + // see if we've saved view state from the original page. If so, just restore that. + // + if ( request instanceof HttpServletRequest ) + { + httpRequest = ( HttpServletRequest ) request; + PreviousPageInfo prevPageInfo = RequestValues.getPreviousPageInfo( httpRequest, true ); + + if ( prevPageInfo != null ) + { + Object clientState = prevPageInfo.getClientState(); + + if ( clientState != null && clientState instanceof UIViewRoot ) + { + return ( UIViewRoot ) clientState; + } + } + } + + UIViewRoot viewRoot = _delegate.createView( context, viewId ); + savePreviousPageInfo( httpRequest, viewId, viewRoot ); + return viewRoot; } public String getActionURL(FacesContext context, String viewId) @@ -78,20 +108,44 @@ public UIViewRoot restoreView(FacesContext context, String viewId) { Object request = context.getExternalContext().getRequest(); + HttpServletRequest httpRequest = null; if ( request instanceof HttpServletRequest ) { - HttpServletRequest httpRequest = ( HttpServletRequest ) request; + httpRequest = ( HttpServletRequest ) request; + // + // If we did a forward in PageFlowNavigationHandler, don't try to restore the view. + // if ( httpRequest.getAttribute( PageFlowNavigationHandler.ALREADY_FORWARDED_ATTR ) != null ) { return null; } } - return _delegate.restoreView( context, viewId ); + UIViewRoot viewRoot = _delegate.restoreView( context, viewId ); + savePreviousPageInfo( httpRequest, viewId, viewRoot ); + return viewRoot; } + private static void savePreviousPageInfo( HttpServletRequest request, String viewId, UIViewRoot viewRoot ) + { + // + // Save the current view state in the PreviousPageInfo structure of the current page flow. + // + if ( request != null ) + { + PageFlowController curPageFlow = PageFlowUtils.getCurrentPageFlow( request ); + + if ( curPageFlow != null && ! curPageFlow.isPreviousPageInfoDisabled() + && viewId.equals( curPageFlow.getCurrentForwardPath() ) ) + { + PreviousPageInfo prevPageInfo = curPageFlow.getCurrentPageInfo(); + prevPageInfo.setClientState( viewRoot ); + } + } + } + public void writeState(FacesContext context) throws IOException { _delegate.writeState( context ); Modified: incubator/beehive/trunk/netui/src/pageflow/org/apache/beehive/netui/pageflow/internal/RequestValues.java Url: http://svn.apache.org/viewcvs/incubator/beehive/trunk/netui/src/pageflow/org/apache/beehive/netui/pageflow/internal/RequestValues.java?view=diff&rev=125908&p1=incubator/beehive/trunk/netui/src/pageflow/org/apache/beehive/netui/pageflow/internal/RequestValues.java&r1=125907&p2=incubator/beehive/trunk/netui/src/pageflow/org/apache/beehive/netui/pageflow/internal/RequestValues.java&r2=125908 ============================================================================== --- incubator/beehive/trunk/netui/src/pageflow/org/apache/beehive/netui/pageflow/internal/RequestValues.java (original) +++ incubator/beehive/trunk/netui/src/pageflow/org/apache/beehive/netui/pageflow/internal/RequestValues.java Fri Jan 21 01:06:52 2005 @@ -19,6 +19,7 @@ import org.apache.struts.action.ActionForm; import org.apache.beehive.netui.pageflow.FlowController; +import org.apache.beehive.netui.pageflow.PreviousPageInfo; import javax.servlet.ServletRequest; @@ -36,6 +37,7 @@ private static final String FORWARDED_FORMBEAN_ATTR = ATTR_PREFIX + "forwardedForm"; private static final String CURRENT_FLOWCONTROLLER_ATTR = ATTR_PREFIX + "flowController"; private static final String VIEW_RENDERER_ATTR = ATTR_PREFIX + "viewRenderer"; + private static final String PREVIOUS_PAGE_INFO_ATTR = ATTR_PREFIX + "prevPageInfo"; public static boolean isForwardedRequest( ServletRequest request ) @@ -129,5 +131,17 @@ public static void setViewRenderer( ServletRequest request, ViewRenderer viewRenderer ) { request.setAttribute( VIEW_RENDERER_ATTR, viewRenderer ); + } + + public static PreviousPageInfo getPreviousPageInfo( ServletRequest request, boolean remove ) + { + PreviousPageInfo prevPageInfo = ( PreviousPageInfo ) request.getAttribute( PREVIOUS_PAGE_INFO_ATTR ); + if ( prevPageInfo != null && remove ) request.removeAttribute( PREVIOUS_PAGE_INFO_ATTR ); + return prevPageInfo; + } + + public static void setPreviousPageInfo( ServletRequest request, PreviousPageInfo previousPageInfo ) + { + request.setAttribute( PREVIOUS_PAGE_INFO_ATTR, previousPageInfo ); } } Deleted: /incubator/beehive/trunk/netui/test/webapps/drt/coreWeb/miniTests/updateFormFromNestedPopup/ttt Url: http://svn.apache.org/viewcvs/incubator/beehive/trunk/netui/test/webapps/drt/coreWeb/miniTests/updateFormFromNestedPopup/ttt?view=auto&rev=125907 ============================================================================== Modified: incubator/beehive/trunk/netui/test/webapps/jsf/build.xml Url: http://svn.apache.org/viewcvs/incubator/beehive/trunk/netui/test/webapps/jsf/build.xml?view=diff&rev=125908&p1=incubator/beehive/trunk/netui/test/webapps/jsf/build.xml&r1=125907&p2=incubator/beehive/trunk/netui/test/webapps/jsf/build.xml&r2=125908 ============================================================================== --- incubator/beehive/trunk/netui/test/webapps/jsf/build.xml (original) +++ incubator/beehive/trunk/netui/test/webapps/jsf/build.xml Fri Jan 21 01:06:52 2005 @@ -11,6 +11,7 @@ <property name="testRecorder.config.name" value="netui-server-jsf-config"/> <property name="server.root.url" value="http://localhost:8080"/> <property name="webapp.waitfor.url" value="${server.root.url}/${webapp.name}"/> + <property name="webapp.dir" location="${app.dir}/jsf/${webapp.name}"/> <!-- ================================================================ --> <!-- --> @@ -18,9 +19,31 @@ <!-- --> <!-- ================================================================ --> <target name="build" description="Build webapp"> + <echo message="--------------------------------------------------"/> + <echo message="| NetUI jsfWeb DRT webapp build starting |"/> + <echo message="--------------------------------------------------"/> + <fail unless="os.JSF_HOME" message="JSF_HOME must point to the JavaServer Faces 1.1 Reference Implementation distribution."/> - <property name="webapp.dir" location="${app.dir}/jsf/${webapp.name}"/> + <!-- the default version of Struts for the DRTs. To override, pass -Dstruts.version=1.1 on the command line --> + <property name="struts.version" value="1.2"/> + + <echo>struts.version: ${struts.version}</echo> + + <ant antfile="${test.dir}/ant/buildWebapp.xml" target="deploy.netui" inheritAll="false"> + <property name="webapp.dir" location="${webapp.dir}"/> + <property name="include.testrecorder" value="true"/> + <property name="testRecorder.config.name" value="${testRecorder.config.name}"/> + <property name="test.file" location="${app.dir}/jsf/testRecorder/config/testRecorder-tests.xml"/> + <property name="config.file" location="${app.dir}/jsf/testRecorder/config/testRecorder-config.xml"/> + <property name="webapp.file" location="${app.dir}/jsf/testRecorder/config/testRecorder-webapp.xml"/> + <property name="struts.version" value="${struts.version}"/> + </ant> + + <copy file="${webapp.dir}/WEB-INF/local-netui-config.xml" + tofile="${webapp.dir}/WEB-INF/${netuiconfig.xml.name}" + overwrite="true" failonerror="false"/> + <property name="webinf.dir" value="${webapp.dir}/WEB-INF"/> <copy todir="${webinf.dir}/lib" overwrite="true" failonerror="true"> <fileset dir="${os.JSF_HOME}/lib"> @@ -33,25 +56,20 @@ </fileset> </copy> - <ant antfile="${test.dir}/ant/buildWebapp.xml" target="deploy.netui" inheritAll="false"> - <property name="webapp.dir" location="${app.dir}/jsf/${webapp.name}"/> - <property name="include.testrecorder" value="true"/> - <property name="testRecorder.config.name" value="${testRecorder.config.name}"/> - <property name="test.file" location="${app.dir}/jsf/testRecorder/config/testRecorder-tests.xml"/> - <property name="config.file" location="${app.dir}/jsf/testRecorder/config/testRecorder-config.xml"/> - <property name="webapp.file" location="${app.dir}/jsf/testRecorder/config/testRecorder-webapp.xml"/> - </ant> + <build-webapp webappDir="${webapp.dir}"/> + + <echo message="--------------------------------------------------"/> + <echo message="| NetUI jsfWeb DRT webapp build ending |"/> + <echo message="--------------------------------------------------"/> - <ant antfile="${buildWebapp.ant}" target="build.webapp" inheritAll="false"> - <property name="webapp.dir" location="${app.dir}/jsf/${webapp.name}"/> - </ant> </target> <target name="clean" description="Clean webapp"> <ant antfile="${test.dir}/ant/buildWebapp.xml" target="undeploy.netui" inheritAll="false"> - <property name="webapp.dir" location="${app.dir}/jsf/${webapp.name}"/> + <property name="webapp.dir" location="${webapp.dir}"/> <property name="include.testrecorder" value="true"/> </ant> + <clean-webapp webappDir="${webapp.dir}"/> </target> <!-- ================================================================ --> @@ -92,22 +110,15 @@ <!-- --> <!-- ================================================================ --> <target name="deploy" description="Deploy webapp"> - <ant antfile="${buildWebapp.ant}" target="deploy" inheritAll="false"> - <property name="context.path" value="${webapp.name}"/> - <property name="webapp.dir" value="${app.dir}/jsf/${webapp.name}"/> - </ant> + <deploy-webapp webappDir="${webapp.dir}" contextPath="${webapp.name}"/> </target> <target name="undeploy" description="Undeploy webapp"> - <ant antfile="${buildWebapp.ant}" target="undeploy" inheritAll="false"> - <property name="context.path" value="${webapp.name}"/> - </ant> + <undeploy-webapp contextPath="${webapp.name}"/> </target> <target name="redeploy" description="Redeploy webapp"> - <ant antfile="${buildWebapp.ant}" target="redeploy" inheritAll="false"> - <property name="context.path" value="${webapp.name}"/> - </ant> + <redeploy-webapp contextPath="${webapp.name}"/> </target> <!-- ================================================================ --> @@ -116,11 +127,19 @@ <!-- --> <!-- ================================================================ --> <target name="start" description="Start server"> - <ant antfile="${buildWebapp.ant}" target="start" inheritAll="false"/> + <start-server shmem="false" javaOptions="-ea:org.apache.beehive.netui..."/> + </target> + + <target name="start.without.asserts" description="Start server without assertions enabled"> + <start-server shmem="false" javaOptions=""/> + </target> + + <target name="start.with.shmem" description="Start server with shared memory debugging enabled"> + <start-server shmem="true" javaOptions="-ea:org.apache.beehive.netui..."/> </target> <target name="stop" description="Stop server"> - <ant antfile="${buildWebapp.ant}" target="stop" inheritAll="false"/> + <stop-server/> </target> <target name="usage"> Added: incubator/beehive/trunk/netui/test/webapps/jsf/jsfWeb/restorePreviousPage/Controller.jpf Url: http://svn.apache.org/viewcvs/incubator/beehive/trunk/netui/test/webapps/jsf/jsfWeb/restorePreviousPage/Controller.jpf?view=auto&rev=125908 ============================================================================== --- (empty file) +++ incubator/beehive/trunk/netui/test/webapps/jsf/jsfWeb/restorePreviousPage/Controller.jpf Fri Jan 21 01:06:52 2005 @@ -0,0 +1,16 @@ +package restorePreviousPage; + +import org.apache.beehive.netui.pageflow.PageFlowController; +import org.apache.beehive.netui.pageflow.annotations.Jpf; + [EMAIL PROTECTED]( + simpleActions={ + @Jpf.SimpleAction(name="begin", path="page1.faces"), + @Jpf.SimpleAction(name="go2", path="page2.faces"), + @Jpf.SimpleAction(name="goCur", navigateTo=Jpf.NavigateTo.currentPage), + @Jpf.SimpleAction(name="goPrev", navigateTo=Jpf.NavigateTo.previousPage) + } +) +public class Controller extends PageFlowController +{ +} Added: incubator/beehive/trunk/netui/test/webapps/jsf/jsfWeb/restorePreviousPage/page1.jsfb Url: http://svn.apache.org/viewcvs/incubator/beehive/trunk/netui/test/webapps/jsf/jsfWeb/restorePreviousPage/page1.jsfb?view=auto&rev=125908 ============================================================================== --- (empty file) +++ incubator/beehive/trunk/netui/test/webapps/jsf/jsfWeb/restorePreviousPage/page1.jsfb Fri Jan 21 01:06:52 2005 @@ -0,0 +1,9 @@ +package restorePreviousPage; + +import org.apache.beehive.netui.pageflow.FacesBackingBean; +import org.apache.beehive.netui.pageflow.annotations.Jpf; + [EMAIL PROTECTED] +public class page1 extends FacesBackingBean +{ +} Added: incubator/beehive/trunk/netui/test/webapps/jsf/jsfWeb/restorePreviousPage/page1.jsp Url: http://svn.apache.org/viewcvs/incubator/beehive/trunk/netui/test/webapps/jsf/jsfWeb/restorePreviousPage/page1.jsp?view=auto&rev=125908 ============================================================================== --- (empty file) +++ incubator/beehive/trunk/netui/test/webapps/jsf/jsfWeb/restorePreviousPage/page1.jsp Fri Jan 21 01:06:52 2005 @@ -0,0 +1,24 @@ +<%@ page language="java" contentType="text/html;charset=UTF-8"%> +<%@ taglib prefix="f" uri="http://java.sun.com/jsf/core"%> +<%@ taglib prefix="h" uri="http://java.sun.com/jsf/html"%> + + +<html> + <head> + </head> + <body> + <f:view> + <h:form> + text: <h:inputText /> + <br/> + <h:commandLink action="goCur" value="stay here, using navigateTo (state is restored)" /> + <br/> + <h:commandLink action="begin" value="stay here, using a path (state is not restored)" /> + <br/> + <h:commandLink action="go2" value="go to page 2" /> + </h:form> + </f:view> + </body> +</html> + + Added: incubator/beehive/trunk/netui/test/webapps/jsf/jsfWeb/restorePreviousPage/page2.jsfb Url: http://svn.apache.org/viewcvs/incubator/beehive/trunk/netui/test/webapps/jsf/jsfWeb/restorePreviousPage/page2.jsfb?view=auto&rev=125908 ============================================================================== --- (empty file) +++ incubator/beehive/trunk/netui/test/webapps/jsf/jsfWeb/restorePreviousPage/page2.jsfb Fri Jan 21 01:06:52 2005 @@ -0,0 +1,9 @@ +package restorePreviousPage; + +import org.apache.beehive.netui.pageflow.FacesBackingBean; +import org.apache.beehive.netui.pageflow.annotations.Jpf; + [EMAIL PROTECTED] +public class page2 extends FacesBackingBean +{ +} Added: incubator/beehive/trunk/netui/test/webapps/jsf/jsfWeb/restorePreviousPage/page2.jsp Url: http://svn.apache.org/viewcvs/incubator/beehive/trunk/netui/test/webapps/jsf/jsfWeb/restorePreviousPage/page2.jsp?view=auto&rev=125908 ============================================================================== --- (empty file) +++ incubator/beehive/trunk/netui/test/webapps/jsf/jsfWeb/restorePreviousPage/page2.jsp Fri Jan 21 01:06:52 2005 @@ -0,0 +1,20 @@ +<%@ page language="java" contentType="text/html;charset=UTF-8"%> +<%@ taglib prefix="f" uri="http://java.sun.com/jsf/core"%> +<%@ taglib prefix="h" uri="http://java.sun.com/jsf/html"%> + + +<html> + <head> + </head> + <body> + <f:view> + <h:form> + <h:commandLink action="goPrev" value="go to page 1, using navigateTo (state is restored)" /> + <br/> + <h:commandLink action="begin" value="go to page 1, using a path (state is not restored)" /> + </h:form> + </f:view> + </body> +</html> + + Modified: incubator/beehive/trunk/netui/test/webapps/jsf/testRecorder/config/testRecorder-tests.xml Url: http://svn.apache.org/viewcvs/incubator/beehive/trunk/netui/test/webapps/jsf/testRecorder/config/testRecorder-tests.xml?view=diff&rev=125908&p1=incubator/beehive/trunk/netui/test/webapps/jsf/testRecorder/config/testRecorder-tests.xml&r1=125907&p2=incubator/beehive/trunk/netui/test/webapps/jsf/testRecorder/config/testRecorder-tests.xml&r2=125908 ============================================================================== --- incubator/beehive/trunk/netui/test/webapps/jsf/testRecorder/config/testRecorder-tests.xml (original) +++ incubator/beehive/trunk/netui/test/webapps/jsf/testRecorder/config/testRecorder-tests.xml Fri Jan 21 01:06:52 2005 @@ -100,6 +100,14 @@ </categories> </test> <test> + <name>RestorePreviousPage</name> + <description>Test of restoring the component tree of a JSF page when returning to it through navigateTo=Jpf.NavigateTo.currentPage or navigateTo=Jpf.NavigateTo.previousPage.</description> + <webapp>jsfWeb</webapp> + <categories> + <category>drt</category> + </categories> + </test> + <test> <name>SubmitFormBean</name> <description>Test of sending a form bean to a Page Flow action in two ways: (1) through the "submitFormBean" attribute (f:attribute tag) inside of h:commandLink or h:commandButton, or (2) through an 'outputFormBean' attribute on @Jpf.RaiseAction in a backing file command handler.</description> <webapp>jsfWeb</webapp> Modified: incubator/beehive/trunk/netui/test/webapps/jsf/testRecorder/tests/BindingInFaces.xml Url: http://svn.apache.org/viewcvs/incubator/beehive/trunk/netui/test/webapps/jsf/testRecorder/tests/BindingInFaces.xml?view=diff&rev=125908&p1=incubator/beehive/trunk/netui/test/webapps/jsf/testRecorder/tests/BindingInFaces.xml&r1=125907&p2=incubator/beehive/trunk/netui/test/webapps/jsf/testRecorder/tests/BindingInFaces.xml&r2=125908 ============================================================================== --- incubator/beehive/trunk/netui/test/webapps/jsf/testRecorder/tests/BindingInFaces.xml (original) +++ incubator/beehive/trunk/netui/test/webapps/jsf/testRecorder/tests/BindingInFaces.xml Fri Jan 21 01:06:52 2005 @@ -432,7 +432,7 @@ <ses:response> <ses:statusCode>200</ses:statusCode> <ses:reason/> - <ses:responseBody><![CDATA[<!DOCTYPE HTML PUBLIC "//W3C//DTD HTML 4.01 Transitional//EN" + <ses:responseBody><![CDATA[<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" > <html lang="en"> Added: incubator/beehive/trunk/netui/test/webapps/jsf/testRecorder/tests/RestorePreviousPage.xml Url: http://svn.apache.org/viewcvs/incubator/beehive/trunk/netui/test/webapps/jsf/testRecorder/tests/RestorePreviousPage.xml?view=auto&rev=125908 ============================================================================== --- (empty file) +++ incubator/beehive/trunk/netui/test/webapps/jsf/testRecorder/tests/RestorePreviousPage.xml Fri Jan 21 01:06:52 2005 @@ -0,0 +1,719 @@ +<?xml version="1.0" encoding="UTF-8"?> +<ses:recorderSession xmlns:ses="http://beehive.apache.org/netui/tools/testrecorder/2004/session"> + <ses:sessionName>RestorePreviousPage</ses:sessionName> + <ses:tester>rich</ses:tester> + <ses:startDate>21 Jan 2005, 12:38:47.857 AM MST</ses:startDate> + <ses:description>Test of restoring the component tree of a JSF page when returning to it through navigateTo=Jpf.NavigateTo.currentPage or navigateTo=Jpf.NavigateTo.previousPage.</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>/jsfWeb/restorePreviousPage/Controller.jpf</ses:uri> + <ses:method>GET</ses:method> + <ses:parameters/> + <ses:cookies> + <ses:cookie> + <ses:name>JSESSIONID</ses:name> + <ses:value>4FD044880B77E1568A5788C75F6A0F39</ses:value> + </ses:cookie> + <ses:cookie> + <ses:name>JSESSIONID</ses:name> + <ses:value>BwmY1HFuTLhGyseDiif5PhX12qMBT2dt0TngWV4oVAiyCvFSEGDg!-1460366940</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=4FD044880B77E1568A5788C75F6A0F39; JSESSIONID=BwmY1HFuTLhGyseDiif5PhX12qMBT2dt0TngWV4oVAiyCvFSEGDg!-1460366940</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.5) Gecko/20041107 Firefox/1.0</ses:value> + </ses:header> + </ses:headers> + </ses:request> + <ses:response> + <ses:statusCode>200</ses:statusCode> + <ses:reason/> + <ses:responseBody><html> + <head> + </head> + <body> + + <form id="_id0" method="post" action="/jsfWeb/restorePreviousPage/page1.faces" enctype="application/x-www-form-urlencoded"> + + text: <input type="text" name="_id0:_id1" /> + <br/> + <a href="#" onclick="document.forms['_id0']['_id0:_idcl'].value='_id0:_id2'; document.forms['_id0'].submit(); return false;">stay here, using navigateTo (state is restored)</a> + <br/> + <a href="#" onclick="document.forms['_id0']['_id0:_idcl'].value='_id0:_id3'; document.forms['_id0'].submit(); return false;">stay here, using a path (state is not restored)</a> + <br/> + <a href="#" onclick="document.forms['_id0']['_id0:_idcl'].value='_id0:_id4'; document.forms['_id0'].submit(); return false;">go to page 2</a> + <input type="hidden" name="_id0" value="_id0" /><input type="hidden" name="_id0:_idcl" /></form> + + </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>/jsfWeb/restorePreviousPage/page1.faces</ses:uri> + <ses:method>POST</ses:method> + <ses:parameters> + <ses:parameter> + <ses:name>_id0</ses:name> + <ses:value>_id0</ses:value> + </ses:parameter> + <ses:parameter> + <ses:name>_id0:_id1</ses:name> + <ses:value>aaa</ses:value> + </ses:parameter> + <ses:parameter> + <ses:name>_id0:_idcl</ses:name> + <ses:value>_id0:_id2</ses:value> + </ses:parameter> + </ses:parameters> + <ses:cookies> + <ses:cookie> + <ses:name>JSESSIONID</ses:name> + <ses:value>4FD044880B77E1568A5788C75F6A0F39</ses:value> + </ses:cookie> + <ses:cookie> + <ses:name>JSESSIONID</ses:name> + <ses:value>BwmY1HFuTLhGyseDiif5PhX12qMBT2dt0TngWV4oVAiyCvFSEGDg!-1460366940</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>50</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=4FD044880B77E1568A5788C75F6A0F39; JSESSIONID=BwmY1HFuTLhGyseDiif5PhX12qMBT2dt0TngWV4oVAiyCvFSEGDg!-1460366940</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/jsfWeb/restorePreviousPage/Controller.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.5) Gecko/20041107 Firefox/1.0</ses:value> + </ses:header> + </ses:headers> + </ses:request> + <ses:response> + <ses:statusCode>200</ses:statusCode> + <ses:reason/> + <ses:responseBody><html> + <head> + </head> + <body> + + <form id="_id0" method="post" action="/jsfWeb/restorePreviousPage/page1.faces" enctype="application/x-www-form-urlencoded"> + + text: <input type="text" name="_id0:_id1" value="aaa" /> + <br/> + <a href="#" onclick="document.forms['_id0']['_id0:_idcl'].value='_id0:_id2'; document.forms['_id0'].submit(); return false;">stay here, using navigateTo (state is restored)</a> + <br/> + <a href="#" onclick="document.forms['_id0']['_id0:_idcl'].value='_id0:_id3'; document.forms['_id0'].submit(); return false;">stay here, using a path (state is not restored)</a> + <br/> + <a href="#" onclick="document.forms['_id0']['_id0:_idcl'].value='_id0:_id4'; document.forms['_id0'].submit(); return false;">go to page 2</a> + <input type="hidden" name="_id0" value="_id0" /><input type="hidden" name="_id0:_idcl" /></form> + + </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>/jsfWeb/restorePreviousPage/page1.faces</ses:uri> + <ses:method>POST</ses:method> + <ses:parameters> + <ses:parameter> + <ses:name>_id0</ses:name> + <ses:value>_id0</ses:value> + </ses:parameter> + <ses:parameter> + <ses:name>_id0:_id1</ses:name> + <ses:value>aaa</ses:value> + </ses:parameter> + <ses:parameter> + <ses:name>_id0:_idcl</ses:name> + <ses:value>_id0:_id3</ses:value> + </ses:parameter> + </ses:parameters> + <ses:cookies> + <ses:cookie> + <ses:name>JSESSIONID</ses:name> + <ses:value>4FD044880B77E1568A5788C75F6A0F39</ses:value> + </ses:cookie> + <ses:cookie> + <ses:name>JSESSIONID</ses:name> + <ses:value>BwmY1HFuTLhGyseDiif5PhX12qMBT2dt0TngWV4oVAiyCvFSEGDg!-1460366940</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>50</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=4FD044880B77E1568A5788C75F6A0F39; JSESSIONID=BwmY1HFuTLhGyseDiif5PhX12qMBT2dt0TngWV4oVAiyCvFSEGDg!-1460366940</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/jsfWeb/restorePreviousPage/page1.faces</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.5) Gecko/20041107 Firefox/1.0</ses:value> + </ses:header> + </ses:headers> + </ses:request> + <ses:response> + <ses:statusCode>200</ses:statusCode> + <ses:reason/> + <ses:responseBody><![CDATA[<html> + <head> + </head> + <body> + + <form id="_id0" method="post" action="/jsfWeb/restorePreviousPage/page1.faces" enctype="application/x-www-form-urlencoded"> + + text: <input type="text" name="_id0:_id1" /> + <br/> + <a href="#" onclick="document.forms['_id0']['_id0:_idcl'].value='_id0:_id2'; document.forms['_id0'].submit(); return false;">stay here, using navigateTo (state is restored)</a> + <br/> + <a href="#" onclick="document.forms['_id0']['_id0:_idcl'].value='_id0:_id3'; document.forms['_id0'].submit(); return false;">stay here, using a path (state is not restored)</a> + <br/> + <a href="#" onclick="document.forms['_id0']['_id0:_idcl'].value='_id0:_id4'; document.forms['_id0'].submit(); return false;">go to page 2</a> + <input type="hidden" name="_id0" value="_id0" /><input type="hidden" name="_id0:_idcl" /></form> + + </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>/jsfWeb/restorePreviousPage/page1.faces</ses:uri> + <ses:method>POST</ses:method> + <ses:parameters> + <ses:parameter> + <ses:name>_id0</ses:name> + <ses:value>_id0</ses:value> + </ses:parameter> + <ses:parameter> + <ses:name>_id0:_id1</ses:name> + <ses:value>bbb</ses:value> + </ses:parameter> + <ses:parameter> + <ses:name>_id0:_idcl</ses:name> + <ses:value>_id0:_id4</ses:value> + </ses:parameter> + </ses:parameters> + <ses:cookies> + <ses:cookie> + <ses:name>JSESSIONID</ses:name> + <ses:value>4FD044880B77E1568A5788C75F6A0F39</ses:value> + </ses:cookie> + <ses:cookie> + <ses:name>JSESSIONID</ses:name> + <ses:value>BwmY1HFuTLhGyseDiif5PhX12qMBT2dt0TngWV4oVAiyCvFSEGDg!-1460366940</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>50</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=4FD044880B77E1568A5788C75F6A0F39; JSESSIONID=BwmY1HFuTLhGyseDiif5PhX12qMBT2dt0TngWV4oVAiyCvFSEGDg!-1460366940</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/jsfWeb/restorePreviousPage/page1.faces</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.5) Gecko/20041107 Firefox/1.0</ses:value> + </ses:header> + </ses:headers> + </ses:request> + <ses:response> + <ses:statusCode>200</ses:statusCode> + <ses:reason/> + <ses:responseBody><![CDATA[<html> + <head> + </head> + <body> + + <form id="_id0" method="post" action="/jsfWeb/restorePreviousPage/page2.faces" enctype="application/x-www-form-urlencoded"> + + <a href="#" onclick="document.forms['_id0']['_id0:_idcl'].value='_id0:_id1'; document.forms['_id0'].submit(); return false;">go to page 1, using navigateTo (state is restored)</a> + <br/> + <a href="#" onclick="document.forms['_id0']['_id0:_idcl'].value='_id0:_id2'; document.forms['_id0'].submit(); return false;">go to page 1, using a path (state is not restored)</a> + <input type="hidden" name="_id0" value="_id0" /><input type="hidden" name="_id0:_idcl" /></form> + + </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>/jsfWeb/restorePreviousPage/page2.faces</ses:uri> + <ses:method>POST</ses:method> + <ses:parameters> + <ses:parameter> + <ses:name>_id0</ses:name> + <ses:value>_id0</ses:value> + </ses:parameter> + <ses:parameter> + <ses:name>_id0:_idcl</ses:name> + <ses:value>_id0:_id1</ses:value> + </ses:parameter> + </ses:parameters> + <ses:cookies> + <ses:cookie> + <ses:name>JSESSIONID</ses:name> + <ses:value>4FD044880B77E1568A5788C75F6A0F39</ses:value> + </ses:cookie> + <ses:cookie> + <ses:name>JSESSIONID</ses:name> + <ses:value>BwmY1HFuTLhGyseDiif5PhX12qMBT2dt0TngWV4oVAiyCvFSEGDg!-1460366940</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>34</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=4FD044880B77E1568A5788C75F6A0F39; JSESSIONID=BwmY1HFuTLhGyseDiif5PhX12qMBT2dt0TngWV4oVAiyCvFSEGDg!-1460366940</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/jsfWeb/restorePreviousPage/page1.faces</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.5) Gecko/20041107 Firefox/1.0</ses:value> + </ses:header> + </ses:headers> + </ses:request> + <ses:response> + <ses:statusCode>200</ses:statusCode> + <ses:reason/> + <ses:responseBody><html> + <head> + </head> + <body> + + <form id="_id0" method="post" action="/jsfWeb/restorePreviousPage/page1.faces" enctype="application/x-www-form-urlencoded"> + + text: <input type="text" name="_id0:_id1" value="bbb" /> + <br/> + <a href="#" onclick="document.forms['_id0']['_id0:_idcl'].value='_id0:_id2'; document.forms['_id0'].submit(); return false;">stay here, using navigateTo (state is restored)</a> + <br/> + <a href="#" onclick="document.forms['_id0']['_id0:_idcl'].value='_id0:_id3'; document.forms['_id0'].submit(); return false;">stay here, using a path (state is not restored)</a> + <br/> + <a href="#" onclick="document.forms['_id0']['_id0:_idcl'].value='_id0:_id4'; document.forms['_id0'].submit(); return false;">go to page 2</a> + <input type="hidden" name="_id0" value="_id0" /><input type="hidden" name="_id0:_idcl" /></form> + + </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>/jsfWeb/restorePreviousPage/page1.faces</ses:uri> + <ses:method>POST</ses:method> + <ses:parameters> + <ses:parameter> + <ses:name>_id0</ses:name> + <ses:value>_id0</ses:value> + </ses:parameter> + <ses:parameter> + <ses:name>_id0:_id1</ses:name> + <ses:value>bbb</ses:value> + </ses:parameter> + <ses:parameter> + <ses:name>_id0:_idcl</ses:name> + <ses:value>_id0:_id4</ses:value> + </ses:parameter> + </ses:parameters> + <ses:cookies> + <ses:cookie> + <ses:name>JSESSIONID</ses:name> + <ses:value>4FD044880B77E1568A5788C75F6A0F39</ses:value> + </ses:cookie> + <ses:cookie> + <ses:name>JSESSIONID</ses:name> + <ses:value>BwmY1HFuTLhGyseDiif5PhX12qMBT2dt0TngWV4oVAiyCvFSEGDg!-1460366940</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>50</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=4FD044880B77E1568A5788C75F6A0F39; JSESSIONID=BwmY1HFuTLhGyseDiif5PhX12qMBT2dt0TngWV4oVAiyCvFSEGDg!-1460366940</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/jsfWeb/restorePreviousPage/page2.faces</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.5) Gecko/20041107 Firefox/1.0</ses:value> + </ses:header> + </ses:headers> + </ses:request> + <ses:response> + <ses:statusCode>200</ses:statusCode> + <ses:reason/> + <ses:responseBody><![CDATA[<html> + <head> + </head> + <body> + + <form id="_id0" method="post" action="/jsfWeb/restorePreviousPage/page2.faces" enctype="application/x-www-form-urlencoded"> + + <a href="#" onclick="document.forms['_id0']['_id0:_idcl'].value='_id0:_id1'; document.forms['_id0'].submit(); return false;">go to page 1, using navigateTo (state is restored)</a> + <br/> + <a href="#" onclick="document.forms['_id0']['_id0:_idcl'].value='_id0:_id2'; document.forms['_id0'].submit(); return false;">go to page 1, using a path (state is not restored)</a> + <input type="hidden" name="_id0" value="_id0" /><input type="hidden" name="_id0:_idcl" /></form> + + </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>/jsfWeb/restorePreviousPage/page2.faces</ses:uri> + <ses:method>POST</ses:method> + <ses:parameters> + <ses:parameter> + <ses:name>_id0</ses:name> + <ses:value>_id0</ses:value> + </ses:parameter> + <ses:parameter> + <ses:name>_id0:_idcl</ses:name> + <ses:value>_id0:_id2</ses:value> + </ses:parameter> + </ses:parameters> + <ses:cookies> + <ses:cookie> + <ses:name>JSESSIONID</ses:name> + <ses:value>4FD044880B77E1568A5788C75F6A0F39</ses:value> + </ses:cookie> + <ses:cookie> + <ses:name>JSESSIONID</ses:name> + <ses:value>BwmY1HFuTLhGyseDiif5PhX12qMBT2dt0TngWV4oVAiyCvFSEGDg!-1460366940</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>34</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=4FD044880B77E1568A5788C75F6A0F39; JSESSIONID=BwmY1HFuTLhGyseDiif5PhX12qMBT2dt0TngWV4oVAiyCvFSEGDg!-1460366940</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/jsfWeb/restorePreviousPage/page1.faces</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.5) Gecko/20041107 Firefox/1.0</ses:value> + </ses:header> + </ses:headers> + </ses:request> + <ses:response> + <ses:statusCode>200</ses:statusCode> + <ses:reason/> + <ses:responseBody><![CDATA[<html> + <head> + </head> + <body> + + <form id="_id0" method="post" action="/jsfWeb/restorePreviousPage/page1.faces" enctype="application/x-www-form-urlencoded"> + + text: <input type="text" name="_id0:_id1" /> + <br/> + <a href="#" onclick="document.forms['_id0']['_id0:_idcl'].value='_id0:_id2'; document.forms['_id0'].submit(); return false;">stay here, using navigateTo (state is restored)</a> + <br/> + <a href="#" onclick="document.forms['_id0']['_id0:_idcl'].value='_id0:_id3'; document.forms['_id0'].submit(); return false;">stay here, using a path (state is not restored)</a> + <br/> + <a href="#" onclick="document.forms['_id0']['_id0:_idcl'].value='_id0:_id4'; document.forms['_id0'].submit(); return false;">go to page 2</a> + <input type="hidden" name="_id0" value="_id0" /><input type="hidden" name="_id0:_idcl" /></form> + + </body> +</html>]]></ses:responseBody> + </ses:response> + </ses:test> + </ses:tests> + <ses:endDate>21 Jan 2005, 12:39:04.812 AM MST</ses:endDate> + <ses:testCount>7</ses:testCount> +</ses:recorderSession> Modified: incubator/beehive/trunk/netui/test/webapps/jsf/testRecorder/tests/SubmitFormBean.xml Url: http://svn.apache.org/viewcvs/incubator/beehive/trunk/netui/test/webapps/jsf/testRecorder/tests/SubmitFormBean.xml?view=diff&rev=125908&p1=incubator/beehive/trunk/netui/test/webapps/jsf/testRecorder/tests/SubmitFormBean.xml&r1=125907&p2=incubator/beehive/trunk/netui/test/webapps/jsf/testRecorder/tests/SubmitFormBean.xml&r2=125908 ============================================================================== --- incubator/beehive/trunk/netui/test/webapps/jsf/testRecorder/tests/SubmitFormBean.xml (original) +++ incubator/beehive/trunk/netui/test/webapps/jsf/testRecorder/tests/SubmitFormBean.xml Fri Jan 21 01:06:52 2005 @@ -190,7 +190,7 @@ <ses:response> <ses:statusCode>200</ses:statusCode> <ses:reason/> - <ses:responseBody><