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/12/12 05:10:37 UTC

svn commit: r486007 - in /tapestry/tapestry4/trunk: tapestry-examples/Workbench/src/context/ tapestry-examples/Workbench/src/context/WEB-INF/ tapestry-framework/src/java/org/apache/tapestry/form/translator/ tapestry-framework/src/java/org/apache/tapest...

Author: jkuhnert
Date: Mon Dec 11 20:10:36 2006
New Revision: 486007

URL: http://svn.apache.org/viewvc?view=rev&rev=486007
Log:
Resolves TAPESTRY-904 by adding a new lenient parameter to DateTranslator.

Modified:
    tapestry/tapestry4/trunk/tapestry-examples/Workbench/src/context/Dates.html
    tapestry/tapestry4/trunk/tapestry-examples/Workbench/src/context/Fields.html
    tapestry/tapestry4/trunk/tapestry-examples/Workbench/src/context/WEB-INF/Fields.page
    tapestry/tapestry4/trunk/tapestry-framework/src/java/org/apache/tapestry/form/translator/DateTranslator.java
    tapestry/tapestry4/trunk/tapestry-framework/src/java/org/apache/tapestry/form/translator/FormatTranslator.java
    tapestry/tapestry4/trunk/tapestry-framework/src/java/org/apache/tapestry/form/validator/MaxDate.java
    tapestry/tapestry4/trunk/tapestry-framework/src/java/org/apache/tapestry/form/validator/MinDate.java
    tapestry/tapestry4/trunk/tapestry-framework/src/java/org/apache/tapestry/valid/ValidationStrings.properties
    tapestry/tapestry4/trunk/tapestry-framework/src/java/org/apache/tapestry/valid/ValidationStrings_en.properties
    tapestry/tapestry4/trunk/tapestry-framework/src/js/tapestry/widget/Widget.js
    tapestry/tapestry4/trunk/tapestry-framework/src/test/org/apache/tapestry/form/translator/TestDateTranslator.java
    tapestry/tapestry4/trunk/tapestry-framework/src/test/org/apache/tapestry/valid/TestIntValidator.java
    tapestry/tapestry4/trunk/tapestry-framework/src/test/org/apache/tapestry/valid/TestNumberValidator.java

Modified: tapestry/tapestry4/trunk/tapestry-examples/Workbench/src/context/Dates.html
URL: http://svn.apache.org/viewvc/tapestry/tapestry4/trunk/tapestry-examples/Workbench/src/context/Dates.html?view=diff&rev=486007&r1=486006&r2=486007
==============================================================================
--- tapestry/tapestry4/trunk/tapestry-examples/Workbench/src/context/Dates.html (original)
+++ tapestry/tapestry4/trunk/tapestry-examples/Workbench/src/context/Dates.html Mon Dec 11 20:10:36 2006
@@ -26,11 +26,14 @@
  	</tr>
  <tr >
   <td  align="right"><span jwcid="@FieldLabel" field="component:startDate"/>:</td>
-  <td ><input jwcid="startDate@DatePicker" includeWeek="ognl:includeWeek" value="ognl:startDate" displayName="Start Date" validators="ognl:{beans.required,beans.maxDate}"/></td> 
+  <td ><input jwcid="startDate@DatePicker" includeWeek="ognl:includeWeek" value="ognl:startDate" 
+  	displayName="Start Date" validators="ognl:{beans.required,beans.maxDate}" 
+  	translator="translator:date,lenient=false,pattern=dd MMM yyyy" /></td> 
  </tr>
  <tr>
   <td  align="right"><span jwcid="@FieldLabel" field="component:endDate"/>:</td>
-  <td ><input jwcid="endDate@DatePicker" includeWeek="ognl:includeWeek" value="ognl:endDate" displayName="End Date" validators="ognl:{beans.required,beans.minDate}"/></td>
+  <td ><input jwcid="endDate@DatePicker" includeWeek="ognl:includeWeek" value="ognl:endDate" 
+  		displayName="End Date" validators="ognl:{beans.required,beans.minDate}"/></td>
  </tr>
  
  <tr>

