Author: hlship
Date: Tue Nov 22 05:09:55 2005
New Revision: 348167

URL: http://svn.apache.org/viewcvs?rev=348167&view=rev
Log:
TAPESTRY-768: FormMessages class has typo in message key for 
fieldAlreadyPrerendered()

Modified:
    
jakarta/tapestry/trunk/framework/src/java/org/apache/tapestry/form/FormMessages.java
    
jakarta/tapestry/trunk/framework/src/java/org/apache/tapestry/form/FormSupportImpl.java
    
jakarta/tapestry/trunk/framework/src/test/org/apache/tapestry/BaseComponentTestCase.java
    
jakarta/tapestry/trunk/framework/src/test/org/apache/tapestry/form/FormSupportTest.java
    jakarta/tapestry/trunk/status.xml

Modified: 
jakarta/tapestry/trunk/framework/src/java/org/apache/tapestry/form/FormMessages.java
URL: 
http://svn.apache.org/viewcvs/jakarta/tapestry/trunk/framework/src/java/org/apache/tapestry/form/FormMessages.java?rev=348167&r1=348166&r2=348167&view=diff
==============================================================================
--- 
jakarta/tapestry/trunk/framework/src/java/org/apache/tapestry/form/FormMessages.java
 (original)
+++ 
jakarta/tapestry/trunk/framework/src/java/org/apache/tapestry/form/FormMessages.java
 Tue Nov 22 05:09:55 2005
@@ -61,7 +61,7 @@
 
     static String fieldAlreadyPrerendered(IComponent field)
     {
-        return _formatter.format("field-already-prerenderer", field);
+        return _formatter.format("field-already-prerendered", field);
     }
 
     static String linkSubmitMayNotNest(IComponent inner, IComponent outer)

Modified: 
jakarta/tapestry/trunk/framework/src/java/org/apache/tapestry/form/FormSupportImpl.java
URL: 
http://svn.apache.org/viewcvs/jakarta/tapestry/trunk/framework/src/java/org/apache/tapestry/form/FormSupportImpl.java?rev=348167&r1=348166&r2=348167&view=diff
==============================================================================
--- 
jakarta/tapestry/trunk/framework/src/java/org/apache/tapestry/form/FormSupportImpl.java
 (original)
+++ 
jakarta/tapestry/trunk/framework/src/java/org/apache/tapestry/form/FormSupportImpl.java
 Tue Nov 22 05:09:55 2005
@@ -182,6 +182,22 @@
     }
 
     /**
+     * Alternate constructor used for testing only.
+     * 
+     * @param cycle
+     */
+    FormSupportImpl(IRequestCycle cycle)
+    {
+        _cycle = cycle;
+        _form = null;
+        _rewinding = false;
+        _writer = null;
+        _delegate = null;
+        _pageRenderSupport = null;
+        _script = null;
+    }
+
+    /**
      * Adds an event handler for the form, of the given type.
      */
 
@@ -459,10 +475,10 @@
         // client-side JavaScript forces an update.
 
         addHiddenValue(SUBMIT_MODE, null);
-        
+
         // And another for the name of the component that
         // triggered the submit.
-        
+
         addHiddenValue(FormConstants.SUBMIT_NAME_PARAMETER, null);
 
         IMarkupWriter nested = _writer.getNestedWriter();
@@ -683,7 +699,7 @@
 
         if (_prerenderMap.containsKey(key))
             throw new 
ApplicationRuntimeException(FormMessages.fieldAlreadyPrerendered(field),
-                    location, null);
+                    field, location, null);
 
         NestedMarkupWriter nested = writer.getNestedWriter();
 

Modified: 
jakarta/tapestry/trunk/framework/src/test/org/apache/tapestry/BaseComponentTestCase.java
URL: 
http://svn.apache.org/viewcvs/jakarta/tapestry/trunk/framework/src/test/org/apache/tapestry/BaseComponentTestCase.java?rev=348167&r1=348166&r2=348167&view=diff
==============================================================================
--- 
jakarta/tapestry/trunk/framework/src/test/org/apache/tapestry/BaseComponentTestCase.java
 (original)
+++ 
jakarta/tapestry/trunk/framework/src/test/org/apache/tapestry/BaseComponentTestCase.java
 Tue Nov 22 05:09:55 2005
@@ -491,4 +491,10 @@
     {
         return (Log) newMock(Log.class);
     }
+
+    protected void trainGetId(IComponent component, String id)
+    {
+        component.getId();
+        setReturnValue(component, id);
+    }
 }

