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 2005/09/24 05:24:40 UTC
svn commit: r291240 - in /beehive/trunk/netui:
src/compiler-core/org/apache/beehive/netui/compiler/genmodel/
src/compiler-core/org/apache/beehive/netui/compiler/grammar/
src/compiler-core/org/apache/beehive/netui/compiler/model/
src/util/org/apache/bee...
Author: rich
Date: Fri Sep 23 20:24:18 2005
New Revision: 291240
URL: http://svn.apache.org/viewcvs?rev=291240&view=rev
Log:
Fix for http://issues.apache.org/jira/browse/BEEHIVE-954 : form bean-specifc message bundle does not work when two actions use the same form bean
tests: bvt in netui (WinXP)
BB: bvt in netui (linux)
Added:
beehive/trunk/netui/test/webapps/drt/coreWeb/WEB-INF/src/miniTests/multipleActionsSameBean/
beehive/trunk/netui/test/webapps/drt/coreWeb/WEB-INF/src/miniTests/multipleActionsSameBean/FormBeanMessages.properties (with props)
beehive/trunk/netui/test/webapps/drt/coreWeb/miniTests/multipleActionsSameBean/
beehive/trunk/netui/test/webapps/drt/coreWeb/miniTests/multipleActionsSameBean/Controller.jpf (with props)
beehive/trunk/netui/test/webapps/drt/coreWeb/miniTests/multipleActionsSameBean/index.jsp (with props)
beehive/trunk/netui/test/webapps/drt/testRecorder/tests/MultipleActionsSameBean.xml (with props)
Modified:
beehive/trunk/netui/src/compiler-core/org/apache/beehive/netui/compiler/genmodel/GenActionModel.java
beehive/trunk/netui/src/compiler-core/org/apache/beehive/netui/compiler/genmodel/GenStrutsApp.java
beehive/trunk/netui/src/compiler-core/org/apache/beehive/netui/compiler/genmodel/GenValidationModel.java
beehive/trunk/netui/src/compiler-core/org/apache/beehive/netui/compiler/grammar/MessageBundleGrammar.java
beehive/trunk/netui/src/compiler-core/org/apache/beehive/netui/compiler/grammar/WebappPathType.java
beehive/trunk/netui/src/compiler-core/org/apache/beehive/netui/compiler/model/FormBeanModel.java
beehive/trunk/netui/src/util/org/apache/beehive/netui/util/netui.properties
beehive/trunk/netui/test/webapps/drt/testRecorder/config/testRecorder-tests.xml
Modified: beehive/trunk/netui/src/compiler-core/org/apache/beehive/netui/compiler/genmodel/GenActionModel.java
URL: http://svn.apache.org/viewcvs/beehive/trunk/netui/src/compiler-core/org/apache/beehive/netui/compiler/genmodel/GenActionModel.java?rev=291240&r1=291239&r2=291240&view=diff
==============================================================================
--- beehive/trunk/netui/src/compiler-core/org/apache/beehive/netui/compiler/genmodel/GenActionModel.java (original)
+++ beehive/trunk/netui/src/compiler-core/org/apache/beehive/netui/compiler/genmodel/GenActionModel.java Fri Sep 23 20:24:18 2005
@@ -21,6 +21,7 @@
import org.apache.beehive.netui.compiler.JpfLanguageConstants;
import org.apache.beehive.netui.compiler.model.ActionModel;
import org.apache.beehive.netui.compiler.model.ForwardModel;
+import org.apache.beehive.netui.compiler.model.FormBeanModel;
import org.apache.beehive.netui.compiler.typesystem.declaration.AnnotationInstance;
import org.apache.beehive.netui.compiler.typesystem.declaration.ClassDeclaration;
import org.apache.beehive.netui.compiler.typesystem.declaration.Declaration;
@@ -203,7 +204,10 @@
paramType = CompilerUtils.getGenericBoundsType( paramType );
assert paramType instanceof DeclaredType : paramType.getClass().getName(); // checker should enforce this
TypeDeclaration decl = CompilerUtils.getDeclaration( ( DeclaredType ) paramType );
- String formBeanName = parentApp.addFormBean( decl, this );
+ List formBeans = parentApp.getMatchingFormBeans( decl, getFormMember() != null );
+ assert formBeans.size() > 0;
+ FormBeanModel formBeanModel = (FormBeanModel) formBeans.get(0);
+ setFormBeanMessageResourcesKey(formBeanModel.getFormBeanMessageResourcesKey());
//
// If this isn't an ActionForm-derived argument, keep track of the classname for the runtime.
@@ -213,7 +217,7 @@
setFormClass( CompilerUtils.getLoadableName( decl ) );
}
- return formBeanName;
+ return formBeanModel.getName();
}
protected AnnotationInstance getActionAnnotation( Declaration sourceElement )
Modified: beehive/trunk/netui/src/compiler-core/org/apache/beehive/netui/compiler/genmodel/GenStrutsApp.java
URL: http://svn.apache.org/viewcvs/beehive/trunk/netui/src/compiler-core/org/apache/beehive/netui/compiler/genmodel/GenStrutsApp.java?rev=291240&r1=291239&r2=291240&view=diff
==============================================================================
--- beehive/trunk/netui/src/compiler-core/org/apache/beehive/netui/compiler/genmodel/GenStrutsApp.java (original)
+++ beehive/trunk/netui/src/compiler-core/org/apache/beehive/netui/compiler/genmodel/GenStrutsApp.java Fri Sep 23 20:24:18 2005
@@ -33,17 +33,13 @@
import org.apache.beehive.netui.compiler.typesystem.declaration.ClassDeclaration;
import org.apache.beehive.netui.compiler.typesystem.declaration.MethodDeclaration;
import org.apache.beehive.netui.compiler.typesystem.declaration.Modifier;
-import org.apache.beehive.netui.compiler.typesystem.declaration.ParameterDeclaration;
import org.apache.beehive.netui.compiler.typesystem.declaration.TypeDeclaration;
import org.apache.beehive.netui.compiler.typesystem.env.AnnotationProcessorEnvironment;
-import org.apache.beehive.netui.compiler.typesystem.type.DeclaredType;
-import org.apache.beehive.netui.compiler.typesystem.type.TypeInstance;
import java.io.File;
import java.io.FileNotFoundException;
import java.io.FileOutputStream;
import java.io.IOException;
-import java.io.PrintStream;
import java.io.PrintWriter;
import java.util.ArrayList;
import java.util.Collection;
@@ -135,17 +131,18 @@
if ( innerType.hasModifier( Modifier.PUBLIC )
&& CompilerUtils.isAssignableFrom( PAGEFLOW_FORM_CLASS_NAME, innerClass, _env ) )
{
- addFormBean( innerClass, null );
+ getMatchingFormBeans( innerClass, false );
}
}
}
- }
-
- String addFormBean( TypeDeclaration formType, ActionModel usedByAction )
- {
- String formClass = CompilerUtils.getFormClassName( formType, _env );
+ }
+ /**
+ * @return a non-empty List of FormBeanModels that match the given type.
+ */
+ List getMatchingFormBeans( TypeDeclaration formType, boolean usesPageFlowScopedFormBean )
+ {
//
// Use the actual type of form to create the name.
// This avoids conflicts if there are multiple forms using the
@@ -157,23 +154,27 @@
// See if the app already has a form-bean of this type. If so,
// we'll just use it; otherwise, we need to create it.
//
- boolean usesPageFlowScopedFormBean = usedByAction != null ? usedByAction.getFormMember() != null : false;
- List existingBeans = getFormBeansByActualType( actualType, Boolean.valueOf( usesPageFlowScopedFormBean ) );
- String formBeanName;
+ List formBeans = getFormBeansByActualType( actualType, Boolean.valueOf( usesPageFlowScopedFormBean ) );
- if ( existingBeans != null )
- {
- assert existingBeans.size() > 0;
- formBeanName = ( ( FormBeanModel ) existingBeans.get( 0 ) ).getName();
- }
- else
- {
- formBeanName = getFormNameForType( actualType, usesPageFlowScopedFormBean );
- addFormBean( new FormBeanModel( formBeanName, formClass, actualType, usesPageFlowScopedFormBean, this ) );
- getMessageResourcesFromForm( formType, usedByAction );
+ if (formBeans == null) {
+ FormBeanModel formBeanModel = addNewFormBean(formType, usesPageFlowScopedFormBean);
+ formBeans = new ArrayList();
+ formBeans.add(formBeanModel);
}
- return formBeanName;
+ assert formBeans.size() > 0;
+ return formBeans;
+ }
+
+ private FormBeanModel addNewFormBean(TypeDeclaration formType, boolean usesFlowScopedFormBean)
+ {
+ String actualTypeName = CompilerUtils.getLoadableName( formType );
+ String formClass = CompilerUtils.getFormClassName( formType, _env );
+ String name = getFormNameForType( actualTypeName, usesFlowScopedFormBean );
+ String key = getMessageResourcesFromFormType( formType );
+ FormBeanModel fb = new FormBeanModel(name, formClass, actualTypeName, usesFlowScopedFormBean, key, this);
+ addFormBean( fb );
+ return fb;
}
private void addMessageResources( Collection messageResources )
@@ -270,25 +271,16 @@
{
ActionModel actionModel = new GenActionModel( actionMethod, this, _jclass );
addActionMapping( actionModel );
- ParameterDeclaration[] params = actionMethod.getParameters();
-
- if ( params.length > 0 )
- {
- ParameterDeclaration param1 = params[0];
- TypeInstance paramType = param1.getType();
-
- if ( paramType instanceof DeclaredType )
- {
- getMessageResourcesFromForm( CompilerUtils.getDeclaration( ( DeclaredType ) paramType ), actionModel );
- }
- }
}
}
}
-
- private void getMessageResourcesFromForm( TypeDeclaration formTypeDecl, ActionModel actionModel )
+
+ /**
+ * @return the message-resources key for the form bean's message bundle
+ */
+ String getMessageResourcesFromFormType( TypeDeclaration formTypeDecl )
{
- if ( ! ( formTypeDecl instanceof ClassDeclaration ) ) return;
+ if ( ! ( formTypeDecl instanceof ClassDeclaration ) ) return null;
ClassDeclaration formClassDecl = ( ClassDeclaration ) formTypeDecl;
@@ -305,7 +297,7 @@
for ( Iterator ii = getMessageResourcesList().iterator(); ii.hasNext(); )
{
MessageResourcesModel i = ( MessageResourcesModel ) ii.next();
- if ( key.equals( i.getKey() ) && i.getParameter().equals( defaultMessageResources ) ) return;
+ if ( key.equals( i.getKey() ) && i.getParameter().equals( defaultMessageResources ) ) return key;
}
MessageResourcesModel mrm = new MessageResourcesModel( this );
@@ -313,9 +305,11 @@
mrm.setParameter( defaultMessageResources );
mrm.setReturnNull( true );
addMessageResources( mrm );
- if ( actionModel != null ) actionModel.setFormBeanMessageResourcesKey( key );
+ return key;
}
}
+
+ return null;
}
protected String getMergeFileName()
Modified: beehive/trunk/netui/src/compiler-core/org/apache/beehive/netui/compiler/genmodel/GenValidationModel.java
URL: http://svn.apache.org/viewcvs/beehive/trunk/netui/src/compiler-core/org/apache/beehive/netui/compiler/genmodel/GenValidationModel.java?rev=291240&r1=291239&r2=291240&view=diff
==============================================================================
--- beehive/trunk/netui/src/compiler-core/org/apache/beehive/netui/compiler/genmodel/GenValidationModel.java (original)
+++ beehive/trunk/netui/src/compiler-core/org/apache/beehive/netui/compiler/genmodel/GenValidationModel.java Fri Sep 23 20:24:18 2005
@@ -223,25 +223,13 @@
*/
private List getFormBeanNames( TypeDeclaration beanType )
{
- String actualType = CompilerUtils.getLoadableName( beanType );
- List formBeans = _strutsApp.getFormBeansByActualType( actualType, null );
- ArrayList formBeanNames = new ArrayList();
-
- if ( formBeans == null )
+ List formBeans = _strutsApp.getMatchingFormBeans( beanType, false );
+ List formBeanNames = new ArrayList();
+
+ for ( Iterator i = formBeans.iterator(); i.hasNext(); )
{
- String beanClassName = CompilerUtils.getFormClassName( beanType, _strutsApp.getEnv() );
- String formName = _strutsApp.getFormNameForType( actualType, false );
- FormBeanModel formBean = new FormBeanModel( formName, beanClassName, actualType, false, _strutsApp );
- _strutsApp.addFormBean( formBean );
- formBeanNames.add( formBean.getName() );
- }
- else
- {
- for ( Iterator i = formBeans.iterator(); i.hasNext(); )
- {
- FormBeanModel formBeanModel = ( FormBeanModel ) i.next();
- formBeanNames.add( formBeanModel.getName() );
- }
+ FormBeanModel formBeanModel = ( FormBeanModel ) i.next();
+ formBeanNames.add( formBeanModel.getName() );
}
return formBeanNames;
Modified: beehive/trunk/netui/src/compiler-core/org/apache/beehive/netui/compiler/grammar/MessageBundleGrammar.java
URL: http://svn.apache.org/viewcvs/beehive/trunk/netui/src/compiler-core/org/apache/beehive/netui/compiler/grammar/MessageBundleGrammar.java?rev=291240&r1=291239&r2=291240&view=diff
==============================================================================
--- beehive/trunk/netui/src/compiler-core/org/apache/beehive/netui/compiler/grammar/MessageBundleGrammar.java (original)
+++ beehive/trunk/netui/src/compiler-core/org/apache/beehive/netui/compiler/grammar/MessageBundleGrammar.java Fri Sep 23 20:24:18 2005
@@ -42,8 +42,7 @@
{
super( env, diags, requiredRuntimeVersion, runtimeVersionChecker, fcInfo );
- addMemberType( BUNDLE_PATH_ATTR,
- new UniqueValueType( MESSAGE_BUNDLES_ATTR, false, false, null, this ) );
+ addMemberType( BUNDLE_PATH_ATTR, new UniqueValueType( MESSAGE_BUNDLES_ATTR, false, false, null, this ) );
addMemberType( BUNDLE_NAME_ATTR, new UniqueValueType( MESSAGE_BUNDLES_ATTR, true, true, null, this ) );
}
Modified: beehive/trunk/netui/src/compiler-core/org/apache/beehive/netui/compiler/grammar/WebappPathType.java
URL: http://svn.apache.org/viewcvs/beehive/trunk/netui/src/compiler-core/org/apache/beehive/netui/compiler/grammar/WebappPathType.java?rev=291240&r1=291239&r2=291240&view=diff
==============================================================================
--- beehive/trunk/netui/src/compiler-core/org/apache/beehive/netui/compiler/grammar/WebappPathType.java (original)
+++ beehive/trunk/netui/src/compiler-core/org/apache/beehive/netui/compiler/grammar/WebappPathType.java Fri Sep 23 20:24:18 2005
@@ -232,8 +232,7 @@
}
}
- if ( (fileToCheck == null || ! fileToCheck.exists()) && ! ( ignoreDirectories && fileToCheck.isDirectory() ) )
- {
+ if (fileToCheck == null || ! fileToCheck.exists()) {
fileExists = false;
}
}
Modified: beehive/trunk/netui/src/compiler-core/org/apache/beehive/netui/compiler/model/FormBeanModel.java
URL: http://svn.apache.org/viewcvs/beehive/trunk/netui/src/compiler-core/org/apache/beehive/netui/compiler/model/FormBeanModel.java?rev=291240&r1=291239&r2=291240&view=diff
==============================================================================
--- beehive/trunk/netui/src/compiler-core/org/apache/beehive/netui/compiler/model/FormBeanModel.java (original)
+++ beehive/trunk/netui/src/compiler-core/org/apache/beehive/netui/compiler/model/FormBeanModel.java Fri Sep 23 20:24:18 2005
@@ -95,6 +95,7 @@
private boolean _dynamic = false;
private String _name = null; // required to be set
private String _type = null; // required to be set
+ private String _formBeanMessageResourcesKey = null;
/** This is a NetUI-specific property. */
private String _actualType = null;
@@ -104,13 +105,15 @@
private ArrayList _properties = new ArrayList();
- public FormBeanModel( String name, String type, String actualType, boolean pageFlowScoped, StrutsApp parent )
+ public FormBeanModel( String name, String type, String actualType, boolean pageFlowScoped,
+ String formBeanMessageResorucesKey, StrutsApp parent )
{
super( parent );
_name = name;
_type = type;
_actualType = actualType;
_pageFlowScoped = pageFlowScoped;
+ _formBeanMessageResourcesKey = formBeanMessageResorucesKey;
}
protected void writeToElement(XmlModelWriter xw, Element element)
@@ -187,6 +190,10 @@
public void setActualType(String actualType)
{
_actualType = actualType;
+ }
+
+ public String getFormBeanMessageResourcesKey() {
+ return _formBeanMessageResourcesKey;
}
public void addProperty( String name, String type, boolean required, boolean multival )
Modified: beehive/trunk/netui/src/util/org/apache/beehive/netui/util/netui.properties
URL: http://svn.apache.org/viewcvs/beehive/trunk/netui/src/util/org/apache/beehive/netui/util/netui.properties?rev=291240&r1=291239&r2=291240&view=diff
==============================================================================
--- beehive/trunk/netui/src/util/org/apache/beehive/netui/util/netui.properties (original)
+++ beehive/trunk/netui/src/util/org/apache/beehive/netui/util/netui.properties Fri Sep 23 20:24:18 2005
@@ -111,7 +111,7 @@
Tags_LocaleRequiresLanguage=If you set a country, you must also set a language when specifying a local, defaulting to Locale of Request. The country set was "{0}"
Tags_ErrorsException=An error occurred accessing the message bundle. This may be because the message-resource is not defined within the page flow. The error: {0}
Tags_ErrorsBundleMissing=An error occurred accessing the message bundle when looking for message key "{0}". This may be because there is no default message bundle defined for the current page flow.
-Tags_ErrorsMessageMissing=Could not find a message for message key "{0}" in the default message bundle for the current page flow.
+Tags_ErrorsMessageMissing=Could not find a message for message key "{0}" in the default message bundle for the current page flow, or in the default message bundle for the form bean.
Tags_ParameterRenderError=The parameter type [{0}] was not recognized as a valid type.
Tags_ParameterAccessError=The parameter type [{0}] was not recognized as a valid type, attempting to access argument ''{1}''.
Tags_DataSourceExpressionError=An error occurred converting the data source "{0}" into an expression; {1}
Added: beehive/trunk/netui/test/webapps/drt/coreWeb/WEB-INF/src/miniTests/multipleActionsSameBean/FormBeanMessages.properties
URL: http://svn.apache.org/viewcvs/beehive/trunk/netui/test/webapps/drt/coreWeb/WEB-INF/src/miniTests/multipleActionsSameBean/FormBeanMessages.properties?rev=291240&view=auto
==============================================================================
--- beehive/trunk/netui/test/webapps/drt/coreWeb/WEB-INF/src/miniTests/multipleActionsSameBean/FormBeanMessages.properties (added)
+++ beehive/trunk/netui/test/webapps/drt/coreWeb/WEB-INF/src/miniTests/multipleActionsSameBean/FormBeanMessages.properties Fri Sep 23 20:24:18 2005
@@ -0,0 +1,2 @@
+fooMessage=foo!
+barMessage=bar!
Propchange: beehive/trunk/netui/test/webapps/drt/coreWeb/WEB-INF/src/miniTests/multipleActionsSameBean/FormBeanMessages.properties
------------------------------------------------------------------------------
svn:eol-style = native
Added: beehive/trunk/netui/test/webapps/drt/coreWeb/miniTests/multipleActionsSameBean/Controller.jpf
URL: http://svn.apache.org/viewcvs/beehive/trunk/netui/test/webapps/drt/coreWeb/miniTests/multipleActionsSameBean/Controller.jpf?rev=291240&view=auto
==============================================================================
--- beehive/trunk/netui/test/webapps/drt/coreWeb/miniTests/multipleActionsSameBean/Controller.jpf (added)
+++ beehive/trunk/netui/test/webapps/drt/coreWeb/miniTests/multipleActionsSameBean/Controller.jpf Fri Sep 23 20:24:18 2005
@@ -0,0 +1,86 @@
+/*
+ * Copyright 2004 The Apache Software Foundation.
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ *
+ * $Header:$
+ */
+package miniTests.multipleActionsSameBean;
+
+import org.apache.beehive.netui.pageflow.PageFlowController;
+import org.apache.beehive.netui.pageflow.Forward;
+import org.apache.beehive.netui.pageflow.FormData;
+import org.apache.beehive.netui.pageflow.annotations.Jpf;
+
+@Jpf.Controller(
+ simpleActions={
+ @Jpf.SimpleAction(name="begin", path="index.jsp")
+ }
+)
+public class Controller extends PageFlowController
+{
+ @Jpf.Action(
+ forwards={
+ @Jpf.Forward(name="index", path="index.jsp")
+ },
+ validationErrorForward=@Jpf.Forward(name="failure", path="index.jsp")
+ )
+ public Forward submit(MyForm form)
+ {
+ return new Forward("index");
+ }
+
+ @Jpf.Action(
+ forwards={
+ @Jpf.Forward(name="index", path="index.jsp")
+ },
+ validationErrorForward=@Jpf.Forward(name="failure", path="index.jsp")
+ )
+ public Forward submit2(MyForm form)
+ {
+ return new Forward("index");
+ }
+
+ @Jpf.FormBean(messageBundle="miniTests.multipleActionsSameBean.FormBeanMessages")
+ public static class MyForm implements java.io.Serializable
+ {
+ private String _foo;
+ private String _bar;
+
+ @Jpf.ValidatableProperty(
+ validateMinLength=@Jpf.ValidateMinLength(chars=2, messageKey="fooMessage")
+ )
+ public String getFoo()
+ {
+ return _foo;
+ }
+
+ public void setFoo(String foo)
+ {
+ _foo = foo;
+ }
+
+ @Jpf.ValidatableProperty(
+ validateMinLength=@Jpf.ValidateMinLength(chars=2, messageKey="barMessage")
+ )
+ public String getBar()
+ {
+ return _bar;
+ }
+
+ public void setBar(String bar)
+ {
+ _bar = bar;
+ }
+ }
+}
Propchange: beehive/trunk/netui/test/webapps/drt/coreWeb/miniTests/multipleActionsSameBean/Controller.jpf
------------------------------------------------------------------------------
svn:eol-style = native
Added: beehive/trunk/netui/test/webapps/drt/coreWeb/miniTests/multipleActionsSameBean/index.jsp
URL: http://svn.apache.org/viewcvs/beehive/trunk/netui/test/webapps/drt/coreWeb/miniTests/multipleActionsSameBean/index.jsp?rev=291240&view=auto
==============================================================================
--- beehive/trunk/netui/test/webapps/drt/coreWeb/miniTests/multipleActionsSameBean/index.jsp (added)
+++ beehive/trunk/netui/test/webapps/drt/coreWeb/miniTests/multipleActionsSameBean/index.jsp Fri Sep 23 20:24:18 2005
@@ -0,0 +1,33 @@
+<%@ 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>
+ <h3>${pageFlow.URI}</h3>
+
+ <p>
+ This test ensures that two forms on the same page can submit to two actions that accept
+ the same form bean type, and that form-bean-specific messages from the bean (defined in
+ <code>@Jpf.FormBean</code>) are applied in each case.
+ </p>
+ <netui:form action="submit">
+ foo: <netui:textBox dataSource="actionForm.foo"/><netui:error key="foo"/>
+ <br/>
+ <netui:button value="submit"/>
+ </netui:form>
+ <netui:form action="submit2">
+ bar: <netui:textBox dataSource="actionForm.bar"/><netui:error key="bar"/>
+ <br/>
+ <netui:button value="submit2"/>
+ </netui:form>
+ </netui:body>
+</netui:html>
+
+
+
Propchange: beehive/trunk/netui/test/webapps/drt/coreWeb/miniTests/multipleActionsSameBean/index.jsp
------------------------------------------------------------------------------
svn:eol-style = native
Modified: beehive/trunk/netui/test/webapps/drt/testRecorder/config/testRecorder-tests.xml
URL: http://svn.apache.org/viewcvs/beehive/trunk/netui/test/webapps/drt/testRecorder/config/testRecorder-tests.xml?rev=291240&r1=291239&r2=291240&view=diff
==============================================================================
--- beehive/trunk/netui/test/webapps/drt/testRecorder/config/testRecorder-tests.xml (original)
+++ beehive/trunk/netui/test/webapps/drt/testRecorder/config/testRecorder-tests.xml Fri Sep 23 20:24:18 2005
@@ -5233,6 +5233,20 @@
</features>
</test>
<test>
+ <name>MultipleActionsSameBean</name>
+ <description>Test to ensure that two forms on the same page can submit to two actions that accept the same form bean type, and that form-bean-specific messages from the bean (defined in @Jpf.FormBean) are applied in each case.</description>
+ <webapp>coreWeb</webapp>
+ <categories>
+ <category>bvt</category>
+ <category>bvt.struts11</category>
+ <category>corePageFlow</category>
+ </categories>
+ <features>
+ <feature>Form</feature>
+ <feature>Validation</feature>
+ </features>
+ </test>
+ <test>
<name>MultipleDatasource</name>
<description>Test of Compound expressions used as data source</description>
<webapp>coreWeb</webapp>
Added: beehive/trunk/netui/test/webapps/drt/testRecorder/tests/MultipleActionsSameBean.xml
URL: http://svn.apache.org/viewcvs/beehive/trunk/netui/test/webapps/drt/testRecorder/tests/MultipleActionsSameBean.xml?rev=291240&view=auto
==============================================================================
--- beehive/trunk/netui/test/webapps/drt/testRecorder/tests/MultipleActionsSameBean.xml (added)
+++ beehive/trunk/netui/test/webapps/drt/testRecorder/tests/MultipleActionsSameBean.xml Fri Sep 23 20:24:18 2005
@@ -0,0 +1,348 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<ses:recorderSession xmlns:ses="http://beehive.apache.org/netui/tools/testrecorder/2004/session">
+ <ses:sessionName>MultipleActionsSameBean</ses:sessionName>
+ <ses:tester>rich</ses:tester>
+ <ses:startDate>23 Sep 2005, 06:36:41.238 PM MDT</ses:startDate>
+ <ses:description>Test to ensure that two forms on the same page can submit to two actions that accept
+Test to ensure that the same form bean type, and that form-bean-specific messages from the bean (defined in @Jpf.FormBean) are applied in each case.</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/multipleActionsSameBean/Controller.jpf</ses:uri>
+ <ses:method>GET</ses:method>
+ <ses:parameters/>
+ <ses:cookies>
+ <ses:cookie>
+ <ses:name>JSESSIONID</ses:name>
+ <ses:value>5FBE08BEB59D1EF05F1A1A30DDDAF16F</ses:value>
+ </ses:cookie>
+ <ses:cookie>
+ <ses:name>nde-textsize</ses:name>
+ <ses:value>16px</ses:value>
+ </ses:cookie>
+ <ses:cookie>
+ <ses:name>Country</ses:name>
+ <ses:value>US</ses:value>
+ </ses:cookie>
+ <ses:cookie>
+ <ses:name>Language</ses:name>
+ <ses:value>en</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.7,ja;q=0.3</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=5FBE08BEB59D1EF05F1A1A30DDDAF16F; nde-textsize=16px; Country=US; Language=en</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.12) Gecko/20050915 Firefox/1.0.7</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/multipleActionsSameBean/index.jsp">
+ </head>
+ <body>
+ <h3>/miniTests/multipleActionsSameBean/Controller.jpf</h3>
+
+ <p>
+ This test ensures that two forms on the same page can submit to two actions that accept
+ the same form bean type, and that form-bean-specific messages from the bean (defined in
+ <code>@Jpf.FormBean</code>) are applied in each case.
+ </p>
+ <form action="/coreWeb/miniTests/multipleActionsSameBean/submit.do" method="post">
+ foo: <input type="text" name="{actionForm.foo}">
+ <br/>
+ <input type="submit" value="submit">
+ </form>
+ <form action="/coreWeb/miniTests/multipleActionsSameBean/submit2.do" method="post">
+ bar: <input type="text" name="{actionForm.bar}">
+ <br/>
+ <input type="submit" value="submit2">
+ </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>/coreWeb/miniTests/multipleActionsSameBean/submit.do</ses:uri>
+ <ses:method>POST</ses:method>
+ <ses:parameters>
+ <ses:parameter>
+ <ses:name>{actionForm.foo}</ses:name>
+ <ses:value>a</ses:value>
+ </ses:parameter>
+ </ses:parameters>
+ <ses:cookies>
+ <ses:cookie>
+ <ses:name>JSESSIONID</ses:name>
+ <ses:value>5FBE08BEB59D1EF05F1A1A30DDDAF16F</ses:value>
+ </ses:cookie>
+ <ses:cookie>
+ <ses:name>nde-textsize</ses:name>
+ <ses:value>16px</ses:value>
+ </ses:cookie>
+ <ses:cookie>
+ <ses:name>Country</ses:name>
+ <ses:value>US</ses:value>
+ </ses:cookie>
+ <ses:cookie>
+ <ses:name>Language</ses:name>
+ <ses:value>en</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.7,ja;q=0.3</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>22</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=5FBE08BEB59D1EF05F1A1A30DDDAF16F; nde-textsize=16px; Country=US; Language=en</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/multipleActionsSameBean/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.12) Gecko/20050915 Firefox/1.0.7</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/multipleActionsSameBean/index.jsp">
+ </head>
+ <body>
+ <h3>/miniTests/multipleActionsSameBean/Controller.jpf</h3>
+
+ <p>
+ This test ensures that two forms on the same page can submit to two actions that accept
+ the same form bean type, and that form-bean-specific messages from the bean (defined in
+ <code>@Jpf.FormBean</code>) are applied in each case.
+ </p>
+ <form action="/coreWeb/miniTests/multipleActionsSameBean/submit.do" method="post">
+ foo: <input type="text" name="{actionForm.foo}" value="a">foo!
+
+ <br/>
+ <input type="submit" value="submit">
+ </form>
+ <form action="/coreWeb/miniTests/multipleActionsSameBean/submit2.do" method="post">
+ bar: <input type="text" name="{actionForm.bar}">
+ <br/>
+ <input type="submit" value="submit2">
+ </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>/coreWeb/miniTests/multipleActionsSameBean/submit2.do</ses:uri>
+ <ses:method>POST</ses:method>
+ <ses:parameters>
+ <ses:parameter>
+ <ses:name>{actionForm.bar}</ses:name>
+ <ses:value>b</ses:value>
+ </ses:parameter>
+ </ses:parameters>
+ <ses:cookies>
+ <ses:cookie>
+ <ses:name>JSESSIONID</ses:name>
+ <ses:value>5FBE08BEB59D1EF05F1A1A30DDDAF16F</ses:value>
+ </ses:cookie>
+ <ses:cookie>
+ <ses:name>nde-textsize</ses:name>
+ <ses:value>16px</ses:value>
+ </ses:cookie>
+ <ses:cookie>
+ <ses:name>Country</ses:name>
+ <ses:value>US</ses:value>
+ </ses:cookie>
+ <ses:cookie>
+ <ses:name>Language</ses:name>
+ <ses:value>en</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.7,ja;q=0.3</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>22</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=5FBE08BEB59D1EF05F1A1A30DDDAF16F; nde-textsize=16px; Country=US; Language=en</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/multipleActionsSameBean/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.12) Gecko/20050915 Firefox/1.0.7</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/multipleActionsSameBean/index.jsp">
+ </head>
+ <body>
+ <h3>/miniTests/multipleActionsSameBean/Controller.jpf</h3>
+
+ <p>
+ This test ensures that two forms on the same page can submit to two actions that accept
+ the same form bean type, and that form-bean-specific messages from the bean (defined in
+ <code>@Jpf.FormBean</code>) are applied in each case.
+ </p>
+ <form action="/coreWeb/miniTests/multipleActionsSameBean/submit.do" method="post">
+ foo: <input type="text" name="{actionForm.foo}">
+ <br/>
+ <input type="submit" value="submit">
+ </form>
+ <form action="/coreWeb/miniTests/multipleActionsSameBean/submit2.do" method="post">
+ bar: <input type="text" name="{actionForm.bar}" value="b">bar!
+
+ <br/>
+ <input type="submit" value="submit2">
+ </form>
+ </body>
+
+</html>]]></ses:responseBody>
+ </ses:response>
+ </ses:test>
+ </ses:tests>
+ <ses:endDate>23 Sep 2005, 06:36:56.009 PM MDT</ses:endDate>
+ <ses:testCount>3</ses:testCount>
+</ses:recorderSession>
Propchange: beehive/trunk/netui/test/webapps/drt/testRecorder/tests/MultipleActionsSameBean.xml
------------------------------------------------------------------------------
svn:eol-style = native