You are viewing a plain text version of this content. The canonical link for it is here.
Posted to pluto-scm@portals.apache.org by ms...@apache.org on 2014/10/08 13:02:51 UTC

[28/30] completed implemetation of test module V2URLTests

http://git-wip-us.apache.org/repos/asf/portals-pluto/blob/dc496844/portlet-tck_3.0/V2URLTests/src/main/java/javax/portlet/tck/portlets/URLTests_PortletURLGenerationListener_ApiRenderResurl.java
----------------------------------------------------------------------
diff --git a/portlet-tck_3.0/V2URLTests/src/main/java/javax/portlet/tck/portlets/URLTests_PortletURLGenerationListener_ApiRenderResurl.java b/portlet-tck_3.0/V2URLTests/src/main/java/javax/portlet/tck/portlets/URLTests_PortletURLGenerationListener_ApiRenderResurl.java
new file mode 100644
index 0000000..8bca13d
--- /dev/null
+++ b/portlet-tck_3.0/V2URLTests/src/main/java/javax/portlet/tck/portlets/URLTests_PortletURLGenerationListener_ApiRenderResurl.java
@@ -0,0 +1,322 @@
+/*  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
+ *
+ *  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;
+
+import java.io.*;
+import java.util.*;
+import java.util.logging.*;
+import static java.util.logging.Logger.*;
+import javax.xml.namespace.QName;
+import javax.portlet.*;
+import javax.portlet.filter.*;
+import javax.servlet.*;
+import javax.servlet.http.*;
+import javax.portlet.tck.beans.*;
+import javax.portlet.tck.constants.*;
+import static javax.portlet.tck.beans.JSR286ApiTestCaseDetails.*;
+import static javax.portlet.tck.constants.Constants.*;
+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 URLTests_PortletURLGenerationListener_ApiRenderResurl_event
+ *
+ */
+public class URLTests_PortletURLGenerationListener_ApiRenderResurl implements Portlet, ResourceServingPortlet {
+   private static final String LOG_CLASS = 
+         URLTests_PortletURLGenerationListener_ApiRenderResurl.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();
+
+      // evaluate results for test case V2URLTests_PortletURLGenerationListener_ApiRenderResurl_filterResourceURL1
+      {
+         JSR286ApiTestCaseDetails tcd = new JSR286ApiTestCaseDetails();
+         TestResult tr0 = tcd.getTestResultFailed(V2URLTESTS_PORTLETURLGENERATIONLISTENER_APIRENDERRESURL_FILTERRESOURCEURL1);
+         String tcval = portletReq.getParameter("tc");
+         if (tcval.equals("V2URLTests_PortletURLGenerationListener_ApiRenderResurl_filterResourceURL1")) {
+            // Verify that the listener set the parameter as expected
+            String val = portletReq.getParameter("PUGL");
+            boolean ok = (val != null) && val.equals("Resource");
+            if (!ok) {
+               tr0.appendTcDetail("Parameter not set by listener. Expected: Resource, actual: " + val);
+            }
+            tr0.setTcSuccess(ok);
+            tr0.writeTo(writer);
+         }
+      }
+
+      // evaluate results for test case V2URLTests_PortletURLGenerationListener_ApiRenderResurl_filterResourceURL2
+      {
+         JSR286ApiTestCaseDetails tcd = new JSR286ApiTestCaseDetails();
+         TestResult tr1 = tcd.getTestResultFailed(V2URLTESTS_PORTLETURLGENERATIONLISTENER_APIRENDERRESURL_FILTERRESOURCEURL2);
+         String tcval = portletReq.getParameter("tc");
+         if (tcval.equals("V2URLTests_PortletURLGenerationListener_ApiRenderResurl_filterResourceURL2")) {
+            // Verify that the listener set the parameter as expected
+            String val = portletReq.getParameter("PUGL");
+            boolean ok = (val != null) && val.equals("Resource");
+            if (!ok) {
+               tr1.appendTcDetail("Parameter not set by listener. Expected: Resource, actual: " + val);
+            }
+            tr1.setTcSuccess(ok);
+            tr1.writeTo(writer);
+         }
+      }
+
+      // evaluate results for test case V2URLTests_PortletURLGenerationListener_ApiRenderResurl_filterResourceURL3
+      {
+         JSR286ApiTestCaseDetails tcd = new JSR286ApiTestCaseDetails();
+         TestResult tr2 = tcd.getTestResultFailed(V2URLTESTS_PORTLETURLGENERATIONLISTENER_APIRENDERRESURL_FILTERRESOURCEURL3);
+         String tcval = portletReq.getParameter("tc");
+         if (tcval.equals("V2URLTests_PortletURLGenerationListener_ApiRenderResurl_filterResourceURL3")) {
+            // Verify that the listener set the parameter as expected
+            String val = portletReq.getParameter("PUGL");
+            boolean ok = (val != null) && val.equals("Resource");
+            if (!ok) {
+               tr2.appendTcDetail("Parameter not set by listener. Expected: Resource, actual: " + val);
+            }
+            tr2.setTcSuccess(ok);
+            tr2.writeTo(writer);
+         }
+      }
+
+      // evaluate results for test case V2URLTests_PortletURLGenerationListener_ApiRenderResurl_filterResourceURL4
+      {
+         JSR286ApiTestCaseDetails tcd = new JSR286ApiTestCaseDetails();
+         TestResult tr3 = tcd.getTestResultFailed(V2URLTESTS_PORTLETURLGENERATIONLISTENER_APIRENDERRESURL_FILTERRESOURCEURL4);
+         String tcval = portletReq.getParameter("tc");
+         if (tcval.equals("V2URLTests_PortletURLGenerationListener_ApiRenderResurl_filterResourceURL4")) {
+            // Verify that the listener set the parameter as expected
+            String val = portletReq.getParameter("PUGL");
+            boolean ok = (val != null) && val.equals("Resource");
+            if (!ok) {
+               tr3.appendTcDetail("Parameter not set by listener. Expected: Resource, actual: " + val);
+            }
+            tr3.setTcSuccess(ok);
+            tr3.writeTo(writer);
+         }
+      }
+
+      // evaluate results for test case V2URLTests_PortletURLGenerationListener_ApiRenderResurl_filterResourceURL5
+      {
+         JSR286ApiTestCaseDetails tcd = new JSR286ApiTestCaseDetails();
+         TestResult tr4 = tcd.getTestResultFailed(V2URLTESTS_PORTLETURLGENERATIONLISTENER_APIRENDERRESURL_FILTERRESOURCEURL5);
+         String tcval = portletReq.getParameter("tc");
+         if (tcval.equals("V2URLTests_PortletURLGenerationListener_ApiRenderResurl_filterResourceURL5")) {
+            // Verify that the listener set the parameter as expected
+            String val = portletReq.getParameter("PUGL");
+            boolean ok = (val != null) && val.equals("Resource");
+            if (!ok) {
+               tr4.appendTcDetail("Parameter not set by listener. Expected: Resource, actual: " + val);
+            }
+            tr4.setTcSuccess(ok);
+            tr4.writeTo(writer);
+         }
+      }
+
+      // evaluate results for test case V2URLTests_PortletURLGenerationListener_ApiRenderResurl_filterResourceURL7
+      {
+         JSR286ApiTestCaseDetails tcd = new JSR286ApiTestCaseDetails();
+         TestResult tr5 = tcd.getTestResultFailed(V2URLTESTS_PORTLETURLGENERATIONLISTENER_APIRENDERRESURL_FILTERRESOURCEURL7);
+         String tcval = portletReq.getParameter("tc");
+         if (tcval.equals("V2URLTests_PortletURLGenerationListener_ApiRenderResurl_filterResourceURL7")) {
+            // Verify that the listener set the parameter as expected
+            String val = portletReq.getParameter("PUGL");
+            boolean ok = (val != null) && val.equals("Resource");
+            if (!ok) {
+               tr5.appendTcDetail("Parameter not set by listener. Expected: Resource, actual: " + val);
+            }
+            tr5.setTcSuccess(ok);
+            tr5.writeTo(writer);
+         }
+      }
+
+   }
+
+   @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();
+
+      JSR286ApiTestCaseDetails tcd = new JSR286ApiTestCaseDetails();
+
+      // Create result objects for the tests
+
+      ClassChecker cc = new ClassChecker(PortletURLGenerationListener.class);
+
+      /* TestCase: V2URLTests_PortletURLGenerationListener_ApiRenderResurl_filterResourceURL1 */
+      /* Details: "Method filterResourceURL(ResourceURL): The                 */
+      /* filterResourceURL(ResourceURL): method is called before the          */
+      /* toString() method is executed"                                       */
+      TestResult tr0 = tcd.getTestResultFailed(V2URLTESTS_PORTLETURLGENERATIONLISTENER_APIRENDERRESURL_FILTERRESOURCEURL1);
+      try {
+         ResourceURL turl = portletResp.createResourceURL();
+         turl.setParameter("tc", "V2URLTests_PortletURLGenerationListener_ApiRenderResurl_filterResourceURL1");
+         String urlstr = turl.toString();
+         
+         // add the resource results fetcher to the output stream
+         ResourceLink rl = new ResourceLink("V2URLTests_PortletURLGenerationListener_ApiRenderResurl_filterResourceURL1", urlstr);
+         rl.writeResourceFetcher(writer);
+      } catch(Exception e) {
+         tr0.appendTcDetail(e.toString());
+         tr0.writeTo(writer);
+      }
+
+      /* TestCase: V2URLTests_PortletURLGenerationListener_ApiRenderResurl_filterResourceURL2 */
+      /* Details: "Method filterResourceURL(ResourceURL): The                 */
+      /* filterResourceURL(ResourceURL): method is called before the          */
+      /* write(Writer out) method is executed"                                */
+      TestResult tr1 = tcd.getTestResultFailed(V2URLTESTS_PORTLETURLGENERATIONLISTENER_APIRENDERRESURL_FILTERRESOURCEURL2);
+      try {
+         ResourceURL turl = portletResp.createResourceURL();
+         turl.setParameter("tc", "V2URLTests_PortletURLGenerationListener_ApiRenderResurl_filterResourceURL2");
+         StringWriter tsw = new StringWriter();
+         turl.write(tsw);
+         String urlstr = tsw.toString();
+         
+         // add the resource results fetcher to the output stream
+         ResourceLink rl = new ResourceLink("V2URLTests_PortletURLGenerationListener_ApiRenderResurl_filterResourceURL2", urlstr);
+         rl.writeResourceFetcher(writer);
+      } catch(Exception e) {
+         tr1.appendTcDetail(e.toString());
+         tr1.writeTo(writer);
+      }
+
+      /* TestCase: V2URLTests_PortletURLGenerationListener_ApiRenderResurl_filterResourceURL3 */
+      /* Details: "Method filterResourceURL(ResourceURL): The                 */
+      /* filterResourceURL(ResourceURL): method is called before the          */
+      /* write(Writer out, boolean escapeXML) method is executed"             */
+      TestResult tr2 = tcd.getTestResultFailed(V2URLTESTS_PORTLETURLGENERATIONLISTENER_APIRENDERRESURL_FILTERRESOURCEURL3);
+      try {
+         ResourceURL turl = portletResp.createResourceURL();
+         turl.setParameter("tc", "V2URLTests_PortletURLGenerationListener_ApiRenderResurl_filterResourceURL3");
+         StringWriter tsw = new StringWriter();
+         turl.write(tsw, true);
+         String urlstr = tsw.toString();
+         
+         // add the resource results fetcher to the output stream
+         ResourceLink rl = new ResourceLink("V2URLTests_PortletURLGenerationListener_ApiRenderResurl_filterResourceURL3", urlstr);
+         rl.writeResourceFetcher(writer);
+      } catch(Exception e) {
+         tr2.appendTcDetail(e.toString());
+         tr2.writeTo(writer);
+      }
+
+      /* TestCase: V2URLTests_PortletURLGenerationListener_ApiRenderResurl_filterResourceURL4 */
+      /* Details: "Method filterResourceURL(ResourceURL): The                 */
+      /* filterResourceURL method is passed the ResourceURL object            */
+      /* representing the resource URL"                                       */
+      TestResult tr3 = tcd.getTestResultFailed(V2URLTESTS_PORTLETURLGENERATIONLISTENER_APIRENDERRESURL_FILTERRESOURCEURL4);
+      try {
+         ResourceURL turl = portletResp.createResourceURL();
+         turl.setParameter("tc", "V2URLTests_PortletURLGenerationListener_ApiRenderResurl_filterResourceURL4");
+         String urlstr = turl.toString();
+         
+         // add the resource results fetcher to the output stream
+         ResourceLink rl = new ResourceLink("V2URLTests_PortletURLGenerationListener_ApiRenderResurl_filterResourceURL4", urlstr);
+         rl.writeResourceFetcher(writer);
+      } catch(Exception e) {
+         tr3.appendTcDetail(e.toString());
+         tr3.writeTo(writer);
+      }
+
+      /* TestCase: V2URLTests_PortletURLGenerationListener_ApiRenderResurl_filterResourceURL5 */
+      /* Details: "Method filterResourceURL(ResourceURL): The input URL       */
+      /* object can be modified by setting a parameter and the modified URL   */
+      /* object is processed by the ResourceURL toString or write method"     */
+      TestResult tr4 = tcd.getTestResultFailed(V2URLTESTS_PORTLETURLGENERATIONLISTENER_APIRENDERRESURL_FILTERRESOURCEURL5);
+      try {
+         ResourceURL turl = portletResp.createResourceURL();
+         turl.setParameter("tc", "V2URLTests_PortletURLGenerationListener_ApiRenderResurl_filterResourceURL5");
+         String urlstr = turl.toString();
+         
+         // add the resource results fetcher to the output stream
+         ResourceLink rl = new ResourceLink("V2URLTests_PortletURLGenerationListener_ApiRenderResurl_filterResourceURL5", urlstr);
+         rl.writeResourceFetcher(writer);
+      } catch(Exception e) {
+         tr4.appendTcDetail(e.toString());
+         tr4.writeTo(writer);
+      }
+
+      /* TestCase: V2URLTests_PortletURLGenerationListener_ApiRenderResurl_filterResourceURL7 */
+      /* Details: "Method filterResourceURL(ResourceURL): The input URL       */
+      /* object can be modified by setting the resource ID and the modified   */
+      /* URL object is processed by the ResourceURL toString or write         */
+      /* method"                                                              */
+      TestResult tr5 = tcd.getTestResultFailed(V2URLTESTS_PORTLETURLGENERATIONLISTENER_APIRENDERRESURL_FILTERRESOURCEURL7);
+      try {
+         ResourceURL turl = portletResp.createResourceURL();
+         turl.setParameter("tc", "V2URLTests_PortletURLGenerationListener_ApiRenderResurl_filterResourceURL7");
+         String urlstr = turl.toString();
+         
+         // add the resource results fetcher to the output stream
+         ResourceLink rl = new ResourceLink("V2URLTests_PortletURLGenerationListener_ApiRenderResurl_filterResourceURL7", urlstr);
+         rl.writeResourceFetcher(writer);
+      } catch(Exception e) {
+         tr5.appendTcDetail(e.toString());
+         tr5.writeTo(writer);
+      }
+
+   }
+
+}