Modified: 
jakarta/tapestry/trunk/framework/src/test/org/apache/tapestry/form/FormSupportTest.java
URL: 
http://svn.apache.org/viewcvs/jakarta/tapestry/trunk/framework/src/test/org/apache/tapestry/form/FormSupportTest.java?rev=348167&r1=348166&r2=348167&view=diff
==============================================================================
--- 
jakarta/tapestry/trunk/framework/src/test/org/apache/tapestry/form/FormSupportTest.java
 (original)
+++ 
jakarta/tapestry/trunk/framework/src/test/org/apache/tapestry/form/FormSupportTest.java
 Tue Nov 22 05:09:55 2005
@@ -60,12 +60,26 @@
         };
     }
 
+    private IValidationDelegate newDelegate()
+    {
+        return (IValidationDelegate) newMock(IValidationDelegate.class);
+    }
+
+    protected IEngine newEngine()
+    {
+        return (IEngine) newMock(IEngine.class);
+    }
+
+    private IFormComponent newField()
+    {
+        return (IFormComponent) newMock(IFormComponent.class);
+    }
+
     private IFormComponent newFormComponent(String id, String name)
     {
         IFormComponent component = (IFormComponent) 
newMock(IFormComponent.class);
 
-        component.getId();
-        setReturnValue(component, id);
+        trainGetId(component, id);
 
         component.setName(name);
 
@@ -76,21 +90,48 @@
     {
         IFormComponent component = (IFormComponent) 
newMock(IFormComponent.class);
 
-        component.getId();
-        setReturnValue(component, id);
-
-        component.getExtendedId();
-        setReturnValue(component, extendedId);
-
-        component.getLocation();
-        setReturnValue(component, location);
+        trainGetId(component, id);
+        trainGetExtendedId(component, extendedId);
+        trainGetLocation(component, location);
 
         return component;
     }
 
-    private IValidationDelegate newDelegate()
+    public void testCancelRewind()
     {
-        return (IValidationDelegate) newMock(IValidationDelegate.class);
+        IMarkupWriter writer = newWriter();
+        IRequestCycle cycle = newCycle();
+        IValidationDelegate delegate = newDelegate();
+        IEngine engine = newEngine(getClassResolver());
+        MockForm form = new MockForm(delegate);
+
+        trainIsRewound(cycle, form, true);
+
+        trainGetEngine(cycle, engine);
+
+        trainGetPageRenderSupport(cycle, null);
+
+        replayControls();
+
+        final FormSupport fs = new FormSupportImpl(writer, cycle, form);
+
+        verifyControls();
+
+        delegate.clear();
+
+        trainGetParameter(cycle, FormSupportImpl.SUBMIT_MODE, "cancel");
+
+        // Create a body, just to provie it doesn't get invoked.
+
+        IRender body = (IRender) newMock(IRender.class);
+
+        form.setBody(body);
+
+        replayControls();
+
+        assertEquals(FormConstants.SUBMIT_CANCEL, fs.rewind());
+
+        verifyControls();
     }
 
     public void testComplexRender()
@@ -170,65 +211,6 @@
         verifyControls();
     }
 
-    protected void trainHiddenBlock(IMarkupWriter writer, String serviceName, 
String formIds)
-    {
-        trainDiv(writer);
-
-        trainHidden(writer, "formids", formIds);
-        trainHidden(writer, "service", serviceName);
-        trainHidden(writer, "submitmode", "");
-        trainHidden(writer, FormConstants.SUBMIT_NAME_PARAMETER, "");
-
-        writer.end();
-    }
-
-    protected void trainDiv(IMarkupWriter writer)
-    {
-        writer.begin("div");
-        writer.attribute("style", "display:none;");
-    }
-
-    protected void trainIsRewound(IRequestCycle cycle, IForm form, boolean 
isRewound)
-    {
-        cycle.isRewound(form);
-        setReturnValue(cycle, isRewound);
-    }
-
-    protected IEngine newEngine()
-    {
-        return (IEngine) newMock(IEngine.class);
-    }
-
-    private void trainRegister(PageRenderSupport support)
-    {
-        support.addExternalScript(new ClasspathResource(getClassResolver(),
-                "/org/apache/tapestry/form/Form.js"));
-
-        support.addInitializationScript("Tapestry.register_form('myform');");
-    }
-
-    private void trainFocus(PageRenderSupport support)
-    {
-        support.addInitializationScript("Tapestry.set_focus('wilma');");
-    }
-
-    private void trainSetFieldFocus(IRequestCycle cycle)
-    {
-        cycle.setAttribute(FormSupportImpl.FIELD_FOCUS_ATTRIBUTE, 
Boolean.TRUE);
-    }
-
-    private void trainGetFieldFocus(IRequestCycle cycle, Object value)
-    {
-        cycle.getAttribute(FormSupportImpl.FIELD_FOCUS_ATTRIBUTE);
-        setReturnValue(cycle, value);
-    }
-
-    private void trainGetFocusField(IValidationDelegate delegate, String 
fieldName)
-    {
-        delegate.getFocusField();
-        setReturnValue(delegate, fieldName);
-    }
-
     public void testComplexRewind()
     {
         IMarkupWriter writer = newWriter();
@@ -343,14 +325,6 @@
         verifyControls();
     }
 
