PortletURL url = response.createRenderURL();
//we are setting params to ourselves to test if they will last while request to another porltet
url.setParameter("portlet1key1", "p1k1value1");
url.setParameter("portlet1key2", new String[]{"p1k2value1", "p1k2value2", "p1k2value3"});
return new InvokeGetResponse(url.toString());
}
});
seq.bindAction(1, UTP1.RENDER_JOIN_POINT, new PortletRenderTestAction()
{
protected Response run(Portlet portlet, RenderRequest request, RenderResponse response, PortletTestContext context)
{
return null;
}
});
seq.bindAction(1, UTP2.RENDER_JOIN_POINT, new PortletRenderTestAction()
{
protected Response run(Portlet portlet, RenderRequest request, RenderResponse response, PortletTestContext context)
{
//invoke render url from different portlet to be able to pass some params to it
PortletURL portletURL = response.createRenderURL();
portletURL.setParameter("portlet2key1", "p2k1value1");
portletURL.setParameter("portlet2key2", new String[]{"p2k2value1", "p2k2value2", "p2k2value3"});
return new InvokeGetResponse(portletURL.toString());
}
});
seq.bindAction(2, UTP2.RENDER_JOIN_POINT, new PortletRenderTestAction()
{
protected Response run(Portlet portlet, RenderRequest request, RenderResponse response, PortletTestContext context)
{
assertEquals("p2k1value1", request.getParameter("portlet2key1"));
assertEquals(new String[]{"p2k2value1", "p2k2value2", "p2k2value3"}, request.getParameterValues("portlet2key2"));
//
return null;
}
});
seq.bindAction(2, UTP1.RENDER_JOIN_POINT, new PortletRenderTestAction()
{
protected Response run(Portlet portlet, RenderRequest request, RenderResponse response, PortletTestContext context)
{
//we test if we have params set during requestCount==0, becouse our portlet
//wasn't targeted in current render request
//assert that we didn't received params targeted to other portlet
assertNull(request.getParameter("portlet2key1"));
assertNull(request.getParameter("portlet2key2"));
assertEquals("p1k1value1", request.getParameter("portlet1key1"));
assertEquals(new String[]{"p1k2value1", "p1k2value2", "p1k2value3"}, request.getParameterValues("portlet1key2"));
//and just repost so other portlet render invokation can be finished
PortletURL url = response.createRenderURL();
return new InvokeGetResponse(url.toString());
}
});
seq.bindAction(3, UTP1.RENDER_JOIN_POINT, new PortletRenderTestAction()