You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@tapestry.apache.org by hl...@apache.org on 2005/11/12 19:22:36 UTC
svn commit: r332810 [1/2] - in /jakarta/tapestry/trunk: ./
contrib/src/java/org/apache/tapestry/contrib/ajax/
examples/Workbench/src/java/org/apache/tapestry/workbench/chart/
framework/src/descriptor/META-INF/
framework/src/java/org/apache/tapestry/ass...
Author: hlship
Date: Sat Nov 12 10:22:15 2005
New Revision: 332810
URL: http://svn.apache.org/viewcvs?rev=332810&view=rev
Log:
TAPESTRY-720: Tapestry should validate that all engine services provide a non-null service parameter
Added:
jakarta/tapestry/trunk/framework/src/test/org/apache/tapestry/engine/ActionServiceTest.java
- copied, changed from r332478, jakarta/tapestry/trunk/framework/src/test/org/apache/tapestry/engine/TestActionService.java
jakarta/tapestry/trunk/framework/src/test/org/apache/tapestry/engine/DirectServiceTest.java
- copied, changed from r332478, jakarta/tapestry/trunk/framework/src/test/org/apache/tapestry/engine/TestDirectService.java
jakarta/tapestry/trunk/framework/src/test/org/apache/tapestry/engine/ExternalServiceTest.java
- copied, changed from r332478, jakarta/tapestry/trunk/framework/src/test/org/apache/tapestry/engine/TestExternalService.java
jakarta/tapestry/trunk/framework/src/test/org/apache/tapestry/engine/PageServiceTest.java
- copied, changed from r332478, jakarta/tapestry/trunk/framework/src/test/org/apache/tapestry/engine/TestPageService.java
jakarta/tapestry/trunk/framework/src/test/org/apache/tapestry/engine/ResetServiceTest.java
- copied, changed from r332478, jakarta/tapestry/trunk/framework/src/test/org/apache/tapestry/engine/TestResetService.java
jakarta/tapestry/trunk/framework/src/test/org/apache/tapestry/engine/RestartServiceTest.java
- copied, changed from r332478, jakarta/tapestry/trunk/framework/src/test/org/apache/tapestry/engine/TestRestartService.java
jakarta/tapestry/trunk/framework/src/test/org/apache/tapestry/services/impl/LinkFactoryTest.java
- copied, changed from r332478, jakarta/tapestry/trunk/framework/src/test/org/apache/tapestry/services/impl/TestLinkFactory.java
Removed:
jakarta/tapestry/trunk/framework/src/test/org/apache/tapestry/engine/TestActionService.java
jakarta/tapestry/trunk/framework/src/test/org/apache/tapestry/engine/TestDirectService.java
jakarta/tapestry/trunk/framework/src/test/org/apache/tapestry/engine/TestExternalService.java
jakarta/tapestry/trunk/framework/src/test/org/apache/tapestry/engine/TestPageService.java
jakarta/tapestry/trunk/framework/src/test/org/apache/tapestry/engine/TestResetService.java
jakarta/tapestry/trunk/framework/src/test/org/apache/tapestry/engine/TestRestartService.java
jakarta/tapestry/trunk/framework/src/test/org/apache/tapestry/services/impl/TestLinkFactory.java
Modified:
jakarta/tapestry/trunk/contrib/src/java/org/apache/tapestry/contrib/ajax/XTile.java
jakarta/tapestry/trunk/contrib/src/java/org/apache/tapestry/contrib/ajax/XTile.jwc
jakarta/tapestry/trunk/contrib/src/java/org/apache/tapestry/contrib/ajax/XTileService.java
jakarta/tapestry/trunk/examples/Workbench/src/java/org/apache/tapestry/workbench/chart/ChartService.java
jakarta/tapestry/trunk/framework/src/descriptor/META-INF/tapestry.services.xml
jakarta/tapestry/trunk/framework/src/java/org/apache/tapestry/asset/AssetService.java
jakarta/tapestry/trunk/framework/src/java/org/apache/tapestry/engine/ActionService.java
jakarta/tapestry/trunk/framework/src/java/org/apache/tapestry/engine/DirectService.java
jakarta/tapestry/trunk/framework/src/java/org/apache/tapestry/engine/ExternalService.java
jakarta/tapestry/trunk/framework/src/java/org/apache/tapestry/engine/HomeService.java
jakarta/tapestry/trunk/framework/src/java/org/apache/tapestry/engine/PageService.java
jakarta/tapestry/trunk/framework/src/java/org/apache/tapestry/engine/ResetService.java
jakarta/tapestry/trunk/framework/src/java/org/apache/tapestry/engine/RestartService.java
jakarta/tapestry/trunk/framework/src/java/org/apache/tapestry/services/LinkFactory.java
jakarta/tapestry/trunk/framework/src/java/org/apache/tapestry/services/impl/ImplMessages.java
jakarta/tapestry/trunk/framework/src/java/org/apache/tapestry/services/impl/ImplStrings.properties
jakarta/tapestry/trunk/framework/src/java/org/apache/tapestry/services/impl/LinkFactoryImpl.java
jakarta/tapestry/trunk/framework/src/test/org/apache/tapestry/engine/ServiceTestCase.java
jakarta/tapestry/trunk/portlet/src/java/org/apache/tapestry/portlet/PortletHomeService.java
jakarta/tapestry/trunk/portlet/src/java/org/apache/tapestry/portlet/PortletLinkFactoryImpl.java
jakarta/tapestry/trunk/portlet/src/test/org/apache/tapestry/portlet/TestPortletHomeService.java
jakarta/tapestry/trunk/src/documentation/content/xdocs/index.xml
jakarta/tapestry/trunk/status.xml
Modified: jakarta/tapestry/trunk/contrib/src/java/org/apache/tapestry/contrib/ajax/XTile.java
URL: http://svn.apache.org/viewcvs/jakarta/tapestry/trunk/contrib/src/java/org/apache/tapestry/contrib/ajax/XTile.java?rev=332810&r1=332809&r2=332810&view=diff
==============================================================================
--- jakarta/tapestry/trunk/contrib/src/java/org/apache/tapestry/contrib/ajax/XTile.java (original)
+++ jakarta/tapestry/trunk/contrib/src/java/org/apache/tapestry/contrib/ajax/XTile.java Sat Nov 12 10:22:15 2005
@@ -21,9 +21,8 @@
import org.apache.tapestry.IActionListener;
import org.apache.tapestry.IRequestCycle;
import org.apache.tapestry.Tapestry;
+import org.apache.tapestry.engine.IEngineService;
import org.apache.tapestry.engine.ILink;
-import org.apache.tapestry.services.LinkFactory;
-import org.apache.tapestry.services.ServiceConstants;
/**
* @author mindbridge
@@ -32,42 +31,43 @@
*/
public abstract class XTile extends BaseComponent implements IXTile
{
- public abstract LinkFactory getLinkFactory();
-
public abstract IActionListener getListener();
+
public abstract String getSendName();
+
public abstract String getReceiveName();
+
public abstract String getErrorName();
+
public abstract boolean getDisableCaching();
- public void trigger(IRequestCycle cycle) {
+ // Injected
+
+ public abstract IEngineService getService();
+
+ public void trigger(IRequestCycle cycle)
+ {
IActionListener listener = getListener();
if (listener == null)
- throw Tapestry.createRequiredParameterException(this, "listener");
+ throw Tapestry.createRequiredParameterException(this, "listener");
listener.actionTriggered(this, cycle);
- }
-
- public Map getScriptSymbols()
- {
- Map ret = new HashMap();
- ret.put("sendFunctionName", getSendName());
- ret.put("receiveFunctionName", getReceiveName());
- ret.put("errorFunctionName", getErrorName());
- ret.put("disableCaching", getDisableCaching() ? "true" : null);
-
- Map parameters = new HashMap();
- parameters.put(ServiceConstants.SERVICE, XTileService.SERVICE_NAME);
- parameters.put(ServiceConstants.PAGE, getPage().getPageName());
- parameters.put(ServiceConstants.COMPONENT, getIdPath());
-
- ILink link = getLinkFactory().constructLink(false,
- parameters, false);
-
- ret.put("url", link.getURL());
-
- return ret;
- }
+ }
+
+ public Map getScriptSymbols()
+ {
+ ILink link = getService().getLink(false, this);
+
+ Map result = new HashMap();
+
+ result.put("sendFunctionName", getSendName());
+ result.put("receiveFunctionName", getReceiveName());
+ result.put("errorFunctionName", getErrorName());
+ result.put("disableCaching", getDisableCaching() ? "true" : null);
+ result.put("url", link.getURL());
+
+ return result;
+ }
}
Modified: jakarta/tapestry/trunk/contrib/src/java/org/apache/tapestry/contrib/ajax/XTile.jwc
URL: http://svn.apache.org/viewcvs/jakarta/tapestry/trunk/contrib/src/java/org/apache/tapestry/contrib/ajax/XTile.jwc?rev=332810&r1=332809&r2=332810&view=diff
==============================================================================
--- jakarta/tapestry/trunk/contrib/src/java/org/apache/tapestry/contrib/ajax/XTile.jwc (original)
+++ jakarta/tapestry/trunk/contrib/src/java/org/apache/tapestry/contrib/ajax/XTile.jwc Sat Nov 12 10:22:15 2005
@@ -69,6 +69,6 @@
<binding name="symbols" value="scriptSymbols"/>
</component>
- <inject property="linkFactory" object="infrastructure:linkFactory"/>
+ <inject property="service" object="engine-service:xtile"/>
</component-specification>
Modified: jakarta/tapestry/trunk/contrib/src/java/org/apache/tapestry/contrib/ajax/XTileService.java
URL: http://svn.apache.org/viewcvs/jakarta/tapestry/trunk/contrib/src/java/org/apache/tapestry/contrib/ajax/XTileService.java?rev=332810&r1=332809&r2=332810&view=diff
==============================================================================
--- jakarta/tapestry/trunk/contrib/src/java/org/apache/tapestry/contrib/ajax/XTileService.java (original)
+++ jakarta/tapestry/trunk/contrib/src/java/org/apache/tapestry/contrib/ajax/XTileService.java Sat Nov 12 10:22:15 2005
@@ -17,6 +17,8 @@
import java.io.IOException;
import java.io.OutputStream;
import java.io.StringWriter;
+import java.util.HashMap;
+import java.util.Map;
import javax.xml.parsers.DocumentBuilder;
import javax.xml.parsers.DocumentBuilderFactory;
@@ -27,6 +29,7 @@
import javax.xml.transform.stream.StreamResult;
import org.apache.hivemind.ApplicationRuntimeException;
+import org.apache.hivemind.util.Defense;
import org.apache.tapestry.IComponent;
import org.apache.tapestry.IPage;
import org.apache.tapestry.IRequestCycle;
@@ -34,6 +37,7 @@
import org.apache.tapestry.engine.ILink;
import org.apache.tapestry.error.RequestExceptionReporter;
import org.apache.tapestry.request.RequestContext;
+import org.apache.tapestry.services.LinkFactory;
import org.apache.tapestry.services.ServiceConstants;
import org.apache.tapestry.util.ContentType;
import org.apache.tapestry.web.WebResponse;
@@ -45,90 +49,108 @@
* @author Paul Green
* @since 4.0
*/
-public class XTileService implements IEngineService
+public class XTileService implements IEngineService
{
public static final String SERVICE_NAME = "xtile";
private RequestExceptionReporter _exceptionReporter;
+
private WebResponse _response;
- public String getName()
- {
- return SERVICE_NAME;
- }
-
- public ILink getLink(boolean post, Object parameter) {
- throw new UnsupportedOperationException();
- }
-
- public void service(IRequestCycle cycle) throws IOException {
+ private LinkFactory _linkFactory;
+
+ public String getName()
+ {
+ return SERVICE_NAME;
+ }
+
+ public ILink getLink(boolean post, Object parameter)
+ {
+ Defense.isAssignable(parameter, IComponent.class, "parameter");
+
+ IComponent component = (IComponent) parameter;
+
+ Map parameters = new HashMap();
+ parameters.put(ServiceConstants.PAGE, component.getPage().getPageName());
+ parameters.put(ServiceConstants.COMPONENT, component.getIdPath());
+
+ return _linkFactory.constructLink(this, false, parameters, false);
+ }
+
+ public void service(IRequestCycle cycle) throws IOException
+ {
String pageName = cycle.getParameter(ServiceConstants.PAGE);
String componentId = cycle.getParameter(ServiceConstants.COMPONENT);
-
+
IPage componentPage = cycle.getPage(pageName);
IComponent component = componentPage.getNestedComponent(componentId);
-
+
if (!(component instanceof IXTile))
- throw new ApplicationRuntimeException("Incorrect component type: was " + component.getClass() + " but must be " + IXTile.class,
- component, null, null);
-
+ throw new ApplicationRuntimeException("Incorrect component type: was "
+ + component.getClass() + " but must be " + IXTile.class, component, null, null);
+
IXTile xtile = (IXTile) component;
-
+
// do not squeeze on input
- RequestContext context = cycle.getRequestContext();
+ RequestContext context = cycle.getRequestContext();
String[] params = context.getParameters(ServiceConstants.PARAMETER);
cycle.setServiceParameters(params);
xtile.trigger(cycle);
-
+
// do not squeeze on output either
Object[] args = cycle.getServiceParameters();
String strArgs = generateOutputString(args);
- if (strArgs != null) {
- OutputStream output = _response.getOutputStream(new ContentType("text/xml"));
- output.write(strArgs.getBytes("utf-8"));
+ if (strArgs != null)
+ {
+ OutputStream output = _response.getOutputStream(new ContentType("text/xml"));
+ output.write(strArgs.getBytes("utf-8"));
}
- }
-
- protected String generateOutputString(Object[] args)
- {
- try {
- DocumentBuilderFactory dbf = DocumentBuilderFactory.newInstance();
- dbf.setValidating(false);
- DocumentBuilder db = dbf.newDocumentBuilder();
- Document doc = db.newDocument();
-
- Node rootNode = doc.createElement("data");
- doc.appendChild(rootNode);
-
- if (args != null) {
- for (int i = 0; i < args.length; i++) {
- Object value = args[i];
-
- Node spNode = doc.createElement("sp");
- rootNode.appendChild(spNode);
-
- Node valueNode = doc.createTextNode(value.toString());
- spNode.appendChild(valueNode);
- }
- }
-
- TransformerFactory trf = TransformerFactory.newInstance();
- Transformer tr = trf.newTransformer();
- tr.setOutputProperty(OutputKeys.INDENT, "yes");
-
- DOMSource domSrc = new DOMSource(doc);
- StringWriter writer = new StringWriter();
- StreamResult res = new StreamResult(writer);
- tr.transform(domSrc, res);
- writer.close();
-
- return writer.toString();
- }
- catch (Exception e) {
- _exceptionReporter.reportRequestException("Cannot generate XML", e);
- return null;
- }
- }
+ }
+
+ protected String generateOutputString(Object[] args)
+ {
+ try
+ {
+ DocumentBuilderFactory dbf = DocumentBuilderFactory.newInstance();
+ dbf.setValidating(false);
+ DocumentBuilder db = dbf.newDocumentBuilder();
+ Document doc = db.newDocument();
+
+ Node rootNode = doc.createElement("data");
+ doc.appendChild(rootNode);
+
+ if (args != null)
+ {
+ for (int i = 0; i < args.length; i++)
+ {
+ Object value = args[i];
+
+ Node spNode = doc.createElement("sp");
+ rootNode.appendChild(spNode);
+
+ Node valueNode = doc.createTextNode(value.toString());
+ spNode.appendChild(valueNode);
+ }
+ }
+
+ TransformerFactory trf = TransformerFactory.newInstance();
+ Transformer tr = trf.newTransformer();
+ tr.setOutputProperty(OutputKeys.INDENT, "yes");
+
+ DOMSource domSrc = new DOMSource(doc);
+ StringWriter writer = new StringWriter();
+ StreamResult res = new StreamResult(writer);
+ tr.transform(domSrc, res);
+ writer.close();
+
+ return writer.toString();
+ }
+ catch (Exception e)
+ {
+ _exceptionReporter.reportRequestException("Cannot generate XML", e);
+ return null;
+ }
+ }
public void setExceptionReporter(RequestExceptionReporter exceptionReporter)
{
@@ -139,11 +161,17 @@
{
_response = response;
}
-
- public static void main(String[] args) {
- XTileService objService = new XTileService();
- System.out.println(objService.generateOutputString(new Object[] { "test > work", new Integer(20) }));
- }
+ public static void main(String[] args)
+ {
+ XTileService objService = new XTileService();
+ System.out.println(objService.generateOutputString(new Object[]
+ { "test > work", new Integer(20) }));
+ }
+
+ public void setLinkFactory(LinkFactory linkFactory)
+ {
+ _linkFactory = linkFactory;
+ }
}
Modified: jakarta/tapestry/trunk/examples/Workbench/src/java/org/apache/tapestry/workbench/chart/ChartService.java
URL: http://svn.apache.org/viewcvs/jakarta/tapestry/trunk/examples/Workbench/src/java/org/apache/tapestry/workbench/chart/ChartService.java?rev=332810&r1=332809&r2=332810&view=diff
==============================================================================
--- jakarta/tapestry/trunk/examples/Workbench/src/java/org/apache/tapestry/workbench/chart/ChartService.java (original)
+++ jakarta/tapestry/trunk/examples/Workbench/src/java/org/apache/tapestry/workbench/chart/ChartService.java Sat Nov 12 10:22:15 2005
@@ -67,7 +67,7 @@
parameters.put(ServiceConstants.PAGE, component.getPage().getPageName());
parameters.put(ServiceConstants.COMPONENT, component.getIdPath());
- return _linkFactory.constructLink(false, parameters, true);
+ return _linkFactory.constructLink(this, false, parameters, true);
}
public void service(IRequestCycle cycle) throws IOException
Modified: jakarta/tapestry/trunk/framework/src/descriptor/META-INF/tapestry.services.xml
URL: http://svn.apache.org/viewcvs/jakarta/tapestry/trunk/framework/src/descriptor/META-INF/tapestry.services.xml?rev=332810&r1=332809&r2=332810&view=diff
==============================================================================
--- jakarta/tapestry/trunk/framework/src/descriptor/META-INF/tapestry.services.xml (original)
+++ jakarta/tapestry/trunk/framework/src/descriptor/META-INF/tapestry.services.xml Sat Nov 12 10:22:15 2005
@@ -84,7 +84,6 @@
<service-point id="Restart" interface="IEngineService">
<invoke-factory>
<construct class="RestartService">
- <set-service property="builder" service-id="tapestry.request.AbsoluteURLBuilder"/>
<set-service property="request" service-id="tapestry.globals.HttpServletRequest"/>
<set-service property="response" service-id="tapestry.globals.HttpServletResponse"/>
<set-object property="servletPath" value="app-property:org.apache.tapestry.servlet-path"/>
Modified: jakarta/tapestry/trunk/framework/src/java/org/apache/tapestry/asset/AssetService.java
URL: http://svn.apache.org/viewcvs/jakarta/tapestry/trunk/framework/src/java/org/apache/tapestry/asset/AssetService.java?rev=332810&r1=332809&r2=332810&view=diff
==============================================================================
--- jakarta/tapestry/trunk/framework/src/java/org/apache/tapestry/asset/AssetService.java (original)
+++ jakarta/tapestry/trunk/framework/src/java/org/apache/tapestry/asset/AssetService.java Sat Nov 12 10:22:15 2005
@@ -156,7 +156,7 @@
// Service is stateless, which is the exception to the rule.
- return _linkFactory.constructLink(post, parameters, false);
+ return _linkFactory.constructLink(this, post, parameters, false);
}
public String getName()
Modified: jakarta/tapestry/trunk/framework/src/java/org/apache/tapestry/engine/ActionService.java
URL: http://svn.apache.org/viewcvs/jakarta/tapestry/trunk/framework/src/java/org/apache/tapestry/engine/ActionService.java?rev=332810&r1=332809&r2=332810&view=diff
==============================================================================
--- jakarta/tapestry/trunk/framework/src/java/org/apache/tapestry/engine/ActionService.java (original)
+++ jakarta/tapestry/trunk/framework/src/java/org/apache/tapestry/engine/ActionService.java Sat Nov 12 10:22:15 2005
@@ -73,7 +73,6 @@
boolean stateful = _request.getSession(false) != null;
- parameters.put(ServiceConstants.SERVICE, getName());
parameters.put(ServiceConstants.COMPONENT, component.getIdPath());
parameters.put(ServiceConstants.PAGE, activePage.getPageName());
parameters.put(ServiceConstants.CONTAINER, activePage == componentPage ? null
@@ -81,7 +80,7 @@
parameters.put(ACTION, asp.getActionId());
parameters.put(ServiceConstants.SESSION, stateful ? "T" : null);
- return _linkFactory.constructLink(post, parameters, true);
+ return _linkFactory.constructLink(this, post, parameters, true);
}
public void service(IRequestCycle cycle) throws IOException
Modified: jakarta/tapestry/trunk/framework/src/java/org/apache/tapestry/engine/DirectService.java
URL: http://svn.apache.org/viewcvs/jakarta/tapestry/trunk/framework/src/java/org/apache/tapestry/engine/DirectService.java?rev=332810&r1=332809&r2=332810&view=diff
==============================================================================
--- jakarta/tapestry/trunk/framework/src/java/org/apache/tapestry/engine/DirectService.java (original)
+++ jakarta/tapestry/trunk/framework/src/java/org/apache/tapestry/engine/DirectService.java Sat Nov 12 10:22:15 2005
@@ -77,7 +77,6 @@
boolean stateful = _request.getSession(false) != null;
- parameters.put(ServiceConstants.SERVICE, getName());
parameters.put(ServiceConstants.PAGE, activePage.getPageName());
parameters.put(ServiceConstants.COMPONENT, component.getIdPath());
parameters.put(ServiceConstants.CONTAINER, componentPage == activePage ? null
@@ -85,7 +84,7 @@
parameters.put(ServiceConstants.SESSION, stateful ? "T" : null);
parameters.put(ServiceConstants.PARAMETER, dsp.getServiceParameters());
- return _linkFactory.constructLink(post, parameters, true);
+ return _linkFactory.constructLink(this, post, parameters, true);
}
public void service(IRequestCycle cycle) throws IOException
Modified: jakarta/tapestry/trunk/framework/src/java/org/apache/tapestry/engine/ExternalService.java
URL: http://svn.apache.org/viewcvs/jakarta/tapestry/trunk/framework/src/java/org/apache/tapestry/engine/ExternalService.java?rev=332810&r1=332809&r2=332810&view=diff
==============================================================================
--- jakarta/tapestry/trunk/framework/src/java/org/apache/tapestry/engine/ExternalService.java (original)
+++ jakarta/tapestry/trunk/framework/src/java/org/apache/tapestry/engine/ExternalService.java Sat Nov 12 10:22:15 2005
@@ -126,11 +126,11 @@
ExternalServiceParameter esp = (ExternalServiceParameter) parameter;
Map parameters = new HashMap();
- parameters.put(ServiceConstants.SERVICE, getName());
+
parameters.put(ServiceConstants.PAGE, esp.getPageName());
parameters.put(ServiceConstants.PARAMETER, esp.getServiceParameters());
- return _linkFactory.constructLink(post, parameters, true);
+ return _linkFactory.constructLink(this, post, parameters, true);
}
public void service(IRequestCycle cycle) throws IOException
Modified: jakarta/tapestry/trunk/framework/src/java/org/apache/tapestry/engine/HomeService.java
URL: http://svn.apache.org/viewcvs/jakarta/tapestry/trunk/framework/src/java/org/apache/tapestry/engine/HomeService.java?rev=332810&r1=332809&r2=332810&view=diff
==============================================================================
--- jakarta/tapestry/trunk/framework/src/java/org/apache/tapestry/engine/HomeService.java (original)
+++ jakarta/tapestry/trunk/framework/src/java/org/apache/tapestry/engine/HomeService.java Sat Nov 12 10:22:15 2005
@@ -55,7 +55,7 @@
parameters.put(ServiceConstants.SERVICE, getName());
- return _linkFactory.constructLink(post, parameters, true);
+ return _linkFactory.constructLink(this, post, parameters, true);
}
public void service(IRequestCycle cycle) throws IOException
Modified: jakarta/tapestry/trunk/framework/src/java/org/apache/tapestry/engine/PageService.java
URL: http://svn.apache.org/viewcvs/jakarta/tapestry/trunk/framework/src/java/org/apache/tapestry/engine/PageService.java?rev=332810&r1=332809&r2=332810&view=diff
==============================================================================
--- jakarta/tapestry/trunk/framework/src/java/org/apache/tapestry/engine/PageService.java (original)
+++ jakarta/tapestry/trunk/framework/src/java/org/apache/tapestry/engine/PageService.java Sat Nov 12 10:22:15 2005
@@ -46,10 +46,9 @@
Map parameters = new HashMap();
- parameters.put(ServiceConstants.SERVICE, getName());
parameters.put(ServiceConstants.PAGE, parameter);
- return _linkFactory.constructLink(post, parameters, true);
+ return _linkFactory.constructLink(this, post, parameters, true);
}
Modified: jakarta/tapestry/trunk/framework/src/java/org/apache/tapestry/engine/ResetService.java
URL: http://svn.apache.org/viewcvs/jakarta/tapestry/trunk/framework/src/java/org/apache/tapestry/engine/ResetService.java?rev=332810&r1=332809&r2=332810&view=diff
==============================================================================
--- jakarta/tapestry/trunk/framework/src/java/org/apache/tapestry/engine/ResetService.java (original)
+++ jakarta/tapestry/trunk/framework/src/java/org/apache/tapestry/engine/ResetService.java Sat Nov 12 10:22:15 2005
@@ -62,10 +62,9 @@
Map parameters = new HashMap();
- parameters.put(ServiceConstants.SERVICE, getName());
parameters.put(ServiceConstants.PAGE, _requestCycle.getPage().getPageName());
- return _linkFactory.constructLink(post, parameters, true);
+ return _linkFactory.constructLink(this, post, parameters, true);
}
public String getName()
Modified: jakarta/tapestry/trunk/framework/src/java/org/apache/tapestry/engine/RestartService.java
URL: http://svn.apache.org/viewcvs/jakarta/tapestry/trunk/framework/src/java/org/apache/tapestry/engine/RestartService.java?rev=332810&r1=332809&r2=332810&view=diff
==============================================================================
--- jakarta/tapestry/trunk/framework/src/java/org/apache/tapestry/engine/RestartService.java (original)
+++ jakarta/tapestry/trunk/framework/src/java/org/apache/tapestry/engine/RestartService.java Sat Nov 12 10:22:15 2005
@@ -50,9 +50,6 @@
private HttpServletResponse _response;
/** @since 4.0 */
- private AbsoluteURLBuilder _builder;
-
- /** @since 4.0 */
private LinkFactory _linkFactory;
/** @since 4.0 */
@@ -65,9 +62,7 @@
Map parameters = new HashMap();
- parameters.put(ServiceConstants.SERVICE, getName());
-
- return _linkFactory.constructLink(post, parameters, true);
+ return _linkFactory.constructLink(this, post, parameters, true);
}
public void service(IRequestCycle cycle) throws IOException
@@ -88,7 +83,7 @@
}
}
- String url = _builder.constructURL(cycle.getAbsoluteURL(_servletPath));
+ String url = cycle.getAbsoluteURL(_servletPath);
_response.sendRedirect(url);
}
@@ -108,12 +103,6 @@
public void setRequest(HttpServletRequest request)
{
_request = request;
- }
-
- /** @since 4.0 */
- public void setBuilder(AbsoluteURLBuilder builder)
- {
- _builder = builder;
}
/** @since 4.0 */
Modified: jakarta/tapestry/trunk/framework/src/java/org/apache/tapestry/services/LinkFactory.java
URL: http://svn.apache.org/viewcvs/jakarta/tapestry/trunk/framework/src/java/org/apache/tapestry/services/LinkFactory.java?rev=332810&r1=332809&r2=332810&view=diff
==============================================================================
--- jakarta/tapestry/trunk/framework/src/java/org/apache/tapestry/services/LinkFactory.java (original)
+++ jakarta/tapestry/trunk/framework/src/java/org/apache/tapestry/services/LinkFactory.java Sat Nov 12 10:22:15 2005
@@ -17,6 +17,7 @@
import java.util.Map;
import org.apache.tapestry.IRequestCycle;
+import org.apache.tapestry.engine.IEngineService;
import org.apache.tapestry.engine.ILink;
import org.apache.tapestry.engine.ServiceEncoder;
@@ -32,6 +33,8 @@
/**
* Constructs an {@link org.apache.tapestry.engine.ILink}.
*
+ * @param service
+ * the service for which the link is being generated
* @param post
* if true, then the link will be used for a post (not a get, i.e., for a HTML form);
* this may affect what information is encoded into the link
@@ -45,7 +48,8 @@
* If false, the session encoding should not occur. The latter case is useful for
* services that will absolutely not need any access to user-specific state.
*/
- public ILink constructLink(boolean post, Map parameters, boolean stateful);
+ public ILink constructLink(IEngineService service, boolean post, Map parameters,
+ boolean stateful);
/**
* A secondary function of the service is to convert encoded (aka "squeezed") listener
Modified: jakarta/tapestry/trunk/framework/src/java/org/apache/tapestry/services/impl/ImplMessages.java
URL: http://svn.apache.org/viewcvs/jakarta/tapestry/trunk/framework/src/java/org/apache/tapestry/services/impl/ImplMessages.java?rev=332810&r1=332809&r2=332810&view=diff
==============================================================================
--- jakarta/tapestry/trunk/framework/src/java/org/apache/tapestry/services/impl/ImplMessages.java (original)
+++ jakarta/tapestry/trunk/framework/src/java/org/apache/tapestry/services/impl/ImplMessages.java Sat Nov 12 10:22:15 2005
@@ -274,4 +274,9 @@
{
return _formatter.format("engine-class-not-found", engineClassName);
}
+
+ static String serviceNameIsNull()
+ {
+ return _formatter.getMessage("service-name-is-null");
+ }
}
Modified: jakarta/tapestry/trunk/framework/src/java/org/apache/tapestry/services/impl/ImplStrings.properties
URL: http://svn.apache.org/viewcvs/jakarta/tapestry/trunk/framework/src/java/org/apache/tapestry/services/impl/ImplStrings.properties?rev=332810&r1=332809&r2=332810&view=diff
==============================================================================
--- jakarta/tapestry/trunk/framework/src/java/org/apache/tapestry/services/impl/ImplStrings.properties (original)
+++ jakarta/tapestry/trunk/framework/src/java/org/apache/tapestry/services/impl/ImplStrings.properties Sat Nov 12 10:22:15 2005
@@ -60,4 +60,5 @@
duplicate-infrastructure-contribution=Infrastructure contribution for property ''{0}'' (mode ''{1}'') conflicts with a prior contribution (at {2}) and has been ignored.
missing-infrastructure-property=Infrastructure property ''{0}'' is not defined.
used-template-parameter-alias=Parameter {2} (for component {1}, at {0}) was bound; this parameter has been deprecated, bind parameter {3} instead.
-engine-class-not-found=Engine class ''{0}'' not found.
\ No newline at end of file
+engine-class-not-found=Engine class ''{0}'' not found.
+service-name-is-null=The service name is null. Engine services must implement method getServiceName() and return a non-null value.
\ No newline at end of file
Modified: jakarta/tapestry/trunk/framework/src/java/org/apache/tapestry/services/impl/LinkFactoryImpl.java
URL: http://svn.apache.org/viewcvs/jakarta/tapestry/trunk/framework/src/java/org/apache/tapestry/services/impl/LinkFactoryImpl.java?rev=332810&r1=332809&r2=332810&view=diff
==============================================================================
--- jakarta/tapestry/trunk/framework/src/java/org/apache/tapestry/services/impl/LinkFactoryImpl.java (original)
+++ jakarta/tapestry/trunk/framework/src/java/org/apache/tapestry/services/impl/LinkFactoryImpl.java Sat Nov 12 10:22:15 2005
@@ -27,6 +27,7 @@
import org.apache.tapestry.IRequestCycle;
import org.apache.tapestry.Tapestry;
import org.apache.tapestry.engine.EngineServiceLink;
+import org.apache.tapestry.engine.IEngineService;
import org.apache.tapestry.engine.ILink;
import org.apache.tapestry.engine.ServiceEncoder;
import org.apache.tapestry.engine.ServiceEncoding;
@@ -96,9 +97,18 @@
}
- public ILink constructLink(boolean post, Map parameters, boolean stateful)
+ public ILink constructLink(IEngineService service, boolean post, Map parameters,
+ boolean stateful)
{
+ Defense.notNull(service, "service");
Defense.notNull(parameters, "parameters");
+
+ String serviceName = service.getName();
+
+ if (serviceName == null)
+ throw new ApplicationRuntimeException(ImplMessages.serviceNameIsNull());
+
+ parameters.put(ServiceConstants.SERVICE, serviceName);
squeezeServiceParameters(parameters);
Copied: jakarta/tapestry/trunk/framework/src/test/org/apache/tapestry/engine/ActionServiceTest.java (from r332478, jakarta/tapestry/trunk/framework/src/test/org/apache/tapestry/engine/TestActionService.java)
URL: http://svn.apache.org/viewcvs/jakarta/tapestry/trunk/framework/src/test/org/apache/tapestry/engine/ActionServiceTest.java?p2=jakarta/tapestry/trunk/framework/src/test/org/apache/tapestry/engine/ActionServiceTest.java&p1=jakarta/tapestry/trunk/framework/src/test/org/apache/tapestry/engine/TestActionService.java&r1=332478&r2=332810&rev=332810&view=diff
==============================================================================
--- jakarta/tapestry/trunk/framework/src/test/org/apache/tapestry/engine/TestActionService.java (original)
+++ jakarta/tapestry/trunk/framework/src/test/org/apache/tapestry/engine/ActionServiceTest.java Sat Nov 12 10:22:15 2005
@@ -24,13 +24,11 @@
import org.apache.tapestry.IPage;
import org.apache.tapestry.IRequestCycle;
import org.apache.tapestry.StaleSessionException;
-import org.apache.tapestry.Tapestry;
import org.apache.tapestry.services.LinkFactory;
import org.apache.tapestry.services.ResponseRenderer;
import org.apache.tapestry.services.ServiceConstants;
import org.apache.tapestry.web.WebRequest;
import org.apache.tapestry.web.WebSession;
-import org.easymock.MockControl;
/**
* Tests for {@link org.apache.tapestry.engine.ActionService}.
@@ -38,33 +36,23 @@
* @author Howard M. Lewis Ship
* @since 4.0
*/
-public class TestActionService extends ServiceTestCase
+public class ActionServiceTest extends ServiceTestCase
{
-
public void testGetLinkSimple()
{
- MockControl componentc = newControl(IComponent.class);
- IComponent component = (IComponent) componentc.getMock();
-
+ IComponent component = newComponent();
IPage page = newPage("ActivePage");
-
- MockControl cyclec = newControl(IRequestCycle.class);
- IRequestCycle cycle = (IRequestCycle) cyclec.getMock();
-
+ IRequestCycle cycle = newCycle();
WebRequest request = newWebRequest(false, null);
+ LinkFactory lf = newLinkFactory();
+ ILink link = newLink();
- cycle.getPage();
- cyclec.setReturnValue(page);
-
- component.getPage();
- componentc.setReturnValue(page);
+ trainGetPage(cycle, page);
+ trainGetPage(component, page);
Map parameters = new HashMap();
- parameters.put(ServiceConstants.SERVICE, Tapestry.ACTION_SERVICE);
-
- component.getIdPath();
- componentc.setReturnValue("fred.barney");
+ trainGetIdPath(component, "fred.barney");
parameters.put(ServiceConstants.COMPONENT, "fred.barney");
parameters.put(ServiceConstants.PAGE, "ActivePage");
@@ -72,21 +60,15 @@
parameters.put("action", "action-id");
parameters.put(ServiceConstants.SESSION, null);
- ILink link = newLink();
-
- MockControl lfc = newControl(LinkFactory.class);
- LinkFactory lf = (LinkFactory) lfc.getMock();
-
- lf.constructLink(false, parameters, true);
- lfc.setReturnValue(link);
-
- replayControls();
-
ActionService as = new ActionService();
as.setLinkFactory(lf);
as.setRequest(request);
as.setRequestCycle(cycle);
+ trainConstructLink(lf, as, false, parameters, true, link);
+
+ replayControls();
+
ActionServiceParameter p = new ActionServiceParameter(component, "action-id");
assertSame(link, as.getLink(false, p));
@@ -96,28 +78,19 @@
public void testGetLinkSimplePost()
{
- MockControl componentc = newControl(IComponent.class);
- IComponent component = (IComponent) componentc.getMock();
-
+ IComponent component = newComponent();
IPage page = newPage("ActivePage");
-
- MockControl cyclec = newControl(IRequestCycle.class);
- IRequestCycle cycle = (IRequestCycle) cyclec.getMock();
-
+ IRequestCycle cycle = newCycle();
WebRequest request = newWebRequest(false, null);
+ LinkFactory lf = newLinkFactory();
+ ILink link = newLink();
- cycle.getPage();
- cyclec.setReturnValue(page);
-
- component.getPage();
- componentc.setReturnValue(page);
+ trainGetPage(cycle, page);
+ trainGetPage(component, page);
Map parameters = new HashMap();
- parameters.put(ServiceConstants.SERVICE, Tapestry.ACTION_SERVICE);
-
- component.getIdPath();
- componentc.setReturnValue("fred.barney");
+ trainGetIdPath(component, "fred.barney");
parameters.put(ServiceConstants.COMPONENT, "fred.barney");
parameters.put(ServiceConstants.PAGE, "ActivePage");
@@ -125,21 +98,15 @@
parameters.put("action", "action-id");
parameters.put(ServiceConstants.SESSION, null);
- ILink link = newLink();
-
- MockControl lfc = newControl(LinkFactory.class);
- LinkFactory lf = (LinkFactory) lfc.getMock();
-
- lf.constructLink(true, parameters, true);
- lfc.setReturnValue(link);
-
- replayControls();
-
ActionService as = new ActionService();
as.setLinkFactory(lf);
as.setRequest(request);
as.setRequestCycle(cycle);
+ trainConstructLink(lf, as, true, parameters, true, link);
+
+ replayControls();
+
ActionServiceParameter p = new ActionServiceParameter(component, "action-id");
assertSame(link, as.getLink(true, p));
@@ -149,28 +116,20 @@
public void testGetLinkComplex()
{
- MockControl componentc = newControl(IComponent.class);
- IComponent component = (IComponent) componentc.getMock();
+ IComponent component = newComponent();
WebRequest request = newWebRequest(false, newWebSession());
-
IPage activePage = newPage("ActivePage");
IPage componentPage = newPage("ComponentPage");
+ IRequestCycle cycle = newCycle();
+ LinkFactory lf = newLinkFactory();
+ ILink link = newLink();
- MockControl cyclec = newControl(IRequestCycle.class);
- IRequestCycle cycle = (IRequestCycle) cyclec.getMock();
-
- cycle.getPage();
- cyclec.setReturnValue(activePage);
-
- component.getPage();
- componentc.setReturnValue(componentPage);
+ trainGetPage(cycle, activePage);
+ trainGetPage(component, componentPage);
Map parameters = new HashMap();
- parameters.put(ServiceConstants.SERVICE, Tapestry.ACTION_SERVICE);
-
- component.getIdPath();
- componentc.setReturnValue("fred.barney");
+ trainGetIdPath(component, "fred.barney");
parameters.put(ServiceConstants.COMPONENT, "fred.barney");
parameters.put(ServiceConstants.PAGE, "ActivePage");
@@ -178,21 +137,15 @@
parameters.put("action", "action-id");
parameters.put(ServiceConstants.SESSION, "T");
- ILink link = newLink();
-
- MockControl lfc = newControl(LinkFactory.class);
- LinkFactory lf = (LinkFactory) lfc.getMock();
-
- lf.constructLink(false, parameters, true);
- lfc.setReturnValue(link);
-
- replayControls();
-
ActionService as = new ActionService();
as.setLinkFactory(lf);
as.setRequest(request);
as.setRequestCycle(cycle);
+ trainConstructLink(lf, as, false, parameters, true, link);
+
+ replayControls();
+
ActionServiceParameter p = new ActionServiceParameter(component, "action-id");
assertSame(link, as.getLink(false, p));
@@ -202,41 +155,25 @@
public void testServiceSimple() throws Exception
{
- MockControl cyclec = newControl(IRequestCycle.class);
- IRequestCycle cycle = (IRequestCycle) cyclec.getMock();
-
- cycle.getParameter(ServiceConstants.COMPONENT);
- cyclec.setReturnValue("fred.barney");
-
- cycle.getParameter(ServiceConstants.CONTAINER);
- cyclec.setReturnValue(null);
-
- cycle.getParameter(ServiceConstants.PAGE);
- cyclec.setReturnValue("ActivePage");
-
- cycle.getParameter("action");
- cyclec.setReturnValue("action-id");
-
- cycle.getParameter(ServiceConstants.SESSION);
- cyclec.setReturnValue(null);
+ IRequestCycle cycle = newCycle();
+ IPage page = newPage();
+ IAction action = newAction();
+ ResponseRenderer rr = newResponseRenderer();
- MockControl pagec = newControl(IPage.class);
- IPage page = (IPage) pagec.getMock();
+ trainGetParameter(cycle, ServiceConstants.COMPONENT, "fred.barney");
+ trainGetParameter(cycle, ServiceConstants.CONTAINER, null);
+ trainGetParameter(cycle, ServiceConstants.PAGE, "ActivePage");
+ trainGetParameter(cycle, "action", "action-id");
+ trainGetParameter(cycle, ServiceConstants.SESSION, null);
- cycle.getPage("ActivePage");
- cyclec.setReturnValue(page);
+ trainGetPage(cycle, "ActivePage", page);
cycle.activate(page);
- IAction action = (IAction) newMock(IAction.class);
-
- page.getNestedComponent("fred.barney");
- pagec.setReturnValue(action);
+ trainGetNestedComponent(page, "fred.barney", action);
cycle.rewindPage("action-id", action);
- ResponseRenderer rr = newResponseRenderer();
-
rr.renderResponse(cycle);
replayControls();
@@ -249,50 +186,36 @@
verifyControls();
}
- public void testSeviceActiveSession() throws Exception
+ private IAction newAction()
{
- MockControl cyclec = newControl(IRequestCycle.class);
- IRequestCycle cycle = (IRequestCycle) cyclec.getMock();
-
- cycle.getParameter(ServiceConstants.COMPONENT);
- cyclec.setReturnValue("fred.barney");
-
- cycle.getParameter(ServiceConstants.CONTAINER);
- cyclec.setReturnValue(null);
-
- cycle.getParameter(ServiceConstants.PAGE);
- cyclec.setReturnValue("ActivePage");
-
- cycle.getParameter("action");
- cyclec.setReturnValue("action-id");
+ return (IAction) newMock(IAction.class);
+ }
- cycle.getParameter(ServiceConstants.SESSION);
- cyclec.setReturnValue("T");
+ public void testSeviceActiveSession() throws Exception
+ {
+ IRequestCycle cycle = newCycle();
+ IPage page = newPage();
+ IAction action = newAction();
+ WebSession session = newWebSession(false);
+ WebRequest request = newWebRequest(session);
+ ResponseRenderer rr = newResponseRenderer();
- MockControl pagec = newControl(IPage.class);
- IPage page = (IPage) pagec.getMock();
+ trainGetParameter(cycle, ServiceConstants.COMPONENT, "fred.barney");
+ trainGetParameter(cycle, ServiceConstants.CONTAINER, null);
+ trainGetParameter(cycle, ServiceConstants.PAGE, "ActivePage");
+ trainGetParameter(cycle, "action", "action-id");
+ trainGetParameter(cycle, ServiceConstants.SESSION, "T");
- cycle.getPage("ActivePage");
- cyclec.setReturnValue(page);
+ trainGetPage(cycle, "ActivePage", page);
cycle.activate(page);
- MockControl actionc = newControl(IAction.class);
- IAction action = (IAction) actionc.getMock();
-
- page.getNestedComponent("fred.barney");
- pagec.setReturnValue(action);
+ trainGetNestedComponent(page, "fred.barney", action);
- action.getRequiresSession();
- actionc.setReturnValue(true);
-
- WebSession session = newWebSession(false);
- WebRequest request = newWebRequest(session);
+ trainGetRequiresSession(action, true);
cycle.rewindPage("action-id", action);
- ResponseRenderer rr = newResponseRenderer();
-
rr.renderResponse(cycle);
replayControls();
@@ -308,45 +231,26 @@
public void testServiceNotAction() throws Exception
{
- MockControl cyclec = newControl(IRequestCycle.class);
- IRequestCycle cycle = (IRequestCycle) cyclec.getMock();
-
- cycle.getParameter(ServiceConstants.COMPONENT);
- cyclec.setReturnValue("fred.barney");
+ IRequestCycle cycle = newCycle();
+ IPage page = newPage();
+ IComponent component = newComponent();
+ Location l = newLocation();
+
+ trainGetParameter(cycle, ServiceConstants.COMPONENT, "fred.barney");
+ trainGetParameter(cycle, ServiceConstants.CONTAINER, null);
+ trainGetParameter(cycle, ServiceConstants.PAGE, "ActivePage");
+ trainGetParameter(cycle, "action", "action-id");
+ trainGetParameter(cycle, ServiceConstants.SESSION, "T");
- cycle.getParameter(ServiceConstants.CONTAINER);
- cyclec.setReturnValue(null);
-
- cycle.getParameter(ServiceConstants.PAGE);
- cyclec.setReturnValue("ActivePage");
-
- cycle.getParameter("action");
- cyclec.setReturnValue("action-id");
-
- cycle.getParameter(ServiceConstants.SESSION);
- cyclec.setReturnValue("T");
-
- MockControl pagec = newControl(IPage.class);
- IPage page = (IPage) pagec.getMock();
-
- cycle.getPage("ActivePage");
- cyclec.setReturnValue(page);
+ trainGetPage(cycle, "ActivePage", page);
cycle.activate(page);
- MockControl componentc = newControl(IComponent.class);
- IComponent component = (IComponent) componentc.getMock();
-
- page.getNestedComponent("fred.barney");
- pagec.setReturnValue(component);
+ trainGetNestedComponent(page, "fred.barney", component);
- component.getExtendedId();
- componentc.setReturnValue("ActivePage/fred.barney");
+ trainGetExtendedId(component, "ActivePage/fred.barney");
- Location l = fabricateLocation(17);
-
- component.getLocation();
- componentc.setReturnValue(l);
+ trainGetLocation(component, l);
replayControls();
@@ -371,53 +275,31 @@
public void testServiceStaleSession() throws Exception
{
- MockControl cyclec = newControl(IRequestCycle.class);
- IRequestCycle cycle = (IRequestCycle) cyclec.getMock();
-
- cycle.getParameter(ServiceConstants.COMPONENT);
- cyclec.setReturnValue("fred.barney");
-
- cycle.getParameter(ServiceConstants.CONTAINER);
- cyclec.setReturnValue(null);
-
- cycle.getParameter(ServiceConstants.PAGE);
- cyclec.setReturnValue("ActivePage");
-
- cycle.getParameter("action");
- cyclec.setReturnValue("action-id");
-
- cycle.getParameter(ServiceConstants.SESSION);
- cyclec.setReturnValue("T");
+ IRequestCycle cycle = newCycle();
+ IPage page = newPage();
+ IAction action = newAction();
+ WebRequest request = newWebRequest(null);
+ Location l = newLocation();
- MockControl pagec = newControl(IPage.class);
- IPage page = (IPage) pagec.getMock();
+ trainGetParameter(cycle, ServiceConstants.COMPONENT, "fred.barney");
+ trainGetParameter(cycle, ServiceConstants.CONTAINER, null);
+ trainGetParameter(cycle, ServiceConstants.PAGE, "ActivePage");
+ trainGetParameter(cycle, "action", "action-id");
+ trainGetParameter(cycle, ServiceConstants.SESSION, "T");
- cycle.getPage("ActivePage");
- cyclec.setReturnValue(page);
+ trainGetPage(cycle, "ActivePage", page);
cycle.activate(page);
- MockControl actionc = newControl(IAction.class);
- IAction action = (IAction) actionc.getMock();
+ trainGetNestedComponent(page, "fred.barney", action);
- page.getNestedComponent("fred.barney");
- pagec.setReturnValue(action);
+ trainGetRequiresSession(action, true);
- action.getRequiresSession();
- actionc.setReturnValue(true);
-
- WebRequest request = newWebRequest(null);
+ trainGetExtendedId(action, "ActivePage/fred.barney");
- action.getExtendedId();
- actionc.setReturnValue("ActivePage/fred.barney");
+ trainGetLocation(page, l);
- Location l = fabricateLocation(2);
-
- page.getLocation();
- pagec.setReturnValue(l);
-
- page.getPageName();
- pagec.setReturnValue("ActivePage");
+ trainGetPageName(page, "ActivePage");
replayControls();
@@ -444,47 +326,28 @@
public void testServiceComplex() throws Exception
{
- MockControl cyclec = newControl(IRequestCycle.class);
- IRequestCycle cycle = (IRequestCycle) cyclec.getMock();
-
- cycle.getParameter(ServiceConstants.COMPONENT);
- cyclec.setReturnValue("fred.barney");
-
- cycle.getParameter(ServiceConstants.CONTAINER);
- cyclec.setReturnValue("ComponentPage");
-
- cycle.getParameter(ServiceConstants.PAGE);
- cyclec.setReturnValue("ActivePage");
-
- cycle.getParameter("action");
- cyclec.setReturnValue("action-id");
-
- cycle.getParameter(ServiceConstants.SESSION);
- cyclec.setReturnValue(null);
+ IRequestCycle cycle = newCycle();
+ IPage activePage = newPage();
+ IPage componentPage = newPage();
+ IAction action = newAction();
+ ResponseRenderer rr = newResponseRenderer();
- MockControl activePagec = newControl(IPage.class);
- IPage activePage = (IPage) activePagec.getMock();
+ trainGetParameter(cycle, ServiceConstants.COMPONENT, "fred.barney");
+ trainGetParameter(cycle, ServiceConstants.CONTAINER, "ComponentPage");
+ trainGetParameter(cycle, ServiceConstants.PAGE, "ActivePage");
+ trainGetParameter(cycle, "action", "action-id");
+ trainGetParameter(cycle, ServiceConstants.SESSION, null);
- cycle.getPage("ActivePage");
- cyclec.setReturnValue(activePage);
+ trainGetPage(cycle, "ActivePage", activePage);
cycle.activate(activePage);
- MockControl componentPagec = newControl(IPage.class);
- IPage componentPage = (IPage) componentPagec.getMock();
-
- cycle.getPage("ComponentPage");
- cyclec.setReturnValue(componentPage);
-
- IAction action = (IAction) newMock(IAction.class);
+ trainGetPage(cycle, "ComponentPage", componentPage);
- componentPage.getNestedComponent("fred.barney");
- componentPagec.setReturnValue(action);
+ trainGetNestedComponent(componentPage, "fred.barney", action);
cycle.rewindPage("action-id", action);
- ResponseRenderer rr = newResponseRenderer();
-
rr.renderResponse(cycle);
replayControls();
@@ -495,5 +358,11 @@
as.service(cycle);
verifyControls();
+ }
+
+ protected void trainGetRequiresSession(IAction action, boolean requiresSession)
+ {
+ action.getRequiresSession();
+ setReturnValue(action, requiresSession);
}
}
Copied: jakarta/tapestry/trunk/framework/src/test/org/apache/tapestry/engine/DirectServiceTest.java (from r332478, jakarta/tapestry/trunk/framework/src/test/org/apache/tapestry/engine/TestDirectService.java)
URL: http://svn.apache.org/viewcvs/jakarta/tapestry/trunk/framework/src/test/org/apache/tapestry/engine/DirectServiceTest.java?p2=jakarta/tapestry/trunk/framework/src/test/org/apache/tapestry/engine/DirectServiceTest.java&p1=jakarta/tapestry/trunk/framework/src/test/org/apache/tapestry/engine/TestDirectService.java&r1=332478&r2=332810&rev=332810&view=diff
==============================================================================
--- jakarta/tapestry/trunk/framework/src/test/org/apache/tapestry/engine/TestDirectService.java (original)
+++ jakarta/tapestry/trunk/framework/src/test/org/apache/tapestry/engine/DirectServiceTest.java Sat Nov 12 10:22:15 2005
@@ -24,7 +24,6 @@
import org.apache.tapestry.IPage;
import org.apache.tapestry.IRequestCycle;
import org.apache.tapestry.StaleSessionException;
-import org.apache.tapestry.Tapestry;
import org.apache.tapestry.services.LinkFactory;
import org.apache.tapestry.services.ResponseRenderer;
import org.apache.tapestry.services.ServiceConstants;
@@ -38,56 +37,46 @@
* @author Howard M. Lewis Ship
* @since 4.0
*/
-public class TestDirectService extends ServiceTestCase
+public class DirectServiceTest extends ServiceTestCase
{
+ protected IDirect newDirect()
+ {
+ return (IDirect) newMock(IDirect.class);
+ }
+
public void testGetLinkOnSamePage()
{
IPage page = newPage("ThePage");
-
- MockControl cc = newControl(IDirect.class);
- IDirect c = (IDirect) cc.getMock();
-
- MockControl cyclec = newControl(IRequestCycle.class);
- IRequestCycle cycle = (IRequestCycle) cyclec.getMock();
-
+ IDirect c = newDirect();
+ IRequestCycle cycle = newCycle();
WebRequest request = newWebRequest(false, null);
+ LinkFactory lf = newLinkFactory();
+ ILink link = newLink();
- cycle.getPage();
- cyclec.setReturnValue(page);
-
- c.getPage();
- cc.setReturnValue(page);
-
- c.getIdPath();
- cc.setReturnValue("fred.barney");
+ trainGetPage(cycle, page);
+ trainGetPage(c, page);
+ trainGetIdPath(c, "fred.barney");
Object[] serviceParameters = new Object[0];
Map parameters = new HashMap();
- parameters.put(ServiceConstants.SERVICE, Tapestry.DIRECT_SERVICE);
parameters.put(ServiceConstants.PAGE, "ThePage");
parameters.put(ServiceConstants.COMPONENT, "fred.barney");
parameters.put(ServiceConstants.CONTAINER, null);
parameters.put(ServiceConstants.SESSION, null);
parameters.put(ServiceConstants.PARAMETER, serviceParameters);
- MockControl lfc = newControl(LinkFactory.class);
- LinkFactory lf = (LinkFactory) lfc.getMock();
-
- ILink link = newLink();
-
- lf.constructLink(false, parameters, true);
- lfc.setReturnValue(link);
-
- replayControls();
-
DirectService ds = new DirectService();
ds.setLinkFactory(lf);
ds.setRequest(request);
ds.setRequestCycle(cycle);
+ trainConstructLink(lf, ds, false, parameters, true, link);
+
+ replayControls();
+
assertSame(link, ds.getLink(false, new DirectServiceParameter(c, serviceParameters)));
verifyControls();
@@ -96,51 +85,36 @@
public void testGetLinkOnSamePageForPost()
{
IPage page = newPage("ThePage");
-
- MockControl cc = newControl(IDirect.class);
- IDirect c = (IDirect) cc.getMock();
-
- MockControl cyclec = newControl(IRequestCycle.class);
- IRequestCycle cycle = (IRequestCycle) cyclec.getMock();
-
+ IDirect c = newDirect();
+ IRequestCycle cycle = newCycle();
WebRequest request = newWebRequest(false, null);
+ LinkFactory lf = newLinkFactory();
+ ILink link = newLink();
- cycle.getPage();
- cyclec.setReturnValue(page);
-
- c.getPage();
- cc.setReturnValue(page);
-
- c.getIdPath();
- cc.setReturnValue("fred.barney");
+ trainGetPage(cycle, page);
+ trainGetPage(c, page);
+ trainGetIdPath(c, "fred.barney");
Object[] serviceParameters = new Object[0];
Map parameters = new HashMap();
- parameters.put(ServiceConstants.SERVICE, Tapestry.DIRECT_SERVICE);
parameters.put(ServiceConstants.PAGE, "ThePage");
parameters.put(ServiceConstants.COMPONENT, "fred.barney");
parameters.put(ServiceConstants.CONTAINER, null);
parameters.put(ServiceConstants.SESSION, null);
parameters.put(ServiceConstants.PARAMETER, serviceParameters);
- MockControl lfc = newControl(LinkFactory.class);
- LinkFactory lf = (LinkFactory) lfc.getMock();
-
- ILink link = newLink();
-
- lf.constructLink(true, parameters, true);
- lfc.setReturnValue(link);
-
- replayControls();
-
DirectService ds = new DirectService();
ds.setLinkFactory(lf);
ds.setRequest(request);
ds.setRequestCycle(cycle);
+ trainConstructLink(lf, ds, true, parameters, true, link);
+
+ replayControls();
+
assertSame(link, ds.getLink(true, new DirectServiceParameter(c, serviceParameters)));
verifyControls();
@@ -149,49 +123,36 @@
public void testGetLinkOnSamePageStateful()
{
IPage page = newPage("ThePage");
- WebRequest request = newWebRequest(false, newWebSession());
-
- MockControl cc = newControl(IDirect.class);
- IDirect c = (IDirect) cc.getMock();
-
- MockControl cyclec = newControl(IRequestCycle.class);
- IRequestCycle cycle = (IRequestCycle) cyclec.getMock();
-
- cycle.getPage();
- cyclec.setReturnValue(page);
-
- c.getPage();
- cc.setReturnValue(page);
+ IDirect c = newDirect();
+ IRequestCycle cycle = newCycle();
+ WebSession session = newWebSession();
+ WebRequest request = newWebRequest(false, session);
+ LinkFactory lf = newLinkFactory();
+ ILink link = newLink();
- c.getIdPath();
- cc.setReturnValue("fred.barney");
+ trainGetPage(cycle, page);
+ trainGetPage(c, page);
+ trainGetIdPath(c, "fred.barney");
Object[] serviceParameters = new Object[0];
Map parameters = new HashMap();
- parameters.put(ServiceConstants.SERVICE, Tapestry.DIRECT_SERVICE);
parameters.put(ServiceConstants.PAGE, "ThePage");
parameters.put(ServiceConstants.COMPONENT, "fred.barney");
parameters.put(ServiceConstants.CONTAINER, null);
parameters.put(ServiceConstants.SESSION, "T");
parameters.put(ServiceConstants.PARAMETER, serviceParameters);
- MockControl lfc = newControl(LinkFactory.class);
- LinkFactory lf = (LinkFactory) lfc.getMock();
-
- ILink link = newLink();
-
- lf.constructLink(false, parameters, true);
- lfc.setReturnValue(link);
-
- replayControls();
-
DirectService ds = new DirectService();
ds.setLinkFactory(lf);
ds.setRequest(request);
ds.setRequestCycle(cycle);
+ trainConstructLink(lf, ds, false, parameters, true, link);
+
+ replayControls();
+
assertSame(link, ds.getLink(false, new DirectServiceParameter(c, serviceParameters)));
verifyControls();
@@ -201,48 +162,35 @@
{
IPage page = newPage("ActivePage");
IPage componentPage = newPage("ComponentPage");
+ IDirect c = newDirect();
+ IRequestCycle cycle = newCycle();
WebRequest request = newWebRequest(false, null);
- MockControl cc = newControl(IDirect.class);
- IDirect c = (IDirect) cc.getMock();
-
- MockControl cyclec = newControl(IRequestCycle.class);
- IRequestCycle cycle = (IRequestCycle) cyclec.getMock();
-
- cycle.getPage();
- cyclec.setReturnValue(page);
-
- c.getPage();
- cc.setReturnValue(componentPage);
+ LinkFactory lf = newLinkFactory();
+ ILink link = newLink();
- c.getIdPath();
- cc.setReturnValue("fred.barney");
+ trainGetPage(cycle, page);
+ trainGetPage(c, componentPage);
+ trainGetIdPath(c, "fred.barney");
Object[] serviceParameters = new Object[0];
Map parameters = new HashMap();
- parameters.put(ServiceConstants.SERVICE, Tapestry.DIRECT_SERVICE);
parameters.put(ServiceConstants.PAGE, "ActivePage");
parameters.put(ServiceConstants.COMPONENT, "fred.barney");
parameters.put(ServiceConstants.CONTAINER, "ComponentPage");
parameters.put(ServiceConstants.SESSION, null);
parameters.put(ServiceConstants.PARAMETER, serviceParameters);
- MockControl lfc = newControl(LinkFactory.class);
- LinkFactory lf = (LinkFactory) lfc.getMock();
-
- ILink link = newLink();
-
- lf.constructLink(false, parameters, true);
- lfc.setReturnValue(link);
-
- replayControls();
-
DirectService ds = new DirectService();
ds.setLinkFactory(lf);
ds.setRequest(request);
ds.setRequestCycle(cycle);
+ trainConstructLink(lf, ds, false, parameters, true, link);
+
+ replayControls();
+
assertSame(link, ds.getLink(false, new DirectServiceParameter(c, serviceParameters)));
verifyControls();
@@ -251,48 +199,28 @@
public void testServiceSimple() throws Exception
{
Object[] parameters = new Object[0];
+ IRequestCycle cycle = newCycle();
+ IPage page = newPage();
+ IDirect d = newDirect();
+ LinkFactory lf = newLinkFactory();
+ ResponseRenderer rr = newResponseRenderer();
- MockControl cyclec = newControl(IRequestCycle.class);
- IRequestCycle cycle = (IRequestCycle) cyclec.getMock();
-
- cycle.getParameter(ServiceConstants.COMPONENT);
- cyclec.setReturnValue("fred.barney");
-
- cycle.getParameter(ServiceConstants.CONTAINER);
- cyclec.setReturnValue(null);
-
- cycle.getParameter(ServiceConstants.PAGE);
- cyclec.setReturnValue("ActivePage");
-
- cycle.getParameter(ServiceConstants.SESSION);
- cyclec.setReturnValue(null);
-
- MockControl pagec = newControl(IPage.class);
- IPage page = (IPage) pagec.getMock();
-
- cycle.getPage("ActivePage");
- cyclec.setReturnValue(page);
+ trainGetParameter(cycle, ServiceConstants.COMPONENT, "fred.barney");
+ trainGetParameter(cycle, ServiceConstants.CONTAINER, null);
+ trainGetParameter(cycle, ServiceConstants.PAGE, "ActivePage");
+ trainGetParameter(cycle, ServiceConstants.SESSION, null);
+ trainGetPage(cycle, "ActivePage", page);
cycle.activate(page);
- MockControl dc = newControl(IDirect.class);
- IDirect d = (IDirect) dc.getMock();
-
- page.getNestedComponent("fred.barney");
- pagec.setReturnValue(d);
+ trainGetNestedComponent(page, "fred.barney", d);
- MockControl lfc = newControl(LinkFactory.class);
- LinkFactory lf = (LinkFactory) lfc.getMock();
-
- lf.extractListenerParameters(cycle);
- lfc.setReturnValue(parameters);
+ trainExtractListenerParameters(lf, cycle, parameters);
cycle.setListenerParameters(parameters);
d.trigger(cycle);
- ResponseRenderer rr = newResponseRenderer();
-
rr.renderResponse(cycle);
replayControls();
@@ -313,54 +241,32 @@
public void testServiceComplex() throws Exception
{
Object[] parameters = new Object[0];
+ IRequestCycle cycle = newCycle();
+ IPage page = newPage();
+ IPage componentPage = newPage();
+ IDirect d = newDirect();
+ LinkFactory lf = newLinkFactory();
+ ResponseRenderer rr = newResponseRenderer();
- MockControl cyclec = newControl(IRequestCycle.class);
- IRequestCycle cycle = (IRequestCycle) cyclec.getMock();
-
- cycle.getParameter(ServiceConstants.COMPONENT);
- cyclec.setReturnValue("fred.barney");
-
- cycle.getParameter(ServiceConstants.CONTAINER);
- cyclec.setReturnValue("ComponentPage");
-
- cycle.getParameter(ServiceConstants.PAGE);
- cyclec.setReturnValue("ActivePage");
-
- cycle.getParameter(ServiceConstants.SESSION);
- cyclec.setReturnValue(null);
-
- MockControl activePagec = newControl(IPage.class);
- IPage activePage = (IPage) activePagec.getMock();
-
- cycle.getPage("ActivePage");
- cyclec.setReturnValue(activePage);
-
- cycle.activate(activePage);
-
- MockControl componentPagec = newControl(IPage.class);
- IPage componentPage = (IPage) componentPagec.getMock();
+ trainGetParameter(cycle, ServiceConstants.COMPONENT, "fred.barney");
+ trainGetParameter(cycle, ServiceConstants.CONTAINER, "ComponentPage");
+ trainGetParameter(cycle, ServiceConstants.PAGE, "ActivePage");
+ trainGetParameter(cycle, ServiceConstants.SESSION, null);
- cycle.getPage("ComponentPage");
- cyclec.setReturnValue(componentPage);
+ trainGetPage(cycle, "ActivePage", page);
- MockControl dc = newControl(IDirect.class);
- IDirect d = (IDirect) dc.getMock();
+ cycle.activate(page);
- componentPage.getNestedComponent("fred.barney");
- componentPagec.setReturnValue(d);
+ trainGetPage(cycle, "ComponentPage", componentPage);
- MockControl lfc = newControl(LinkFactory.class);
- LinkFactory lf = (LinkFactory) lfc.getMock();
+ trainGetNestedComponent(componentPage, "fred.barney", d);
- lf.extractListenerParameters(cycle);
- lfc.setReturnValue(parameters);
+ trainExtractListenerParameters(lf, cycle, parameters);
cycle.setListenerParameters(parameters);
d.trigger(cycle);
- ResponseRenderer rr = newResponseRenderer();
-
rr.renderResponse(cycle);
replayControls();
@@ -376,42 +282,23 @@
public void testServiceNotDirect() throws Exception
{
- Location l = fabricateLocation(7);
-
- MockControl cyclec = newControl(IRequestCycle.class);
- IRequestCycle cycle = (IRequestCycle) cyclec.getMock();
-
- cycle.getParameter(ServiceConstants.COMPONENT);
- cyclec.setReturnValue("fred.barney");
-
- cycle.getParameter(ServiceConstants.CONTAINER);
- cyclec.setReturnValue(null);
-
- cycle.getParameter(ServiceConstants.PAGE);
- cyclec.setReturnValue("ActivePage");
-
- cycle.getParameter(ServiceConstants.SESSION);
- cyclec.setReturnValue(null);
-
- MockControl pagec = newControl(IPage.class);
- IPage page = (IPage) pagec.getMock();
-
- cycle.getPage("ActivePage");
- cyclec.setReturnValue(page);
+ IRequestCycle cycle = newCycle();
+ IPage page = newPage();
+ IComponent c = newComponent();
+ Location l = newLocation();
+
+ trainGetParameter(cycle, ServiceConstants.COMPONENT, "fred.barney");
+ trainGetParameter(cycle, ServiceConstants.CONTAINER, null);
+ trainGetParameter(cycle, ServiceConstants.PAGE, "ActivePage");
+ trainGetParameter(cycle, ServiceConstants.SESSION, null);
+ trainGetPage(cycle, "ActivePage", page);
cycle.activate(page);
- MockControl cc = newControl(IComponent.class);
- IComponent c = (IComponent) cc.getMock();
+ trainGetNestedComponent(page, "fred.barney", c);
- page.getNestedComponent("fred.barney");
- pagec.setReturnValue(c);
-
- c.getExtendedId();
- cc.setReturnValue("ActivePage/fred.barney");
-
- c.getLocation();
- cc.setReturnValue(l);
+ trainGetExtendedId(c, "ActivePage/fred.barney");
+ trainGetLocation(c, l);
replayControls();
@@ -437,54 +324,32 @@
public void testSessionActiveAndRequired() throws Exception
{
Object[] parameters = new Object[0];
+ IRequestCycle cycle = newCycle();
+ IPage page = newPage();
+ IDirect d = newDirect();
+ WebSession session = newWebSession(false);
+ WebRequest request = newWebRequest(session);
+ LinkFactory lf = newLinkFactory();
+ ResponseRenderer rr = newResponseRenderer();
- MockControl cyclec = newControl(IRequestCycle.class);
- IRequestCycle cycle = (IRequestCycle) cyclec.getMock();
-
- cycle.getParameter(ServiceConstants.COMPONENT);
- cyclec.setReturnValue("fred.barney");
-
- cycle.getParameter(ServiceConstants.CONTAINER);
- cyclec.setReturnValue(null);
-
- cycle.getParameter(ServiceConstants.PAGE);
- cyclec.setReturnValue("ActivePage");
-
- cycle.getParameter(ServiceConstants.SESSION);
- cyclec.setReturnValue("T");
-
- MockControl pagec = newControl(IPage.class);
- IPage page = (IPage) pagec.getMock();
-
- cycle.getPage("ActivePage");
- cyclec.setReturnValue(page);
+ trainGetParameter(cycle, ServiceConstants.COMPONENT, "fred.barney");
+ trainGetParameter(cycle, ServiceConstants.CONTAINER, null);
+ trainGetParameter(cycle, ServiceConstants.PAGE, "ActivePage");
+ trainGetParameter(cycle, ServiceConstants.SESSION, "T");
+ trainGetPage(cycle, "ActivePage", page);
cycle.activate(page);
- MockControl dc = newControl(IDirect.class);
- IDirect d = (IDirect) dc.getMock();
+ trainGetNestedComponent(page, "fred.barney", d);
- page.getNestedComponent("fred.barney");
- pagec.setReturnValue(d);
+ trainIsStateful(d, true);
- d.isStateful();
- dc.setReturnValue(true);
-
- WebSession session = newWebSession(false);
- WebRequest request = newWebRequest(session);
-
- MockControl lfc = newControl(LinkFactory.class);
- LinkFactory lf = (LinkFactory) lfc.getMock();
-
- lf.extractListenerParameters(cycle);
- lfc.setReturnValue(parameters);
+ trainExtractListenerParameters(lf, cycle, parameters);
cycle.setListenerParameters(parameters);
d.trigger(cycle);
- ResponseRenderer rr = newResponseRenderer();
-
rr.renderResponse(cycle);
replayControls();
@@ -499,52 +364,35 @@
verifyControls();
}
- public void testStaleSession() throws Exception
+ protected void trainIsStateful(IDirect direct, boolean isStateful)
{
- Location l = fabricateLocation(99);
-
- MockControl cyclec = newControl(IRequestCycle.class);
- IRequestCycle cycle = (IRequestCycle) cyclec.getMock();
-
- cycle.getParameter(ServiceConstants.COMPONENT);
- cyclec.setReturnValue("fred.barney");
-
- cycle.getParameter(ServiceConstants.CONTAINER);
- cyclec.setReturnValue(null);
-
- cycle.getParameter(ServiceConstants.PAGE);
- cyclec.setReturnValue("ActivePage");
-
- cycle.getParameter(ServiceConstants.SESSION);
- cyclec.setReturnValue("T");
+ direct.isStateful();
+ setReturnValue(direct, isStateful);
+ }
- MockControl pagec = newControl(IPage.class);
- IPage page = (IPage) pagec.getMock();
+ public void testStaleSession() throws Exception
+ {
+ IRequestCycle cycle = newCycle();
+ IPage page = newPage();
+ IDirect d = newDirect();
+ WebRequest request = newWebRequest(null);
+ Location l = newLocation();
- cycle.getPage("ActivePage");
- cyclec.setReturnValue(page);
+ trainGetParameter(cycle, ServiceConstants.COMPONENT, "fred.barney");
+ trainGetParameter(cycle, ServiceConstants.CONTAINER, null);
+ trainGetParameter(cycle, ServiceConstants.PAGE, "ActivePage");
+ trainGetParameter(cycle, ServiceConstants.SESSION, "T");
+ trainGetPage(cycle, "ActivePage", page);
cycle.activate(page);
- MockControl dc = newControl(IDirect.class);
- IDirect d = (IDirect) dc.getMock();
-
- page.getNestedComponent("fred.barney");
- pagec.setReturnValue(d);
-
- d.isStateful();
- dc.setReturnValue(true);
-
- WebRequest request = newWebRequest(null);
-
- d.getExtendedId();
- dc.setReturnValue("ActivePage/fred.barney");
+ trainGetNestedComponent(page, "fred.barney", d);
- page.getLocation();
- pagec.setReturnValue(l);
+ trainIsStateful(d, true);
- page.getPageName();
- pagec.setReturnValue("ActivePage");
+ trainGetExtendedId(d, "ActivePage/fred.barney");
+ trainGetLocation(page, l);
+ trainGetPageName(page, "ActivePage");
replayControls();
Copied: jakarta/tapestry/trunk/framework/src/test/org/apache/tapestry/engine/ExternalServiceTest.java (from r332478, jakarta/tapestry/trunk/framework/src/test/org/apache/tapestry/engine/TestExternalService.java)
URL: http://svn.apache.org/viewcvs/jakarta/tapestry/trunk/framework/src/test/org/apache/tapestry/engine/ExternalServiceTest.java?p2=jakarta/tapestry/trunk/framework/src/test/org/apache/tapestry/engine/ExternalServiceTest.java&p1=jakarta/tapestry/trunk/framework/src/test/org/apache/tapestry/engine/TestExternalService.java&r1=332478&r2=332810&rev=332810&view=diff
==============================================================================
--- jakarta/tapestry/trunk/framework/src/test/org/apache/tapestry/engine/TestExternalService.java (original)
+++ jakarta/tapestry/trunk/framework/src/test/org/apache/tapestry/engine/ExternalServiceTest.java Sat Nov 12 10:22:15 2005
@@ -22,11 +22,9 @@
import org.apache.tapestry.IExternalPage;
import org.apache.tapestry.IPage;
import org.apache.tapestry.IRequestCycle;
-import org.apache.tapestry.Tapestry;
import org.apache.tapestry.services.LinkFactory;
import org.apache.tapestry.services.ResponseRenderer;
import org.apache.tapestry.services.ServiceConstants;
-import org.easymock.MockControl;
/**
* Tests for {@link org.apache.tapestry.engine.ExternalService}.
@@ -34,41 +32,25 @@
* @author Howard M. Lewis Ship
* @since 4.0
*/
-public class TestExternalService extends ServiceTestCase
+public class ExternalServiceTest extends ServiceTestCase
{
- private LinkFactory newLinkFactory(IRequestCycle cycle, Object[] serviceParameters)
- {
- MockControl control = newControl(LinkFactory.class);
- LinkFactory lf = (LinkFactory) control.getMock();
-
- lf.extractListenerParameters(cycle);
- control.setReturnValue(serviceParameters);
-
- return lf;
- }
-
public void testGetLink()
{
Object[] serviceParameters = new Object[0];
+ LinkFactory lf = newLinkFactory();
+ ILink link = newLink();
Map parameters = new HashMap();
- parameters.put(ServiceConstants.SERVICE, Tapestry.EXTERNAL_SERVICE);
parameters.put(ServiceConstants.PAGE, "ActivePage");
parameters.put(ServiceConstants.PARAMETER, serviceParameters);
- MockControl lfc = newControl(LinkFactory.class);
- LinkFactory lf = (LinkFactory) lfc.getMock();
-
- ILink link = (ILink) newMock(ILink.class);
+ ExternalService es = new ExternalService();
+ es.setLinkFactory(lf);
- lf.constructLink(false, parameters, true);
- lfc.setReturnValue(link);
+ trainConstructLink(lf, es, false, parameters, true, link);
replayControls();
- ExternalService es = new ExternalService();
- es.setLinkFactory(lf);
-
ExternalServiceParameter p = new ExternalServiceParameter("ActivePage", serviceParameters);
assertSame(link, es.getLink(false, p));
@@ -78,26 +60,22 @@
public void testService() throws Exception
{
- MockControl cyclec = newControl(IRequestCycle.class);
- IRequestCycle cycle = (IRequestCycle) cyclec.getMock();
-
+ IRequestCycle cycle = newCycle();
IExternalPage page = (IExternalPage) newMock(IExternalPage.class);
-
Object[] parameters = new Object[0];
+ LinkFactory lf = newLinkFactory();
+ ResponseRenderer rr = newResponseRenderer();
- cycle.getParameter(ServiceConstants.PAGE);
- cyclec.setReturnValue("ActivePage");
+ trainGetParameter(cycle, ServiceConstants.PAGE, "ActivePage");
- cycle.getPage("ActivePage");
- cyclec.setReturnValue(page);
+ trainGetPage(cycle, "ActivePage", page);
- LinkFactory lf = newLinkFactory(cycle, parameters);
+ trainExtractListenerParameters(lf, cycle, parameters);
cycle.setListenerParameters(parameters);
cycle.activate(page);
- page.activateExternalPage(parameters, cycle);
- ResponseRenderer rr = (ResponseRenderer) newMock(ResponseRenderer.class);
+ page.activateExternalPage(parameters, cycle);
rr.renderResponse(cycle);
@@ -114,25 +92,17 @@
public void testServiceWrongType() throws Exception
{
- MockControl cyclec = newControl(IRequestCycle.class);
- IRequestCycle cycle = (IRequestCycle) cyclec.getMock();
-
- MockControl pagec = newControl(IPage.class);
- IPage page = (IPage) pagec.getMock();
-
- cycle.getParameter(ServiceConstants.PAGE);
- cyclec.setReturnValue("ActivePage");
- cycle.getPage("ActivePage");
- cyclec.setReturnValue(page);
+ IRequestCycle cycle = newCycle();
+ IPage page = newPage();
+ Location l = newLocation();
- page.getPageName();
- pagec.setReturnValue("ActivePage");
+ trainGetParameter(cycle, ServiceConstants.PAGE, "ActivePage");
- Location l = fabricateLocation(17);
+ trainGetPage(cycle, "ActivePage", page);
- page.getLocation();
- pagec.setReturnValue(l);
+ trainGetPageName(page, "ActivePage");
+ trainGetLocation(page, l);
replayControls();
Copied: jakarta/tapestry/trunk/framework/src/test/org/apache/tapestry/engine/PageServiceTest.java (from r332478, jakarta/tapestry/trunk/framework/src/test/org/apache/tapestry/engine/TestPageService.java)
URL: http://svn.apache.org/viewcvs/jakarta/tapestry/trunk/framework/src/test/org/apache/tapestry/engine/PageServiceTest.java?p2=jakarta/tapestry/trunk/framework/src/test/org/apache/tapestry/engine/PageServiceTest.java&p1=jakarta/tapestry/trunk/framework/src/test/org/apache/tapestry/engine/TestPageService.java&r1=332478&r2=332810&rev=332810&view=diff
==============================================================================
--- jakarta/tapestry/trunk/framework/src/test/org/apache/tapestry/engine/TestPageService.java (original)
+++ jakarta/tapestry/trunk/framework/src/test/org/apache/tapestry/engine/PageServiceTest.java Sat Nov 12 10:22:15 2005
@@ -18,37 +18,31 @@
import java.util.Map;
import org.apache.tapestry.IRequestCycle;
-import org.apache.tapestry.Tapestry;
import org.apache.tapestry.services.LinkFactory;
import org.apache.tapestry.services.ResponseRenderer;
import org.apache.tapestry.services.ServiceConstants;
-import org.easymock.MockControl;
/**
* @author Howard M. Lewis Ship
* @since 4.0
*/
-public class TestPageService extends ServiceTestCase
+public class PageServiceTest extends ServiceTestCase
{
public void testGetLink()
{
+ LinkFactory lf = newLinkFactory();
+ ILink link = newLink();
+
Map parameters = new HashMap();
- parameters.put(ServiceConstants.SERVICE, Tapestry.PAGE_SERVICE);
parameters.put(ServiceConstants.PAGE, "TargetPage");
- ILink link = newLink();
-
- MockControl lfc = newControl(LinkFactory.class);
- LinkFactory lf = (LinkFactory) lfc.getMock();
+ PageService ps = new PageService();
+ ps.setLinkFactory(lf);
- lf.constructLink(false, parameters, true);
- lfc.setReturnValue(link);
+ trainConstructLink(lf, ps, false, parameters, true, link);
replayControls();
- PageService ps = new PageService();
- ps.setLinkFactory(lf);
-
assertSame(link, ps.getLink(false, "TargetPage"));
verifyControls();
@@ -56,15 +50,12 @@
public void testService() throws Exception
{
- MockControl cyclec = newControl(IRequestCycle.class);
- IRequestCycle cycle = (IRequestCycle) cyclec.getMock();
+ IRequestCycle cycle = newCycle();
+ ResponseRenderer rr = newResponseRenderer();
- cycle.getParameter(ServiceConstants.PAGE);
- cyclec.setReturnValue("TargetPage");
+ trainGetParameter(cycle, ServiceConstants.PAGE, "TargetPage");
cycle.activate("TargetPage");
-
- ResponseRenderer rr = newResponseRenderer();
rr.renderResponse(cycle);
Copied: jakarta/tapestry/trunk/framework/src/test/org/apache/tapestry/engine/ResetServiceTest.java (from r332478, jakarta/tapestry/trunk/framework/src/test/org/apache/tapestry/engine/TestResetService.java)
URL: http://svn.apache.org/viewcvs/jakarta/tapestry/trunk/framework/src/test/org/apache/tapestry/engine/ResetServiceTest.java?p2=jakarta/tapestry/trunk/framework/src/test/org/apache/tapestry/engine/ResetServiceTest.java&p1=jakarta/tapestry/trunk/framework/src/test/org/apache/tapestry/engine/TestResetService.java&r1=332478&r2=332810&rev=332810&view=diff
==============================================================================
--- jakarta/tapestry/trunk/framework/src/test/org/apache/tapestry/engine/TestResetService.java (original)
+++ jakarta/tapestry/trunk/framework/src/test/org/apache/tapestry/engine/ResetServiceTest.java Sat Nov 12 10:22:15 2005
@@ -19,10 +19,10 @@
import org.apache.tapestry.IPage;
import org.apache.tapestry.IRequestCycle;
-import org.apache.tapestry.Tapestry;
import org.apache.tapestry.services.LinkFactory;
+import org.apache.tapestry.services.ResetEventHub;
+import org.apache.tapestry.services.ResponseRenderer;
import org.apache.tapestry.services.ServiceConstants;
-import org.easymock.MockControl;
/**
* Tests for {@link org.apache.tapestry.engine.ResetService}.
@@ -30,40 +30,83 @@
* @author Howard M. Lewis Ship
* @since 4.0
*/
-public class TestResetService extends ServiceTestCase
+public class ResetServiceTest extends ServiceTestCase
{
- private IRequestCycle newRequestCycle(IPage page)
+ public void testGetLink()
{
- MockControl control = newControl(IRequestCycle.class);
- IRequestCycle cycle = (IRequestCycle) control.getMock();
+ IRequestCycle cycle = newCycle();
+ IPage page = newPage();
+ LinkFactory lf = newLinkFactory();
+ ILink link = newLink();
+
+ ResetService s = new ResetService();
+ s.setLinkFactory(lf);
+ s.setRequestCycle(cycle);
+
+ trainGetPage(cycle, page);
+ trainGetPageName(page, "TargetPage");
+
+ Map parameters = new HashMap();
+ parameters.put(ServiceConstants.PAGE, "TargetPage");
- cycle.getPage();
- control.setReturnValue(page);
+ trainConstructLink(lf, s, false, parameters, true, link);
- return cycle;
+ replayControls();
+
+ assertSame(link, s.getLink(false, null));
+
+ verifyControls();
}
- public void testGetLink()
+ public void testService() throws Exception
{
- IPage page = newPage("TargetPage");
- IRequestCycle cycle = newRequestCycle(page);
+ IRequestCycle cycle = newCycle();
+ ResetEventHub hub = (ResetEventHub) newMock(ResetEventHub.class);
+ ResponseRenderer rr = newResponseRenderer();
- Map parameters = new HashMap();
- parameters.put(ServiceConstants.SERVICE, Tapestry.RESET_SERVICE);
- parameters.put(ServiceConstants.PAGE, "TargetPage");
+ trainGetParameter(cycle, ServiceConstants.PAGE, "TargetPage");
- ILink link = newLink();
- LinkFactory lf = newLinkFactory(cycle, parameters, true, link);
+ hub.fireResetEvent();
+
+ cycle.activate("TargetPage");
+
+ rr.renderResponse(cycle);
replayControls();
- ResetService s = new ResetService();
- s.setLinkFactory(lf);
- s.setRequestCycle(cycle);
+ ResetService rs = new ResetService();
+ rs.setEnabled(true);
+ rs.setResetEventHub(hub);
+ rs.setResponseRenderer(rr);
- assertSame(link, s.getLink(false, null));
+ rs.service(cycle);
verifyControls();
+ }
+
+ public void testServiceNotEnabled() throws Exception
+ {
+ IRequestCycle cycle = newCycle();
+ ResetEventHub hub = (ResetEventHub) newMock(ResetEventHub.class);
+ ResponseRenderer rr = newResponseRenderer();
+
+ trainGetParameter(cycle, ServiceConstants.PAGE, "TargetPage");
+
+ cycle.activate("TargetPage");
+
+ rr.renderResponse(cycle);
+
+ replayControls();
+
+ ResetService rs = new ResetService();
+ rs.setEnabled(false);
+ rs.setResetEventHub(hub);
+ rs.setResponseRenderer(rr);
+
+ rs.service(cycle);
+
+ verifyControls();
+
}
public void testGetLinkNonNullParameter()
---------------------------------------------------------------------
To unsubscribe, e-mail: tapestry-dev-unsubscribe@jakarta.apache.org
For additional commands, e-mail: tapestry-dev-help@jakarta.apache.org