Author: julien(a)jboss.com
Date: 2008-02-01 18:56:02 -0500 (Fri, 01 Feb 2008)
New Revision: 9709
Added:
modules/portlet/trunk/portlet/src/test/java/org/jboss/portal/test/portlet/jsr286/tck/portleturl/ListenedURLUpdateTestCase.java
modules/portlet/trunk/portlet/src/test/java/org/jboss/portal/test/portlet/jsr286/tck/resourceserving/ResourceURLParametersTestCase.java
modules/portlet/trunk/test/src/main/java/org/jboss/portal/portlet/test/controller/MutablePageNavigationalState.java
modules/portlet/trunk/test/src/main/java/org/jboss/portal/portlet/test/controller/PageNavigationalState.java
Removed:
modules/portlet/trunk/test/src/main/java/org/jboss/portal/portlet/test/PageNavigationalState.java
Modified:
modules/portlet/trunk/portlet/src/main/java/org/jboss/portal/portlet/impl/jsr168/api/ResourceRequestImpl.java
modules/portlet/trunk/portlet/src/test/java/org/jboss/portal/test/portlet/jsr286/tck/portleturl/URLGenerationListenerTestCase.java
modules/portlet/trunk/portlet/src/test/java/org/jboss/portal/test/portlet/jsr286/tck/resourceserving/DowngradeCacheabilityTestCase.java
modules/portlet/trunk/portlet/src/test/java/org/jboss/portal/test/portlet/jsr286/tck/resourceserving/HTTPMethodTestCase.java
modules/portlet/trunk/portlet/src/test/java/org/jboss/portal/test/portlet/jsr286/tck/resourceserving/ResourceIDTestCase.java
modules/portlet/trunk/portlet/src/test/java/org/jboss/portal/unit/base/AbstractUniversalTestPortlet.java
modules/portlet/trunk/test/src/main/java/org/jboss/portal/portlet/test/PortletURLRenderer.java
modules/portlet/trunk/test/src/main/java/org/jboss/portal/portlet/test/controller/PortletController.java
modules/portlet/trunk/test/src/main/java/org/jboss/portal/portlet/test/controller/PortletControllerContextImpl.java
modules/portlet/trunk/test/src/main/java/org/jboss/portal/portlet/test/controller/PortletRequestHandler.java
modules/portlet/trunk/test/src/main/java/org/jboss/portal/portlet/test/controller/PortletResourceRequestHandler.java
modules/portlet/trunk/test/src/main/java/org/jboss/portal/portlet/test/controller/ViewRequestHandler.java
modules/portlet/trunk/test/src/test/resources/jsr286/tck/resourceserving-war/WEB-INF/portlet.xml
Log:
- update the controlleur to make the page navigational state immutable in order to
preserve the container request not modified
- added more test cases ...
Modified:
modules/portlet/trunk/portlet/src/main/java/org/jboss/portal/portlet/impl/jsr168/api/ResourceRequestImpl.java
===================================================================
---
modules/portlet/trunk/portlet/src/main/java/org/jboss/portal/portlet/impl/jsr168/api/ResourceRequestImpl.java 2008-02-01
22:58:18 UTC (rev 9708)
+++
modules/portlet/trunk/portlet/src/main/java/org/jboss/portal/portlet/impl/jsr168/api/ResourceRequestImpl.java 2008-02-01
23:56:02 UTC (rev 9709)
@@ -26,9 +26,11 @@
import org.jboss.portal.portlet.spi.ResourceInvocationContext;
import org.jboss.portal.portlet.impl.jsr168.ResourceRequestParameterMap;
import org.jboss.portal.common.util.MultiValuedPropertyMap;
+import org.jboss.portal.common.util.ParameterMap;
import javax.portlet.ResourceRequest;
import java.util.Map;
+import java.util.Collections;
/**
* @author <a href="mailto:julien@jboss.org">Julien Viet</a>
@@ -59,7 +61,17 @@
public Map<String, String[]> getPrivateRenderParameterMap()
{
- return
((ResourceRequestParameterMap)requestParameterMap).getPrivateRenderParameters();
+ ParameterMap parameters =
((ResourceRequestParameterMap)requestParameterMap).getPrivateRenderParameters();
+
+ //
+ if (parameters != null)
+ {
+ return Collections.unmodifiableMap(parameters);
+ }
+ else
+ {
+ return Collections.emptyMap();
+ }
}
public String getCacheability()
Added:
modules/portlet/trunk/portlet/src/test/java/org/jboss/portal/test/portlet/jsr286/tck/portleturl/ListenedURLUpdateTestCase.java
===================================================================
---
modules/portlet/trunk/portlet/src/test/java/org/jboss/portal/test/portlet/jsr286/tck/portleturl/ListenedURLUpdateTestCase.java
(rev 0)
+++
modules/portlet/trunk/portlet/src/test/java/org/jboss/portal/test/portlet/jsr286/tck/portleturl/ListenedURLUpdateTestCase.java 2008-02-01
23:56:02 UTC (rev 9709)
@@ -0,0 +1,202 @@
+/******************************************************************************
+ * 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.portleturl;
+
+import org.jboss.portal.unit.annotations.TestCase;
+import org.jboss.portal.unit.PortletTestCase;
+import org.jboss.portal.unit.PortletTestContext;
+import org.jboss.portal.unit.Assertion;
+import org.jboss.portal.unit.actions.PortletRenderTestAction;
+import org.jboss.portal.unit.actions.PortletResourceTestAction;
+import org.jboss.portal.unit.actions.PortletActionTestAction;
+import org.jboss.portal.test.portlet.framework.UTP1;
+import org.jboss.unit.driver.DriverResponse;
+import org.jboss.unit.driver.response.EndTestResponse;
+import static org.jboss.unit.api.Assert.*;
+import static org.jboss.unit.api.Assert.assertEquals;
+import org.jboss.unit.api.Assert;
+import org.jboss.unit.remote.driver.handler.http.response.InvokeGetResponse;
+
+import javax.portlet.Portlet;
+import javax.portlet.RenderRequest;
+import javax.portlet.RenderResponse;
+import javax.portlet.PortletException;
+import javax.portlet.PortletURL;
+import javax.portlet.PortletMode;
+import javax.portlet.ResourceURL;
+import javax.portlet.BaseURL;
+import javax.portlet.PortletRequest;
+import javax.portlet.MimeResponse;
+import javax.portlet.ResourceRequest;
+import javax.portlet.ResourceResponse;
+import javax.portlet.PortletURLGenerationListener;
+import javax.portlet.PortletModeException;
+import javax.portlet.WindowState;
+import javax.portlet.ActionRequest;
+import javax.portlet.ActionResponse;
+import java.io.IOException;
+import java.io.StringWriter;
+import java.util.HashMap;
+import java.util.Collections;
+
+/**
+ * @author <a href="mailto:julien@jboss.org">Julien Viet</a>
+ * @version $Revision: 630 $
+ */
+(a)TestCase({Assertion.JSR286_50})
+public class ListenedURLUpdateTestCase
+{
+ public ListenedURLUpdateTestCase(PortletTestCase seq)
+ {
+ seq.bindAction(0, UTP1.RENDER_JOIN_POINT, new PortletRenderTestAction()
+ {
+ protected DriverResponse run(Portlet portlet, RenderRequest request,
RenderResponse response, PortletTestContext context) throws PortletException, IOException
+ {
+ URLGenerationListener1.delegate = updater;
+ URLGenerationListener2.delegate = null;
+
+ //
+ PortletURL actionURL = response.createActionURL();
+
+ //
+ String s = actionURL.toString();
+
+ //
+ assertEquals(null, actionURL.getPortletMode());
+ assertEquals(null, actionURL.getWindowState());
+ assertEquals(0, actionURL.getParameterMap().size());
+
+ //
+ return new InvokeGetResponse(s);
+ }
+ });
+ seq.bindAction(1, UTP1.ACTION_JOIN_POINT, new PortletActionTestAction()
+ {
+ protected void run(Portlet portlet, ActionRequest request, ActionResponse
response, PortletTestContext context) throws PortletException, IOException
+ {
+ assertParameterMap(Collections.singletonMap("foo", new
String[]{"fooAction"}), request);
+ assertEquals(PortletMode.EDIT, request.getPortletMode());
+ assertEquals(WindowState.MAXIMIZED, request.getWindowState());
+ }
+ });
+ seq.bindAction(1, UTP1.RENDER_JOIN_POINT, new PortletRenderTestAction()
+ {
+ protected DriverResponse run(Portlet portlet, RenderRequest request,
RenderResponse response, PortletTestContext context) throws PortletException, IOException
+ {
+ PortletURL renderURL = response.createRenderURL();
+
+ //
+ String s = renderURL.toString();
+
+ //
+ assertEquals(null, renderURL.getPortletMode());
+ assertEquals(null, renderURL.getWindowState());
+ assertEquals(0, renderURL.getParameterMap().size());
+
+ //
+ return new InvokeGetResponse(s);
+ }
+ });
+ seq.bindAction(2, UTP1.RENDER_JOIN_POINT, new PortletRenderTestAction()
+ {
+ protected DriverResponse run(Portlet portlet, RenderRequest request,
RenderResponse response, PortletTestContext context) throws PortletException, IOException
+ {
+ assertParameterMap(Collections.singletonMap("foo", new
String[]{"fooRender"}), request);
+ assertEquals(PortletMode.VIEW, request.getPortletMode());
+ assertEquals(WindowState.NORMAL, request.getWindowState());
+
+ //
+ ResourceURL resourceURL = response.createResourceURL();
+
+ //
+ String s = resourceURL.toString();
+
+ //
+ assertEquals(ResourceURL.PAGE, resourceURL.getCacheability());
+ assertEquals(0, resourceURL.getParameterMap().size());
+
+ //
+ return new InvokeGetResponse(s);
+ }
+ });
+ seq.bindAction(3, UTP1.RESOURCE_JOIN_POINT, new PortletResourceTestAction()
+ {
+ protected DriverResponse run(Portlet portlet, ResourceRequest request,
ResourceResponse response, PortletTestContext context) throws PortletException,
IOException
+ {
+ assertParameterMap(Collections.singletonMap("foo", new
String[]{"fooResource"}), request);
+ assertEquals("foo_resource_id", request.getResourceID());
+ assertEquals(ResourceURL.PORTLET, request.getCacheability());
+
+
+ return new EndTestResponse();
+ }
+ });
+ }
+
+ private static final PortletURLGenerationListener updater = new
PortletURLGenerationListener()
+ {
+
+
+
+ public void filterActionURL(PortletURL portletURL)
+ {
+ try
+ {
+ portletURL.setPortletMode(PortletMode.EDIT);
+ portletURL.setWindowState(WindowState.MAXIMIZED);
+ portletURL.setParameter("foo", "fooAction");
+ }
+ catch (Exception e)
+ {
+ }
+ }
+
+ public void filterRenderURL(PortletURL portletURL)
+ {
+ try
+ {
+ portletURL.setPortletMode(PortletMode.VIEW);
+ portletURL.setWindowState(WindowState.NORMAL);
+ portletURL.setParameter("foo", "fooRender");
+ }
+ catch (Exception e)
+ {
+ }
+ }
+
+ public void filterResourceURL(ResourceURL resourceURL)
+ {
+ try
+ {
+ resourceURL.setParameter("foo", "fooResource");
+ resourceURL.setResourceID("foo_resource_id");
+ resourceURL.setCacheability(ResourceURL.PORTLET);
+ }
+ catch (Exception e)
+ {
+ }
+ }
+ };
+
+
+}
\ No newline at end of file
Modified:
modules/portlet/trunk/portlet/src/test/java/org/jboss/portal/test/portlet/jsr286/tck/portleturl/URLGenerationListenerTestCase.java
===================================================================
---
modules/portlet/trunk/portlet/src/test/java/org/jboss/portal/test/portlet/jsr286/tck/portleturl/URLGenerationListenerTestCase.java 2008-02-01
22:58:18 UTC (rev 9708)
+++
modules/portlet/trunk/portlet/src/test/java/org/jboss/portal/test/portlet/jsr286/tck/portleturl/URLGenerationListenerTestCase.java 2008-02-01
23:56:02 UTC (rev 9709)
@@ -65,6 +65,10 @@
{
protected DriverResponse run(Portlet portlet, RenderRequest request,
RenderResponse response, PortletTestContext context) throws PortletException, IOException
{
+ URLGenerationListener1.delegate =
CallbackQueue.createListener("l1");
+ URLGenerationListener2.delegate =
CallbackQueue.createListener("l2");
+
+ //
test(response, URLRenderer.ToString);
test(response, URLRenderer.Write);
test(response, URLRenderer.WriteXMLEspaced);
@@ -91,8 +95,6 @@
{
CallbackQueue.clear();
PortletURL actionURL = response.createActionURL();
- URLGenerationListener1.delegate = CallbackQueue.createListener("l1");
- URLGenerationListener2.delegate = CallbackQueue.createListener("l2");
assertEquals(0, CallbackQueue.size());
// Assert initial state
Modified:
modules/portlet/trunk/portlet/src/test/java/org/jboss/portal/test/portlet/jsr286/tck/resourceserving/DowngradeCacheabilityTestCase.java
===================================================================
---
modules/portlet/trunk/portlet/src/test/java/org/jboss/portal/test/portlet/jsr286/tck/resourceserving/DowngradeCacheabilityTestCase.java 2008-02-01
22:58:18 UTC (rev 9708)
+++
modules/portlet/trunk/portlet/src/test/java/org/jboss/portal/test/portlet/jsr286/tck/resourceserving/DowngradeCacheabilityTestCase.java 2008-02-01
23:56:02 UTC (rev 9709)
@@ -29,6 +29,7 @@
import org.jboss.portal.unit.actions.PortletRenderTestAction;
import org.jboss.portal.unit.actions.PortletResourceTestAction;
import org.jboss.portal.test.portlet.framework.UTP2;
+import org.jboss.portal.test.portlet.framework.UTP1;
import org.jboss.unit.driver.DriverResponse;
import org.jboss.unit.driver.response.EndTestResponse;
import org.jboss.unit.remote.driver.handler.http.response.InvokeGetResponse;
@@ -73,7 +74,7 @@
{
public DowngradeCacheabilityTestCase(PortletTestCase seq)
{
- seq.bindAction(0, UTP2.RENDER_JOIN_POINT, new PortletRenderTestAction()
+ seq.bindAction(0, UTP1.RENDER_JOIN_POINT, new PortletRenderTestAction()
{
protected DriverResponse run(Portlet portlet, RenderRequest request,
RenderResponse response, PortletTestContext context) throws PortletException, IOException
{
@@ -84,7 +85,7 @@
return new InvokeGetResponse(resourceURL.toString());
}
});
- seq.bindAction(1, UTP2.RESOURCE_JOIN_POINT, new PortletResourceTestAction()
+ seq.bindAction(1, UTP1.RESOURCE_JOIN_POINT, new PortletResourceTestAction()
{
protected DriverResponse run(Portlet portlet, ResourceRequest request,
ResourceResponse response, PortletTestContext context) throws PortletException,
IOException
{
@@ -133,7 +134,7 @@
return new InvokeGetResponse(resourceURL.toString());
}
});
- seq.bindAction(2, UTP2.RESOURCE_JOIN_POINT, new PortletResourceTestAction()
+ seq.bindAction(2, UTP1.RESOURCE_JOIN_POINT, new PortletResourceTestAction()
{
protected DriverResponse run(Portlet portlet, ResourceRequest request,
ResourceResponse response, PortletTestContext context) throws PortletException,
IOException
{
@@ -145,7 +146,7 @@
return new InvokeGetResponse(resourceURL.toString());
}
});
- seq.bindAction(3, UTP2.RESOURCE_JOIN_POINT, new PortletResourceTestAction()
+ seq.bindAction(3, UTP1.RESOURCE_JOIN_POINT, new PortletResourceTestAction()
{
protected DriverResponse run(Portlet portlet, ResourceRequest request,
ResourceResponse response, PortletTestContext context) throws PortletException,
IOException
{
@@ -205,7 +206,7 @@
return new InvokeGetResponse(resourceURL.toString());
}
});
- seq.bindAction(4, UTP2.RESOURCE_JOIN_POINT, new PortletResourceTestAction()
+ seq.bindAction(4, UTP1.RESOURCE_JOIN_POINT, new PortletResourceTestAction()
{
protected DriverResponse run(Portlet portlet, ResourceRequest request,
ResourceResponse response, PortletTestContext context) throws PortletException,
IOException
{
Modified:
modules/portlet/trunk/portlet/src/test/java/org/jboss/portal/test/portlet/jsr286/tck/resourceserving/HTTPMethodTestCase.java
===================================================================
---
modules/portlet/trunk/portlet/src/test/java/org/jboss/portal/test/portlet/jsr286/tck/resourceserving/HTTPMethodTestCase.java 2008-02-01
22:58:18 UTC (rev 9708)
+++
modules/portlet/trunk/portlet/src/test/java/org/jboss/portal/test/portlet/jsr286/tck/resourceserving/HTTPMethodTestCase.java 2008-02-01
23:56:02 UTC (rev 9709)
@@ -29,6 +29,7 @@
import org.jboss.portal.unit.actions.PortletRenderTestAction;
import org.jboss.portal.unit.actions.PortletResourceTestAction;
import org.jboss.portal.test.portlet.framework.UTP4;
+import org.jboss.portal.test.portlet.framework.UTP1;
import org.jboss.unit.driver.DriverResponse;
import org.jboss.unit.driver.response.EndTestResponse;
import org.jboss.unit.remote.driver.handler.http.response.InvokeGetResponse;
@@ -61,7 +62,7 @@
{
public HTTPMethodTestCase(PortletTestCase seq)
{
- seq.bindAction(0, UTP4.RENDER_JOIN_POINT, new PortletRenderTestAction()
+ seq.bindAction(0, UTP1.RENDER_JOIN_POINT, new PortletRenderTestAction()
{
protected DriverResponse run(Portlet portlet, RenderRequest request,
RenderResponse response, PortletTestContext context) throws PortletException, IOException
{
@@ -69,7 +70,7 @@
return new InvokeGetResponse(resourceURL.toString());
}
});
- seq.bindAction(1, UTP4.RESOURCE_JOIN_POINT, new PortletResourceTestAction()
+ seq.bindAction(1, UTP1.RESOURCE_JOIN_POINT, new PortletResourceTestAction()
{
protected DriverResponse run(Portlet portlet, ResourceRequest request,
ResourceResponse response, PortletTestContext context) throws PortletException,
IOException
{
@@ -81,7 +82,7 @@
return post;
}
});
- seq.bindAction(2, UTP4.RESOURCE_JOIN_POINT, new PortletResourceTestAction()
+ seq.bindAction(2, UTP1.RESOURCE_JOIN_POINT, new PortletResourceTestAction()
{
protected DriverResponse run(Portlet portlet, ResourceRequest request,
ResourceResponse response, PortletTestContext context) throws PortletException,
IOException
{
Modified:
modules/portlet/trunk/portlet/src/test/java/org/jboss/portal/test/portlet/jsr286/tck/resourceserving/ResourceIDTestCase.java
===================================================================
---
modules/portlet/trunk/portlet/src/test/java/org/jboss/portal/test/portlet/jsr286/tck/resourceserving/ResourceIDTestCase.java 2008-02-01
22:58:18 UTC (rev 9708)
+++
modules/portlet/trunk/portlet/src/test/java/org/jboss/portal/test/portlet/jsr286/tck/resourceserving/ResourceIDTestCase.java 2008-02-01
23:56:02 UTC (rev 9709)
@@ -29,6 +29,7 @@
import org.jboss.portal.unit.actions.PortletRenderTestAction;
import org.jboss.portal.unit.actions.PortletResourceTestAction;
import org.jboss.portal.test.portlet.framework.UTP3;
+import org.jboss.portal.test.portlet.framework.UTP1;
import org.jboss.unit.driver.DriverResponse;
import org.jboss.unit.driver.response.EndTestResponse;
import org.jboss.unit.remote.driver.handler.http.response.InvokeGetResponse;
@@ -61,7 +62,7 @@
{
public ResourceIDTestCase(PortletTestCase seq)
{
- seq.bindAction(0, UTP3.RENDER_JOIN_POINT, new PortletRenderTestAction()
+ seq.bindAction(0, UTP1.RENDER_JOIN_POINT, new PortletRenderTestAction()
{
protected DriverResponse run(Portlet portlet, RenderRequest request,
RenderResponse response, PortletTestContext context) throws PortletException, IOException
{
@@ -69,7 +70,7 @@
return new InvokeGetResponse(resourceURL.toString());
}
});
- seq.bindAction(1, UTP3.RESOURCE_JOIN_POINT, new PortletResourceTestAction()
+ seq.bindAction(1, UTP1.RESOURCE_JOIN_POINT, new PortletResourceTestAction()
{
protected DriverResponse run(Portlet portlet, ResourceRequest request,
ResourceResponse response, PortletTestContext context) throws PortletException,
IOException
{
@@ -79,7 +80,7 @@
return new InvokeGetResponse(resourceURL.toString());
}
});
- seq.bindAction(2, UTP3.RESOURCE_JOIN_POINT, new PortletResourceTestAction()
+ seq.bindAction(2, UTP1.RESOURCE_JOIN_POINT, new PortletResourceTestAction()
{
protected DriverResponse run(Portlet portlet, ResourceRequest request,
ResourceResponse response, PortletTestContext context) throws PortletException,
IOException
{
Added:
modules/portlet/trunk/portlet/src/test/java/org/jboss/portal/test/portlet/jsr286/tck/resourceserving/ResourceURLParametersTestCase.java
===================================================================
---
modules/portlet/trunk/portlet/src/test/java/org/jboss/portal/test/portlet/jsr286/tck/resourceserving/ResourceURLParametersTestCase.java
(rev 0)
+++
modules/portlet/trunk/portlet/src/test/java/org/jboss/portal/test/portlet/jsr286/tck/resourceserving/ResourceURLParametersTestCase.java 2008-02-01
23:56:02 UTC (rev 9709)
@@ -0,0 +1,214 @@
+/******************************************************************************
+ * 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.resourceserving;
+
+import org.jboss.portal.unit.PortletTestCase;
+import org.jboss.portal.unit.PortletTestContext;
+import org.jboss.portal.unit.Assertion;
+import org.jboss.portal.unit.annotations.TestCase;
+import org.jboss.portal.unit.actions.PortletRenderTestAction;
+import org.jboss.portal.unit.actions.PortletResourceTestAction;
+import org.jboss.portal.test.portlet.framework.UTP1;
+import org.jboss.unit.driver.DriverResponse;
+import org.jboss.unit.driver.response.EndTestResponse;
+import org.jboss.unit.remote.driver.handler.http.response.InvokeGetResponse;
+import org.jboss.unit.remote.driver.handler.http.response.InvokePostResponse;
+import org.jboss.unit.remote.http.HttpRequest;
+
+import javax.portlet.Portlet;
+import javax.portlet.RenderRequest;
+import javax.portlet.RenderResponse;
+import javax.portlet.PortletException;
+import javax.portlet.PortletURL;
+import javax.portlet.ResourceURL;
+import javax.portlet.ResourceRequest;
+import javax.portlet.ResourceResponse;
+import java.io.IOException;
+import java.util.Map;
+import java.util.HashMap;
+import java.util.Collections;
+
+/**
+ * @author <a href="mailto:julien@jboss.org">Julien Viet</a>
+ * @version $Revision: 630 $
+ */
+(a)TestCase({Assertion.JSR286_128})
+public class ResourceURLParametersTestCase
+{
+
+ public ResourceURLParametersTestCase(PortletTestCase seq)
+ {
+ seq.bindAction(0, UTP1.RENDER_JOIN_POINT, new PortletRenderTestAction()
+ {
+ protected DriverResponse run(Portlet portlet, RenderRequest request,
RenderResponse response, PortletTestContext context) throws PortletException, IOException
+ {
+ ResourceURL url = response.createResourceURL();
+
+ //
+ url.setParameter("foo", new String[]{"foo_resource"});
+
+ //
+ return new InvokeGetResponse(url.toString());
+ }
+ });
+ seq.bindAction(1, UTP1.RESOURCE_JOIN_POINT, new PortletResourceTestAction()
+ {
+ protected DriverResponse run(Portlet portlet, ResourceRequest request,
ResourceResponse response, PortletTestContext context) throws PortletException,
IOException
+ {
+ Map<String, String[]> expectedParameters =
Collections.singletonMap("foo", new String[]{"foo_resource"});
+ assertParameterMap(expectedParameters, request);
+ assertParameterMap(expectedParameters, request.getPrivateParameterMap());
+ assertParameterMap(new HashMap<String, String[]>(),
request.getPrivateRenderParameterMap());
+ assertParameterMap(new HashMap<String, String[]>(),
request.getPublicParameterMap());
+
+ //
+ ResourceURL url = response.createResourceURL();
+
+ //
+ url.setParameter("foo", new String[]{"foo_resource"});
+ url.setParameter("bar", new String[]{"bar_resource"});
+
+ //
+ InvokePostResponse post = new InvokePostResponse(url.toString());
+ post.setContentType(InvokePostResponse.APPLICATION_X_WWW_FORM_URLENCODED);
+ HttpRequest.Form form = new HttpRequest.Form();
+ form.addParameter("bar", new String[]{"bar_form"});
+ form.addParameter("juu", new String[]{"juu_form"});
+ post.setBody(form);
+
+ //
+ return post;
+ }
+ });
+ 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[]> expectedParameters = new HashMap<String,
String[]>();
+ expectedParameters.put("foo", new
String[]{"foo_resource"});
+ expectedParameters.put("bar", new
String[]{"bar_resource", "bar_form"});
+ expectedParameters.put("juu", new String[]{"juu_form"});
+ assertParameterMap(expectedParameters, request);
+ assertParameterMap(expectedParameters, request.getPrivateParameterMap());
+ assertParameterMap(new HashMap<String, String[]>(),
request.getPrivateRenderParameterMap());
+ assertParameterMap(new HashMap<String, String[]>(),
request.getPublicParameterMap());
+
+ //
+ PortletURL renderURL = response.createRenderURL();
+ renderURL.setParameter("daa", "daa_render");
+ renderURL.setParameter("wee", "wee_render");
+ renderURL.setParameter("zii", "zii_render");
+
+ //
+ return new InvokeGetResponse(renderURL.toString());
+ }
+ });
+ seq.bindAction(3, UTP1.RENDER_JOIN_POINT, new PortletRenderTestAction()
+ {
+ protected DriverResponse run(Portlet portlet, RenderRequest request,
RenderResponse response, PortletTestContext context) throws PortletException, IOException
+ {
+ ResourceURL url = response.createResourceURL();
+
+ //
+ url.setParameter("foo", new String[]{"foo_resource"});
+ url.setParameter("daa", new String[]{"daa_resource"});
+
+ //
+ return new InvokeGetResponse(url.toString());
+ }
+ });
+ seq.bindAction(4, UTP1.RESOURCE_JOIN_POINT, new PortletResourceTestAction()
+ {
+ protected DriverResponse run(Portlet portlet, ResourceRequest request,
ResourceResponse response, PortletTestContext context) throws PortletException,
IOException
+ {
+ Map<String, String[]> expectedPrivateParameters = new
HashMap<String, String[]>();
+ expectedPrivateParameters.put("foo", new
String[]{"foo_resource"});
+ expectedPrivateParameters.put("daa", new
String[]{"daa_resource"});
+ Map<String, String[]> expectedParameters = new HashMap<String,
String[]>();
+ expectedParameters.put("foo", new
String[]{"foo_resource"});
+ expectedParameters.put("daa", new
String[]{"daa_resource","daa_render"});
+ expectedParameters.put("wee", new
String[]{"wee_render"});
+ expectedParameters.put("zii", new
String[]{"zii_render"});
+ Map<String, String[]> expectedPrivateRenderParameters = new
HashMap<String, String[]>();
+ expectedPrivateRenderParameters.put("daa", new
String[]{"daa_render"});
+ expectedPrivateRenderParameters.put("wee", new
String[]{"wee_render"});
+ expectedPrivateRenderParameters.put("zii", new
String[]{"zii_render"});
+ assertParameterMap(expectedParameters, request);
+// assertParameterMap(expectedPrivateParameters,
request.getPrivateParameterMap());
+// assertParameterMap(expectedPrivateRenderParameters,
request.getPrivateRenderParameterMap());
+// assertParameterMap(new HashMap<String, String[]>(),
request.getPublicParameterMap());
+
+ //
+ return new EndTestResponse();
+ }
+ });
+
+
+
+
+
+
+// seq.bindAction(0, UTP1.RENDER_JOIN_POINT, new PortletRenderTestAction()
+// {
+// protected DriverResponse run(Portlet portlet, RenderRequest request,
RenderResponse response, PortletTestContext context) throws PortletException, IOException
+// {
+// PortletURL url = response.createRenderURL();
+//
+// //
+// url.setParameter("bar", new String[]{"bar_render"});
+// url.setParameter("juu", new String[]{"juu_render"});
+//
+// //
+// return new InvokeGetResponse(url.toString());
+// }
+// });
+// seq.bindAction(1, UTP1.RENDER_JOIN_POINT, new PortletRenderTestAction()
+// {
+// protected DriverResponse run(Portlet portlet, RenderRequest request,
RenderResponse response, PortletTestContext context) throws PortletException, IOException
+// {
+// ResourceURL url = response.createResourceURL();
+//
+// //
+// url.setParameter("foo", new String[]{"foo_resource"});
+// url.setParameter("bar", new String[]{"bar_resource"});
+//
+// //
+// return new InvokeGetResponse(url.toString());
+// }
+// });
+// 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[]> expectedParameters = new HashMap<String,
String[]>();
+// expectedParameters.put("bar", new
String[]{"bar_resource","bar_render"});
+// expectedParameters.put("foo", new
String[]{"foo_resource"});
+// expectedParameters.put("juu", new
String[]{"juu_render"});
+// assertParameterMap(expectedParameters, request);
+//
+// //
+// return new EndTestResponse();
+// }
+// });
+ }
+}
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-02-01
22:58:18 UTC (rev 9708)
+++
modules/portlet/trunk/portlet/src/test/java/org/jboss/portal/unit/base/AbstractUniversalTestPortlet.java 2008-02-01
23:56:02 UTC (rev 9709)
@@ -221,6 +221,11 @@
//
response = ((PortletEventTestAction)action).execute(this, req, resp,
ctx);
}
+ else if (action == null)
+ {
+ response = new
FailureResponse(Failure.createAssertionFailure("Action for " +
ctx.getRequestCount() +
+ " " + NodeId.locate() + " " + actionJoinPoint +
" is null"));
+ }
else
{
response = new
FailureResponse(Failure.createAssertionFailure("Action for " +
ctx.getRequestCount() +
@@ -291,6 +296,11 @@
//
response = ((PortletRenderTestAction)action).execute(this, req, resp, ctx);
}
+ else if (action == null)
+ {
+ response = new FailureResponse(Failure.createAssertionFailure("Action
for " + ctx.getRequestCount() +
+ " " + NodeId.locate() + " " + resourceJoinPoint + "
is null"));
+ }
else
{
response = new FailureResponse(Failure.createAssertionFailure("Action
for " + ctx.getRequestCount() +
@@ -346,6 +356,11 @@
// Get the result that must exist since it is the only joinpoint invoked during
this request
response = ((PortletResourceTestAction)action).execute(this, req, resp, ctx);
}
+ else if (action == null)
+ {
+ response = new FailureResponse(Failure.createAssertionFailure("Action for
" + ctx.getRequestCount() +
+ " " + NodeId.locate() + " " + resourceJoinPoint + "
is null"));
+ }
else
{
response = new FailureResponse(Failure.createAssertionFailure("Action for
" + ctx.getRequestCount() +
Deleted:
modules/portlet/trunk/test/src/main/java/org/jboss/portal/portlet/test/PageNavigationalState.java
===================================================================
---
modules/portlet/trunk/test/src/main/java/org/jboss/portal/portlet/test/PageNavigationalState.java 2008-02-01
22:58:18 UTC (rev 9708)
+++
modules/portlet/trunk/test/src/main/java/org/jboss/portal/portlet/test/PageNavigationalState.java 2008-02-01
23:56:02 UTC (rev 9709)
@@ -1,110 +0,0 @@
-/******************************************************************************
- * 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.portlet.test;
-
-import org.jboss.portal.common.util.ParameterMap;
-import org.jboss.portal.portlet.Portlet;
-import org.jboss.portal.portlet.info.PortletInfo;
-import org.jboss.portal.portlet.info.ParameterInfo;
-
-import javax.xml.namespace.QName;
-import java.util.Map;
-import java.util.HashMap;
-import java.util.zip.GZIPOutputStream;
-import java.util.zip.GZIPInputStream;
-import java.io.Serializable;
-import java.io.ObjectOutputStream;
-import java.io.ByteArrayOutputStream;
-import java.io.IOException;
-import java.io.ByteArrayInputStream;
-import java.io.ObjectInputStream;
-
-/**
- * @author <a href="mailto:julien@jboss.org">Julien Viet</a>
- * @version $Revision: 1.1 $
- */
-public class PageNavigationalState implements Serializable
-{
-
- /** . */
- private final Map<String, WindowNavigationalState> windows = new
HashMap<String, WindowNavigationalState>();
-
- /** . */
- private final Map<QName, String[]> page = new HashMap<QName, String[]>();
-
- public WindowNavigationalState getWindowNavigationalState(String windowId)
- {
- return windows.get(windowId);
- }
-
- public void setWindowNavigationalState(String windowId, WindowNavigationalState
windowNS)
- {
- windows.put(windowId, windowNS);
- }
-
- public Map<QName, String[]> getPageNavigationalState()
- {
- return page;
- }
-
- public ParameterMap getPublicNavigationalState(Portlet portlet)
- {
- PortletInfo portletInfo = portlet.getInfo();
- Map<QName, String[]> pm = page;
- ParameterMap publicNavigationalState = null;
- for (ParameterInfo parameterInfo :
portletInfo.getNavigation().getPublicParameters())
- {
- String[] parameterValue = pm.get(parameterInfo.getName());
- if (parameterValue != null)
- {
- String parameterId = parameterInfo.getId();
- if (publicNavigationalState == null)
- {
- publicNavigationalState = new ParameterMap();
- }
-
- //
- publicNavigationalState.put(parameterId, parameterValue);
- }
- }
- return publicNavigationalState;
- }
-
- public static byte[] serialize(PageNavigationalState object) throws IOException
- {
- ByteArrayOutputStream baos = new ByteArrayOutputStream();
- GZIPOutputStream zos = new GZIPOutputStream(baos);
- ObjectOutputStream oos = new ObjectOutputStream(zos);
- oos.writeObject(object);
- oos.close();
- return baos.toByteArray();
- }
-
- public static PageNavigationalState unserialize(byte[] bytes) throws IOException,
ClassNotFoundException
- {
- ByteArrayInputStream bais = new ByteArrayInputStream(bytes);
- GZIPInputStream zis = new GZIPInputStream(bais);
- ObjectInputStream ois = new ObjectInputStream(zis);
- return (PageNavigationalState)ois.readObject();
- }
-}
Modified:
modules/portlet/trunk/test/src/main/java/org/jboss/portal/portlet/test/PortletURLRenderer.java
===================================================================
---
modules/portlet/trunk/test/src/main/java/org/jboss/portal/portlet/test/PortletURLRenderer.java 2008-02-01
22:58:18 UTC (rev 9708)
+++
modules/portlet/trunk/test/src/main/java/org/jboss/portal/portlet/test/PortletURLRenderer.java 2008-02-01
23:56:02 UTC (rev 9709)
@@ -35,6 +35,7 @@
import org.jboss.portal.common.util.Tools;
import org.jboss.portal.common.io.IOTools;
import static org.jboss.portal.portlet.test.URLParameterConstants.*;
+import org.jboss.portal.portlet.test.controller.PageNavigationalState;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
Added:
modules/portlet/trunk/test/src/main/java/org/jboss/portal/portlet/test/controller/MutablePageNavigationalState.java
===================================================================
---
modules/portlet/trunk/test/src/main/java/org/jboss/portal/portlet/test/controller/MutablePageNavigationalState.java
(rev 0)
+++
modules/portlet/trunk/test/src/main/java/org/jboss/portal/portlet/test/controller/MutablePageNavigationalState.java 2008-02-01
23:56:02 UTC (rev 9709)
@@ -0,0 +1,60 @@
+/******************************************************************************
+ * 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.portlet.test.controller;
+
+import org.jboss.portal.portlet.test.WindowNavigationalState;
+
+import javax.xml.namespace.QName;
+
+/**
+ * @author <a href="mailto:julien@jboss.org">Julien Viet</a>
+ * @version $Revision: 1.1 $
+ */
+public class MutablePageNavigationalState extends PageNavigationalState
+{
+
+ public MutablePageNavigationalState()
+ {
+ }
+
+ public MutablePageNavigationalState(PageNavigationalState original)
+ {
+ super(original);
+ }
+
+ public void setWindowNavigationalState(String windowId, WindowNavigationalState
windowNS)
+ {
+ windows.put(windowId, windowNS);
+ }
+
+ public void setPublicNavigationalState(QName name, String[] value)
+ {
+ // We clone the value in order to keep the state not mutated by a side effect
+ page.put(name, value.clone());
+ }
+
+ public void removePublicNavigationalState(QName name)
+ {
+ page.remove(name);
+ }
+}
\ No newline at end of file
Copied:
modules/portlet/trunk/test/src/main/java/org/jboss/portal/portlet/test/controller/PageNavigationalState.java
(from rev 9707,
modules/portlet/trunk/test/src/main/java/org/jboss/portal/portlet/test/PageNavigationalState.java)
===================================================================
---
modules/portlet/trunk/test/src/main/java/org/jboss/portal/portlet/test/controller/PageNavigationalState.java
(rev 0)
+++
modules/portlet/trunk/test/src/main/java/org/jboss/portal/portlet/test/controller/PageNavigationalState.java 2008-02-01
23:56:02 UTC (rev 9709)
@@ -0,0 +1,117 @@
+/******************************************************************************
+ * 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.portlet.test.controller;
+
+import org.jboss.portal.common.util.ParameterMap;
+import org.jboss.portal.portlet.Portlet;
+import org.jboss.portal.portlet.test.WindowNavigationalState;
+import org.jboss.portal.portlet.info.PortletInfo;
+import org.jboss.portal.portlet.info.ParameterInfo;
+
+import javax.xml.namespace.QName;
+import java.util.Map;
+import java.util.HashMap;
+import java.util.zip.GZIPOutputStream;
+import java.util.zip.GZIPInputStream;
+import java.io.Serializable;
+import java.io.ObjectOutputStream;
+import java.io.ByteArrayOutputStream;
+import java.io.IOException;
+import java.io.ByteArrayInputStream;
+import java.io.ObjectInputStream;
+
+/**
+ * @author <a href="mailto:julien@jboss.org">Julien Viet</a>
+ * @version $Revision: 1.1 $
+ */
+public class PageNavigationalState implements Serializable
+{
+
+ /** . */
+ protected final Map<String, WindowNavigationalState> windows;
+
+ /** . */
+ protected final Map<QName, String[]> page;
+
+ public PageNavigationalState()
+ {
+ this.windows = new HashMap<String, WindowNavigationalState>();
+ this.page = new HashMap<QName, String[]>();
+ }
+
+ public PageNavigationalState(PageNavigationalState original)
+ {
+ this.windows = new HashMap<String,
WindowNavigationalState>(original.windows);
+ this.page = new HashMap<QName, String[]>(original.page);
+ }
+
+ public WindowNavigationalState getWindowNavigationalState(String windowId)
+ {
+ return windows.get(windowId);
+ }
+
+ public ParameterMap getPublicNavigationalState(Portlet portlet)
+ {
+ ParameterMap publicNavigationalState = null;
+ for (ParameterInfo parameterInfo :
portlet.getInfo().getNavigation().getPublicParameters())
+ {
+ String[] parameterValue = page.get(parameterInfo.getName());
+
+ //
+ if (parameterValue != null)
+ {
+ String parameterId = parameterInfo.getId();
+
+ // Lazy create
+ if (publicNavigationalState == null)
+ {
+ publicNavigationalState = new ParameterMap();
+ }
+
+ // We clone the value here so we keep the internal state not potentially
changed
+ publicNavigationalState.put(parameterId, parameterValue.clone());
+ }
+ }
+
+ //
+ return publicNavigationalState;
+ }
+
+ public static byte[] serialize(PageNavigationalState object) throws IOException
+ {
+ ByteArrayOutputStream baos = new ByteArrayOutputStream();
+ GZIPOutputStream zos = new GZIPOutputStream(baos);
+ ObjectOutputStream oos = new ObjectOutputStream(zos);
+ oos.writeObject(object);
+ oos.close();
+ return baos.toByteArray();
+ }
+
+ public static PageNavigationalState unserialize(byte[] bytes) throws IOException,
ClassNotFoundException
+ {
+ ByteArrayInputStream bais = new ByteArrayInputStream(bytes);
+ GZIPInputStream zis = new GZIPInputStream(bais);
+ ObjectInputStream ois = new ObjectInputStream(zis);
+ return (PageNavigationalState)ois.readObject();
+ }
+}
Modified:
modules/portlet/trunk/test/src/main/java/org/jboss/portal/portlet/test/controller/PortletController.java
===================================================================
---
modules/portlet/trunk/test/src/main/java/org/jboss/portal/portlet/test/controller/PortletController.java 2008-02-01
22:58:18 UTC (rev 9708)
+++
modules/portlet/trunk/test/src/main/java/org/jboss/portal/portlet/test/controller/PortletController.java 2008-02-01
23:56:02 UTC (rev 9709)
@@ -45,7 +45,7 @@
import org.jboss.portal.portlet.invocation.response.PortletInvocationResponse;
import org.jboss.portal.portlet.invocation.response.ResponseProperties;
import org.jboss.portal.portlet.spi.PortalContext;
-import org.jboss.portal.portlet.test.PageNavigationalState;
+import org.jboss.portal.portlet.test.controller.PageNavigationalState;
import org.jboss.portal.portlet.test.PortletURLRenderer;
import org.jboss.portal.portlet.test.TestInstanceContext;
import org.jboss.portal.portlet.test.TestRenderContext;
Modified:
modules/portlet/trunk/test/src/main/java/org/jboss/portal/portlet/test/controller/PortletControllerContextImpl.java
===================================================================
---
modules/portlet/trunk/test/src/main/java/org/jboss/portal/portlet/test/controller/PortletControllerContextImpl.java 2008-02-01
22:58:18 UTC (rev 9708)
+++
modules/portlet/trunk/test/src/main/java/org/jboss/portal/portlet/test/controller/PortletControllerContextImpl.java 2008-02-01
23:56:02 UTC (rev 9709)
@@ -36,7 +36,7 @@
import org.jboss.portal.portlet.cache.CacheLevel;
import org.jboss.portal.portlet.invocation.PortletInvocation;
import org.jboss.portal.portlet.invocation.response.PortletInvocationResponse;
-import org.jboss.portal.portlet.test.PageNavigationalState;
+import org.jboss.portal.portlet.test.controller.PageNavigationalState;
import org.jboss.portal.portlet.test.StringCodec;
import static org.jboss.portal.portlet.test.URLParameterConstants.*;
import org.jboss.portal.portlet.test.WindowNavigationalState;
Modified:
modules/portlet/trunk/test/src/main/java/org/jboss/portal/portlet/test/controller/PortletRequestHandler.java
===================================================================
---
modules/portlet/trunk/test/src/main/java/org/jboss/portal/portlet/test/controller/PortletRequestHandler.java 2008-02-01
22:58:18 UTC (rev 9708)
+++
modules/portlet/trunk/test/src/main/java/org/jboss/portal/portlet/test/controller/PortletRequestHandler.java 2008-02-01
23:56:02 UTC (rev 9709)
@@ -27,7 +27,7 @@
import org.jboss.portal.portlet.invocation.response.ResponseProperties;
import org.jboss.portal.portlet.invocation.response.StateResponse;
import org.jboss.portal.portlet.invocation.response.UpdateNavigationalStateResponse;
-import org.jboss.portal.portlet.test.PageNavigationalState;
+import org.jboss.portal.portlet.test.controller.PageNavigationalState;
import org.jboss.portal.portlet.test.PortletURLRenderer;
import org.jboss.portal.portlet.test.TestActionContext;
import org.jboss.portal.portlet.test.TestEventContext;
@@ -71,8 +71,14 @@
{
PortletControllerContext context = portletRequest.controllerContext;
+ // The page navigational state we will operate on during the request
+ // Either we have nothing in the request so we create a new one
+ // Or we have one but we copy it as we should not modify the input state provided
+ MutablePageNavigationalState pageState = portletRequest.pageState == null ? new
MutablePageNavigationalState() : new
MutablePageNavigationalState(portletRequest.pageState);
+
//
PortletContext portletContext =
portletRequest.controllerContext.getPortlet(portletRequest.portletId).getContext();
+
//
ResponseProperties requestProperties = new ResponseProperties();
@@ -100,7 +106,7 @@
if (response instanceof UpdateNavigationalStateResponse)
{
UpdateNavigationalStateResponse updateResponse =
(UpdateNavigationalStateResponse)response;
- updateNavigationalState(context, portletRequest.portletId, updateResponse,
portletRequest.pageState);
+ updateNavigationalState(context, portletRequest.portletId, updateResponse,
pageState);
//
ResponseProperties update = updateResponse.getProperties();
@@ -129,7 +135,7 @@
Event event = eventQueue.removeFirst();
//
- PortletInvocationResponse eventResponse = deliverEvent(context, event,
portletRequest.pageState, requestProperties.getCookies());
+ PortletInvocationResponse eventResponse = deliverEvent(context, event,
pageState, requestProperties.getCookies());
//
if (eventResponse instanceof UpdateNavigationalStateResponse)
@@ -137,7 +143,7 @@
UpdateNavigationalStateResponse update =
(UpdateNavigationalStateResponse)eventResponse;
// Update ns
- updateNavigationalState(context, event.getPortletContext().getId(),
update, portletRequest.pageState);
+ updateNavigationalState(context, event.getPortletContext().getId(),
update, pageState);
// Add events if any
for (StateResponse.Event portletEvent : update.getEvents())
@@ -201,7 +207,7 @@
*/
//
- controller.render(context, requestProperties, portletRequest.pageState);
+ controller.render(context, requestProperties, pageState);
}
PortletInvocationResponse invoke(PortletRequest portletRequest) throws
PortletInvokerException
@@ -346,7 +352,7 @@
}
private void updateNavigationalState(PortletControllerContext context, String
portletId,
- UpdateNavigationalStateResponse update,
PageNavigationalState pageState)
+ UpdateNavigationalStateResponse update,
MutablePageNavigationalState pageState)
throws PortletInvokerException
{
Portlet portlet = context.getPortlet(portletId);
@@ -384,7 +390,6 @@
if (publicNS != null)
{
NavigationInfo navigationInfo = portlet.getInfo().getNavigation();
- Map<QName, String[]> pageNS = pageState.getPageNavigationalState();
for (Map.Entry<String, String[]> entry : publicNS.entrySet())
{
String id = entry.getKey();
@@ -397,11 +402,11 @@
String[] value = entry.getValue();
if (value.length > 0)
{
- pageNS.put(name, value);
+ pageState.setPublicNavigationalState(name, value);
}
else
{
- pageNS.remove(name);
+ pageState.removePublicNavigationalState(name);
}
}
}
Modified:
modules/portlet/trunk/test/src/main/java/org/jboss/portal/portlet/test/controller/PortletResourceRequestHandler.java
===================================================================
---
modules/portlet/trunk/test/src/main/java/org/jboss/portal/portlet/test/controller/PortletResourceRequestHandler.java 2008-02-01
22:58:18 UTC (rev 9708)
+++
modules/portlet/trunk/test/src/main/java/org/jboss/portal/portlet/test/controller/PortletResourceRequestHandler.java 2008-02-01
23:56:02 UTC (rev 9709)
@@ -42,7 +42,7 @@
import org.jboss.portal.portlet.invocation.response.PortletInvocationResponse;
import org.jboss.portal.portlet.invocation.response.ResponseProperties;
import org.jboss.portal.portlet.spi.ResourceInvocationContext;
-import org.jboss.portal.portlet.test.PageNavigationalState;
+import org.jboss.portal.portlet.test.controller.PageNavigationalState;
import org.jboss.portal.portlet.test.PortletURLRenderer;
import org.jboss.portal.portlet.test.ResourceTestContext;
import org.jboss.portal.portlet.test.TestInstanceContext;
Modified:
modules/portlet/trunk/test/src/main/java/org/jboss/portal/portlet/test/controller/ViewRequestHandler.java
===================================================================
---
modules/portlet/trunk/test/src/main/java/org/jboss/portal/portlet/test/controller/ViewRequestHandler.java 2008-02-01
22:58:18 UTC (rev 9708)
+++
modules/portlet/trunk/test/src/main/java/org/jboss/portal/portlet/test/controller/ViewRequestHandler.java 2008-02-01
23:56:02 UTC (rev 9709)
@@ -26,7 +26,7 @@
import org.jboss.portal.portlet.PortletInvokerException;
import org.jboss.portal.portlet.invocation.response.PortletInvocationResponse;
import org.jboss.portal.portlet.invocation.response.ResponseProperties;
-import org.jboss.portal.portlet.test.PageNavigationalState;
+import org.jboss.portal.portlet.test.controller.PageNavigationalState;
import static
org.jboss.portal.portlet.test.controller.PortletController.ControllerRequest;
import static org.jboss.portal.portlet.test.controller.PortletController.ViewRequest;
Modified:
modules/portlet/trunk/test/src/test/resources/jsr286/tck/resourceserving-war/WEB-INF/portlet.xml
===================================================================
---
modules/portlet/trunk/test/src/test/resources/jsr286/tck/resourceserving-war/WEB-INF/portlet.xml 2008-02-01
22:58:18 UTC (rev 9708)
+++
modules/portlet/trunk/test/src/test/resources/jsr286/tck/resourceserving-war/WEB-INF/portlet.xml 2008-02-01
23:56:02 UTC (rev 9709)
@@ -35,28 +35,4 @@
</supports>
</portlet>
- <portlet>
- <portlet-name>UniversalTestPortletB</portlet-name>
-
<portlet-class>org.jboss.portal.test.portlet.framework.UTP2</portlet-class>
- <supports>
- <mime-type>text/html</mime-type>
- </supports>
- </portlet>
-
- <portlet>
- <portlet-name>UniversalTestPortletC</portlet-name>
-
<portlet-class>org.jboss.portal.test.portlet.framework.UTP3</portlet-class>
- <supports>
- <mime-type>text/html</mime-type>
- </supports>
- </portlet>
-
- <portlet>
- <portlet-name>UniversalTestPortletD</portlet-name>
-
<portlet-class>org.jboss.portal.test.portlet.framework.UTP4</portlet-class>
- <supports>
- <mime-type>text/html</mime-type>
- </supports>
- </portlet>
-
</portlet-app>