Modified: tapestry/tapestry4/trunk/tapestry-examples/Workbench/src/context/Fields.html
URL: http://svn.apache.org/viewvc/tapestry/tapestry4/trunk/tapestry-examples/Workbench/src/context/Fields.html?view=diff&rev=486007&r1=486006&r2=486007
==============================================================================
--- tapestry/tapestry4/trunk/tapestry-examples/Workbench/src/context/Fields.html (original)
+++ tapestry/tapestry4/trunk/tapestry-examples/Workbench/src/context/Fields.html Mon Dec 11 20:10:36 2006
@@ -64,7 +64,7 @@
 
   <tr>
   	<th><label jwcid="@FieldLabel" accesskey="a" field="component:textArea"/></th>
-  	<td><input jwcid="textArea"/></td>
+  	<td><input jwcid="textArea" cols="33" rows="4" /></td>
   </tr>
 
   <tr>

Modified: tapestry/tapestry4/trunk/tapestry-examples/Workbench/src/context/WEB-INF/Fields.page
URL: http://svn.apache.org/viewvc/tapestry/tapestry4/trunk/tapestry-examples/Workbench/src/context/WEB-INF/Fields.page?view=diff&rev=486007&r1=486006&r2=486007
==============================================================================
--- tapestry/tapestry4/trunk/tapestry-examples/Workbench/src/context/WEB-INF/Fields.page (original)
+++ tapestry/tapestry4/trunk/tapestry-examples/Workbench/src/context/WEB-INF/Fields.page Mon Dec 11 20:10:36 2006
@@ -43,7 +43,7 @@
 
   <component id="inputDate" type="TextField">
     <binding name="value" value="visit.dateValue"/>
-    <binding name="translator" value="translator:date,pattern=MM-dd-yyyy"/>
+    <binding name="translator" value="translator:date,pattern=MM-dd-yyyy,lenient=false"/>
     <binding name="validators" value="{ beans.required, beans.dateValidator }"/>
     <binding name="displayName" value="literal:Date Field"/>
   </component>

Modified: tapestry/tapestry4/trunk/tapestry-framework/src/java/org/apache/tapestry/form/translator/DateTranslator.java
URL: http://svn.apache.org/viewvc/tapestry/tapestry4/trunk/tapestry-framework/src/java/org/apache/tapestry/form/translator/DateTranslator.java?view=diff&rev=486007&r1=486006&r2=486007
==============================================================================
--- tapestry/tapestry4/trunk/tapestry-framework/src/java/org/apache/tapestry/form/translator/DateTranslator.java (original)
+++ tapestry/tapestry4/trunk/tapestry-framework/src/java/org/apache/tapestry/form/translator/DateTranslator.java Mon Dec 11 20:10:36 2006
@@ -19,6 +19,14 @@
 import java.text.SimpleDateFormat;
 import java.util.Locale;
 
+import org.apache.hivemind.util.PropertyUtils;
+import org.apache.tapestry.IMarkupWriter;
+import org.apache.tapestry.IRequestCycle;
+import org.apache.tapestry.form.FormComponentContributorContext;
+import org.apache.tapestry.form.IFormComponent;
+import org.apache.tapestry.json.JSONLiteral;
+import org.apache.tapestry.json.JSONObject;
+import org.apache.tapestry.valid.ValidationConstants;
 import org.apache.tapestry.valid.ValidationConstraint;
 import org.apache.tapestry.valid.ValidationStrings;
 
