You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@tapestry.apache.org by jk...@apache.org on 2006/10/07 04:25:54 UTC
svn commit: r453839 - in /tapestry/tapestry4/trunk/tapestry-framework/src:
java/org/apache/tapestry/enhance/ java/org/apache/tapestry/form/validator/
java/org/apache/tapestry/pageload/ test/org/apache/tapestry/form/validator/
Author: jkuhnert
Date: Fri Oct 6 19:25:53 2006
New Revision: 453839
URL: http://svn.apache.org/viewvc?view=rev&rev=453839
Log:
Resolves TAPESTRY-1109. Form fields were being validated by the required validator even if they were disabled.
Also fixed small typo in comment for some of the other services.
Modified:
tapestry/tapestry4/trunk/tapestry-framework/src/java/org/apache/tapestry/enhance/ParameterPropertyWorker.java
tapestry/tapestry4/trunk/tapestry-framework/src/java/org/apache/tapestry/form/validator/Required.java
tapestry/tapestry4/trunk/tapestry-framework/src/java/org/apache/tapestry/pageload/PageLoader.java
tapestry/tapestry4/trunk/tapestry-framework/src/test/org/apache/tapestry/form/validator/BaseValidatorTestCase.java
tapestry/tapestry4/trunk/tapestry-framework/src/test/org/apache/tapestry/form/validator/TestRequired.java
Modified: tapestry/tapestry4/trunk/tapestry-framework/src/java/org/apache/tapestry/enhance/ParameterPropertyWorker.java
URL: http://svn.apache.org/viewvc/tapestry/tapestry4/trunk/tapestry-framework/src/java/org/apache/tapestry/enhance/ParameterPropertyWorker.java?view=diff&rev=453839&r1=453838&r2=453839
==============================================================================
--- tapestry/tapestry4/trunk/tapestry-framework/src/java/org/apache/tapestry/enhance/ParameterPropertyWorker.java (original)
+++ tapestry/tapestry4/trunk/tapestry-framework/src/java/org/apache/tapestry/enhance/ParameterPropertyWorker.java Fri Oct 6 19:25:53 2006
@@ -197,7 +197,7 @@
builder.addln("return;");
builder.end();
- // In the normal state, we update the binding firstm, and it's an error
+ // In the normal state, we update the binding first - and it's an error
// if the parameter is not bound.
addBindingReference(builder, "binding", parameterName);
Modified: tapestry/tapestry4/trunk/tapestry-framework/src/java/org/apache/tapestry/form/validator/Required.java
URL: http://svn.apache.org/viewvc/tapestry/tapestry4/trunk/tapestry-framework/src/java/org/apache/tapestry/form/validator/Required.java?view=diff&rev=453839&r1=453838&r2=453839
==============================================================================
--- tapestry/tapestry4/trunk/tapestry-framework/src/java/org/apache/tapestry/form/validator/Required.java (original)
+++ tapestry/tapestry4/trunk/tapestry-framework/src/java/org/apache/tapestry/form/validator/Required.java Fri Oct 6 19:25:53 2006
@@ -53,6 +53,9 @@
public void validate(IFormComponent field, ValidationMessages messages, Object object)
throws ValidatorException
{
+ if (field.isDisabled())
+ return;
+
if ((object == null)
|| (String.class.isInstance(object) && (((String) object).length() == 0))
|| (Collection.class.isInstance(object) && ((Collection) object).isEmpty())
@@ -75,6 +78,9 @@
public void renderContribution(IMarkupWriter writer, IRequestCycle cycle,
FormComponentContributorContext context, IFormComponent field)
{
+ if(field.isDisabled())
+ return;
+
context.registerForFocus(ValidationConstants.REQUIRED_FIELD);
JSONObject profile = context.getProfile();
Modified: tapestry/tapestry4/trunk/tapestry-framework/src/java/org/apache/tapestry/pageload/PageLoader.java
URL: http://svn.apache.org/viewvc/tapestry/tapestry4/trunk/tapestry-framework/src/java/org/apache/tapestry/pageload/PageLoader.java?view=diff&rev=453839&r1=453838&r2=453839
==============================================================================
--- tapestry/tapestry4/trunk/tapestry-framework/src/java/org/apache/tapestry/pageload/PageLoader.java (original)
+++ tapestry/tapestry4/trunk/tapestry-framework/src/java/org/apache/tapestry/pageload/PageLoader.java Fri Oct 6 19:25:53 2006
@@ -167,10 +167,10 @@
// Create the mechanisms for walking the component tree when it is
// complete
IComponentVisitor verifyRequiredParametersVisitor = new VerifyRequiredParametersVisitor();
-
+
_verifyRequiredParametersWalker = new ComponentTreeWalker(
new IComponentVisitor[] { verifyRequiredParametersVisitor });
-
+
_establishDefaultParameterValuesWalker = new ComponentTreeWalker(
new IComponentVisitor[] { _establishDefaultParameterValuesVisitor });
}
Modified: tapestry/tapestry4/trunk/tapestry-framework/src/test/org/apache/tapestry/form/validator/BaseValidatorTestCase.java
URL: http://svn.apache.org/viewvc/tapestry/tapestry4/trunk/tapestry-framework/src/test/org/apache/tapestry/form/validator/BaseValidatorTestCase.java?view=diff&rev=453839&r1=453838&r2=453839
==============================================================================
--- tapestry/tapestry4/trunk/tapestry-framework/src/test/org/apache/tapestry/form/validator/BaseValidatorTestCase.java (original)
+++ tapestry/tapestry4/trunk/tapestry-framework/src/test/org/apache/tapestry/form/validator/BaseValidatorTestCase.java Fri Oct 6 19:25:53 2006
@@ -32,6 +32,15 @@
*/
public abstract class BaseValidatorTestCase extends BaseComponentTestCase
{
+ protected IFormComponent newField(String displayName, boolean disabled)
+ {
+ IFormComponent field = newField(disabled);
+
+ expect(field.getDisplayName()).andReturn(displayName);
+
+ return field;
+ }
+
protected IFormComponent newField(String displayName)
{
IFormComponent field = newMock(IFormComponent.class);
@@ -51,7 +60,27 @@
return field;
}
-
+
+ protected IFormComponent newField(String displayName, String clientId, boolean disabled)
+ {
+ IFormComponent field = newField(disabled);
+
+ checkOrder(field, false);
+
+ expect(field.getClientId()).andReturn(clientId).anyTimes();
+ expect(field.getDisplayName()).andReturn(displayName);
+
+ return field;
+ }
+
+ protected IFormComponent newField(boolean disabled)
+ {
+ IFormComponent field = newField();
+ expect(field.isDisabled()).andReturn(disabled);
+
+ return field;
+ }
+
protected IFormComponent newField()
{
return newMock(IFormComponent.class);
Modified: tapestry/tapestry4/trunk/tapestry-framework/src/test/org/apache/tapestry/form/validator/TestRequired.java
URL: http://svn.apache.org/viewvc/tapestry/tapestry4/trunk/tapestry-framework/src/test/org/apache/tapestry/form/validator/TestRequired.java?view=diff&rev=453839&r1=453838&r2=453839
==============================================================================
--- tapestry/tapestry4/trunk/tapestry-framework/src/test/org/apache/tapestry/form/validator/TestRequired.java (original)
+++ tapestry/tapestry4/trunk/tapestry-framework/src/test/org/apache/tapestry/form/validator/TestRequired.java Fri Oct 6 19:25:53 2006
@@ -39,9 +39,9 @@
@Test
public class TestRequired extends BaseValidatorTestCase
{
- public void testValidateNotNull() throws Exception
+ public void test_Validate_Not_Null() throws Exception
{
- IFormComponent field = newField();
+ IFormComponent field = newField(false);
ValidationMessages messages = newMessages();
replay();
@@ -51,9 +51,9 @@
verify();
}
- public void testValidateNull() throws Exception
+ public void test_Validate_Null() throws Exception
{
- IFormComponent field = newField("Fred");
+ IFormComponent field = newField("Fred", false);
ValidationMessages messages = newMessages(
null,
ValidationStrings.REQUIRED_FIELD,
@@ -77,9 +77,9 @@
verify();
}
- public void testValidateEmptyString() throws Exception
+ public void test_Validate_Empty_String() throws Exception
{
- IFormComponent field = newField("Fred");
+ IFormComponent field = newField("Fred", false);
ValidationMessages messages = newMessages(
null,
ValidationStrings.REQUIRED_FIELD,
@@ -103,9 +103,9 @@
verify();
}
- public void testValidateEmptyCollection() throws Exception
+ public void test_Validate_Empty_Collection() throws Exception
{
- IFormComponent field = newField("Fred");
+ IFormComponent field = newField("Fred", false);
ValidationMessages messages = newMessages(
null,
ValidationStrings.REQUIRED_FIELD,
@@ -129,9 +129,9 @@
verify();
}
- public void testValidateNullCustomMessage() throws Exception
+ public void test_Validate_Null_Custom_Message() throws Exception
{
- IFormComponent field = newField("Fred");
+ IFormComponent field = newField("Fred", false);
ValidationMessages messages = newMessages(
"custom",
ValidationStrings.REQUIRED_FIELD,
@@ -157,6 +157,17 @@
verify();
}
+ public void test_Validate_Disabled_Field() throws Exception
+ {
+ IFormComponent field = newField(true);
+
+ replay();
+
+ new Required().validate(field, null, null);
+
+ verify();
+ }
+
public void test_Render_Contribution()
{
IMarkupWriter writer = newWriter();
@@ -165,7 +176,7 @@
FormComponentContributorContext context = newMock(FormComponentContributorContext.class);
- IFormComponent field = newField("Fred", "fred");
+ IFormComponent field = newField("Fred", "fred", false);
context.registerForFocus(ValidationConstants.REQUIRED_FIELD);
@@ -187,6 +198,25 @@
assertEquals("{\"required\":[\"fred\"],\"fred\":{\"required\":[\"Default\\\\Message for Fred.\"]}}",
json.toString());
+ }
+
+ public void test_Render_Contribution_Disabled()
+ {
+ IMarkupWriter writer = newWriter();
+ IRequestCycle cycle = newCycle();
+ JSONObject json = new JSONObject();
+
+ FormComponentContributorContext context = newMock(FormComponentContributorContext.class);
+
+ IFormComponent field = newField(true);
+
+ replay();
+
+ new Required().renderContribution(writer, cycle, context, field);
+
+ verify();
+
+ assertEquals(json.toString(), "{}");
}
public void testIsRequired()