http://git-wip-us.apache.org/repos/asf/portals-pluto/blob/dc496844/portlet-tck_3.0/V2URLTests/src/main/java/javax/portlet/tck/portlets/URLTests_ResourceURL_ApiRenderResurl.java
----------------------------------------------------------------------
diff --git a/portlet-tck_3.0/V2URLTests/src/main/java/javax/portlet/tck/portlets/URLTests_ResourceURL_ApiRenderResurl.java b/portlet-tck_3.0/V2URLTests/src/main/java/javax/portlet/tck/portlets/URLTests_ResourceURL_ApiRenderResurl.java
index 23c91b0..480b10b 100644
--- a/portlet-tck_3.0/V2URLTests/src/main/java/javax/portlet/tck/portlets/URLTests_ResourceURL_ApiRenderResurl.java
+++ b/portlet-tck_3.0/V2URLTests/src/main/java/javax/portlet/tck/portlets/URLTests_ResourceURL_ApiRenderResurl.java
@@ -211,8 +211,7 @@ public class URLTests_ResourceURL_ApiRenderResurl implements Portlet, ResourceSe
          ResourceURL turl = portletResp.createResourceURL();
          turl.setParameter("tc", "V2URLTests_ResourceURL_ApiRenderResurl_getCacheability");
          String c = turl.getCacheability();
