[jboss-cvs] jboss-portal/portlet/src/main/org/jboss/portal/test/portlet/jsr168/ext/dispatcher ...

Julien Viet julien at jboss.com
Sun Aug 20 18:53:50 EDT 2006


  User: julien  
  Date: 06/08/20 18:53:50

  Modified:    portlet/src/main/org/jboss/portal/test/portlet/jsr168/ext/dispatcher  
                        Tag: JBoss_Portal_Branch_2_4
                        DispatcherSequenceBuilder.java
                        DispatcherTestSuite.java
  Log:
  backport of JBPORTAL-984 to 2.4.1 : Provice access to HTTP headers in request dispatch to a servlet from a portlet.
  
  Revision  Changes    Path
  No                   revision
  
  
  No                   revision
  
  
  1.1.2.1   +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.1.2.1
  diff -u -b -r1.1 -r1.1.2.1
  --- DispatcherSequenceBuilder.java	28 Jun 2006 00:36:08 -0000	1.1
  +++ DispatcherSequenceBuilder.java	20 Aug 2006 22:53:50 -0000	1.1.2.1
  @@ -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.1.2.1 $
    */
   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.1.2.1   +1 -3      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.1.2.1
  diff -u -b -r1.1 -r1.1.2.1
  --- DispatcherTestSuite.java	28 Jun 2006 00:36:08 -0000	1.1
  +++ DispatcherTestSuite.java	20 Aug 2006 22:53:50 -0000	1.1.2.1
  @@ -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.1.2.1 $
    */
   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