-    private void trainGetURL(ILink link, String scheme, String URL)
-    {
-        // This will change shortly, with the new scheme parameter passed into 
FormSupport.render()
-
-        link.getURL(scheme, null, 0, null, false);
-        setReturnValue(link, URL);
-    }
-
     public void testEncodingType()
     {
         IMarkupWriter writer = newWriter();
@@ -421,6 +395,55 @@
         verifyControls();
     }
 
+    public void testFieldPrerenderTwice()
+    {
+        IFormComponent field = newField();
+        IMarkupWriter writer = newWriter();
+        NestedMarkupWriter nested = newNestedWriter();
+        IRequestCycle cycle = newCycle();
+        Location l = newLocation();
+
+        trainGetExtendedId(field, "foo.bar");
+
+        trainGetNestedWriter(writer, nested);
+
+        field.render(nested, cycle);
+
+        nested.getBuffer();
+        setReturnValue(nested, "NESTED CONTENT");
+
+        replayControls();
+
+        FormSupport fs = new FormSupportImpl(cycle);
+
+        fs.prerenderField(writer, field, l);
+
+        verifyControls();
+
+        trainGetExtendedId(field, "foo.bar");
+
+        replayControls();
+
+        try
+        {
+            fs.prerenderField(writer, field, l);
+            unreachable();
+        }
+        catch (ApplicationRuntimeException ex)
+        {
+            assertEquals(
+                    "Field EasyMock for interface 
org.apache.tapestry.form.IFormComponent has already been pre-rendered. "
+                            + "This exception may indicate that a FieldLabel 
rendered, but the corresponding field did not.",
+                    ex.getMessage());
+
+            assertSame(l, ex.getLocation());
+            assertSame(field, ex.getComponent());
+        }
+
+        verifyControls();
+
+    }
+
     public void testHiddenValues()
     {
         IMarkupWriter writer = newWriter();
@@ -564,6 +587,43 @@
         verifyControls();
     }
 
+    public void testRefreshRewind()
+    {
+        IMarkupWriter writer = newWriter();
+        IRequestCycle cycle = newCycle();
+        IValidationDelegate delegate = newDelegate();
+        IEngine engine = newEngine(getClassResolver());
+        MockForm form = new MockForm(delegate);
+
+        trainIsRewound(cycle, form, true);
+
+        trainGetEngine(cycle, engine);
+
+        trainGetPageRenderSupport(cycle, null);
+
+        replayControls();
+
+        final FormSupport fs = new FormSupportImpl(writer, cycle, form);
+
+        verifyControls();
+
+        delegate.clear();
+
+        trainCycleForRewind(cycle, "refresh", "barney", null);
+
+        final IFormComponent component = newFormComponent("barney", "barney");
+
+        IRender body = newComponentRenderBody(fs, component, writer);
+
+        form.setBody(body);
+
+        replayControls();
+
+        assertEquals(FormConstants.SUBMIT_REFRESH, fs.rewind());
+
+        verifyControls();
+    }
+
     public void testRenderExtraReservedIds()
     {
         IMarkupWriter writer = newWriter();
@@ -996,79 +1056,6 @@
         verifyControls();
     }
 