-         boolean ok = false;
-         ok = ok || ((c != null) && ResourceURL.PAGE.equals(c));
+         boolean ok = ((c != null) && ResourceURL.PAGE.equals(c));
          if (!ok) {
             tr5.appendTcDetail("Cacheability expected: " + ResourceURL.PAGE + ", actual: " + c);
          }

http://git-wip-us.apache.org/repos/asf/portals-pluto/blob/dc496844/portlet-tck_3.0/V2URLTests/src/main/resources/xml-resources/additionalTCs.xml
----------------------------------------------------------------------
diff --git a/portlet-tck_3.0/V2URLTests/src/main/resources/xml-resources/additionalTCs.xml b/portlet-tck_3.0/V2URLTests/src/main/resources/xml-resources/additionalTCs.xml
index 09e56e2..a7ff3f5 100644
--- a/portlet-tck_3.0/V2URLTests/src/main/resources/xml-resources/additionalTCs.xml
+++ b/portlet-tck_3.0/V2URLTests/src/main/resources/xml-resources/additionalTCs.xml
@@ -41,7 +41,6 @@
 <entry key="V2URLTests_BaseURL_ApiRenderRenurl_setParameters9">V2URLTests</entry>
 <entry key="V2URLTests_BaseURL_ApiRenderRenurl_setParameters10">V2URLTests</entry>
 <entry key="V2URLTests_BaseURL_ApiRenderRenurl_setParameters12">V2URLTests</entry>
-<entry key="V2URLTests_BaseURL_ApiRenderRenurl_setParameters13">V2URLTests</entry>
 <entry key="V2URLTests_BaseURL_ApiRenderRenurl_setSecure2">V2URLTests</entry>
 <entry key="V2URLTests_BaseURL_ApiRenderRenurl_toString">V2URLTests</entry>
 <entry key="V2URLTests_BaseURL_ApiRenderRenurl_getParameterMap1">V2URLTests</entry>
@@ -71,7 +70,6 @@
 <entry key="V2URLTests_BaseURL_ApiRenderActurl_setParameters9">V2URLTests</entry>
 <entry key="V2URLTests_BaseURL_ApiRenderActurl_setParameters10">V2URLTests</entry>
 <entry key="V2URLTests_BaseURL_ApiRenderActurl_setParameters12">V2URLTests</entry>
-<entry key="V2URLTests_BaseURL_ApiRenderActurl_setParameters13">V2URLTests</entry>
 <entry key="V2URLTests_BaseURL_ApiRenderActurl_setSecure2">V2URLTests</entry>
 <entry key="V2URLTests_BaseURL_ApiRenderActurl_toString">V2URLTests</entry>
 <entry key="V2URLTests_BaseURL_ApiRenderActurl_getParameterMap1">V2URLTests</entry>
@@ -101,7 +99,6 @@
 <entry key="V2URLTests_BaseURL_ApiRenderResurl_setParameters9">V2URLTests</entry>
 <entry key="V2URLTests_BaseURL_ApiRenderResurl_setParameters10">V2URLTests</entry>
 <entry key="V2URLTests_BaseURL_ApiRenderResurl_setParameters12">V2URLTests</entry>
-<entry key="V2URLTests_BaseURL_ApiRenderResurl_setParameters13">V2URLTests</entry>
 <entry key="V2URLTests_BaseURL_ApiRenderResurl_setSecure2">V2URLTests</entry>
 <entry key="V2URLTests_BaseURL_ApiRenderResurl_toString">V2URLTests</entry>
 <entry key="V2URLTests_BaseURL_ApiRenderResurl_getParameterMap1">V2URLTests</entry>
