portals-pluto-scm mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From msnickl...@apache.org
Subject [13/18] portals-pluto git commit: Implemented all V2TagLibraryTests
Date Tue, 03 May 2016 09:14:37 GMT
Implemented all V2TagLibraryTests


Project: http://git-wip-us.apache.org/repos/asf/portals-pluto/repo
Commit: http://git-wip-us.apache.org/repos/asf/portals-pluto/commit/717ec1cc
Tree: http://git-wip-us.apache.org/repos/asf/portals-pluto/tree/717ec1cc
Diff: http://git-wip-us.apache.org/repos/asf/portals-pluto/diff/717ec1cc

Branch: refs/heads/master
Commit: 717ec1cc7548c45371c4bcf0de9378182e686edf
Parents: 5b6ccfe
Author: ahmed <mkhan1@de.ibm.com>
Authored: Wed Apr 27 11:30:52 2016 +0200
Committer: ahmed <mkhan1@de.ibm.com>
Committed: Wed Apr 27 11:30:52 2016 +0200

----------------------------------------------------------------------
 ...gLibraryTests_SPEC2_26_IncludeJSPAction.java |    2 +-
 ...agLibraryTests_SPEC2_26_IncludeJSPEvent.java |    4 +-
 ...aryTests_SPEC2_26_IncludeJSPEvent_event.java |    3 +-
 ...LibraryTests_SPEC2_26_IncludeJSPGeneral.java |  200 ++-
 ...agLibraryTests_SPEC2_26_IncludeJSPAction.jsp |   71 +-
 ...TagLibraryTests_SPEC2_26_IncludeJSPEvent.jsp |   70 +-
 ...gLibraryTests_SPEC2_26_IncludeJSPGeneral.jsp |   99 +-
 ...braryTests_SPEC2_26_IncludeJSPGeneralTr0.jsp |   11 +
 ...braryTests_SPEC2_26_IncludeJSPGeneralTr3.jsp |    9 +
 ...LibraryTests2_SPEC2_26_IncludeJSPRender.java |  667 +++++++-
 .../resources/xml-resources/additionalTCs.xml   |    7 -
 ...gLibraryTests2_SPEC2_26_IncludeJSPRender.jsp | 1460 ++++++++++++-----
 ...sts2_SPEC2_26_IncludeJSPRenderActionTr33.jsp |   15 +
 ...braryTests3_SPEC2_26_IncludeJSPResource.java |  596 ++++++-
 .../resources/xml-resources/additionalTCs.xml   |    7 -
 ...ibraryTests3_SPEC2_26_IncludeJSPResource.jsp | 1499 +++++++++++++-----
 portlet-tck_3.0/driver/pom.xml                  |   14 +-
 .../portlet/tck/driver/TCKSimpleTestDriver.java |   14 +-
 .../xml-resources/plutoMultiPortletPage.xsl     |   85 +
 .../xml-resources/plutoSinglePortletPage.xsl    |   80 +
 portlet-tck_3.0/xml-resources/test.xsl          |   78 +
 21 files changed, 3888 insertions(+), 1103 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/portals-pluto/blob/717ec1cc/portlet-tck_3.0/V2PortletTagLibraryTests/src/main/java/javax/portlet/tck/portlets/PortletTagLibraryTests_SPEC2_26_IncludeJSPAction.java
----------------------------------------------------------------------
diff --git a/portlet-tck_3.0/V2PortletTagLibraryTests/src/main/java/javax/portlet/tck/portlets/PortletTagLibraryTests_SPEC2_26_IncludeJSPAction.java b/portlet-tck_3.0/V2PortletTagLibraryTests/src/main/java/javax/portlet/tck/portlets/PortletTagLibraryTests_SPEC2_26_IncludeJSPAction.java
index d1050eb..0b9bad9 100644
--- a/portlet-tck_3.0/V2PortletTagLibraryTests/src/main/java/javax/portlet/tck/portlets/PortletTagLibraryTests_SPEC2_26_IncludeJSPAction.java
+++ b/portlet-tck_3.0/V2PortletTagLibraryTests/src/main/java/javax/portlet/tck/portlets/PortletTagLibraryTests_SPEC2_26_IncludeJSPAction.java
@@ -43,7 +43,7 @@ import static javax.portlet.ResourceURL.*;
  * This is the main portlet for the test cases. If the test cases call for events, this portlet
  * will initiate the events, but not process them. The processing is done in the companion 
  * portlet PortletTagLibraryTests_SPEC2_26_IncludeJSPAction_event
- *
+ * @author ahmed
  */
 public class PortletTagLibraryTests_SPEC2_26_IncludeJSPAction implements Portlet, ResourceServingPortlet {
    private static final String LOG_CLASS = 

http://git-wip-us.apache.org/repos/asf/portals-pluto/blob/717ec1cc/portlet-tck_3.0/V2PortletTagLibraryTests/src/main/java/javax/portlet/tck/portlets/PortletTagLibraryTests_SPEC2_26_IncludeJSPEvent.java
----------------------------------------------------------------------
diff --git a/portlet-tck_3.0/V2PortletTagLibraryTests/src/main/java/javax/portlet/tck/portlets/PortletTagLibraryTests_SPEC2_26_IncludeJSPEvent.java b/portlet-tck_3.0/V2PortletTagLibraryTests/src/main/java/javax/portlet/tck/portlets/PortletTagLibraryTests_SPEC2_26_IncludeJSPEvent.java
index 735ad00..df13d72 100644
--- a/portlet-tck_3.0/V2PortletTagLibraryTests/src/main/java/javax/portlet/tck/portlets/PortletTagLibraryTests_SPEC2_26_IncludeJSPEvent.java
+++ b/portlet-tck_3.0/V2PortletTagLibraryTests/src/main/java/javax/portlet/tck/portlets/PortletTagLibraryTests_SPEC2_26_IncludeJSPEvent.java
@@ -43,7 +43,7 @@ import static javax.portlet.ResourceURL.*;
  * This is the main portlet for the test cases. If the test cases call for events, this portlet
  * will initiate the events, but not process them. The processing is done in the companion 
  * portlet PortletTagLibraryTests_SPEC2_26_IncludeJSPEvent_event
- *
+ * @author ahmed
  */
 public class PortletTagLibraryTests_SPEC2_26_IncludeJSPEvent implements Portlet, ResourceServingPortlet {
    private static final String LOG_CLASS = 
@@ -73,7 +73,7 @@ public class PortletTagLibraryTests_SPEC2_26_IncludeJSPEvent implements Portlet,
       StringWriter writer = new StringWriter();
 
       QName eventQName = new QName(TCKNAMESPACE,
-             "PortletTagLibraryTests_SPEC2_26_IncludeJSPEvent");
+            "PortletTagLibraryTests_SPEC2_26_IncludeJSPEvent");
       portletResp.setEvent(eventQName, "Hi!");
    }
 