@@ -30,6 +38,7 @@
  */
 public class DateTranslator extends FormatTranslator
 {
+    private boolean _lenient=true;
     
     public DateTranslator()
     {
@@ -38,7 +47,7 @@
     // Needed until HIVEMIND-134 fix is available
     public DateTranslator(String initializer)
     {
-        super(initializer);
+        PropertyUtils.configureProperties(this, initializer);
     }
     
     /**
@@ -59,7 +68,10 @@
     
     public SimpleDateFormat getDateFormat(Locale locale)
     {
-        return new SimpleDateFormat(getPattern(), new DateFormatSymbols(locale));
+        SimpleDateFormat ret = new SimpleDateFormat(getPattern(), new DateFormatSymbols(locale));
+        ret.setLenient(_lenient);
+        
+        return ret;
     }
     
     /**
@@ -80,12 +92,52 @@
         
         return new Object[] { label, pattern };
     }
-
+    
+    /**
+     * 
+     * {@inheritDoc}
+     */
+    public void renderContribution(IMarkupWriter writer, IRequestCycle cycle,
+            FormComponentContributorContext context, IFormComponent field)
+    {
+        super.renderContribution(writer, cycle, context, field);
+        
+        String message = buildMessage(context, field, getMessageKey());
+        
+        JSONObject profile = context.getProfile();
+        if (!profile.has(ValidationConstants.CONSTRAINTS)) {
+            profile.put(ValidationConstants.CONSTRAINTS, new JSONObject());
+        }
+        
+        JSONObject cons = profile.getJSONObject(ValidationConstants.CONSTRAINTS);
+        
+        context.addInitializationScript(field, "dojo.require(\"tapestry.form.datetime\");");
+        
+        accumulateProperty(cons, field.getClientId(), 
+                new JSONLiteral("[tapestry.form.datetime.isValidDate,{"
+                        + "datePattern:" 
+                        + JSONObject.quote(getPattern())
+                        + (isLenient() ? "" : ",strict:true")
+                        + "}]"));
+        
+        accumulateProfileProperty(field, profile, ValidationConstants.CONSTRAINTS, message);
+    }
+    
     /**
      * @see org.apache.tapestry.form.translator.FormatTranslator#getConstraint()
      */
     protected ValidationConstraint getConstraint()
     {
         return ValidationConstraint.DATE_FORMAT;
+    }
+    
+    public void setLenient(boolean value)
+    {
+        _lenient = value;
+    }
+    
+    public boolean isLenient()
+    {
+        return _lenient;
     }
 }

Modified: tapestry/tapestry4/trunk/tapestry-framework/src/java/org/apache/tapestry/form/translator/FormatTranslator.java
URL: http://svn.apache.org/viewvc/tapestry/tapestry4/trunk/tapestry-framework/src/java/org/apache/tapestry/form/translator/FormatTranslator.java?view=diff&rev=486007&r1=486006&r2=486007
==============================================================================
--- tapestry/tapestry4/trunk/tapestry-framework/src/java/org/apache/tapestry/form/translator/FormatTranslator.java (original)
+++ tapestry/tapestry4/trunk/tapestry-framework/src/java/org/apache/tapestry/form/translator/FormatTranslator.java Mon Dec 11 20:10:36 2006
@@ -44,7 +44,7 @@
     public FormatTranslator(String initializer)
     {
         PropertyUtils.configureProperties(this, initializer);
-
+        
         if (HiveMind.isBlank(_pattern))
         {
             _pattern = defaultPattern();

Modified: tapestry/tapestry4/trunk/tapestry-framework/src/java/org/apache/tapestry/form/validator/MaxDate.java
URL: http://svn.apache.org/viewvc/tapestry/tapestry4/trunk/tapestry-framework/src/java/org/apache/tapestry/form/validator/MaxDate.java?view=diff&rev=486007&r1=486006&r2=486007
==============================================================================
--- tapestry/tapestry4/trunk/tapestry-framework/src/java/org/apache/tapestry/form/validator/MaxDate.java (original)
+++ tapestry/tapestry4/trunk/tapestry-framework/src/java/org/apache/tapestry/form/validator/MaxDate.java Mon Dec 11 20:10:36 2006
@@ -98,6 +98,7 @@
                         + ","
                         + "datePattern:" 
                         + JSONObject.quote(translator.getPattern())
+                        + (translator.isLenient() ? "" : ",strict:true")
                         + "}]"));
         
         accumulateProfileProperty(field, profile, 

Modified: tapestry/tapestry4/trunk/tapestry-framework/src/java/org/apache/tapestry/form/validator/MinDate.java
URL: http://svn.apache.org/viewvc/tapestry/tapestry4/trunk/tapestry-framework/src/java/org/apache/tapestry/form/validator/MinDate.java?view=diff&rev=486007&r1=486006&r2=486007
==============================================================================
--- tapestry/tapestry4/trunk/tapestry-framework/src/java/org/apache/tapestry/form/validator/MinDate.java (original)
+++ tapestry/tapestry4/trunk/tapestry-framework/src/java/org/apache/tapestry/form/validator/MinDate.java Mon Dec 11 20:10:36 2006
@@ -61,8 +61,7 @@
         DateTranslator translator = (DateTranslator) getFieldTranslator(field, DateTranslator.class);
         
         if (date.before(_minDate))
-            throw new ValidatorException(buildMessage(messages, field, translator),
-                    ValidationConstraint.TOO_SMALL);
+            throw new ValidatorException(buildMessage(messages, field, translator), ValidationConstraint.TOO_SMALL);
 
     }
     
@@ -72,11 +71,9 @@
         return messages.formatValidationMessage(
                 getMessage(),
                 ValidationStrings.DATE_TOO_EARLY,
-                new Object[]
-                           { field.getDisplayName(), 
+                new Object[] { field.getDisplayName(), 
                     (translator != null) ? 
-                            translator.format(field, messages.getLocale(), _minDate)
-                            : _minDate});
+                            translator.format(field, messages.getLocale(), _minDate) : _minDate});
     }
     
     public void renderContribution(IMarkupWriter writer, IRequestCycle cycle,
@@ -104,6 +101,7 @@
                         + ","
                         + "datePattern:" 
                         + JSONObject.quote(translator.getPattern())
+                        + (translator.isLenient() ? "" : ",strict:true")
                         + "}]"));
         
         accumulateProfileProperty(field, profile, 

Modified: tapestry/tapestry4/trunk/tapestry-framework/src/java/org/apache/tapestry/valid/ValidationStrings.properties
URL: http://svn.apache.org/viewvc/tapestry/tapestry4/trunk/tapestry-framework/src/java/org/apache/tapestry/valid/ValidationStrings.properties?view=diff&rev=486007&r1=486006&r2=486007
==============================================================================
--- tapestry/tapestry4/trunk/tapestry-framework/src/java/org/apache/tapestry/valid/ValidationStrings.properties (original)
+++ tapestry/tapestry4/trunk/tapestry-framework/src/java/org/apache/tapestry/valid/ValidationStrings.properties Mon Dec 11 20:10:36 2006
@@ -16,9 +16,9 @@
 field-too-short=You must enter at least {0} characters for {1}.
 
 invalid-date-format=Invalid date format for {0}.  Format is {1}.
-invalid-int-format={0} must be an integer value. Format is {1}.
+invalid-int-format={0} must be an integer value. 
 invalid-format={0} is not in a recognized format.
-invalid-numeric-format={0} must be a numeric value. Format is {1}.
+invalid-numeric-format={0} must be a numeric value.
 
 date-too-early={0} must be on or after {1}.
 date-too-late={0} must be on or before {1}.

Modified: tapestry/tapestry4/trunk/tapestry-framework/src/java/org/apache/tapestry/valid/ValidationStrings_en.properties
URL: http://svn.apache.org/viewvc/tapestry/tapestry4/trunk/tapestry-framework/src/java/org/apache/tapestry/valid/ValidationStrings_en.properties?view=diff&rev=486007&r1=486006&r2=486007
==============================================================================
--- tapestry/tapestry4/trunk/tapestry-framework/src/java/org/apache/tapestry/valid/ValidationStrings_en.properties (original)
+++ tapestry/tapestry4/trunk/tapestry-framework/src/java/org/apache/tapestry/valid/ValidationStrings_en.properties Mon Dec 11 20:10:36 2006
@@ -16,9 +16,9 @@
 field-too-short=You must enter at least {0} characters for {1}.
 
 invalid-date-format=Invalid date format for {0}.  Format is {1}.
-invalid-int-format={0} must be an integer value. Format is {1}.
+invalid-int-format={0} must be an integer value. 
 invalid-format={0} is not in a recognized format.
-invalid-numeric-format={0} must be a numeric value. Format is {1}.
+invalid-numeric-format={0} must be a numeric value. 
 
 date-too-early={0} must be on or after {1}.
 date-too-late={0} must be on or before {1}.

Modified: tapestry/tapestry4/trunk/tapestry-framework/src/js/tapestry/widget/Widget.js
URL: http://svn.apache.org/viewvc/tapestry/tapestry4/trunk/tapestry-framework/src/js/tapestry/widget/Widget.js?view=diff&rev=486007&r1=486006&r2=486007
==============================================================================
--- tapestry/tapestry4/trunk/tapestry-framework/src/js/tapestry/widget/Widget.js (original)
+++ tapestry/tapestry4/trunk/tapestry-framework/src/js/tapestry/widget/Widget.js Mon Dec 11 20:10:36 2006
@@ -31,18 +31,23 @@
 	 * 			The dojo widget type string. Ie "dialog" / "combobox" / etc..
 	 * @param props 
 	 * 			The js properties object to create the widget with.
+	 * @param destroy
+	 * 			If true causes the current widget(if any) to be destroyed and re-created.
+	 * @param position
+	 * 			The position to insert this widget's node relative to the
+	 *			dom node specified by widgetId (optional)
 	 */
-	synchronizeWidgetState : function(widgetId, type, props, destroy){
+	synchronizeWidgetState : function(widgetId, type, props, destroy, position){
 		if(typeof destroy == "undefined"){
 			destroy=true;
 		}
 		var widget = dojo.widget.byId(widgetId);
 		
 		if (!widget) {
-			this.createWidget(widgetId, type, props);
+			this.createWidget(widgetId, type, props, position);
 		} else if (destroy){
 			widget.destroy();
-			this.createWidget(widgetId, type, props);
+			this.createWidget(widgetId, type, props, position);
 		} else {
 			this.setWidgetProperties(widget, props);
 		}
@@ -51,7 +56,7 @@
 	/**
 	 * Creates a new widget (if possible) via dojo.widget.createWidget()
 	 */
-	createWidget : function(widgetId, type, props) {
+	createWidget : function(widgetId, type, props, position) {
 		var node = dojo.byId(widgetId);
 		if (!node) {
 			dojo.raise("createWidget() Node not found with specified id of '" + widgetId + "'.");
@@ -63,7 +68,7 @@
 		}
 		
 		// handle disabling widgets
-		var w = dojo.widget.createWidget(type, props, node);
+		var w = dojo.widget.createWidget(type, props, node, position);
 		this.setWidgetProperties(w, props);
 	},
 	

Modified: tapestry/tapestry4/trunk/tapestry-framework/src/test/org/apache/tapestry/form/translator/TestDateTranslator.java
URL: http://svn.apache.org/viewvc/tapestry/tapestry4/trunk/tapestry-framework/src/test/org/apache/tapestry/form/translator/TestDateTranslator.java?view=diff&rev=486007&r1=486006&r2=486007
==============================================================================
--- tapestry/tapestry4/trunk/tapestry-framework/src/test/org/apache/tapestry/form/translator/TestDateTranslator.java (original)
+++ tapestry/tapestry4/trunk/tapestry-framework/src/test/org/apache/tapestry/form/translator/TestDateTranslator.java Mon Dec 11 20:10:36 2006
@@ -43,10 +43,7 @@
 public class TestDateTranslator extends FormComponentContributorTestCase
 {
     private Calendar _calendar = Calendar.getInstance();
-
-    /**
-     * @see junit.framework.TestCase#setUp()
-     */
+    
     @AfterMethod
     protected void cleanup()
     {
@@ -243,40 +240,76 @@
         verify();
     }
 
-    public void testRenderContribution()
+    public void test_Render_Contribution()
     {
         DateTranslator translator = new DateTranslator();
-
+        IFormComponent field = newField("Date Field", "dateField", 1);
+        
+        JSONObject json = new JSONObject();
+        
+        IMarkupWriter writer = newWriter();
+        IRequestCycle cycle = newCycle();
+        
+        FormComponentContributorContext context = newMock(FormComponentContributorContext.class);
+        
+        expect(context.getProfile()).andReturn(json);
+        
+        trainGetLocale(context, Locale.ENGLISH);
+        
+        trainBuildMessage(context, null, ValidationStrings.INVALID_DATE, 
+                new Object[] { "Date Field", 
+                translator.getDateFormat(Locale.ENGLISH)
+                .toLocalizedPattern().toUpperCase(Locale.ENGLISH)}, "invalid date");
+        
+        context.addInitializationScript(field, "dojo.require(\"tapestry.form.datetime\");");
+        
         replay();
-
-        translator.renderContribution(null, _cycle, null, _component);
-
+        
+        translator.renderContribution(writer, cycle, context, field);
+        
         verify();
+        
+        assertEquals(json.toString(),
+                "{\"constraints\":{\"dateField\":" +
+                "[[tapestry.form.datetime.isValidDate," +
+                "{datePattern:\"MM/dd/yyyy\"}]]},\"dateField\":" +
+                "{\"constraints\":[\"invalid date\"]}}");
     }
 
-    public void testTrimRenderContribution()
-    {
+    public void test_Trim_Render_Contribution()
+    {
+        DateTranslator dt = new DateTranslator("!lenient,trim");
+        assertFalse(dt.isLenient());
+        assertTrue(dt.isTrim());
+        
         IMarkupWriter writer = newWriter();
         IRequestCycle cycle = newCycle();
+        IFormComponent field = newField("Date Field", "dateField", 1);
         
         JSONObject json = new JSONObject();
         
         FormComponentContributorContext context = newMock(FormComponentContributorContext.class);
-
-        expect(context.getProfile()).andReturn(json);
         
-        IFormComponent field = newFieldWithClientId("foo");
-
+        expect(context.getProfile()).andReturn(json).anyTimes();
+        
+        trainGetLocale(context, Locale.ENGLISH);
+        
+        trainBuildMessage(context, null, ValidationStrings.INVALID_DATE, 
+                new Object[] { "Date Field", 
+                dt.getDateFormat(Locale.ENGLISH)
+                .toLocalizedPattern().toUpperCase(Locale.ENGLISH)}, "invalid date");
+        
+        context.addInitializationScript(field, "dojo.require(\"tapestry.form.datetime\");");
+        
         replay();
 
-        DateTranslator dt = new DateTranslator();
-        dt.setTrim(true);
-
         dt.renderContribution(writer, cycle, context, field);
 
         verify();
         
-        assertEquals("{\"trim\":[\"foo\"]}",
-                json.toString());
+        assertEquals(json.toString(),
+                "{\"trim\":[\"dateField\"],\"constraints\":{\"dateField\":" +
+                "[[tapestry.form.datetime.isValidDate,{datePattern:\"MM/dd/yyyy\",strict:true}]]}," +
+                "\"dateField\":{\"constraints\":[\"invalid date\"]}}");
     }
 }

Modified: tapestry/tapestry4/trunk/tapestry-framework/src/test/org/apache/tapestry/valid/TestIntValidator.java
URL: http://svn.apache.org/viewvc/tapestry/tapestry4/trunk/tapestry-framework/src/test/org/apache/tapestry/valid/TestIntValidator.java?view=diff&rev=486007&r1=486006&r2=486007
==============================================================================
--- tapestry/tapestry4/trunk/tapestry-framework/src/test/org/apache/tapestry/valid/TestIntValidator.java (original)
+++ tapestry/tapestry4/trunk/tapestry-framework/src/test/org/apache/tapestry/valid/TestIntValidator.java Mon Dec 11 20:10:36 2006
@@ -93,7 +93,7 @@
         }
         catch (ValidatorException ex)
         {
-            assertEquals("BamBam must be a numeric value. Format is {1}.", ex.getMessage());
+            assertEquals(ex.getMessage(), "BamBam must be a numeric value. ");
             assertSame(ValidationConstraint.NUMBER_FORMAT, ex.getConstraint());
         }
     }
@@ -150,7 +150,7 @@
 
         assertEquals(1, map.size());
 
-        assertEquals("Fred must be an integer value. Format is {1}.", map.get("formatMessage"));
+        assertEquals(map.get("formatMessage"), "Fred must be an integer value. ");
 
         verify();
     }
@@ -168,7 +168,7 @@
         assertEquals(2, map.size());
 
         assertEquals("You must enter a value for Barney.", map.get("requiredMessage"));
-        assertEquals("Barney must be an integer value. Format is {1}.", map.get("formatMessage"));
+        assertEquals(map.get("formatMessage"), "Barney must be an integer value. ");
 
         verify();
     }
@@ -185,10 +185,10 @@
 
         assertEquals(4, map.size());
 
-        assertEquals(new Integer(5), map.get("minimum"));
+        assertEquals(map.get("minimum"), new Integer(5));
         assertNull(map.get("maximum"));
         assertEquals("Barney must not be smaller than 5.", map.get("rangeMessage"));
-        assertEquals("Barney must be an integer value. Format is {1}.", map.get("formatMessage"));
+        assertEquals(map.get("formatMessage"), "Barney must be an integer value. ");
 
         verify();
     }