@@ -145,21 +142,21 @@
 <entry key="V2URLTests_ResourceURL_ApiRenderResurl_setCacheability1">V2URLTests</entry>
 <entry key="V2URLTests_ResourceURL_ApiRenderResurl_setCacheability2">V2URLTests</entry>
 <entry key="V2URLTests_ResourceURL_ApiRenderResurl_setCacheability3">V2URLTests</entry>
-<entry key="V2URLTests_PortletURLGenerationListener_ApiRender_configuration">V2URLTests</entry>
-<entry key="V2URLTests_PortletURLGenerationListener_ApiRender_filterActionURL1">V2URLTests</entry>
-<entry key="V2URLTests_PortletURLGenerationListener_ApiRender_filterActionURL2">V2URLTests</entry>
-<entry key="V2URLTests_PortletURLGenerationListener_ApiRender_filterActionURL3">V2URLTests</entry>
-<entry key="V2URLTests_PortletURLGenerationListener_ApiRender_filterActionURL4">V2URLTests</entry>
-<entry key="V2URLTests_PortletURLGenerationListener_ApiRender_filterActionURL5">V2URLTests</entry>
-<entry key="V2URLTests_PortletURLGenerationListener_ApiRender_filterRenderURL1">V2URLTests</entry>
-<entry key="V2URLTests_PortletURLGenerationListener_ApiRender_filterRenderURL2">V2URLTests</entry>
-<entry key="V2URLTests_PortletURLGenerationListener_ApiRender_filterRenderURL3">V2URLTests</entry>
-<entry key="V2URLTests_PortletURLGenerationListener_ApiRender_filterRenderURL4">V2URLTests</entry>
-<entry key="V2URLTests_PortletURLGenerationListener_ApiRender_filterRenderURL5">V2URLTests</entry>
-<entry key="V2URLTests_PortletURLGenerationListener_ApiRender_filterResourceURL1">V2URLTests</entry>
-<entry key="V2URLTests_PortletURLGenerationListener_ApiRender_filterResourceURL2">V2URLTests</entry>
-<entry key="V2URLTests_PortletURLGenerationListener_ApiRender_filterResourceURL3">V2URLTests</entry>
-<entry key="V2URLTests_PortletURLGenerationListener_ApiRender_filterResourceURL4">V2URLTests</entry>
-<entry key="V2URLTests_PortletURLGenerationListener_ApiRender_filterResourceURL5">V2URLTests</entry>
-<entry key="V2URLTests_PortletURLGenerationListener_ApiRender_filterResourceURL7">V2URLTests</entry>
+<entry key="V2URLTests_PortletURLGenerationListener_ApiRenderActurl_configuration">V2URLTests</entry>
+<entry key="V2URLTests_PortletURLGenerationListener_ApiRenderActurl_filterActionURL1">V2URLTests</entry>
+<entry key="V2URLTests_PortletURLGenerationListener_ApiRenderActurl_filterActionURL2">V2URLTests</entry>
+<entry key="V2URLTests_PortletURLGenerationListener_ApiRenderActurl_filterActionURL3">V2URLTests</entry>
+<entry key="V2URLTests_PortletURLGenerationListener_ApiRenderActurl_filterActionURL4">V2URLTests</entry>
+<entry key="V2URLTests_PortletURLGenerationListener_ApiRenderActurl_filterActionURL5">V2URLTests</entry>
+<entry key="V2URLTests_PortletURLGenerationListener_ApiRenderRenurl_filterRenderURL1">V2URLTests</entry>
+<entry key="V2URLTests_PortletURLGenerationListener_ApiRenderRenurl_filterRenderURL2">V2URLTests</entry>
+<entry key="V2URLTests_PortletURLGenerationListener_ApiRenderRenurl_filterRenderURL3">V2URLTests</entry>
+<entry key="V2URLTests_PortletURLGenerationListener_ApiRenderRenurl_filterRenderURL4">V2URLTests</entry>
+<entry key="V2URLTests_PortletURLGenerationListener_ApiRenderRenurl_filterRenderURL5">V2URLTests</entry>
+<entry key="V2URLTests_PortletURLGenerationListener_ApiRenderResurl_filterResourceURL1">V2URLTests</entry>
+<entry key="V2URLTests_PortletURLGenerationListener_ApiRenderResurl_filterResourceURL2">V2URLTests</entry>
+<entry key="V2URLTests_PortletURLGenerationListener_ApiRenderResurl_filterResourceURL3">V2URLTests</entry>
+<entry key="V2URLTests_PortletURLGenerationListener_ApiRenderResurl_filterResourceURL4">V2URLTests</entry>
+<entry key="V2URLTests_PortletURLGenerationListener_ApiRenderResurl_filterResourceURL5">V2URLTests</entry>
+<entry key="V2URLTests_PortletURLGenerationListener_ApiRenderResurl_filterResourceURL7">V2URLTests</entry>
 </properties>

http://git-wip-us.apache.org/repos/asf/portals-pluto/blob/dc496844/portlet-tck_3.0/V2URLTests/src/main/webapp/WEB-INF/portlet.xml
----------------------------------------------------------------------
diff --git a/portlet-tck_3.0/V2URLTests/src/main/webapp/WEB-INF/portlet.xml b/portlet-tck_3.0/V2URLTests/src/main/webapp/WEB-INF/portlet.xml
index 782931a..e8301d2 100644
--- a/portlet-tck_3.0/V2URLTests/src/main/webapp/WEB-INF/portlet.xml
+++ b/portlet-tck_3.0/V2URLTests/src/main/webapp/WEB-INF/portlet.xml
@@ -111,8 +111,8 @@
    </portlet>
 
    <portlet>
-      <portlet-name>URLTests_PortletURLGenerationListener_ApiRender</portlet-name>
-      <portlet-class>javax.portlet.tck.portlets.URLTests_PortletURLGenerationListener_ApiRender</portlet-class>
+      <portlet-name>URLTests_PortletURLGenerationListener_ApiRenderActurl</portlet-name>
+      <portlet-class>javax.portlet.tck.portlets.URLTests_PortletURLGenerationListener_ApiRenderActurl</portlet-class>
       <expiration-cache>0</expiration-cache>
       <supports>
          <mime-type>text/html</mime-type>
@@ -121,7 +121,39 @@
       </supports>
       <supported-locale>en_US</supported-locale>
       <portlet-info>