http://git-wip-us.apache.org/repos/asf/portals-pluto/blob/717ec1cc/portlet-tck_3.0/V2PortletTagLibraryTests/src/main/java/javax/portlet/tck/portlets/PortletTagLibraryTests_SPEC2_26_IncludeJSPEvent_event.java
----------------------------------------------------------------------
diff --git a/portlet-tck_3.0/V2PortletTagLibraryTests/src/main/java/javax/portlet/tck/portlets/PortletTagLibraryTests_SPEC2_26_IncludeJSPEvent_event.java b/portlet-tck_3.0/V2PortletTagLibraryTests/src/main/java/javax/portlet/tck/portlets/PortletTagLibraryTests_SPEC2_26_IncludeJSPEvent_event.java
index ea33798..76b613c 100644
--- a/portlet-tck_3.0/V2PortletTagLibraryTests/src/main/java/javax/portlet/tck/portlets/PortletTagLibraryTests_SPEC2_26_IncludeJSPEvent_event.java
+++ b/portlet-tck_3.0/V2PortletTagLibraryTests/src/main/java/javax/portlet/tck/portlets/PortletTagLibraryTests_SPEC2_26_IncludeJSPEvent_event.java
@@ -35,7 +35,8 @@ import static javax.portlet.PortletSession.*;
 
 /**
  * This is the event processing portlet for the test cases. This portlet processes events, 
- * but does not publish them. Events are published in the main portlet for the test cases. 
+ * but does not publish them. Events are published in the main portlet for the test cases.
+ * @author ahmed 
  */
 public class PortletTagLibraryTests_SPEC2_26_IncludeJSPEvent_event implements Portlet, EventPortlet, ResourceServingPortlet {
    private static final String LOG_CLASS = 

http://git-wip-us.apache.org/repos/asf/portals-pluto/blob/717ec1cc/portlet-tck_3.0/V2PortletTagLibraryTests/src/main/java/javax/portlet/tck/portlets/PortletTagLibraryTests_SPEC2_26_IncludeJSPGeneral.java
----------------------------------------------------------------------
diff --git a/portlet-tck_3.0/V2PortletTagLibraryTests/src/main/java/javax/portlet/tck/portlets/PortletTagLibraryTests_SPEC2_26_IncludeJSPGeneral.java b/portlet-tck_3.0/V2PortletTagLibraryTests/src/main/java/javax/portlet/tck/portlets/PortletTagLibraryTests_SPEC2_26_IncludeJSPGeneral.java
index 593e5ea..6311897 100644
--- a/portlet-tck_3.0/V2PortletTagLibraryTests/src/main/java/javax/portlet/tck/portlets/PortletTagLibraryTests_SPEC2_26_IncludeJSPGeneral.java
+++ b/portlet-tck_3.0/V2PortletTagLibraryTests/src/main/java/javax/portlet/tck/portlets/PortletTagLibraryTests_SPEC2_26_IncludeJSPGeneral.java
@@ -1,19 +1,16 @@
-/*  Licensed to the Apache Software Foundation (ASF) under one
- *  or more contributor license agreements.  See the NOTICE file
- *  distributed with this work for additional information
- *  regarding copyright ownership.  The ASF licenses this file
- *  to you under the Apache License, Version 2.0 (the
- *  "License"); you may not use this file except in compliance
- *  with the License.  You may obtain a copy of the License at
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more contributor license
+ * agreements. See the NOTICE file distributed with this work for additional information regarding
+ * copyright ownership. The ASF licenses this file to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance with the License. You may obtain a
+ * copy of the License at
  *
- *    http://www.apache.org/licenses/LICENSE-2.0
+ * http://www.apache.org/licenses/LICENSE-2.0
  *
- *  Unless required by applicable law or agreed to in writing,
- *  software distributed under the License is distributed on an
- *  "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- *  KIND, either express or implied.  See the License for the
- *  specific language governing permissions and limitations
- *  under the License.
+ * Unless required by applicable law or agreed to in writing, software distributed under the License
+ * is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express
+ * or implied. See the License for the specific language governing permissions and limitations under
+ * the License.
  */
 
 package javax.portlet.tck.portlets;
@@ -35,72 +32,121 @@ import static javax.portlet.PortletSession.*;
 import static javax.portlet.ResourceURL.*;
 
 /**
- * This portlet implements several test cases for the JSR 362 TCK. The test case names
- * are defined in the /src/main/resources/xml-resources/additionalTCs.xml
- * file. The build process will integrate the test case names defined in the 
- * additionalTCs.xml file into the complete list of test case names for execution by the driver.
- *
- * This is the main portlet for the test cases. If the test cases call for events, this portlet
- * will initiate the events, but not process them. The processing is done in the companion 
- * portlet PortletTagLibraryTests_SPEC2_26_IncludeJSPGeneral_event
+ * This portlet implements several test cases for the JSR 362 TCK. The test case names are defined
+ * in the /src/main/resources/xml-resources/additionalTCs.xml file. The build process will integrate
+ * the test case names defined in the additionalTCs.xml file into the complete list of test case
+ * names for execution by the driver.
  *
+ * This is the main portlet for the test cases. If the test cases call for events, this portlet will
+ * initiate the events, but not process them. The processing is done in the companion portlet
+ * PortletTagLibraryTests_SPEC2_26_IncludeJSPGeneral_event
+ * @author ahmed
  */
-public class PortletTagLibraryTests_SPEC2_26_IncludeJSPGeneral implements Portlet, ResourceServingPortlet {
-   private static final String LOG_CLASS = 
-         PortletTagLibraryTests_SPEC2_26_IncludeJSPGeneral.class.getName();
-   private final Logger LOGGER = Logger.getLogger(LOG_CLASS);
-   
-   private PortletConfig portletConfig = null;
-
-   @Override
-   public void init(PortletConfig config) throws PortletException {
-      this.portletConfig = config;
-   }
-
-   @Override
-   public void destroy() {
-   }
-
-   @Override
-   public void processAction(ActionRequest portletReq, ActionResponse portletResp)
-         throws PortletException, IOException {
-      LOGGER.entering(LOG_CLASS, "main portlet processAction entry");
-
-      portletResp.setRenderParameters(portletReq.getParameterMap());
-      long tid = Thread.currentThread().getId();
-      portletReq.setAttribute(THREADID_ATTR, tid);
-
-      StringWriter writer = new StringWriter();
-
-   }
-
-   @Override
-   public void serveResource(ResourceRequest portletReq, ResourceResponse portletResp)
-         throws PortletException, IOException {
-      LOGGER.entering(LOG_CLASS, "main portlet serveResource entry");
-
-      long tid = Thread.currentThread().getId();
-      portletReq.setAttribute(THREADID_ATTR, tid);
-
-      PrintWriter writer = portletResp.getWriter();
-
-   }
-
-   @Override
-   public void render(RenderRequest portletReq, RenderResponse portletResp)
-         throws PortletException, IOException {
-      LOGGER.entering(LOG_CLASS, "main portlet render entry");
-
-      long tid = Thread.currentThread().getId();
-      portletReq.setAttribute(THREADID_ATTR, tid);
-
-      PrintWriter writer = portletResp.getWriter();
-
+public class PortletTagLibraryTests_SPEC2_26_IncludeJSPGeneral
+    implements Portlet, ResourceServingPortlet {
+  private static final String LOG_CLASS =
+      PortletTagLibraryTests_SPEC2_26_IncludeJSPGeneral.class.getName();
+  private final Logger LOGGER = Logger.getLogger(LOG_CLASS);
+
+  private PortletConfig portletConfig = null;
+
+  @Override
+  public void init(PortletConfig config) throws PortletException {
+    this.portletConfig = config;
+  }
+
+  @Override
+  public void destroy() {}
+
+  @Override
+  public void processAction(ActionRequest portletReq, ActionResponse portletResp)
+      throws PortletException, IOException {
+    LOGGER.entering(LOG_CLASS, "main portlet processAction entry");
+    portletResp.setRenderParameters(portletReq.getParameterMap());
+    long tid = Thread.currentThread().getId();
+    portletReq.setAttribute(THREADID_ATTR, tid);
+    StringWriter writer = new StringWriter();
+  }
+
+  @Override
+  public void serveResource(ResourceRequest portletReq, ResourceResponse portletResp)
+      throws PortletException, IOException {
+    LOGGER.entering(LOG_CLASS, "main portlet serveResource entry");
+
+    long tid = Thread.currentThread().getId();
+    portletReq.setAttribute(THREADID_ATTR, tid);
+
+    PrintWriter writer = portletResp.getWriter();
+
+  }
+
+  @Override
+  public void render(RenderRequest portletReq, RenderResponse portletResp)
+      throws PortletException, IOException {
+    LOGGER.entering(LOG_CLASS, "main portlet render entry");
+    JSR286SpecTestCaseDetails tcd = new JSR286SpecTestCaseDetails();
+
+    long tid = Thread.currentThread().getId();
+    portletReq.setAttribute(THREADID_ATTR, tid);
+
+    PrintWriter writer = portletResp.getWriter();
+
+    /*
+     * TestCase: V2PortletTagLibraryTests_SPEC2_26_IncludeJSPGeneral_defineObjects4 Details: "The
+     * defineObjects tag must not define any attribute and it must not contain any body content"
+     */
+    TestResult tr3 =
+        tcd.getTestResultFailed(V2PORTLETTAGLIBRARYTESTS_SPEC2_26_INCLUDEJSPGENERAL_DEFINEOBJECTS4);
+    try {
+      String target = JSP_PREFIX + "PortletTagLibraryTests_SPEC2_26_IncludeJSPGeneralTr3"
+          + JSP_SUFFIX + "?" + QUERY_STRING;
+      PortletRequestDispatcher rd = portletConfig.getPortletContext().getRequestDispatcher(target);
+      rd.include(portletReq, portletResp);
+    } catch (PortletException e) {
+      tr3.setTcSuccess(true);
+      tr3.appendTcDetail(e.getMessage());
+    }
+    tr3.writeTo(writer);
+
+    /*
+     * TestCase: V2PortletTagLibraryTests_SPEC2_26_IncludeJSPGeneral_defineObjects3 Details: "The
+     * version 1.0 tag library may be referenced using &lt;%@ taglib uri=\
+     * "http://java.sun.com/portlet\" prefix=\"portlet\" %&gt;"
+     */
+    TestResult tr0 =
+        tcd.getTestResultFailed(V2PORTLETTAGLIBRARYTESTS_SPEC2_26_INCLUDEJSPGENERAL_DEFINEOBJECTS3);
+    try {
+      String target = JSP_PREFIX + "PortletTagLibraryTests_SPEC2_26_IncludeJSPGeneralTr0"
+          + JSP_SUFFIX + "?" + QUERY_STRING;
+      PortletRequestDispatcher rd = portletConfig.getPortletContext().getRequestDispatcher(target);
+      rd.include(portletReq, portletResp);
+    } catch (PortletException e) {
+      tr0.setTcSuccess(true);
+      tr0.appendTcDetail(e.getMessage());
+    }
+    tr0.writeTo(writer);
+
+
+    /*
+     * TestCase: V2PortletTagLibraryTests_SPEC2_26_IncludeJSPGeneral_defineObjects2 Details: "In
+     * order to obtain version 2 support, the tag library must be specified as &lt;%@ taglib uri=\
+     * "http://java.sun.com/portlet_2_0\" prefix=\"portlet\" %&gt;"
+     */
+    TestResult tr2 =
+        tcd.getTestResultFailed(V2PORTLETTAGLIBRARYTESTS_SPEC2_26_INCLUDEJSPGENERAL_DEFINEOBJECTS2);
+    try {
       // Now do the actual dispatch
-      String target = JSP_PREFIX + "PortletTagLibraryTests_SPEC2_26_IncludeJSPGeneral" + JSP_SUFFIX + "?" + QUERY_STRING;
-      PortletRequestDispatcher rd = portletConfig.getPortletContext()
-            .getRequestDispatcher(target);
+      String target = JSP_PREFIX + "PortletTagLibraryTests_SPEC2_26_IncludeJSPGeneral" + JSP_SUFFIX
+          + "?" + QUERY_STRING;
+      PortletRequestDispatcher rd = portletConfig.getPortletContext().getRequestDispatcher(target);
       rd.include(portletReq, portletResp);
-   }
+      tr2.setTcSuccess(true);
+    } catch (PortletException e) {
+      tr2.appendTcDetail(e.getMessage());
+      tr2.setTcSuccess(false);
+    }
+    tr2.writeTo(writer);
+
+  }
 
 }

http://git-wip-us.apache.org/repos/asf/portals-pluto/blob/717ec1cc/portlet-tck_3.0/V2PortletTagLibraryTests/src/main/webapp/WEB-INF/jsp/PortletTagLibraryTests_SPEC2_26_IncludeJSPAction.jsp
----------------------------------------------------------------------
diff --git a/portlet-tck_3.0/V2PortletTagLibraryTests/src/main/webapp/WEB-INF/jsp/PortletTagLibraryTests_SPEC2_26_IncludeJSPAction.jsp b/portlet-tck_3.0/V2PortletTagLibraryTests/src/main/webapp/WEB-INF/jsp/PortletTagLibraryTests_SPEC2_26_IncludeJSPAction.jsp
index ca1590e..4994d36 100644
--- a/portlet-tck_3.0/V2PortletTagLibraryTests/src/main/webapp/WEB-INF/jsp/PortletTagLibraryTests_SPEC2_26_IncludeJSPAction.jsp
+++ b/portlet-tck_3.0/V2PortletTagLibraryTests/src/main/webapp/WEB-INF/jsp/PortletTagLibraryTests_SPEC2_26_IncludeJSPAction.jsp
@@ -1,3 +1,6 @@
+<%-- 
+  - Author(s): ahmed
+  --%>
 <%@ page session="false" %>
 <%@ taglib uri="http://java.sun.com/portlet_2_0"  prefix="portlet" %>
 <%@ taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c" %>
@@ -8,11 +11,10 @@
 <%@ page import="javax.portlet.tck.beans.*,javax.portlet.tck.constants.*" %>
 <%@ page import="static javax.portlet.tck.constants.Constants.*" %>
 <%@ page import="static javax.portlet.tck.beans.JSR286SpecTestCaseDetails.*" %>
+<portlet:defineObjects/>
 <%
-
       PortletRequest portletReq = (PortletRequest) request.getAttribute("javax.portlet.request");
       PortletResponse portletResp = (PortletResponse) request.getAttribute("javax.portlet.response");
-      PortletConfig portletConfig = (PortletConfig) request.getAttribute("javax.portlet.config");
       long svtTid = Thread.currentThread().getId();
       long reqTid = (Long) portletReq.getAttribute(THREADID_ATTR);
 
@@ -27,8 +29,9 @@
       /* defines the variable RenderRequest renderRequest to be null or       */
       /* undefined"                                                           */
       TestResult tr0 = tcd.getTestResultFailed(V2PORTLETTAGLIBRARYTESTS_SPEC2_26_INCLUDEJSPACTION_DEFINEOBJECTS1);
-      /* TODO: implement test */
-      tr0.appendTcDetail("Not implemented.");
+      if(renderRequest==null){
+        tr0.setTcSuccess(true);
+      }
       tr0.writeTo(writer);
 
       /* TestCase: V2PortletTagLibraryTests_SPEC2_26_IncludeJSPAction_defineObjects2 */
@@ -36,8 +39,9 @@
       /* defines the variable ResourceRequest resourceRequest to be null or   */
       /* undefined"                                                           */
       TestResult tr1 = tcd.getTestResultFailed(V2PORTLETTAGLIBRARYTESTS_SPEC2_26_INCLUDEJSPACTION_DEFINEOBJECTS2);
-      /* TODO: implement test */
-      tr1.appendTcDetail("Not implemented.");
+      if(resourceRequest==null){
+        tr1.setTcSuccess(true);
+      }
       tr1.writeTo(writer);
 
       /* TestCase: V2PortletTagLibraryTests_SPEC2_26_IncludeJSPAction_defineObjects3 */
@@ -45,8 +49,9 @@
       /* defines the variable ActionRequest actionRequest to the              */
       /* corresponding object"                                                */
       TestResult tr2 = tcd.getTestResultFailed(V2PORTLETTAGLIBRARYTESTS_SPEC2_26_INCLUDEJSPACTION_DEFINEOBJECTS3);
-      /* TODO: implement test */
-      tr2.appendTcDetail("Not implemented.");
+      if(actionRequest!=null && actionRequest.equals(portletReq)){
+        tr2.setTcSuccess(true);
+      }
       tr2.writeTo(writer);
 
       /* TestCase: V2PortletTagLibraryTests_SPEC2_26_IncludeJSPAction_defineObjects4 */
@@ -54,8 +59,9 @@
       /* defines the variable EventRequest eventRequest to be null or         */
       /* undefined"                                                           */
       TestResult tr3 = tcd.getTestResultFailed(V2PORTLETTAGLIBRARYTESTS_SPEC2_26_INCLUDEJSPACTION_DEFINEOBJECTS4);
-      /* TODO: implement test */
-      tr3.appendTcDetail("Not implemented.");
+      if(eventRequest==null){
+        tr3.setTcSuccess(true);
+      }
       tr3.writeTo(writer);
 
       /* TestCase: V2PortletTagLibraryTests_SPEC2_26_IncludeJSPAction_defineObjects5 */
@@ -63,8 +69,9 @@
       /* defines the variable RenderResponse renderResponse to be null or     */
       /* undefined"                                                           */
       TestResult tr4 = tcd.getTestResultFailed(V2PORTLETTAGLIBRARYTESTS_SPEC2_26_INCLUDEJSPACTION_DEFINEOBJECTS5);
-      /* TODO: implement test */
-      tr4.appendTcDetail("Not implemented.");
+      if(renderResponse==null){
+        tr4.setTcSuccess(true);
+      }
       tr4.writeTo(writer);
 
       /* TestCase: V2PortletTagLibraryTests_SPEC2_26_IncludeJSPAction_defineObjects6 */
@@ -72,8 +79,9 @@
       /* defines the variable ResourceResponse resourceResponse to be null    */
       /* or undefined"                                                        */
       TestResult tr5 = tcd.getTestResultFailed(V2PORTLETTAGLIBRARYTESTS_SPEC2_26_INCLUDEJSPACTION_DEFINEOBJECTS6);
-      /* TODO: implement test */
-      tr5.appendTcDetail("Not implemented.");
+      if(resourceResponse==null){
+        tr5.setTcSuccess(true);
+      }
       tr5.writeTo(writer);
 
       /* TestCase: V2PortletTagLibraryTests_SPEC2_26_IncludeJSPAction_defineObjects7 */
@@ -81,8 +89,9 @@
       /* defines the variable ActionResponse actionResponse to the            */
       /* corresponding object"                                                */
       TestResult tr6 = tcd.getTestResultFailed(V2PORTLETTAGLIBRARYTESTS_SPEC2_26_INCLUDEJSPACTION_DEFINEOBJECTS7);
-      /* TODO: implement test */
-      tr6.appendTcDetail("Not implemented.");
+      if(actionResponse!=null && actionResponse.equals(portletResp)){
+        tr6.setTcSuccess(true);
+      }
       tr6.writeTo(writer);
 
       /* TestCase: V2PortletTagLibraryTests_SPEC2_26_IncludeJSPAction_defineObjects8 */
@@ -90,16 +99,18 @@
       /* defines the variable EventResponse eventResponse to be null or       */
       /* undefined"                                                           */
       TestResult tr7 = tcd.getTestResultFailed(V2PORTLETTAGLIBRARYTESTS_SPEC2_26_INCLUDEJSPACTION_DEFINEOBJECTS8);
-      /* TODO: implement test */
-      tr7.appendTcDetail("Not implemented.");
+      if(eventResponse==null){
+        tr7.setTcSuccess(true);
+      }
       tr7.writeTo(writer);
 
       /* TestCase: V2PortletTagLibraryTests_SPEC2_26_IncludeJSPAction_defineObjects9 */
       /* Details: "When included in the Action phase, the defineObjects tag   */
       /* defines the variable PortletConfig portletConfig"                    */
       TestResult tr8 = tcd.getTestResultFailed(V2PORTLETTAGLIBRARYTESTS_SPEC2_26_INCLUDEJSPACTION_DEFINEOBJECTS9);
-      /* TODO: implement test */
-      tr8.appendTcDetail("Not implemented.");
+      if(portletConfig!=null && portletConfig.equals((PortletConfig) request.getAttribute("javax.portlet.config"))){
+        tr8.setTcSuccess(true);
+      }
       tr8.writeTo(writer);
 
       /* TestCase: V2PortletTagLibraryTests_SPEC2_26_IncludeJSPAction_defineObjects10 */
@@ -108,8 +119,9 @@
       /* access to the portletSession, does not create a new session, only    */
       /* returns an existing session or null if no session exists."           */
       TestResult tr9 = tcd.getTestResultFailed(V2PORTLETTAGLIBRARYTESTS_SPEC2_26_INCLUDEJSPACTION_DEFINEOBJECTS10);
-      /* TODO: implement test */
-      tr9.appendTcDetail("Not implemented.");
+      if(portletSession==null || portletSession.equals(portletReq.getPortletSession())){
+        tr9.setTcSuccess(true);
+      }
       tr9.writeTo(writer);
 
       /* TestCase: V2PortletTagLibraryTests_SPEC2_26_IncludeJSPAction_defineObjects11 */
@@ -121,8 +133,9 @@
       /* session, only returns an existing session. If no session             */
       /* attributes exist this method returns an empty Map."                  */
       TestResult tr10 = tcd.getTestResultFailed(V2PORTLETTAGLIBRARYTESTS_SPEC2_26_INCLUDEJSPACTION_DEFINEOBJECTS11);
-      /* TODO: implement test */
-      tr10.appendTcDetail("Not implemented.");
+      if(portletSessionScope.isEmpty() || portletSessionScope.equals(portletReq.getPortletSession().getAttributeMap())){
+        tr10.setTcSuccess(true);
+      }
       tr10.writeTo(writer);
 
       /* TestCase: V2PortletTagLibraryTests_SPEC2_26_IncludeJSPAction_defineObjects12 */
@@ -130,8 +143,9 @@
       /* defines the variable PortletPreferences portletPreferences,          */
       /* providing access to the portlet preferences."                        */
       TestResult tr11 = tcd.getTestResultFailed(V2PORTLETTAGLIBRARYTESTS_SPEC2_26_INCLUDEJSPACTION_DEFINEOBJECTS12);
-      /* TODO: implement test */
-      tr11.appendTcDetail("Not implemented.");
+      if(portletPreferences.equals(portletReq.getPreferences())){
+        tr11.setTcSuccess(true);
+      }
       tr11.writeTo(writer);
 
       /* TestCase: V2PortletTagLibraryTests_SPEC2_26_IncludeJSPAction_defineObjects13 */
@@ -142,8 +156,9 @@
       /* PortletPreferences.getMap() call. If no portlet preferences exist,   */
       /* the Map is empty."                                                   */
       TestResult tr12 = tcd.getTestResultFailed(V2PORTLETTAGLIBRARYTESTS_SPEC2_26_INCLUDEJSPACTION_DEFINEOBJECTS13);
-      /* TODO: implement test */
-      tr12.appendTcDetail("Not implemented.");
+      if(portletPreferencesValues.isEmpty() || portletPreferencesValues.equals(portletReq.getPreferences().getMap())){
+        tr12.setTcSuccess(true);
+      }
       tr12.writeTo(writer);
 
       request.getSession().setAttribute(

http://git-wip-us.apache.org/repos/asf/portals-pluto/blob/717ec1cc/portlet-tck_3.0/V2PortletTagLibraryTests/src/main/webapp/WEB-INF/jsp/PortletTagLibraryTests_SPEC2_26_IncludeJSPEvent.jsp
----------------------------------------------------------------------
diff --git a/portlet-tck_3.0/V2PortletTagLibraryTests/src/main/webapp/WEB-INF/jsp/PortletTagLibraryTests_SPEC2_26_IncludeJSPEvent.jsp b/portlet-tck_3.0/V2PortletTagLibraryTests/src/main/webapp/WEB-INF/jsp/PortletTagLibraryTests_SPEC2_26_IncludeJSPEvent.jsp
index f8a92e2..4672b75 100644
--- a/portlet-tck_3.0/V2PortletTagLibraryTests/src/main/webapp/WEB-INF/jsp/PortletTagLibraryTests_SPEC2_26_IncludeJSPEvent.jsp
+++ b/portlet-tck_3.0/V2PortletTagLibraryTests/src/main/webapp/WEB-INF/jsp/PortletTagLibraryTests_SPEC2_26_IncludeJSPEvent.jsp
@@ -1,3 +1,6 @@
+<%-- 
+  - Author(s): ahmed
+  --%>
 <%@ page session="false" %>
 <%@ taglib uri="http://java.sun.com/portlet_2_0"  prefix="portlet" %>
 <%@ taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c" %>
@@ -8,11 +11,11 @@
 <%@ page import="javax.portlet.tck.beans.*,javax.portlet.tck.constants.*" %>
 <%@ page import="static javax.portlet.tck.constants.Constants.*" %>
 <%@ page import="static javax.portlet.tck.beans.JSR286SpecTestCaseDetails.*" %>
+<portlet:defineObjects/>
 <%
 
       PortletRequest portletReq = (PortletRequest) request.getAttribute("javax.portlet.request");
       PortletResponse portletResp = (PortletResponse) request.getAttribute("javax.portlet.response");
-      PortletConfig portletConfig = (PortletConfig) request.getAttribute("javax.portlet.config");
       long svtTid = Thread.currentThread().getId();
       long reqTid = (Long) portletReq.getAttribute(THREADID_ATTR);
 
@@ -27,8 +30,9 @@
       /* defines the variable RenderRequest renderRequest to be null or       */
       /* undefined"                                                           */
       TestResult tr0 = tcd.getTestResultFailed(V2PORTLETTAGLIBRARYTESTS_SPEC2_26_INCLUDEJSPEVENT_DEFINEOBJECTS1);
-      /* TODO: implement test */
-      tr0.appendTcDetail("Not implemented.");
+      if(renderRequest==null){
+        tr0.setTcSuccess(true);
+      }
       tr0.writeTo(writer);
 
       /* TestCase: V2PortletTagLibraryTests_SPEC2_26_IncludeJSPEvent_defineObjects2 */
@@ -36,8 +40,9 @@
       /* defines the variable ResourceRequest resourceRequest to be null or   */
       /* undefined"                                                           */
       TestResult tr1 = tcd.getTestResultFailed(V2PORTLETTAGLIBRARYTESTS_SPEC2_26_INCLUDEJSPEVENT_DEFINEOBJECTS2);
-      /* TODO: implement test */
-      tr1.appendTcDetail("Not implemented.");
+      if(resourceRequest==null){
+        tr1.setTcSuccess(true);
+      }
       tr1.writeTo(writer);
 
       /* TestCase: V2PortletTagLibraryTests_SPEC2_26_IncludeJSPEvent_defineObjects3 */
@@ -45,8 +50,9 @@
       /* defines the variable ActionRequest actionRequest to be null or       */
       /* undefined"                                                           */
       TestResult tr2 = tcd.getTestResultFailed(V2PORTLETTAGLIBRARYTESTS_SPEC2_26_INCLUDEJSPEVENT_DEFINEOBJECTS3);
-      /* TODO: implement test */
-      tr2.appendTcDetail("Not implemented.");
+      if(actionRequest==null){
+        tr2.setTcSuccess(true);
+      }
       tr2.writeTo(writer);
 
       /* TestCase: V2PortletTagLibraryTests_SPEC2_26_IncludeJSPEvent_defineObjects4 */
@@ -54,8 +60,9 @@
       /* defines the variable EventRequest eventRequest to the                */
       /* corresponding object"                                                */
       TestResult tr3 = tcd.getTestResultFailed(V2PORTLETTAGLIBRARYTESTS_SPEC2_26_INCLUDEJSPEVENT_DEFINEOBJECTS4);
-      /* TODO: implement test */
-      tr3.appendTcDetail("Not implemented.");
+      if(eventRequest!=null && eventRequest.equals(portletReq)){
+        tr3.setTcSuccess(true);
+      }
       tr3.writeTo(writer);
 
       /* TestCase: V2PortletTagLibraryTests_SPEC2_26_IncludeJSPEvent_defineObjects5 */
@@ -63,8 +70,9 @@
       /* defines the variable RenderResponse renderResponse to be null or     */
       /* undefined"                                                           */
       TestResult tr4 = tcd.getTestResultFailed(V2PORTLETTAGLIBRARYTESTS_SPEC2_26_INCLUDEJSPEVENT_DEFINEOBJECTS5);
-      /* TODO: implement test */
-      tr4.appendTcDetail("Not implemented.");
+      if(renderResponse==null){
+        tr4.setTcSuccess(true);
+      }
       tr4.writeTo(writer);
 
       /* TestCase: V2PortletTagLibraryTests_SPEC2_26_IncludeJSPEvent_defineObjects6 */
@@ -72,8 +80,9 @@
       /* defines the variable ResourceResponse resourceResponse to be null    */
       /* or undefined"                                                        */
       TestResult tr5 = tcd.getTestResultFailed(V2PORTLETTAGLIBRARYTESTS_SPEC2_26_INCLUDEJSPEVENT_DEFINEOBJECTS6);
-      /* TODO: implement test */
-      tr5.appendTcDetail("Not implemented.");
+      if(resourceResponse==null){
+        tr5.setTcSuccess(true);
+      }
       tr5.writeTo(writer);
 
       /* TestCase: V2PortletTagLibraryTests_SPEC2_26_IncludeJSPEvent_defineObjects7 */
@@ -81,8 +90,9 @@
       /* defines the variable ActionResponse actionResponse to be null or     */
       /* undefined"                                                           */
       TestResult tr6 = tcd.getTestResultFailed(V2PORTLETTAGLIBRARYTESTS_SPEC2_26_INCLUDEJSPEVENT_DEFINEOBJECTS7);
-      /* TODO: implement test */
-      tr6.appendTcDetail("Not implemented.");
+      if(actionResponse==null){
+        tr6.setTcSuccess(true);
+      }
       tr6.writeTo(writer);
 
       /* TestCase: V2PortletTagLibraryTests_SPEC2_26_IncludeJSPEvent_defineObjects8 */
@@ -90,16 +100,18 @@
       /* defines the variable EventResponse eventResponse to the              */
       /* corresponding object"                                                */
       TestResult tr7 = tcd.getTestResultFailed(V2PORTLETTAGLIBRARYTESTS_SPEC2_26_INCLUDEJSPEVENT_DEFINEOBJECTS8);
-      /* TODO: implement test */
-      tr7.appendTcDetail("Not implemented.");
+      if(eventResponse!=null && eventResponse.equals(portletResp)){
+        tr7.setTcSuccess(true);
+      }
       tr7.writeTo(writer);
 
       /* TestCase: V2PortletTagLibraryTests_SPEC2_26_IncludeJSPEvent_defineObjects9 */
       /* Details: "When included in the Event phase, the defineObjects tag    */
       /* defines the variable PortletConfig portletConfig"                    */
       TestResult tr8 = tcd.getTestResultFailed(V2PORTLETTAGLIBRARYTESTS_SPEC2_26_INCLUDEJSPEVENT_DEFINEOBJECTS9);
-      /* TODO: implement test */
-      tr8.appendTcDetail("Not implemented.");
+      if(portletConfig!=null && portletConfig.equals((PortletConfig) request.getAttribute("javax.portlet.config"))){
+        tr8.setTcSuccess(true);
+      }
       tr8.writeTo(writer);
 
       /* TestCase: V2PortletTagLibraryTests_SPEC2_26_IncludeJSPEvent_defineObjects10 */
@@ -108,8 +120,9 @@
       /* access to the portletSession, does not create a new session, only    */
       /* returns an existing session or null if no session exists."           */
       TestResult tr9 = tcd.getTestResultFailed(V2PORTLETTAGLIBRARYTESTS_SPEC2_26_INCLUDEJSPEVENT_DEFINEOBJECTS10);
-      /* TODO: implement test */
-      tr9.appendTcDetail("Not implemented.");
+      if(portletSession==null || portletSession.equals(portletReq.getPortletSession())){
+        tr9.setTcSuccess(true);
+      }
       tr9.writeTo(writer);
 
       /* TestCase: V2PortletTagLibraryTests_SPEC2_26_IncludeJSPEvent_defineObjects11 */
@@ -121,8 +134,9 @@
       /* session, only returns an existing session. If no session             */
       /* attributes exist this method returns an empty Map."                  */
       TestResult tr10 = tcd.getTestResultFailed(V2PORTLETTAGLIBRARYTESTS_SPEC2_26_INCLUDEJSPEVENT_DEFINEOBJECTS11);
-      /* TODO: implement test */
-      tr10.appendTcDetail("Not implemented.");
+      if(portletSessionScope.isEmpty() || portletSessionScope.equals(portletReq.getPortletSession().getAttributeMap())){
+        tr10.setTcSuccess(true);
+      }
       tr10.writeTo(writer);
 
       /* TestCase: V2PortletTagLibraryTests_SPEC2_26_IncludeJSPEvent_defineObjects12 */
@@ -130,8 +144,9 @@
       /* defines the variable PortletPreferences portletPreferences,          */
       /* providing access to the portlet preferences."                        */
       TestResult tr11 = tcd.getTestResultFailed(V2PORTLETTAGLIBRARYTESTS_SPEC2_26_INCLUDEJSPEVENT_DEFINEOBJECTS12);
-      /* TODO: implement test */
-      tr11.appendTcDetail("Not implemented.");
+      if(portletPreferences.equals(portletReq.getPreferences())){
+        tr11.setTcSuccess(true);
+      }
       tr11.writeTo(writer);
 
       /* TestCase: V2PortletTagLibraryTests_SPEC2_26_IncludeJSPEvent_defineObjects13 */
@@ -142,8 +157,9 @@
       /* PortletPreferences.getMap() call. If no portlet preferences exist,   */
       /* the Map is empty."                                                   */
       TestResult tr12 = tcd.getTestResultFailed(V2PORTLETTAGLIBRARYTESTS_SPEC2_26_INCLUDEJSPEVENT_DEFINEOBJECTS13);
-      /* TODO: implement test */
-      tr12.appendTcDetail("Not implemented.");
+      if(portletPreferencesValues.isEmpty() || portletPreferencesValues.equals(portletReq.getPreferences().getMap())){
+        tr12.setTcSuccess(true);
+      }
       tr12.writeTo(writer);
 
       request.getSession().setAttribute(

http://git-wip-us.apache.org/repos/asf/portals-pluto/blob/717ec1cc/portlet-tck_3.0/V2PortletTagLibraryTests/src/main/webapp/WEB-INF/jsp/PortletTagLibraryTests_SPEC2_26_IncludeJSPGeneral.jsp
----------------------------------------------------------------------
diff --git a/portlet-tck_3.0/V2PortletTagLibraryTests/src/main/webapp/WEB-INF/jsp/PortletTagLibraryTests_SPEC2_26_IncludeJSPGeneral.jsp b/portlet-tck_3.0/V2PortletTagLibraryTests/src/main/webapp/WEB-INF/jsp/PortletTagLibraryTests_SPEC2_26_IncludeJSPGeneral.jsp
index cafd35e..803f2dc 100644
--- a/portlet-tck_3.0/V2PortletTagLibraryTests/src/main/webapp/WEB-INF/jsp/PortletTagLibraryTests_SPEC2_26_IncludeJSPGeneral.jsp
+++ b/portlet-tck_3.0/V2PortletTagLibraryTests/src/main/webapp/WEB-INF/jsp/PortletTagLibraryTests_SPEC2_26_IncludeJSPGeneral.jsp
@@ -1,6 +1,10 @@
+<%-- 
+  - Author(s): ahmed
+  --%>
 <%@ page session="false" %>
 <%@ taglib uri="http://java.sun.com/portlet_2_0"  prefix="portlet" %>
 <%@ taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c" %>
+<%@ page import="javax.portlet.PortletException" %>
 <%@ page import="java.io.*,java.util.*,java.util.logging.*" %>
 <%@ page import="static java.util.logging.Logger.*" %>
 <%@ page import="javax.portlet.*,javax.portlet.filter.*" %>
@@ -8,77 +12,82 @@
 <%@ page import="javax.portlet.tck.beans.*,javax.portlet.tck.constants.*" %>
 <%@ page import="static javax.portlet.tck.constants.Constants.*" %>
 <%@ page import="static javax.portlet.tck.beans.JSR286SpecTestCaseDetails.*" %>
+<portlet:defineObjects/>
 <%
-
       PortletRequest portletReq = (PortletRequest) request.getAttribute("javax.portlet.request");
       PortletResponse portletResp = (PortletResponse) request.getAttribute("javax.portlet.response");
-      PortletConfig portletConfig = (PortletConfig) request.getAttribute("javax.portlet.config");
       long svtTid = Thread.currentThread().getId();
       long reqTid = (Long) portletReq.getAttribute(THREADID_ATTR);
 
-      PrintWriter writer = ((MimeResponse)portletResp).getWriter();
+      StringWriter writer = new StringWriter();
 
       JSR286SpecTestCaseDetails tcd = new JSR286SpecTestCaseDetails();
 
       // Create result objects for the tests
 
-      /* TestCase: V2PortletTagLibraryTests_SPEC2_26_IncludeJSPGeneral_defineObjects3 */
-      /* Details: "The version 1.0 tag library may be referenced using        */
-      /* &lt;%@ taglib uri=\"http://java.sun.com/portlet\"                    */
-      /* prefix=\"portlet\" %&gt;"                                            */
-      TestResult tr0 = tcd.getTestResultFailed(V2PORTLETTAGLIBRARYTESTS_SPEC2_26_INCLUDEJSPGENERAL_DEFINEOBJECTS3);
-      /* TODO: implement test */
-      tr0.appendTcDetail("Not implemented.");
-      tr0.writeTo(writer);
-
       /* TestCase: V2PortletTagLibraryTests_SPEC2_26_IncludeJSPGeneral_defineObjects1 */
       /* Details: "The portlet-container must provide an implementation of    */
       /* the Tag Lib"                                                         */
       TestResult tr1 = tcd.getTestResultFailed(V2PORTLETTAGLIBRARYTESTS_SPEC2_26_INCLUDEJSPGENERAL_DEFINEOBJECTS1);
-      /* TODO: implement test */
-      tr1.appendTcDetail("Not implemented.");
+      if(!portletConfig.equals(null)){
+        tr1.setTcSuccess(true);
+      }
       tr1.writeTo(writer);
 
-      /* TestCase: V2PortletTagLibraryTests_SPEC2_26_IncludeJSPGeneral_defineObjects2 */
-      /* Details: "In order to obtain version 2 support, the tag library      */
-      /* must be specified as &lt;%@ taglib                                   */
-      /* uri=\"http://java.sun.com/portlet_2_0\" prefix=\"portlet\" %&gt;"    */
-      TestResult tr2 = tcd.getTestResultFailed(V2PORTLETTAGLIBRARYTESTS_SPEC2_26_INCLUDEJSPGENERAL_DEFINEOBJECTS2);
-      /* TODO: implement test */
-      tr2.appendTcDetail("Not implemented.");
-      tr2.writeTo(writer);
-
-      /* TestCase: V2PortletTagLibraryTests_SPEC2_26_IncludeJSPGeneral_defineObjects4 */
-      /* Details: "The defineObjects tag must not define any attribute and    */
-      /* it must not contain any body content"                                */
-      TestResult tr3 = tcd.getTestResultFailed(V2PORTLETTAGLIBRARYTESTS_SPEC2_26_INCLUDEJSPGENERAL_DEFINEOBJECTS4);
-      /* TODO: implement test */
-      tr3.appendTcDetail("Not implemented.");
-      tr3.writeTo(writer);
+      
+      // For TestCase: V2PortletTagLibraryTests_SPEC2_26_IncludeJSPGeneral_defineObjects2
+      // portlet:resourceURL tag is only defined for V2
+      %>
+      <portlet:resourceURL var="V2_URL" escapeXml="true">
+      <portlet:param name="onlyForV2" value="V2_Variable" />
+      </portlet:resourceURL>
+      <P style="display:none;"><%=V2_URL%></P>
+      <%
 
       /* TestCase: V2PortletTagLibraryTests_SPEC2_26_IncludeJSPGeneral_namespace */
       /* Details: "The namespace tag produces a unique string value for the   */
       /* current portlet equal to the value returned by the                   */
       /* PortletResponse.getNamespace method"                                 */
       TestResult tr4 = tcd.getTestResultFailed(V2PORTLETTAGLIBRARYTESTS_SPEC2_26_INCLUDEJSPGENERAL_NAMESPACE);
-      /* TODO: implement test */
-      tr4.appendTcDetail("Not implemented.");
-      tr4.writeTo(writer);
-
-      /* TestCase: V2PortletTagLibraryTests_SPEC2_26_IncludeJSPGeneral_escapeXML1 */
-      /* Details: "The container runtime option \"javax.portlet.escapeXml\"   */
-      /* can be used to set the default escapeXML setting to true"            */
-      TestResult tr5 = tcd.getTestResultFailed(V2PORTLETTAGLIBRARYTESTS_SPEC2_26_INCLUDEJSPGENERAL_ESCAPEXML1);
-      /* TODO: implement test */
-      tr5.appendTcDetail("Not implemented.");
+      if(renderRequest.getParameter("namespace")!=null){
+        if(portletResp.getNamespace().equals(renderRequest.getParameter("namespace"))){
+          tr4.setTcSuccess(true);
+          tr4.writeTo(writer);
+        }
+      } else {
+      %>
+      <DIV CLASS="portletTCKTestcase" name="V2PortletTagLibraryTests_SPEC2_26_IncludeJSPGeneral_namespace">
+        <h4>V2PortletTagLibraryTests_SPEC2_26_IncludeJSPGeneral_namespace button (POST):</h4>
+        <FORM METHOD="POST" ACTION="<portlet:actionURL/>">
+          <INPUT NAME='namespace' VALUE='<portlet:namespace/>' TYPE="hidden">
+          <INPUT VALUE="V2PortletTagLibraryTests_SPEC2_26_IncludeJSPGeneral_namespace" ID="V2PortletTagLibraryTests_SPEC2_26_IncludeJSPGeneral_namespace-clickme" TYPE="submit">
+        </FORM>
+      </DIV>
+      <% }
+      
+      /*
+       * TestCase: V2PortletTagLibraryTests_SPEC2_26_IncludeJSPGeneral_escapeXML1
+       * Details: The container runtime option \"javax.portlet.escapeXml\" 
+       * can be used to set the default escapeXML setting to true
+       */
+      TestResult tr5 =
+          tcd.getTestResultFailed(V2PORTLETTAGLIBRARYTESTS_SPEC2_26_INCLUDEJSPGENERAL_ESCAPEXML1);
+      // TODO: Implement test when escapeXml problem is solved
+      %>
+      <portlet:resourceURL id="icons/he<&>llo" escapeXml="false"/>
+      <portlet:resourceURL id="icons/he<&>llo" escapeXml="true"/>
+      <%
       tr5.writeTo(writer);
 
       /* TestCase: V2PortletTagLibraryTests_SPEC2_26_IncludeJSPGeneral_escapeXML2 */
-      /* Details: "The container runtime option \"javax.portlet.escapeXml\"   */
-      /* can be used to set the default escapeXML setting to false"           */
-      TestResult tr6 = tcd.getTestResultFailed(V2PORTLETTAGLIBRARYTESTS_SPEC2_26_INCLUDEJSPGENERAL_ESCAPEXML2);
-      /* TODO: implement test */
-      tr6.appendTcDetail("Not implemented.");
+      /* Details: "The container runtime option \"javax.portlet.escapeXml\" */
+      /* can be used to set the default escapeXML setting to false" */
+      // TODO: Implement test when escapeXml problem is solved
+      TestResult tr6 =
+          tcd.getTestResultFailed(V2PORTLETTAGLIBRARYTESTS_SPEC2_26_INCLUDEJSPGENERAL_ESCAPEXML2);
+      tr6.appendTcDetail(
+          "Might not be possible to configure javax.portlet.escapeXml to false when the portlet is running.");
       tr6.writeTo(writer);
 
 %>
+<%=writer.toString()%>
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/portals-pluto/blob/717ec1cc/portlet-tck_3.0/V2PortletTagLibraryTests/src/main/webapp/WEB-INF/jsp/PortletTagLibraryTests_SPEC2_26_IncludeJSPGeneralTr0.jsp
----------------------------------------------------------------------
diff --git a/portlet-tck_3.0/V2PortletTagLibraryTests/src/main/webapp/WEB-INF/jsp/PortletTagLibraryTests_SPEC2_26_IncludeJSPGeneralTr0.jsp b/portlet-tck_3.0/V2PortletTagLibraryTests/src/main/webapp/WEB-INF/jsp/PortletTagLibraryTests_SPEC2_26_IncludeJSPGeneralTr0.jsp
new file mode 100644
index 0000000..d0da2a4
--- /dev/null
+++ b/portlet-tck_3.0/V2PortletTagLibraryTests/src/main/webapp/WEB-INF/jsp/PortletTagLibraryTests_SPEC2_26_IncludeJSPGeneralTr0.jsp
@@ -0,0 +1,11 @@
+<%-- 
+  - Author(s): ahmed
+  --%>
+<%@ page session="false" %>
+<%@ taglib uri="http://java.sun.com/portlet"  prefix="portlet" %>
+<%@ taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c" %>
+<portlet:defineObjects/>
+<!-- Expected Portlet Exception because portlet:resourceURL tag is not defined for version 1 -->
+<portlet:resourceURL var="V2_URL" escapeXml="true">
+</portlet:resourceURL>
+<%=V2_URL%>
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/portals-pluto/blob/717ec1cc/portlet-tck_3.0/V2PortletTagLibraryTests/src/main/webapp/WEB-INF/jsp/PortletTagLibraryTests_SPEC2_26_IncludeJSPGeneralTr3.jsp
----------------------------------------------------------------------
diff --git a/portlet-tck_3.0/V2PortletTagLibraryTests/src/main/webapp/WEB-INF/jsp/PortletTagLibraryTests_SPEC2_26_IncludeJSPGeneralTr3.jsp b/portlet-tck_3.0/V2PortletTagLibraryTests/src/main/webapp/WEB-INF/jsp/PortletTagLibraryTests_SPEC2_26_IncludeJSPGeneralTr3.jsp
new file mode 100644
index 0000000..edd5f8e
--- /dev/null
+++ b/portlet-tck_3.0/V2PortletTagLibraryTests/src/main/webapp/WEB-INF/jsp/PortletTagLibraryTests_SPEC2_26_IncludeJSPGeneralTr3.jsp
@@ -0,0 +1,9 @@
+<%-- 
+  - Author(s): ahmed
+  --%>
+<%@ page session="false" %>
+<%@ taglib uri="http://java.sun.com/portlet_2_0"  prefix="portlet" %>
+<%@ taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c" %>
+<portlet:defineObjects attribute="notallowed">
+NotAllowedBody
+</portlet:defineObjects>
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/portals-pluto/blob/717ec1cc/portlet-tck_3.0/V2PortletTagLibraryTests2/src/main/java/javax/portlet/tck/portlets/PortletTagLibraryTests2_SPEC2_26_IncludeJSPRender.java
----------------------------------------------------------------------
diff --git a/portlet-tck_3.0/V2PortletTagLibraryTests2/src/main/java/javax/portlet/tck/portlets/PortletTagLibraryTests2_SPEC2_26_IncludeJSPRender.java b/portlet-tck_3.0/V2PortletTagLibraryTests2/src/main/java/javax/portlet/tck/portlets/PortletTagLibraryTests2_SPEC2_26_IncludeJSPRender.java
index 2acb466..f297b6a 100644
--- a/portlet-tck_3.0/V2PortletTagLibraryTests2/src/main/java/javax/portlet/tck/portlets/PortletTagLibraryTests2_SPEC2_26_IncludeJSPRender.java
+++ b/portlet-tck_3.0/V2PortletTagLibraryTests2/src/main/java/javax/portlet/tck/portlets/PortletTagLibraryTests2_SPEC2_26_IncludeJSPRender.java
@@ -1,19 +1,16 @@
-/*  Licensed to the Apache Software Foundation (ASF) under one
- *  or more contributor license agreements.  See the NOTICE file
- *  distributed with this work for additional information
- *  regarding copyright ownership.  The ASF licenses this file
- *  to you under the Apache License, Version 2.0 (the
- *  "License"); you may not use this file except in compliance
- *  with the License.  You may obtain a copy of the License at
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more contributor license
+ * agreements. See the NOTICE file distributed with this work for additional information regarding
+ * copyright ownership. The ASF licenses this file to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance with the License. You may obtain a
+ * copy of the License at
  *
- *    http://www.apache.org/licenses/LICENSE-2.0
+ * http://www.apache.org/licenses/LICENSE-2.0
  *
- *  Unless required by applicable law or agreed to in writing,
- *  software distributed under the License is distributed on an
- *  "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- *  KIND, either express or implied.  See the License for the
- *  specific language governing permissions and limitations
- *  under the License.
+ * Unless required by applicable law or agreed to in writing, software distributed under the License
+ * is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express
+ * or implied. See the License for the specific language governing permissions and limitations under
+ * the License.
  */
 
 package javax.portlet.tck.portlets;
@@ -35,72 +32,608 @@ import static javax.portlet.PortletSession.*;
 import static javax.portlet.ResourceURL.*;
 
 /**
- * This portlet implements several test cases for the JSR 362 TCK. The test case names
- * are defined in the /src/main/resources/xml-resources/additionalTCs.xml
- * file. The build process will integrate the test case names defined in the 
- * additionalTCs.xml file into the complete list of test case names for execution by the driver.
- *
- * This is the main portlet for the test cases. If the test cases call for events, this portlet
- * will initiate the events, but not process them. The processing is done in the companion 
- * portlet PortletTagLibraryTests2_SPEC2_26_IncludeJSPRender_event
+ * This portlet implements several test cases for the JSR 362 TCK. The test case names are defined
+ * in the /src/main/resources/xml-resources/additionalTCs.xml file. The build process will integrate
+ * the test case names defined in the additionalTCs.xml file into the complete list of test case
+ * names for execution by the driver.
  *
+ * This is the main portlet for the test cases. If the test cases call for events, this portlet will
+ * initiate the events, but not process them. The processing is done in the companion portlet
+ * PortletTagLibraryTests2_SPEC2_26_IncludeJSPRender_event
+ * @author ahmed
  */
-public class PortletTagLibraryTests2_SPEC2_26_IncludeJSPRender implements Portlet, ResourceServingPortlet {
-   private static final String LOG_CLASS = 
-         PortletTagLibraryTests2_SPEC2_26_IncludeJSPRender.class.getName();
-   private final Logger LOGGER = Logger.getLogger(LOG_CLASS);
-   
-   private PortletConfig portletConfig = null;
-
-   @Override
-   public void init(PortletConfig config) throws PortletException {
-      this.portletConfig = config;
-   }
-
-   @Override
-   public void destroy() {
-   }
-
-   @Override
-   public void processAction(ActionRequest portletReq, ActionResponse portletResp)
-         throws PortletException, IOException {
-      LOGGER.entering(LOG_CLASS, "main portlet processAction entry");
+public class PortletTagLibraryTests2_SPEC2_26_IncludeJSPRender extends GenericPortlet {
+  private static final String LOG_CLASS =
+      PortletTagLibraryTests2_SPEC2_26_IncludeJSPRender.class.getName();
+  private final Logger LOGGER = Logger.getLogger(LOG_CLASS);
 
-      portletResp.setRenderParameters(portletReq.getParameterMap());
-      long tid = Thread.currentThread().getId();
-      portletReq.setAttribute(THREADID_ATTR, tid);
+  @Override
+  public void processAction(ActionRequest portletReq, ActionResponse portletResp)
+      throws PortletException, IOException {
+    LOGGER.entering(LOG_CLASS, "main portlet processAction entry");
+
+    String action = portletReq.getParameter("action");
+    if (action.equals("V2PortletTagLibraryTests2_SPEC2_26_IncludeJSPRender_actionURL1")) {
+
+      /*
+       * TestCase: V2PortletTagLibraryTests2_SPEC2_26_IncludeJSPRender_actionURL1 Details: "The
+       * portlet actionURL tag creates a URL that must point to the current portlet and must trigger
+       * an action request with the supplied parameters"
+       */
+      portletResp.setRenderParameter("tr13", "true");
+    } else if (action.equals("V2PortletTagLibraryTests2_SPEC2_26_IncludeJSPRender_actionURL2")
+        && portletReq.getParameter("tr14_value") != null
+        && "true".equals(portletReq.getParameter("tr14_value"))) {
 
-      StringWriter writer = new StringWriter();
+      /*
+       * TestCase: V2PortletTagLibraryTests2_SPEC2_26_IncludeJSPRender_actionURL2 Details:
+       * "Parameters may be added to the URL by including the param tag between the actionURL start
+       * and end tags"
+       */
+      portletResp.setRenderParameter("tr14", "true");
+    } else if (action.equals("V2PortletTagLibraryTests2_SPEC2_26_IncludeJSPRender_actionURL3")
+        && portletReq.getWindowState().equals(WindowState.MINIMIZED)) {
 
-   }
+      /*
+       * TestCase: V2PortletTagLibraryTests2_SPEC2_26_IncludeJSPRender_actionURL3 Details:
+       * "The optional actionURL \"windowState\" attribute can specify the desired window state
+       * after the URL is triggered"
+       */
+      portletResp.setRenderParameter("tr15", "true");
+    } else if (action.equals("V2PortletTagLibraryTests2_SPEC2_26_IncludeJSPRender_actionURL5")
+        && portletReq.getWindowState().equals(WindowState.MINIMIZED)) {
 
-   @Override
-   public void serveResource(ResourceRequest portletReq, ResourceResponse portletResp)
-         throws PortletException, IOException {
-      LOGGER.entering(LOG_CLASS, "main portlet serveResource entry");
+      /*
+       * TestCase: V2PortletTagLibraryTests2_SPEC2_26_IncludeJSPRender_actionURL5 Details:
+       * "The \"windowState\" attribute is not case sensitive"
+       */
+      portletResp.setRenderParameter("tr17", "true");
+    } else if (action.equals("V2PortletTagLibraryTests2_SPEC2_26_IncludeJSPRender_actionURL6")
+        && (portletReq.getWindowState().toString())
+            .equals(portletReq.getParameter("windowStateTr18"))) {
 
-      long tid = Thread.currentThread().getId();
-      portletReq.setAttribute(THREADID_ATTR, tid);
+      /*
+       * TestCase: V2PortletTagLibraryTests2_SPEC2_26_IncludeJSPRender_actionURL6 Details:
+       * "The \"windowState\" attribute is not specified, the current window state is retained when
+       * the URL is triggered"
+       */
+      portletResp.setRenderParameter("tr18", "true");
+    } else if (action.equals("V2PortletTagLibraryTests2_SPEC2_26_IncludeJSPRender_actionURL7")
+        && (portletReq.getPortletMode()).equals(PortletMode.VIEW)) {
 
-      PrintWriter writer = portletResp.getWriter();
+      /*
+       * TestCase: V2PortletTagLibraryTests2_SPEC2_26_IncludeJSPRender_actionURL7 Details:
+       * "The optional actionURL \"portletMode\" attribute can specify the desired portlet mode
+       * after the URL is triggered"
+       */
+      portletResp.setRenderParameter("tr19", "true");
+    } else if (action.equals("V2PortletTagLibraryTests2_SPEC2_26_IncludeJSPRender_actionURL9")
+        && (portletReq.getPortletMode()).equals(PortletMode.VIEW)) {
 
-   }
+      /*
+       * TestCase: V2PortletTagLibraryTests2_SPEC2_26_IncludeJSPRender_actionURL9 Details:
+       * "The \"portletMode\" attribute is not case sensitive"
+       */
+      portletResp.setRenderParameter("tr21", "true");
+    } else if (action.equals("V2PortletTagLibraryTests2_SPEC2_26_IncludeJSPRender_actionURL10")
+        && (portletReq.getPortletMode().toString())
+            .equals(portletReq.getParameter("portletModeTr22"))) {
 
-   @Override
-   public void render(RenderRequest portletReq, RenderResponse portletResp)
-         throws PortletException, IOException {
-      LOGGER.entering(LOG_CLASS, "main portlet render entry");
+      /*
+       * TestCase: V2PortletTagLibraryTests2_SPEC2_26_IncludeJSPRender_actionURL10 Details:
+       * "The \"portletMode\" attribute is not specified, the current portlet mode is retained when
+       * the URL is triggered"
+       */
+      portletResp.setRenderParameter("tr22", "true");
+    } else if (action.equals("V2PortletTagLibraryTests2_SPEC2_26_IncludeJSPRender_actionURL11")) {
 
-      long tid = Thread.currentThread().getId();
-      portletReq.setAttribute(THREADID_ATTR, tid);
+      /*
+       * TestCase: V2PortletTagLibraryTests2_SPEC2_26_IncludeJSPRender_actionURL11 Details:
+       * "The optional actionURL \"var\" attribute can specify a scoped variable for exporting the
+       * action URL"
+       */
+      portletResp.setRenderParameter("tr23", "true");
+    } else if (action.equals("V2PortletTagLibraryTests2_SPEC2_26_IncludeJSPRender_actionURL12")
+        && portletReq.getParameter("actionURLTr24") != null
+        && "".equals(portletReq.getParameter("actionURLTr24"))) {
 
-      PrintWriter writer = portletResp.getWriter();
+      /*
+       * TestCase: V2PortletTagLibraryTests2_SPEC2_26_IncludeJSPRender_actionURL12 Details:
+       * "If the actionURL \"var\" attribute is specified, the URL is not written to the JspWriter"
+       */
+      portletResp.setRenderParameter("tr24", "true");
+    } else if (action.equals("V2PortletTagLibraryTests2_SPEC2_26_IncludeJSPRender_actionURL13")
+        && portletReq.getParameter("actionURLTr25") != null
+        && !"".equals(portletReq.getParameter("actionURLTr25"))) {
 
-      // Now do the actual dispatch
-      String target = JSP_PREFIX + "PortletTagLibraryTests2_SPEC2_26_IncludeJSPRender" + JSP_SUFFIX + "?" + QUERY_STRING;
-      PortletRequestDispatcher rd = portletConfig.getPortletContext()
-            .getRequestDispatcher(target);
+      /*
+       * TestCase: V2PortletTagLibraryTests2_SPEC2_26_IncludeJSPRender_actionURL13 Details:
+       * "If the actionURL \"var\" attribute is not specified, the URL is written to the JspWriter"
+       */
+      portletResp.setRenderParameter("tr25", "true");
+    } else if (action.equals("V2PortletTagLibraryTests2_SPEC2_26_IncludeJSPRender_actionURL14")
+        && portletReq.isSecure()) {
+
+      /*
+       * TestCase: V2PortletTagLibraryTests2_SPEC2_26_IncludeJSPRender_actionURL14 Details:
+       * "If the optional actionURL \"secure\" attribute is set to true, the resulting URL should
+       * require a secure connection"
+       */
+      portletResp.setRenderParameter("tr26", "true");
+    } else if (action.equals("V2PortletTagLibraryTests2_SPEC2_26_IncludeJSPRender_actionURL15")
+        && !portletReq.isSecure()) {
+
+      /*
+       * TestCase: V2PortletTagLibraryTests2_SPEC2_26_IncludeJSPRender_actionURL15 Details:
+       * "If the optional actionURL \"secure\" attribute is set to false, the resulting URL does not
+       * need to require a secure connection"
+       */
+      portletResp.setRenderParameter("tr27", "true");
+    } else if (action.equals("V2PortletTagLibraryTests2_SPEC2_26_IncludeJSPRender_actionURL18")
+        && portletReq.getParameter("renderParamTr29")!=null
+        && "true".equals(portletReq.getParameter("renderParamTr29"))) {
+      /*
+       * TestCase: V2PortletTagLibraryTests2_SPEC2_26_IncludeJSPRender_actionURL18 Details: "If the
+       * optional actionURL \"copyCurrentRenderParameters\" attribute is set to true, the current
+       * private render parameters are attached to the URL"
+       */
+      portletResp.setRenderParameter("tr29", "true");
+    } else if (action.equals("V2PortletTagLibraryTests2_SPEC2_26_IncludeJSPRender_actionURL19")
+        && portletReq.getParameter("renderParamTr30")!=null
+        && "true".equals(portletReq.getParameter("renderParamTr30"))
+        && portletReq.getParameter("actionURLTr30")!=null
+        && "true".equals(portletReq.getParameter("actionURLTr30"))) {
+      /* TestCase: V2PortletTagLibraryTests2_SPEC2_26_IncludeJSPRender_actionURL19 */
+      /* Details: "If the optional actionURL                                  */
+      /* \"copyCurrentRenderParameters\" attribute is set to true,            */
+      /* additional parameters specified with the &lt;portlet:param&gt;       */
+      /* element are merged with the render parameters"                       */
+      portletResp.setRenderParameter("tr30", "true");
+    } else if (action.equals("V2PortletTagLibraryTests2_SPEC2_26_IncludeJSPRender_actionURL20")
+        && portletReq.getParameterValues("renderParamTr31")!=null
+        && portletReq.getParameterValues("renderParamTr31").length==2
+        && "false".equals(portletReq.getParameterValues("renderParamTr31")[0])
+        && "true".equals(portletReq.getParameterValues("renderParamTr31")[1])) {
+      /* TestCase: V2PortletTagLibraryTests2_SPEC2_26_IncludeJSPRender_actionURL20 */
+      /* Details: "If the optional actionURL                                  */
+      /* \"copyCurrentRenderParameters\" attribute is set to true,            */
+      /* additional parameters specified with the &lt;portlet:param&gt;       */
+      /* element appear in the values array before the render parameter       */
+      /* values if there is a name conflict"                                  */
+      portletResp.setRenderParameter("tr31", "true");
+    } else if (action.equals("V2PortletTagLibraryTests2_SPEC2_26_IncludeJSPRender_actionURL21")
+        && portletReq.getParameterValues("renderParamTr32")==null) {
+      /* TestCase: V2PortletTagLibraryTests2_SPEC2_26_IncludeJSPRender_actionURL21 */
+      /* Details: "If the optional actionURL                                  */
+      /* \"copyCurrentRenderParameters\" attribute is set to false, the       */
+      /* current render parameters are not attached to the URL"               */
+      portletResp.setRenderParameter("tr32", "true");
+    } else if (action.equals("V2PortletTagLibraryTests2_SPEC2_26_IncludeJSPRender_actionURL25")
+        && portletReq.getParameter("specialCharsTr35") != null
+        && (portletReq.getParameter("specialCharsTr35")).equals("<>&'\"")) {
+
+      /*
+       * TestCase: V2PortletTagLibraryTests2_SPEC2_26_IncludeJSPRender_actionURL25 Details:
+       * "If the optional actionURL \"escapeXML\" attribute is set to false, the characters \
+       * "&lt;&gt;&'\\\"\" are not converted to their entity codes"
+       */
+      portletResp.setRenderParameter("tr35", "true");
+    } else if (action.equals("V2PortletTagLibraryTests2_SPEC2_26_IncludeJSPRender_actionURL26")
+        && portletReq.getParameter("specialCharsTr36") != null) {
+      if ((portletReq.getParameter("specialCharsTr36")).equals("&lt;&gt;&amp;&#39;&#34;")) {
+        /*
+         * TestCase: V2PortletTagLibraryTests2_SPEC2_26_IncludeJSPRender_actionURL26 Details:
+         * "The \"escapeXML\" attribute default value is true"
+         */
+        portletResp.setRenderParameter("tr36", "true");
+      }
+    } else if (action.equals("V2PortletTagLibraryTests2_SPEC2_26_IncludeJSPRender_actionURL27")) {
+      /* TestCase: V2PortletTagLibraryTests2_SPEC2_26_IncludeJSPRender_actionURL27 */
+      /* Details: "If the optional actionURL \"name\" attribute is set, the */
+      /* provided name string is used by GenericPortlet to dispatch the */
+      /* request to the coresponding annotated method" */
+      try {
+        super.processAction(portletReq, portletResp);
+      } catch (Exception e) {
+        portletResp.setRenderParameter("tr37_error", e.getMessage());
+      }
+    } else if (action.equals("V2PortletTagLibraryTests2_SPEC2_26_IncludeJSPRender_actionURL28")
+        && portletReq.getParameter("javax.portlet.action") != null
+        && "actionNameTr28".equals(portletReq.getParameter("javax.portlet.action"))) {
+      /* TestCase: V2PortletTagLibraryTests2_SPEC2_26_IncludeJSPRender_actionURL28 */
+      /* Details: "Setting the \"name\" attribute will add a parameter to */
+      /* the action URL with the name of \"javax.portlet.action\"" */
+      portletResp.setRenderParameter("tr38", "true");
+    } else if (action.equals("V2PortletTagLibraryTests2_SPEC2_26_IncludeJSPRender_renderURL12")
+        && portletReq.getParameter("renderURLTr52") != null
+        && "".equals(portletReq.getParameter("renderURLTr52"))) {
+      /*
+       * TestCase: V2PortletTagLibraryTests2_SPEC2_26_IncludeJSPRender_renderURL12 Details:
+       * "If the renderURL \"var\" attribute is specified, the URL is not written to the JspWriter"
+       */
+      portletResp.setRenderParameter("tr52", "true");
+    } else if (action.equals("V2PortletTagLibraryTests2_SPEC2_26_IncludeJSPRender_renderURL13")
+        && portletReq.getParameter("renderURLTr53") != null
+        && !"".equals(portletReq.getParameter("renderURLTr53"))) {
+      /*
+       * TestCase: V2PortletTagLibraryTests2_SPEC2_26_IncludeJSPRender_renderURL13 Details:
+       * "If the renderURL \"var\" attribute is not specified, the URL is written to the JspWriter"
+       */
+      portletResp.setRenderParameter("tr53", "true");
+    } else if (action.equals("V2PortletTagLibraryTests2_SPEC2_26_IncludeJSPRender_resourceURL6")
+        && portletReq.getParameter("resourceURLTr70") != null
+        && "".equals(portletReq.getParameter("resourceURLTr70"))) {
+      /* TestCase: V2PortletTagLibraryTests2_SPEC2_26_IncludeJSPRender_resourceURL6 */
+      /* Details: "If the resourceURL \"var\" attribute is specified, the */
+      /* URL is not written to the JspWriter" */
+      portletResp.setRenderParameter("tr70", "true");
+    } else if (action.equals("V2PortletTagLibraryTests2_SPEC2_26_IncludeJSPRender_resourceURL7")
+        && portletReq.getParameter("resourceURLTr71") != null
+        && !"".equals(portletReq.getParameter("resourceURLTr71"))) {
+      /* TestCase: V2PortletTagLibraryTests2_SPEC2_26_IncludeJSPRender_resourceURL7 */
+      /* Details: "If the resourceURL \"var\" attribute is not specified, */
+      /* the URL is written to the JspWriter" */
+      portletResp.setRenderParameter("tr71", "true");
+    } else if (action.equals("V2PortletTagLibraryTests2_SPEC2_26_IncludeJSPRender_paramAction1")
+        && portletReq.getParameter("tr90_value") != null
+        && "true".equals(portletReq.getParameter("tr90_value"))) {
+      /* TestCase: V2PortletTagLibraryTests2_SPEC2_26_IncludeJSPRender_paramAction1 */
+      /* Details: "The param tag can be used within the actionURL tag to */
+      /* add a parameter" */
+      portletResp.setRenderParameter("tr90", "true");
+    } else if (action.equals("V2PortletTagLibraryTests2_SPEC2_26_IncludeJSPRender_paramAction2")
+        && portletReq.getParameter("tr91_value") != null) {
+      /* TestCase: V2PortletTagLibraryTests2_SPEC2_26_IncludeJSPRender_paramAction2 */
+      /* Details: "The param tag required attribute \"name\" defines the */
+      /* parameter name" */
+      portletResp.setRenderParameter("tr91", "true");
+    } else if (action.equals("V2PortletTagLibraryTests2_SPEC2_26_IncludeJSPRender_paramAction3")
+        && (portletReq.getParameterValues("tr92_value")).length == 2) {
+      /* TestCase: V2PortletTagLibraryTests2_SPEC2_26_IncludeJSPRender_paramAction3 */
+      /* Details: "If more than one tags appear in the actionURL tag, the */
+      /* values must be stored as a multivalued array in order of */
+      /* appearance within the actionURL tag" */
+      portletResp.setRenderParameter("tr92", "true");
+    } else if (action.equals("V2PortletTagLibraryTests2_SPEC2_26_IncludeJSPRender_paramAction5")
+        && portletReq.getParameter("tr94_value") != null
+        && "true".equals(portletReq.getParameter("tr94_value"))) {
+      /* TestCase: V2PortletTagLibraryTests2_SPEC2_26_IncludeJSPRender_paramAction5 */
+      /* Details: "The param tag required attribute \"value\" defines the */
+      /* parameter value" */
+      portletResp.setRenderParameter("tr94", "true");
+    } else if (action.equals("V2PortletTagLibraryTests2_SPEC2_26_IncludeJSPRender_paramAction6")
+        && portletReq.getParameter("tr95_value") == null) {
+      /* TestCase: V2PortletTagLibraryTests2_SPEC2_26_IncludeJSPRender_paramAction6 */
+      /* Details: "If the \"value\" attribute is null or empty, the */
+      /* parameter is removed" */
+      portletResp.setRenderParameter("tr95", "true");
+    } else {
+      portletResp.setRenderParameters(portletReq.getParameterMap());
+    }
+    long tid = Thread.currentThread().getId();
+    portletReq.setAttribute(THREADID_ATTR, tid);
+    StringWriter writer = new StringWriter();
+  }
+
+  /* TestCase: V2PortletTagLibraryTests2_SPEC2_26_IncludeJSPRender_actionURL27 */
+  /* Details: "If the optional actionURL \"name\" attribute is set, the */
+  /* provided name string is used by GenericPortlet to dispatch the */
+  /* request to the coresponding annotated method" */
+  @ProcessAction(name = "actionNameTr27")
+  public void actionUrlViaName(ActionRequest portletReq, ActionResponse portletResp)
+      throws PortletException, IOException {
+    LOGGER.entering(LOG_CLASS, "main portlet actionUrlViaName entry");
+    portletResp.setRenderParameter("tr37", "true");
+    long tid = Thread.currentThread().getId();
+    portletReq.setAttribute(THREADID_ATTR, tid);
+    StringWriter writer = new StringWriter();
+  }
+
+  @Override
+  public void serveResource(ResourceRequest portletReq, ResourceResponse portletResp)
+      throws PortletException, IOException {
+    LOGGER.entering(LOG_CLASS, "main portlet serveResource entry");
+    JSR286SpecTestCaseDetails tcd = new JSR286SpecTestCaseDetails();
+    long tid = Thread.currentThread().getId();
+    portletReq.setAttribute(THREADID_ATTR, tid);
+    PrintWriter writer = portletResp.getWriter();
+    if (portletReq.getParameter("action") != null) {
+      String action = portletReq.getParameter("action");
+      if (action.equals("V2PortletTagLibraryTests2_SPEC2_26_IncludeJSPRender_resourceURL1")) {
+        /* TestCase: V2PortletTagLibraryTests2_SPEC2_26_IncludeJSPRender_resourceURL1 */
+        /* Details: "The portlet resourceURL tag creates a URL that must */
+        /* point to the current portlet and must trigger an resource request */
+        /* with the supplied parameters" */
+        TestResult tr65 = tcd
+            .getTestResultFailed(V2PORTLETTAGLIBRARYTESTS2_SPEC2_26_INCLUDEJSPRENDER_RESOURCEURL1);
+        tr65.setTcSuccess(true);
+        tr65.writeTo(writer);
+      } else if (action
+          .equals("V2PortletTagLibraryTests2_SPEC2_26_IncludeJSPRender_resourceURL2")) {
+        /* TestCase: V2PortletTagLibraryTests2_SPEC2_26_IncludeJSPRender_resourceURL2 */
+        /* Details: "The resourceURL must preserve the current portlet mode, */
+        /* window state and render parameters" */
+        TestResult tr66 = tcd
+            .getTestResultFailed(V2PORTLETTAGLIBRARYTESTS2_SPEC2_26_INCLUDEJSPRENDER_RESOURCEURL2);
+        if (portletReq.getParameter("portletModeTr66") != null
+            && portletReq.getParameter("windowStateTr66") != null
+            && (portletReq.getPortletMode().toString())
+                .equals(portletReq.getParameter("portletModeTr66"))
+            && (portletReq.getWindowState().toString())
+                .equals(portletReq.getParameter("windowStateTr66"))) {
+          tr66.setTcSuccess(true);
+        }
+        tr66.writeTo(writer);
+      } else if (action
+          .equals("V2PortletTagLibraryTests2_SPEC2_26_IncludeJSPRender_resourceURL3")) {
+        /* TestCase: V2PortletTagLibraryTests2_SPEC2_26_IncludeJSPRender_resourceURL3 */
+        /* Details: "Resource parameters may be added to the URL by including */
+        /* the param tag between the resourceURL start and end tags" */
+        // Didn't send any new parameter because action parameter is itself generated by param tag
+        TestResult tr67 = tcd
+            .getTestResultFailed(V2PORTLETTAGLIBRARYTESTS2_SPEC2_26_INCLUDEJSPRENDER_RESOURCEURL3);
+        tr67.setTcSuccess(true);
+        tr67.writeTo(writer);
+      } else if (action
+          .equals("V2PortletTagLibraryTests2_SPEC2_26_IncludeJSPRender_resourceURL4")
+          && portletReq.getParameterValues("renderParamTr68")!=null
+          && portletReq.getParameterValues("renderParamTr68").length==2
+          && "false".equals(portletReq.getParameterValues("renderParamTr68")[0])
+          && "true".equals(portletReq.getParameterValues("renderParamTr68")[1])) {
+        /* TestCase: V2PortletTagLibraryTests2_SPEC2_26_IncludeJSPRender_resourceURL4 */
+        /* Details: "The resource parameters specified with the                 */
+        /* &lt;portlet:param&gt; element appear in the values array before      */
+        /* the render parameter values if there is a name conflict"             */
+        TestResult tr68 = tcd
+            .getTestResultFailed(V2PORTLETTAGLIBRARYTESTS2_SPEC2_26_INCLUDEJSPRENDER_RESOURCEURL4);
+        tr68.setTcSuccess(true);
+        tr68.writeTo(writer);
+      } else if (action
+          .equals("V2PortletTagLibraryTests2_SPEC2_26_IncludeJSPRender_resourceURL5")) {
+        /* TestCase: V2PortletTagLibraryTests2_SPEC2_26_IncludeJSPRender_resourceURL5 */
+        /* Details: "The optional resourceURL \"var\" attribute can specify a */
+        /* scoped variable for exporting the action URL" */
+        TestResult tr69 = tcd
+            .getTestResultFailed(V2PORTLETTAGLIBRARYTESTS2_SPEC2_26_INCLUDEJSPRENDER_RESOURCEURL5);
+        tr69.setTcSuccess(true);
+        tr69.writeTo(writer);
+      } else if (action.equals("V2PortletTagLibraryTests2_SPEC2_26_IncludeJSPRender_resourceURL22")
+          && portletReq.getResourceID() != null
+          && "resourceURLTr84".equals(portletReq.getResourceID())) {
+        /* TestCase: V2PortletTagLibraryTests2_SPEC2_26_IncludeJSPRender_resourceURL22 */
+        /* Details: "Setting the \"id\" attribute will add an ID to the resourceURL which can
+        /*  be retrieved by \"getResourceID()\" method of ResourceRequest" */
+        TestResult tr84 = tcd
+            .getTestResultFailed(V2PORTLETTAGLIBRARYTESTS2_SPEC2_26_INCLUDEJSPRENDER_RESOURCEURL22);
+        tr84.setTcSuccess(true);
+        tr84.writeTo(writer);
+      } else if (action.equals("V2PortletTagLibraryTests2_SPEC2_26_IncludeJSPRender_resourceURL23")
+          && (portletReq.getCacheability()).equals(ResourceURL.PORTLET)) {
+        /* TestCase: V2PortletTagLibraryTests2_SPEC2_26_IncludeJSPRender_resourceURL23 */
+        /* Details: "If the optional resourceURL \"cacheability\" attribute */
+        /* is set, the cacheability is set accordingly" */
+        TestResult tr85 = tcd
+            .getTestResultFailed(V2PORTLETTAGLIBRARYTESTS2_SPEC2_26_INCLUDEJSPRENDER_RESOURCEURL23);
+        tr85.setTcSuccess(true);
+        tr85.writeTo(writer);
+      } else if (action.equals("V2PortletTagLibraryTests2_SPEC2_26_IncludeJSPRender_paramResource1")
+          && portletReq.getParameter("tr102_value") != null
+          && "true".equals(portletReq.getParameter("tr102_value"))) {
+        /* TestCase: V2PortletTagLibraryTests2_SPEC2_26_IncludeJSPRender_paramResource1 */
+        /* Details: "The param tag can be used within the resourceURL tag to */
+        /* add a parameter" */
+        TestResult tr102 = tcd.getTestResultFailed(
+            V2PORTLETTAGLIBRARYTESTS2_SPEC2_26_INCLUDEJSPRENDER_PARAMRESOURCE1);
+        tr102.setTcSuccess(true);
+        tr102.writeTo(writer);
+      } else if (action.equals("V2PortletTagLibraryTests2_SPEC2_26_IncludeJSPRender_paramResource2")
+          && portletReq.getParameter("tr103_value") != null) {
+        /* TestCase: V2PortletTagLibraryTests2_SPEC2_26_IncludeJSPRender_paramResource2 */
+        /* Details: "The param tag required attribute \"name\" defines the */
+        /* parameter name" */
+        TestResult tr103 = tcd.getTestResultFailed(
+            V2PORTLETTAGLIBRARYTESTS2_SPEC2_26_INCLUDEJSPRENDER_PARAMRESOURCE2);
+        tr103.setTcSuccess(true);
+        tr103.writeTo(writer);
+        portletReq.setAttribute("tr103", "true");
+      } else if (action.equals("V2PortletTagLibraryTests2_SPEC2_26_IncludeJSPRender_paramResource3")
+          && (portletReq.getParameterValues("tr104_value")).length == 2) {
+        /* TestCase: V2PortletTagLibraryTests2_SPEC2_26_IncludeJSPRender_paramResource3 */
+        /* Details: "If more than one tags appear in the resourceURL tag, the */
+        /* values must be stored as a multivalued array in order of */
+        /* appearance within the resourceURL tag" */
+        TestResult tr104 = tcd.getTestResultFailed(
+            V2PORTLETTAGLIBRARYTESTS2_SPEC2_26_INCLUDEJSPRENDER_PARAMRESOURCE3);
+        tr104.setTcSuccess(true);
+        tr104.writeTo(writer);
+      } else if (action.equals("V2PortletTagLibraryTests2_SPEC2_26_IncludeJSPRender_paramResource5")
+          && portletReq.getParameter("tr106_value") != null
+          && "true".equals(portletReq.getParameter("tr106_value"))) {
+        /* TestCase: V2PortletTagLibraryTests2_SPEC2_26_IncludeJSPRender_paramResource5 */
+        /* Details: "The param tag required attribute \"value\" defines the */
+        /* parameter value" */
+        TestResult tr106 = tcd.getTestResultFailed(
+            V2PORTLETTAGLIBRARYTESTS2_SPEC2_26_INCLUDEJSPRENDER_PARAMRESOURCE5);
+        tr106.setTcSuccess(true);
+        tr106.writeTo(writer);
+      } else if (action.equals("V2PortletTagLibraryTests2_SPEC2_26_IncludeJSPRender_paramResource6")
+          && portletReq.getParameter("tr107_value") == null) {
+        /* TestCase: V2PortletTagLibraryTests2_SPEC2_26_IncludeJSPRender_paramResource6 */
+        /* Details: "If the \"value\" attribute is null or empty, no action */
+        /* is performed" */
+        TestResult tr107 = tcd.getTestResultFailed(
+            V2PORTLETTAGLIBRARYTESTS2_SPEC2_26_INCLUDEJSPRENDER_PARAMRESOURCE6);
+        tr107.setTcSuccess(true);
+        tr107.writeTo(writer);
+      }
+    }
+  }
+
+  @Override
+  public void render(RenderRequest portletReq, RenderResponse portletResp)
+      throws PortletException, IOException {
+    LOGGER.entering(LOG_CLASS, "main portlet render entry");
+    if (portletReq.getParameter("action") != null) {
+      String action = portletReq.getParameter("action");
+      if (action.equals("V2PortletTagLibraryTests2_SPEC2_26_IncludeJSPRender_renderURL1")) {
+        /* TestCase: V2PortletTagLibraryTests2_SPEC2_26_IncludeJSPRender_renderURL1 */
+        /* Details: "The portlet renderURL tag creates a URL that must point */
+        /* to the current portlet and must trigger an render request with the */
+        /* supplied parameters" */
+        portletReq.setAttribute("tr41", "true");
+      } else if (action.equals("V2PortletTagLibraryTests2_SPEC2_26_IncludeJSPRender_renderURL2")) {
+        /* TestCase: V2PortletTagLibraryTests2_SPEC2_26_IncludeJSPRender_renderURL2 */
+        /* Details: "Parameters may be added to the URL by including the */
+        /* param tag between the renderURL start and end tags" */
+        portletReq.setAttribute("tr42", "true");
+      } else if (action.equals("V2PortletTagLibraryTests2_SPEC2_26_IncludeJSPRender_renderURL3")
+          && portletReq.getWindowState().equals(WindowState.MINIMIZED)) {
+        /* TestCase: V2PortletTagLibraryTests2_SPEC2_26_IncludeJSPRender_renderURL3 */
+        /* Details: "The optional renderURL \"windowState\" attribute can */
+        /* specify the desired window state after the URL is triggered" */
+        portletReq.setAttribute("tr43", "true");
+      } else if (action.equals("V2PortletTagLibraryTests2_SPEC2_26_IncludeJSPRender_renderURL5")
+          && portletReq.getWindowState().equals(WindowState.MINIMIZED)) {
+        /* TestCase: V2PortletTagLibraryTests2_SPEC2_26_IncludeJSPRender_renderURL5 */
+        /* Details: "The \"windowState\" attribute is not case sensitive" */
+        portletReq.setAttribute("tr45", "true");
+      } else if (action.equals("V2PortletTagLibraryTests2_SPEC2_26_IncludeJSPRender_renderURL6")
+          && (portletReq.getWindowState().toString())
+              .equals(portletReq.getParameter("windowStateTr46"))) {
+        /* TestCase: V2PortletTagLibraryTests2_SPEC2_26_IncludeJSPRender_renderURL6 */
+        /* Details: "The \"windowState\" attribute is not specified, the */
+        /* current window state is retained when the URL is triggered" */
+        portletReq.setAttribute("tr46", "true");
+      } else if (action.equals("V2PortletTagLibraryTests2_SPEC2_26_IncludeJSPRender_renderURL7")
+          && (portletReq.getPortletMode()).equals(PortletMode.VIEW)) {
+        /* TestCase: V2PortletTagLibraryTests2_SPEC2_26_IncludeJSPRender_renderURL7 */
+        /* Details: "The optional renderURL \"portletMode\" attribute can */
+        /* specify the desired portlet mode after the URL is triggered" */
+        portletReq.setAttribute("tr47", "true");
+      } else if (action.equals("V2PortletTagLibraryTests2_SPEC2_26_IncludeJSPRender_renderURL9")
+          && (portletReq.getPortletMode()).equals(PortletMode.VIEW)) {
+        /* TestCase: V2PortletTagLibraryTests2_SPEC2_26_IncludeJSPRender_renderURL9 */
+        /* Details: "The \"portletMode\" attribute is not case sensitive" */
+        portletReq.setAttribute("tr49", "true");
+      } else if (action.equals("V2PortletTagLibraryTests2_SPEC2_26_IncludeJSPRender_renderURL10")
+          && (portletReq.getPortletMode().toString())
+              .equals(portletReq.getParameter("portletModeTr50"))) {
+        /* TestCase: V2PortletTagLibraryTests2_SPEC2_26_IncludeJSPRender_renderURL10 */
+        /* Details: "The \"portletMode\" attribute is not specified, the */
+        /* current portlet mode is retained when the URL is triggered" */
+        portletReq.setAttribute("tr50", "true");
+      } else if (action.equals("V2PortletTagLibraryTests2_SPEC2_26_IncludeJSPRender_renderURL11")) {
+        /* TestCase: V2PortletTagLibraryTests2_SPEC2_26_IncludeJSPRender_renderURL11 */
+        /* Details: "The optional renderURL \"var\" attribute can specify a */
+        /* scoped variable for exporting the action URL" */
+        portletReq.setAttribute("tr51", "true");
+      } else if (action.equals("V2PortletTagLibraryTests2_SPEC2_26_IncludeJSPRender_renderURL18")
+          && portletReq.getParameter("renderParamTr57")!=null
+          && "true".equals(portletReq.getParameter("renderParamTr57"))) {
+        /* TestCase: V2PortletTagLibraryTests2_SPEC2_26_IncludeJSPRender_renderURL18 */
+        /* Details: "If the optional renderURL                                  */
+        /* \"copyCurrentRenderParameters\" attribute is set to true, the        */
+        /* current private render parameters are attached to the URL"           */
+        portletReq.setAttribute("tr57", "true");
+      } else if (action.equals("V2PortletTagLibraryTests2_SPEC2_26_IncludeJSPRender_renderURL19")
+          && portletReq.getParameter("renderParamTr58")!=null
+          && "true".equals(portletReq.getParameter("renderParamTr58"))
+          && portletReq.getParameter("renderURLTr58")!=null
+          && "true".equals(portletReq.getParameter("renderURLTr58"))) {
+        /* TestCase: V2PortletTagLibraryTests2_SPEC2_26_IncludeJSPRender_renderURL19 */
+        /* Details: "If the optional renderURL                                  */
+        /* \"copyCurrentRenderParameters\" attribute is set to true,            */
+        /* additional parameters specified with the &lt;portlet:param&gt;       */
+        /* element are merged with the render parameters"                       */
+        portletReq.setAttribute("tr58", "true");
+      } else if (action.equals("V2PortletTagLibraryTests2_SPEC2_26_IncludeJSPRender_renderURL20")
+          && portletReq.getParameterValues("renderParamTr59")!=null
+          && portletReq.getParameterValues("renderParamTr59").length==2
+          && "false".equals(portletReq.getParameterValues("renderParamTr59")[0])
+          && "true".equals(portletReq.getParameterValues("renderParamTr59")[1])) {
+        /* TestCase: V2PortletTagLibraryTests2_SPEC2_26_IncludeJSPRender_renderURL20 */
+        /* Details: "If the optional renderURL                                  */
+        /* \"copyCurrentRenderParameters\" attribute is set to true,            */
+        /* additional parameters specified with the &lt;portlet:param&gt;       */
+        /* element appear in the values array before the render parameter       */
+        /* values if there is a name conflict"                                  */
+        portletReq.setAttribute("tr59", "true");
+      } else if (action.equals("V2PortletTagLibraryTests2_SPEC2_26_IncludeJSPRender_renderURL21")
+          && portletReq.getParameterValues("renderParamTr60")==null) {
+        /* TestCase: V2PortletTagLibraryTests2_SPEC2_26_IncludeJSPRender_renderURL21 */
+        /* Details: "If the optional renderURL                                  */
+        /* \"copyCurrentRenderParameters\" attribute is set to false, the       */
+        /* current render parameters are not attached to the URL"               */
+        portletReq.setAttribute("tr60", "true");
+      } else if (action.equals("V2PortletTagLibraryTests2_SPEC2_26_IncludeJSPRender_paramRender1")
+          && portletReq.getParameter("tr96_value") != null
+          && "true".equals(portletReq.getParameter("tr96_value"))) {
+        /* TestCase: V2PortletTagLibraryTests2_SPEC2_26_IncludeJSPRender_paramRender1 */
+        /* Details: "The param tag can be used within the renderURL tag to      */
+        /* add a parameter"                                                     */
+        portletReq.setAttribute("tr96", "true");
+      } else if (action.equals("V2PortletTagLibraryTests2_SPEC2_26_IncludeJSPRender_paramRender2")
+          && portletReq.getParameter("tr97_value") != null) {
+        /* TestCase: V2PortletTagLibraryTests2_SPEC2_26_IncludeJSPRender_paramRender2 */
+        /* Details: "The param tag required attribute \"name\" defines the */
+        /* parameter name" */
+        portletReq.setAttribute("tr97", "true");
+      } else if (action.equals("V2PortletTagLibraryTests2_SPEC2_26_IncludeJSPRender_paramRender3")
+          && (portletReq.getParameterValues("tr98_value")).length == 2) {
+        /* TestCase: V2PortletTagLibraryTests2_SPEC2_26_IncludeJSPRender_paramRender3 */
+        /* Details: "If more than one tags appear in the renderURL tag, the */
+        /* values must be stored as a multivalued array in order of */
+        /* appearance within the renderURL tag" */
+        portletReq.setAttribute("tr98", "true");
+      } else if (action.equals("V2PortletTagLibraryTests2_SPEC2_26_IncludeJSPRender_paramRender5")
+          && portletReq.getParameter("tr100_value") != null
+          && "true".equals(portletReq.getParameter("tr100_value"))) {
+        /* TestCase: V2PortletTagLibraryTests2_SPEC2_26_IncludeJSPRender_paramRender5 */
+        /* Details: "The param tag required attribute \"value\" defines the */
+        /* parameter value" */
+        portletReq.setAttribute("tr100", "true");
+      } else if (action.equals("V2PortletTagLibraryTests2_SPEC2_26_IncludeJSPRender_paramRender6")
+          && portletReq.getParameter("tr101_value") == null) {
+        /* TestCase: V2PortletTagLibraryTests2_SPEC2_26_IncludeJSPRender_paramRender6 */
+        /* Details: "If the \"value\" attribute is null or empty, the */
+        /* parameter is removed" */
+        portletReq.setAttribute("tr101", "true");
+      }
+    }
+    JSR286SpecTestCaseDetails tcd = new JSR286SpecTestCaseDetails();
+
+    long tid = Thread.currentThread().getId();
+    portletReq.setAttribute(THREADID_ATTR, tid);
+
+    PrintWriter writer = portletResp.getWriter();
+
+    /* TestCase: V2PortletTagLibraryTests2_SPEC2_26_IncludeJSPRender_actionURL22 */
+    /* Details: "If the \"copyCurrentRenderParameters\" attribute */
+    /* specifies an invalid value, a JspException is thrown" */
+    // TODO: Might have to delete it. Ask Scott first
+    TestResult tr33 =
+        tcd.getTestResultFailed(V2PORTLETTAGLIBRARYTESTS2_SPEC2_26_INCLUDEJSPRENDER_ACTIONURL22);
+    try {
+      String target = JSP_PREFIX + "PortletTagLibraryTests2_SPEC2_26_IncludeJSPRenderActionTr33"
+          + JSP_SUFFIX + "?" + QUERY_STRING;
+      PortletRequestDispatcher rd = getPortletContext().getRequestDispatcher(target);
       rd.include(portletReq, portletResp);
-   }
+    } catch (Exception e) {
+      tr33.setTcSuccess(true);
+      tr33.appendTcDetail(e.getMessage());
+    }
+    tr33.appendTcDetail(
+        "Test case is failing as no exception is thrown on invalid value of copyCurrentRenderParameters."
+            + " See for more details - \n1. PortletTagLibraryTests2_SPEC2_26_IncludeJSPRenderActionTr33.jsp"
+            + "\n2. Test case - V2PortletTagLibraryTests2_SPEC2_26_IncludeJSPRender_renderURL22 - which shows that"
+            + " invalid copyCurrentRenderParameters value is translated as false (See HTTP headers)");
+    tr33.writeTo(writer);
+
+    // Now do the actual dispatch
+    String target = JSP_PREFIX + "PortletTagLibraryTests2_SPEC2_26_IncludeJSPRender" + JSP_SUFFIX
+        + "?" + QUERY_STRING;
+    PortletRequestDispatcher rd = getPortletContext().getRequestDispatcher(target);
+    rd.include(portletReq, portletResp);
+  }
 
 }


Mime
View raw message