Author: julien(a)jboss.com
Date: 2008-03-11 06:59:19 -0400 (Tue, 11 Mar 2008)
New Revision: 10260
Modified:
modules/portlet/trunk/controller/src/test/java/org/jboss/portal/portlet/controller/PortletControllerTestCase.java
Log:
test that an event processing that updates NS, updates the page NS
Modified:
modules/portlet/trunk/controller/src/test/java/org/jboss/portal/portlet/controller/PortletControllerTestCase.java
===================================================================
---
modules/portlet/trunk/controller/src/test/java/org/jboss/portal/portlet/controller/PortletControllerTestCase.java 2008-03-11
10:41:04 UTC (rev 10259)
+++
modules/portlet/trunk/controller/src/test/java/org/jboss/portal/portlet/controller/PortletControllerTestCase.java 2008-03-11
10:59:19 UTC (rev 10260)
@@ -42,6 +42,7 @@
import org.jboss.portal.portlet.invocation.response.PortletInvocationResponse;
import org.jboss.portal.portlet.invocation.response.UpdateNavigationalStateResponse;
import org.jboss.portal.portlet.invocation.ActionInvocation;
+import org.jboss.portal.portlet.invocation.EventInvocation;
import org.jboss.portal.common.util.Tools;
import org.jboss.portal.Mode;
import org.jboss.portal.WindowState;
@@ -81,6 +82,21 @@
@Test
public void testAction() throws PortletInvokerException
{
+ testAction(false);
+ }
+
+ @Test
+ public void testActionPublishesAnEvent() throws PortletInvokerException
+ {
+ testAction(true);
+ }
+
+ private void testAction(final boolean publishEvent) throws PortletInvokerException
+ {
+ final QName srcName = new QName("juu", "foo");
+ final QName dstName = new QName("juu", "bar");
+
+ //
PortletSupport fooPortlet = invoker.addPortlet("foo");
fooPortlet.addHandler(new PortletSupport.ActionHandler()
{
@@ -90,20 +106,68 @@
updateNS.setMode(Mode.EDIT);
updateNS.setWindowState(WindowState.MAXIMIZED);
updateNS.setNavigationalState(new OpaqueStateString("abc"));
+
+ //
+ if (publishEvent)
+ {
+ updateNS.queueEvent(new UpdateNavigationalStateResponse.Event(srcName,
null));
+ }
+
+ //
return updateNS;
}
});
//
+ PortletSupport barPortlet = invoker.addPortlet("bar");
+ barPortlet.addHandler(new PortletSupport.EventHandler()
+ {
+ protected PortletInvocationResponse invoke(EventInvocation action) throws
PortletInvokerException
+ {
+ assertEquals(dstName, action.getName());
+ assertEquals(null, action.getPayload());
+
+ //
+ UpdateNavigationalStateResponse updateNS = new
UpdateNavigationalStateResponse();
+ updateNS.setMode(Mode.HELP);
+ updateNS.setWindowState(WindowState.MINIMIZED);
+ updateNS.setNavigationalState(new OpaqueStateString("def"));
+
+ //
+ return updateNS;
+ }
+ });
+
+ //
+ eventControllerContext.createWire(srcName, "foo", dstName,
"bar");
+
+ //
ControllerRequest request = context.createActionRequest("foo");
ControllerResponse response = controller.process(context, request);
PageUpdateResponse pageUpdate = assertInstanceOf(response,
PageUpdateResponse.class);
PageNavigationalState pageNS =
assertNotNull(pageUpdate.getPageNavigationalState());
- assertEquals(Tools.toSet("foo"), pageNS.getWindowIds());
+
+ //
WindowNavigationalState fooNS =
assertNotNull(pageNS.getWindowNavigationalState("foo"));
assertEquals(WindowState.MAXIMIZED, fooNS.getWindowState());
assertEquals(Mode.EDIT, fooNS.getMode());
assertEquals(new OpaqueStateString("abc"),
fooNS.getPortletNavigationalState());
+
+ //
+ if (publishEvent)
+ {
+ assertEquals(Tools.toSet("foo", "bar"),
pageNS.getWindowIds());
+
+ //
+ WindowNavigationalState barNS =
assertNotNull(pageNS.getWindowNavigationalState("bar"));
+ assertEquals(WindowState.MINIMIZED, barNS.getWindowState());
+ assertEquals(Mode.HELP, barNS.getMode());
+ assertEquals(new OpaqueStateString("def"),
barNS.getPortletNavigationalState());
+ }
+ else
+ {
+ assertEquals(Tools.toSet("foo"), pageNS.getWindowIds());
+ }
}
@Test
Show replies by date