-         <title>URLTests_PortletURLGenerationListener_ApiRender</title>
+         <title>URLTests_PortletURLGenerationListener_ApiRenderActurl</title>
+      </portlet-info>
+   <supported-public-render-parameter>tckPRP1</supported-public-render-parameter>
+   </portlet>
+
+   <portlet>
+      <portlet-name>URLTests_PortletURLGenerationListener_ApiRenderRenurl</portlet-name>
+      <portlet-class>javax.portlet.tck.portlets.URLTests_PortletURLGenerationListener_ApiRenderRenurl</portlet-class>
+      <expiration-cache>0</expiration-cache>
+      <supports>
+         <mime-type>text/html</mime-type>
+         <portlet-mode>VIEW</portlet-mode>
+         <portlet-mode>EDIT</portlet-mode>
+      </supports>
+      <supported-locale>en_US</supported-locale>
+      <portlet-info>
+         <title>URLTests_PortletURLGenerationListener_ApiRenderRenurl</title>
+      </portlet-info>
+   <supported-public-render-parameter>tckPRP1</supported-public-render-parameter>
+   </portlet>
+
+   <portlet>
+      <portlet-name>URLTests_PortletURLGenerationListener_ApiRenderResurl</portlet-name>
+      <portlet-class>javax.portlet.tck.portlets.URLTests_PortletURLGenerationListener_ApiRenderResurl</portlet-class>
+      <expiration-cache>0</expiration-cache>
+      <supports>
+         <mime-type>text/html</mime-type>
+         <portlet-mode>VIEW</portlet-mode>
+         <portlet-mode>EDIT</portlet-mode>
+      </supports>
+      <supported-locale>en_US</supported-locale>
+      <portlet-info>
+         <title>URLTests_PortletURLGenerationListener_ApiRenderResurl</title>
       </portlet-info>
    <supported-public-render-parameter>tckPRP1</supported-public-render-parameter>
    </portlet>

