Author: julien(a)jboss.com
Date: 2008-04-14 08:13:34 -0400 (Mon, 14 Apr 2008)
New Revision: 10576
Modified:
modules/portlet/trunk/controller/pom.xml
modules/portlet/trunk/controller/src/test/java/org/jboss/portal/portlet/controller/PortletControllerRequestTestCase.java
Log:
added test case for JBPORTAL-1984 : NPE when a PortletResourceRequest.Scope is provided
with a null navigational state (which is a possible use case)
Modified: modules/portlet/trunk/controller/pom.xml
===================================================================
--- modules/portlet/trunk/controller/pom.xml 2008-04-14 11:49:03 UTC (rev 10575)
+++ modules/portlet/trunk/controller/pom.xml 2008-04-14 12:13:34 UTC (rev 10576)
@@ -33,7 +33,6 @@
<artifactId>portlet-portlet</artifactId>
<version>${project.version}</version>
<type>test-jar</type>
- <scope>test</scope>
</dependency>
<!--TEST SCOPE-->
Modified:
modules/portlet/trunk/controller/src/test/java/org/jboss/portal/portlet/controller/PortletControllerRequestTestCase.java
===================================================================
---
modules/portlet/trunk/controller/src/test/java/org/jboss/portal/portlet/controller/PortletControllerRequestTestCase.java 2008-04-14
11:49:03 UTC (rev 10575)
+++
modules/portlet/trunk/controller/src/test/java/org/jboss/portal/portlet/controller/PortletControllerRequestTestCase.java 2008-04-14
12:13:34 UTC (rev 10576)
@@ -39,7 +39,6 @@
import org.jboss.portal.portlet.controller.request.PortletRenderRequest;
import org.jboss.portal.portlet.controller.state.WindowNavigationalState;
import org.jboss.portal.portlet.controller.state.PageNavigationalState;
-import org.jboss.portal.portlet.controller.response.ControllerResponse;
import org.jboss.portal.common.util.ParameterMap;
import org.jboss.portal.Mode;
import org.jboss.portal.WindowState;
@@ -121,70 +120,141 @@
}
@Test
- public void testPortletControllerResourceRequest() throws PortletInvokerException
+ public void testPortletControllerResourceRequestFullScope() throws
PortletInvokerException
{
PortletSupport fooPortlet = invoker.addPortlet("foo");
- fooPortlet.addHandler(new PortletSupport.ResourceHandler()
- {
- protected PortletInvocationResponse invoke(ResourceInvocation resServing) throws
PortletInvokerException
- {
- assertNotNull(resServing);
- assertEquals("resourceid", resServing.getResourceId());
- assertEquals(rs, resServing.getResourceState());
- assertEquals(CacheLevel.FULL, resServing.getCacheLevel());
- assertEquals(null, resServing.getNavigationalState());
- assertEquals(Mode.VIEW, resServing.getMode());
- assertEquals(WindowState.NORMAL, resServing.getWindowState());
- assertEquals(body, resServing.getForm());
+ ResourceHandlerImpl resourceHandler = new ResourceHandlerImpl();
+ resourceHandler.expectedResourceId = "resourceid";
+ resourceHandler.expectedRS = rs;
+ resourceHandler.expectedCacheability = CacheLevel.FULL;
+ resourceHandler.expectedPortletNS = null;
+ resourceHandler.expectedBody = body;
+ resourceHandler.expectedMode = Mode.VIEW;
+ resourceHandler.expectedWindowState = WindowState.NORMAL;
+ resourceHandler.expectedPublicState = null;
+ fooPortlet.addHandler(resourceHandler);
+ PortletResourceRequest fullServing = new PortletResourceRequest("foo",
"resourceid", rs, body, new PortletResourceRequest.FullScope());
+ controller.process(context, fullServing);
- //
- return new UpdateNavigationalStateResponse();
- }
- });
- fooPortlet.addHandler(new PortletSupport.ResourceHandler()
- {
- protected PortletInvocationResponse invoke(ResourceInvocation resServing) throws
PortletInvokerException
- {
- assertNotNull(resServing);
- assertEquals("resourceid", resServing.getResourceId());
- assertEquals(rs, resServing.getResourceState());
- assertEquals(CacheLevel.PORTLET, resServing.getCacheLevel());
- assertEquals(portletNS, resServing.getNavigationalState());
- assertEquals(Mode.EDIT, resServing.getMode());
- assertEquals(WindowState.MAXIMIZED, resServing.getWindowState());
- assertEquals(body, resServing.getForm());
+ //
+ resourceHandler.expectedBody = null;
+ fooPortlet.addHandler(resourceHandler);
+ PortletResourceRequest fullServing2 = new PortletResourceRequest("foo",
"resourceid", rs, null, new PortletResourceRequest.FullScope());
+ controller.process(context, fullServing2);
- //
- return new UpdateNavigationalStateResponse();
- }
- });
- fooPortlet.addHandler(new PortletSupport.ResourceHandler()
- {
- protected PortletInvocationResponse invoke(ResourceInvocation resServing) throws
PortletInvokerException
- {
- assertNotNull(resServing);
- assertEquals("resourceid", resServing.getResourceId());
- assertEquals(rs, resServing.getResourceState());
- assertEquals(CacheLevel.PAGE, resServing.getCacheLevel());
- assertEquals(portletNS, resServing.getNavigationalState());
- assertEquals(Mode.EDIT, resServing.getMode());
- assertEquals(WindowState.MAXIMIZED, resServing.getWindowState());
- assertEquals(body, resServing.getForm());
+ //
+ resourceHandler.expectedResourceId = null;
+ fooPortlet.addHandler(resourceHandler);
+ PortletResourceRequest fullServing3 = new PortletResourceRequest("foo",
null, rs, null, new PortletResourceRequest.FullScope());
+ controller.process(context, fullServing3);
+ }
- //
- return new UpdateNavigationalStateResponse();
- }
- });
+ @Test
+ public void testPortletControllerResourceRequestPortletScope() throws
PortletInvokerException
+ {
+ PortletSupport fooPortlet = invoker.addPortlet("foo");
+ ResourceHandlerImpl resourceHandler = new ResourceHandlerImpl();
+ resourceHandler.expectedResourceId = "resourceid";
+ resourceHandler.expectedRS = rs;
+ resourceHandler.expectedBody = body;
+ resourceHandler.expectedCacheability = CacheLevel.PORTLET;
+ resourceHandler.expectedPortletNS = portletNS;
+ resourceHandler.expectedMode = Mode.EDIT;
+ resourceHandler.expectedWindowState = WindowState.MAXIMIZED;
+ resourceHandler.expectedPublicState = null;
+ fooPortlet.addHandler(resourceHandler);
+ PortletResourceRequest portletServing = new PortletResourceRequest("foo",
"resourceid", rs, body, new PortletResourceRequest.PortletScope(windowNS));
+ controller.process(context, portletServing);
//
- PortletResourceRequest fullServing = new PortletResourceRequest("foo",
"resourceid", rs, body, new PortletResourceRequest.FullScope());
- PortletResourceRequest portletServing = new PortletResourceRequest("foo",
"resourceid", rs, body, new PortletResourceRequest.PortletScope(windowNS));
+ resourceHandler.expectedPortletNS = null;
+ resourceHandler.expectedMode = Mode.VIEW;
+ resourceHandler.expectedWindowState = WindowState.NORMAL;
+ fooPortlet.addHandler(resourceHandler);
+ PortletResourceRequest portletServing2 = new
PortletResourceRequest("foo", "resourceid", rs, body, new
PortletResourceRequest.PortletScope(null));
+ controller.process(context, portletServing2);
+
+ //
+ resourceHandler.expectedResourceId = null;
+ fooPortlet.addHandler(resourceHandler);
+ PortletResourceRequest portletServing3 = new
PortletResourceRequest("foo", null, rs, body, new
PortletResourceRequest.PortletScope(null));
+ controller.process(context, portletServing3);
+ }
+
+ @Test
+ public void testPortletControllerResourceRequestPageScope() throws
PortletInvokerException
+ {
+ PortletSupport fooPortlet = invoker.addPortlet("foo");
+ ResourceHandlerImpl resourceHandler = new ResourceHandlerImpl();
+ resourceHandler.expectedResourceId = "resourceid";
+ resourceHandler.expectedRS = rs;
+ resourceHandler.expectedBody = body;
+ resourceHandler.expectedPortletNS = portletNS;
+ resourceHandler.expectedMode = Mode.EDIT;
+ resourceHandler.expectedWindowState = WindowState.MAXIMIZED;
+ resourceHandler.expectedCacheability = CacheLevel.PAGE;
+ resourceHandler.expectedPublicState = new ParameterMap();
+ fooPortlet.addHandler(resourceHandler);
PortletResourceRequest pageServing = new PortletResourceRequest("foo",
"resourceid", rs, body, new PortletResourceRequest.PageScope(windowNS,
pageNS));
+ controller.process(context, pageServing);
//
- controller.process(context, fullServing);
- controller.process(context, portletServing);
- controller.process(context, pageServing);
+ resourceHandler.expectedPortletNS = null;
+ resourceHandler.expectedMode = Mode.VIEW;
+ resourceHandler.expectedWindowState = WindowState.NORMAL;
+ fooPortlet.addHandler(resourceHandler);
+ PortletResourceRequest pageServing2 = new PortletResourceRequest("foo",
"resourceid", rs, body, new PortletResourceRequest.PageScope(null, pageNS));
+ controller.process(context, pageServing2);
+
+ //
+ resourceHandler.expectedBody = null;
+ fooPortlet.addHandler(resourceHandler);
+ PortletResourceRequest pageServing3 = new PortletResourceRequest("foo",
"resourceid", rs, null, new PortletResourceRequest.PageScope(null, pageNS));
+ controller.process(context, pageServing3);
+
+ //
+ resourceHandler.expectedPublicState = null;
+ fooPortlet.addHandler(resourceHandler);
+ PortletResourceRequest pageServing4 = new PortletResourceRequest("foo",
"resourceid", rs, null, new PortletResourceRequest.PageScope(null, null));
+ controller.process(context, pageServing4);
+
+ //
+ resourceHandler.expectedResourceId = null;
+ fooPortlet.addHandler(resourceHandler);
+ PortletResourceRequest pageServing5 = new PortletResourceRequest("foo",
null, rs, null, new PortletResourceRequest.PageScope(null, null));
+ controller.process(context, pageServing5);
}
+ private static class ResourceHandlerImpl extends PortletSupport.ResourceHandler
+ {
+
+ private String expectedResourceId;
+ private StateString expectedRS;
+ private StateString expectedPortletNS;
+ private ParameterMap expectedBody;
+ private CacheLevel expectedCacheability;
+ private Mode expectedMode;
+ private WindowState expectedWindowState;
+ private ParameterMap expectedPublicState;
+
+ protected PortletInvocationResponse invoke(ResourceInvocation resServing) throws
PortletInvokerException
+ {
+ assertNotNull(resServing);
+ assertEquals(expectedResourceId, resServing.getResourceId());
+ assertEquals(expectedRS, resServing.getResourceState());
+ assertEquals(expectedCacheability, resServing.getCacheLevel());
+ assertEquals(expectedPortletNS, resServing.getNavigationalState());
+ assertEquals(expectedMode, resServing.getMode());
+ assertEquals(expectedWindowState, resServing.getWindowState());
+ assertEquals(expectedBody, resServing.getForm());
+ assertEquals(expectedPublicState, resServing.getPublicNavigationalState());
+
+ // add public NS checks
+
+ //
+ return new UpdateNavigationalStateResponse();
+ }
+
+ }
+
}