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 2007/07/19 04:21:11 UTC
svn commit: r557457 - in /tapestry/tapestry4/trunk:
tapestry-examples/Workbench/src/context/
tapestry-framework/src/java/org/apache/tapestry/
tapestry-framework/src/java/org/apache/tapestry/form/
tapestry-framework/src/java/org/apache/tapestry/services...
Author: jkuhnert
Date: Wed Jul 18 19:21:09 2007
New Revision: 557457
URL: http://svn.apache.org/viewvc?view=rev&rev=557457
Log:
Fixes TAPESTRY-1640. God damn FieldLabel prerender strikes again.....
Modified:
tapestry/tapestry4/trunk/tapestry-examples/Workbench/src/context/Dates.html
tapestry/tapestry4/trunk/tapestry-framework/src/java/org/apache/tapestry/FormBehavior.java
tapestry/tapestry4/trunk/tapestry-framework/src/java/org/apache/tapestry/form/AbstractFormComponent.java
tapestry/tapestry4/trunk/tapestry-framework/src/java/org/apache/tapestry/form/Form.java
tapestry/tapestry4/trunk/tapestry-framework/src/java/org/apache/tapestry/form/FormSupportImpl.java
tapestry/tapestry4/trunk/tapestry-framework/src/java/org/apache/tapestry/services/impl/DojoAjaxResponseBuilder.java
tapestry/tapestry4/trunk/tapestry-framework/src/test/org/apache/tapestry/form/BaseFormComponentTestCase.java
tapestry/tapestry4/trunk/tapestry-framework/src/test/org/apache/tapestry/form/FormSupportTest.java
tapestry/tapestry4/trunk/tapestry-framework/src/test/org/apache/tapestry/form/MockForm.java
tapestry/tapestry4/trunk/tapestry-framework/src/test/org/apache/tapestry/services/impl/DojoAjaxResponseBuilderTest.java
tapestry/tapestry4/trunk/tapestry-framework/src/test/org/apache/tapestry/valid/FieldLabelTest.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=557457&r1=557456&r2=557457
==============================================================================
--- tapestry/tapestry4/trunk/tapestry-examples/Workbench/src/context/Dates.html (original)
+++ tapestry/tapestry4/trunk/tapestry-examples/Workbench/src/context/Dates.html Wed Jul 18 19:21:09 2007
@@ -3,61 +3,61 @@
<h2>Date Pickers</h2>
<p>
-This page is used to demonstrate the DatePicker component. Once submitted the date values input will be displayed below
-via an XHR request.
+ This page is used to demonstrate the DatePicker component. Once submitted the date values input will be displayed below
+ via an XHR request.
</p>
<form jwcid="valid@Form">
-<input jwcid="inputEnabled"/> Enable Client Side Validation
-</form>
+ <input jwcid="inputEnabled"/> Enable Client Side Validation
+ </form>
<span jwcid="showError"/>
-<form jwcid="dateForm@Form" delegate="bean:delegate"
- clientValidationEnabled="ognl:clientValidationEnabled"
- async="true" updateComponents="dateDisplay" >
-<table >
-<tbody>
- <tr>
- <td colspan="2" >
- <input type="checkbox" jwcid="@Checkbox" value="ognl:includeWeek"
- onclick="javascript:this.form.submit();"/>
- Include weeks in DatePicker UI.
- </td>
- </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}"
- 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>
- </tr>
-
- <tr>
- <td></td>
- <td align="right"><input jwcid="@Submit" value="Submit" /> </td>
- </tr>
-</tbody>
-</table>
+<form jwcid="dateForm@Form" delegate="bean:delegate"
+ clientValidationEnabled="ognl:clientValidationEnabled"
+ async="true" updateComponents="dateDisplay" >
+ <table >
+ <tbody>
+ <tr>
+ <td colspan="2" >
+ <input type="checkbox" jwcid="@Checkbox" value="ognl:includeWeek"
+ onclick="javascript:this.form.submit();"/>
+ Include weeks in DatePicker UI.
+ </td>
+ </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}"
+ 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>
+ </tr>
+
+ <tr>
+ <td></td>
+ <td align="right"><input jwcid="@Submit" value="Submit" /> </td>
+ </tr>
+ </tbody>
+ </table>
</form>
<br/>
<div jwcid="dateDisplay@Any">
-<u>Submitted Dates</u><br/>
-<table valign="middle">
- <tr>
-<th>Start date:</th>
-<td> <span jwcid="@Insert" value="ognl:startDate"/></td>
-</tr>
- <tr>
-<th>End date:</th>
- <td>
- <span jwcid="@Insert" value="ognl:endDate"/>
- </td></tr>
-</table>
+ <u>Submitted Dates</u><br/>
+ <table valign="middle">
+ <tr>
+ <th>Start date:</th>
+ <td> <span jwcid="@Insert" value="ognl:startDate"/></td>
+ </tr>
+ <tr>
+ <th>End date:</th>
+ <td>
+ <span jwcid="@Insert" value="ognl:endDate"/>
+ </td></tr>
+ </table>
</div>
</span>
Modified: tapestry/tapestry4/trunk/tapestry-framework/src/java/org/apache/tapestry/FormBehavior.java
URL: http://svn.apache.org/viewvc/tapestry/tapestry4/trunk/tapestry-framework/src/java/org/apache/tapestry/FormBehavior.java?view=diff&rev=557457&r1=557456&r2=557457
==============================================================================
--- tapestry/tapestry4/trunk/tapestry-framework/src/java/org/apache/tapestry/FormBehavior.java (original)
+++ tapestry/tapestry4/trunk/tapestry-framework/src/java/org/apache/tapestry/FormBehavior.java Wed Jul 18 19:21:09 2007
@@ -147,7 +147,17 @@
* false if the field should continue as normal.
*/
boolean wasPrerendered(IMarkupWriter writer, IComponent field);
-
+
+ /**
+ * Invoked to check if a particular component has been pre-rendered.
+ *
+ * @param field
+ * The component to check for pre-rendering. (Such as is done by {@link org.apache.tapestry.valid.FieldLabel}.
+ *
+ * @return True if the component was pre-rendered, false otherwise.
+ */
+ boolean wasPrerendered(IComponent field);
+
/**
* Adds a deferred runnable, an object to be executed either before the </form> tag is
* rendered (when rendering), or before the form's listener is invoked (when rewinding).
Modified: tapestry/tapestry4/trunk/tapestry-framework/src/java/org/apache/tapestry/form/AbstractFormComponent.java
URL: http://svn.apache.org/viewvc/tapestry/tapestry4/trunk/tapestry-framework/src/java/org/apache/tapestry/form/AbstractFormComponent.java?view=diff&rev=557457&r1=557456&r2=557457
==============================================================================
--- tapestry/tapestry4/trunk/tapestry-framework/src/java/org/apache/tapestry/form/AbstractFormComponent.java (original)
+++ tapestry/tapestry4/trunk/tapestry-framework/src/java/org/apache/tapestry/form/AbstractFormComponent.java Wed Jul 18 19:21:09 2007
@@ -14,11 +14,7 @@
package org.apache.tapestry.form;
-import org.apache.tapestry.AbstractComponent;
-import org.apache.tapestry.IForm;
-import org.apache.tapestry.IMarkupWriter;
-import org.apache.tapestry.IRequestCycle;
-import org.apache.tapestry.TapestryUtils;
+import org.apache.tapestry.*;
import org.apache.tapestry.engine.NullWriter;
import org.apache.tapestry.valid.IValidationDelegate;
import org.apache.tapestry.valid.ValidationConstants;
@@ -171,7 +167,7 @@
IForm form = (IForm) getPage().getRequestCycle().getAttribute(TapestryUtils.FORM_ATTRIBUTE);
if (form == null)
return null;
-
+
return form.peekClientId(this);
}
Modified: tapestry/tapestry4/trunk/tapestry-framework/src/java/org/apache/tapestry/form/Form.java
URL: http://svn.apache.org/viewvc/tapestry/tapestry4/trunk/tapestry-framework/src/java/org/apache/tapestry/form/Form.java?view=diff&rev=557457&r1=557456&r2=557457
==============================================================================
--- tapestry/tapestry4/trunk/tapestry-framework/src/java/org/apache/tapestry/form/Form.java (original)
+++ tapestry/tapestry4/trunk/tapestry-framework/src/java/org/apache/tapestry/form/Form.java Wed Jul 18 19:21:09 2007
@@ -354,7 +354,12 @@
{
return _formSupport.wasPrerendered(writer, field);
}
-
+
+ public boolean wasPrerendered(IComponent field)
+ {
+ return _formSupport.wasPrerendered(field);
+ }
+
/** @since 4.0 */
public void addDeferredRunnable(Runnable runnable)
Modified: tapestry/tapestry4/trunk/tapestry-framework/src/java/org/apache/tapestry/form/FormSupportImpl.java
URL: http://svn.apache.org/viewvc/tapestry/tapestry4/trunk/tapestry-framework/src/java/org/apache/tapestry/form/FormSupportImpl.java?view=diff&rev=557457&r1=557456&r2=557457
==============================================================================
--- tapestry/tapestry4/trunk/tapestry-framework/src/java/org/apache/tapestry/form/FormSupportImpl.java (original)
+++ tapestry/tapestry4/trunk/tapestry-framework/src/java/org/apache/tapestry/form/FormSupportImpl.java Wed Jul 18 19:21:09 2007
@@ -419,7 +419,10 @@
String id = comp.getSpecifiedId();
if (id == null)
return null;
-
+
+ if (wasPrerendered(comp))
+ return comp.getClientId();
+
return _elementIdAllocator.peekNextId(id);
}
@@ -812,7 +815,12 @@
return true;
}
-
+
+ public boolean wasPrerendered(IComponent field)
+ {
+ return _prerenderMap.containsKey(field.getExtendedId());
+ }
+
public void addDeferredRunnable(Runnable runnable)
{
Defense.notNull(runnable, "runnable");
Modified: tapestry/tapestry4/trunk/tapestry-framework/src/java/org/apache/tapestry/services/impl/DojoAjaxResponseBuilder.java
URL: http://svn.apache.org/viewvc/tapestry/tapestry4/trunk/tapestry-framework/src/java/org/apache/tapestry/services/impl/DojoAjaxResponseBuilder.java?view=diff&rev=557457&r1=557456&r2=557457
==============================================================================
--- tapestry/tapestry4/trunk/tapestry-framework/src/java/org/apache/tapestry/services/impl/DojoAjaxResponseBuilder.java (original)
+++ tapestry/tapestry4/trunk/tapestry-framework/src/java/org/apache/tapestry/services/impl/DojoAjaxResponseBuilder.java Wed Jul 18 19:21:09 2007
@@ -574,22 +574,24 @@
public void render(IMarkupWriter writer, IRender render, IRequestCycle cycle)
{
// must be a valid writer already
-
- if (NestedMarkupWriterImpl.class.isInstance(writer)) {
+
+ if (NestedMarkupWriterImpl.class.isInstance(writer) && !NullWriter.class.isInstance(writer))
+ {
render.render(writer, cycle);
return;
}
// check for page exception renders and write content to writer so client can display them
- if (IPage.class.isInstance(render)) {
-
+ if (IPage.class.isInstance(render))
+ {
IPage page = (IPage)render;
String errorPage = getErrorPage(page.getPageName());
- if (errorPage != null) {
-
+ if (errorPage != null)
+ {
_pageRender = true;
+
clearPartialWriters();
render.render(getWriter(errorPage, EXCEPTION_TYPE), cycle);
return;
@@ -600,8 +602,8 @@
// this appropriately. (usually by replacing the current dom with whatever this renders)
if (_cycle.getParameter(ServiceConstants.PAGE) != null
- && !page.getPageName().equals(_cycle.getParameter(ServiceConstants.PAGE))) {
-
+ && !page.getPageName().equals(_cycle.getParameter(ServiceConstants.PAGE)))
+ {
IMarkupWriter urlwriter = _writer.getNestedWriter();
urlwriter.begin("response");
Modified: tapestry/tapestry4/trunk/tapestry-framework/src/test/org/apache/tapestry/form/BaseFormComponentTestCase.java
URL: http://svn.apache.org/viewvc/tapestry/tapestry4/trunk/tapestry-framework/src/test/org/apache/tapestry/form/BaseFormComponentTestCase.java?view=diff&rev=557457&r1=557456&r2=557457
==============================================================================
--- tapestry/tapestry4/trunk/tapestry-framework/src/test/org/apache/tapestry/form/BaseFormComponentTestCase.java (original)
+++ tapestry/tapestry4/trunk/tapestry-framework/src/test/org/apache/tapestry/form/BaseFormComponentTestCase.java Wed Jul 18 19:21:09 2007
@@ -14,19 +14,9 @@
package org.apache.tapestry.form;
-import static org.easymock.EasyMock.checkOrder;
-import static org.easymock.EasyMock.expect;
-import static org.easymock.EasyMock.expectLastCall;
-
-import org.apache.tapestry.BaseComponentTestCase;
-import org.apache.tapestry.IActionListener;
-import org.apache.tapestry.IBinding;
-import org.apache.tapestry.IComponent;
-import org.apache.tapestry.IForm;
-import org.apache.tapestry.IMarkupWriter;
-import org.apache.tapestry.IRequestCycle;
-import org.apache.tapestry.TapestryUtils;
+import org.apache.tapestry.*;
import org.apache.tapestry.valid.IValidationDelegate;
+import static org.easymock.EasyMock.*;
/**
* Base class for tests of implementations of {@link org.apache.tapestry.form.IFormComponent}.
@@ -58,7 +48,7 @@
protected void trainGetForm(IRequestCycle cycle, IForm form)
{
- expect(cycle.getAttribute(TapestryUtils.FORM_ATTRIBUTE)).andReturn(form);
+ expect(cycle.getAttribute(TapestryUtils.FORM_ATTRIBUTE)).andReturn(form).anyTimes();
}
protected void trainGetDelegate(IForm form, IValidationDelegate delegate)
Modified: tapestry/tapestry4/trunk/tapestry-framework/src/test/org/apache/tapestry/form/FormSupportTest.java
URL: http://svn.apache.org/viewvc/tapestry/tapestry4/trunk/tapestry-framework/src/test/org/apache/tapestry/form/FormSupportTest.java?view=diff&rev=557457&r1=557456&r2=557457
==============================================================================
--- tapestry/tapestry4/trunk/tapestry-framework/src/test/org/apache/tapestry/form/FormSupportTest.java (original)
+++ tapestry/tapestry4/trunk/tapestry-framework/src/test/org/apache/tapestry/form/FormSupportTest.java Wed Jul 18 19:21:09 2007
@@ -33,45 +33,45 @@
/**
* Tests for {@link org.apache.tapestry.form.FormSupportImpl}.
- *
+ *
* @author Howard M. Lewis Ship
* @since 4.0
*/
@Test(sequential = true)
-public class FormSupportTest extends BaseComponentTestCase
-{
- @DataProvider(name="allSupports")
- public Object[][] createAllSupports() {
- return new Object[][] {
- {new FormSupportFactoryImpl()},
- {new MultipleFormSupportFactory()}
+public class FormSupportTest extends BaseComponentTestCase {
+ @DataProvider(name = "allSupports")
+ public Object[][] createAllSupports()
+ {
+ return new Object[][]{
+ {new FormSupportFactoryImpl()},
+ {new MultipleFormSupportFactory()}
};
}
- @DataProvider(name="mainSupport")
- public Object[][] createMainSupport() {
- return new Object[][] {
- {new FormSupportFactoryImpl()}
+ @DataProvider(name = "mainSupport")
+ public Object[][] createMainSupport()
+ {
+ return new Object[][]{
+ {new FormSupportFactoryImpl()}
};
}
protected FormSupport newFormSupport(IRequestCycle cycle)
{
return new FormSupportImpl(cycle);
- }
+ }
private IRender newComponentRenderBody(final FormSupport fs, final IFormComponent component,
- final IMarkupWriter nested)
+ final IMarkupWriter nested)
{
return newComponentsRenderBody(fs, new IFormComponent[]
- { component }, nested);
+ {component}, nested);
}
private IRender newComponentsRenderBody(final FormSupport fs, final IFormComponent[] component,
- final IMarkupWriter nested)
+ final IMarkupWriter nested)
{
- return new IRender()
- {
+ return new IRender() {
public void render(IMarkupWriter writer, IRequestCycle cycle)
{
assertEquals(nested, writer);
@@ -101,12 +101,12 @@
{
IFormComponent component = newMock(IFormComponent.class);
checkOrder(component, false);
-
+
expect(component.getSpecifiedId()).andReturn(id);
component.setName(name);
component.setClientId(name);
-
+
return component;
}
@@ -115,7 +115,7 @@
IFormComponent component = newMock(IFormComponent.class);
expect(component.getSpecifiedId()).andReturn(id);
-
+
trainGetExtendedId(component, extendedId);
trainGetLocation(component, location);
@@ -141,19 +141,19 @@
verify();
delegate.clear();
-
+
trainGetParameter(cycle, FormSupportImpl.SUBMIT_MODE, "cancel");
-
+
// Create a body, just to provie it doesn't get invoked.
-
+
IRender body = newMock(IRender.class);
-
+
form.setBody(body);
-
+
replay();
-
+
assertEquals(FormConstants.SUBMIT_CANCEL, fs.rewind());
-
+
verify();
}
@@ -171,7 +171,7 @@
MockForm form = new MockForm(delegate);
trainIsRewound(cycle, form, false);
-
+
PageRenderSupport support = newPageRenderSupport();
trainGetPageRenderSupport(cycle, support);
@@ -187,16 +187,16 @@
final IFormComponent barney2 = newFormComponent("barney", "barney_0");
IRender body = newComponentsRenderBody(fs, new IFormComponent[]
- { barney1, wilma, barney2 }, nested);
+ {barney1, wilma, barney2}, nested);
form.setBody(body);
trainRegister(support, form, "myform");
trainGetParameterNames(link, new String[]
- { "service" });
+ {"service"});
trainGetParameterValues(link, "service", new String[]
- { "fred" });
+ {"fred"});
trainGetNestedWriter(writer, nested);
@@ -205,7 +205,7 @@
writer.begin("form");
writer.attribute("method", "post");
writer.attribute("action", "/app");
-
+
writer.attribute("id", "myform");
render.render(writer, cycle);
@@ -217,18 +217,18 @@
nested.close();
writer.end();
-
+
trainGetFocusField(delegate, "wilma");
-
+
expect(cycle.isFocusDisabled()).andReturn(false);
-
+
// effectively means someone else has already claimed focus
-
+
trainGetFieldFocus(cycle, null);
-
+
support.addInitializationScript(form, "dojo.require(\"tapestry.form\");tapestry.form.focusField('wilma');");
cycle.setAttribute(FormSupportImpl.FIELD_FOCUS_ATTRIBUTE, Boolean.TRUE);
-
+
replay();
fs.render("post", render, link, null, null);
@@ -244,21 +244,21 @@
IValidationDelegate delegate = newDelegate();
MockForm form = new MockForm(delegate);
ListenerInvoker listenerInvoker = newMock(ListenerInvoker.class);
-
+
ComponentEventInvoker invoker = new ComponentEventInvoker();
invoker.setInvoker(listenerInvoker);
-
+
trainIsRewound(cycle, form, true);
trainGetPageRenderSupport(cycle, null);
-
+
replay();
final FormSupport fs = factory.createFormSupport(writer, cycle, form);
-
+
verify();
delegate.clear();
-
+
trainCycleForRewind(cycle, "barney,wilma,barney_0", null);
final IFormComponent barney1 = newFormComponent("barney", "barney");
@@ -266,22 +266,22 @@
final IFormComponent barney2 = newFormComponent("barney", "barney_0");
IRender body = newComponentsRenderBody(fs, new IFormComponent[]
- { barney1, wilma, barney2 }, writer);
+ {barney1, wilma, barney2}, writer);
form.setBody(body);
form.setEventInvoker(invoker);
-
+
trainExtractBrowserEvent(cycle);
expect(cycle.getParameter(BrowserEvent.METHOD_ARGUMENTS)).andReturn("null");
-
+
replay();
-
+
Map props = new HashMap();
props.put("id", "bsId");
BrowserEvent event = new BrowserEvent("onclick", new EventTarget(props));
-
+
invoker.invokeFormListeners(fs, cycle, event);
-
+
assertEquals(FormConstants.SUBMIT_NORMAL, fs.rewind());
verify();
@@ -298,7 +298,7 @@
PageRenderSupport support = newPageRenderSupport();
ILink link = newLink();
IRender render = newRender();
-
+
MockForm form = new MockForm(delegate);
trainIsRewound(cycle, form, false);
@@ -309,9 +309,8 @@
final FormSupport fs = factory.createFormSupport(writer, cycle, form);
verify();
-
- form.setBody(new IRender()
- {
+
+ form.setBody(new IRender() {
public void render(IMarkupWriter pwriter, IRequestCycle pcycle)
{
fs.addEventHandler(FormEventType.SUBMIT, "mySubmit1");
@@ -323,10 +322,10 @@
trainRegister(support, form, "myform");
trainGetParameterNames(link, new String[]
- { "service" });
+ {"service"});
trainGetParameterValues(link, "service", new String[]
- { "fred" });
+ {"fred"});
trainGetNestedWriter(writer, nested);
@@ -337,10 +336,10 @@
writer.attribute("action", "/app");
writer.attribute("id", "myform");
-
+
support.addInitializationScript(form, "Tapestry.onsubmit('myform', function (event)"
- + "\n{\n mySubmit1();\n mySubmit2();\n mySubmit3();\n});\n");
-
+ + "\n{\n mySubmit1();\n mySubmit2();\n mySubmit3();\n});\n");
+
render.render(writer, cycle);
writer.println();
@@ -350,13 +349,13 @@
nested.close();
writer.end();
-
+
// Side test: what if no focus field?
trainGetFocusField(delegate, null);
-
+
expect(cycle.isFocusDisabled()).andReturn(false);
-
+
replay();
fs.render("post", render, link, null, null);
@@ -388,8 +387,7 @@
verify();
- form.setBody(new IRender()
- {
+ form.setBody(new IRender() {
public void render(IMarkupWriter pwriter, IRequestCycle pcycle)
{
fs.setEncodingType("foo/bar");
@@ -399,10 +397,10 @@
trainRegister(support, form, "myform");
trainGetParameterNames(link, new String[]
- { "service" });
+ {"service"});
trainGetParameterValues(link, "service", new String[]
- { "fred" });
+ {"fred"});
trainGetNestedWriter(writer, nested);
@@ -411,7 +409,7 @@
writer.begin("form");
writer.attribute("method", "post");
writer.attribute("action", "/app");
-
+
writer.attribute("id", "myform");
writer.attribute("enctype", "foo/bar");
@@ -428,7 +426,7 @@
trainGetFocusField(delegate, null);
expect(cycle.isFocusDisabled()).andReturn(false);
-
+
replay();
fs.render("post", render, link, null, null);
@@ -444,30 +442,29 @@
NestedMarkupWriter nested = newNestedWriter();
IRequestCycle cycle = newCycle();
Location l = newLocation();
-
+
ResponseBuilder builder = newMock(ResponseBuilder.class);
trainGetExtendedId(field, "foo.bar");
-
trainGetNestedWriter(writer, nested);
-
+
expect(cycle.getAttribute(TapestryUtils.FIELD_PRERENDER)).andReturn(null);
cycle.setAttribute(TapestryUtils.FIELD_PRERENDER, field);
-
+
expect(cycle.getResponseBuilder()).andReturn(builder);
-
+
builder.render(nested, field, cycle);
-
+
cycle.removeAttribute(TapestryUtils.FIELD_PRERENDER);
-
+
expect(nested.getBuffer()).andReturn("NESTED CONTENT");
replay();
FormSupport fs = newFormSupport(cycle);
-
+
fs.prerenderField(writer, field, l);
-
+
verify();
trainGetExtendedId(field, "foo.bar");
@@ -479,12 +476,11 @@
fs.prerenderField(writer, field, l);
unreachable();
}
- catch (ApplicationRuntimeException ex)
- {
+ 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());
+ "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());
@@ -509,7 +505,6 @@
MockForm form = new MockForm(delegate);
trainIsRewound(cycle, form, false);
-
trainGetPageRenderSupport(cycle, support);
replay();
@@ -518,8 +513,7 @@
verify();
- form.setBody(new IRender()
- {
+ form.setBody(new IRender() {
public void render(IMarkupWriter pwriter, IRequestCycle pcycle)
{
fs.addHiddenValue("hidden1", "value1");
@@ -528,12 +522,8 @@
});
trainRegister(support, form, "myform");
-
- trainGetParameterNames(link, new String[]
- { "service" });
-
- trainGetParameterValues(link, "service", new String[]
- { "fred" });
+ trainGetParameterNames(link, new String[]{"service"});
+ trainGetParameterValues(link, "service", new String[] {"fred"});
trainGetNestedWriter(writer, nested);
@@ -542,17 +532,17 @@
writer.begin("form");
writer.attribute("method", "post");
writer.attribute("action", "/app");
-
+
writer.attribute("id", "myform");
render.render(writer, cycle);
writer.println();
-
+
expect(cycle.getResponseBuilder()).andReturn(builder);
-
+
expect(builder.contains(form)).andReturn(false);
-
+
trainDiv(writer, form);
trainHidden(writer, "formids", "");
@@ -571,7 +561,7 @@
trainGetFocusField(delegate, null);
expect(cycle.isFocusDisabled()).andReturn(false);
-
+
replay();
fs.render("post", render, link, null, null);
@@ -602,8 +592,7 @@
verify();
- form.setBody(new IRender()
- {
+ form.setBody(new IRender() {
public void render(IMarkupWriter pwriter, IRequestCycle pcycle)
{
fs.setEncodingType("foo/bar");
@@ -614,25 +603,23 @@
trainRegister(support, form, "myform");
trainGetParameterNames(link, new String[]
- { "service" });
+ {"service"});
trainGetParameterValues(link, "service", new String[]
- { "fred" });
+ {"fred"});
trainGetNestedWriter(writer, nested);
replay();
- try
- {
+ try {
fs.render("post", render, link, null, null);
unreachable();
}
- catch (ApplicationRuntimeException ex)
- {
+ catch (ApplicationRuntimeException ex) {
assertEquals(
- "Components within form SomePage/myform have requested conflicting encoding types 'foo/bar' and 'zip/zap'.",
- ex.getMessage());
+ "Components within form SomePage/myform have requested conflicting encoding types 'foo/bar' and 'zip/zap'.",
+ ex.getMessage());
assertSame(form, ex.getComponent());
}
@@ -647,7 +634,7 @@
IValidationDelegate delegate = newDelegate();
MockForm form = new MockForm(delegate);
ComponentEventInvoker invoker = org.easymock.classextension.EasyMock.createMock(ComponentEventInvoker.class);
-
+
trainIsRewound(cycle, form, true);
trainGetPageRenderSupport(cycle, null);
@@ -668,10 +655,10 @@
form.setBody(body);
form.setEventInvoker(invoker);
-
+
trainExtractBrowserEvent(cycle);
expect(cycle.getParameter(BrowserEvent.METHOD_ARGUMENTS)).andReturn("null");
-
+
invoker.invokeFormListeners(eq(fs), eq(cycle), isA(BrowserEvent.class));
delegate.clearErrors();
@@ -716,10 +703,10 @@
trainRegister(support, form, "myform");
trainGetParameterNames(link, new String[]
- { "action" });
+ {"action"});
trainGetParameterValues(link, "action", new String[]
- { "fred" });
+ {"fred"});
trainGetNestedWriter(writer, nested);
@@ -728,17 +715,17 @@
writer.begin("form");
writer.attribute("method", "post");
writer.attribute("action", "/app");
-
+
writer.attribute("id", "myform");
render.render(writer, cycle);
writer.println();
-
+
expect(cycle.getResponseBuilder()).andReturn(builder);
-
+
expect(builder.contains(form)).andReturn(false);
-
+
trainDiv(writer, form);
trainHidden(writer, "formids", "action_0");
@@ -756,7 +743,7 @@
trainGetFocusField(delegate, null);
expect(cycle.isFocusDisabled()).andReturn(false);
-
+
replay();
fs.render("post", render, link, null, null);
@@ -771,7 +758,7 @@
NestedMarkupWriter nested = newNestedWriter();
IRequestCycle cycle = newCycle();
ResponseBuilder builder = newMock(ResponseBuilder.class);
-
+
IValidationDelegate delegate = newDelegate();
PageRenderSupport support = newPageRenderSupport();
ILink link = newLink();
@@ -789,8 +776,7 @@
verify();
- form.setBody(new IRender()
- {
+ form.setBody(new IRender() {
public void render(IMarkupWriter pwriter, IRequestCycle pcycle)
{
fs.addEventHandler(FormEventType.RESET, "myReset1");
@@ -801,24 +787,24 @@
trainRegister(support, form, "myform");
trainGetParameterNames(link, new String[]
- { "service" });
+ {"service"});
trainGetParameterValues(link, "service", new String[]
- { "fred" });
+ {"fred"});
trainGetNestedWriter(writer, nested);
-
+
trainGetURL(link, null, "/app");
-
+
writer.begin("form");
writer.attribute("method", "post");
writer.attribute("action", "/app");
-
+
writer.attribute("id", "myform");
-
+
support.addInitializationScript(form, "Tapestry.onreset('myform', function (event)"
- + "\n{\n myReset1();\n myReset2();\n});\n");
-
+ + "\n{\n myReset1();\n myReset2();\n});\n");
+
render.render(writer, cycle);
writer.println();
@@ -828,11 +814,11 @@
nested.close();
writer.end();
-
+
trainGetFocusField(delegate, null);
expect(cycle.isFocusDisabled()).andReturn(false);
-
+
replay();
fs.render("post", render, link, null, null);
@@ -846,9 +832,9 @@
IMarkupWriter writer = newWriter();
IRequestCycle cycle = newCycle();
IValidationDelegate delegate = newDelegate();
- ComponentEventInvoker invoker =
- org.easymock.classextension.EasyMock.createMock(ComponentEventInvoker.class);
-
+ ComponentEventInvoker invoker =
+ org.easymock.classextension.EasyMock.createMock(ComponentEventInvoker.class);
+
MockForm form = new MockForm(delegate);
trainIsRewound(cycle, form, true);
@@ -871,12 +857,12 @@
form.setBody(body);
form.setEventInvoker(invoker);
-
+
trainExtractBrowserEvent(cycle);
expect(cycle.getParameter(BrowserEvent.METHOD_ARGUMENTS)).andReturn("null");
-
+
invoker.invokeFormListeners(eq(fs), eq(cycle), isA(BrowserEvent.class));
-
+
replay();
assertEquals(FormConstants.SUBMIT_NORMAL, fs.rewind());
@@ -911,28 +897,26 @@
// but is now false on the rewind.
trainCycleForRewind(cycle, "barney,wilma,pebbles,barney_0", null);
-
+
final IFormComponent barney1 = newFormComponent("barney", "barney");
final IFormComponent wilma = newFormComponent("wilma", "wilma");
final IFormComponent barney2 = newFormComponent("barney", "SomePage/barney", l);
-
+
IRender body = newComponentsRenderBody(fs, new IFormComponent[]
- { barney1, wilma, barney2 }, writer);
+ {barney1, wilma, barney2}, writer);
form.setBody(body);
replay();
- try
- {
+ try {
fs.rewind();
unreachable();
}
- catch (StaleLinkException ex)
- {
+ catch (StaleLinkException ex) {
assertEquals(
- "Rewind of form SomePage/myform expected allocated id #3 to be 'pebbles', but was 'barney_0' (requested by component SomePage/barney).",
- ex.getMessage());
+ "Rewind of form SomePage/myform expected allocated id #3 to be 'pebbles', but was 'barney_0' (requested by component SomePage/barney).",
+ ex.getMessage());
assertSame(barney2, ex.getComponent());
assertSame(l, ex.getLocation());
}
@@ -973,22 +957,20 @@
final IFormComponent barney2 = newFormComponent("barney", "SomePage/barney", l);
IRender body = newComponentsRenderBody(fs, new IFormComponent[]
- { barney1, wilma, barney2 }, writer);
+ {barney1, wilma, barney2}, writer);
form.setBody(body);
replay();
- try
- {
+ try {
fs.rewind();
unreachable();
}
- catch (StaleLinkException ex)
- {
+ catch (StaleLinkException ex) {
assertEquals(
- "Rewind of form SomePage/myform expected only 2 form elements, but an additional id was requested by component SomePage/barney.",
- ex.getMessage());
+ "Rewind of form SomePage/myform expected only 2 form elements, but an additional id was requested by component SomePage/barney.",
+ ex.getMessage());
assertSame(barney2, ex.getComponent());
assertSame(l, ex.getLocation());
}
@@ -1004,7 +986,7 @@
IRequestCycle cycle = newCycle();
IValidationDelegate delegate = newDelegate();
ComponentEventInvoker invoker = org.easymock.classextension.EasyMock.createMock(ComponentEventInvoker.class);
-
+
MockForm form = new MockForm(delegate, l);
trainIsRewound(cycle, form, true);
@@ -1027,28 +1009,26 @@
final IFormComponent barney1 = newFormComponent("barney", "barney");
final IFormComponent wilma = newFormComponent("wilma", "wilma");
- IRender body = newComponentsRenderBody(fs, new IFormComponent[] { barney1, wilma }, writer);
+ IRender body = newComponentsRenderBody(fs, new IFormComponent[]{barney1, wilma}, writer);
form.setBody(body);
form.setEventInvoker(invoker);
-
+
trainExtractBrowserEvent(cycle);
expect(cycle.getParameter(BrowserEvent.METHOD_ARGUMENTS)).andReturn("null");
-
+
invoker.invokeFormListeners(eq(fs), eq(cycle), isA(BrowserEvent.class));
-
+
replay();
- try
- {
+ try {
fs.rewind();
unreachable();
}
- catch (StaleLinkException ex)
- {
+ catch (StaleLinkException ex) {
assertEquals(
- "Rewind of form SomePage/myform expected 1 more form elements, starting with id 'barney$0'.",
- ex.getMessage());
+ "Rewind of form SomePage/myform expected 1 more form elements, starting with id 'barney$0'.",
+ ex.getMessage());
assertSame(form, ex.getComponent());
assertSame(l, ex.getLocation());
}
@@ -1090,9 +1070,9 @@
trainRegister(support, form, "myform");
trainGetParameterNames(link, new String[]
- { "service" });
+ {"service"});
trainGetParameterValues(link, "service", new String[]
- { "fred" });
+ {"fred"});
trainGetNestedWriter(writer, nested);
@@ -1101,7 +1081,7 @@
writer.begin("form");
writer.attribute("method", "post");
writer.attribute("action", "/app");
-
+
writer.attribute("id", "myform");
render.render(writer, cycle);
@@ -1117,15 +1097,15 @@
trainGetFocusField(delegate, "barney");
expect(cycle.isFocusDisabled()).andReturn(false);
-
+
// Side test: check for another form already grabbing focus
trainGetFieldFocus(cycle, null);
-
+
support.addInitializationScript(form, "dojo.require(\"tapestry.form\");tapestry.form.focusField('barney');");
-
+
cycle.setAttribute(FormSupportImpl.FIELD_FOCUS_ATTRIBUTE, Boolean.TRUE);
-
+
replay();
fs.render("post", render, link, null, null);
@@ -1158,12 +1138,10 @@
verify();
- IRender body = new IRender()
- {
+ IRender body = new IRender() {
public void render(final IMarkupWriter pwriter, IRequestCycle pcycle)
{
- fs.addDeferredRunnable(new Runnable()
- {
+ fs.addDeferredRunnable(new Runnable() {
public void run()
{
@@ -1174,26 +1152,26 @@
}
};
-
+
form.setBody(body);
trainRegister(support, form, "myform");
trainGetParameterNames(link, new String[]
- { "service" });
+ {"service"});
trainGetParameterValues(link, "service", new String[]
- { "fred" });
+ {"fred"});
trainGetNestedWriter(writer, nested);
-
+
nested.print("DEFERRED");
-
+
trainGetURL(link, null, "/app");
writer.begin("form");
writer.attribute("method", "post");
writer.attribute("action", "/app");
-
+
writer.attribute("id", "myform");
render.render(writer, cycle);
@@ -1201,7 +1179,7 @@
writer.println();
trainHiddenBlock(cycle, builder, writer, form, "fred", "");
-
+
nested.close();
writer.end();
@@ -1209,7 +1187,7 @@
trainGetFocusField(delegate, null);
expect(cycle.isFocusDisabled()).andReturn(false);
-
+
replay();
fs.render("post", render, link, null, null);
@@ -1227,19 +1205,19 @@
IValidationDelegate delegate = newDelegate();
ILink link = newLink();
IRender render = newRender();
-
+
MockForm form = new MockForm(delegate);
-
+
trainIsRewound(cycle, form, false);
PageRenderSupport support = newPageRenderSupport();
trainGetPageRenderSupport(cycle, support);
-
+
replay();
-
+
final FormSupport fs = factory.createFormSupport(writer, cycle, form);
-
+
verify();
final IFormComponent component = newFormComponent("barney", "barney");
@@ -1251,9 +1229,9 @@
trainRegister(support, form, "myform");
trainGetParameterNames(link, new String[]
- { "service" });
+ {"service"});
trainGetParameterValues(link, "service", new String[]
- { "fred" });
+ {"fred"});
trainGetNestedWriter(writer, nested);
@@ -1262,7 +1240,7 @@
writer.begin("form");
writer.attribute("method", "post");
writer.attribute("action", "https://foo.bar/app");
-
+
writer.attribute("id", "myform");
render.render(writer, cycle);
@@ -1274,19 +1252,19 @@
nested.close();
writer.end();
-
+
trainGetFocusField(delegate, "barney");
-
+
expect(cycle.isFocusDisabled()).andReturn(false);
-
+
// Side test: check for another form already grabbing focus
-
+
trainGetFieldFocus(cycle, Boolean.TRUE);
-
+
// support.addInitializationScript(form, "tapestry.form.focusField('barney');");
-
+
// cycle.setAttribute(FormSupportImpl.FIELD_FOCUS_ATTRIBUTE, true);
-
+
replay();
fs.render("post", render, link, "https", new Integer(443));
@@ -1301,9 +1279,9 @@
IRequestCycle cycle = newCycle();
IValidationDelegate delegate = newDelegate();
MockForm form = new MockForm(delegate);
- ComponentEventInvoker invoker =
- org.easymock.classextension.EasyMock.createMock(ComponentEventInvoker.class);
-
+ ComponentEventInvoker invoker =
+ org.easymock.classextension.EasyMock.createMock(ComponentEventInvoker.class);
+
trainIsRewound(cycle, form, true);
trainGetPageRenderSupport(cycle, null);
@@ -1324,12 +1302,12 @@
form.setBody(body);
form.setEventInvoker(invoker);
-
+
trainExtractBrowserEvent(cycle);
expect(cycle.getParameter(BrowserEvent.METHOD_ARGUMENTS)).andReturn("null");
-
+
invoker.invokeFormListeners(eq(fs), eq(cycle), isA(BrowserEvent.class));
-
+
replay();
assertEquals(FormConstants.SUBMIT_NORMAL, fs.rewind());
@@ -1344,9 +1322,9 @@
IRequestCycle cycle = newCycle();
IValidationDelegate delegate = newDelegate();
MockForm form = new MockForm(delegate);
- ComponentEventInvoker invoker =
- org.easymock.classextension.EasyMock.createMock(ComponentEventInvoker.class);
-
+ ComponentEventInvoker invoker =
+ org.easymock.classextension.EasyMock.createMock(ComponentEventInvoker.class);
+
trainIsRewound(cycle, form, true);
trainGetPageRenderSupport(cycle, null);
@@ -1362,20 +1340,18 @@
trainCycleForRewind(cycle, "", null);
trainExtractBrowserEvent(cycle);
expect(cycle.getParameter(BrowserEvent.METHOD_ARGUMENTS)).andReturn("null");
-
+
writer.print("DEFERRED");
-
+
invoker.invokeFormListeners(eq(fs), eq(cycle), isA(BrowserEvent.class));
-
+
replay();
- IRender body = new IRender()
- {
+ IRender body = new IRender() {
public void render(final IMarkupWriter pwriter, IRequestCycle pcycle)
{
- fs.addDeferredRunnable(new Runnable()
- {
+ fs.addDeferredRunnable(new Runnable() {
public void run()
{
pwriter.print("DEFERRED");
@@ -1388,7 +1364,7 @@
form.setBody(body);
form.setEventInvoker(invoker);
-
+
assertEquals(FormConstants.SUBMIT_NORMAL, fs.rewind());
verify();
@@ -1418,37 +1394,36 @@
final FormSupport fs = factory.createFormSupport(writer, cycle, form);
verify();
-
+
trainRegister(support, form, "myform");
-
+
trainGetParameterNames(link, new String[]
- { "service" });
+ {"service"});
trainGetParameterValues(link, "service", new String[]
- { "fred" });
-
+ {"fred"});
+
trainGetNestedWriter(writer, nested);
-
+
trainGetURL(link, null, "/app");
writer.begin("form");
writer.attribute("method", "post");
writer.attribute("action", "/app");
-
+
writer.attribute("id", "myform");
-
- form.setBody(new IRender()
- {
+
+ form.setBody(new IRender() {
public void render(IMarkupWriter pwriter, IRequestCycle pcycle)
{
fs.addEventHandler(FormEventType.SUBMIT, "mySubmit()");
}
});
-
+
support.addInitializationScript(form, "Tapestry.onsubmit('myform', function (event)"
- + "\n{\n mySubmit();\n});\n");
-
+ + "\n{\n mySubmit();\n});\n");
+
render.render(writer, cycle);
-
+
writer.println();
trainHiddenBlock(cycle, builder, writer, form, "fred", "");
@@ -1460,7 +1435,7 @@
trainGetFocusField(delegate, null);
expect(cycle.isFocusDisabled()).andReturn(false);
-
+
replay();
fs.render("post", render, link, null, null);
@@ -1474,7 +1449,7 @@
}
private void trainCycleForRewind(IRequestCycle cycle, String submitMode, String allocatedIds,
- String reservedIds)
+ String reservedIds)
{
trainGetParameter(cycle, FormSupportImpl.SUBMIT_MODE, submitMode);
trainGetParameter(cycle, FormSupportImpl.FORM_IDS, allocatedIds);
@@ -1504,10 +1479,10 @@
expect(link.getURL(scheme, null, port, null, false)).andReturn(URL);
}
-
+
private void trainGetURL(ILink link, String scheme, String URL)
{
- trainGetURL(link, scheme, URL, 0);
+ trainGetURL(link, scheme, URL, 0);
}
private void trainHidden(IMarkupWriter writer, String name, String value)
@@ -1530,15 +1505,15 @@
}
protected void trainHiddenBlock(IRequestCycle cycle, ResponseBuilder builder,
- IMarkupWriter writer, IForm form,
- String serviceName, String formIds)
+ IMarkupWriter writer, IForm form,
+ String serviceName, String formIds)
{
expect(cycle.getResponseBuilder()).andReturn(builder);
-
+
expect(builder.contains(form)).andReturn(false);
-
+
trainDiv(writer, form);
-
+
trainHidden(writer, "formids", formIds);
trainHidden(writer, "service", serviceName);
trainHidden(writer, "submitmode", "");
@@ -1555,6 +1530,6 @@
private void trainRegister(PageRenderSupport support, IForm form, String formId)
{
support.addInitializationScript(form, "dojo.require(\"tapestry.form\");"
- + "tapestry.form.registerForm(\"" + formId + "\");");
+ + "tapestry.form.registerForm(\"" + formId + "\");");
}
}
Modified: tapestry/tapestry4/trunk/tapestry-framework/src/test/org/apache/tapestry/form/MockForm.java
URL: http://svn.apache.org/viewvc/tapestry/tapestry4/trunk/tapestry-framework/src/test/org/apache/tapestry/form/MockForm.java?view=diff&rev=557457&r1=557456&r2=557457
==============================================================================
--- tapestry/tapestry4/trunk/tapestry-framework/src/test/org/apache/tapestry/form/MockForm.java (original)
+++ tapestry/tapestry4/trunk/tapestry-framework/src/test/org/apache/tapestry/form/MockForm.java Wed Jul 18 19:21:09 2007
@@ -14,25 +14,9 @@
package org.apache.tapestry.form;
-import java.util.ArrayList;
-import java.util.Collection;
-import java.util.Collections;
-import java.util.Iterator;
-import java.util.List;
-import java.util.Map;
-
import org.apache.hivemind.Location;
import org.apache.hivemind.Messages;
-import org.apache.tapestry.IAsset;
-import org.apache.tapestry.IBeanProvider;
-import org.apache.tapestry.IBinding;
-import org.apache.tapestry.IComponent;
-import org.apache.tapestry.IForm;
-import org.apache.tapestry.IMarkupWriter;
-import org.apache.tapestry.INamespace;
-import org.apache.tapestry.IPage;
-import org.apache.tapestry.IRender;
-import org.apache.tapestry.IRequestCycle;
+import org.apache.tapestry.*;
import org.apache.tapestry.engine.IPageLoader;
import org.apache.tapestry.internal.event.IComponentEventInvoker;
import org.apache.tapestry.json.JSONObject;
@@ -41,6 +25,8 @@
import org.apache.tapestry.spec.IContainedComponent;
import org.apache.tapestry.valid.IValidationDelegate;
+import java.util.*;
+
/**
* Mock object used by the {@link org.apache.tapestry.form.FormSupportTest}.
*
@@ -481,5 +467,9 @@
{
return null;
}
-
+
+ public boolean wasPrerendered(IComponent field)
+ {
+ return false;
+ }
}
Modified: tapestry/tapestry4/trunk/tapestry-framework/src/test/org/apache/tapestry/services/impl/DojoAjaxResponseBuilderTest.java
URL: http://svn.apache.org/viewvc/tapestry/tapestry4/trunk/tapestry-framework/src/test/org/apache/tapestry/services/impl/DojoAjaxResponseBuilderTest.java?view=diff&rev=557457&r1=557456&r2=557457
==============================================================================
--- tapestry/tapestry4/trunk/tapestry-framework/src/test/org/apache/tapestry/services/impl/DojoAjaxResponseBuilderTest.java (original)
+++ tapestry/tapestry4/trunk/tapestry-framework/src/test/org/apache/tapestry/services/impl/DojoAjaxResponseBuilderTest.java Wed Jul 18 19:21:09 2007
@@ -144,11 +144,8 @@
render.render(NullWriter.getSharedInstance(), cycle);
expect(comp1.getClientId()).andReturn("id1").anyTimes();
-
expect(comp1.peekClientId()).andReturn("id1").anyTimes();
-
expect(cycle.getInfrastructure()).andReturn(infra);
-
expect(infra.getOutputEncoding()).andReturn("UTF-8");
writer.printRaw("<?xml version=\"1.0\" encoding=\"UTF-8\"?>");
@@ -200,7 +197,7 @@
parts.add("id1");
DojoAjaxResponseBuilder builder =
- new DojoAjaxResponseBuilder(cycle, rlm, mrs, resp, errorPages, assetFactory, "", pageService);
+ new DojoAjaxResponseBuilder(cycle, rlm, mrs, resp, errorPages, assetFactory, "", pageService);
expect(page.getPageName()).andReturn("RequestPage").anyTimes();
expect(cycle.getParameter(ServiceConstants.PAGE)).andReturn("RequestPage").anyTimes();
@@ -265,7 +262,7 @@
private static final String NEWLINE = System.getProperty("line.separator");
public void test_Render_Response_Already_Started()
- throws IOException
+ throws IOException
{
IPage page = newMock(IPage.class);
checkOrder(page, false);
@@ -276,7 +273,7 @@
ILink link = newMock(ILink.class);
Location l = newLocation();
-
+
RequestLocaleManager rlm = newMock(RequestLocaleManager.class);
MarkupWriterSource mrs = newMock(MarkupWriterSource.class);
WebResponse resp = newMock(WebResponse.class);
@@ -303,11 +300,11 @@
expect(page.getLocation()).andReturn(l);
expect(cycle.getAttribute(TapestryUtils.PAGE_RENDER_SUPPORT_ATTRIBUTE)).andReturn(null);
cycle.setAttribute(eq(TapestryUtils.PAGE_RENDER_SUPPORT_ATTRIBUTE), isA(PageRenderSupport.class));
-
+
cycle.renderPage(builder);
// only done to simulate a caught internal stale link / other exception that would cause a new renderPage() request
expectLastCall().andThrow(new RedirectException("redir"));
-
+
cycle.renderPage(builder);
cycle.removeAttribute(TapestryUtils.PAGE_RENDER_SUPPORT_ATTRIBUTE);
@@ -322,7 +319,7 @@
IMarkupWriter fakeWriter = builder.getComponentWriter("fakeComp");
fakeWriter.beginEmpty("div");
fakeWriter.attribute("id", "fakeComp");
-
+
builder.renderResponse(cycle);
}
Modified: tapestry/tapestry4/trunk/tapestry-framework/src/test/org/apache/tapestry/valid/FieldLabelTest.java
URL: http://svn.apache.org/viewvc/tapestry/tapestry4/trunk/tapestry-framework/src/test/org/apache/tapestry/valid/FieldLabelTest.java?view=diff&rev=557457&r1=557456&r2=557457
==============================================================================
--- tapestry/tapestry4/trunk/tapestry-framework/src/test/org/apache/tapestry/valid/FieldLabelTest.java (original)
+++ tapestry/tapestry4/trunk/tapestry-framework/src/test/org/apache/tapestry/valid/FieldLabelTest.java Wed Jul 18 19:21:09 2007
@@ -14,9 +14,6 @@
package org.apache.tapestry.valid;
-import static org.easymock.EasyMock.checkOrder;
-import static org.easymock.EasyMock.expect;
-
import org.apache.hivemind.Location;
import org.apache.tapestry.BindingException;
import org.apache.tapestry.IForm;
@@ -24,11 +21,13 @@
import org.apache.tapestry.IRequestCycle;
import org.apache.tapestry.form.BaseFormComponentTestCase;
import org.apache.tapestry.form.IFormComponent;
+import static org.easymock.EasyMock.checkOrder;
+import static org.easymock.EasyMock.expect;
import org.testng.annotations.Test;
/**
* Tests for the {@link org.apache.tapestry.valid.FieldLabel} component.
- *
+ *
* @author Howard M. Lewis Ship
* @since 4.0
*/
@@ -39,7 +38,7 @@
{
IForm form = newMock(IForm.class);
checkOrder(form, false);
-
+
trainGetDelegate(delegate, form);
return form;
@@ -49,14 +48,13 @@
{
expect(form.getDelegate()).andReturn(delegate);
}
-
+
private IFormComponent newField(String displayName, String clientId)
{
IFormComponent field = newMock(IFormComponent.class);
checkOrder(field, false);
-
- trainGetDisplayName(field, displayName);
+ trainGetDisplayName(field, displayName);
trainGetClientId(clientId, field);
return field;
@@ -72,27 +70,24 @@
expect(field.getDisplayName()).andReturn(displayName).anyTimes();
}
- public void testRewinding()
+ public void test_Rewinding()
{
Location l = newLocation();
IMarkupWriter writer = newWriter();
IRequestCycle cycle = newCycle();
IForm form = newForm();
IFormComponent field = newField();
-
- FieldLabel fl = newInstance(FieldLabel.class,
- new Object[] { "field", field, "location", l, "prerender", true });
-
+
+ FieldLabel fl = newInstance(FieldLabel.class, "field", field,
+ "location", l, "prerender", true);
+
expect(cycle.renderStackPush(fl)).andReturn(fl);
-
trainGetForm(cycle, form);
-
form.prerenderField(writer, field, l);
-
trainIsRewinding(cycle, true);
expect(cycle.renderStackPop()).andReturn(fl);
-
+
replay();
fl.render(writer, cycle);
@@ -106,20 +101,20 @@
IForm form = newForm(delegate);
IMarkupWriter writer = newBufferWriter();
IRequestCycle cycle = newCycle();
-
- FieldLabel fl = newInstance(FieldLabel.class,
- new Object[] { "displayName", "FredFlintstone" });
-
+
+ FieldLabel fl = newInstance(FieldLabel.class,
+ new Object[] { "displayName", "FredFlintstone" });
+
expect(cycle.renderStackPush(fl)).andReturn(fl);
-
+
trainGetForm(cycle, form);
-
+
trainIsRewinding(cycle, false);
-
+
expect(cycle.renderStackPop()).andReturn(fl);
-
+
replay();
-
+
fl.render(writer, cycle);
assertBuffer("<label>{BEFORE-TEXT}FredFlintstone{AFTER-TEXT}</label>");
@@ -134,17 +129,16 @@
IMarkupWriter writer = newBufferWriter();
IRequestCycle cycle = newCycle();
- FieldLabel fl = newInstance(FieldLabel.class,
- new Object[] { "displayName", "<b>FredFlintstone</b>", "raw", Boolean.TRUE });
-
+ FieldLabel fl = newInstance(FieldLabel.class, "displayName", "<b>FredFlintstone</b>",
+ "raw", Boolean.TRUE);
+
expect(cycle.renderStackPush(fl)).andReturn(fl);
-
- trainGetForm(cycle, form);
+ trainGetForm(cycle, form);
trainIsRewinding(cycle, false);
-
+
expect(cycle.renderStackPop()).andReturn(fl);
-
+
replay();
fl.render(writer, cycle);
@@ -153,26 +147,24 @@
verify();
}
-
- public void testNoFieldOrDisplayName()
+
+ public void test_No_Field_Or_DisplayName()
{
IForm form = newForm();
IMarkupWriter writer = newWriter();
IRequestCycle cycle = newCycle();
-
- FieldLabel fl = newInstance(FieldLabel.class,
- new Object[] { "id", "label"});
-
+
+ FieldLabel fl = newInstance(FieldLabel.class, new Object[] {"id", "label"});
+
expect(cycle.renderStackPush(fl)).andReturn(fl);
-
+
trainGetForm(cycle, form);
-
trainIsRewinding(cycle, false);
-
+
expect(cycle.renderStackPop()).andReturn(fl);
-
+
replay();
-
+
try
{
fl.render(writer, cycle);
@@ -181,14 +173,14 @@
catch (BindingException ex)
{
assertEquals("Value for parameter 'field' in component "
- + "null is null, and a non-null value is required.",
- ex.getMessage());
+ + "null is null, and a non-null value is required.",
+ ex.getMessage());
}
verify();
}
-
- public void testDisplayNameFromField()
+
+ public void test_Display_Name_From_Field()
{
IValidationDelegate delegate = new MockDelegate();
@@ -197,24 +189,22 @@
IMarkupWriter writer = newBufferWriter();
IFormComponent field = newField("MyLabel", null);
Location l = newLocation();
-
+
IRequestCycle cycle = newCycle();
- FieldLabel fl = newInstance(FieldLabel.class,
- new Object[] { "location", l, "field", field, "prerender", true });
-
+ FieldLabel fl = newInstance(FieldLabel.class, "location", l,
+ "field", field, "prerender", true);
+
expect(cycle.renderStackPush(fl)).andReturn(fl);
-
- trainGetForm(cycle, form);
+ trainGetForm(cycle, form);
trainIsRewinding(cycle, false);
form.prerenderField(writer, field, l);
-
trainGetDelegate(form, delegate);
expect(cycle.renderStackPop()).andReturn(fl);
-
+
replay();
fl.render(writer, cycle);
@@ -223,8 +213,8 @@
verify();
}
-
- public void testPrerenderOff()
+
+ public void test_Prerender_Off()
{
IValidationDelegate delegate = new MockDelegate();
@@ -235,20 +225,17 @@
Location l = newLocation();
IRequestCycle cycle = newCycle();
-
- FieldLabel fl = newInstance(FieldLabel.class,
- new Object[] { "location", l, "field", field });
-
+
+ FieldLabel fl = newInstance(FieldLabel.class, "location", l, "field", field);
+
expect(cycle.renderStackPush(fl)).andReturn(fl);
-
- trainGetForm(cycle, form);
+ trainGetForm(cycle, form);
trainIsRewinding(cycle, false);
-
trainGetDelegate(form, delegate);
expect(cycle.renderStackPop()).andReturn(fl);
-
+
replay();
fl.render(writer, cycle);
@@ -263,30 +250,27 @@
IValidationDelegate delegate = new MockDelegate();
IForm form = newForm();
-
+
IMarkupWriter writer = newBufferWriter();
-
+
Location l = newLocation();
-
+
IRequestCycle cycle = newCycle();
-
+
IFormComponent field = newField("MyLabel", "clientId");
- FieldLabel fl = newInstance(FieldLabel.class,
- new Object[] { "location", l, "field", field, "prerender", true });
-
+ FieldLabel fl = newInstance(FieldLabel.class, "location", l,
+ "field", field, "prerender", true);
+
expect(cycle.renderStackPush(fl)).andReturn(fl);
-
+
trainGetForm(cycle, form);
-
form.prerenderField(writer, field, l);
-
trainIsRewinding(cycle, false);
-
trainGetDelegate(form, delegate);
-
+
expect(cycle.renderStackPop()).andReturn(fl);
-
+
replay();
fl.render(writer, cycle);
@@ -295,36 +279,31 @@
verify();
}
-
- public void testNoDisplayNameInField()
+
+ public void test_No_Display_Name_In_Field()
{
IForm form = newForm();
IMarkupWriter writer = newBufferWriter();
IFormComponent field = newField();
Location l = newLocation();
-
+
IRequestCycle cycle = newCycle();
-
- FieldLabel fl = newInstance(FieldLabel.class,
- new Object[] { "id", "label",
- "location", l,
- "field", field,
- "prerender", true });
-
+
+ FieldLabel fl = newInstance(FieldLabel.class, "id", "label",
+ "location", l,
+ "field", field,
+ "prerender", true);
+
expect(cycle.renderStackPush(fl)).andReturn(fl);
-
+
trainGetForm(cycle, form);
-
form.prerenderField(writer, field, l);
-
trainIsRewinding(cycle, false);
-
trainGetDisplayName(field, null);
-
trainGetExtendedId(field, "Fred/field");
-
+
expect(cycle.renderStackPop()).andReturn(fl);
-
+
replay();
try
@@ -335,8 +314,8 @@
catch (BindingException ex)
{
assertEquals(
- "Display name for null was not specified and was not provided by field Fred/field.",
- ex.getMessage());
+ "Display name for null was not specified and was not provided by field Fred/field.",
+ ex.getMessage());
}
verify();