You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@tapestry.apache.org by jk...@apache.org on 2006/08/13 05:25:49 UTC
svn commit: r431140 [1/2] - in /tapestry/tapestry4/trunk:
tapestry-examples/TimeTracker/src/java/org/apache/tapestry/timetracker/page/
tapestry-framework/src/java/org/apache/tapestry/
tapestry-framework/src/java/org/apache/tapestry/engine/ tapestry-fra...
Author: jkuhnert
Date: Sat Aug 12 20:25:47 2006
New Revision: 431140
URL: http://svn.apache.org/viewvc?rev=431140&view=rev
Log:
Implemented IRequestCycle component stacks to support handling parent/child relationships (as much as makes
sense with components at least) in a better way than the previous property method.
Modified:
tapestry/tapestry4/trunk/tapestry-examples/TimeTracker/src/java/org/apache/tapestry/timetracker/page/TaskEntryPage.java
tapestry/tapestry4/trunk/tapestry-framework/src/java/org/apache/tapestry/AbstractComponent.java
tapestry/tapestry4/trunk/tapestry-framework/src/java/org/apache/tapestry/AbstractPage.java
tapestry/tapestry4/trunk/tapestry-framework/src/java/org/apache/tapestry/IComponent.java
tapestry/tapestry4/trunk/tapestry-framework/src/java/org/apache/tapestry/IPage.java
tapestry/tapestry4/trunk/tapestry-framework/src/java/org/apache/tapestry/IRequestCycle.java
tapestry/tapestry4/trunk/tapestry-framework/src/java/org/apache/tapestry/engine/RequestCycle.java
tapestry/tapestry4/trunk/tapestry-framework/src/java/org/apache/tapestry/services/impl/ComponentTemplateLoaderLogic.java
tapestry/tapestry4/trunk/tapestry-framework/src/java/org/apache/tapestry/services/impl/DojoAjaxResponseBuilder.java
tapestry/tapestry4/trunk/tapestry-framework/src/java/org/apache/tapestry/services/impl/DojoAjaxResponseContributorImpl.java
tapestry/tapestry4/trunk/tapestry-framework/src/java/org/apache/tapestry/valid/FieldLabel.java
tapestry/tapestry4/trunk/tapestry-framework/src/js/tapestry/form.js
tapestry/tapestry4/trunk/tapestry-framework/src/test/org/apache/tapestry/components/TestAny.java
tapestry/tapestry4/trunk/tapestry-framework/src/test/org/apache/tapestry/components/TestConditional.java
tapestry/tapestry4/trunk/tapestry-framework/src/test/org/apache/tapestry/components/TestIfElse.java
tapestry/tapestry4/trunk/tapestry-framework/src/test/org/apache/tapestry/components/TestInsert.java
tapestry/tapestry4/trunk/tapestry-framework/src/test/org/apache/tapestry/components/TestInvokeListener.java
tapestry/tapestry4/trunk/tapestry-framework/src/test/org/apache/tapestry/components/TestRenderBlock.java
tapestry/tapestry4/trunk/tapestry-framework/src/test/org/apache/tapestry/dojo/form/TestAutocompleter.java
tapestry/tapestry4/trunk/tapestry-framework/src/test/org/apache/tapestry/form/FormTest.java
tapestry/tapestry4/trunk/tapestry-framework/src/test/org/apache/tapestry/form/TestCheckbox.java
tapestry/tapestry4/trunk/tapestry-framework/src/test/org/apache/tapestry/form/TestTextArea.java
tapestry/tapestry4/trunk/tapestry-framework/src/test/org/apache/tapestry/form/TestTextField.java
tapestry/tapestry4/trunk/tapestry-framework/src/test/org/apache/tapestry/html/TestInsertText.java
tapestry/tapestry4/trunk/tapestry-framework/src/test/org/apache/tapestry/html/TestRelation.java
tapestry/tapestry4/trunk/tapestry-framework/src/test/org/apache/tapestry/html/TestShell.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
tapestry/tapestry4/trunk/tapestry-framework/src/test/org/apache/tapestry/valid/TestValidField.java
Modified: tapestry/tapestry4/trunk/tapestry-examples/TimeTracker/src/java/org/apache/tapestry/timetracker/page/TaskEntryPage.java
URL: http://svn.apache.org/viewvc/tapestry/tapestry4/trunk/tapestry-examples/TimeTracker/src/java/org/apache/tapestry/timetracker/page/TaskEntryPage.java?rev=431140&r1=431139&r2=431140&view=diff
==============================================================================
--- tapestry/tapestry4/trunk/tapestry-examples/TimeTracker/src/java/org/apache/tapestry/timetracker/page/TaskEntryPage.java (original)
+++ tapestry/tapestry4/trunk/tapestry-examples/TimeTracker/src/java/org/apache/tapestry/timetracker/page/TaskEntryPage.java Sat Aug 12 20:25:47 2006
@@ -43,7 +43,7 @@
public abstract class TaskEntryPage extends BasePage
{
- @Component(bindings = { "model=projectModel", "value=selectedProject",
+ @Component(id = "projectChoose", bindings = { "model=projectModel", "value=selectedProject",
"displayName=message:choose.project", "filterOnChange=true",
"validators=validators:required"})
public abstract Autocompleter getProjectChoose();
Modified: tapestry/tapestry4/trunk/tapestry-framework/src/java/org/apache/tapestry/AbstractComponent.java
URL: http://svn.apache.org/viewvc/tapestry/tapestry4/trunk/tapestry-framework/src/java/org/apache/tapestry/AbstractComponent.java?rev=431140&r1=431139&r2=431140&view=diff
==============================================================================
--- tapestry/tapestry4/trunk/tapestry-framework/src/java/org/apache/tapestry/AbstractComponent.java (original)
+++ tapestry/tapestry4/trunk/tapestry-framework/src/java/org/apache/tapestry/AbstractComponent.java Sat Aug 12 20:25:47 2006
@@ -149,8 +149,6 @@
private IContainedComponent _containedComponent;
- /** @since 4.1 */
- private IComponent _parent;
public void addAsset(String name, IAsset asset)
{
@@ -173,7 +171,7 @@
if (_components == null)
_components = new HashMap(MAP_SIZE);
-
+
_components.put(component.getId(), component);
}
@@ -188,12 +186,6 @@
{
Defense.notNull(element, "element");
- // Check to set parent/child relationships on components where the container
- // logic doesn't always make sense.
-
- if (IComponent.class.isAssignableFrom(element.getClass()))
- ((IComponent)element).setParent(this);
-
// Should check the specification to see if this component
// allows body. Curently, this is checked by the component
// in render(), which is silly.
@@ -222,16 +214,6 @@
_body[_bodyCount++] = element;
}
-
- public IComponent getParent()
- {
- return _parent;
- }
-
- public void setParent(IComponent parent)
- {
- _parent = parent;
- }
/**
* Invokes {@link #finishLoad()}. Subclasses may overide as needed, but must invoke this
@@ -415,7 +397,7 @@
{
if (_page == null)
return null;
-
+
return _page.getPageName() + "/" + getIdPath();
}
@@ -432,17 +414,17 @@
_id = value;
}
-
+
public String getIdPath()
{
String containerIdPath;
-
+
if (_container == null)
throw new NullPointerException(Tapestry
.format("AbstractComponent.null-container", this));
-
+
containerIdPath = _container.getIdPath();
-
+
if (containerIdPath == null)
_idPath = _id;
else
@@ -525,7 +507,7 @@
public String toString()
{
StringBuffer buffer;
-
+
buffer = new StringBuffer(super.toString());
buffer.append('[');
@@ -682,6 +664,8 @@
{
_rendering = true;
+ cycle.renderStackPush(this);
+
prepareForRender(cycle);
renderComponent(writer, cycle);
@@ -697,6 +681,8 @@
// @since 4.1
_clientId = null;
+
+ cycle.renderStackPop();
}
}
Modified: tapestry/tapestry4/trunk/tapestry-framework/src/java/org/apache/tapestry/AbstractPage.java
URL: http://svn.apache.org/viewvc/tapestry/tapestry4/trunk/tapestry-framework/src/java/org/apache/tapestry/AbstractPage.java?rev=431140&r1=431139&r2=431140&view=diff
==============================================================================
--- tapestry/tapestry4/trunk/tapestry-framework/src/java/org/apache/tapestry/AbstractPage.java (original)
+++ tapestry/tapestry4/trunk/tapestry-framework/src/java/org/apache/tapestry/AbstractPage.java Sat Aug 12 20:25:47 2006
@@ -242,8 +242,6 @@
{
firePageBeginRender();
- beginResponse(cycle.isRewinding() ? NullWriter.getSharedInstance() : builder.getWriter(), cycle);
-
if (!cycle.isRewinding())
cycle.commitPageChanges();
@@ -280,16 +278,6 @@
Tapestry.addMethodInvocation(Tapestry.ABSTRACTPAGE_VALIDATE_METHOD_ID);
firePageValidate();
- }
-
- /**
- * Does nothing, subclasses may override as needed.
- *
- * @deprecated To be removed in 4.0. Implement {@link PageRenderListener}instead.
- */
-
- public void beginResponse(IMarkupWriter writer, IRequestCycle cycle)
- {
}
public IRequestCycle getRequestCycle()
Modified: tapestry/tapestry4/trunk/tapestry-framework/src/java/org/apache/tapestry/IComponent.java
URL: http://svn.apache.org/viewvc/tapestry/tapestry4/trunk/tapestry-framework/src/java/org/apache/tapestry/IComponent.java?rev=431140&r1=431139&r2=431140&view=diff
==============================================================================
--- tapestry/tapestry4/trunk/tapestry-framework/src/java/org/apache/tapestry/IComponent.java (original)
+++ tapestry/tapestry4/trunk/tapestry-framework/src/java/org/apache/tapestry/IComponent.java Sat Aug 12 20:25:47 2006
@@ -66,20 +66,6 @@
void addBody(IRender element);
/**
- * When {@link IComponent} instances are added to a {@link IComponent}s body, this method
- * should be called to tell the instance who encloses them.
- *
- * @param parent The component that contains this instance as a body element.
- */
- void setParent(IComponent parent);
-
- /**
- * If this instance has a containing parent returns that instance.
- * @return The containing parent, if any.
- */
- IComponent getParent();
-
- /**
* Returns the asset map for the component, which may be empty but will not be null.
* <p>
* The return value is unmodifiable.
Modified: tapestry/tapestry4/trunk/tapestry-framework/src/java/org/apache/tapestry/IPage.java
URL: http://svn.apache.org/viewvc/tapestry/tapestry4/trunk/tapestry-framework/src/java/org/apache/tapestry/IPage.java?rev=431140&r1=431139&r2=431140&view=diff
==============================================================================
--- tapestry/tapestry4/trunk/tapestry-framework/src/java/org/apache/tapestry/IPage.java (original)
+++ tapestry/tapestry4/trunk/tapestry-framework/src/java/org/apache/tapestry/IPage.java Sat Aug 12 20:25:47 2006
@@ -195,19 +195,6 @@
ContentType getResponseContentType();
/**
- * Invoked just before rendering of the page is initiated. This gives the page a chance to
- * perform any additional setup. One possible behavior is to set HTTP headers and cookies before
- * any output is generated.
- * <p>
- * The timing of this explicitly <em>before</em>
- * {@link org.apache.tapestry.engine.IPageRecorder page recorder}changes are committed.
- * Rendering occurs <em>after</em> the recorders are committed, when it is too late to make
- * changes to dynamic page properties.
- */
-
- void beginResponse(IMarkupWriter writer, IRequestCycle cycle);
-
- /**
* Returns the current {@link IRequestCycle}. This is set when the page is loaded (or obtained
* from the pool) and attached to the {@link IEngine engine}.
*/
Modified: tapestry/tapestry4/trunk/tapestry-framework/src/java/org/apache/tapestry/IRequestCycle.java
URL: http://svn.apache.org/viewvc/tapestry/tapestry4/trunk/tapestry-framework/src/java/org/apache/tapestry/IRequestCycle.java?rev=431140&r1=431139&r2=431140&view=diff
==============================================================================
--- tapestry/tapestry4/trunk/tapestry-framework/src/java/org/apache/tapestry/IRequestCycle.java (original)
+++ tapestry/tapestry4/trunk/tapestry-framework/src/java/org/apache/tapestry/IRequestCycle.java Sat Aug 12 20:25:47 2006
@@ -140,6 +140,51 @@
ResponseBuilder getResponseBuilder();
/**
+ * Tests if the render component chain is empty, meaning no components have
+ * been loaded onto the stack yet.
+ *
+ * @return True, if the current stack is empty.
+ */
+ boolean renderStackEmpty();
+
+ /**
+ * Looks at the object at the top of the render stack without removing
+ * the {@link IRender} from the stack.
+ *
+ * @return The last (parent) item added to the current render stack.
+ */
+ IRender renderStackPeek();
+
+ /**
+ * Removes the {@link IRender} at the top of the stack, if any.
+ *
+ * @return The removed {@link IRender}, if any.
+ */
+ IRender renderStackPop();
+
+ /**
+ * Pushes the specified render onto the current render stack.
+ *
+ * @param render The {@link IRender} object being pushed.
+ * @return The added {@link IRender}.
+ */
+ IRender renderStackPush(IRender render);
+
+ /**
+ * Returns the 1-based position where an object is on this stack. If the object
+ * o occurs as an item in this stack, this method returns the distance from the
+ * top of the stack of the occurrence nearest the top of the stack; the topmost
+ * item on the stack is considered to be at distance 1. The equals method is used
+ * to compare o to the items in this stack.
+ *
+ * @param render The {@link IRender} being searched for.
+ *
+ * @return the 1-based position from the top of the stack where the object is
+ * located; the return value -1 indicates that the object is not on the stack.
+ */
+ int renderStackSearch(IRender render);
+
+ /**
* Removes a previously stored attribute, if one with the given name exists.
*/
Modified: tapestry/tapestry4/trunk/tapestry-framework/src/java/org/apache/tapestry/engine/RequestCycle.java
URL: http://svn.apache.org/viewvc/tapestry/tapestry4/trunk/tapestry-framework/src/java/org/apache/tapestry/engine/RequestCycle.java?rev=431140&r1=431139&r2=431140&view=diff
==============================================================================
--- tapestry/tapestry4/trunk/tapestry-framework/src/java/org/apache/tapestry/engine/RequestCycle.java (original)
+++ tapestry/tapestry4/trunk/tapestry-framework/src/java/org/apache/tapestry/engine/RequestCycle.java Sat Aug 12 20:25:47 2006
@@ -17,6 +17,7 @@
import java.util.HashMap;
import java.util.Iterator;
import java.util.Map;
+import java.util.Stack;
import org.apache.commons.logging.Log;
import org.apache.commons.logging.LogFactory;
@@ -29,6 +30,7 @@
import org.apache.tapestry.IEngine;
import org.apache.tapestry.IForm;
import org.apache.tapestry.IPage;
+import org.apache.tapestry.IRender;
import org.apache.tapestry.IRequestCycle;
import org.apache.tapestry.RedirectException;
import org.apache.tapestry.RenderRewoundException;
@@ -120,6 +122,8 @@
private IdAllocator _idAllocator = new IdAllocator();
+ private Stack _renderStack = new Stack();
+
/**
* Standard constructor used to render a response page.
*
@@ -182,7 +186,8 @@
_loadedPages = null;
_pageRecorders = null;
-
+ _renderStack.clear();
+
}
public IEngineService getService()
@@ -283,8 +288,10 @@
public void setResponseBuilder(ResponseBuilder builder)
{
+ // TODO: What scenerio requires setting the builder after the fact?
//if (_responseBuilder != null)
// throw new IllegalArgumentException("A ResponseBuilder has already been set on this response.");
+
_responseBuilder = builder;
}
@@ -293,6 +300,55 @@
return _responseBuilder;
}
+ /**
+ * {@inheritDoc}
+ */
+ public boolean renderStackEmpty()
+ {
+ return _renderStack.isEmpty();
+ }
+
+ /**
+ * {@inheritDoc}
+ */
+ public IRender renderStackPeek()
+ {
+ if (_renderStack.size() < 1)
+ return null;
+
+ return (IRender)_renderStack.peek();
+ }
+
+ /**
+ * {@inheritDoc}
+ */
+ public IRender renderStackPop()
+ {
+ if (_renderStack.size() == 0)
+ return null;
+
+ return (IRender)_renderStack.pop();
+ }
+
+ /**
+ * {@inheritDoc}
+ */
+ public IRender renderStackPush(IRender render)
+ {
+ if (_renderStack.size() > 0 && _renderStack.peek() == render)
+ return render;
+
+ return (IRender)_renderStack.push(render);
+ }
+
+ /**
+ * {@inheritDoc}
+ */
+ public int renderStackSearch(IRender render)
+ {
+ return _renderStack.search(render);
+ }
+
public boolean isRewinding()
{
return _rewinding;
@@ -336,7 +392,7 @@
try
{
_page.renderPage(builder, this);
-
+
}
catch (ApplicationRuntimeException ex)
{
Modified: tapestry/tapestry4/trunk/tapestry-framework/src/java/org/apache/tapestry/services/impl/ComponentTemplateLoaderLogic.java
URL: http://svn.apache.org/viewvc/tapestry/tapestry4/trunk/tapestry-framework/src/java/org/apache/tapestry/services/impl/ComponentTemplateLoaderLogic.java?rev=431140&r1=431139&r2=431140&view=diff
==============================================================================
--- tapestry/tapestry4/trunk/tapestry-framework/src/java/org/apache/tapestry/services/impl/ComponentTemplateLoaderLogic.java (original)
+++ tapestry/tapestry4/trunk/tapestry-framework/src/java/org/apache/tapestry/services/impl/ComponentTemplateLoaderLogic.java Sat Aug 12 20:25:47 2006
@@ -153,7 +153,7 @@
if (!_activeComponent.getSpecification().getAllowBody())
throw createBodylessComponentException(_activeComponent);
-
+
_activeComponent.addBody(token);
}
@@ -190,7 +190,7 @@
if (!_activeComponent.getSpecification().getAllowBody())
throw createBodylessComponentException(_activeComponent);
-
+
_activeComponent.addBody(component);
}
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?rev=431140&r1=431139&r2=431140&view=diff
==============================================================================
--- 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 Sat Aug 12 20:25:47 2006
@@ -63,6 +63,8 @@
// Map of specialized writers, like scripts
private Map _writers = new HashMap();
+ private IRequestCycle _cycle;
+
/**
* Creates a builder with a pre-configured {@link IMarkupWriter}.
* Currently only used for testing.
@@ -73,10 +75,16 @@
* A set of string ids of the components that may have
* their responses rendered.
*/
- public DojoAjaxResponseBuilder(IMarkupWriter writer, List parts)
+ public DojoAjaxResponseBuilder(IRequestCycle cycle, IMarkupWriter writer, List parts)
{
+ Defense.notNull(cycle, "cycle");
+ Defense.notNull(writer, "writer");
+
_writer = writer;
- if (parts != null) _parts.addAll(parts);
+ _cycle = cycle;
+
+ if (parts != null)
+ _parts.addAll(parts);
}
/**
@@ -90,10 +98,14 @@
* @param webResponse
* Web response for output stream.
*/
- public DojoAjaxResponseBuilder(RequestLocaleManager localeManager,
+ public DojoAjaxResponseBuilder(IRequestCycle cycle,
+ RequestLocaleManager localeManager,
MarkupWriterSource markupWriterSource,
WebResponse webResponse, List errorPages)
{
+ Defense.notNull(cycle, "cycle");
+
+ _cycle = cycle;
_localeManager = localeManager;
_markupWriterSource = markupWriterSource;
_webResponse = webResponse;
@@ -470,9 +482,9 @@
if (_parts.contains(id))
return true;
- IComponent parent = target.getParent();
+ IComponent parent = (IComponent)_cycle.renderStackPeek();
- if (parent != null)
+ if (parent != null && parent != target)
return contains(parent);
return false;
Modified: tapestry/tapestry4/trunk/tapestry-framework/src/java/org/apache/tapestry/services/impl/DojoAjaxResponseContributorImpl.java
URL: http://svn.apache.org/viewvc/tapestry/tapestry4/trunk/tapestry-framework/src/java/org/apache/tapestry/services/impl/DojoAjaxResponseContributorImpl.java?rev=431140&r1=431139&r2=431140&view=diff
==============================================================================
--- tapestry/tapestry4/trunk/tapestry-framework/src/java/org/apache/tapestry/services/impl/DojoAjaxResponseContributorImpl.java (original)
+++ tapestry/tapestry4/trunk/tapestry-framework/src/java/org/apache/tapestry/services/impl/DojoAjaxResponseContributorImpl.java Sat Aug 12 20:25:47 2006
@@ -60,7 +60,8 @@
errorPages.add(_staleSessionPageName);
errorPages.add(_staleLinkPageName);
- return new DojoAjaxResponseBuilder(_localeManager, _markupWriterSource,
+ return new DojoAjaxResponseBuilder(cycle, _localeManager,
+ _markupWriterSource,
_webResponse, errorPages);
}
Modified: tapestry/tapestry4/trunk/tapestry-framework/src/java/org/apache/tapestry/valid/FieldLabel.java
URL: http://svn.apache.org/viewvc/tapestry/tapestry4/trunk/tapestry-framework/src/java/org/apache/tapestry/valid/FieldLabel.java?rev=431140&r1=431139&r2=431140&view=diff
==============================================================================
--- tapestry/tapestry4/trunk/tapestry-framework/src/java/org/apache/tapestry/valid/FieldLabel.java (original)
+++ tapestry/tapestry4/trunk/tapestry-framework/src/java/org/apache/tapestry/valid/FieldLabel.java Sat Aug 12 20:25:47 2006
@@ -62,9 +62,9 @@
{
if (field == null)
throw Tapestry.createRequiredParameterException(this, "field");
-
+
displayName = field.getDisplayName();
-
+
if (displayName == null)
throw new BindingException(ValidMessages.noDisplayName(this,
field), this, null, getBinding("field"), null);
@@ -73,16 +73,16 @@
IValidationDelegate delegate = form.getDelegate();
String id = field == null ? null : field.getClientId();
-
+
delegate.writeLabelPrefix(field, writer, cycle);
-
+
writer.begin("label");
if (id != null) writer.attribute("for", id);
-
+
delegate.writeLabelAttributes(writer, cycle, field);
renderInformalParameters(writer, cycle);
-
+
writer.print(displayName, getRaw());
writer.end();
Modified: tapestry/tapestry4/trunk/tapestry-framework/src/js/tapestry/form.js
URL: http://svn.apache.org/viewvc/tapestry/tapestry4/trunk/tapestry-framework/src/js/tapestry/form.js?rev=431140&r1=431139&r2=431140&view=diff
==============================================================================
--- tapestry/tapestry4/trunk/tapestry-framework/src/js/tapestry/form.js (original)
+++ tapestry/tapestry4/trunk/tapestry-framework/src/js/tapestry/form.js Sat Aug 12 20:25:47 2006
@@ -122,7 +122,7 @@
dojo.event.connect(form, "onsubmit", this, "onFormSubmit");
} else {
- dojo.log.warn("egisterForm(" + id + ") Form already registered.");
+ dojo.log.warn("registerForm(" + id + ") Form already registered.");
}
},
@@ -177,6 +177,7 @@
* not specified assumes true.
*/
setFormValidating:function(formId, validate){
+ dojo.log.warn("setFormValidating called with value " + validate);
if (this.forms[formId]){
this.forms[formId].validateForm = validate ? true : false;
}
@@ -193,10 +194,13 @@
}
var id=evt.target.getAttribute("id");
- if (!id) return;
+ if (!id) {
+ dojo.log.warn("Form had no id attribute.");
+ return;
+ }
var form = dojo.byId(id);
- if (form.submitmode.value
+ if (!dj_undef("value", form.submitmode)
&& (form.submitmode.value == "cancel" || form.submitmode.value == "refresh")) {
return;
}
Modified: tapestry/tapestry4/trunk/tapestry-framework/src/test/org/apache/tapestry/components/TestAny.java
URL: http://svn.apache.org/viewvc/tapestry/tapestry4/trunk/tapestry-framework/src/test/org/apache/tapestry/components/TestAny.java?rev=431140&r1=431139&r2=431140&view=diff
==============================================================================
--- tapestry/tapestry4/trunk/tapestry-framework/src/test/org/apache/tapestry/components/TestAny.java (original)
+++ tapestry/tapestry4/trunk/tapestry-framework/src/test/org/apache/tapestry/components/TestAny.java Sat Aug 12 20:25:47 2006
@@ -14,6 +14,7 @@
package org.apache.tapestry.components;
+import static org.easymock.EasyMock.expect;
import static org.testng.AssertJUnit.assertEquals;
import static org.testng.AssertJUnit.assertSame;
@@ -43,9 +44,13 @@
IRequestCycle cycle = newMock(IRequestCycle.class);
Location l = newLocation();
- replay();
-
Any any = newInstance(Any.class, new Object[] { "location", l });
+
+ expect(cycle.renderStackPush(any)).andReturn(any);
+
+ expect(cycle.renderStackPop()).andReturn(any);
+
+ replay();
try
{
@@ -67,18 +72,22 @@
IMarkupWriter writer = newWriter();
IRequestCycle cycle = newCycle(false, writer);
+ Any any = newInstance(Any.class,
+ new Object[] { "element", "span" });
+
+ expect(cycle.renderStackPush(any)).andReturn(any);
+
writer.begin("span");
IRender body = newRender();
body.render(writer, cycle);
writer.end("span");
-
+
+ expect(cycle.renderStackPop()).andReturn(any);
+
replay();
-
- Any any = newInstance(Any.class,
- new Object[] { "element", "span" });
-
+
any.addBody(body);
any.render(writer, cycle);
@@ -92,19 +101,23 @@
IRequestCycle cycle = newCycle(false, writer);
IRender body = newRender();
IBinding binding = newBinding("fred");
-
+
+ Any any = newInstance(Any.class, new Object[] { "element",
+ "span", "specification", new ComponentSpecification() });
+
+ expect(cycle.renderStackPush(any)).andReturn(any);
+
writer.begin("span");
writer.attribute("class", "fred");
body.render(writer, cycle);
writer.end("span");
-
+
+ expect(cycle.renderStackPop()).andReturn(any);
+
replay();
- Any any = newInstance(Any.class, new Object[] { "element",
- "span", "specification", new ComponentSpecification() });
-
any.addBody(body);
any.setBinding("class", binding);
@@ -118,13 +131,17 @@
IMarkupWriter writer = newWriter();
IRequestCycle cycle = newCycle(true, writer);
IRender body = newRender();
-
- body.render(writer, cycle);
-
- replay();
-
+
Any any = newInstance(Any.class,
new Object[] { "element", "span" });
+
+ expect(cycle.renderStackPush(any)).andReturn(any);
+
+ body.render(writer, cycle);
+
+ expect(cycle.renderStackPop()).andReturn(any);
+
+ replay();
any.addBody(body);
Modified: tapestry/tapestry4/trunk/tapestry-framework/src/test/org/apache/tapestry/components/TestConditional.java
URL: http://svn.apache.org/viewvc/tapestry/tapestry4/trunk/tapestry-framework/src/test/org/apache/tapestry/components/TestConditional.java?rev=431140&r1=431139&r2=431140&view=diff
==============================================================================
--- tapestry/tapestry4/trunk/tapestry-framework/src/test/org/apache/tapestry/components/TestConditional.java (original)
+++ tapestry/tapestry4/trunk/tapestry-framework/src/test/org/apache/tapestry/components/TestConditional.java Sat Aug 12 20:25:47 2006
@@ -14,11 +14,14 @@
package org.apache.tapestry.components;
+import static org.easymock.EasyMock.expect;
+
import org.apache.tapestry.BaseComponentTestCase;
import org.apache.tapestry.IBinding;
import org.apache.tapestry.IMarkupWriter;
import org.apache.tapestry.IRender;
import org.apache.tapestry.IRequestCycle;
+import org.apache.tapestry.services.ResponseBuilder;
import org.apache.tapestry.spec.IComponentSpecification;
import org.testng.annotations.Test;
@@ -34,7 +37,7 @@
private IRender newRender(IMarkupWriter writer, IRequestCycle cycle)
{
IRender render = newMock(IRender.class);
-
+
render.render(writer, cycle);
return render;
@@ -61,12 +64,17 @@
IMarkupWriter writer = newWriter();
IRequestCycle cycle = newCycle(false, writer);
IRender body = newRender(writer, cycle);
-
- replay();
-
- Conditional conditional = newInstance(Conditional.class, new Object[]
- { "condition", Boolean.TRUE });
+
+ Conditional conditional = newInstance(Conditional.class,
+ new Object[] { "condition", Boolean.TRUE });
+
+ expect(cycle.renderStackPush(conditional)).andReturn(conditional);
+
conditional.addBody(body);
+
+ expect(cycle.renderStackPop()).andReturn(conditional);
+
+ replay();
conditional.render(writer, cycle);
@@ -76,17 +84,30 @@
public void testIgnoreElementWhenRewinding()
{
IMarkupWriter writer = newWriter();
- IRequestCycle cycle = newCycle(true, writer);
- IRender body = newRender(writer, cycle);
-
+ IRequestCycle cycle = newCycle();
+ IRender body = newMock(IRender.class);
+
+ ResponseBuilder builder = newMock(ResponseBuilder.class);
+
+ Conditional conditional = newInstance(Conditional.class,
+ new Object[] { "condition", Boolean.TRUE, "element", "div" });
+
+ expect(cycle.renderStackPush(conditional)).andReturn(conditional);
+
+ expect(cycle.isRewinding()).andReturn(true);
+
+ expect(cycle.getResponseBuilder()).andReturn(builder);
+
+ builder.render(writer, body, cycle);
+
+ expect(cycle.renderStackPop()).andReturn(conditional);
+
replay();
-
- Conditional conditional = newInstance(Conditional.class, new Object[]
- { "condition", Boolean.TRUE, "element", "div" });
+
conditional.addBody(body);
-
+
conditional.render(writer, cycle);
-
+
verify();
}
@@ -95,11 +116,25 @@
IMarkupWriter writer = newWriter();
IRequestCycle cycle = newCycle(false, null);
- writer.begin("div");
-
IComponentSpecification spec = newSpec("informal", null);
IBinding informal = newBinding("informal-value");
+ IRender body = newRender(writer, cycle);
+
+ Conditional conditional = newInstance(Conditional.class,
+ new Object[] {
+ "condition", Boolean.TRUE,
+ "element", "div",
+ "specification", spec
+ });
+
+ conditional.addBody(body);
+ conditional.setBinding("informal", informal);
+
+ expect(cycle.renderStackPush(conditional)).andReturn(conditional);
+
+ writer.begin("div");
+
writer.attribute("informal", "informal-value");
// We've trained body, but there's no way to ensure,
@@ -110,16 +145,11 @@
trainResponseBuilder(cycle, writer);
- IRender body = newRender(writer, cycle);
-
writer.end("div");
+ expect(cycle.renderStackPop()).andReturn(conditional);
+
replay();
-
- Conditional conditional = newInstance(Conditional.class, new Object[]
- { "condition", Boolean.TRUE, "element", "div", "specification", spec });
- conditional.addBody(body);
- conditional.setBinding("informal", informal);
conditional.render(writer, cycle);
Modified: tapestry/tapestry4/trunk/tapestry-framework/src/test/org/apache/tapestry/components/TestIfElse.java
URL: http://svn.apache.org/viewvc/tapestry/tapestry4/trunk/tapestry-framework/src/test/org/apache/tapestry/components/TestIfElse.java?rev=431140&r1=431139&r2=431140&view=diff
==============================================================================
--- tapestry/tapestry4/trunk/tapestry-framework/src/test/org/apache/tapestry/components/TestIfElse.java (original)
+++ tapestry/tapestry4/trunk/tapestry-framework/src/test/org/apache/tapestry/components/TestIfElse.java Sat Aug 12 20:25:47 2006
@@ -54,6 +54,13 @@
IMarkupWriter writer = newWriter();
+ IfBean conditional = newInstance(IfBean.class,
+ new Object[] { "condition", Boolean.TRUE });
+
+ ElseBean reverse = (ElseBean) newInstance(ElseBean.class);
+
+ expect(cycle.renderStackPush(conditional)).andReturn(conditional);
+
expect(cycle.isRewinding()).andReturn(false);
expect(cycle.getAttribute(TapestryUtils.FORM_ATTRIBUTE)).andReturn(null);
@@ -64,19 +71,22 @@
cycle.setAttribute(IfBean.IF_VALUE_ATTRIBUTE, Boolean.TRUE);
+ expect(cycle.renderStackPop()).andReturn(conditional);
+
+ expect(cycle.renderStackPush(reverse)).andReturn(reverse);
+
expect(cycle.getAttribute(IfBean.IF_VALUE_ATTRIBUTE)).andReturn(Boolean.TRUE);
+ expect(cycle.renderStackPop()).andReturn(reverse);
+
IRender body2 = newRender();
replay();
- IfBean conditional = newInstance(IfBean.class, new Object[]
- { "condition", Boolean.TRUE });
conditional.addBody(body);
conditional.render(writer, cycle);
- ElseBean reverse = (ElseBean) newInstance(ElseBean.class);
reverse.addBody(body2);
reverse.render(writer, cycle);
@@ -88,12 +98,23 @@
IRequestCycle cycle = newCycle();
IMarkupWriter writer = newWriter();
+ IfBean conditional = newInstance(IfBean.class,
+ new Object[] { "condition", Boolean.FALSE });
+
+ ElseBean reverse = (ElseBean) newInstance(ElseBean.class);
+
+ expect(cycle.renderStackPush(conditional)).andReturn(conditional);
+
expect(cycle.isRewinding()).andReturn(false);
expect(cycle.getAttribute(TapestryUtils.FORM_ATTRIBUTE)).andReturn(null);
cycle.setAttribute(IfBean.IF_VALUE_ATTRIBUTE, Boolean.FALSE);
+ expect(cycle.renderStackPop()).andReturn(conditional);
+
+ expect(cycle.renderStackPush(reverse)).andReturn(reverse);
+
expect(cycle.getAttribute(IfBean.IF_VALUE_ATTRIBUTE)).andReturn(Boolean.FALSE);
expect(cycle.isRewinding()).andReturn(false);
@@ -102,15 +123,14 @@
IRender body = newRender();
IRender body2 = newRender(writer, cycle);
-
+
+ expect(cycle.renderStackPop()).andReturn(reverse);
+
replay();
-
- IfBean conditional = newInstance(IfBean.class, new Object[]
- { "condition", Boolean.FALSE });
+
conditional.addBody(body);
conditional.render(writer, cycle);
-
- ElseBean reverse = (ElseBean) newInstance(ElseBean.class);
+
reverse.addBody(body2);
reverse.render(writer, cycle);
@@ -123,14 +143,18 @@
IfBean conditional = newInstance(TestIfBean.class,
new Object[] { "condition", Boolean.TRUE });
-
+
+ ElseBean reverse = (ElseBean) newInstance(ElseBean.class);
+
IForm form = newMock(IForm.class);
IRequestCycle cycle = newCycle();
-
+
+ expect(cycle.renderStackPush(conditional)).andReturn(conditional);
+
expect(cycle.isRewinding()).andReturn(false);
expect(cycle.getAttribute(TapestryUtils.FORM_ATTRIBUTE)).andReturn(form);
-
+
expect(form.getElementId(conditional)).andReturn("If");
form.addHiddenValue("If", "T");
@@ -141,17 +165,21 @@
cycle.setAttribute(IfBean.IF_VALUE_ATTRIBUTE, Boolean.TRUE);
+ expect(cycle.renderStackPop()).andReturn(conditional);
+
+ expect(cycle.renderStackPush(reverse)).andReturn(reverse);
+
expect(cycle.getAttribute(IfBean.IF_VALUE_ATTRIBUTE)).andReturn(Boolean.TRUE);
IRender body2 = newRender();
-
+
+ expect(cycle.renderStackPop()).andReturn(reverse);
+
replay();
-
-
+
conditional.addBody(body);
conditional.render(writer, cycle);
-
- ElseBean reverse = (ElseBean) newInstance(ElseBean.class);
+
reverse.addBody(body2);
reverse.render(writer, cycle);
@@ -165,9 +193,13 @@
IfBean conditional = newInstance(TestIfBean.class,
new Object[] { "condition", Boolean.FALSE });
+ ElseBean reverse = (ElseBean) newInstance(ElseBean.class);
+
IRequestCycle cycle = newCycle();
IForm form = newMock(IForm.class);
+ expect(cycle.renderStackPush(conditional)).andReturn(conditional);
+
expect(cycle.isRewinding()).andReturn(false);
expect(cycle.getAttribute(TapestryUtils.FORM_ATTRIBUTE)).andReturn(form);
@@ -178,6 +210,10 @@
cycle.setAttribute(IfBean.IF_VALUE_ATTRIBUTE, Boolean.FALSE);
+ expect(cycle.renderStackPop()).andReturn(conditional);
+
+ expect(cycle.renderStackPush(reverse)).andReturn(reverse);
+
expect(cycle.getAttribute(IfBean.IF_VALUE_ATTRIBUTE)).andReturn(Boolean.FALSE);
expect(cycle.isRewinding()).andReturn(false);
@@ -187,13 +223,13 @@
IRender body = newRender();
IRender body2 = newRender(writer, cycle);
+ expect(cycle.renderStackPop()).andReturn(reverse);
+
replay();
-
conditional.addBody(body);
conditional.render(writer, cycle);
-
- ElseBean reverse = (ElseBean) newInstance(ElseBean.class);
+
reverse.addBody(body2);
reverse.render(writer, cycle);
@@ -207,9 +243,13 @@
IfBean conditional = newInstance(TestIfBean.class,
new Object[] { "condition", Boolean.TRUE, "element", "div" });
+ ElseBean reverse = (ElseBean) newInstance(ElseBean.class);
+
IForm form = newMock(IForm.class);
IRequestCycle cycle = newCycle();
-
+
+ expect(cycle.renderStackPush(conditional)).andReturn(conditional);
+
expect(cycle.isRewinding()).andReturn(true);
expect(cycle.getAttribute(TapestryUtils.FORM_ATTRIBUTE)).andReturn(form);
@@ -219,23 +259,28 @@
expect(form.getElementId(conditional)).andReturn("If");
expect(cycle.getParameter("If")).andReturn("T");
-
+
trainResponseBuilder(cycle, writer);
IRender body = newRender(writer, cycle);
cycle.setAttribute(IfBean.IF_VALUE_ATTRIBUTE, Boolean.TRUE);
-
+
+ expect(cycle.renderStackPop()).andReturn(conditional);
+
+ expect(cycle.renderStackPush(reverse)).andReturn(reverse);
+
expect(cycle.getAttribute(IfBean.IF_VALUE_ATTRIBUTE)).andReturn(Boolean.TRUE);
IRender body2 = newRender();
+ expect(cycle.renderStackPop()).andReturn(reverse);
+
replay();
conditional.addBody(body);
conditional.render(writer, cycle);
-
- ElseBean reverse = (ElseBean) newInstance(ElseBean.class);
+
reverse.addBody(body2);
reverse.render(writer, cycle);
@@ -249,9 +294,13 @@
IfBean conditional = newInstance(TestIfBean.class,
new Object[] { "condition", Boolean.TRUE, "element", "div" });
+ ElseBean reverse = (ElseBean) newInstance(ElseBean.class);
+
IForm form = newMock(IForm.class);
IRequestCycle cycle = newCycle();
-
+
+ expect(cycle.renderStackPush(conditional)).andReturn(conditional);
+
expect(cycle.isRewinding()).andReturn(true);
expect(cycle.getAttribute(TapestryUtils.FORM_ATTRIBUTE)).andReturn(form);
@@ -264,6 +313,10 @@
cycle.setAttribute(IfBean.IF_VALUE_ATTRIBUTE, Boolean.FALSE);
+ expect(cycle.renderStackPop()).andReturn(conditional);
+
+ expect(cycle.renderStackPush(reverse)).andReturn(reverse);
+
expect(cycle.getAttribute(IfBean.IF_VALUE_ATTRIBUTE)).andReturn(Boolean.FALSE);
expect(cycle.isRewinding()).andReturn(true);
@@ -272,13 +325,14 @@
IRender body = newRender();
IRender body2 = newRender(writer, cycle);
-
+
+ expect(cycle.renderStackPop()).andReturn(reverse);
+
replay();
conditional.addBody(body);
conditional.render(writer, cycle);
-
- ElseBean reverse = (ElseBean) newInstance(ElseBean.class);
+
reverse.addBody(body2);
reverse.render(writer, cycle);
@@ -294,6 +348,15 @@
IRequestCycle cycle = newCycle();
+ IfBean conditional = newInstance(TestIfBean.class,
+ new Object[] {
+ "condition", Boolean.TRUE,
+ "element", "div",
+ "specification", spec
+ });
+
+ expect(cycle.renderStackPush(conditional)).andReturn(conditional);
+
expect(cycle.isRewinding()).andReturn(false);
expect(cycle.getAttribute(TapestryUtils.FORM_ATTRIBUTE)).andReturn(null);
@@ -308,12 +371,11 @@
trainResponseBuilder(cycle, writer);
cycle.setAttribute(IfBean.IF_VALUE_ATTRIBUTE, Boolean.TRUE);
-
+
+ expect(cycle.renderStackPop()).andReturn(conditional);
replay();
-
- IfBean conditional = newInstance(TestIfBean.class, new Object[]
- { "condition", Boolean.TRUE, "element", "div", "specification", spec });
+
conditional.addBody(body);
conditional.setBinding("informal", informal);
Modified: tapestry/tapestry4/trunk/tapestry-framework/src/test/org/apache/tapestry/components/TestInsert.java
URL: http://svn.apache.org/viewvc/tapestry/tapestry4/trunk/tapestry-framework/src/test/org/apache/tapestry/components/TestInsert.java?rev=431140&r1=431139&r2=431140&view=diff
==============================================================================
--- tapestry/tapestry4/trunk/tapestry-framework/src/test/org/apache/tapestry/components/TestInsert.java (original)
+++ tapestry/tapestry4/trunk/tapestry-framework/src/test/org/apache/tapestry/components/TestInsert.java Sat Aug 12 20:25:47 2006
@@ -14,6 +14,7 @@
package org.apache.tapestry.components;
+import static org.easymock.EasyMock.expect;
import static org.testng.AssertJUnit.assertEquals;
import static org.testng.AssertJUnit.assertSame;
@@ -56,11 +57,15 @@
public void testRewinding()
{
- IRequestCycle cycle = newCycle(true, false);
-
- replay();
-
+ IRequestCycle cycle = newCycle(true);
+
Insert insert = (Insert) newInstance(Insert.class);
+
+ expect(cycle.renderStackPush(insert)).andReturn(insert);
+
+ expect(cycle.renderStackPop()).andReturn(insert);
+
+ replay();
insert.render(null, cycle);
@@ -69,13 +74,17 @@
public void testNullValue()
{
- IRequestCycle cycle = newCycle(false, false);
-
+ IRequestCycle cycle = newCycle(false);
+
+ Insert insert = newInstance(Insert.class,
+ new Object[] { "value", null });
+
+ expect(cycle.renderStackPush(insert)).andReturn(insert);
+
+ expect(cycle.renderStackPop()).andReturn(insert);
+
replay();
-
- Insert insert = newInstance(Insert.class, new Object[]
- { "value", null });
-
+
insert.render(null, cycle);
verify();
@@ -84,14 +93,18 @@
public void testNoFormat()
{
IMarkupWriter writer = newWriter();
- IRequestCycle cycle = newCycle(false, false);
+ IRequestCycle cycle = newCycle(false);
+
+ Insert insert = newInstance(Insert.class,
+ new Object[] { "value", new Integer(42) });
+
+ expect(cycle.renderStackPush(insert)).andReturn(insert);
writer.print("42", false);
- replay();
+ expect(cycle.renderStackPop()).andReturn(insert);
- Insert insert = newInstance(Insert.class, new Object[]
- { "value", new Integer(42) });
+ replay();
insert.render(writer, cycle);
@@ -101,18 +114,22 @@
public void testFormat()
{
IMarkupWriter writer = newWriter();
- IRequestCycle cycle = newCycle(false, false);
-
+ IRequestCycle cycle = newCycle(false);
+
Date date = new Date();
DateFormat format = DateFormat.getDateInstance();
String expected = format.format(date);
+ Insert insert = newInstance(Insert.class,
+ new Object[]{ "value", date, "format", format });
+
+ expect(cycle.renderStackPush(insert)).andReturn(insert);
+
writer.print(expected, false);
- replay();
+ expect(cycle.renderStackPop()).andReturn(insert);
- Insert insert = newInstance(Insert.class, new Object[]
- { "value", date, "format", format });
+ replay();
insert.render(writer, cycle);
@@ -127,15 +144,20 @@
Format format = DateFormat.getInstance();
- IRequestCycle cycle = newCycle(false, false);
+ Insert insert = newInstance(Insert.class,
+ new Object[] { "value", value, "format", format });
+
+ IRequestCycle cycle = newCycle(false);
IMarkupWriter writer = newWriter();
IPage page = newBasePage("Flintstone");
+ expect(cycle.renderStackPush(insert)).andReturn(insert);
+
+ expect(cycle.renderStackPop()).andReturn(insert);
+
replay();
- Insert insert = newInstance(Insert.class, new Object[]
- { "value", value, "format", format });
insert.setBinding("format", binding);
insert.setId("fred");
insert.setPage(page);
@@ -160,16 +182,20 @@
public void testRaw()
{
- IRequestCycle cycle = newCycle(false, false);
+ IRequestCycle cycle = newCycle(false);
IMarkupWriter writer = newWriter();
-
+
+ Insert insert = newInstance(Insert.class,
+ new Object[] { "value", new Integer(42), "raw", Boolean.TRUE });
+
+ expect(cycle.renderStackPush(insert)).andReturn(insert);
+
writer.print("42", true);
-
+
+ expect(cycle.renderStackPop()).andReturn(insert);
+
replay();
- Insert insert = newInstance(Insert.class, new Object[]
- { "value", new Integer(42), "raw", Boolean.TRUE });
-
insert.render(writer, cycle);
verify();
@@ -182,22 +208,30 @@
IRequestCycle cycle = newCycle(false, false);
IMarkupWriter writer = newWriter();
IComponentSpecification spec = newSpec("informal", null);
-
+
+ Insert insert = newInstance(Insert.class,
+ new Object[] {
+ "value", "42",
+ "specification", spec,
+ "styleClass", "paisley"
+ });
+
+ expect(cycle.renderStackPush(insert)).andReturn(insert);
+
writer.begin("span");
writer.attribute("class", "paisley");
writer.attribute("informal", "informal-value");
writer.print("42", false);
writer.end();
-
+
+ expect(cycle.renderStackPop()).andReturn(insert);
+
replay();
-
- Insert insert = newInstance(Insert.class, new Object[]
- { "value", "42", "specification", spec, "styleClass", "paisley" });
-
+
insert.setBinding("informal", informal);
insert.render(writer, cycle);
verify();
}
-}
\ No newline at end of file
+}
Modified: tapestry/tapestry4/trunk/tapestry-framework/src/test/org/apache/tapestry/components/TestInvokeListener.java
URL: http://svn.apache.org/viewvc/tapestry/tapestry4/trunk/tapestry-framework/src/test/org/apache/tapestry/components/TestInvokeListener.java?rev=431140&r1=431139&r2=431140&view=diff
==============================================================================
--- tapestry/tapestry4/trunk/tapestry-framework/src/test/org/apache/tapestry/components/TestInvokeListener.java (original)
+++ tapestry/tapestry4/trunk/tapestry-framework/src/test/org/apache/tapestry/components/TestInvokeListener.java Sat Aug 12 20:25:47 2006
@@ -14,6 +14,7 @@
package org.apache.tapestry.components;
+import static org.easymock.EasyMock.expect;
import static org.easymock.EasyMock.expectLastCall;
import static org.testng.AssertJUnit.assertSame;
@@ -52,14 +53,22 @@
ListenerInvoker invoker = newInvoker();
Object[] parameters = new Object[0];
-
- InvokeListener component = newInstance(InvokeListener.class, new Object[]
- { "listener", listener, "parameters", parameters, "listenerInvoker", invoker, });
-
+
+ InvokeListener component = newInstance(InvokeListener.class,
+ new Object[] {
+ "listener", listener,
+ "parameters", parameters,
+ "listenerInvoker", invoker,
+ });
+
+ expect(cycle.renderStackPush(component)).andReturn(component);
+
cycle.setListenerParameters(parameters);
invoker.invokeListener(listener, component, cycle);
cycle.setListenerParameters(null);
+ expect(cycle.renderStackPop()).andReturn(component);
+
replay();
component.render(writer, cycle);
@@ -71,7 +80,7 @@
{
IMarkupWriter writer = newWriter();
IRequestCycle cycle = newMock(IRequestCycle.class);
-
+
IActionListener listener = newListener();
ListenerInvoker invoker = newMock(ListenerInvoker.class);
@@ -79,17 +88,25 @@
Throwable t = new RuntimeException();
Object[] parameters = new Object[0];
-
- InvokeListener component = newInstance(InvokeListener.class, new Object[]
- { "listener", listener, "parameters", parameters, "listenerInvoker", invoker, });
-
+
+ InvokeListener component = newInstance(InvokeListener.class,
+ new Object[] {
+ "listener", listener,
+ "parameters", parameters,
+ "listenerInvoker", invoker,
+ });
+
+ expect(cycle.renderStackPush(component)).andReturn(component);
+
cycle.setListenerParameters(parameters);
invoker.invokeListener(listener, component, cycle);
expectLastCall().andThrow(t);
-
+
cycle.setListenerParameters(null);
-
+
+ expect(cycle.renderStackPop()).andReturn(component);
+
replay();
try
Modified: tapestry/tapestry4/trunk/tapestry-framework/src/test/org/apache/tapestry/components/TestRenderBlock.java
URL: http://svn.apache.org/viewvc/tapestry/tapestry4/trunk/tapestry-framework/src/test/org/apache/tapestry/components/TestRenderBlock.java?rev=431140&r1=431139&r2=431140&view=diff
==============================================================================
--- tapestry/tapestry4/trunk/tapestry-framework/src/test/org/apache/tapestry/components/TestRenderBlock.java (original)
+++ tapestry/tapestry4/trunk/tapestry-framework/src/test/org/apache/tapestry/components/TestRenderBlock.java Sat Aug 12 20:25:47 2006
@@ -14,6 +14,8 @@
package org.apache.tapestry.components;
+import static org.easymock.EasyMock.expect;
+
import org.apache.tapestry.BaseComponentTestCase;
import org.apache.tapestry.IMarkupWriter;
import org.apache.tapestry.IRequestCycle;
@@ -31,10 +33,14 @@
public void testNullBlock()
{
RenderBlock rb = (RenderBlock) newInstance(RenderBlock.class);
-
+
IMarkupWriter writer = newWriter();
IRequestCycle cycle = newMock(IRequestCycle.class);
-
+
+ expect(cycle.renderStackPush(rb)).andReturn(rb);
+
+ expect(cycle.renderStackPop()).andReturn(rb);
+
replay();
rb.render(writer, cycle);
@@ -46,18 +52,22 @@
{
Block b = (Block)newInstance(Block.class);
- RenderBlock rb = newInstance(RenderBlock.class, new Object[]
- { "block", b });
-
+ RenderBlock rb = newInstance(RenderBlock.class,
+ new Object[] { "block", b });
+
IMarkupWriter writer = newWriter();
IRequestCycle cycle = newMock(IRequestCycle.class);
-
+
+ expect(cycle.renderStackPush(rb)).andReturn(rb);
+
b.renderForComponent(writer, cycle, rb);
+ expect(cycle.renderStackPop()).andReturn(rb);
+
replay();
rb.render(writer, cycle);
verify();
}
-}
\ No newline at end of file
+}
Modified: tapestry/tapestry4/trunk/tapestry-framework/src/test/org/apache/tapestry/dojo/form/TestAutocompleter.java
URL: http://svn.apache.org/viewvc/tapestry/tapestry4/trunk/tapestry-framework/src/test/org/apache/tapestry/dojo/form/TestAutocompleter.java?rev=431140&r1=431139&r2=431140&view=diff
==============================================================================
--- tapestry/tapestry4/trunk/tapestry-framework/src/test/org/apache/tapestry/dojo/form/TestAutocompleter.java (original)
+++ tapestry/tapestry4/trunk/tapestry-framework/src/test/org/apache/tapestry/dojo/form/TestAutocompleter.java Sat Aug 12 20:25:47 2006
@@ -83,6 +83,8 @@
IValidationDelegate delegate = newDelegate();
+ expect(cycle.renderStackPush(component)).andReturn(component);
+
trainGetForm(cycle, form);
trainWasPrerendered(form, writer, component, false);
trainGetDelegate(form, delegate);
@@ -107,6 +109,8 @@
unreachable();
}
+ expect(cycle.renderStackPop()).andReturn(component);
+
replay();
component.render(writer, cycle);
@@ -127,6 +131,8 @@
IValidationDelegate delegate = newDelegate();
+ expect(cycle.renderStackPush(component)).andReturn(component);
+
trainGetForm(cycle, form);
trainWasPrerendered(form, writer, component, false);
trainGetDelegate(form, delegate);
@@ -137,6 +143,8 @@
trainIsRewinding(form, false);
trainIsRewinding(cycle, true);
+ expect(cycle.renderStackPop()).andReturn(component);
+
replay();
component.render(writer, cycle);
@@ -154,12 +162,6 @@
IForm form = newMock(IForm.class);
checkOrder(form, false);
- expect(form.getName()).andReturn("testform").anyTimes();
-
- form.setFormFieldUpdating(true);
-
- IMarkupWriter writer = newBufferWriter();
-
MockDelegate delegate = new MockDelegate();
IEngineService engine = newEngineService();
@@ -179,6 +181,14 @@
"dataSqueezer", ds
});
+ expect(cycle.renderStackPush(component)).andReturn(component);
+
+ expect(form.getName()).andReturn("testform").anyTimes();
+
+ form.setFormFieldUpdating(true);
+
+ IMarkupWriter writer = newBufferWriter();
+
DirectServiceParameter dsp =
new DirectServiceParameter(component);
@@ -207,6 +217,8 @@
expect(ds.squeeze(2)).andReturn("2p");
script.execute(eq(component), eq(cycle), eq(prs), isA(Map.class));
+
+ expect(cycle.renderStackPop()).andReturn(component);
replay();
Modified: tapestry/tapestry4/trunk/tapestry-framework/src/test/org/apache/tapestry/form/FormTest.java
URL: http://svn.apache.org/viewvc/tapestry/tapestry4/trunk/tapestry-framework/src/test/org/apache/tapestry/form/FormTest.java?rev=431140&r1=431139&r2=431140&view=diff
==============================================================================
--- tapestry/tapestry4/trunk/tapestry-framework/src/test/org/apache/tapestry/form/FormTest.java (original)
+++ tapestry/tapestry4/trunk/tapestry-framework/src/test/org/apache/tapestry/form/FormTest.java Sat Aug 12 20:25:47 2006
@@ -89,6 +89,8 @@
"formSupport", support, "listener", listener, "listenerInvoker", invoker,
"delegate", delegate });
+ expect(cycle.renderStackPush(form)).andReturn(form);
+
trainStoreForm(cycle, form);
trainIsRewinding(support, true);
@@ -102,7 +104,9 @@
TapestryUtils.removeForm(cycle);
delegate.setFormComponent(null);
-
+
+ expect(cycle.renderStackPop()).andReturn(form);
+
replay();
try
@@ -137,7 +141,9 @@
{ "id", "myform", "expectedWriter", writer, "expectedRequestCycle", cycle,
"formSupport", support, "response", response, "directService", direct, "method",
"post", "delegate", delegate });
-
+
+ expect(cycle.renderStackPush(form)).andReturn(form);
+
trainStoreForm(cycle, form);
trainIsRewinding(support, false);
@@ -158,6 +164,8 @@
TapestryUtils.removeForm(cycle);
delegate.setFormComponent(null);
+
+ expect(cycle.renderStackPop()).andReturn(form);
replay();
@@ -183,6 +191,8 @@
"formSupport", support, "response", response, "directService", direct, "method",
"post", "delegate", delegate, "scheme", "https", "port", new Integer(443) });
+ expect(cycle.renderStackPush(form)).andReturn(form);
+
trainStoreForm(cycle, form);
trainIsRewinding(support, false);
@@ -204,6 +214,8 @@
delegate.setFormComponent(null);
+ expect(cycle.renderStackPop()).andReturn(form);
+
replay();
form.render(writer, cycle);
@@ -341,6 +353,8 @@
"formSupport", support, "response", response, "directService", direct, "method",
"post", "delegate", delegate, "focus", false });
+ expect(cycle.renderStackPush(form)).andReturn(form);
+
trainStoreForm(cycle, form);
trainIsRewinding(support, false);
@@ -361,6 +375,8 @@
TapestryUtils.removeForm(cycle);
delegate.setFormComponent(null);
+
+ expect(cycle.renderStackPop()).andReturn(form);
replay();
Modified: tapestry/tapestry4/trunk/tapestry-framework/src/test/org/apache/tapestry/form/TestCheckbox.java
URL: http://svn.apache.org/viewvc/tapestry/tapestry4/trunk/tapestry-framework/src/test/org/apache/tapestry/form/TestCheckbox.java?rev=431140&r1=431139&r2=431140&view=diff
==============================================================================
--- tapestry/tapestry4/trunk/tapestry-framework/src/test/org/apache/tapestry/form/TestCheckbox.java (original)
+++ tapestry/tapestry4/trunk/tapestry-framework/src/test/org/apache/tapestry/form/TestCheckbox.java Sat Aug 12 20:25:47 2006
@@ -51,6 +51,8 @@
IValidationDelegate delegate = newDelegate();
+ expect(cycle.renderStackPush(cb)).andReturn(cb);
+
trainGetForm(cycle, form);
trainWasPrerendered(form, writer, cb, false);
trainGetDelegate(form, delegate);
@@ -78,6 +80,8 @@
expect(delegate.isInError()).andReturn(false);
delegate.registerForFocus(cb, ValidationConstants.NORMAL_FIELD);
+
+ expect(cycle.renderStackPop()).andReturn(cb);
replay();
Modified: tapestry/tapestry4/trunk/tapestry-framework/src/test/org/apache/tapestry/form/TestTextArea.java
URL: http://svn.apache.org/viewvc/tapestry/tapestry4/trunk/tapestry-framework/src/test/org/apache/tapestry/form/TestTextArea.java?rev=431140&r1=431139&r2=431140&view=diff
==============================================================================
--- tapestry/tapestry4/trunk/tapestry-framework/src/test/org/apache/tapestry/form/TestTextArea.java (original)
+++ tapestry/tapestry4/trunk/tapestry-framework/src/test/org/apache/tapestry/form/TestTextArea.java Sat Aug 12 20:25:47 2006
@@ -51,7 +51,9 @@
IMarkupWriter writer = newWriter();
IValidationDelegate delegate = newDelegate();
-
+
+ expect(cycle.renderStackPush(component)).andReturn(component);
+
trainGetForm(cycle, form);
trainWasPrerendered(form, writer, component, false);
trainGetDelegate(form, delegate);
@@ -74,6 +76,8 @@
unreachable();
}
+ expect(cycle.renderStackPop()).andReturn(component);
+
replay();
component.render(writer, cycle);
@@ -97,7 +101,9 @@
IMarkupWriter writer = newWriter();
IValidationDelegate delegate = newDelegate();
-
+
+ expect(cycle.renderStackPush(component)).andReturn(component);
+
trainGetForm(cycle, form);
trainWasPrerendered(form, writer, component, false);
trainGetDelegate(form, delegate);
@@ -123,6 +129,8 @@
trainGetDelegate(form, delegate);
delegate.record(exception);
+ expect(cycle.renderStackPop()).andReturn(component);
+
replay();
component.render(writer, cycle);
@@ -146,7 +154,9 @@
IMarkupWriter writer = newWriter();
IValidationDelegate delegate = newDelegate();
-
+
+ expect(cycle.renderStackPush(component)).andReturn(component);
+
trainGetForm(cycle, form);
trainWasPrerendered(form, writer, component, false);
trainGetDelegate(form, delegate);
@@ -175,6 +185,8 @@
trainGetDelegate(form, delegate);
delegate.record(exception);
+ expect(cycle.renderStackPop()).andReturn(component);
+
replay();
component.render(writer, cycle);
@@ -191,10 +203,14 @@
IForm form = newMock(IForm.class);
IMarkupWriter writer = newWriter();
-
+
+ expect(cycle.renderStackPush(component)).andReturn(component);
+
trainGetForm(cycle, form);
trainWasPrerendered(form, writer, component, true);
+ expect(cycle.renderStackPop()).andReturn(component);
+
replay();
component.render(writer, cycle);
@@ -211,7 +227,9 @@
IMarkupWriter writer = newWriter();
IValidationDelegate delegate = newDelegate();
-
+
+ expect(cycle.renderStackPush(component)).andReturn(component);
+
trainGetForm(cycle, form);
trainWasPrerendered(form, writer, component, false);
trainGetDelegate(form, delegate);
@@ -221,7 +239,9 @@
trainGetElementId(form, component, "barney");
trainIsRewinding(form, false);
trainIsRewinding(cycle, true);
-
+
+ expect(cycle.renderStackPop()).andReturn(component);
+
replay();
component.render(writer, cycle);
@@ -238,7 +258,9 @@
IMarkupWriter writer = newWriter();
IValidationDelegate delegate = newDelegate();
-
+
+ expect(cycle.renderStackPush(component)).andReturn(component);
+
trainGetForm(cycle, form);
trainWasPrerendered(form, writer, component, false);
trainGetDelegate(form, delegate);
@@ -247,7 +269,9 @@
trainGetElementId(form, component, "barney");
trainIsRewinding(form, true);
-
+
+ expect(cycle.renderStackPop()).andReturn(component);
+
replay();
component.render(writer, cycle);
@@ -271,7 +295,9 @@
TextArea component = newInstance(TextArea.class, new Object[]
{ "name", "fred", "translatedFieldSupport", tfs, "validatableFieldSupport", vfs, "value", " text area value " });
-
+
+ expect(cycle.renderStackPush(component)).andReturn(component);
+
trainGetForm(cycle, form);
trainWasPrerendered(form, writer, component, false);
trainGetDelegate(form, delegate);
@@ -300,6 +326,8 @@
trainGetDelegate(form, delegate);
+ expect(cycle.renderStackPop()).andReturn(component);
+
replay();
component.render(writer, cycle);
@@ -323,7 +351,9 @@
TextArea component = newInstance(TextArea.class, new Object[]
{ "name", "fred", "translatedFieldSupport", tfs, "validatableFieldSupport", vfs, "value", " text area value ", "disabled", Boolean.TRUE });
-
+
+ expect(cycle.renderStackPush(component)).andReturn(component);
+
trainGetForm(cycle, form);
trainWasPrerendered(form, writer, component, false);
trainGetDelegate(form, delegate);
@@ -350,6 +380,8 @@
trainGetDelegate(form, delegate);
+ expect(cycle.renderStackPop()).andReturn(component);
+
replay();
component.render(writer, cycle);
@@ -377,7 +409,9 @@
{ "name", "fred", "translatedFieldSupport", tfs, "validatableFieldSupport", vfs, "value", " text area value ", "specification", new ComponentSpecification() });
component.setBinding("informal", binding);
-
+
+ expect(cycle.renderStackPush(component)).andReturn(component);
+
trainGetForm(cycle, form);
trainWasPrerendered(form, writer, component, false);
trainGetDelegate(form, delegate);
@@ -396,7 +430,9 @@
tfs.renderContributions(component, writer, cycle);
vfs.renderContributions(component, writer, cycle);
-
+
+ expect(cycle.renderStackPop()).andReturn(component);
+
replay();
component.render(writer, cycle);
@@ -420,7 +456,9 @@
TextArea component = newInstance(TextArea.class, new Object[]
{ "name", "fred", "translatedFieldSupport", tfs, "validatableFieldSupport", vfs });
-
+
+ expect(cycle.renderStackPush(component)).andReturn(component);
+
trainGetForm(cycle, form);
trainWasPrerendered(form, writer, component, false);
trainGetDelegate(form, delegate);
@@ -446,6 +484,8 @@
vfs.renderContributions(component, writer, cycle);
trainGetDelegate(form, delegate);
+
+ expect(cycle.renderStackPop()).andReturn(component);
replay();
Modified: tapestry/tapestry4/trunk/tapestry-framework/src/test/org/apache/tapestry/form/TestTextField.java
URL: http://svn.apache.org/viewvc/tapestry/tapestry4/trunk/tapestry-framework/src/test/org/apache/tapestry/form/TestTextField.java?rev=431140&r1=431139&r2=431140&view=diff
==============================================================================
--- tapestry/tapestry4/trunk/tapestry-framework/src/test/org/apache/tapestry/form/TestTextField.java (original)
+++ tapestry/tapestry4/trunk/tapestry-framework/src/test/org/apache/tapestry/form/TestTextField.java Sat Aug 12 20:25:47 2006
@@ -51,9 +51,11 @@
IForm form = newMock(IForm.class);
IMarkupWriter writer = newWriter();
-
+
IValidationDelegate delegate = newDelegate();
+ expect(cycle.renderStackPush(component)).andReturn(component);
+
trainGetForm(cycle, form);
trainWasPrerendered(form, writer, component, false);
trainGetDelegate(form, delegate);
@@ -78,6 +80,8 @@
unreachable();
}
+ expect(cycle.renderStackPop()).andReturn(component);
+
replay();
component.render(writer, cycle);
@@ -102,7 +106,9 @@
IMarkupWriter writer = newWriter();
IValidationDelegate delegate = newDelegate();
-
+
+ expect(cycle.renderStackPush(component)).andReturn(component);
+
trainGetForm(cycle, form);
trainWasPrerendered(form, writer, component, false);
trainGetDelegate(form, delegate);
@@ -128,6 +134,8 @@
trainGetDelegate(form, delegate);
delegate.record(exception);
+ expect(cycle.renderStackPop()).andReturn(component);
+
replay();
component.render(writer, cycle);
@@ -152,7 +160,9 @@
IMarkupWriter writer = newWriter();
IValidationDelegate delegate = newDelegate();
-
+
+ expect(cycle.renderStackPush(component)).andReturn(component);
+
trainGetForm(cycle, form);
trainWasPrerendered(form, writer, component, false);
trainGetDelegate(form, delegate);
@@ -183,6 +193,8 @@
trainGetDelegate(form, delegate);
delegate.record(exception);
+ expect(cycle.renderStackPop()).andReturn(component);
+
replay();
component.render(writer, cycle);
@@ -199,12 +211,16 @@
IRequestCycle cycle = newCycle();
IForm form = newMock(IForm.class);
-
+
IMarkupWriter writer = newWriter();
+ expect(cycle.renderStackPush(component)).andReturn(component);
+
trainGetForm(cycle, form);
trainWasPrerendered(form, writer, component, true);
+ expect(cycle.renderStackPop()).andReturn(component);
+
replay();
component.render(writer, cycle);
@@ -223,7 +239,9 @@
IMarkupWriter writer = newWriter();
IValidationDelegate delegate = newDelegate();
-
+
+ expect(cycle.renderStackPush(component)).andReturn(component);
+
trainGetForm(cycle, form);
trainWasPrerendered(form, writer, component, false);
trainGetDelegate(form, delegate);
@@ -233,7 +251,9 @@
trainGetElementId(form, component, "barney");
trainIsRewinding(form, false);
trainIsRewinding(cycle, true);
-
+
+ expect(cycle.renderStackPop()).andReturn(component);
+
replay();
component.render(writer, cycle);
@@ -252,7 +272,9 @@
IMarkupWriter writer = newWriter();
IValidationDelegate delegate = newDelegate();
-
+
+ expect(cycle.renderStackPush(component)).andReturn(component);
+
trainGetForm(cycle, form);
trainWasPrerendered(form, writer, component, false);
trainGetDelegate(form, delegate);
@@ -261,7 +283,9 @@
trainGetElementId(form, component, "barney");
trainIsRewinding(form, true);
-
+
+ expect(cycle.renderStackPop()).andReturn(component);
+
replay();
component.render(writer, cycle);
@@ -286,7 +310,9 @@
TextField component = newInstance(TextField.class, new Object[]
{ "name", "fred", "translatedFieldSupport", tfs, "validatableFieldSupport", vfs, "value", new Integer(10) });
-
+
+ expect(cycle.renderStackPush(component)).andReturn(component);
+
trainGetForm(cycle, form);
trainWasPrerendered(form, writer, component, false);
trainGetDelegate(form, delegate);
@@ -313,6 +339,8 @@
trainGetDelegate(form, delegate);
+ expect(cycle.renderStackPop()).andReturn(component);
+
replay();
component.render(writer, cycle);
@@ -337,7 +365,9 @@
TextField component = newInstance(TextField.class, new Object[]
{ "name", "fred", "translatedFieldSupport", tfs, "validatableFieldSupport", vfs, "value", new Integer(10), "hidden", Boolean.TRUE });
-
+
+ expect(cycle.renderStackPush(component)).andReturn(component);
+
trainGetForm(cycle, form);
trainWasPrerendered(form, writer, component, false);
trainGetDelegate(form, delegate);
@@ -366,6 +396,8 @@
trainGetDelegate(form, delegate);
+ expect(cycle.renderStackPop()).andReturn(component);
+
replay();
component.render(writer, cycle);
@@ -390,7 +422,9 @@
TextField component = newInstance(TextField.class, new Object[]
{ "name", "fred", "translatedFieldSupport", tfs, "validatableFieldSupport", vfs, "value", new Integer(10), "disabled", Boolean.TRUE });
-
+
+ expect(cycle.renderStackPush(component)).andReturn(component);
+
trainGetForm(cycle, form);
trainWasPrerendered(form, writer, component, false);
trainGetDelegate(form, delegate);
@@ -419,6 +453,8 @@
trainGetDelegate(form, delegate);
+ expect(cycle.renderStackPop()).andReturn(component);
+
replay();
component.render(writer, cycle);
@@ -445,9 +481,11 @@
TextField component = newInstance(TextField.class, new Object[]
{ "name", "fred", "translatedFieldSupport", tfs, "validatableFieldSupport", vfs, "value", new Integer(10), "specification", new ComponentSpecification() });
-
+
component.setBinding("informal", binding);
-
+
+ expect(cycle.renderStackPush(component)).andReturn(component);
+
trainGetForm(cycle, form);
trainWasPrerendered(form, writer, component, false);
trainGetDelegate(form, delegate);
@@ -465,6 +503,8 @@
tfs.renderContributions(component, writer, cycle);
vfs.renderContributions(component, writer, cycle);
+ expect(cycle.renderStackPop()).andReturn(component);
+
replay();
component.render(writer, cycle);
@@ -489,7 +529,9 @@
TextField component = newInstance(TextField.class, new Object[]
{ "name", "fred", "translatedFieldSupport", tfs, "validatableFieldSupport", vfs });
-
+
+ expect(cycle.renderStackPush(component)).andReturn(component);
+
trainGetForm(cycle, form);
trainWasPrerendered(form, writer, component, false);
trainGetDelegate(form, delegate);
@@ -516,6 +558,8 @@
trainGetDelegate(form, delegate);
+ expect(cycle.renderStackPop()).andReturn(component);
+
replay();
component.render(writer, cycle);
@@ -531,7 +575,7 @@
TextField field = newInstance(TextField.class, new Object[]
{ "validatableFieldSupport", support, });
-
+
expect(support.isRequired(field)).andReturn(true);
replay();
Modified: tapestry/tapestry4/trunk/tapestry-framework/src/test/org/apache/tapestry/html/TestInsertText.java
URL: http://svn.apache.org/viewvc/tapestry/tapestry4/trunk/tapestry-framework/src/test/org/apache/tapestry/html/TestInsertText.java?rev=431140&r1=431139&r2=431140&view=diff
==============================================================================
--- tapestry/tapestry4/trunk/tapestry-framework/src/test/org/apache/tapestry/html/TestInsertText.java (original)
+++ tapestry/tapestry4/trunk/tapestry-framework/src/test/org/apache/tapestry/html/TestInsertText.java Sat Aug 12 20:25:47 2006
@@ -14,6 +14,8 @@
package org.apache.tapestry.html;
+import static org.easymock.EasyMock.*;
+
import org.apache.tapestry.BaseComponentTestCase;
import org.apache.tapestry.IMarkupWriter;
import org.apache.tapestry.IRequestCycle;
@@ -31,11 +33,15 @@
public void testRewinding()
{
IMarkupWriter writer = newWriter();
- IRequestCycle cycle = newCycle(true, false);
-
- replay();
-
+ IRequestCycle cycle = newCycle(true);
+
InsertText component = (InsertText) newInstance(InsertText.class);
+
+ expect(cycle.renderStackPush(component)).andReturn(component);
+
+ expect(cycle.renderStackPop()).andReturn(component);
+
+ replay();
component.render(writer, cycle);
@@ -45,11 +51,15 @@
public void testRenderNull()
{
IMarkupWriter writer = newWriter();
- IRequestCycle cycle = newCycle(false, false);
-
- replay();
+ IRequestCycle cycle = newCycle(false);
InsertText component = (InsertText) newInstance(InsertText.class);
+
+ expect(cycle.renderStackPush(component)).andReturn(component);
+
+ expect(cycle.renderStackPop()).andReturn(component);
+
+ replay();
component.render(writer, cycle);
@@ -59,21 +69,25 @@
public void testRenderBreaks()
{
IMarkupWriter writer = newWriter();
- IRequestCycle cycle = newCycle(false, false);
+ IRequestCycle cycle = newCycle(false);
+
+ InsertText component = (InsertText) newInstance(
+ InsertText.class,
+ "value",
+ "Now is the time\nfor all good men\nto come to the aid of their Tapestry.");
+ expect(cycle.renderStackPush(component)).andReturn(component);
+
writer.print("Now is the time", false);
writer.beginEmpty("br");
writer.print("for all good men", false);
writer.beginEmpty("br");
writer.print("to come to the aid of their Tapestry.", false);
-
+
+ expect(cycle.renderStackPop()).andReturn(component);
+
replay();
- InsertText component = (InsertText) newInstance(
- InsertText.class,
- "value",
- "Now is the time\nfor all good men\nto come to the aid of their Tapestry.");
-
component.finishLoad(cycle, null, null);
component.render(writer, cycle);
@@ -83,8 +97,14 @@
public void testRenderParas()
{
IMarkupWriter writer = newWriter();
- IRequestCycle cycle = newCycle(false, false);
+ IRequestCycle cycle = newCycle(false);
+ InsertText component = newInstance(InsertText.class,
+ new Object[] { "mode", InsertTextMode.PARAGRAPH, "value",
+ "Now is the time\nfor all good men\nto come to the aid of their Tapestry." });
+
+ expect(cycle.renderStackPush(component)).andReturn(component);
+
writer.begin("p");
writer.print("Now is the time", false);
writer.end();
@@ -96,13 +116,11 @@
writer.begin("p");
writer.print("to come to the aid of their Tapestry.", false);
writer.end();
-
+
+ expect(cycle.renderStackPop()).andReturn(component);
+
replay();
-
- InsertText component = newInstance(InsertText.class, new Object[]
- { "mode", InsertTextMode.PARAGRAPH, "value",
- "Now is the time\nfor all good men\nto come to the aid of their Tapestry." });
-
+
component.render(writer, cycle);
verify();
@@ -111,16 +129,20 @@
public void testRenderRaw()
{
IMarkupWriter writer = newWriter();
- IRequestCycle cycle = newCycle(false, false);
+ IRequestCycle cycle = newCycle(false);
+ InsertText component = newInstance(InsertText.class,
+ new Object[] { "value", "output\n<b>raw</b>", "raw", Boolean.TRUE });
+
+ expect(cycle.renderStackPush(component)).andReturn(component);
+
writer.print("output", true);
writer.beginEmpty("br");
writer.print("<b>raw</b>", true);
-
+
+ expect(cycle.renderStackPop()).andReturn(component);
+
replay();
-
- InsertText component = newInstance(InsertText.class, new Object[]
- { "value", "output\n<b>raw</b>", "raw", Boolean.TRUE });
component.finishLoad(cycle, null, null);
component.render(writer, cycle);
Modified: tapestry/tapestry4/trunk/tapestry-framework/src/test/org/apache/tapestry/html/TestRelation.java
URL: http://svn.apache.org/viewvc/tapestry/tapestry4/trunk/tapestry-framework/src/test/org/apache/tapestry/html/TestRelation.java?rev=431140&r1=431139&r2=431140&view=diff
==============================================================================
--- tapestry/tapestry4/trunk/tapestry-framework/src/test/org/apache/tapestry/html/TestRelation.java (original)
+++ tapestry/tapestry4/trunk/tapestry-framework/src/test/org/apache/tapestry/html/TestRelation.java Sat Aug 12 20:25:47 2006
@@ -41,11 +41,14 @@
public void testRewinding()
{
IMarkupWriter writer = newWriter();
-
IRequestCycle cycle = newCycle(true);
Relation relation = newInstance(Relation.class, null);
-
+
+ expect(cycle.renderStackPush(relation)).andReturn(relation);
+
+ expect(cycle.renderStackPop()).andReturn(relation);
+
replay();
relation.render(writer, cycle);
@@ -59,25 +62,27 @@
public void testShellMissing()
{
IMarkupWriter writer = newWriter();
-
IRequestCycle cycle = newCycle(false);
-
Location componentLocation = newMock(Location.class);
Relation relation = newInstance(Relation.class,
new Object[] {"location", componentLocation});
+ expect(cycle.renderStackPush(relation)).andReturn(relation);
+
trainGetShellFromCycle(cycle, null);
+ expect(cycle.renderStackPop()).andReturn(relation);
+
replay();
-
- try
- {
+
+ try {
+
relation.render(writer, cycle);
unreachable();
- }
- catch (ApplicationRuntimeException ex)
- {
+
+ } catch (ApplicationRuntimeException ex) {
+
assertEquals(ex.getLocation(), componentLocation);
}
@@ -90,27 +95,29 @@
public void testInvalidHrefParameter()
{
IMarkupWriter writer = newWriter();
-
IRequestCycle cycle = newCycle(false);
-
Location componentLocation = newMock(Location.class);
- Relation relation = newInstance(Relation.class, new Object[]
- {"location", componentLocation, "href", null});
+ Relation relation = newInstance(Relation.class,
+ new Object[] {"location", componentLocation, "href", null});
Shell shell = newInstance(Shell.class, null);
+ expect(cycle.renderStackPush(relation)).andReturn(relation);
+
trainGetShellFromCycle(cycle, shell);
+ expect(cycle.renderStackPop()).andReturn(relation);
+
replay();
-
- try
- {
+
+ try {
+
relation.render(writer, cycle);
unreachable();
- }
- catch (ApplicationRuntimeException ex)
- {
+
+ } catch (ApplicationRuntimeException ex) {
+
assertEquals(ex.getLocation(), componentLocation);
}
@@ -121,4 +128,4 @@
{
expect(cycle.getAttribute(Shell.SHELL_ATTRIBUTE)).andReturn(shell);
}
-}
\ No newline at end of file
+}
Modified: tapestry/tapestry4/trunk/tapestry-framework/src/test/org/apache/tapestry/html/TestShell.java
URL: http://svn.apache.org/viewvc/tapestry/tapestry4/trunk/tapestry-framework/src/test/org/apache/tapestry/html/TestShell.java?rev=431140&r1=431139&r2=431140&view=diff
==============================================================================
--- tapestry/tapestry4/trunk/tapestry-framework/src/test/org/apache/tapestry/html/TestShell.java (original)
+++ tapestry/tapestry4/trunk/tapestry-framework/src/test/org/apache/tapestry/html/TestShell.java Sat Aug 12 20:25:47 2006
@@ -45,19 +45,27 @@
{
IMarkupWriter writer = newWriter();
NestedMarkupWriter nested = newNestedWriter();
-
+
IRequestCycle cycle = newCycle(true, writer);
IRender body = newRender();
-
+
Shell shell = newInstance(Shell.class, null);
+
+ expect(cycle.renderStackPush(shell)).andReturn(shell);
+
shell.addBody(body);
trainStoreShellInCycle(cycle, shell);
trainGetNestedWriter(writer, nested);
+
body.render(nested, cycle);
+
nested.close();
+
trainRemoveShellFromCycle(cycle);
-
+
+ expect(cycle.renderStackPop()).andReturn(shell);
+
replay();
shell.render(writer, cycle);