Author: julien(a)jboss.com
Date: 2008-01-29 10:02:46 -0500 (Tue, 29 Jan 2008)
New Revision: 9631
Added:
modules/portlet/trunk/portlet/src/test/java/org/jboss/portal/test/portlet/framework/UTS3.java
modules/portlet/trunk/portlet/src/test/java/org/jboss/portal/test/portlet/framework/UTS4.java
modules/portlet/trunk/portlet/src/test/java/org/jboss/portal/test/portlet/jsr286/tck/dispatcher/QueryStringInRequestDispatcherTestCase.java
Modified:
modules/portlet/trunk/portlet/src/main/java/org/jboss/portal/portlet/impl/jsr168/DispatchedHttpServletRequest.java
modules/portlet/trunk/portlet/src/test/java/org/jboss/portal/test/portlet/framework/UTS1.java
modules/portlet/trunk/portlet/src/test/java/org/jboss/portal/test/portlet/framework/UTS2.java
modules/portlet/trunk/portlet/src/test/java/org/jboss/portal/unit/PortletTestContext.java
modules/portlet/trunk/portlet/src/test/java/org/jboss/portal/unit/base/AbstractTestGenericPortlet.java
modules/portlet/trunk/portlet/src/test/java/org/jboss/portal/unit/base/AbstractUniversalTestPortlet.java
modules/portlet/trunk/portlet/src/test/java/org/jboss/portal/unit/base/AbstractUniversalTestServlet.java
modules/portlet/trunk/test/src/test/resources/jsr286/tck/dispatcher-war/WEB-INF/portlet.xml
modules/portlet/trunk/test/src/test/resources/jsr286/tck/dispatcher-war/WEB-INF/web.xml
Log:
- minor improvements to the portlet test framework
- migrated test cases for query parameters
Modified:
modules/portlet/trunk/portlet/src/main/java/org/jboss/portal/portlet/impl/jsr168/DispatchedHttpServletRequest.java
===================================================================
---
modules/portlet/trunk/portlet/src/main/java/org/jboss/portal/portlet/impl/jsr168/DispatchedHttpServletRequest.java 2008-01-29
14:12:04 UTC (rev 9630)
+++
modules/portlet/trunk/portlet/src/main/java/org/jboss/portal/portlet/impl/jsr168/DispatchedHttpServletRequest.java 2008-01-29
15:02:46 UTC (rev 9631)
@@ -150,8 +150,12 @@
//
if (queryString.length() > 0)
{
- this.parameters = ParameterMap.clone(preq.getParameterMap());
-
this.parameters.putAll(QueryStringParser.getInstance().parseQueryString(queryString));
+ ParameterMap tmp = new ParameterMap();
+ tmp.putAll(QueryStringParser.getInstance().parseQueryString(queryString));
+ tmp.append(preq.getParameterMap());
+
+ //
+ this.parameters = tmp;
}
else
{
Modified:
modules/portlet/trunk/portlet/src/test/java/org/jboss/portal/test/portlet/framework/UTS1.java
===================================================================
---
modules/portlet/trunk/portlet/src/test/java/org/jboss/portal/test/portlet/framework/UTS1.java 2008-01-29
14:12:04 UTC (rev 9630)
+++
modules/portlet/trunk/portlet/src/test/java/org/jboss/portal/test/portlet/framework/UTS1.java 2008-01-29
15:02:46 UTC (rev 9631)
@@ -41,11 +41,11 @@
public static final String NAME = "ServletA";
- public final static JoinPoint SERVICE_JOIN_POINT = new JoinPoint(UTS1.NAME,
JoinPointType.SERVLET_SERVICE);
+ public final static JoinPoint SERVICE_JOIN_POINT = new JoinPoint(NAME,
JoinPointType.SERVLET_SERVICE);
protected String createComponentId(Class clazz)
{
- return UTS1.NAME;
+ return NAME;
}
public void reset()
Modified:
modules/portlet/trunk/portlet/src/test/java/org/jboss/portal/test/portlet/framework/UTS2.java
===================================================================
---
modules/portlet/trunk/portlet/src/test/java/org/jboss/portal/test/portlet/framework/UTS2.java 2008-01-29
14:12:04 UTC (rev 9630)
+++
modules/portlet/trunk/portlet/src/test/java/org/jboss/portal/test/portlet/framework/UTS2.java 2008-01-29
15:02:46 UTC (rev 9631)
@@ -41,11 +41,11 @@
public static final String NAME = "ServletB";
- public final static JoinPoint SERVICE_JOIN_POINT = new JoinPoint(UTS2.NAME,
JoinPointType.SERVLET_SERVICE);
+ public final static JoinPoint SERVICE_JOIN_POINT = new JoinPoint(NAME,
JoinPointType.SERVLET_SERVICE);
protected String createComponentId(Class clazz)
{
- return UTS2.NAME;
+ return NAME;
}
public void reset()
Added:
modules/portlet/trunk/portlet/src/test/java/org/jboss/portal/test/portlet/framework/UTS3.java
===================================================================
---
modules/portlet/trunk/portlet/src/test/java/org/jboss/portal/test/portlet/framework/UTS3.java
(rev 0)
+++
modules/portlet/trunk/portlet/src/test/java/org/jboss/portal/test/portlet/framework/UTS3.java 2008-01-29
15:02:46 UTC (rev 9631)
@@ -0,0 +1,55 @@
+/******************************************************************************
+ * JBoss, a division of Red Hat *
+ * Copyright 2006, Red Hat Middleware, LLC, and individual *
+ * contributors as indicated by the @authors tag. See the *
+ * copyright.txt in the distribution for a full listing of *
+ * individual contributors. *
+ * *
+ * This is free software; you can redistribute it and/or modify it *
+ * under the terms of the GNU Lesser General Public License as *
+ * published by the Free Software Foundation; either version 2.1 of *
+ * the License, or (at your option) any later version. *
+ * *
+ * This software is distributed in the hope that it will be useful, *
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of *
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU *
+ * Lesser General Public License for more details. *
+ * *
+ * You should have received a copy of the GNU Lesser General Public *
+ * License along with this software; if not, write to the Free *
+ * Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA *
+ * 02110-1301 USA, or see the FSF site:
http://www.fsf.org. *
+ ******************************************************************************/
+package org.jboss.portal.test.portlet.framework;
+
+import org.jboss.portal.unit.JoinPoint;
+import org.jboss.portal.unit.base.AbstractUniversalTestServlet;
+import org.jboss.portal.unit.JoinPointType;
+import org.jboss.portal.unit.annotations.TestActor;
+
+/**
+ * @author <a href="mailto:boleslaw.dawidowicz@jboss.org">Boleslaw
Dawidowicz</a>
+ * @version $Revision: 5568 $
+ */
+(a)TestActor(id=UTS3.NAME)
+public class UTS3 extends AbstractUniversalTestServlet
+{
+ /** The serialVersionUID */
+ private static final long serialVersionUID = -6331478437141464198L;
+
+ public static ThreadLocal local = new ThreadLocal();
+
+ public static final String NAME = "ServletC";
+
+ public final static JoinPoint SERVICE_JOIN_POINT = new JoinPoint(NAME,
JoinPointType.SERVLET_SERVICE);
+
+ protected String createComponentId(Class clazz)
+ {
+ return NAME;
+ }
+
+ public void reset()
+ {
+ local = new ThreadLocal();
+ }
+}
\ No newline at end of file
Added:
modules/portlet/trunk/portlet/src/test/java/org/jboss/portal/test/portlet/framework/UTS4.java
===================================================================
---
modules/portlet/trunk/portlet/src/test/java/org/jboss/portal/test/portlet/framework/UTS4.java
(rev 0)
+++
modules/portlet/trunk/portlet/src/test/java/org/jboss/portal/test/portlet/framework/UTS4.java 2008-01-29
15:02:46 UTC (rev 9631)
@@ -0,0 +1,55 @@
+/******************************************************************************
+ * JBoss, a division of Red Hat *
+ * Copyright 2006, Red Hat Middleware, LLC, and individual *
+ * contributors as indicated by the @authors tag. See the *
+ * copyright.txt in the distribution for a full listing of *
+ * individual contributors. *
+ * *
+ * This is free software; you can redistribute it and/or modify it *
+ * under the terms of the GNU Lesser General Public License as *
+ * published by the Free Software Foundation; either version 2.1 of *
+ * the License, or (at your option) any later version. *
+ * *
+ * This software is distributed in the hope that it will be useful, *
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of *
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU *
+ * Lesser General Public License for more details. *
+ * *
+ * You should have received a copy of the GNU Lesser General Public *
+ * License along with this software; if not, write to the Free *
+ * Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA *
+ * 02110-1301 USA, or see the FSF site:
http://www.fsf.org. *
+ ******************************************************************************/
+package org.jboss.portal.test.portlet.framework;
+
+import org.jboss.portal.unit.JoinPoint;
+import org.jboss.portal.unit.base.AbstractUniversalTestServlet;
+import org.jboss.portal.unit.JoinPointType;
+import org.jboss.portal.unit.annotations.TestActor;
+
+/**
+ * @author <a href="mailto:boleslaw.dawidowicz@jboss.org">Boleslaw
Dawidowicz</a>
+ * @version $Revision: 5568 $
+ */
+(a)TestActor(id=UTS4.NAME)
+public class UTS4 extends AbstractUniversalTestServlet
+{
+ /** The serialVersionUID */
+ private static final long serialVersionUID = -6331478437141464198L;
+
+ public static ThreadLocal local = new ThreadLocal();
+
+ public static final String NAME = "ServletD";
+
+ public final static JoinPoint SERVICE_JOIN_POINT = new JoinPoint(NAME,
JoinPointType.SERVLET_SERVICE);
+
+ protected String createComponentId(Class clazz)
+ {
+ return NAME;
+ }
+
+ public void reset()
+ {
+ local = new ThreadLocal();
+ }
+}
\ No newline at end of file
Added:
modules/portlet/trunk/portlet/src/test/java/org/jboss/portal/test/portlet/jsr286/tck/dispatcher/QueryStringInRequestDispatcherTestCase.java
===================================================================
---
modules/portlet/trunk/portlet/src/test/java/org/jboss/portal/test/portlet/jsr286/tck/dispatcher/QueryStringInRequestDispatcherTestCase.java
(rev 0)
+++
modules/portlet/trunk/portlet/src/test/java/org/jboss/portal/test/portlet/jsr286/tck/dispatcher/QueryStringInRequestDispatcherTestCase.java 2008-01-29
15:02:46 UTC (rev 9631)
@@ -0,0 +1,217 @@
+/******************************************************************************
+ * JBoss, a division of Red Hat *
+ * Copyright 2006, Red Hat Middleware, LLC, and individual *
+ * contributors as indicated by the @authors tag. See the *
+ * copyright.txt in the distribution for a full listing of *
+ * individual contributors. *
+ * *
+ * This is free software; you can redistribute it and/or modify it *
+ * under the terms of the GNU Lesser General Public License as *
+ * published by the Free Software Foundation; either version 2.1 of *
+ * the License, or (at your option) any later version. *
+ * *
+ * This software is distributed in the hope that it will be useful, *
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of *
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU *
+ * Lesser General Public License for more details. *
+ * *
+ * You should have received a copy of the GNU Lesser General Public *
+ * License along with this software; if not, write to the Free *
+ * Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA *
+ * 02110-1301 USA, or see the FSF site:
http://www.fsf.org. *
+ ******************************************************************************/
+package org.jboss.portal.test.portlet.jsr286.tck.dispatcher;
+
+import org.jboss.portal.unit.PortletTestCase;
+import org.jboss.portal.unit.PortletTestContext;
+import org.jboss.portal.unit.base.AbstractUniversalTestPortlet;
+import org.jboss.portal.unit.actions.PortletRenderTestAction;
+import org.jboss.portal.unit.actions.PortletActionTestAction;
+import org.jboss.portal.unit.actions.ServletServiceTestAction;
+import org.jboss.portal.unit.actions.PortletEventTestAction;
+import org.jboss.portal.unit.actions.PortletResourceTestAction;
+import org.jboss.portal.test.portlet.framework.UTP1;
+import org.jboss.portal.test.portlet.framework.UTS1;
+import org.jboss.portal.test.portlet.framework.UTS2;
+import org.jboss.portal.test.portlet.framework.UTS3;
+import org.jboss.portal.test.portlet.framework.UTS4;
+import org.jboss.portal.unit.annotations.TestCase;
+import org.jboss.portal.unit.Assertion;
+import org.jboss.unit.driver.DriverResponse;
+import org.jboss.unit.driver.response.EndTestResponse;
+import org.jboss.unit.remote.driver.handler.http.response.InvokeGetResponse;
+import static org.jboss.unit.api.Assert.*;
+
+import javax.portlet.Portlet;
+import javax.portlet.RenderRequest;
+import javax.portlet.RenderResponse;
+import javax.portlet.ActionRequest;
+import javax.portlet.ActionResponse;
+import javax.portlet.PortletException;
+import javax.portlet.PortletRequestDispatcher;
+import javax.portlet.PortletURL;
+import javax.portlet.EventRequest;
+import javax.portlet.EventResponse;
+import javax.portlet.ResourceURL;
+import javax.portlet.ResourceRequest;
+import javax.portlet.ResourceResponse;
+import javax.servlet.Servlet;
+import javax.servlet.ServletException;
+import javax.servlet.http.HttpServletRequest;
+import javax.servlet.http.HttpServletResponse;
+import java.io.IOException;
+import java.util.Map;
+import java.util.HashMap;
+
+/**
+ * @author <a href="mailto:julien@jboss.org">Julien Viet</a>
+ * @version $Revision: 1.1 $
+ */
+(a)TestCase({Assertion.JSR168_123})
+public class QueryStringInRequestDispatcherTestCase
+{
+
+ public QueryStringInRequestDispatcherTestCase(PortletTestCase seq)
+ {
+ seq.bindAction(0, UTP1.RENDER_JOIN_POINT, new PortletRenderTestAction()
+ {
+ protected DriverResponse run(Portlet portlet, RenderRequest request,
RenderResponse response, PortletTestContext context)
+ {
+ PortletURL actionURL = response.createActionURL();
+ actionURL.setParameter("key1", "k1actionvalue");
+ actionURL.setParameter("key3", "k3actionvalue");
+ return new InvokeGetResponse(actionURL.toString());
+ }
+ });
+
+ seq.bindAction(1, UTP1.ACTION_JOIN_POINT, new PortletActionTestAction()
+ {
+ protected void run(Portlet portlet, ActionRequest request, ActionResponse
response, PortletTestContext context) throws IOException, PortletException
+ {
+ Map<String, String[]> actionParams = new HashMap<String,
String[]>();
+ actionParams.put("key1", new String[]{"k1actionvalue"});
+ actionParams.put("key3", new String[]{"k3actionvalue"});
+ assertParameterMap(actionParams, request);
+
+ //
+ String path =
"/universalServletA?key1=k1value1&key2=k2value1";
+ PortletRequestDispatcher dispatcher =
((AbstractUniversalTestPortlet)portlet).getPortletContext().getRequestDispatcher(path);
+ dispatcher.include(request, response);
+
+ //assert that params from query string doesn't last longer then in
include call
+ assertParameterMap(actionParams, request);
+
+ //
+ response.setEvent("Event", null);
+ }
+ });
+ seq.bindAction(1, UTS1.SERVICE_JOIN_POINT, new ServletServiceTestAction()
+ {
+ protected DriverResponse run(Servlet servlet, HttpServletRequest request,
HttpServletResponse response, PortletTestContext context) throws ServletException,
IOException
+ {
+ assertEquals(new String[]{"k1value1","k1actionvalue"},
request.getParameterValues("key1"));
+ assertEquals(new String[]{"k2value1"},
request.getParameterValues("key2"));
+ assertEquals(new String[]{"k3actionvalue"},
request.getParameterValues("key3"));
+ return null;
+ }
+ });
+
+ seq.bindAction(1, UTP1.EVENT_JOIN_POINT, new PortletEventTestAction()
+ {
+ protected void run(Portlet portlet, EventRequest request, EventResponse
response, PortletTestContext context) throws PortletException, IOException
+ {
+ Map<String, String[]> eventParams = new HashMap<String,
String[]>();
+ assertParameterMap(eventParams, request);
+
+ //
+ String path =
"/universalServletB?key1=k1value1&key2=k2value1";
+ PortletRequestDispatcher dispatcher =
((AbstractUniversalTestPortlet)portlet).getPortletContext().getRequestDispatcher(path);
+ dispatcher.include(request, response);
+
+ //assert that params from query string doesn't last longer then in
include call
+ assertParameterMap(eventParams, request);
+
+ //set some render params to test them in dispatcher include (precedense)
+ response.setRenderParameter("key1", "k1rendervalue");
+ response.setRenderParameter("key3", "k3rendervalue");
+ }
+ });
+ seq.bindAction(1, UTS2.SERVICE_JOIN_POINT, new ServletServiceTestAction()
+ {
+ protected DriverResponse run(Servlet servlet, HttpServletRequest request,
HttpServletResponse response, PortletTestContext context) throws ServletException,
IOException
+ {
+ assertEquals(new String[]{"k1value1"},
request.getParameterValues("key1"));
+ assertEquals(new String[]{"k2value1"},
request.getParameterValues("key2"));
+ assertEquals(null, request.getParameterValues("key3"));
+ return null;
+ }
+ });
+
+ seq.bindAction(1, UTP1.RENDER_JOIN_POINT, new PortletRenderTestAction()
+ {
+ protected DriverResponse run(Portlet portlet, RenderRequest request,
RenderResponse response, PortletTestContext context) throws IOException, PortletException
+ {
+ Map<String, String[]> renderParams = new HashMap<String,
String[]>();
+ renderParams.put("key1", new String[]{"k1rendervalue"});
+ renderParams.put("key3", new String[]{"k3rendervalue"});
+ assertParameterMap(renderParams, request);
+
+ //
+ String path =
"/universalServletC?key1=k1value1&key2=k2value1";
+ PortletRequestDispatcher dispatcher =
((AbstractUniversalTestPortlet)portlet).getPortletContext().getRequestDispatcher(path);
+ dispatcher.include(request, response);
+
+ //assert that params from query string doesn't last longer then in
include call
+ assertParameterMap(renderParams, request);
+
+ //
+ ResourceURL resourceURL = response.createResourceURL();
+ resourceURL.setParameter("key1", "k1resourcevalue");
+ resourceURL.setParameter("key3", "k3resourcevalue");
+ return new InvokeGetResponse(resourceURL.toString());
+ }
+ });
+ seq.bindAction(1, UTS3.SERVICE_JOIN_POINT, new ServletServiceTestAction()
+ {
+ protected DriverResponse run(Servlet servlet, HttpServletRequest request,
HttpServletResponse response, PortletTestContext context) throws ServletException,
IOException
+ {
+ assertEquals(new String[]{"k1value1","k1rendervalue"},
request.getParameterValues("key1"));
+ assertEquals(new String[]{"k2value1"},
request.getParameterValues("key2"));
+ assertEquals(new String[]{"k3rendervalue"},
request.getParameterValues("key3"));
+ return null;
+ }
+ });
+
+ seq.bindAction(2, UTP1.RESOURCE_JOIN_POINT, new PortletResourceTestAction()
+ {
+ protected DriverResponse run(Portlet portlet, ResourceRequest request,
ResourceResponse response, PortletTestContext context) throws PortletException,
IOException
+ {
+ Map<String, String[]> resourceParams = new HashMap<String,
String[]>();
+ resourceParams.put("key1", new
String[]{"k1resourcevalue","k1rendervalue"});
+ resourceParams.put("key3", new
String[]{"k3resourcevalue","k3rendervalue"});
+ assertParameterMap(resourceParams, request);
+
+ //
+ String path =
"/universalServletD?key1=k1value1&key2=k2value1";
+ PortletRequestDispatcher dispatcher =
((AbstractUniversalTestPortlet)portlet).getPortletContext().getRequestDispatcher(path);
+ dispatcher.include(request, response);
+
+ //assert that params from query string doesn't last longer then in
include call
+ assertParameterMap(resourceParams, request);
+
+ //
+ return new EndTestResponse();
+ }
+ });
+ seq.bindAction(2, UTS4.SERVICE_JOIN_POINT, new ServletServiceTestAction()
+ {
+ protected DriverResponse run(Servlet servlet, HttpServletRequest request,
HttpServletResponse response, PortletTestContext context) throws ServletException,
IOException
+ {
+ assertEquals(new
String[]{"k1value1","k1resourcevalue","k1rendervalue"},
request.getParameterValues("key1"));
+ assertEquals(new String[]{"k2value1"},
request.getParameterValues("key2"));
+ assertEquals(new
String[]{"k3resourcevalue","k3rendervalue"},
request.getParameterValues("key3"));
+ return null;
+ }
+ });
+ }
+}
\ No newline at end of file
Modified:
modules/portlet/trunk/portlet/src/test/java/org/jboss/portal/unit/PortletTestContext.java
===================================================================
---
modules/portlet/trunk/portlet/src/test/java/org/jboss/portal/unit/PortletTestContext.java 2008-01-29
14:12:04 UTC (rev 9630)
+++
modules/portlet/trunk/portlet/src/test/java/org/jboss/portal/unit/PortletTestContext.java 2008-01-29
15:02:46 UTC (rev 9631)
@@ -26,6 +26,7 @@
import org.jboss.portal.common.NotYetImplemented;
import org.jboss.portal.unit.JoinPointType;
import org.jboss.unit.driver.DriverResponse;
+import org.jboss.unit.driver.response.FailureResponse;
import org.jboss.unit.remote.RequestContext;
import org.jboss.unit.remote.ResponseContext;
import org.jboss.unit.remote.http.HttpHeaders;
@@ -75,7 +76,8 @@
return portletTestCase.getActorId(requestContext.getRequestCount(),
joinPointType);
}
- public void setResponse(DriverResponse response)
+ // We don't expose it as it is can be used in a wrong manner, rather use update
response method
+ private void setResponse(DriverResponse response)
{
responseContext = new ResponseContext(response, new HashMap<String,
Serializable>());
}
@@ -85,6 +87,35 @@
return responseContext != null ? responseContext.getResponse() : null;
}
+ /**
+ * Update the context response with the provided response. The update will occur
+ * if there is no previous existing response. If there is an existing response
+ * this one will be overwrited only if it is not a failure and the provided
+ * response is a failure.
+ *
+ * @param response the new response
+ */
+ public void updateResponse(DriverResponse response)
+ {
+ if (response == null)
+ {
+ throw new IllegalArgumentException();
+ }
+
+ DriverResponse existingResponse = getResponse();
+
+ //
+ if (existingResponse instanceof FailureResponse)
+ {
+ // We keep the existing failure, since we want it reported
+ }
+ else if (response instanceof FailureResponse || existingResponse == null)
+ {
+ // We have a failure response and the context contains no response or a non
failure response
+ setResponse(response);
+ }
+ }
+
public int getRequestCount()
{
return requestContext.getRequestCount();
Modified:
modules/portlet/trunk/portlet/src/test/java/org/jboss/portal/unit/base/AbstractTestGenericPortlet.java
===================================================================
---
modules/portlet/trunk/portlet/src/test/java/org/jboss/portal/unit/base/AbstractTestGenericPortlet.java 2008-01-29
14:12:04 UTC (rev 9630)
+++
modules/portlet/trunk/portlet/src/test/java/org/jboss/portal/unit/base/AbstractTestGenericPortlet.java 2008-01-29
15:02:46 UTC (rev 9631)
@@ -85,7 +85,7 @@
}
//
- context.setResponse(response);
+ context.updateResponse(response);
}
public void render(RenderRequest req, RenderResponse resp) throws PortletException,
IOException
@@ -118,7 +118,7 @@
//
if (response != null)
{
- context.setResponse(response);
+ context.updateResponse(response);
}
}
}
Modified:
modules/portlet/trunk/portlet/src/test/java/org/jboss/portal/unit/base/AbstractUniversalTestPortlet.java
===================================================================
---
modules/portlet/trunk/portlet/src/test/java/org/jboss/portal/unit/base/AbstractUniversalTestPortlet.java 2008-01-29
14:12:04 UTC (rev 9630)
+++
modules/portlet/trunk/portlet/src/test/java/org/jboss/portal/unit/base/AbstractUniversalTestPortlet.java 2008-01-29
15:02:46 UTC (rev 9631)
@@ -153,36 +153,33 @@
TestAction action = portletTestCase.getAction(ctx.getRequestCount(),
NodeId.locate(), actionJoinPoint);
//
- if (action == null)
- {
- ctx.setResponse(new FailureResponse(Failure.createAssertionFailure("No
action for " + ctx.getRequestCount() + " " + NodeId.locate() + "
" + actionJoinPoint)));
- }
+ DriverResponse response;
if (action instanceof PortletTestAction)
{
log.debug("Found action for jointpoint " + actionJoinPoint + "
: " + action);
//
- DriverResponse response = ((PortletTestAction)action).execute(this, req,
resp, ctx);
-
- //
- ctx.setResponse(response);
+ response = ((PortletTestAction)action).execute(this, req, resp, ctx);
}
else if (action instanceof PortletActionTestAction)
{
log.debug("Found action for jointpoint " + actionJoinPoint + "
: " + action);
//
- DriverResponse response = ((PortletActionTestAction)action).execute(this,
req, resp, ctx);
-
- //
- ctx.setResponse(response);
+ response = ((PortletActionTestAction)action).execute(this, req, resp, ctx);
}
else
{
- ctx.setResponse(new
FailureResponse(Failure.createAssertionFailure("Action for " +
ctx.getRequestCount() +
+ response = new FailureResponse(Failure.createAssertionFailure("Action
for " + ctx.getRequestCount() +
" " + NodeId.locate() + " " + actionJoinPoint + "
does not have the right type but has the type " +
- action.getClass().getName())));
+ action.getClass().getName()));
}
+
+ //
+ if (response != null)
+ {
+ ctx.updateResponse(response);
+ }
}
}
@@ -209,32 +206,33 @@
//
if (action != null)
{
+ DriverResponse response = null;
if (action instanceof PortletTestAction)
{
log.debug("Found action for jointpoint " + eventJoinPoint +
" : " + action);
//
- DriverResponse response = ((PortletTestAction)action).execute(this,
req, resp, ctx);
-
- //
- ctx.setResponse(response);
+ response = ((PortletTestAction)action).execute(this, req, resp, ctx);
}
- if (action instanceof PortletEventTestAction)
+ else if (action instanceof PortletEventTestAction)
{
log.debug("Found action for jointpoint " + eventJoinPoint +
" : " + action);
//
- DriverResponse response =
((PortletEventTestAction)action).execute(this, req, resp, ctx);
-
- //
- ctx.setResponse(response);
+ response = ((PortletEventTestAction)action).execute(this, req, resp,
ctx);
}
else
{
- ctx.setResponse(new
FailureResponse(Failure.createAssertionFailure("Action for " +
ctx.getRequestCount() +
+ response = new
FailureResponse(Failure.createAssertionFailure("Action for " +
ctx.getRequestCount() +
" " + NodeId.locate() + " " + actionJoinPoint +
" does not have the right type but has the type " +
- action.getClass().getName())));
+ action.getClass().getName()));
}
+
+ //
+ if (response != null)
+ {
+ ctx.updateResponse(response);
+ }
}
}
}
@@ -266,14 +264,12 @@
}
//
- boolean invoked = false;
// Get the action
TestAction action = null;
PortletTestCase portletTestCase = getSequence(ctx.getTestName());
if (portletTestCase != null)
{
action = portletTestCase.getAction(ctx.getRequestCount(), NodeId.locate(),
renderJoinPoint);
-
}
//
@@ -305,18 +301,7 @@
// If we have one result it is meant to be returned to the client
if (response != null)
{
- DriverResponse existingResponse = ctx.getResponse();
-
- //
- if (existingResponse instanceof FailureResponse)
- {
- // We keep the existing failure, since we want it reported
- }
- else if (response instanceof FailureResponse || existingResponse == null)
- {
- // We have a failure response and the context contains no response or a
non failure response
- ctx.setResponse(response);
- }
+ ctx.updateResponse(response);
}
}
else
@@ -346,32 +331,33 @@
}
//
+ DriverResponse response;
if (action instanceof PortletTestAction)
{
log.debug("Found action for joinpoint " + resourceJoinPoint + " :
" + action);
// Get the result that must exist since it is the only joinpoint invoked during
this request
- DriverResponse response = ((PortletTestAction)action).execute(this, req, resp,
ctx);
-
- //
- ctx.setResponse(response);
+ response = ((PortletTestAction)action).execute(this, req, resp, ctx);
}
else if (action instanceof PortletResourceTestAction)
{
log.debug("Found action for joinpoint " + resourceJoinPoint + " :
" + action);
// Get the result that must exist since it is the only joinpoint invoked during
this request
- DriverResponse response = ((PortletResourceTestAction)action).execute(this, req,
resp, ctx);
-
- //
- ctx.setResponse(response);
+ response = ((PortletResourceTestAction)action).execute(this, req, resp, ctx);
}
else
{
- ctx.setResponse(new FailureResponse(Failure.createAssertionFailure("Action
for " + ctx.getRequestCount() +
+ response = new FailureResponse(Failure.createAssertionFailure("Action for
" + ctx.getRequestCount() +
" " + NodeId.locate() + " " + resourceJoinPoint + "
does not have the right type but has the type " +
- action.getClass().getName())));
+ action.getClass().getName()));
}
+
+ //
+ if (response != null)
+ {
+ ctx.updateResponse(response);
+ }
}
public void destroy()
Modified:
modules/portlet/trunk/portlet/src/test/java/org/jboss/portal/unit/base/AbstractUniversalTestServlet.java
===================================================================
---
modules/portlet/trunk/portlet/src/test/java/org/jboss/portal/unit/base/AbstractUniversalTestServlet.java 2008-01-29
14:12:04 UTC (rev 9630)
+++
modules/portlet/trunk/portlet/src/test/java/org/jboss/portal/unit/base/AbstractUniversalTestServlet.java 2008-01-29
15:02:46 UTC (rev 9631)
@@ -92,7 +92,7 @@
DriverResponse dr = ((ServletServiceTestAction)action).execute(this, request,
response, ctx);
if (dr != null)
{
- ctx.setResponse(dr);
+ ctx.updateResponse(dr);
}
}
Modified:
modules/portlet/trunk/test/src/test/resources/jsr286/tck/dispatcher-war/WEB-INF/portlet.xml
===================================================================
---
modules/portlet/trunk/test/src/test/resources/jsr286/tck/dispatcher-war/WEB-INF/portlet.xml 2008-01-29
14:12:04 UTC (rev 9630)
+++
modules/portlet/trunk/test/src/test/resources/jsr286/tck/dispatcher-war/WEB-INF/portlet.xml 2008-01-29
15:02:46 UTC (rev 9631)
@@ -22,10 +22,10 @@
~ 02110-1301 USA, or see the FSF site:
http://www.fsf.org. ~
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~-->
-<portlet-app
xmlns="http://java.sun.com/xml/ns/portlet/portlet-app_1_0.xsd"
+<portlet-app
xmlns="http://java.sun.com/xml/ns/portlet/portlet-app_2_0.xsd"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
-
xsi:schemaLocation="http://java.sun.com/xml/ns/portlet/portlet-app_1...
http://java.sun.com/xml/ns/portlet/portlet-app_1_0.xsd"
- version="1.0">
+
xsi:schemaLocation="http://java.sun.com/xml/ns/portlet/portlet-app_2...
http://java.sun.com/xml/ns/portlet/portlet-app_2_0.xsd"
+ version="2.0">
<portlet>
Modified:
modules/portlet/trunk/test/src/test/resources/jsr286/tck/dispatcher-war/WEB-INF/web.xml
===================================================================
---
modules/portlet/trunk/test/src/test/resources/jsr286/tck/dispatcher-war/WEB-INF/web.xml 2008-01-29
14:12:04 UTC (rev 9630)
+++
modules/portlet/trunk/test/src/test/resources/jsr286/tck/dispatcher-war/WEB-INF/web.xml 2008-01-29
15:02:46 UTC (rev 9631)
@@ -36,9 +36,38 @@
<servlet-class>org.jboss.portal.test.portlet.framework.UTS1</servlet-class>
</servlet>
+ <servlet>
+ <servlet-name>UniversalServletB</servlet-name>
+
<servlet-class>org.jboss.portal.test.portlet.framework.UTS2</servlet-class>
+ </servlet>
+
+ <servlet>
+ <servlet-name>UniversalServletC</servlet-name>
+
<servlet-class>org.jboss.portal.test.portlet.framework.UTS3</servlet-class>
+ </servlet>
+
+ <servlet>
+ <servlet-name>UniversalServletD</servlet-name>
+
<servlet-class>org.jboss.portal.test.portlet.framework.UTS4</servlet-class>
+ </servlet>
+
<servlet-mapping>
<servlet-name>UniversalServletA</servlet-name>
<url-pattern>/universalServletA/*</url-pattern>
</servlet-mapping>
+ <servlet-mapping>
+ <servlet-name>UniversalServletB</servlet-name>
+ <url-pattern>/universalServletB/*</url-pattern>
+ </servlet-mapping>
+
+ <servlet-mapping>
+ <servlet-name>UniversalServletC</servlet-name>
+ <url-pattern>/universalServletC/*</url-pattern>
+ </servlet-mapping>
+
+ <servlet-mapping>
+ <servlet-name>UniversalServletD</servlet-name>
+ <url-pattern>/universalServletD/*</url-pattern>
+ </servlet-mapping>
</web-app>