[jboss-cvs] jboss-portal/portlet/src/main/org/jboss/portal/test/portlet/jsr168/ext/dispatcher ...
Julien Viet
julien at jboss.com
Fri Aug 18 14:01:46 EDT 2006
User: julien
Date: 06/08/18 14:01:46
Modified: portlet/src/main/org/jboss/portal/test/portlet/jsr168/ext/dispatcher
DispatcherSequenceBuilder.java
DispatcherTestSuite.java
Log:
fix for JBPORTAL-984 : Provice access to HTTP headers in request dispatch to a servlet from a portlet
Revision Changes Path
1.2 +55 -11 jboss-portal/portlet/src/main/org/jboss/portal/test/portlet/jsr168/ext/dispatcher/DispatcherSequenceBuilder.java
(In the diff below, changes in quantity of whitespace are not shown.)
Index: DispatcherSequenceBuilder.java
===================================================================
RCS file: /cvsroot/jboss/jboss-portal/portlet/src/main/org/jboss/portal/test/portlet/jsr168/ext/dispatcher/DispatcherSequenceBuilder.java,v
retrieving revision 1.1
retrieving revision 1.2
diff -u -b -r1.1 -r1.2
--- DispatcherSequenceBuilder.java 28 Jun 2006 00:36:08 -0000 1.1
+++ DispatcherSequenceBuilder.java 18 Aug 2006 18:01:46 -0000 1.2
@@ -26,22 +26,18 @@
import org.jboss.portal.test.framework.portlet.Sequence;
import org.jboss.portal.test.framework.portlet.components.AbstractUniversalTestPortlet;
import org.jboss.portal.test.framework.portlet.actions.PortletRenderTestAction;
-import org.jboss.portal.test.framework.portlet.actions.PortletActionTestAction;
import org.jboss.portal.test.framework.portlet.actions.ServletServiceTestAction;
import org.jboss.portal.test.framework.portlet.universal.UTP1;
import org.jboss.portal.test.framework.portlet.universal.UTS1;
import org.jboss.portal.test.framework.container.result.Result;
import org.jboss.portal.test.framework.container.result.EndTestResult;
import org.jboss.portal.test.framework.container.result.InvokeGetResult;
-import org.jboss.portal.test.framework.container.result.AssertResult;
-import org.jboss.portal.test.portlet.jsr168.tck.dispatcher.*;
+import org.jboss.portal.common.util.Tools;
import javax.portlet.Portlet;
import javax.portlet.RenderRequest;
import javax.portlet.RenderResponse;
import javax.portlet.PortletRequestDispatcher;
-import javax.portlet.ActionRequest;
-import javax.portlet.ActionResponse;
import javax.portlet.PortletException;
import javax.servlet.Servlet;
import javax.servlet.ServletException;
@@ -49,13 +45,11 @@
import javax.servlet.http.HttpServletResponse;
import java.io.IOException;
import java.util.Enumeration;
-import java.util.List;
-import java.util.LinkedList;
-import java.util.Map;
+import java.util.Set;
/**
* @author <a href="mailto:boleslaw.dawidowicz at jboss.org">Boleslaw Dawidowicz</a>
- * @version $Revision: 1.1 $
+ * @version $Revision: 1.2 $
*/
public class DispatcherSequenceBuilder extends SequenceRegistryBuilder
{
@@ -63,8 +57,6 @@
public static final String SERVLET_A_URI = "/test-jsr168-ext-dispatcher/universalServletA";
public static final String SERVLET_B_URI = "/test-jsr168-ext-dispatcher/universalServletB";
-
-
public void createGetRequestURICase(SequenceRegistry registry)
{
Sequence seq = new Sequence();
@@ -90,4 +82,56 @@
}
});
}
+
+ /**
+ * Show that we can access request headers from the portlet request properties.
+ */
+ public void createRequestHeaderAccess(SequenceRegistry registry)
+ {
+ Sequence seq = new Sequence();
+ registry.addSequence("RequestHeaderAccess", seq);
+ seq.addAction(0, UTP1.RENDER_JOINPOINT, new PortletRenderTestAction()
+ {
+ protected Result run(Portlet portlet, RenderRequest request, RenderResponse response)
+ {
+ // Test the value is not there yet
+ Set propertyNames = Tools.toSet(request.getPropertyNames());
+ assertFalse(propertyNames.contains("myheader"));
+ assertNull(request.getProperty("myheader"));
+ assertFalse(request.getProperties("myheader").hasMoreElements());
+
+ // Invoke render with header
+ InvokeGetResult render = new InvokeGetResult(response.createRenderURL().toString());
+ render.setHeader("myheader", "render-value");
+ return render;
+ }
+ });
+
+ seq.addAction(1, UTP1.RENDER_JOINPOINT, new PortletRenderTestAction()
+ {
+ protected Result run(Portlet portlet, RenderRequest request, RenderResponse response) throws IOException, PortletException
+ {
+ PortletRequestDispatcher dispatcher = ((AbstractUniversalTestPortlet)portlet).getPortletContext().getRequestDispatcher("/universalServletA");
+ response.setContentType("text/html");
+ dispatcher.include(request, response);
+ return null;
+ }
+ });
+
+ seq.addAction(1, UTS1.SERVICE_JOINPOINT, new ServletServiceTestAction()
+ {
+ protected Result run(Servlet servlet, HttpServletRequest request, HttpServletResponse response)
+ {
+ // Test the header is here
+ Set headerNames = Tools.toSet(request.getHeaderNames());
+ assertTrue(headerNames.contains("myheader"));
+ assertEquals("render-value", request.getHeader("myheader"));
+ Enumeration values = request.getHeaders("myheader");
+ assertTrue(values.hasMoreElements());
+ assertEquals("render-value", values.nextElement());
+ assertFalse(values.hasMoreElements());
+ return new EndTestResult();
+ }
+ });
+ }
}
1.2 +2 -4 jboss-portal/portlet/src/main/org/jboss/portal/test/portlet/jsr168/ext/dispatcher/DispatcherTestSuite.java
(In the diff below, changes in quantity of whitespace are not shown.)
Index: DispatcherTestSuite.java
===================================================================
RCS file: /cvsroot/jboss/jboss-portal/portlet/src/main/org/jboss/portal/test/portlet/jsr168/ext/dispatcher/DispatcherTestSuite.java,v
retrieving revision 1.1
retrieving revision 1.2
diff -u -b -r1.1 -r1.2
--- DispatcherTestSuite.java 28 Jun 2006 00:36:08 -0000 1.1
+++ DispatcherTestSuite.java 18 Aug 2006 18:01:46 -0000 1.2
@@ -28,17 +28,15 @@
/**
* @author <a href="mailto:julien at jboss.org">Julien Viet</a>
* @author <a href="mailto:boleslaw.dawidowicz at jboss.com">Boleslaw Dawidowicz</a>
- * @version $Revision: 1.1 $
+ * @version $Revision: 1.2 $
*/
public class DispatcherTestSuite
{
public static Test suite()
{
TestSuite suite = new TestSuite("test-jsr168-ext-dispatcher.war");
-
-
suite.addTest(new TestCase("GetRequestURI"));
-
+ suite.addTest(new TestCase("RequestHeaderAccess"));
return suite;
}
}
More information about the jboss-cvs-commits
mailing list