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]