-    public void testSimpleRenderWithScheme()
-    {
-        IMarkupWriter writer = newWriter();
-        NestedMarkupWriter nested = newNestedWriter();
-        IRequestCycle cycle = newCycle();
-        IEngine engine = newEngine(getClassResolver());
-        IValidationDelegate delegate = newDelegate();
-        ILink link = newLink();
-        IRender render = newRender();
-
-        MockForm form = new MockForm(delegate);
-
-        trainIsRewound(cycle, form, false);
-
-        trainGetEngine(cycle, engine);
-
-        PageRenderSupport support = newPageRenderSupport();
-
-        trainGetPageRenderSupport(cycle, support);
-
-        replayControls();
-
-        final FormSupport fs = new FormSupportImpl(writer, cycle, form);
-
-        verifyControls();
-
-        final IFormComponent component = newFormComponent("barney", "barney");
-
-        IRender body = newComponentRenderBody(fs, component, nested);
-
-        form.setBody(body);
-
-        trainRegister(support);
-
-        trainGetParameterNames(link, new String[]
-        { "service" });
-        trainGetParameterValues(link, "service", new String[]
-        { "fred" });
-
-        trainGetNestedWriter(writer, nested);
-
-        trainGetURL(link, "https", "https://foo.bar/app";);
-
-        writer.begin("form");
-        writer.attribute("method", "post");
-        writer.attribute("action", "https://foo.bar/app";);
-
-        writer.attribute("name", "myform");
-        writer.attribute("id", "myform");
-
-        render.render(writer, cycle);
-
-        writer.println();
-
-        trainHiddenBlock(writer, "fred", "barney");
-
-        nested.close();
-
-        writer.end();
-
-        trainGetFocusField(delegate, "barney");
-
-        // Side test: check for another form already grabbing focus
-
-        trainGetFieldFocus(cycle, Boolean.TRUE);
-
-        replayControls();
-
-        fs.render("post", render, link, "https");
-
-        verifyControls();
-    }
-
     public void testSimpleRenderWithDeferredRunnable()
     {
         IMarkupWriter writer = newWriter();
@@ -1158,19 +1145,25 @@
         verifyControls();
     }
 
-    public void testSimpleRewind()
+    public void testSimpleRenderWithScheme()
     {
         IMarkupWriter writer = newWriter();
+        NestedMarkupWriter nested = newNestedWriter();
         IRequestCycle cycle = newCycle();
-        IValidationDelegate delegate = newDelegate();
         IEngine engine = newEngine(getClassResolver());
+        IValidationDelegate delegate = newDelegate();
+        ILink link = newLink();
+        IRender render = newRender();
+
         MockForm form = new MockForm(delegate);
 
-        trainIsRewound(cycle, form, true);
+        trainIsRewound(cycle, form, false);
 
         trainGetEngine(cycle, engine);
 
-        trainGetPageRenderSupport(cycle, null);
+        PageRenderSupport support = newPageRenderSupport();
+
+        trainGetPageRenderSupport(cycle, support);
 
         replayControls();
 
@@ -1178,61 +1171,54 @@
 
         verifyControls();
 
-        delegate.clear();
-
-        trainCycleForRewind(cycle, "barney", null);
-
         final IFormComponent component = newFormComponent("barney", "barney");
 
-        IRender body = newComponentRenderBody(fs, component, writer);
+        IRender body = newComponentRenderBody(fs, component, nested);
 
         form.setBody(body);
 
-        replayControls();
-
-        assertEquals(FormConstants.SUBMIT_NORMAL, fs.rewind());
+        trainRegister(support);
 
-        verifyControls();
-    }
+        trainGetParameterNames(link, new String[]
+        { "service" });
+        trainGetParameterValues(link, "service", new String[]
+        { "fred" });
 
-    public void testRefreshRewind()
-    {
-        IMarkupWriter writer = newWriter();
-        IRequestCycle cycle = newCycle();
-        IValidationDelegate delegate = newDelegate();
-        IEngine engine = newEngine(getClassResolver());
-        MockForm form = new MockForm(delegate);
+        trainGetNestedWriter(writer, nested);
 
-        trainIsRewound(cycle, form, true);
+        trainGetURL(link, "https", "https://foo.bar/app";);
 
-        trainGetEngine(cycle, engine);
+        writer.begin("form");
+        writer.attribute("method", "post");
+        writer.attribute("action", "https://foo.bar/app";);
 
-        trainGetPageRenderSupport(cycle, null);
+        writer.attribute("name", "myform");
+        writer.attribute("id", "myform");
 
-        replayControls();
+        render.render(writer, cycle);
 
-        final FormSupport fs = new FormSupportImpl(writer, cycle, form);
+        writer.println();
 
-        verifyControls();
+        trainHiddenBlock(writer, "fred", "barney");
 
-        delegate.clear();
+        nested.close();
 
-        trainCycleForRewind(cycle, "refresh", "barney", null);
+        writer.end();
 
-        final IFormComponent component = newFormComponent("barney", "barney");
+        trainGetFocusField(delegate, "barney");
 
-        IRender body = newComponentRenderBody(fs, component, writer);
+        // Side test: check for another form already grabbing focus
 
-        form.setBody(body);
+        trainGetFieldFocus(cycle, Boolean.TRUE);
 
         replayControls();
 
-        assertEquals(FormConstants.SUBMIT_REFRESH, fs.rewind());
+        fs.render("post", render, link, "https");
 
         verifyControls();
     }
 