http://git-wip-us.apache.org/repos/asf/portals-pluto/blob/dc496844/portlet-tck_3.0/common/src/main/java/javax/portlet/tck/beans/JSR286ApiTestCaseDetails.java
----------------------------------------------------------------------
diff --git a/portlet-tck_3.0/common/src/main/java/javax/portlet/tck/beans/JSR286ApiTestCaseDetails.java b/portlet-tck_3.0/common/src/main/java/javax/portlet/tck/beans/JSR286ApiTestCaseDetails.java
index 8395fb3..0b0fc8b 100644
--- a/portlet-tck_3.0/common/src/main/java/javax/portlet/tck/beans/JSR286ApiTestCaseDetails.java
+++ b/portlet-tck_3.0/common/src/main/java/javax/portlet/tck/beans/JSR286ApiTestCaseDetails.java
@@ -1091,23 +1091,23 @@ public class JSR286ApiTestCaseDetails extends TestCaseDetails {
    public final static String V2URLTESTS_RESOURCEURL_APIRENDERRESURL_SETCACHEABILITY1 = "V2URLTests_ResourceURL_ApiRenderResurl_setCacheability1";
    public final static String V2URLTESTS_RESOURCEURL_APIRENDERRESURL_SETCACHEABILITY2 = "V2URLTests_ResourceURL_ApiRenderResurl_setCacheability2";
    public final static String V2URLTESTS_RESOURCEURL_APIRENDERRESURL_SETCACHEABILITY3 = "V2URLTests_ResourceURL_ApiRenderResurl_setCacheability3";
-   public final static String V2URLTESTS_PORTLETURLGENERATIONLISTENER_APIRENDER_CONFIGURATION = "V2URLTests_PortletURLGenerationListener_ApiRender_configuration";
-   public final static String V2URLTESTS_PORTLETURLGENERATIONLISTENER_APIRENDER_FILTERACTIONURL1 = "V2URLTests_PortletURLGenerationListener_ApiRender_filterActionURL1";
-   public final static String V2URLTESTS_PORTLETURLGENERATIONLISTENER_APIRENDER_FILTERACTIONURL2 = "V2URLTests_PortletURLGenerationListener_ApiRender_filterActionURL2";
-   public final static String V2URLTESTS_PORTLETURLGENERATIONLISTENER_APIRENDER_FILTERACTIONURL3 = "V2URLTests_PortletURLGenerationListener_ApiRender_filterActionURL3";
-   public final static String V2URLTESTS_PORTLETURLGENERATIONLISTENER_APIRENDER_FILTERACTIONURL4 = "V2URLTests_PortletURLGenerationListener_ApiRender_filterActionURL4";
-   public final static String V2URLTESTS_PORTLETURLGENERATIONLISTENER_APIRENDER_FILTERACTIONURL5 = "V2URLTests_PortletURLGenerationListener_ApiRender_filterActionURL5";
-   public final static String V2URLTESTS_PORTLETURLGENERATIONLISTENER_APIRENDER_FILTERRENDERURL1 = "V2URLTests_PortletURLGenerationListener_ApiRender_filterRenderURL1";
-   public final static String V2URLTESTS_PORTLETURLGENERATIONLISTENER_APIRENDER_FILTERRENDERURL2 = "V2URLTests_PortletURLGenerationListener_ApiRender_filterRenderURL2";
-   public final static String V2URLTESTS_PORTLETURLGENERATIONLISTENER_APIRENDER_FILTERRENDERURL3 = "V2URLTests_PortletURLGenerationListener_ApiRender_filterRenderURL3";
-   public final static String V2URLTESTS_PORTLETURLGENERATIONLISTENER_APIRENDER_FILTERRENDERURL4 = "V2URLTests_PortletURLGenerationListener_ApiRender_filterRenderURL4";
-   public final static String V2URLTESTS_PORTLETURLGENERATIONLISTENER_APIRENDER_FILTERRENDERURL5 = "V2URLTests_PortletURLGenerationListener_ApiRender_filterRenderURL5";
-   public final static String V2URLTESTS_PORTLETURLGENERATIONLISTENER_APIRENDER_FILTERRESOURCEURL1 = "V2URLTests_PortletURLGenerationListener_ApiRender_filterResourceURL1";
-   public final static String V2URLTESTS_PORTLETURLGENERATIONLISTENER_APIRENDER_FILTERRESOURCEURL2 = "V2URLTests_PortletURLGenerationListener_ApiRender_filterResourceURL2";
-   public final static String V2URLTESTS_PORTLETURLGENERATIONLISTENER_APIRENDER_FILTERRESOURCEURL3 = "V2URLTests_PortletURLGenerationListener_ApiRender_filterResourceURL3";
-   public final static String V2URLTESTS_PORTLETURLGENERATIONLISTENER_APIRENDER_FILTERRESOURCEURL4 = "V2URLTests_PortletURLGenerationListener_ApiRender_filterResourceURL4";
-   public final static String V2URLTESTS_PORTLETURLGENERATIONLISTENER_APIRENDER_FILTERRESOURCEURL5 = "V2URLTests_PortletURLGenerationListener_ApiRender_filterResourceURL5";
-   public final static String V2URLTESTS_PORTLETURLGENERATIONLISTENER_APIRENDER_FILTERRESOURCEURL7 = "V2URLTests_PortletURLGenerationListener_ApiRender_filterResourceURL7";
+   public final static String V2URLTESTS_PORTLETURLGENERATIONLISTENER_APIRENDERACTURL_CONFIGURATION = "V2URLTests_PortletURLGenerationListener_ApiRenderActurl_configuration";
+   public final static String V2URLTESTS_PORTLETURLGENERATIONLISTENER_APIRENDERACTURL_FILTERACTIONURL1 = "V2URLTests_PortletURLGenerationListener_ApiRenderActurl_filterActionURL1";
+   public final static String V2URLTESTS_PORTLETURLGENERATIONLISTENER_APIRENDERACTURL_FILTERACTIONURL2 = "V2URLTests_PortletURLGenerationListener_ApiRenderActurl_filterActionURL2";
+   public final static String V2URLTESTS_PORTLETURLGENERATIONLISTENER_APIRENDERACTURL_FILTERACTIONURL3 = "V2URLTests_PortletURLGenerationListener_ApiRenderActurl_filterActionURL3";
+   public final static String V2URLTESTS_PORTLETURLGENERATIONLISTENER_APIRENDERACTURL_FILTERACTIONURL4 = "V2URLTests_PortletURLGenerationListener_ApiRenderActurl_filterActionURL4";
+   public final static String V2URLTESTS_PORTLETURLGENERATIONLISTENER_APIRENDERACTURL_FILTERACTIONURL5 = "V2URLTests_PortletURLGenerationListener_ApiRenderActurl_filterActionURL5";
+   public final static String V2URLTESTS_PORTLETURLGENERATIONLISTENER_APIRENDERRENURL_FILTERRENDERURL1 = "V2URLTests_PortletURLGenerationListener_ApiRenderRenurl_filterRenderURL1";
+   public final static String V2URLTESTS_PORTLETURLGENERATIONLISTENER_APIRENDERRENURL_FILTERRENDERURL2 = "V2URLTests_PortletURLGenerationListener_ApiRenderRenurl_filterRenderURL2";
+   public final static String V2URLTESTS_PORTLETURLGENERATIONLISTENER_APIRENDERRENURL_FILTERRENDERURL3 = "V2URLTests_PortletURLGenerationListener_ApiRenderRenurl_filterRenderURL3";
+   public final static String V2URLTESTS_PORTLETURLGENERATIONLISTENER_APIRENDERRENURL_FILTERRENDERURL4 = "V2URLTests_PortletURLGenerationListener_ApiRenderRenurl_filterRenderURL4";
+   public final static String V2URLTESTS_PORTLETURLGENERATIONLISTENER_APIRENDERRENURL_FILTERRENDERURL5 = "V2URLTests_PortletURLGenerationListener_ApiRenderRenurl_filterRenderURL5";
+   public final static String V2URLTESTS_PORTLETURLGENERATIONLISTENER_APIRENDERRESURL_FILTERRESOURCEURL1 = "V2URLTests_PortletURLGenerationListener_ApiRenderResurl_filterResourceURL1";
+   public final static String V2URLTESTS_PORTLETURLGENERATIONLISTENER_APIRENDERRESURL_FILTERRESOURCEURL2 = "V2URLTests_PortletURLGenerationListener_ApiRenderResurl_filterResourceURL2";
+   public final static String V2URLTESTS_PORTLETURLGENERATIONLISTENER_APIRENDERRESURL_FILTERRESOURCEURL3 = "V2URLTests_PortletURLGenerationListener_ApiRenderResurl_filterResourceURL3";
+   public final static String V2URLTESTS_PORTLETURLGENERATIONLISTENER_APIRENDERRESURL_FILTERRESOURCEURL4 = "V2URLTests_PortletURLGenerationListener_ApiRenderResurl_filterResourceURL4";
+   public final static String V2URLTESTS_PORTLETURLGENERATIONLISTENER_APIRENDERRESURL_FILTERRESOURCEURL5 = "V2URLTests_PortletURLGenerationListener_ApiRenderResurl_filterResourceURL5";
+   public final static String V2URLTESTS_PORTLETURLGENERATIONLISTENER_APIRENDERRESURL_FILTERRESOURCEURL7 = "V2URLTests_PortletURLGenerationListener_ApiRenderResurl_filterResourceURL7";
    public final static String V2EXCEPTIONTESTS_PORTLETMODEEXCEPTION_APIRENDER_HASGETMODE2 = "V2ExceptionTests_PortletModeException_ApiRender_hasGetMode2";
    public final static String V2EXCEPTIONTESTS_UNAVAILABLEEXCEPTION_APIRENDER_ISPERMANENT1 = "V2ExceptionTests_UnavailableException_ApiRender_isPermanent1";
    public final static String V2EXCEPTIONTESTS_UNAVAILABLEEXCEPTION_APIRENDER_ISPERMANENT2 = "V2ExceptionTests_UnavailableException_ApiRender_isPermanent2";
@@ -2605,23 +2605,23 @@ public class JSR286ApiTestCaseDetails extends TestCaseDetails {
       tcd.put(V2URLTESTS_RESOURCEURL_APIRENDERRESURL_SETCACHEABILITY1, "Method setCacheability(String): Sets the cacheability level for the resource URL");
       tcd.put(V2URLTESTS_RESOURCEURL_APIRENDERRESURL_SETCACHEABILITY2, "Method setCacheability(String): Throws IllegalArgumentException if the input parameter does not have a value of \"FULL\", \"PAGE\", or \"PORTLET\"");
       tcd.put(V2URLTESTS_RESOURCEURL_APIRENDERRESURL_SETCACHEABILITY3, "Method setCacheability(String): Throws IllegalStateException if the specified cacheability level is weaker than the cacheability level for the parent resource URL");
-      tcd.put(V2URLTESTS_PORTLETURLGENERATIONLISTENER_APIRENDER_CONFIGURATION, "A PortletURLGenerationListener can be configured in the portlet deployment descriptor");
-      tcd.put(V2URLTESTS_PORTLETURLGENERATIONLISTENER_APIRENDER_FILTERACTIONURL1, "Method filterActionURL(PortletURL): The filterActionURL(PortletURL): method is called before the toString() method is executed");
-      tcd.put(V2URLTESTS_PORTLETURLGENERATIONLISTENER_APIRENDER_FILTERACTIONURL2, "Method filterActionURL(PortletURL): The filterActionURL(PortletURL): method is called before the write(Writer out) method is executed");
-      tcd.put(V2URLTESTS_PORTLETURLGENERATIONLISTENER_APIRENDER_FILTERACTIONURL3, "Method filterActionURL(PortletURL): The filterActionURL(PortletURL): method is called before the write(Writer out, boolean escapeXML) method is executed");
-      tcd.put(V2URLTESTS_PORTLETURLGENERATIONLISTENER_APIRENDER_FILTERACTIONURL4, "Method filterActionURL(PortletURL): The filterActionURL method is passed the PortletURL object representing the action URL");
-      tcd.put(V2URLTESTS_PORTLETURLGENERATIONLISTENER_APIRENDER_FILTERACTIONURL5, "Method filterActionURL(PortletURL): The input URL object can be modified by setting a parameter and the modified URL object is processed by the PortletURL toString or write method");
-      tcd.put(V2URLTESTS_PORTLETURLGENERATIONLISTENER_APIRENDER_FILTERRENDERURL1, "Method filterRenderURL(PortletURL): The filterRenderURL(PortletURL): method is called before the toString() method is executed");
-      tcd.put(V2URLTESTS_PORTLETURLGENERATIONLISTENER_APIRENDER_FILTERRENDERURL2, "Method filterRenderURL(PortletURL): The filterRenderURL(PortletURL): method is called before the write(Writer out) method is executed");
-      tcd.put(V2URLTESTS_PORTLETURLGENERATIONLISTENER_APIRENDER_FILTERRENDERURL3, "Method filterRenderURL(PortletURL): The filterRenderURL(PortletURL): method is called before the write(Writer out, boolean escapeXML) method is executed");
-      tcd.put(V2URLTESTS_PORTLETURLGENERATIONLISTENER_APIRENDER_FILTERRENDERURL4, "Method filterRenderURL(PortletURL): The filterRenderURL method is passed the PortletURL object representing the action URL");
-      tcd.put(V2URLTESTS_PORTLETURLGENERATIONLISTENER_APIRENDER_FILTERRENDERURL5, "Method filterRenderURL(PortletURL): The input URL object can be modified by setting a parameter and the modified URL object is processed by the PortletURL toString or write method");
-      tcd.put(V2URLTESTS_PORTLETURLGENERATIONLISTENER_APIRENDER_FILTERRESOURCEURL1, "Method filterResourceURL(ResourceURL): The filterResourceURL(PortletURL): method is called before the toString() method is executed");
-      tcd.put(V2URLTESTS_PORTLETURLGENERATIONLISTENER_APIRENDER_FILTERRESOURCEURL2, "Method filterResourceURL(ResourceURL): The filterResourceURL(PortletURL): method is called before the write(Writer out) method is executed");
-      tcd.put(V2URLTESTS_PORTLETURLGENERATIONLISTENER_APIRENDER_FILTERRESOURCEURL3, "Method filterResourceURL(ResourceURL): The filterResourceURL(PortletURL): method is called before the write(Writer out, boolean escapeXML) method is executed");
-      tcd.put(V2URLTESTS_PORTLETURLGENERATIONLISTENER_APIRENDER_FILTERRESOURCEURL4, "Method filterResourceURL(ResourceURL): The filterResourceURL method is passed the PortletURL object representing the action URL");
-      tcd.put(V2URLTESTS_PORTLETURLGENERATIONLISTENER_APIRENDER_FILTERRESOURCEURL5, "Method filterResourceURL(ResourceURL): The input URL object can be modified by setting a parameter and the modified URL object is processed by the PortletURL toString or write method");
-      tcd.put(V2URLTESTS_PORTLETURLGENERATIONLISTENER_APIRENDER_FILTERRESOURCEURL7, "Method filterResourceURL(ResourceURL): The input URL object can be modified by setting the resource ID and the modified URL object is processed by the PortletURL toString or write method");
+      tcd.put(V2URLTESTS_PORTLETURLGENERATIONLISTENER_APIRENDERACTURL_CONFIGURATION, "A PortletURLGenerationListener can be configured in the portlet deployment descriptor");
+      tcd.put(V2URLTESTS_PORTLETURLGENERATIONLISTENER_APIRENDERACTURL_FILTERACTIONURL1, "Method filterActionURL(PortletURL): The filterActionURL(PortletURL): method is called before the toString() method is executed");
+      tcd.put(V2URLTESTS_PORTLETURLGENERATIONLISTENER_APIRENDERACTURL_FILTERACTIONURL2, "Method filterActionURL(PortletURL): The filterActionURL(PortletURL): method is called before the write(Writer out) method is executed");
+      tcd.put(V2URLTESTS_PORTLETURLGENERATIONLISTENER_APIRENDERACTURL_FILTERACTIONURL3, "Method filterActionURL(PortletURL): The filterActionURL(PortletURL): method is called before the write(Writer out, boolean escapeXML) method is executed");
+      tcd.put(V2URLTESTS_PORTLETURLGENERATIONLISTENER_APIRENDERACTURL_FILTERACTIONURL4, "Method filterActionURL(PortletURL): The filterActionURL method is passed the PortletURL object representing the action URL");
+      tcd.put(V2URLTESTS_PORTLETURLGENERATIONLISTENER_APIRENDERACTURL_FILTERACTIONURL5, "Method filterActionURL(PortletURL): The input URL object can be modified by setting a parameter and the modified URL object is processed by the PortletURL toString or write method");
+      tcd.put(V2URLTESTS_PORTLETURLGENERATIONLISTENER_APIRENDERRENURL_FILTERRENDERURL1, "Method filterRenderURL(PortletURL): The filterRenderURL(PortletURL): method is called before the toString() method is executed");
+      tcd.put(V2URLTESTS_PORTLETURLGENERATIONLISTENER_APIRENDERRENURL_FILTERRENDERURL2, "Method filterRenderURL(PortletURL): The filterRenderURL(PortletURL): method is called before the write(Writer out) method is executed");
+      tcd.put(V2URLTESTS_PORTLETURLGENERATIONLISTENER_APIRENDERRENURL_FILTERRENDERURL3, "Method filterRenderURL(PortletURL): The filterRenderURL(PortletURL): method is called before the write(Writer out, boolean escapeXML) method is executed");
+      tcd.put(V2URLTESTS_PORTLETURLGENERATIONLISTENER_APIRENDERRENURL_FILTERRENDERURL4, "Method filterRenderURL(PortletURL): The filterRenderURL method is passed the PortletURL object representing the action URL");
+      tcd.put(V2URLTESTS_PORTLETURLGENERATIONLISTENER_APIRENDERRENURL_FILTERRENDERURL5, "Method filterRenderURL(PortletURL): The input URL object can be modified by setting a parameter and the modified URL object is processed by the PortletURL toString or write method");
+      tcd.put(V2URLTESTS_PORTLETURLGENERATIONLISTENER_APIRENDERRESURL_FILTERRESOURCEURL1, "Method filterResourceURL(ResourceURL): The filterResourceURL(ResourceURL): method is called before the toString() method is executed");
+      tcd.put(V2URLTESTS_PORTLETURLGENERATIONLISTENER_APIRENDERRESURL_FILTERRESOURCEURL2, "Method filterResourceURL(ResourceURL): The filterResourceURL(ResourceURL): method is called before the write(Writer out) method is executed");
+      tcd.put(V2URLTESTS_PORTLETURLGENERATIONLISTENER_APIRENDERRESURL_FILTERRESOURCEURL3, "Method filterResourceURL(ResourceURL): The filterResourceURL(ResourceURL): method is called before the write(Writer out, boolean escapeXML) method is executed");
+      tcd.put(V2URLTESTS_PORTLETURLGENERATIONLISTENER_APIRENDERRESURL_FILTERRESOURCEURL4, "Method filterResourceURL(ResourceURL): The filterResourceURL method is passed the ResourceURL object representing the action URL");
+      tcd.put(V2URLTESTS_PORTLETURLGENERATIONLISTENER_APIRENDERRESURL_FILTERRESOURCEURL5, "Method filterResourceURL(ResourceURL): The input URL object can be modified by setting a parameter and the modified URL object is processed by the ResourceURL toString or write method");
+      tcd.put(V2URLTESTS_PORTLETURLGENERATIONLISTENER_APIRENDERRESURL_FILTERRESOURCEURL7, "Method filterResourceURL(ResourceURL): The input URL object can be modified by setting the resource ID and the modified URL object is processed by the ResourceURL toString or write method");
       tcd.put(V2EXCEPTIONTESTS_PORTLETMODEEXCEPTION_APIRENDER_HASGETMODE2, "Returns the PortletMode object causing this exception");
       tcd.put(V2EXCEPTIONTESTS_UNAVAILABLEEXCEPTION_APIRENDER_ISPERMANENT1, "Method isPermanent(): Returns a boolean");
       tcd.put(V2EXCEPTIONTESTS_UNAVAILABLEEXCEPTION_APIRENDER_ISPERMANENT2, "Method isPermanent(): Returns true if the portlet is permanently unavailable ");

http://git-wip-us.apache.org/repos/asf/portals-pluto/blob/dc496844/portlet-tck_3.0/common/src/main/java/javax/portlet/tck/beans/ResourceLink.java
----------------------------------------------------------------------
diff --git a/portlet-tck_3.0/common/src/main/java/javax/portlet/tck/beans/ResourceLink.java b/portlet-tck_3.0/common/src/main/java/javax/portlet/tck/beans/ResourceLink.java
index 0ee747e..9584c3f 100644
--- a/portlet-tck_3.0/common/src/main/java/javax/portlet/tck/beans/ResourceLink.java
+++ b/portlet-tck_3.0/common/src/main/java/javax/portlet/tck/beans/ResourceLink.java
@@ -51,8 +51,10 @@ public class ResourceLink {
    String urlstr;
    ResourceURL rurl;
    String actId;
-   String resId;
+   String linkId;
    String divId;
+   String resId;
+   String detId;
    String title;
    
    /**
@@ -61,8 +63,10 @@ public class ResourceLink {
    public ResourceLink() {
       tcName = "";
       actId = "";
-      resId = "";
+      linkId = "";
       divId = "";
+      resId = "";
+      detId = "";
       title = "";
       rurl = null;
       urlstr = null;
@@ -77,8 +81,10 @@ public class ResourceLink {
    public ResourceLink(String tcName, ResourceURL rurl) {
       this.tcName = tcName;
       this.actId = tcName + Constants.CLICK_ID;
-      this.resId = tcName + Constants.RESOURCE_LINK_ID;
+      this.linkId = tcName + Constants.RESOURCE_LINK_ID;
       this.divId = tcName + Constants.RESOURCE_DIV_ID;
+      this.resId = tcName + Constants.RESULT_ID;
+      this.detId = tcName + Constants.DETAIL_ID;
       this.title = " Resource Link";
       this.rurl = rurl;
       this.urlstr = null;
@@ -94,8 +100,10 @@ public class ResourceLink {
    public ResourceLink(String tcName, String urlstr) {
       this.tcName = tcName;
       this.actId = tcName + Constants.CLICK_ID;
-      this.resId = tcName + Constants.RESOURCE_LINK_ID;
+      this.linkId = tcName + Constants.RESOURCE_LINK_ID;
       this.divId = tcName + Constants.RESOURCE_DIV_ID;
+      this.resId = tcName + Constants.RESULT_ID;
+      this.detId = tcName + Constants.DETAIL_ID;
       this.title = " Resource Link";
       this.urlstr = urlstr;
       this.rurl = null;
@@ -122,7 +130,7 @@ public class ResourceLink {
       sb.append(" " + title + ":");
       sb.append("</h4>");
       sb.append("<a class='portletTCKLink' id='");
-      sb.append(resId);
+      sb.append(linkId);
       sb.append("' href='");
       sb.append(urlstr);
       sb.append("'>");
@@ -160,6 +168,7 @@ public class ResourceLink {
 
       if (urlstr == null) urlstr = rurl.toString();
       StringBuilder sb = new StringBuilder();
+      TestResult tr = new TestResult(tcName, false, "");
       sb.append("<div class='portletTCKTestcase' name='").append(tcName);
       sb.append("' id='").append(divId).append("'>\n");
       sb.append("<h4>");
@@ -175,8 +184,15 @@ public class ResourceLink {
       sb.append("   var getRes = function () {\n");
       sb.append("      var xhr = new XMLHttpRequest();\n");
       sb.append("      xhr.onreadystatechange=function() {\n");
-      sb.append("         if (xhr.readyState==4 && xhr.status==200) {\n");
-      sb.append("            document.getElementById('" + divId + "').innerHTML=xhr.responseText;\n");
+      sb.append("         if (xhr.readyState==4) {\n");
+      sb.append("            if (xhr.status==200) {\n");
+      sb.append("               document.getElementById('" + divId + "').innerHTML=xhr.responseText;\n");
+      sb.append("            } else {\n");
+      sb.append("               var str=\"" + tr.toString() + "\";\n");
+      sb.append("               document.getElementById('" + divId + "').innerHTML=str;\n");
+      sb.append("               str=\"XMLHttpRequest status=\" + xhr.status;\n");
+      sb.append("               document.getElementById('" + detId + "').innerHTML=str;\n");
+      sb.append("            }\n");
       sb.append("         }\n");
       sb.append("      };\n");
       sb.append("      xhr.open('GET', '" + urlstr + "',true);\n");