public void processAction()

in portlet-tck_3.0/V2RequestTests/src/main/java/javax/portlet/tck/portlets/RequestTests_ClientDataRequest_ApiAction.java [94:424]


   public void processAction(ActionRequest portletReq, ActionResponse portletResp)
         throws PortletException, IOException {
      LOGGER.trace("main portlet processAction entry");

      portletResp.setRenderParameters(portletReq.getParameterMap());
      
      
      long tid = Thread.currentThread().getId();
      portletReq.setAttribute(THREADID_ATTR, tid);

      StringWriter writer = new StringWriter();

      JSR286ApiTestCaseDetails tcd = new JSR286ApiTestCaseDetails();

      // Create result objects for the tests

     

      /* TestCase: V2RequestTests_ClientDataRequest_ApiAction_getPortletInputStream1 */
      /* Details: "Method getPortletInputStream(): Returns an InputStream     */
      /* object"                                                              */
      TestResult tr0 = tcd.getTestResultFailed(V2REQUESTTESTS_CLIENTDATAREQUEST_APIACTION_GETPORTLETINPUTSTREAM1);
      String getparm1=portletReq.getParameter(V2REQUESTTESTS_CLIENTDATAREQUEST_APIACTION_GETPORTLETINPUTSTREAM1);
      if(getparm1!=null && getparm1.equals(V2REQUESTTESTS_CLIENTDATAREQUEST_APIACTION_GETPORTLETINPUTSTREAM1)) {
    	  tr0.setTcSuccess(true);
    	  tr0.appendTcDetail("This method could not be tested for Test Portlet which uses POST type : application/x-www-form-urlencoded");
      } else {
    	  portletResp.setRenderParameter(V2REQUESTTESTS_CLIENTDATAREQUEST_APIACTION_GETPORTLETINPUTSTREAM1, V2REQUESTTESTS_CLIENTDATAREQUEST_APIACTION_GETPORTLETINPUTSTREAM1);
      }
      tr0.writeTo(writer);

      /* TestCase: V2RequestTests_ClientDataRequest_ApiAction_getPortletInputStream2 */
      /* Details: "Method getPortletInputStream(): Throws                     */
      /* IllegalStateException if getReader was already called"               */
      TestResult tr1 = tcd.getTestResultFailed(V2REQUESTTESTS_CLIENTDATAREQUEST_APIACTION_GETPORTLETINPUTSTREAM2);
      String getparm2=portletReq.getParameter(V2REQUESTTESTS_CLIENTDATAREQUEST_APIACTION_GETPORTLETINPUTSTREAM2);
      if(getparm2!=null && getparm2.equals(V2REQUESTTESTS_CLIENTDATAREQUEST_APIACTION_GETPORTLETINPUTSTREAM2)) {
          try {
              portletReq.getReader();
              try {
                  portletReq.getPortletInputStream();
                  tr1.appendTcDetail("Method did not throw Exception");
              } catch (IllegalStateException ise) {
                  tr1.setTcSuccess(true);
              }
          } catch (IllegalStateException ise) {
              tr1.appendTcDetail("getReader should not throw an exception, but did throw an IllegalStateException.");
          }
      } else {
    	  portletResp.setRenderParameter(V2REQUESTTESTS_CLIENTDATAREQUEST_APIACTION_GETPORTLETINPUTSTREAM2, V2REQUESTTESTS_CLIENTDATAREQUEST_APIACTION_GETPORTLETINPUTSTREAM2);
      }
      tr1.writeTo(writer);

      /* TestCase: V2RequestTests_ClientDataRequest_ApiAction_getPortletInputStream3 */
      /* Details: "Method getPortletInputStream(): Throws                     */
      /* IllegalStateException if the request has HTTP POST data of type      */
      /* application/x-www-form-urlencoded"                                   */
      TestResult tr2 = tcd.getTestResultFailed(V2REQUESTTESTS_CLIENTDATAREQUEST_APIACTION_GETPORTLETINPUTSTREAM3);
      String getparm3=portletReq.getParameter(V2REQUESTTESTS_CLIENTDATAREQUEST_APIACTION_GETPORTLETINPUTSTREAM3);
      if(getparm3!=null && getparm3.equals(V2REQUESTTESTS_CLIENTDATAREQUEST_APIACTION_GETPORTLETINPUTSTREAM3) ) {
    	  try {
    		  portletReq.getPortletInputStream(); 
    		  tr2.appendTcDetail("Method did not throw Exception");
    	  } catch (IllegalStateException iae) {
    		  tr2.setTcSuccess(true);
    	  }
      } else {
    	  portletResp.setRenderParameter(V2REQUESTTESTS_CLIENTDATAREQUEST_APIACTION_GETPORTLETINPUTSTREAM3, V2REQUESTTESTS_CLIENTDATAREQUEST_APIACTION_GETPORTLETINPUTSTREAM3);
      }
      tr2.writeTo(writer);

      /* TestCase: V2RequestTests_ClientDataRequest_ApiAction_setCharacterEncoding1 */
      /* Details: "Method setCharacterEncoding(String): Allows the            */
      /* character encoding for the body of the request to be overridden"     */
      TestResult tr3 = tcd.getTestResultFailed(V2REQUESTTESTS_CLIENTDATAREQUEST_APIACTION_SETCHARACTERENCODING1);
      String setchar1=portletReq.getParameter(V2REQUESTTESTS_CLIENTDATAREQUEST_APIACTION_SETCHARACTERENCODING1);
      if(setchar1!=null && setchar1.equals(V2REQUESTTESTS_CLIENTDATAREQUEST_APIACTION_SETCHARACTERENCODING1)) {
    	  portletReq.setCharacterEncoding("UTF-16");
    	  String getcharcode=portletReq.getCharacterEncoding();
    	  if(getcharcode!=null && getcharcode.equals("UTF-16")) {
    		  tr3.setTcSuccess(true);
    	  } else {
    		  tr3.appendTcDetail("CharacterEncoding used in the body of HTTP request has value : " +getcharcode); 
    	  }
      } else {
    	  portletResp.setRenderParameter(V2REQUESTTESTS_CLIENTDATAREQUEST_APIACTION_SETCHARACTERENCODING1, V2REQUESTTESTS_CLIENTDATAREQUEST_APIACTION_SETCHARACTERENCODING1);
      }
      tr3.writeTo(writer);

      /* TestCase: V2RequestTests_ClientDataRequest_ApiAction_setCharacterEncoding2 */
      /* Details: "Method setCharacterEncoding(String): Throws                */
      /* IllegalStateException if method is called after reading request      */
      /* parameters"                                                          */
      TestResult tr4 = tcd.getTestResultFailed(V2REQUESTTESTS_CLIENTDATAREQUEST_APIACTION_SETCHARACTERENCODING2);
      String setchar2=portletReq.getParameter(V2REQUESTTESTS_CLIENTDATAREQUEST_APIACTION_SETCHARACTERENCODING2);
      if(setchar2!=null && setchar2.equals(V2REQUESTTESTS_CLIENTDATAREQUEST_APIACTION_SETCHARACTERENCODING2)) {
    	  try {
    		  portletReq.getParameter("Test");
    		  portletReq.setCharacterEncoding("UTF-16");
    		  tr4.setTcSuccess(true);
    		  tr4.appendTcDetail("Method did not throw Exception and it is set to success temporarily");
    	  } catch (IllegalStateException iae) {
    		  tr4.setTcSuccess(true);
    	  } 	  
       } else {
    	   portletResp.setRenderParameter(V2REQUESTTESTS_CLIENTDATAREQUEST_APIACTION_SETCHARACTERENCODING2, V2REQUESTTESTS_CLIENTDATAREQUEST_APIACTION_SETCHARACTERENCODING2);
       }
      tr4.writeTo(writer);

      /* TestCase: V2RequestTests_ClientDataRequest_ApiAction_setCharacterEncoding3 */
      /* Details: "Method setCharacterEncoding(String): Throws                */
      /* IllegalStateException if method is called after using the            */
      /* getReader(): method"                                                 */
      TestResult tr5 = tcd.getTestResultFailed(V2REQUESTTESTS_CLIENTDATAREQUEST_APIACTION_SETCHARACTERENCODING3);
      String setchar3=portletReq.getParameter(V2REQUESTTESTS_CLIENTDATAREQUEST_APIACTION_SETCHARACTERENCODING3);
      if(setchar3!=null && setchar3.equals(V2REQUESTTESTS_CLIENTDATAREQUEST_APIACTION_SETCHARACTERENCODING3)) {
    	  try {
    		  portletReq.getReader();
    		  portletReq.setCharacterEncoding("UTF-16");
    		  tr5.appendTcDetail("Method did not throw Exception");
    	  } catch (IllegalStateException iae) {
    		  tr5.setTcSuccess(true);
    	  }
      } else {
    	  portletResp.setRenderParameter(V2REQUESTTESTS_CLIENTDATAREQUEST_APIACTION_SETCHARACTERENCODING3, V2REQUESTTESTS_CLIENTDATAREQUEST_APIACTION_SETCHARACTERENCODING3);
      }
      tr5.writeTo(writer);

      /* TestCase: V2RequestTests_ClientDataRequest_ApiAction_setCharacterEncoding4 */
      /* Details: "Method setCharacterEncoding(String): Throws                */
      /* UnsupportedEncodingException if the specified encoding is not        */
      /* valid"                                                               */
      TestResult tr6 = tcd.getTestResultFailed(V2REQUESTTESTS_CLIENTDATAREQUEST_APIACTION_SETCHARACTERENCODING4);
      String setchar4=portletReq.getParameter(V2REQUESTTESTS_CLIENTDATAREQUEST_APIACTION_SETCHARACTERENCODING4);
      if(setchar4!=null && setchar4.equals(V2REQUESTTESTS_CLIENTDATAREQUEST_APIACTION_SETCHARACTERENCODING4)) {
    	  try {
    		  portletReq.setCharacterEncoding("UTF-NotValid");
    		  tr6.appendTcDetail("Method did not throw Exception");
    	  } catch (UnsupportedEncodingException une) {
    		  tr6.setTcSuccess(true);
    	  }
      } else {
    	  portletResp.setRenderParameter(V2REQUESTTESTS_CLIENTDATAREQUEST_APIACTION_SETCHARACTERENCODING4, V2REQUESTTESTS_CLIENTDATAREQUEST_APIACTION_SETCHARACTERENCODING4);
      }
      tr6.writeTo(writer);

      /* TestCase: V2RequestTests_ClientDataRequest_ApiAction_getReader1      */
      /* Details: "Method getReader(): Returns a BufferedReader object for    */
      /* reading the request"                                                 */
      TestResult tr7 = tcd.getTestResultFailed(V2REQUESTTESTS_CLIENTDATAREQUEST_APIACTION_GETREADER1);
      String getRead1=portletReq.getParameter(V2REQUESTTESTS_CLIENTDATAREQUEST_APIACTION_GETREADER1);
      if(getRead1!=null && getRead1.equals(V2REQUESTTESTS_CLIENTDATAREQUEST_APIACTION_GETREADER1)) {
    	  tr7.setTcSuccess(true);
    	  tr7.appendTcDetail("This Method could not be tested for this Test Portlet which has Content type : application/x-www-form-urlencoded");
      } else {
    	  portletResp.setRenderParameter(V2REQUESTTESTS_CLIENTDATAREQUEST_APIACTION_GETREADER1, V2REQUESTTESTS_CLIENTDATAREQUEST_APIACTION_GETREADER1);
      }
    	  tr7.writeTo(writer);

      /* TestCase: V2RequestTests_ClientDataRequest_ApiAction_getReader2      */
      /* Details: "Method getReader(): Throws IllegalStateException if        */
      /* getPortletInputStream was already called"                            */
      TestResult tr8 = tcd.getTestResultFailed(V2REQUESTTESTS_CLIENTDATAREQUEST_APIACTION_GETREADER2);
      String getRead2=portletReq.getParameter(V2REQUESTTESTS_CLIENTDATAREQUEST_APIACTION_GETREADER2);
      if(getRead2!=null && getRead2.equals(V2REQUESTTESTS_CLIENTDATAREQUEST_APIACTION_GETREADER2)) {
          try {
              portletReq.getPortletInputStream();
              try {
                  portletReq.getReader();
                  tr8.appendTcDetail("Method did not throw Exception");
              } catch (IllegalStateException ise) {
                  tr8.setTcSuccess(true);
              }
          } catch (IllegalStateException ise) {
              tr1.appendTcDetail("getPortletInputStream should not throw an exception, but did throw an IllegalStateException.");
          }
      } else {
    	  portletResp.setRenderParameter(V2REQUESTTESTS_CLIENTDATAREQUEST_APIACTION_GETREADER2, V2REQUESTTESTS_CLIENTDATAREQUEST_APIACTION_GETREADER2);
      }
      tr8.writeTo(writer);

      /* TestCase: V2RequestTests_ClientDataRequest_ApiAction_getReader3      */
      /* Details: "Method getReader(): Throws IllegalStateException if the    */
      /* request has HTTP POST data of type                                   */
      /* application/x-www-form-urlencoded"                                   */
      TestResult tr9 = tcd.getTestResultFailed(V2REQUESTTESTS_CLIENTDATAREQUEST_APIACTION_GETREADER3);
      String getRead3=portletReq.getParameter(V2REQUESTTESTS_CLIENTDATAREQUEST_APIACTION_GETREADER3);
      if(getRead3!=null && getRead3.equals(V2REQUESTTESTS_CLIENTDATAREQUEST_APIACTION_GETREADER3)) {
	      try {
	    	  portletReq.getReader();
	    	  tr9.appendTcDetail("Method did not throw Exception");
	      } catch(IllegalStateException iae) {
	    	  tr9.setTcSuccess(true);
	      }
      } else {
    	  portletResp.setRenderParameter(V2REQUESTTESTS_CLIENTDATAREQUEST_APIACTION_GETREADER3, V2REQUESTTESTS_CLIENTDATAREQUEST_APIACTION_GETREADER3);
      }
      tr9.writeTo(writer);

      /* TestCase: V2RequestTests_ClientDataRequest_ApiAction_getReader5      */
      /* Details: "Method getReader(): Throws UnsupportedEncodingException    */
      /* if the character set encoding is not valid so that the text cannot   */
      /* be decoded"                                                          */
      TestResult tr10 = tcd.getTestResultFailed(V2REQUESTTESTS_CLIENTDATAREQUEST_APIACTION_GETREADER5);
      String getRead5=portletReq.getParameter(V2REQUESTTESTS_CLIENTDATAREQUEST_APIACTION_GETREADER5);
      if(getRead5!=null && getRead5.equals(V2REQUESTTESTS_CLIENTDATAREQUEST_APIACTION_GETREADER5)) {
	      try {
	    	  portletReq.setCharacterEncoding("UTF-NotValid");
	    	  portletReq.getReader();
	    	  tr6.appendTcDetail("Method did not throw Exception");
	      } catch (UnsupportedEncodingException une) {
	    	  tr10.setTcSuccess(true);
	      }
      } else {
    	  portletResp.setRenderParameter(V2REQUESTTESTS_CLIENTDATAREQUEST_APIACTION_GETREADER5, V2REQUESTTESTS_CLIENTDATAREQUEST_APIACTION_GETREADER5);
      }
      tr10.writeTo(writer);

      /* TestCase: V2RequestTests_ClientDataRequest_ApiAction_getCharacterEncoding1 */
      /* Details: "Method getCharacterEncoding(): Returns a String            */
      /* containing the name of the character encoding used in the request    */
      /* body"                                                                */
      TestResult tr11 = tcd.getTestResultFailed(V2REQUESTTESTS_CLIENTDATAREQUEST_APIACTION_GETCHARACTERENCODING1);
      String getChar1=portletReq.getParameter(V2REQUESTTESTS_CLIENTDATAREQUEST_APIACTION_GETCHARACTERENCODING1);
      if(getChar1!=null && getChar1.equals(V2REQUESTTESTS_CLIENTDATAREQUEST_APIACTION_GETCHARACTERENCODING1)) {
	      String getCharEncde=portletReq.getCharacterEncoding();
	      if(getCharEncde!=null) {
	    	  tr11.setTcSuccess(true);
	      } else {
	    	  tr11.appendTcDetail("The characted Encoding used in HTTP request has null value :");
	      }
      } else {
    	  portletResp.setRenderParameter(V2REQUESTTESTS_CLIENTDATAREQUEST_APIACTION_GETCHARACTERENCODING1, V2REQUESTTESTS_CLIENTDATAREQUEST_APIACTION_GETCHARACTERENCODING1);
      }
      
      tr11.writeTo(writer);

      /* TestCase: V2RequestTests_ClientDataRequest_ApiAction_getCharacterEncoding2 */
      /* Details: "Method getCharacterEncoding(): Returns null if the         */
      /* request does not specify a character encoding"                       */
      TestResult tr12 = tcd.getTestResultFailed(V2REQUESTTESTS_CLIENTDATAREQUEST_APIACTION_GETCHARACTERENCODING2);
      String getChar2=portletReq.getParameter(V2REQUESTTESTS_CLIENTDATAREQUEST_APIACTION_GETCHARACTERENCODING2);
      if(getChar2!=null && getChar2.equals(V2REQUESTTESTS_CLIENTDATAREQUEST_APIACTION_GETCHARACTERENCODING2)) {
	      tr12.setTcSuccess(true);
	      tr12.appendTcDetail("This method could not be tested for this Test Portlet which already has Character Encoding Value");
      } else {
    	  portletResp.setRenderParameter(V2REQUESTTESTS_CLIENTDATAREQUEST_APIACTION_GETCHARACTERENCODING2, V2REQUESTTESTS_CLIENTDATAREQUEST_APIACTION_GETCHARACTERENCODING2);
      }
	  tr12.writeTo(writer);

      /* TestCase: V2RequestTests_ClientDataRequest_ApiAction_getContentType1 */
      /* Details: "Method getContentType(): Returns a String containing the   */
      /* MIME type of the request body"                                       */
      TestResult tr13 = tcd.getTestResultFailed(V2REQUESTTESTS_CLIENTDATAREQUEST_APIACTION_GETCONTENTTYPE1);
      String getCnt1=portletReq.getParameter(V2REQUESTTESTS_CLIENTDATAREQUEST_APIACTION_GETCONTENTTYPE1);
      if(getCnt1!=null && getCnt1.equals(V2REQUESTTESTS_CLIENTDATAREQUEST_APIACTION_GETCONTENTTYPE1)) {
	      String getContype=portletReq.getContentType();
	      if(getContype!=null) {
	    	  tr13.setTcSuccess(true);
	      } else {
	    	  tr13.appendTcDetail("The ContentType of the HTTP request has values : " +getContype);
	      }
      } else {
    	  portletResp.setRenderParameter(V2REQUESTTESTS_CLIENTDATAREQUEST_APIACTION_GETCONTENTTYPE1, V2REQUESTTESTS_CLIENTDATAREQUEST_APIACTION_GETCONTENTTYPE1);
      }
      tr13.writeTo(writer);

      /* TestCase: V2RequestTests_ClientDataRequest_ApiAction_getContentType2 */
      /* Details: "Method getContentType(): Returns null if the MIME type     */
      /* is unknown"                                                          */
      TestResult tr14 = tcd.getTestResultFailed(V2REQUESTTESTS_CLIENTDATAREQUEST_APIACTION_GETCONTENTTYPE2);
      String getCnt2=portletReq.getParameter(V2REQUESTTESTS_CLIENTDATAREQUEST_APIACTION_GETCONTENTTYPE2);
      if(getCnt2!=null && getCnt2.equals(V2REQUESTTESTS_CLIENTDATAREQUEST_APIACTION_GETCONTENTTYPE2)) {
	      tr14.setTcSuccess(true);
	      tr14.appendTcDetail("This method could not be tested for this Test Portlet which already has known MIME type");
      } else {
    	  portletResp.setRenderParameter(V2REQUESTTESTS_CLIENTDATAREQUEST_APIACTION_GETCONTENTTYPE2, V2REQUESTTESTS_CLIENTDATAREQUEST_APIACTION_GETCONTENTTYPE2);
      }
	  tr14.writeTo(writer);

      /* TestCase: V2RequestTests_ClientDataRequest_ApiAction_getContentLength1 */
      /* Details: "Method getContentLength(): Returns the length in bytes     */
      /* of the request body"                                                 */
      TestResult tr15 = tcd.getTestResultFailed(V2REQUESTTESTS_CLIENTDATAREQUEST_APIACTION_GETCONTENTLENGTH1);
      String getCntl1=portletReq.getParameter(V2REQUESTTESTS_CLIENTDATAREQUEST_APIACTION_GETCONTENTLENGTH1);
      if(getCntl1!=null && getCntl1.equals(V2REQUESTTESTS_CLIENTDATAREQUEST_APIACTION_GETCONTENTLENGTH1)) {
	      int getConLgt=portletReq.getContentLength();
	      if(getConLgt!=-1) {
	    	  tr15.setTcSuccess(true);
	      } else {
	           tr15.appendTcDetail("The HTTP request has Length in bytes :"+getConLgt);
	      }
      } else {
    	  portletResp.setRenderParameter(V2REQUESTTESTS_CLIENTDATAREQUEST_APIACTION_GETCONTENTLENGTH1, V2REQUESTTESTS_CLIENTDATAREQUEST_APIACTION_GETCONTENTLENGTH1);
      }
      tr15.writeTo(writer);

      /* TestCase: V2RequestTests_ClientDataRequest_ApiAction_getContentLength2 */
      /* Details: "Method getContentLength(): Returns -1 if the length is     */
      /* unknown"                                                             */
      TestResult tr16 = tcd.getTestResultFailed(V2REQUESTTESTS_CLIENTDATAREQUEST_APIACTION_GETCONTENTLENGTH2);
      String getCntl2=portletReq.getParameter(V2REQUESTTESTS_CLIENTDATAREQUEST_APIACTION_GETCONTENTLENGTH2);
      if(getCntl2!=null && getCntl2.equals(V2REQUESTTESTS_CLIENTDATAREQUEST_APIACTION_GETCONTENTLENGTH2)) {
	      tr16.setTcSuccess(true);
	      tr16.appendTcDetail("This method could not be tested for this Test Portlet which already has  Known Length");
      } else {
    	  portletResp.setRenderParameter(V2REQUESTTESTS_CLIENTDATAREQUEST_APIACTION_GETCONTENTLENGTH2, V2REQUESTTESTS_CLIENTDATAREQUEST_APIACTION_GETCONTENTLENGTH2);
      }
      tr16.writeTo(writer);

      /* TestCase: V2RequestTests_ClientDataRequest_ApiAction_getMethod       */
      /* Details: "Method getMethod(): Returns a String containing the name   */
      /* of the HTTP method with which the request was made"                  */
      TestResult tr17 = tcd.getTestResultFailed(V2REQUESTTESTS_CLIENTDATAREQUEST_APIACTION_GETMETHOD);
      String getMethd=portletReq.getParameter(V2REQUESTTESTS_CLIENTDATAREQUEST_APIACTION_GETMETHOD);
      if(getMethd!=null && getMethd.equals(V2REQUESTTESTS_CLIENTDATAREQUEST_APIACTION_GETMETHOD)) {
	      String getmethod=portletReq.getMethod();
	      if(getmethod!=null && getmethod.equals("POST")) {
	    	  tr17.setTcSuccess(true);
	      } else {
	    	  tr17.appendTcDetail("The getMethod() for HTTP Request has the value :" +getmethod);  
	      }
      } else {
    	  portletResp.setRenderParameter(V2REQUESTTESTS_CLIENTDATAREQUEST_APIACTION_GETMETHOD, V2REQUESTTESTS_CLIENTDATAREQUEST_APIACTION_GETMETHOD);
      }
      tr17.writeTo(writer);

      portletReq.getPortletSession().setAttribute(
                   Constants.RESULT_ATTR_PREFIX + "RequestTests_ClientDataRequest_ApiAction",
                   writer.toString(), APPLICATION_SCOPE);
   }