@@ -208,7 +208,7 @@
         assertEquals(new Integer(5), map.get("maximum"));
         assertNull(map.get("minimum"));
         assertEquals("Barney must not be larger than 5.", map.get("rangeMessage"));
-        assertEquals("Barney must be an integer value. Format is {1}.", map.get("formatMessage"));
+        assertEquals(map.get("formatMessage"), "Barney must be an integer value. ");
 
         verify();
     }    
@@ -228,7 +228,7 @@
         assertEquals(new Integer(1), map.get("minimum"));
         assertEquals(new Integer(5), map.get("maximum"));
         assertEquals("Barney must be between 1 and 5.", map.get("rangeMessage"));
-        assertEquals("Barney must be an integer value. Format is {1}.", map.get("formatMessage"));
+        assertEquals(map.get("formatMessage"), "Barney must be an integer value. ");
 
         verify();
     }

Modified: tapestry/tapestry4/trunk/tapestry-framework/src/test/org/apache/tapestry/valid/TestNumberValidator.java
URL: http://svn.apache.org/viewvc/tapestry/tapestry4/trunk/tapestry-framework/src/test/org/apache/tapestry/valid/TestNumberValidator.java?view=diff&rev=486007&r1=486006&r2=486007
==============================================================================
--- tapestry/tapestry4/trunk/tapestry-framework/src/test/org/apache/tapestry/valid/TestNumberValidator.java (original)
+++ tapestry/tapestry4/trunk/tapestry-framework/src/test/org/apache/tapestry/valid/TestNumberValidator.java Mon Dec 11 20:10:36 2006
@@ -225,7 +225,7 @@
         }
         catch (ValidatorException ex)
         {
-            assertEquals("invalidFormat must be a numeric value. Format is {1}.", ex.getMessage());
+            assertEquals(ex.getMessage(), "invalidFormat must be a numeric value. ");
             assertEquals(ValidationConstraint.NUMBER_FORMAT, ex.getConstraint());
         }