-    public void testCancelRewind()
+    public void testSimpleRewind()
     {
         IMarkupWriter writer = newWriter();
         IRequestCycle cycle = newCycle();
@@ -1254,17 +1240,17 @@
 
         delegate.clear();
 
-        trainGetParameter(cycle, FormSupportImpl.SUBMIT_MODE, "cancel");
+        trainCycleForRewind(cycle, "barney", null);
 
-        // Create a body, just to provie it doesn't get invoked.
+        final IFormComponent component = newFormComponent("barney", "barney");
 
-        IRender body = (IRender) newMock(IRender.class);
+        IRender body = newComponentRenderBody(fs, component, writer);
 
         form.setBody(body);
 
         replayControls();
 
-        assertEquals(FormConstants.SUBMIT_CANCEL, fs.rewind());
+        assertEquals(FormConstants.SUBMIT_NORMAL, fs.rewind());
 
         verifyControls();
     }
@@ -1408,6 +1394,37 @@
         trainGetParameter(cycle, FormSupportImpl.RESERVED_FORM_IDS, 
reservedIds);
     }
 
+    protected void trainDiv(IMarkupWriter writer)
+    {
+        writer.begin("div");
+        writer.attribute("style", "display:none;");
+    }
+
+    private void trainFocus(PageRenderSupport support)
+    {
+        support.addInitializationScript("Tapestry.set_focus('wilma');");
+    }
+
+    private void trainGetFieldFocus(IRequestCycle cycle, Object value)
+    {
+        cycle.getAttribute(FormSupportImpl.FIELD_FOCUS_ATTRIBUTE);
+        setReturnValue(cycle, value);
+    }
+
+    private void trainGetFocusField(IValidationDelegate delegate, String 
fieldName)
+    {
+        delegate.getFocusField();
+        setReturnValue(delegate, fieldName);
+    }
+
+    private void trainGetURL(ILink link, String scheme, String URL)
+    {
+        // This will change shortly, with the new scheme parameter passed into 
FormSupport.render()
+
+        link.getURL(scheme, null, 0, null, false);
+        setReturnValue(link, URL);
+    }
+
     private void trainHidden(IMarkupWriter writer, String name, String value)
     {
         writer.beginEmpty("input");
@@ -1425,5 +1442,36 @@
         writer.attribute("id", id);
         writer.attribute("value", value);
         writer.println();
+    }
+
+    protected void trainHiddenBlock(IMarkupWriter writer, String serviceName, 
String formIds)
+    {
+        trainDiv(writer);
+
+        trainHidden(writer, "formids", formIds);
+        trainHidden(writer, "service", serviceName);
+        trainHidden(writer, "submitmode", "");
+        trainHidden(writer, FormConstants.SUBMIT_NAME_PARAMETER, "");
+
+        writer.end();
+    }
+
+    protected void trainIsRewound(IRequestCycle cycle, IForm form, boolean 
isRewound)
+    {
+        cycle.isRewound(form);
+        setReturnValue(cycle, isRewound);
+    }
+
+    private void trainRegister(PageRenderSupport support)
+    {
+        support.addExternalScript(new ClasspathResource(getClassResolver(),
+                "/org/apache/tapestry/form/Form.js"));
+
+        support.addInitializationScript("Tapestry.register_form('myform');");
+    }
+
+    private void trainSetFieldFocus(IRequestCycle cycle)
+    {
+        cycle.setAttribute(FormSupportImpl.FIELD_FOCUS_ATTRIBUTE, 
Boolean.TRUE);
     }
 }

Modified: jakarta/tapestry/trunk/status.xml
URL: 
http://svn.apache.org/viewcvs/jakarta/tapestry/trunk/status.xml?rev=348167&r1=348166&r2=348167&view=diff
==============================================================================
--- jakarta/tapestry/trunk/status.xml (original)
+++ jakarta/tapestry/trunk/status.xml Tue Nov 22 05:09:55 2005
@@ -65,6 +65,7 @@
       <action type="fix" dev="HLS" 
fixes-bug="TAPESTRY-748">NumberTranslator.js missing semicolon</action>
       <action type="add" dev="HLS">Add missing documentation for Tapestry 
script template specifications</action>
       <action type="fix" dev="HLS" fixes-bug="TAPESTRY-769">StateBinding 
doesn't override isInvariant()</action>
+      <action type="fix" dev="HLS" fixes-bug="TAPESTRY-768">FormMessages class 
has typo in message key for fieldAlreadyPrerendered()</action>
     </release>
     <release version="4.0-beta-13" date="Nov 12 2005">
       <action type="update" dev="HLS">Switch to HiveMind 1.1 (final)</action>



---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]

Reply via email to