Author: rich Date: Thu Dec 16 01:38:39 2004 New Revision: 122537 URL: http://svn.apache.org/viewcvs?view=rev&rev=122537 Log: Detailed tests for declarative validation through annotations on form fields, action methods, and in the @Jpf.Controller annotation of a page flow class.
DRT: netui (WinXP) BB: self (WinXP) Added: incubator/beehive/trunk/netui/test/webapps/drt/coreWeb/validation/declarativeValidation/ incubator/beehive/trunk/netui/test/webapps/drt/coreWeb/validation/declarativeValidation/Controller.jpf (contents, props changed) incubator/beehive/trunk/netui/test/webapps/drt/coreWeb/validation/declarativeValidation/index.jsp (contents, props changed) incubator/beehive/trunk/netui/test/webapps/drt/coreWeb/validation/declarativeValidation/success.jsp (contents, props changed) incubator/beehive/trunk/netui/test/webapps/drt/testRecorder/tests/ValidateThroughAction.xml (contents, props changed) incubator/beehive/trunk/netui/test/webapps/drt/testRecorder/tests/ValidateThroughClass.xml (contents, props changed) incubator/beehive/trunk/netui/test/webapps/drt/testRecorder/tests/ValidateThroughForm.xml (contents, props changed) Modified: incubator/beehive/trunk/netui/test/webapps/drt/testRecorder/config/testRecorder-tests.xml Added: incubator/beehive/trunk/netui/test/webapps/drt/coreWeb/validation/declarativeValidation/Controller.jpf Url: http://svn.apache.org/viewcvs/incubator/beehive/trunk/netui/test/webapps/drt/coreWeb/validation/declarativeValidation/Controller.jpf?view=auto&rev=122537 ============================================================================== --- (empty file) +++ incubator/beehive/trunk/netui/test/webapps/drt/coreWeb/validation/declarativeValidation/Controller.jpf Thu Dec 16 01:38:39 2004 @@ -0,0 +1,673 @@ +package validation.declarativeValidation; + +import org.apache.beehive.netui.pageflow.*; +import org.apache.beehive.netui.pageflow.annotations.*; + +import java.io.Serializable; +import java.util.*; + [EMAIL PROTECTED]( + simpleActions={ + @Jpf.SimpleAction(name="begin", path="index.jsp") + }, + validatableBeans={ + @Jpf.ValidatableBean( + type=Controller.UnvalidatedForm2.class, + validatableProperties={ + @Jpf.ValidatableProperty( + propertyName="validWhenPageFlowProp", + displayName="This field", + [EMAIL PROTECTED](), + [EMAIL PROTECTED](condition="${pageFlow.str==actionForm.validWhenPageFlowProp}", message="pageFlow.str must be the same as this") + ), + @Jpf.ValidatableProperty( + propertyName="minLength", + displayName="This field", + [EMAIL PROTECTED](), + [EMAIL PROTECTED](chars=2) + ), + @Jpf.ValidatableProperty( + propertyName="maxLength", + displayName="This field", + [EMAIL PROTECTED](), + [EMAIL PROTECTED](chars=2) + ), + @Jpf.ValidatableProperty( + propertyName="mask", + displayName="This field", + [EMAIL PROTECTED](), + [EMAIL PROTECTED](regex="a*b") + ), + @Jpf.ValidatableProperty( + propertyName="typeInt", + displayName="This field", + [EMAIL PROTECTED](), + [EMAIL PROTECTED](type=int.class) + ), + @Jpf.ValidatableProperty( + propertyName="typeFloat", + displayName="This field", + [EMAIL PROTECTED](), + [EMAIL PROTECTED](type=float.class) + ), + @Jpf.ValidatableProperty( + propertyName="typeShort", + displayName="This field", + [EMAIL PROTECTED](), + [EMAIL PROTECTED](type=short.class) + ), + @Jpf.ValidatableProperty( + propertyName="typeLong", + displayName="This field", + [EMAIL PROTECTED](), + [EMAIL PROTECTED](type=long.class) + ), + @Jpf.ValidatableProperty( + propertyName="typeDouble", + displayName="This field", + [EMAIL PROTECTED](), + [EMAIL PROTECTED](type=double.class) + ), + @Jpf.ValidatableProperty( + propertyName="typeByte", + displayName="This field", + [EMAIL PROTECTED](), + [EMAIL PROTECTED](type=byte.class) + ), + @Jpf.ValidatableProperty( + propertyName="date", + displayName="This field", + [EMAIL PROTECTED](), + [EMAIL PROTECTED](pattern="M-d-y") + ), + @Jpf.ValidatableProperty( + propertyName="range", + displayName="This field", + [EMAIL PROTECTED](), + [EMAIL PROTECTED](minInt=1, maxInt=10) + ), + @Jpf.ValidatableProperty( + propertyName="creditCard", + displayName="This field", + [EMAIL PROTECTED](), + [EMAIL PROTECTED]() + ), + @Jpf.ValidatableProperty( + propertyName="email", + displayName="This field", + [EMAIL PROTECTED](), + [EMAIL PROTECTED]() + ) + } + ) + } +) +public class Controller extends PageFlowController +{ + private String _str; + private String _selectedAction = "formLevelValidate"; + + public void setStr( String str ) + { + _str = str; + } + + public String getStr() + { + return _str; + } + + public Map< String, String > getActionChoices() + { + HashMap< String, String > ret = new HashMap< String, String >(); + ret.put( "formLevelValidate", "form-level validation" ); + ret.put( "actionLevelValidate", "action-level validation" ); + ret.put( "classLevelValidate", "class-level validation" ); + return ret; + } + + public String getSelectedAction() + { + return _selectedAction; + } + + public void setSelectedAction( String actionName ) + { + _selectedAction = actionName; + } + + @Jpf.Action( + forwards={ + @Jpf.Forward(name="success", path="success.jsp") + }, + [EMAIL PROTECTED](name="fail", navigateTo=Jpf.NavigateTo.currentPage) + ) + public Forward formLevelValidate( ValidatedForm form ) + { + return new Forward( "success" ); + } + + @Jpf.Action( + forwards={ + @Jpf.Forward(name="success", path="success.jsp") + }, + validatableProperties={ + @Jpf.ValidatableProperty( + propertyName="validWhenPageFlowProp", + displayName="This field", + [EMAIL PROTECTED](), + [EMAIL PROTECTED](condition="${pageFlow.str==actionForm.validWhenPageFlowProp}", message="pageFlow.str must be the same as this") + ), + @Jpf.ValidatableProperty( + propertyName="minLength", + displayName="This field", + [EMAIL PROTECTED](), + [EMAIL PROTECTED](chars=2) + ), + @Jpf.ValidatableProperty( + propertyName="maxLength", + displayName="This field", + [EMAIL PROTECTED](), + [EMAIL PROTECTED](chars=2) + ), + @Jpf.ValidatableProperty( + propertyName="mask", + displayName="This field", + [EMAIL PROTECTED](), + [EMAIL PROTECTED](regex="a*b") + ), + @Jpf.ValidatableProperty( + propertyName="typeInt", + displayName="This field", + [EMAIL PROTECTED](), + [EMAIL PROTECTED](type=int.class) + ), + @Jpf.ValidatableProperty( + propertyName="typeFloat", + displayName="This field", + [EMAIL PROTECTED](), + [EMAIL PROTECTED](type=float.class) + ), + @Jpf.ValidatableProperty( + propertyName="typeShort", + displayName="This field", + [EMAIL PROTECTED](), + [EMAIL PROTECTED](type=short.class) + ), + @Jpf.ValidatableProperty( + propertyName="typeLong", + displayName="This field", + [EMAIL PROTECTED](), + [EMAIL PROTECTED](type=long.class) + ), + @Jpf.ValidatableProperty( + propertyName="typeDouble", + displayName="This field", + [EMAIL PROTECTED](), + [EMAIL PROTECTED](type=double.class) + ), + @Jpf.ValidatableProperty( + propertyName="typeByte", + displayName="This field", + [EMAIL PROTECTED](), + [EMAIL PROTECTED](type=byte.class) + ), + @Jpf.ValidatableProperty( + propertyName="date", + displayName="This field", + [EMAIL PROTECTED](), + [EMAIL PROTECTED](pattern="M-d-y") + ), + @Jpf.ValidatableProperty( + propertyName="range", + displayName="This field", + [EMAIL PROTECTED](), + [EMAIL PROTECTED](minInt=1, maxInt=10) + ), + @Jpf.ValidatableProperty( + propertyName="creditCard", + displayName="This field", + [EMAIL PROTECTED](), + [EMAIL PROTECTED]() + ), + @Jpf.ValidatableProperty( + propertyName="email", + displayName="This field", + [EMAIL PROTECTED](), + [EMAIL PROTECTED]() + ) + }, + [EMAIL PROTECTED](name="fail", navigateTo=Jpf.NavigateTo.currentPage) + ) + public Forward actionLevelValidate( UnvalidatedForm form ) + { + return new Forward( "success" ); + } + + @Jpf.Action( + forwards={ + @Jpf.Forward(name="success", path="success.jsp") + }, + [EMAIL PROTECTED](name="fail", navigateTo=Jpf.NavigateTo.currentPage) + ) + public Forward classLevelValidate( UnvalidatedForm2 form ) + { + return new Forward( "success" ); + } + + public static class UnvalidatedForm implements Serializable + { + private String _validWhenPageFlowProp; + + public String getValidWhenPageFlowProp() + { + return _validWhenPageFlowProp; + } + + public void setValidWhenPageFlowProp( String str ) + { + _validWhenPageFlowProp = str; + } + + private String _minLength; + + public String getMinLength() + { + return _minLength; + } + + public void setMinLength( String str ) + { + _minLength = str; + } + + private String _maxLength; + + public String getMaxLength() + { + return _maxLength; + } + + public void setMaxLength( String str ) + { + _maxLength = str; + } + + private String _mask; + + public String getMask() + { + return _mask; + } + + public void setMask( String str ) + { + _mask = str; + } + + private String _typeInt; + + public String getTypeInt() + { + return _typeInt; + } + + public void setTypeInt( String str ) + { + _typeInt = str; + } + + private String _typeFloat; + + public String getTypeFloat() + { + return _typeFloat; + } + + public void setTypeFloat( String str ) + { + _typeFloat = str; + } + + private String _typeShort; + + public String getTypeShort() + { + return _typeShort; + } + + public void setTypeShort( String str ) + { + _typeShort = str; + } + + private String _typeLong; + + public String getTypeLong() + { + return _typeLong; + } + + public void setTypeLong( String str ) + { + _typeLong = str; + } + + private String _typeDouble; + + public String getTypeDouble() + { + return _typeDouble; + } + + public void setTypeDouble( String str ) + { + _typeDouble = str; + } + + private String _typeByte; + + public String getTypeByte() + { + return _typeByte; + } + + public void setTypeByte( String str ) + { + _typeByte = str; + } + + private String _date; + + public String getDate() + { + return _date; + } + + public void setDate( String str ) + { + _date = str; + } + + private String _range; + + public String getRange() + { + return _range; + } + + public void setRange( String str ) + { + _range = str; + } + + private String _creditCard; + + public String getCreditCard() + { + return _creditCard; + } + + public void setCreditCard( String str ) + { + _creditCard = str; + } + + private String _email; + + public String getEmail() + { + return _email; + } + + public void setEmail( String str ) + { + _email = str; + } + } + + public static class ValidatedForm implements Serializable + { + private String _validWhenPageFlowProp; + + @Jpf.ValidatableProperty( + displayName="This field", + [EMAIL PROTECTED](), + [EMAIL PROTECTED](condition="${pageFlow.str==actionForm.validWhenPageFlowProp}", message="pageFlow.str must be the same as this") + ) + public String getValidWhenPageFlowProp() + { + return _validWhenPageFlowProp; + } + + public void setValidWhenPageFlowProp( String str ) + { + _validWhenPageFlowProp = str; + } + + private String _minLength; + + @Jpf.ValidatableProperty( + displayName="This field", + [EMAIL PROTECTED](), + [EMAIL PROTECTED](chars=2) + ) + public String getMinLength() + { + return _minLength; + } + + public void setMinLength( String str ) + { + _minLength = str; + } + + private String _maxLength; + + @Jpf.ValidatableProperty( + displayName="This field", + [EMAIL PROTECTED](), + [EMAIL PROTECTED](chars=2) + ) + public String getMaxLength() + { + return _maxLength; + } + + public void setMaxLength( String str ) + { + _maxLength = str; + } + + private String _mask; + + @Jpf.ValidatableProperty( + displayName="This field", + [EMAIL PROTECTED](), + [EMAIL PROTECTED](regex="a*b") + ) + public String getMask() + { + return _mask; + } + + public void setMask( String str ) + { + _mask = str; + } + + private String _typeInt; + + @Jpf.ValidatableProperty( + displayName="This field", + [EMAIL PROTECTED](), + [EMAIL PROTECTED](type=int.class) + ) + public String getTypeInt() + { + return _typeInt; + } + + public void setTypeInt( String str ) + { + _typeInt = str; + } + + private String _typeFloat; + + @Jpf.ValidatableProperty( + displayName="This field", + [EMAIL PROTECTED](), + [EMAIL PROTECTED](type=float.class) + ) + public String getTypeFloat() + { + return _typeFloat; + } + + public void setTypeFloat( String str ) + { + _typeFloat = str; + } + + private String _typeShort; + + @Jpf.ValidatableProperty( + displayName="This field", + [EMAIL PROTECTED](), + [EMAIL PROTECTED](type=short.class) + ) + public String getTypeShort() + { + return _typeShort; + } + + public void setTypeShort( String str ) + { + _typeShort = str; + } + + private String _typeLong; + + @Jpf.ValidatableProperty( + displayName="This field", + [EMAIL PROTECTED](), + [EMAIL PROTECTED](type=long.class) + ) + public String getTypeLong() + { + return _typeLong; + } + + public void setTypeLong( String str ) + { + _typeLong = str; + } + + private String _typeDouble; + + @Jpf.ValidatableProperty( + displayName="This field", + [EMAIL PROTECTED](), + [EMAIL PROTECTED](type=double.class) + ) + public String getTypeDouble() + { + return _typeDouble; + } + + public void setTypeDouble( String str ) + { + _typeDouble = str; + } + + private String _typeByte; + + @Jpf.ValidatableProperty( + displayName="This field", + [EMAIL PROTECTED](), + [EMAIL PROTECTED](type=byte.class) + ) + public String getTypeByte() + { + return _typeByte; + } + + public void setTypeByte( String str ) + { + _typeByte = str; + } + + private String _date; + + @Jpf.ValidatableProperty( + displayName="This field", + [EMAIL PROTECTED](), + [EMAIL PROTECTED](pattern="M-d-y") + ) + public String getDate() + { + return _date; + } + + public void setDate( String str ) + { + _date = str; + } + + private String _range; + + @Jpf.ValidatableProperty( + displayName="This field", + [EMAIL PROTECTED](), + [EMAIL PROTECTED](minInt=1, maxInt=10) + ) + public String getRange() + { + return _range; + } + + public void setRange( String str ) + { + _range = str; + } + + private String _creditCard; + + @Jpf.ValidatableProperty( + displayName="This field", + [EMAIL PROTECTED](), + [EMAIL PROTECTED]() + ) + public String getCreditCard() + { + return _creditCard; + } + + public void setCreditCard( String str ) + { + _creditCard = str; + } + + private String _email; + + @Jpf.ValidatableProperty( + displayName="This field", + [EMAIL PROTECTED](), + [EMAIL PROTECTED]() + ) + public String getEmail() + { + return _email; + } + + public void setEmail( String str ) + { + _email = str; + } + } + + public static class UnvalidatedForm2 extends UnvalidatedForm + { + } +} Added: incubator/beehive/trunk/netui/test/webapps/drt/coreWeb/validation/declarativeValidation/index.jsp Url: http://svn.apache.org/viewcvs/incubator/beehive/trunk/netui/test/webapps/drt/coreWeb/validation/declarativeValidation/index.jsp?view=auto&rev=122537 ============================================================================== --- (empty file) +++ incubator/beehive/trunk/netui/test/webapps/drt/coreWeb/validation/declarativeValidation/index.jsp Thu Dec 16 01:38:39 2004 @@ -0,0 +1,131 @@ +<%@ 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>Declarative Validation</h3> + + <netui:form action="begin"> + page flow 'str' property: <netui:textBox dataSource="pageFlow.str"/> + <netui:button value="submit"/> + </netui:form> + <hr/> + + Which type of validation? + <netui:form action="begin"> + <netui:radioButtonGroup optionsDataSource="${pageFlow.actionChoices}" dataSource="pageFlow.selectedAction"/> + <netui:button value="submit"/> + </netui:form> + <hr/> + + <netui:form action="${pageFlow.selectedAction}"> + <table> + <tr> + <td>minlength=2:</td> + <td> + <netui:textBox dataSource="actionForm.minLength"/> + <netui:error value="minLength"/> + </td> + </tr> + <tr> + <td>maxlength=2:</td> + <td> + <netui:textBox dataSource="actionForm.maxLength"/> + <netui:error value="maxLength"/> + </td> + </tr> + <tr> + <td>mask=a*b:</td> + <td> + <netui:textBox dataSource="actionForm.mask"/> + <netui:error value="mask"/> + </td> + </tr> + <tr> + <td>type=int:</td> + <td> + <netui:textBox dataSource="actionForm.typeInt"/> + <netui:error value="typeInt"/> + </td> + </tr> + <tr> + <td>type=short:</td> + <td> + <netui:textBox dataSource="actionForm.typeShort"/> + <netui:error value="typeShort"/> + </td> + </tr> + <tr> + <td>type=long:</td> + <td> + <netui:textBox dataSource="actionForm.typeLong"/> + <netui:error value="typeLong"/> + </td> + </tr> + <tr> + <td>type=double:</td> + <td> + <netui:textBox dataSource="actionForm.typeDouble"/> + <netui:error value="typeDouble"/> + </td> + </tr> + <tr> + <td>type=float:</td> + <td> + <netui:textBox dataSource="actionForm.typeFloat"/> + <netui:error value="typeFloat"/> + </td> + </tr> + <tr> + <td>type=byte:</td> + <td> + <netui:textBox dataSource="actionForm.typeByte"/> + <netui:error value="typeByte"/> + </td> + </tr> + <tr> + <td>date=MM-dd-YYYY:</td> + <td> + <netui:textBox dataSource="actionForm.date"/> + <netui:error value="date"/> + </td> + </tr> + <tr> + <td>range 1-10:</td> + <td> + <netui:textBox dataSource="actionForm.range"/> + <netui:error value="range"/> + </td> + </tr> + <tr> + <td>credit card:</td> + <td> + <netui:textBox dataSource="actionForm.creditCard"/> + <netui:error value="creditCard"/> + </td> + </tr> + <tr> + <td>email:</td> + <td> + <netui:textBox dataSource="actionForm.email"/> + <netui:error value="email"/> + </td> + </tr> + <tr> + <td>valid when pageFlow.str==actionForm.validWhenPageFlowProp:</td> + <td> + <netui:textBox dataSource="actionForm.validWhenPageFlowProp"/> + <netui:error value="validWhenPageFlowProp"/> + </td> + </tr> + </table> + <netui:button value="${pageFlow.selectedAction}"/> + </netui:form> + </netui:body> +</netui:html> Added: incubator/beehive/trunk/netui/test/webapps/drt/coreWeb/validation/declarativeValidation/success.jsp Url: http://svn.apache.org/viewcvs/incubator/beehive/trunk/netui/test/webapps/drt/coreWeb/validation/declarativeValidation/success.jsp?view=auto&rev=122537 ============================================================================== --- (empty file) +++ incubator/beehive/trunk/netui/test/webapps/drt/coreWeb/validation/declarativeValidation/success.jsp Thu Dec 16 01:38:39 2004 @@ -0,0 +1,19 @@ +<%@ 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> + All validation passed. + <br/> + <netui:anchor action="begin">start over</netui:anchor> + </netui:body> +</netui:html> + + + Modified: incubator/beehive/trunk/netui/test/webapps/drt/testRecorder/config/testRecorder-tests.xml Url: http://svn.apache.org/viewcvs/incubator/beehive/trunk/netui/test/webapps/drt/testRecorder/config/testRecorder-tests.xml?view=diff&rev=122537&p1=incubator/beehive/trunk/netui/test/webapps/drt/testRecorder/config/testRecorder-tests.xml&r1=122536&p2=incubator/beehive/trunk/netui/test/webapps/drt/testRecorder/config/testRecorder-tests.xml&r2=122537 ============================================================================== --- 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 Thu Dec 16 01:38:39 2004 @@ -5254,6 +5254,46 @@ </features> </test> <test> + <name>ValidateThroughAction</name> + <description>Test of declarative validation through annotations on action methods.</description> + <webapp>coreWeb</webapp> + <categories> + <category>bvt</category> + <category>corePageFlow</category> + </categories> + <features> + <feature>Form</feature> + <feature>Validation</feature> + </features> + </test> + <test> + <name>ValidateThroughClass</name> + <description>Test of declarative validation through the @Jpf.Controller annotation.</description> + <webapp>coreWeb</webapp> + <categories> + <category>bvt</category> + <category>corePageFlow</category> + </categories> + <features> + <feature>Form</feature> + <feature>Validation</feature> + </features> + </test> + <test> + <name>ValidateThroughForm</name> + <description>Test of declarative validation through form field annotations.</description> + <webapp>coreWeb</webapp> + <categories> + <category>bvt</category> + <category>drt</category> + <category>corePageFlow</category> + </categories> + <features> + <feature>Form</feature> + <feature>Validation</feature> + </features> + </test> + <test> <name>Validation2</name> <description>Tests of basic validation and validation using the Struts ValidatorPlugIn (as well as netui:error, netui:errors).</description> <webapp>coreWeb</webapp> Added: incubator/beehive/trunk/netui/test/webapps/drt/testRecorder/tests/ValidateThroughAction.xml Url: http://svn.apache.org/viewcvs/incubator/beehive/trunk/netui/test/webapps/drt/testRecorder/tests/ValidateThroughAction.xml?view=auto&rev=122537 ============================================================================== --- (empty file) +++ incubator/beehive/trunk/netui/test/webapps/drt/testRecorder/tests/ValidateThroughAction.xml Thu Dec 16 01:38:39 2004 @@ -0,0 +1,1039 @@ +<?xml version="1.0" encoding="UTF-8"?> +<ses:recorderSession xmlns:ses="http://beehive.apache.org/netui/tools/testrecorder/2004/session"> + <ses:sessionName>ValidateThroughAction</ses:sessionName> + <ses:tester>rich</ses:tester> + <ses:startDate>16 Dec 2004, 02:23:07.322 AM MST</ses:startDate> + <ses:description>Test of declarative validation in action annotations.</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/validation/declarativeValidation/Controller.jpf</ses:uri> + <ses:method>GET</ses:method> + <ses:parameters/> + <ses:cookies> + <ses:cookie> + <ses:name>JSESSIONID</ses:name> + <ses:value>DAC13B34DC00E6AD67C96F02AC6820E7</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=DAC13B34DC00E6AD67C96F02AC6820E7</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><![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/validation/declarativeValidation/index.jsp"> + </head> + <body> + <h3>Declarative Validation</h3> + + <form id="Netui_Form_0" action="/coreWeb/validation/declarativeValidation/begin.do" method="post"> + page flow 'str' property: <input type="text" name="{pageFlow.str}"> + <input type="submit" value="submit"> + </form> + <hr/> + + Which type of validation? + <form id="Netui_Form_1" action="/coreWeb/validation/declarativeValidation/begin.do" method="post"> + <input type="radio" name="wlw-radio_button_group_key:{pageFlow.selectedAction}" value="actionLevelValidate"><span>action-level validation</span><br> +<input type="radio" name="wlw-radio_button_group_key:{pageFlow.selectedAction}" value="classLevelValidate"><span>class-level validation</span><br> +<input type="radio" name="wlw-radio_button_group_key:{pageFlow.selectedAction}" value="formLevelValidate" checked><span>form-level validation</span><br> + + <input type="submit" value="submit"> + </form> + <hr/> + + <form name="validatedForm" action="/coreWeb/validation/declarativeValidation/formLevelValidate.do" method="post"> + <table> + <tr> + <td>minlength=2:</td> + <td> + <input type="text" name="{actionForm.minLength}"> + + </td> + </tr> + <tr> + <td>maxlength=2:</td> + <td> + <input type="text" name="{actionForm.maxLength}"> + + </td> + </tr> + <tr> + <td>mask=a*b:</td> + <td> + <input type="text" name="{actionForm.mask}"> + + </td> + </tr> + <tr> + <td>type=int:</td> + <td> + <input type="text" name="{actionForm.typeInt}"> + + </td> + </tr> + <tr> + <td>type=short:</td> + <td> + <input type="text" name="{actionForm.typeShort}"> + + </td> + </tr> + <tr> + <td>type=long:</td> + <td> + <input type="text" name="{actionForm.typeLong}"> + + </td> + </tr> + <tr> + <td>type=double:</td> + <td> + <input type="text" name="{actionForm.typeDouble}"> + + </td> + </tr> + <tr> + <td>type=float:</td> + <td> + <input type="text" name="{actionForm.typeFloat}"> + + </td> + </tr> + <tr> + <td>type=byte:</td> + <td> + <input type="text" name="{actionForm.typeByte}"> + + </td> + </tr> + <tr> + <td>date=MM-dd-YYYY:</td> + <td> + <input type="text" name="{actionForm.date}"> + + </td> + </tr> + <tr> + <td>range 1-10:</td> + <td> + <input type="text" name="{actionForm.range}"> + + </td> + </tr> + <tr> + <td>credit card:</td> + <td> + <input type="text" name="{actionForm.creditCard}"> + + </td> + </tr> + <tr> + <td>email:</td> + <td> + <input type="text" name="{actionForm.email}"> + + </td> + </tr> + <tr> + <td>valid when pageFlow.str==actionForm.validWhenPageFlowProp:</td> + <td> + <input type="text" name="{actionForm.validWhenPageFlowProp}"> + + </td> + </tr> + </table> + <input type="submit" value="formLevelValidate"> + </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/validation/declarativeValidation/begin.do</ses:uri> + <ses:method>POST</ses:method> + <ses:parameters> + <ses:parameter> + <ses:name>{pageFlow.str}</ses:name> + <ses:value>aaa</ses:value> + </ses:parameter> + </ses:parameters> + <ses:cookies> + <ses:cookie> + <ses:name>JSESSIONID</ses:name> + <ses:value>DAC13B34DC00E6AD67C96F02AC6820E7</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>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=DAC13B34DC00E6AD67C96F02AC6820E7</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/validation/declarativeValidation/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><![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/validation/declarativeValidation/index.jsp"> + </head> + <body> + <h3>Declarative Validation</h3> + + <form id="Netui_Form_0" action="/coreWeb/validation/declarativeValidation/begin.do" method="post"> + page flow 'str' property: <input type="text" name="{pageFlow.str}" value="aaa"> + <input type="submit" value="submit"> + </form> + <hr/> + + Which type of validation? + <form id="Netui_Form_1" action="/coreWeb/validation/declarativeValidation/begin.do" method="post"> + <input type="radio" name="wlw-radio_button_group_key:{pageFlow.selectedAction}" value="actionLevelValidate"><span>action-level validation</span><br> +<input type="radio" name="wlw-radio_button_group_key:{pageFlow.selectedAction}" value="classLevelValidate"><span>class-level validation</span><br> +<input type="radio" name="wlw-radio_button_group_key:{pageFlow.selectedAction}" value="formLevelValidate" checked><span>form-level validation</span><br> + + <input type="submit" value="submit"> + </form> + <hr/> + + <form name="validatedForm" action="/coreWeb/validation/declarativeValidation/formLevelValidate.do" method="post"> + <table> + <tr> + <td>minlength=2:</td> + <td> + <input type="text" name="{actionForm.minLength}"> + + </td> + </tr> + <tr> + <td>maxlength=2:</td> + <td> + <input type="text" name="{actionForm.maxLength}"> + + </td> + </tr> + <tr> + <td>mask=a*b:</td> + <td> + <input type="text" name="{actionForm.mask}"> + + </td> + </tr> + <tr> + <td>type=int:</td> + <td> + <input type="text" name="{actionForm.typeInt}"> + + </td> + </tr> + <tr> + <td>type=short:</td> + <td> + <input type="text" name="{actionForm.typeShort}"> + + </td> + </tr> + <tr> + <td>type=long:</td> + <td> + <input type="text" name="{actionForm.typeLong}"> + + </td> + </tr> + <tr> + <td>type=double:</td> + <td> + <input type="text" name="{actionForm.typeDouble}"> + + </td> + </tr> + <tr> + <td>type=float:</td> + <td> + <input type="text" name="{actionForm.typeFloat}"> + + </td> + </tr> + <tr> + <td>type=byte:</td> + <td> + <input type="text" name="{actionForm.typeByte}"> + + </td> + </tr> + <tr> + <td>date=MM-dd-YYYY:</td> + <td> + <input type="text" name="{actionForm.date}"> + + </td> + </tr> + <tr> + <td>range 1-10:</td> + <td> + <input type="text" name="{actionForm.range}"> + + </td> + </tr> + <tr> + <td>credit card:</td> + <td> + <input type="text" name="{actionForm.creditCard}"> + + </td> + </tr> + <tr> + <td>email:</td> + <td> + <input type="text" name="{actionForm.email}"> + + </td> + </tr> + <tr> + <td>valid when pageFlow.str==actionForm.validWhenPageFlowProp:</td> + <td> + <input type="text" name="{actionForm.validWhenPageFlowProp}"> + + </td> + </tr> + </table> + <input type="submit" value="formLevelValidate"> + </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/validation/declarativeValidation/begin.do</ses:uri> + <ses:method>POST</ses:method> + <ses:parameters> + <ses:parameter> + <ses:name>wlw-radio_button_group_key:{pageFlow.selectedAction}</ses:name> + <ses:value>actionLevelValidate</ses:value> + </ses:parameter> + </ses:parameters> + <ses:cookies> + <ses:cookie> + <ses:name>JSESSIONID</ses:name> + <ses:value>DAC13B34DC00E6AD67C96F02AC6820E7</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>78</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=DAC13B34DC00E6AD67C96F02AC6820E7</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/validation/declarativeValidation/begin.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.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[<!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/validation/declarativeValidation/index.jsp"> + </head> + <body> + <h3>Declarative Validation</h3> + + <form id="Netui_Form_0" action="/coreWeb/validation/declarativeValidation/begin.do" method="post"> + page flow 'str' property: <input type="text" name="{pageFlow.str}" value="aaa"> + <input type="submit" value="submit"> + </form> + <hr/> + + Which type of validation? + <form id="Netui_Form_1" action="/coreWeb/validation/declarativeValidation/begin.do" method="post"> + <input type="radio" name="wlw-radio_button_group_key:{pageFlow.selectedAction}" value="actionLevelValidate" checked><span>action-level validation</span><br> +<input type="radio" name="wlw-radio_button_group_key:{pageFlow.selectedAction}" value="classLevelValidate"><span>class-level validation</span><br> +<input type="radio" name="wlw-radio_button_group_key:{pageFlow.selectedAction}" value="formLevelValidate"><span>form-level validation</span><br> + + <input type="submit" value="submit"> + </form> + <hr/> + + <form name="unvalidatedForm" action="/coreWeb/validation/declarativeValidation/actionLevelValidate.do" method="post"> + <table> + <tr> + <td>minlength=2:</td> + <td> + <input type="text" name="{actionForm.minLength}"> + + </td> + </tr> + <tr> + <td>maxlength=2:</td> + <td> + <input type="text" name="{actionForm.maxLength}"> + + </td> + </tr> + <tr> + <td>mask=a*b:</td> + <td> + <input type="text" name="{actionForm.mask}"> + + </td> + </tr> + <tr> + <td>type=int:</td> + <td> + <input type="text" name="{actionForm.typeInt}"> + + </td> + </tr> + <tr> + <td>type=short:</td> + <td> + <input type="text" name="{actionForm.typeShort}"> + + </td> + </tr> + <tr> + <td>type=long:</td> + <td> + <input type="text" name="{actionForm.typeLong}"> + + </td> + </tr> + <tr> + <td>type=double:</td> + <td> + <input type="text" name="{actionForm.typeDouble}"> + + </td> + </tr> + <tr> + <td>type=float:</td> + <td> + <input type="text" name="{actionForm.typeFloat}"> + + </td> + </tr> + <tr> + <td>type=byte:</td> + <td> + <input type="text" name="{actionForm.typeByte}"> + + </td> + </tr> + <tr> + <td>date=MM-dd-YYYY:</td> + <td> + <input type="text" name="{actionForm.date}"> + + </td> + </tr> + <tr> + <td>range 1-10:</td> + <td> + <input type="text" name="{actionForm.range}"> + + </td> + </tr> + <tr> + <td>credit card:</td> + <td> + <input type="text" name="{actionForm.creditCard}"> + + </td> + </tr> + <tr> + <td>email:</td> + <td> + <input type="text" name="{actionForm.email}"> + + </td> + </tr> + <tr> + <td>valid when pageFlow.str==actionForm.validWhenPageFlowProp:</td> + <td> + <input type="text" name="{actionForm.validWhenPageFlowProp}"> + + </td> + </tr> + </table> + <input type="submit" value="actionLevelValidate"> + </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>/coreWeb/validation/declarativeValidation/actionLevelValidate.do</ses:uri> + <ses:method>POST</ses:method> + <ses:parameters> + <ses:parameter> + <ses:name>{actionForm.creditCard}</ses:name> + <ses:value>4444444444444447</ses:value> + </ses:parameter> + <ses:parameter> + <ses:name>{actionForm.date}</ses:name> + <ses:value>invalid</ses:value> + </ses:parameter> + <ses:parameter> + <ses:name>{actionForm.email}</ses:name> + <ses:value>invalid</ses:value> + </ses:parameter> + <ses:parameter> + <ses:name>{actionForm.mask}</ses:name> + <ses:value>aaa</ses:value> + </ses:parameter> + <ses:parameter> + <ses:name>{actionForm.maxLength}</ses:name> + <ses:value>aaa</ses:value> + </ses:parameter> + <ses:parameter> + <ses:name>{actionForm.minLength}</ses:name> + <ses:value>a</ses:value> + </ses:parameter> + <ses:parameter> + <ses:name>{actionForm.range}</ses:name> + <ses:value>11</ses:value> + </ses:parameter> + <ses:parameter> + <ses:name>{actionForm.typeByte}</ses:name> + <ses:value>128</ses:value> + </ses:parameter> + <ses:parameter> + <ses:name>{actionForm.typeDouble}</ses:name> + <ses:value>a</ses:value> + </ses:parameter> + <ses:parameter> + <ses:name>{actionForm.typeFloat}</ses:name> + <ses:value>a</ses:value> + </ses:parameter> + <ses:parameter> + <ses:name>{actionForm.typeInt}</ses:name> + <ses:value>a</ses:value> + </ses:parameter> + <ses:parameter> + <ses:name>{actionForm.typeLong}</ses:name> + <ses:value>a</ses:value> + </ses:parameter> + <ses:parameter> + <ses:name>{actionForm.typeShort}</ses:name> + <ses:value>32768</ses:value> + </ses:parameter> + <ses:parameter> + <ses:name>{actionForm.validWhenPageFlowProp}</ses:name> + <ses:value>aa</ses:value> + </ses:parameter> + </ses:parameters> + <ses:cookies> + <ses:cookie> + <ses:name>JSESSIONID</ses:name> + <ses:value>DAC13B34DC00E6AD67C96F02AC6820E7</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>436</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=DAC13B34DC00E6AD67C96F02AC6820E7</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/validation/declarativeValidation/begin.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.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[<!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/validation/declarativeValidation/index.jsp"> + </head> + <body> + <h3>Declarative Validation</h3> + + <form id="Netui_Form_0" action="/coreWeb/validation/declarativeValidation/begin.do" method="post"> + page flow 'str' property: <input type="text" name="{pageFlow.str}" value="aaa"> + <input type="submit" value="submit"> + </form> + <hr/> + + Which type of validation? + <form id="Netui_Form_1" action="/coreWeb/validation/declarativeValidation/begin.do" method="post"> + <input type="radio" name="wlw-radio_button_group_key:{pageFlow.selectedAction}" value="actionLevelValidate" checked><span>action-level validation</span><br> +<input type="radio" name="wlw-radio_button_group_key:{pageFlow.selectedAction}" value="classLevelValidate"><span>class-level validation</span><br> +<input type="radio" name="wlw-radio_button_group_key:{pageFlow.selectedAction}" value="formLevelValidate"><span>form-level validation</span><br> + + <input type="submit" value="submit"> + </form> + <hr/> + + <form name="unvalidatedForm" action="/coreWeb/validation/declarativeValidation/actionLevelValidate.do" method="post"> + <table> + <tr> + <td>minlength=2:</td> + <td> + <input type="text" name="{actionForm.minLength}" value="a"> + This field cannot be less than 2 characters. + + </td> + </tr> + <tr> + <td>maxlength=2:</td> + <td> + <input type="text" name="{actionForm.maxLength}" value="aaa"> + This field cannot be greater than 2 characters. + + </td> + </tr> + <tr> + <td>mask=a*b:</td> + <td> + <input type="text" name="{actionForm.mask}" value="aaa"> + This field is invalid. + + </td> + </tr> + <tr> + <td>type=int:</td> + <td> + <input type="text" name="{actionForm.typeInt}" value="a"> + This field must be an integer. + + </td> + </tr> + <tr> + <td>type=short:</td> + <td> + <input type="text" name="{actionForm.typeShort}" value="32768"> + This field must be a short. + + </td> + </tr> + <tr> + <td>type=long:</td> + <td> + <input type="text" name="{actionForm.typeLong}" value="a"> + This field must be a long. + + </td> + </tr> + <tr> + <td>type=double:</td> + <td> + <input type="text" name="{actionForm.typeDouble}" value="a"> + This field must be a double. + + </td> + </tr> + <tr> + <td>type=float:</td> + <td> + <input type="text" name="{actionForm.typeFloat}" value="a"> + This field must be a float. + + </td> + </tr> + <tr> + <td>type=byte:</td> + <td> + <input type="text" name="{actionForm.typeByte}" value="128"> + This field must be a byte. + + </td> + </tr> + <tr> + <td>date=MM-dd-YYYY:</td> + <td> + <input type="text" name="{actionForm.date}" value="invalid"> + This field is not a date. + + </td> + </tr> + <tr> + <td>range 1-10:</td> + <td> + <input type="text" name="{actionForm.range}" value="11"> + This field is not in the range 1 through 10. + + </td> + </tr> + <tr> + <td>credit card:</td> + <td> + <input type="text" name="{actionForm.creditCard}" value="4444444444444447"> + This field is an invalid credit card number. + + </td> + </tr> + <tr> + <td>email:</td> + <td> + <input type="text" name="{actionForm.email}" value="invalid"> + This field is an invalid e-mail address. + + </td> + </tr> + <tr> + <td>valid when pageFlow.str==actionForm.validWhenPageFlowProp:</td> + <td> + <input type="text" name="{actionForm.validWhenPageFlowProp}" value="aa"> + pageFlow.str must be the same as this + + </td> + </tr> + </table> + <input type="submit" value="actionLevelValidate"> + </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>/coreWeb/validation/declarativeValidation/actionLevelValidate.do</ses:uri> + <ses:method>POST</ses:method> + <ses:parameters> + <ses:parameter> + <ses:name>{actionForm.creditCard}</ses:name> + <ses:value>4444444444444448</ses:value> + </ses:parameter> + <ses:parameter> + <ses:name>{actionForm.date}</ses:name> + <ses:value>10-10-1973</ses:value> + </ses:parameter> + <ses:parameter> + <ses:name>{actionForm.email}</ses:name> + <ses:value>[EMAIL PROTECTED]</ses:value> + </ses:parameter> + <ses:parameter> + <ses:name>{actionForm.mask}</ses:name> + <ses:value>aaab</ses:value> + </ses:parameter> + <ses:parameter> + <ses:name>{actionForm.maxLength}</ses:name> + <ses:value>aa</ses:value> + </ses:parameter> + <ses:parameter> + <ses:name>{actionForm.minLength}</ses:name> + <ses:value>aa</ses:value> + </ses:parameter> + <ses:parameter> + <ses:name>{actionForm.range}</ses:name> + <ses:value>9</ses:value> + </ses:parameter> + <ses:parameter> + <ses:name>{actionForm.typeByte}</ses:name> + <ses:value>127</ses:value> + </ses:parameter> + <ses:parameter> + <ses:name>{actionForm.typeDouble}</ses:name> + <ses:value>2.0</ses:value> + </ses:parameter> + <ses:parameter> + <ses:name>{actionForm.typeFloat}</ses:name> + <ses:value>2.0</ses:value> + </ses:parameter> + <ses:parameter> + <ses:name>{actionForm.typeInt}</ses:name> + <ses:value>10</ses:value> + </ses:parameter> + <ses:parameter> + <ses:name>{actionForm.typeLong}</ses:name> + <ses:value>10</ses:value> + </ses:parameter> + <ses:parameter> + <ses:name>{actionForm.typeShort}</ses:name> + <ses:value>32767</ses:value> + </ses:parameter> + <ses:parameter> + <ses:name>{actionForm.validWhenPageFlowProp}</ses:name> + <ses:value>aaa</ses:value> + </ses:parameter> + </ses:parameters> + <ses:cookies> + <ses:cookie> + <ses:name>JSESSIONID</ses:name> + <ses:value>DAC13B34DC00E6AD67C96F02AC6820E7</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>454</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=DAC13B34DC00E6AD67C96F02AC6820E7</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/validation/declarativeValidation/actionLevelValidate.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.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[<!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/validation/declarativeValidation/success.jsp"> + </head> + <body> + All validation passed. + <br/> + <a href="/coreWeb/validation/declarativeValidation/begin.do">start over</a> + </body> + +</html>]]></ses:responseBody> + </ses:response> + </ses:test> + </ses:tests> + <ses:endDate>16 Dec 2004, 02:24:27.788 AM MST</ses:endDate> + <ses:testCount>5</ses:testCount> +</ses:recorderSession> Added: incubator/beehive/trunk/netui/test/webapps/drt/testRecorder/tests/ValidateThroughClass.xml Url: http://svn.apache.org/viewcvs/incubator/beehive/trunk/netui/test/webapps/drt/testRecorder/tests/ValidateThroughClass.xml?view=auto&rev=122537 ============================================================================== --- (empty file) +++ incubator/beehive/trunk/netui/test/webapps/drt/testRecorder/tests/ValidateThroughClass.xml Thu Dec 16 01:38:39 2004 @@ -0,0 +1,1314 @@ +<?xml version="1.0" encoding="UTF-8"?> +<ses:recorderSession xmlns:ses="http://beehive.apache.org/netui/tools/testrecorder/2004/session"> + <ses:sessionName>ValidateThroughClass</ses:sessionName> + <ses:tester>rich</ses:tester> + <ses:startDate>16 Dec 2004, 02:25:02.888 AM MST</ses:startDate> + <ses:description>Test of declarative validation in the @Jpf.Controller annotation.</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/validation/declarativeValidation/Controller.jpf</ses:uri> + <ses:method>GET</ses:method> + <ses:parameters/> + <ses:cookies> + <ses:cookie> + <ses:name>JSESSIONID</ses:name> + <ses:value>DAC13B34DC00E6AD67C96F02AC6820E7</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=DAC13B34DC00E6AD67C96F02AC6820E7</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><![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/validation/declarativeValidation/index.jsp"> + </head> + <body> + <h3>Declarative Validation</h3> + + <form id="Netui_Form_0" action="/coreWeb/validation/declarativeValidation/begin.do" method="post"> + page flow 'str' property: <input type="text" name="{pageFlow.str}"> + <input type="submit" value="submit"> + </form> + <hr/> + + Which type of validation? + <form id="Netui_Form_1" action="/coreWeb/validation/declarativeValidation/begin.do" method="post"> + <input type="radio" name="wlw-radio_button_group_key:{pageFlow.selectedAction}" value="actionLevelValidate"><span>action-level validation</span><br> +<input type="radio" name="wlw-radio_button_group_key:{pageFlow.selectedAction}" value="classLevelValidate"><span>class-level validation</span><br> +<input type="radio" name="wlw-radio_button_group_key:{pageFlow.selectedAction}" value="formLevelValidate" checked><span>form-level validation</span><br> + + <input type="submit" value="submit"> + </form> + <hr/> + + <form name="validatedForm" action="/coreWeb/validation/declarativeValidation/formLevelValidate.do" method="post"> + <table> + <tr> + <td>minlength=2:</td> + <td> + <input type="text" name="{actionForm.minLength}"> + + </td> + </tr> + <tr> + <td>maxlength=2:</td> + <td> + <input type="text" name="{actionForm.maxLength}"> + + </td> + </tr> + <tr> + <td>mask=a*b:</td> + <td> + <input type="text" name="{actionForm.mask}"> + + </td> + </tr> + <tr> + <td>type=int:</td> + <td> + <input type="text" name="{actionForm.typeInt}"> + + </td> + </tr> + <tr> + <td>type=short:</td> + <td> + <input type="text" name="{actionForm.typeShort}"> + + </td> + </tr> + <tr> + <td>type=long:</td> + <td> + <input type="text" name="{actionForm.typeLong}"> + + </td> + </tr> + <tr> + <td>type=double:</td> + <td> + <input type="text" name="{actionForm.typeDouble}"> + + </td> + </tr> + <tr> + <td>type=float:</td> + <td> + <input type="text" name="{actionForm.typeFloat}"> + + </td> + </tr> + <tr> + <td>type=byte:</td> + <td> + <input type="text" name="{actionForm.typeByte}"> + + </td> + </tr> + <tr> + <td>date=MM-dd-YYYY:</td> + <td> + <input type="text" name="{actionForm.date}"> + + </td> + </tr> + <tr> + <td>range 1-10:</td> + <td> + <input type="text" name="{actionForm.range}"> + + </td> + </tr> + <tr> + <td>credit card:</td> + <td> + <input type="text" name="{actionForm.creditCard}"> + + </td> + </tr> + <tr> + <td>email:</td> + <td> + <input type="text" name="{actionForm.email}"> + + </td> + </tr> + <tr> + <td>valid when pageFlow.str==actionForm.validWhenPageFlowProp:</td> + <td> + <input type="text" name="{actionForm.validWhenPageFlowProp}"> + + </td> + </tr> + </table> + <input type="submit" value="formLevelValidate"> + </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/validation/declarativeValidation/begin.do</ses:uri> + <ses:method>POST</ses:method> + <ses:parameters> + <ses:parameter> + <ses:name>{pageFlow.str}</ses:name> + <ses:value>aaa</ses:value> + </ses:parameter> + </ses:parameters> + <ses:cookies> + <ses:cookie> + <ses:name>JSESSIONID</ses:name> + <ses:value>DAC13B34DC00E6AD67C96F02AC6820E7</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>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=DAC13B34DC00E6AD67C96F02AC6820E7</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/validation/declarativeValidation/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><![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/validation/declarativeValidation/index.jsp"> + </head> + <body> + <h3>Declarative Validation</h3> + + <form id="Netui_Form_0" action="/coreWeb/validation/declarativeValidation/begin.do" method="post"> + page flow 'str' property: <input type="text" name="{pageFlow.str}" value="aaa"> + <input type="submit" value="submit"> + </form> + <hr/> + + Which type of validation? + <form id="Netui_Form_1" action="/coreWeb/validation/declarativeValidation/begin.do" method="post"> + <input type="radio" name="wlw-radio_button_group_key:{pageFlow.selectedAction}" value="actionLevelValidate"><span>action-level validation</span><br> +<input type="radio" name="wlw-radio_button_group_key:{pageFlow.selectedAction}" value="classLevelValidate"><span>class-level validation</span><br> +<input type="radio" name="wlw-radio_button_group_key:{pageFlow.selectedAction}" value="formLevelValidate" checked><span>form-level validation</span><br> + + <input type="submit" value="submit"> + </form> + <hr/> + + <form name="validatedForm" action="/coreWeb/validation/declarativeValidation/formLevelValidate.do" method="post"> + <table> + <tr> + <td>minlength=2:</td> + <td> + <input type="text" name="{actionForm.minLength}"> + + </td> + </tr> + <tr> + <td>maxlength=2:</td> + <td> + <input type="text" name="{actionForm.maxLength}"> + + </td> + </tr> + <tr> + <td>mask=a*b:</td> + <td> + <input type="text" name="{actionForm.mask}"> + + </td> + </tr> + <tr> + <td>type=int:</td> + <td> + <input type="text" name="{actionForm.typeInt}"> + + </td> + </tr> + <tr> + <td>type=short:</td> + <td> + <input type="text" name="{actionForm.typeShort}"> + + </td> + </tr> + <tr> + <td>type=long:</td> + <td> + <input type="text" name="{actionForm.typeLong}"> + + </td> + </tr> + <tr> + <td>type=double:</td> + <td> + <input type="text" name="{actionForm.typeDouble}"> + + </td> + </tr> + <tr> + <td>type=float:</td> + <td> + <input type="text" name="{actionForm.typeFloat}"> + + </td> + </tr> + <tr> + <td>type=byte:</td> + <td> + <input type="text" name="{actionForm.typeByte}"> + + </td> + </tr> + <tr> + <td>date=MM-dd-YYYY:</td> + <td> + <input type="text" name="{actionForm.date}"> + + </td> + </tr> + <tr> + <td>range 1-10:</td> + <td> + <input type="text" name="{actionForm.range}"> + + </td> + </tr> + <tr> + <td>credit card:</td> + <td> + <input type="text" name="{actionForm.creditCard}"> + + </td> + </tr> + <tr> + <td>email:</td> + <td> + <input type="text" name="{actionForm.email}"> + + </td> + </tr> + <tr> + <td>valid when pageFlow.str==actionForm.validWhenPageFlowProp:</td> + <td> + <input type="text" name="{actionForm.validWhenPageFlowProp}"> + + </td> + </tr> + </table> + <input type="submit" value="formLevelValidate"> + </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/validation/declarativeValidation/begin.do</ses:uri> + <ses:method>POST</ses:method> + <ses:parameters> + <ses:parameter> + <ses:name>wlw-radio_button_group_key:{pageFlow.selectedAction}</ses:name> + <ses:value>classLevelValidate</ses:value> + </ses:parameter> + </ses:parameters> + <ses:cookies> + <ses:cookie> + <ses:name>JSESSIONID</ses:name> + <ses:value>DAC13B34DC00E6AD67C96F02AC6820E7</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>77</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=DAC13B34DC00E6AD67C96F02AC6820E7</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/validation/declarativeValidation/begin.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.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[<!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/validation/declarativeValidation/index.jsp"> + </head> + <body> + <h3>Declarative Validation</h3> + + <form id="Netui_Form_0" action="/coreWeb/validation/declarativeValidation/begin.do" method="post"> + page flow 'str' property: <input type="text" name="{pageFlow.str}" value="aaa"> + <input type="submit" value="submit"> + </form> + <hr/> + + Which type of validation? + <form id="Netui_Form_1" action="/coreWeb/validation/declarativeValidation/begin.do" method="post"> + <input type="radio" name="wlw-radio_button_group_key:{pageFlow.selectedAction}" value="actionLevelValidate"><span>action-level validation</span><br> +<input type="radio" name="wlw-radio_button_group_key:{pageFlow.selectedAction}" value="classLevelValidate" checked><span>class-level validation</span><br> +<input type="radio" name="wlw-radio_button_group_key:{pageFlow.selectedAction}" value="formLevelValidate"><span>form-level validation</span><br> + + <input type="submit" value="submit"> + </form> + <hr/> + + <form name="unvalidatedForm2" action="/coreWeb/validation/declarativeValidation/classLevelValidate.do" method="post"> + <table> + <tr> + <td>minlength=2:</td> + <td> + <input type="text" name="{actionForm.minLength}"> + + </td> + </tr> + <tr> + <td>maxlength=2:</td> + <td> + <input type="text" name="{actionForm.maxLength}"> + + </td> + </tr> + <tr> + <td>mask=a*b:</td> + <td> + <input type="text" name="{actionForm.mask}"> + + </td> + </tr> + <tr> + <td>type=int:</td> + <td> + <input type="text" name="{actionForm.typeInt}"> + + </td> + </tr> + <tr> + <td>type=short:</td> + <td> + <input type="text" name="{actionForm.typeShort}"> + + </td> + </tr> + <tr> + <td>type=long:</td> + <td> + <input type="text" name="{actionForm.typeLong}"> + + </td> + </tr> + <tr> + <td>type=double:</td> + <td> + <input type="text" name="{actionForm.typeDouble}"> + + </td> + </tr> + <tr> + <td>type=float:</td> + <td> + <input type="text" name="{actionForm.typeFloat}"> + + </td> + </tr> + <tr> + <td>type=byte:</td> + <td> + <input type="text" name="{actionForm.typeByte}"> + + </td> + </tr> + <tr> + <td>date=MM-dd-YYYY:</td> + <td> + <input type="text" name="{actionForm.date}"> + + </td> + </tr> + <tr> + <td>range 1-10:</td> + <td> + <input type="text" name="{actionForm.range}"> + + </td> + </tr> + <tr> + <td>credit card:</td> + <td> + <input type="text" name="{actionForm.creditCard}"> + + </td> + </tr> + <tr> + <td>email:</td> + <td> + <input type="text" name="{actionForm.email}"> + + </td> + </tr> + <tr> + <td>valid when pageFlow.str==actionForm.validWhenPageFlowProp:</td> + <td> + <input type="text" name="{actionForm.validWhenPageFlowProp}"> + + </td> + </tr> + </table> + <input type="submit" value="classLevelValidate"> + </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>/coreWeb/validation/declarativeValidation/classLevelValidate.do</ses:uri> + <ses:method>POST</ses:method> + <ses:parameters> + <ses:parameter> + <ses:name>{actionForm.creditCard}</ses:name> + <ses:value/> + </ses:parameter> + <ses:parameter> + <ses:name>{actionForm.date}</ses:name> + <ses:value/> + </ses:parameter> + <ses:parameter> + <ses:name>{actionForm.email}</ses:name> + <ses:value/> + </ses:parameter> + <ses:parameter> + <ses:name>{actionForm.mask}</ses:name> + <ses:value/> + </ses:parameter> + <ses:parameter> + <ses:name>{actionForm.maxLength}</ses:name> + <ses:value/> + </ses:parameter> + <ses:parameter> + <ses:name>{actionForm.minLength}</ses:name> + <ses:value/> + </ses:parameter> + <ses:parameter> + <ses:name>{actionForm.range}</ses:name> + <ses:value/> + </ses:parameter> + <ses:parameter> + <ses:name>{actionForm.typeByte}</ses:name> + <ses:value/> + </ses:parameter> + <ses:parameter> + <ses:name>{actionForm.typeDouble}</ses:name> + <ses:value/> + </ses:parameter> + <ses:parameter> + <ses:name>{actionForm.typeFloat}</ses:name> + <ses:value/> + </ses:parameter> + <ses:parameter> + <ses:name>{actionForm.typeInt}</ses:name> + <ses:value/> + </ses:parameter> + <ses:parameter> + <ses:name>{actionForm.typeLong}</ses:name> + <ses:value/> + </ses:parameter> + <ses:parameter> + <ses:name>{actionForm.typeShort}</ses:name> + <ses:value/> + </ses:parameter> + <ses:parameter> + <ses:name>{actionForm.validWhenPageFlowProp}</ses:name> + <ses:value/> + </ses:parameter> + </ses:parameters> + <ses:cookies> + <ses:cookie> + <ses:name>JSESSIONID</ses:name> + <ses:value>DAC13B34DC00E6AD67C96F02AC6820E7</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>383</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=DAC13B34DC00E6AD67C96F02AC6820E7</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/validation/declarativeValidation/begin.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.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[<!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/validation/declarativeValidation/index.jsp"> + </head> + <body> + <h3>Declarative Validation</h3> + + <form id="Netui_Form_0" action="/coreWeb/validation/declarativeValidation/begin.do" method="post"> + page flow 'str' property: <input type="text" name="{pageFlow.str}" value="aaa"> + <input type="submit" value="submit"> + </form> + <hr/> + + Which type of validation? + <form id="Netui_Form_1" action="/coreWeb/validation/declarativeValidation/begin.do" method="post"> + <input type="radio" name="wlw-radio_button_group_key:{pageFlow.selectedAction}" value="actionLevelValidate"><span>action-level validation</span><br> +<input type="radio" name="wlw-radio_button_group_key:{pageFlow.selectedAction}" value="classLevelValidate" checked><span>class-level validation</span><br> +<input type="radio" name="wlw-radio_button_group_key:{pageFlow.selectedAction}" value="formLevelValidate"><span>form-level validation</span><br> + + <input type="submit" value="submit"> + </form> + <hr/> + + <form name="unvalidatedForm2" action="/coreWeb/validation/declarativeValidation/classLevelValidate.do" method="post"> + <table> + <tr> + <td>minlength=2:</td> + <td> + <input type="text" name="{actionForm.minLength}"> + This field is required. + + </td> + </tr> + <tr> + <td>maxlength=2:</td> + <td> + <input type="text" name="{actionForm.maxLength}"> + This field is required. + + </td> + </tr> + <tr> + <td>mask=a*b:</td> + <td> + <input type="text" name="{actionForm.mask}"> + This field is required. + + </td> + </tr> + <tr> + <td>type=int:</td> + <td> + <input type="text" name="{actionForm.typeInt}"> + This field is required. + + </td> + </tr> + <tr> + <td>type=short:</td> + <td> + <input type="text" name="{actionForm.typeShort}"> + This field is required. + + </td> + </tr> + <tr> + <td>type=long:</td> + <td> + <input type="text" name="{actionForm.typeLong}"> + This field is required. + + </td> + </tr> + <tr> + <td>type=double:</td> + <td> + <input type="text" name="{actionForm.typeDouble}"> + This field is required. + + </td> + </tr> + <tr> + <td>type=float:</td> + <td> + <input type="text" name="{actionForm.typeFloat}"> + This field is required. + + </td> + </tr> + <tr> + <td>type=byte:</td> + <td> + <input type="text" name="{actionForm.typeByte}"> + This field is required. + + </td> + </tr> + <tr> + <td>date=MM-dd-YYYY:</td> + <td> + <input type="text" name="{actionForm.date}"> + This field is required. + + </td> + </tr> + <tr> + <td>range 1-10:</td> + <td> + <input type="text" name="{actionForm.range}"> + This field is required. + + </td> + </tr> + <tr> + <td>credit card:</td> + <td> + <input type="text" name="{actionForm.creditCard}"> + This field is required. + + </td> + </tr> + <tr> + <td>email:</td> + <td> + <input type="text" name="{actionForm.email}"> + This field is required. + + </td> + </tr> + <tr> + <td>valid when pageFlow.str==actionForm.validWhenPageFlowProp:</td> + <td> + <input type="text" name="{actionForm.validWhenPageFlowProp}"> + This field is required. + + </td> + </tr> + </table> + <input type="submit" value="classLevelValidate"> + </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>/coreWeb/validation/declarativeValidation/classLevelValidate.do</ses:uri> + <ses:method>POST</ses:method> + <ses:parameters> + <ses:parameter> + <ses:name>{actionForm.creditCard}</ses:name> + <ses:value>4444444444444447</ses:value> + </ses:parameter> + <ses:parameter> + <ses:name>{actionForm.date}</ses:name> + <ses:value>invalid</ses:value> + </ses:parameter> + <ses:parameter> + <ses:name>{actionForm.email}</ses:name> + <ses:value>invalid</ses:value> + </ses:parameter> + <ses:parameter> + <ses:name>{actionForm.mask}</ses:name> + <ses:value>aaa</ses:value> + </ses:parameter> + <ses:parameter> + <ses:name>{actionForm.maxLength}</ses:name> + <ses:value>aaa</ses:value> + </ses:parameter> + <ses:parameter> + <ses:name>{actionForm.minLength}</ses:name> + <ses:value>a</ses:value> + </ses:parameter> + <ses:parameter> + <ses:name>{actionForm.range}</ses:name> + <ses:value>11</ses:value> + </ses:parameter> + <ses:parameter> + <ses:name>{actionForm.typeByte}</ses:name> + <ses:value>128</ses:value> + </ses:parameter> + <ses:parameter> + <ses:name>{actionForm.typeDouble}</ses:name> + <ses:value>a</ses:value> + </ses:parameter> + <ses:parameter> + <ses:name>{actionForm.typeFloat}</ses:name> + <ses:value>a</ses:value> + </ses:parameter> + <ses:parameter> + <ses:name>{actionForm.typeInt}</ses:name> + <ses:value>a</ses:value> + </ses:parameter> + <ses:parameter> + <ses:name>{actionForm.typeLong}</ses:name> + <ses:value>a</ses:value> + </ses:parameter> + <ses:parameter> + <ses:name>{actionForm.typeShort}</ses:name> + <ses:value>32768</ses:value> + </ses:parameter> + <ses:parameter> + <ses:name>{actionForm.validWhenPageFlowProp}</ses:name> + <ses:value>aa</ses:value> + </ses:parameter> + </ses:parameters> + <ses:cookies> + <ses:cookie> + <ses:name>JSESSIONID</ses:name> + <ses:value>DAC13B34DC00E6AD67C96F02AC6820E7</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>436</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=DAC13B34DC00E6AD67C96F02AC6820E7</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/validation/declarativeValidation/classLevelValidate.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.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[<!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/validation/declarativeValidation/index.jsp"> + </head> + <body> + <h3>Declarative Validation</h3> + + <form id="Netui_Form_0" action="/coreWeb/validation/declarativeValidation/begin.do" method="post"> + page flow 'str' property: <input type="text" name="{pageFlow.str}" value="aaa"> + <input type="submit" value="submit"> + </form> + <hr/> + + Which type of validation? + <form id="Netui_Form_1" action="/coreWeb/validation/declarativeValidation/begin.do" method="post"> + <input type="radio" name="wlw-radio_button_group_key:{pageFlow.selectedAction}" value="actionLevelValidate"><span>action-level validation</span><br> +<input type="radio" name="wlw-radio_button_group_key:{pageFlow.selectedAction}" value="classLevelValidate" checked><span>class-level validation</span><br> +<input type="radio" name="wlw-radio_button_group_key:{pageFlow.selectedAction}" value="formLevelValidate"><span>form-level validation</span><br> + + <input type="submit" value="submit"> + </form> + <hr/> + + <form name="unvalidatedForm2" action="/coreWeb/validation/declarativeValidation/classLevelValidate.do" method="post"> + <table> + <tr> + <td>minlength=2:</td> + <td> + <input type="text" name="{actionForm.minLength}" value="a"> + This field cannot be less than 2 characters. + + </td> + </tr> + <tr> + <td>maxlength=2:</td> + <td> + <input type="text" name="{actionForm.maxLength}" value="aaa"> + This field cannot be greater than 2 characters. + + </td> + </tr> + <tr> + <td>mask=a*b:</td> + <td> + <input type="text" name="{actionForm.mask}" value="aaa"> + This field is invalid. + + </td> + </tr> + <tr> + <td>type=int:</td> + <td> + <input type="text" name="{actionForm.typeInt}" value="a"> + This field must be an integer. + + </td> + </tr> + <tr> + <td>type=short:</td> + <td> + <input type="text" name="{actionForm.typeShort}" value="32768"> + This field must be a short. + + </td> + </tr> + <tr> + <td>type=long:</td> + <td> + <input type="text" name="{actionForm.typeLong}" value="a"> + This field must be a long. + + </td> + </tr> + <tr> + <td>type=double:</td> + <td> + <input type="text" name="{actionForm.typeDouble}" value="a"> + This field must be a double. + + </td> + </tr> + <tr> + <td>type=float:</td> + <td> + <input type="text" name="{actionForm.typeFloat}" value="a"> + This field must be a float. + + </td> + </tr> + <tr> + <td>type=byte:</td> + <td> + <input type="text" name="{actionForm.typeByte}" value="128"> + This field must be a byte. + + </td> + </tr> + <tr> + <td>date=MM-dd-YYYY:</td> + <td> + <input type="text" name="{actionForm.date}" value="invalid"> + This field is not a date. + + </td> + </tr> + <tr> + <td>range 1-10:</td> + <td> + <input type="text" name="{actionForm.range}" value="11"> + This field is not in the range 1 through 10. + + </td> + </tr> + <tr> + <td>credit card:</td> + <td> + <input type="text" name="{actionForm.creditCard}" value="4444444444444447"> + This field is an invalid credit card number. + + </td> + </tr> + <tr> + <td>email:</td> + <td> + <input type="text" name="{actionForm.email}" value="invalid"> + This field is an invalid e-mail address. + + </td> + </tr> + <tr> + <td>valid when pageFlow.str==actionForm.validWhenPageFlowProp:</td> + <td> + <input type="text" name="{actionForm.validWhenPageFlowProp}" value="aa"> + pageFlow.str must be the same as this + + </td> + </tr> + </table> + <input type="submit" value="classLevelValidate"> + </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>/coreWeb/validation/declarativeValidation/classLevelValidate.do</ses:uri> + <ses:method>POST</ses:method> + <ses:parameters> + <ses:parameter> + <ses:name>{actionForm.creditCard}</ses:name> + <ses:value>4444444444444448</ses:value> + </ses:parameter> + <ses:parameter> + <ses:name>{actionForm.date}</ses:name> + <ses:value>10-10-1973</ses:value> + </ses:parameter> + <ses:parameter> + <ses:name>{actionForm.email}</ses:name> + <ses:value>[EMAIL PROTECTED]</ses:value> + </ses:parameter> + <ses:parameter> + <ses:name>{actionForm.mask}</ses:name> + <ses:value>aaab</ses:value> + </ses:parameter> + <ses:parameter> + <ses:name>{actionForm.maxLength}</ses:name> + <ses:value>aa</ses:value> + </ses:parameter> + <ses:parameter> + <ses:name>{actionForm.minLength}</ses:name> + <ses:value>aa</ses:value> + </ses:parameter> + <ses:parameter> + <ses:name>{actionForm.range}</ses:name> + <ses:value>9</ses:value> + </ses:parameter> + <ses:parameter> + <ses:name>{actionForm.typeByte}</ses:name> + <ses:value>127</ses:value> + </ses:parameter> + <ses:parameter> + <ses:name>{actionForm.typeDouble}</ses:name> + <ses:value>2.0</ses:value> + </ses:parameter> + <ses:parameter> + <ses:name>{actionForm.typeFloat}</ses:name> + <ses:value>2.0</ses:value> + </ses:parameter> + <ses:parameter> + <ses:name>{actionForm.typeInt}</ses:name> + <ses:value>10</ses:value> + </ses:parameter> + <ses:parameter> + <ses:name>{actionForm.typeLong}</ses:name> + <ses:value>10</ses:value> + </ses:parameter> + <ses:parameter> + <ses:name>{actionForm.typeShort}</ses:name> + <ses:value>32767</ses:value> + </ses:parameter> + <ses:parameter> + <ses:name>{actionForm.validWhenPageFlowProp}</ses:name> + <ses:value>aaa</ses:value> + </ses:parameter> + </ses:parameters> + <ses:cookies> + <ses:cookie> + <ses:name>JSESSIONID</ses:name> + <ses:value>DAC13B34DC00E6AD67C96F02AC6820E7</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>454</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=DAC13B34DC00E6AD67C96F02AC6820E7</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/validation/declarativeValidation/classLevelValidate.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.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[<!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/validation/declarativeValidation/success.jsp"> + </head> + <body> + All validation passed. + <br/> + <a href="/coreWeb/validation/declarativeValidation/begin.do">start over</a> + </body> + +</html>]]></ses:responseBody> + </ses:response> + </ses:test> + </ses:tests> + <ses:endDate>16 Dec 2004, 02:28:20.933 AM MST</ses:endDate> + <ses:testCount>6</ses:testCount> +</ses:recorderSession> Added: incubator/beehive/trunk/netui/test/webapps/drt/testRecorder/tests/ValidateThroughForm.xml Url: http://svn.apache.org/viewcvs/incubator/beehive/trunk/netui/test/webapps/drt/testRecorder/tests/ValidateThroughForm.xml?view=auto&rev=122537 ============================================================================== --- (empty file) +++ incubator/beehive/trunk/netui/test/webapps/drt/testRecorder/tests/ValidateThroughForm.xml Thu Dec 16 01:38:39 2004 @@ -0,0 +1,1105 @@ +<?xml version="1.0" encoding="UTF-8"?> +<ses:recorderSession xmlns:ses="http://beehive.apache.org/netui/tools/testrecorder/2004/session"> + <ses:sessionName>ValidateThroughForm</ses:sessionName> + <ses:tester>rich</ses:tester> + <ses:startDate>16 Dec 2004, 02:19:50.249 AM MST</ses:startDate> + <ses:description>Test of declarative validation on form fields.</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/validation/declarativeValidation/Controller.jpf</ses:uri> + <ses:method>GET</ses:method> + <ses:parameters/> + <ses:cookies> + <ses:cookie> + <ses:name>JSESSIONID</ses:name> + <ses:value>DAC13B34DC00E6AD67C96F02AC6820E7</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=DAC13B34DC00E6AD67C96F02AC6820E7</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><![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/validation/declarativeValidation/index.jsp"> + </head> + <body> + <h3>Declarative Validation</h3> + + <form id="Netui_Form_0" action="/coreWeb/validation/declarativeValidation/begin.do" method="post"> + page flow 'str' property: <input type="text" name="{pageFlow.str}"> + <input type="submit" value="submit"> + </form> + <hr/> + + Which type of validation? + <form id="Netui_Form_1" action="/coreWeb/validation/declarativeValidation/begin.do" method="post"> + <input type="radio" name="wlw-radio_button_group_key:{pageFlow.selectedAction}" value="actionLevelValidate"><span>action-level validation</span><br> +<input type="radio" name="wlw-radio_button_group_key:{pageFlow.selectedAction}" value="classLevelValidate"><span>class-level validation</span><br> +<input type="radio" name="wlw-radio_button_group_key:{pageFlow.selectedAction}" value="formLevelValidate" checked><span>form-level validation</span><br> + + <input type="submit" value="submit"> + </form> + <hr/> + + <form name="validatedForm" action="/coreWeb/validation/declarativeValidation/formLevelValidate.do" method="post"> + <table> + <tr> + <td>minlength=2:</td> + <td> + <input type="text" name="{actionForm.minLength}"> + + </td> + </tr> + <tr> + <td>maxlength=2:</td> + <td> + <input type="text" name="{actionForm.maxLength}"> + + </td> + </tr> + <tr> + <td>mask=a*b:</td> + <td> + <input type="text" name="{actionForm.mask}"> + + </td> + </tr> + <tr> + <td>type=int:</td> + <td> + <input type="text" name="{actionForm.typeInt}"> + + </td> + </tr> + <tr> + <td>type=short:</td> + <td> + <input type="text" name="{actionForm.typeShort}"> + + </td> + </tr> + <tr> + <td>type=long:</td> + <td> + <input type="text" name="{actionForm.typeLong}"> + + </td> + </tr> + <tr> + <td>type=double:</td> + <td> + <input type="text" name="{actionForm.typeDouble}"> + + </td> + </tr> + <tr> + <td>type=float:</td> + <td> + <input type="text" name="{actionForm.typeFloat}"> + + </td> + </tr> + <tr> + <td>type=byte:</td> + <td> + <input type="text" name="{actionForm.typeByte}"> + + </td> + </tr> + <tr> + <td>date=MM-dd-YYYY:</td> + <td> + <input type="text" name="{actionForm.date}"> + + </td> + </tr> + <tr> + <td>range 1-10:</td> + <td> + <input type="text" name="{actionForm.range}"> + + </td> + </tr> + <tr> + <td>credit card:</td> + <td> + <input type="text" name="{actionForm.creditCard}"> + + </td> + </tr> + <tr> + <td>email:</td> + <td> + <input type="text" name="{actionForm.email}"> + + </td> + </tr> + <tr> + <td>valid when pageFlow.str==actionForm.validWhenPageFlowProp:</td> + <td> + <input type="text" name="{actionForm.validWhenPageFlowProp}"> + + </td> + </tr> + </table> + <input type="submit" value="formLevelValidate"> + </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/validation/declarativeValidation/begin.do</ses:uri> + <ses:method>POST</ses:method> + <ses:parameters> + <ses:parameter> + <ses:name>{pageFlow.str}</ses:name> + <ses:value>aaa</ses:value> + </ses:parameter> + </ses:parameters> + <ses:cookies> + <ses:cookie> + <ses:name>JSESSIONID</ses:name> + <ses:value>DAC13B34DC00E6AD67C96F02AC6820E7</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>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=DAC13B34DC00E6AD67C96F02AC6820E7</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/validation/declarativeValidation/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><![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/validation/declarativeValidation/index.jsp"> + </head> + <body> + <h3>Declarative Validation</h3> + + <form id="Netui_Form_0" action="/coreWeb/validation/declarativeValidation/begin.do" method="post"> + page flow 'str' property: <input type="text" name="{pageFlow.str}" value="aaa"> + <input type="submit" value="submit"> + </form> + <hr/> + + Which type of validation? + <form id="Netui_Form_1" action="/coreWeb/validation/declarativeValidation/begin.do" method="post"> + <input type="radio" name="wlw-radio_button_group_key:{pageFlow.selectedAction}" value="actionLevelValidate"><span>action-level validation</span><br> +<input type="radio" name="wlw-radio_button_group_key:{pageFlow.selectedAction}" value="classLevelValidate"><span>class-level validation</span><br> +<input type="radio" name="wlw-radio_button_group_key:{pageFlow.selectedAction}" value="formLevelValidate" checked><span>form-level validation</span><br> + + <input type="submit" value="submit"> + </form> + <hr/> + + <form name="validatedForm" action="/coreWeb/validation/declarativeValidation/formLevelValidate.do" method="post"> + <table> + <tr> + <td>minlength=2:</td> + <td> + <input type="text" name="{actionForm.minLength}"> + + </td> + </tr> + <tr> + <td>maxlength=2:</td> + <td> + <input type="text" name="{actionForm.maxLength}"> + + </td> + </tr> + <tr> + <td>mask=a*b:</td> + <td> + <input type="text" name="{actionForm.mask}"> + + </td> + </tr> + <tr> + <td>type=int:</td> + <td> + <input type="text" name="{actionForm.typeInt}"> + + </td> + </tr> + <tr> + <td>type=short:</td> + <td> + <input type="text" name="{actionForm.typeShort}"> + + </td> + </tr> + <tr> + <td>type=long:</td> + <td> + <input type="text" name="{actionForm.typeLong}"> + + </td> + </tr> + <tr> + <td>type=double:</td> + <td> + <input type="text" name="{actionForm.typeDouble}"> + + </td> + </tr> + <tr> + <td>type=float:</td> + <td> + <input type="text" name="{actionForm.typeFloat}"> + + </td> + </tr> + <tr> + <td>type=byte:</td> + <td> + <input type="text" name="{actionForm.typeByte}"> + + </td> + </tr> + <tr> + <td>date=MM-dd-YYYY:</td> + <td> + <input type="text" name="{actionForm.date}"> + + </td> + </tr> + <tr> + <td>range 1-10:</td> + <td> + <input type="text" name="{actionForm.range}"> + + </td> + </tr> + <tr> + <td>credit card:</td> + <td> + <input type="text" name="{actionForm.creditCard}"> + + </td> + </tr> + <tr> + <td>email:</td> + <td> + <input type="text" name="{actionForm.email}"> + + </td> + </tr> + <tr> + <td>valid when pageFlow.str==actionForm.validWhenPageFlowProp:</td> + <td> + <input type="text" name="{actionForm.validWhenPageFlowProp}"> + + </td> + </tr> + </table> + <input type="submit" value="formLevelValidate"> + </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/validation/declarativeValidation/formLevelValidate.do</ses:uri> + <ses:method>POST</ses:method> + <ses:parameters> + <ses:parameter> + <ses:name>{actionForm.creditCard}</ses:name> + <ses:value/> + </ses:parameter> + <ses:parameter> + <ses:name>{actionForm.date}</ses:name> + <ses:value/> + </ses:parameter> + <ses:parameter> + <ses:name>{actionForm.email}</ses:name> + <ses:value/> + </ses:parameter> + <ses:parameter> + <ses:name>{actionForm.mask}</ses:name> + <ses:value/> + </ses:parameter> + <ses:parameter> + <ses:name>{actionForm.maxLength}</ses:name> + <ses:value/> + </ses:parameter> + <ses:parameter> + <ses:name>{actionForm.minLength}</ses:name> + <ses:value/> + </ses:parameter> + <ses:parameter> + <ses:name>{actionForm.range}</ses:name> + <ses:value/> + </ses:parameter> + <ses:parameter> + <ses:name>{actionForm.typeByte}</ses:name> + <ses:value/> + </ses:parameter> + <ses:parameter> + <ses:name>{actionForm.typeDouble}</ses:name> + <ses:value/> + </ses:parameter> + <ses:parameter> + <ses:name>{actionForm.typeFloat}</ses:name> + <ses:value/> + </ses:parameter> + <ses:parameter> + <ses:name>{actionForm.typeInt}</ses:name> + <ses:value/> + </ses:parameter> + <ses:parameter> + <ses:name>{actionForm.typeLong}</ses:name> + <ses:value/> + </ses:parameter> + <ses:parameter> + <ses:name>{actionForm.typeShort}</ses:name> + <ses:value/> + </ses:parameter> + <ses:parameter> + <ses:name>{actionForm.validWhenPageFlowProp}</ses:name> + <ses:value/> + </ses:parameter> + </ses:parameters> + <ses:cookies> + <ses:cookie> + <ses:name>JSESSIONID</ses:name> + <ses:value>DAC13B34DC00E6AD67C96F02AC6820E7</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>383</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=DAC13B34DC00E6AD67C96F02AC6820E7</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/validation/declarativeValidation/begin.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.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[<!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/validation/declarativeValidation/index.jsp"> + </head> + <body> + <h3>Declarative Validation</h3> + + <form id="Netui_Form_0" action="/coreWeb/validation/declarativeValidation/begin.do" method="post"> + page flow 'str' property: <input type="text" name="{pageFlow.str}" value="aaa"> + <input type="submit" value="submit"> + </form> + <hr/> + + Which type of validation? + <form id="Netui_Form_1" action="/coreWeb/validation/declarativeValidation/begin.do" method="post"> + <input type="radio" name="wlw-radio_button_group_key:{pageFlow.selectedAction}" value="actionLevelValidate"><span>action-level validation</span><br> +<input type="radio" name="wlw-radio_button_group_key:{pageFlow.selectedAction}" value="classLevelValidate"><span>class-level validation</span><br> +<input type="radio" name="wlw-radio_button_group_key:{pageFlow.selectedAction}" value="formLevelValidate" checked><span>form-level validation</span><br> + + <input type="submit" value="submit"> + </form> + <hr/> + + <form name="validatedForm" action="/coreWeb/validation/declarativeValidation/formLevelValidate.do" method="post"> + <table> + <tr> + <td>minlength=2:</td> + <td> + <input type="text" name="{actionForm.minLength}"> + This field is required. + + </td> + </tr> + <tr> + <td>maxlength=2:</td> + <td> + <input type="text" name="{actionForm.maxLength}"> + This field is required. + + </td> + </tr> + <tr> + <td>mask=a*b:</td> + <td> + <input type="text" name="{actionForm.mask}"> + This field is required. + + </td> + </tr> + <tr> + <td>type=int:</td> + <td> + <input type="text" name="{actionForm.typeInt}"> + This field is required. + + </td> + </tr> + <tr> + <td>type=short:</td> + <td> + <input type="text" name="{actionForm.typeShort}"> + This field is required. + + </td> + </tr> + <tr> + <td>type=long:</td> + <td> + <input type="text" name="{actionForm.typeLong}"> + This field is required. + + </td> + </tr> + <tr> + <td>type=double:</td> + <td> + <input type="text" name="{actionForm.typeDouble}"> + This field is required. + + </td> + </tr> + <tr> + <td>type=float:</td> + <td> + <input type="text" name="{actionForm.typeFloat}"> + This field is required. + + </td> + </tr> + <tr> + <td>type=byte:</td> + <td> + <input type="text" name="{actionForm.typeByte}"> + This field is required. + + </td> + </tr> + <tr> + <td>date=MM-dd-YYYY:</td> + <td> + <input type="text" name="{actionForm.date}"> + This field is required. + + </td> + </tr> + <tr> + <td>range 1-10:</td> + <td> + <input type="text" name="{actionForm.range}"> + This field is required. + + </td> + </tr> + <tr> + <td>credit card:</td> + <td> + <input type="text" name="{actionForm.creditCard}"> + This field is required. + + </td> + </tr> + <tr> + <td>email:</td> + <td> + <input type="text" name="{actionForm.email}"> + This field is required. + + </td> + </tr> + <tr> + <td>valid when pageFlow.str==actionForm.validWhenPageFlowProp:</td> + <td> + <input type="text" name="{actionForm.validWhenPageFlowProp}"> + This field is required. + + </td> + </tr> + </table> + <input type="submit" value="formLevelValidate"> + </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>/coreWeb/validation/declarativeValidation/formLevelValidate.do</ses:uri> + <ses:method>POST</ses:method> + <ses:parameters> + <ses:parameter> + <ses:name>{actionForm.creditCard}</ses:name> + <ses:value>4444444444444447</ses:value> + </ses:parameter> + <ses:parameter> + <ses:name>{actionForm.date}</ses:name> + <ses:value>invalid</ses:value> + </ses:parameter> + <ses:parameter> + <ses:name>{actionForm.email}</ses:name> + <ses:value>invalid</ses:value> + </ses:parameter> + <ses:parameter> + <ses:name>{actionForm.mask}</ses:name> + <ses:value>aaa</ses:value> + </ses:parameter> + <ses:parameter> + <ses:name>{actionForm.maxLength}</ses:name> + <ses:value>aaa</ses:value> + </ses:parameter> + <ses:parameter> + <ses:name>{actionForm.minLength}</ses:name> + <ses:value>a</ses:value> + </ses:parameter> + <ses:parameter> + <ses:name>{actionForm.range}</ses:name> + <ses:value>11</ses:value> + </ses:parameter> + <ses:parameter> + <ses:name>{actionForm.typeByte}</ses:name> + <ses:value>128</ses:value> + </ses:parameter> + <ses:parameter> + <ses:name>{actionForm.typeDouble}</ses:name> + <ses:value>a</ses:value> + </ses:parameter> + <ses:parameter> + <ses:name>{actionForm.typeFloat}</ses:name> + <ses:value>a</ses:value> + </ses:parameter> + <ses:parameter> + <ses:name>{actionForm.typeInt}</ses:name> + <ses:value>a</ses:value> + </ses:parameter> + <ses:parameter> + <ses:name>{actionForm.typeLong}</ses:name> + <ses:value>a</ses:value> + </ses:parameter> + <ses:parameter> + <ses:name>{actionForm.typeShort}</ses:name> + <ses:value>32768</ses:value> + </ses:parameter> + <ses:parameter> + <ses:name>{actionForm.validWhenPageFlowProp}</ses:name> + <ses:value>aa</ses:value> + </ses:parameter> + </ses:parameters> + <ses:cookies> + <ses:cookie> + <ses:name>JSESSIONID</ses:name> + <ses:value>DAC13B34DC00E6AD67C96F02AC6820E7</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>436</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=DAC13B34DC00E6AD67C96F02AC6820E7</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/validation/declarativeValidation/formLevelValidate.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.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[<!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/validation/declarativeValidation/index.jsp"> + </head> + <body> + <h3>Declarative Validation</h3> + + <form id="Netui_Form_0" action="/coreWeb/validation/declarativeValidation/begin.do" method="post"> + page flow 'str' property: <input type="text" name="{pageFlow.str}" value="aaa"> + <input type="submit" value="submit"> + </form> + <hr/> + + Which type of validation? + <form id="Netui_Form_1" action="/coreWeb/validation/declarativeValidation/begin.do" method="post"> + <input type="radio" name="wlw-radio_button_group_key:{pageFlow.selectedAction}" value="actionLevelValidate"><span>action-level validation</span><br> +<input type="radio" name="wlw-radio_button_group_key:{pageFlow.selectedAction}" value="classLevelValidate"><span>class-level validation</span><br> +<input type="radio" name="wlw-radio_button_group_key:{pageFlow.selectedAction}" value="formLevelValidate" checked><span>form-level validation</span><br> + + <input type="submit" value="submit"> + </form> + <hr/> + + <form name="validatedForm" action="/coreWeb/validation/declarativeValidation/formLevelValidate.do" method="post"> + <table> + <tr> + <td>minlength=2:</td> + <td> + <input type="text" name="{actionForm.minLength}" value="a"> + This field cannot be less than 2 characters. + + </td> + </tr> + <tr> + <td>maxlength=2:</td> + <td> + <input type="text" name="{actionForm.maxLength}" value="aaa"> + This field cannot be greater than 2 characters. + + </td> + </tr> + <tr> + <td>mask=a*b:</td> + <td> + <input type="text" name="{actionForm.mask}" value="aaa"> + This field is invalid. + + </td> + </tr> + <tr> + <td>type=int:</td> + <td> + <input type="text" name="{actionForm.typeInt}" value="a"> + This field must be an integer. + + </td> + </tr> + <tr> + <td>type=short:</td> + <td> + <input type="text" name="{actionForm.typeShort}" value="32768"> + This field must be a short. + + </td> + </tr> + <tr> + <td>type=long:</td> + <td> + <input type="text" name="{actionForm.typeLong}" value="a"> + This field must be a long. + + </td> + </tr> + <tr> + <td>type=double:</td> + <td> + <input type="text" name="{actionForm.typeDouble}" value="a"> + This field must be a double. + + </td> + </tr> + <tr> + <td>type=float:</td> + <td> + <input type="text" name="{actionForm.typeFloat}" value="a"> + This field must be a float. + + </td> + </tr> + <tr> + <td>type=byte:</td> + <td> + <input type="text" name="{actionForm.typeByte}" value="128"> + This field must be a byte. + + </td> + </tr> + <tr> + <td>date=MM-dd-YYYY:</td> + <td> + <input type="text" name="{actionForm.date}" value="invalid"> + This field is not a date. + + </td> + </tr> + <tr> + <td>range 1-10:</td> + <td> + <input type="text" name="{actionForm.range}" value="11"> + This field is not in the range 1 through 10. + + </td> + </tr> + <tr> + <td>credit card:</td> + <td> + <input type="text" name="{actionForm.creditCard}" value="4444444444444447"> + This field is an invalid credit card number. + + </td> + </tr> + <tr> + <td>email:</td> + <td> + <input type="text" name="{actionForm.email}" value="invalid"> + This field is an invalid e-mail address. + + </td> + </tr> + <tr> + <td>valid when pageFlow.str==actionForm.validWhenPageFlowProp:</td> + <td> + <input type="text" name="{actionForm.validWhenPageFlowProp}" value="aa"> + pageFlow.str must be the same as this + + </td> + </tr> + </table> + <input type="submit" value="formLevelValidate"> + </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>/coreWeb/validation/declarativeValidation/formLevelValidate.do</ses:uri> + <ses:method>POST</ses:method> + <ses:parameters> + <ses:parameter> + <ses:name>{actionForm.creditCard}</ses:name> + <ses:value>4444444444444448</ses:value> + </ses:parameter> + <ses:parameter> + <ses:name>{actionForm.date}</ses:name> + <ses:value>10-10-1973</ses:value> + </ses:parameter> + <ses:parameter> + <ses:name>{actionForm.email}</ses:name> + <ses:value>[EMAIL PROTECTED]</ses:value> + </ses:parameter> + <ses:parameter> + <ses:name>{actionForm.mask}</ses:name> + <ses:value>aaab</ses:value> + </ses:parameter> + <ses:parameter> + <ses:name>{actionForm.maxLength}</ses:name> + <ses:value>aa</ses:value> + </ses:parameter> + <ses:parameter> + <ses:name>{actionForm.minLength}</ses:name> + <ses:value>aa</ses:value> + </ses:parameter> + <ses:parameter> + <ses:name>{actionForm.range}</ses:name> + <ses:value>9</ses:value> + </ses:parameter> + <ses:parameter> + <ses:name>{actionForm.typeByte}</ses:name> + <ses:value>127</ses:value> + </ses:parameter> + <ses:parameter> + <ses:name>{actionForm.typeDouble}</ses:name> + <ses:value>2.0</ses:value> + </ses:parameter> + <ses:parameter> + <ses:name>{actionForm.typeFloat}</ses:name> + <ses:value>2.0</ses:value> + </ses:parameter> + <ses:parameter> + <ses:name>{actionForm.typeInt}</ses:name> + <ses:value>10</ses:value> + </ses:parameter> + <ses:parameter> + <ses:name>{actionForm.typeLong}</ses:name> + <ses:value>10</ses:value> + </ses:parameter> + <ses:parameter> + <ses:name>{actionForm.typeShort}</ses:name> + <ses:value>32767</ses:value> + </ses:parameter> + <ses:parameter> + <ses:name>{actionForm.validWhenPageFlowProp}</ses:name> + <ses:value>aaa</ses:value> + </ses:parameter> + </ses:parameters> + <ses:cookies> + <ses:cookie> + <ses:name>JSESSIONID</ses:name> + <ses:value>DAC13B34DC00E6AD67C96F02AC6820E7</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>454</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=DAC13B34DC00E6AD67C96F02AC6820E7</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/validation/declarativeValidation/formLevelValidate.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.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[<!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/validation/declarativeValidation/success.jsp"> + </head> + <body> + All validation passed. + <br/> + <a href="/coreWeb/validation/declarativeValidation/begin.do">start over</a> + </body> + +</html>]]></ses:responseBody> + </ses:response> + </ses:test> + </ses:tests> + <ses:endDate>16 Dec 2004, 02:22:36.648 AM MST</ses:endDate> + <ses:testCount>5</ses:testCount> +</ses:recorderSession>
