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:50 UTC

[27/30] git commit: worked on URL tests

worked on URL tests


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

Branch: refs/heads/master
Commit: 2239b205da2b1de7f71486b4defdecbd17e27ba4
Parents: 8e0b3ac
Author: Scott Nicklous <ms...@apache.org>
Authored: Sat Sep 27 09:32:01 2014 +0200
Committer: Scott Nicklous <ms...@apache.org>
Committed: Sat Sep 27 09:32:01 2014 +0200

----------------------------------------------------------------------
 .../TestPortletURLGenerationListener.java       |  62 ++
 .../URLTests_BaseURL_ApiRenderActurl.java       | 158 ++++-
 .../URLTests_BaseURL_ApiRenderRenurl.java       |  90 ++-
 .../URLTests_BaseURL_ApiRenderResurl.java       | 126 +++-
 ..._PortletURLGenerationListener_ApiRender.java | 663 ++++++++++++++++---
 .../URLTests_PortletURL_ApiRenderActurl.java    | 295 +++++++--
 .../URLTests_PortletURL_ApiRenderRenurl.java    | 244 +++++--
 .../URLTests_ResourceURL_ApiRenderResurl.java   | 121 +++-
 .../resources/xml-resources/additionalTCs.xml   |  15 +-
 .../src/main/webapp/WEB-INF/portlet.xml         |   9 +
 .../tck/beans/JSR286ApiTestCaseDetails.java     |  66 +-
 .../javax/portlet/tck/beans/ResourceLink.java   |  26 +-
 .../javax/portlet/tck/beans/TestButton.java     |  19 +-
 .../java/javax/portlet/tck/beans/TestLink.java  |  21 +-
 14 files changed, 1589 insertions(+), 326 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/portals-pluto/blob/2239b205/portlet-tck_3.0/V2URLTests/src/main/java/javax/portlet/tck/listeners/TestPortletURLGenerationListener.java
----------------------------------------------------------------------
diff --git a/portlet-tck_3.0/V2URLTests/src/main/java/javax/portlet/tck/listeners/TestPortletURLGenerationListener.java b/portlet-tck_3.0/V2URLTests/src/main/java/javax/portlet/tck/listeners/TestPortletURLGenerationListener.java
new file mode 100644
index 0000000..29186b7
--- /dev/null
+++ b/portlet-tck_3.0/V2URLTests/src/main/java/javax/portlet/tck/listeners/TestPortletURLGenerationListener.java
@@ -0,0 +1,62 @@
+/*  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.listeners;
+
+import java.io.*;
+import java.util.*;
+import java.util.logging.*;
+import static java.util.logging.Logger.*;
+import javax.portlet.*;
+import javax.portlet.filter.*;
+import javax.portlet.tck.beans.*;
+import javax.portlet.tck.constants.*;
+import static javax.portlet.tck.constants.Constants.*;
+import static javax.portlet.tck.beans.JSR286ApiTestCaseDetails.*;
+import static javax.portlet.PortletSession.*;
+import static javax.portlet.ResourceURL.*;
+
+/**
+ *Test PortletURLGenerationListener
+ * Used by portlet: URLTests_PortletURLGenerationListener_ApiRender
+ *
+ * @author nick
+ *
+ */
+public class TestPortletURLGenerationListener implements PortletURLGenerationListener {
+   private static final String LOG_CLASS = 
+         TestPortletURLGenerationListener.class.getName();
+   private final Logger LOGGER = Logger.getLogger(LOG_CLASS);
+
+      // set parameters on URLs to indicate test success
+
+   public void filterActionURL(PortletURL url) {
+      url.setParameter("PUGL", "Action");
+   }
+
+   public void filterRenderURL(PortletURL url) {
+      url.setParameter("PUGL", "Render");
+   }
+
+   public void filterResourceURL(ResourceURL url) {
+      url.setParameter("PUGL", "Resource");
+   }
+
+
+}

http://git-wip-us.apache.org/repos/asf/portals-pluto/blob/2239b205/portlet-tck_3.0/V2URLTests/src/main/java/javax/portlet/tck/portlets/URLTests_BaseURL_ApiRenderActurl.java
----------------------------------------------------------------------
diff --git a/portlet-tck_3.0/V2URLTests/src/main/java/javax/portlet/tck/portlets/URLTests_BaseURL_ApiRenderActurl.java b/portlet-tck_3.0/V2URLTests/src/main/java/javax/portlet/tck/portlets/URLTests_BaseURL_ApiRenderActurl.java
index a85e5e3..707ffed 100644
--- a/portlet-tck_3.0/V2URLTests/src/main/java/javax/portlet/tck/portlets/URLTests_BaseURL_ApiRenderActurl.java
+++ b/portlet-tck_3.0/V2URLTests/src/main/java/javax/portlet/tck/portlets/URLTests_BaseURL_ApiRenderActurl.java
@@ -265,6 +265,60 @@ public class URLTests_BaseURL_ApiRenderActurl implements Portlet, ResourceServin
          }
       }
 
+      // evaluate results for test case V2URLTests_BaseURL_ApiRenderActurl_setSecure2
+      {
+         JSR286ApiTestCaseDetails tcd = new JSR286ApiTestCaseDetails();
+         TestResult tr19 = tcd.getTestResultFailed(V2URLTESTS_BASEURL_APIRENDERACTURL_SETSECURE2);
+         String tcval = portletReq.getParameter("tc");
+         if (tcval.equals("V2URLTests_BaseURL_ApiRenderActurl_setSecure2")) {
+            String val = portletReq.getParameter("ok");
+            boolean ok = (val != null);
+            ok = ok || portletReq.isSecure();
+            tr19.setTcSuccess(ok);
+            PortletSession ps = portletReq.getPortletSession();
+            ps.setAttribute(RESULT_ATTR_PREFIX + "V2URLTests_BaseURL_ApiRenderActurl_setSecure2", tr19);
+         }
+      }
+
+      // evaluate results for test case V2URLTests_BaseURL_ApiRenderActurl_toString
+      {
+         JSR286ApiTestCaseDetails tcd = new JSR286ApiTestCaseDetails();
+         TestResult tr20 = tcd.getTestResultFailed(V2URLTESTS_BASEURL_APIRENDERACTURL_TOSTRING);
+         String tcval = portletReq.getParameter("tc");
+         if (tcval.equals("V2URLTests_BaseURL_ApiRenderActurl_toString")) {
+            // If execution makes it to here, the test was successful
+            tr20.setTcSuccess(true);
+            PortletSession ps = portletReq.getPortletSession();
+            ps.setAttribute(RESULT_ATTR_PREFIX + "V2URLTests_BaseURL_ApiRenderActurl_toString", tr20);
+         }
+      }
+
+      // evaluate results for test case V2URLTests_BaseURL_ApiRenderActurl_writeA1
+      {
+         JSR286ApiTestCaseDetails tcd = new JSR286ApiTestCaseDetails();
+         TestResult tr24 = tcd.getTestResultFailed(V2URLTESTS_BASEURL_APIRENDERACTURL_WRITEA1);
+         String tcval = portletReq.getParameter("tc");
+         if (tcval.equals("V2URLTests_BaseURL_ApiRenderActurl_writeA1")) {
+            // If execution makes it to here, the test was successful
+            tr24.setTcSuccess(true);
+            PortletSession ps = portletReq.getPortletSession();
+            ps.setAttribute(RESULT_ATTR_PREFIX + "V2URLTests_BaseURL_ApiRenderActurl_writeA1", tr24);
+         }
+      }
+
+      // evaluate results for test case V2URLTests_BaseURL_ApiRenderActurl_writeB1
+      {
+         JSR286ApiTestCaseDetails tcd = new JSR286ApiTestCaseDetails();
+         TestResult tr25 = tcd.getTestResultFailed(V2URLTESTS_BASEURL_APIRENDERACTURL_WRITEB1);
+         String tcval = portletReq.getParameter("tc");
+         if (tcval.equals("V2URLTests_BaseURL_ApiRenderActurl_writeB1")) {
+            // If execution makes it to here, the test was successful
+            tr25.setTcSuccess(true);
+            PortletSession ps = portletReq.getPortletSession();
+            ps.setAttribute(RESULT_ATTR_PREFIX + "V2URLTests_BaseURL_ApiRenderActurl_writeB1", tr25);
+         }
+      }
+
    }
 
    @Override
@@ -797,16 +851,56 @@ public class URLTests_BaseURL_ApiRenderActurl implements Portlet, ResourceServin
       /* Details: "Method setSecure(boolean): If the input parameter is       */
       /* true, the resulting URL uses a secure connection (HTTPS)"            */
       TestResult tr19 = tcd.getTestResultFailed(V2URLTESTS_BASEURL_APIRENDERACTURL_SETSECURE2);
-      /* TODO: implement test */
-      tr19.appendTcDetail("Not implemented.");
+      try {
+         PortletURL turl = portletResp.createActionURL();
+         turl.setParameter("tc", "V2URLTests_BaseURL_ApiRenderActurl_setSecure2");
+         try {
+            turl.setSecure(true);
+         } catch(PortletSecurityException e) {
+            // handle as successful completion, since runtime does not support setting            turl.setParameter("ok", "true");
+         }
+         
+         // add the execution button for an action request
+         TestButton tb = new TestButton("V2URLTests_BaseURL_ApiRenderActurl_setSecure2", turl);
+         tb.writeTo(writer);
+         
+         // display evaluated results
+         String tcval = portletReq.getParameter("tc");
+         if (tcval.equals("V2URLTests_BaseURL_ApiRenderActurl_setSecure2")) {
+            PortletSession ps = portletReq.getPortletSession();
+            TestResult tmp = (TestResult)ps.getAttribute(RESULT_ATTR_PREFIX + "V2URLTests_BaseURL_ApiRenderActurl_setSecure2");
+            if (tmp != null) {
+               tr19 = tmp;
+               ps.removeAttribute(RESULT_ATTR_PREFIX + "V2URLTests_BaseURL_ApiRenderActurl_setSecure2");
+            }
+         }
+      } catch(Exception e) {tr19.appendTcDetail(e.toString());}
       tr19.writeTo(writer);
 
       /* TestCase: V2URLTests_BaseURL_ApiRenderActurl_toString                */
       /* Details: "Method toString(): Returns a String containing the         */
       /* portlet URL representation to be included in the markup"             */
       TestResult tr20 = tcd.getTestResultFailed(V2URLTESTS_BASEURL_APIRENDERACTURL_TOSTRING);
-      /* TODO: implement test */
-      tr20.appendTcDetail("Not implemented.");
+      try {
+         PortletURL turl = portletResp.createActionURL();
+         turl.setParameter("tc", "V2URLTests_BaseURL_ApiRenderActurl_toString");
+         String urlstr = turl.toString();
+         
+         // add the execution button for an action request
+         TestButton tb = new TestButton("V2URLTests_BaseURL_ApiRenderActurl_toString", urlstr);
+         tb.writeTo(writer);
+         
+         // display evaluated results
+         String tcval = portletReq.getParameter("tc");
+         if (tcval.equals("V2URLTests_BaseURL_ApiRenderActurl_toString")) {
+            PortletSession ps = portletReq.getPortletSession();
+            TestResult tmp = (TestResult)ps.getAttribute(RESULT_ATTR_PREFIX + "V2URLTests_BaseURL_ApiRenderActurl_toString");
+            if (tmp != null) {
+               tr20 = tmp;
+               ps.removeAttribute(RESULT_ATTR_PREFIX + "V2URLTests_BaseURL_ApiRenderActurl_toString");
+            }
+         }
+      } catch(Exception e) {tr20.appendTcDetail(e.toString());}
       tr20.writeTo(writer);
 
       /* TestCase: V2URLTests_BaseURL_ApiRenderActurl_getParameterMap1        */
@@ -857,19 +951,59 @@ public class URLTests_BaseURL_ApiRenderActurl implements Portlet, ResourceServin
       tr23.writeTo(writer);
 
       /* TestCase: V2URLTests_BaseURL_ApiRenderActurl_writeA1                 */
-      /* Details: "Method write(): Writes the URL to the output stream        */
-      /* through the provided Writer"                                         */
+      /* Details: "Method write(Writer out): Writes the URL to the output     */
+      /* stream through the provided Writer"                                  */
       TestResult tr24 = tcd.getTestResultFailed(V2URLTESTS_BASEURL_APIRENDERACTURL_WRITEA1);
-      /* TODO: implement test */
-      tr24.appendTcDetail("Not implemented.");
+      try {
+         PortletURL turl = portletResp.createActionURL();
+         turl.setParameter("tc", "V2URLTests_BaseURL_ApiRenderActurl_writeA1");
+         StringWriter tsw = new StringWriter();
+         turl.write(tsw);
+         String urlstr = tsw.toString();
+         
+         // add the execution button for an action request
+         TestButton tb = new TestButton("V2URLTests_BaseURL_ApiRenderActurl_writeA1", urlstr);
+         tb.writeTo(writer);
+         
+         // display evaluated results
+         String tcval = portletReq.getParameter("tc");
+         if (tcval.equals("V2URLTests_BaseURL_ApiRenderActurl_writeA1")) {
+            PortletSession ps = portletReq.getPortletSession();
+            TestResult tmp = (TestResult)ps.getAttribute(RESULT_ATTR_PREFIX + "V2URLTests_BaseURL_ApiRenderActurl_writeA1");
+            if (tmp != null) {
+               tr24 = tmp;
+               ps.removeAttribute(RESULT_ATTR_PREFIX + "V2URLTests_BaseURL_ApiRenderActurl_writeA1");
+            }
+         }
+      } catch(Exception e) {tr24.appendTcDetail(e.toString());}
       tr24.writeTo(writer);
 
       /* TestCase: V2URLTests_BaseURL_ApiRenderActurl_writeB1                 */
-      /* Details: "Method write(): Writes the URL to the output stream        */
-      /* through the provided Writer"                                         */
+      /* Details: "Method write(Writer out, boolean escapeXML): Writes the    */
+      /* URL to the output stream through the provided Writer"                */
       TestResult tr25 = tcd.getTestResultFailed(V2URLTESTS_BASEURL_APIRENDERACTURL_WRITEB1);
-      /* TODO: implement test */
-      tr25.appendTcDetail("Not implemented.");
+      try {
+         PortletURL turl = portletResp.createActionURL();
+         turl.setParameter("tc", "V2URLTests_BaseURL_ApiRenderActurl_writeB1");
+         StringWriter tsw = new StringWriter();
+         turl.write(tsw, true);
+         String urlstr = tsw.toString();
+         
+         // add the execution button for an action request
+         TestButton tb = new TestButton("V2URLTests_BaseURL_ApiRenderActurl_writeB1", urlstr);
+         tb.writeTo(writer);
+         
+         // display evaluated results
+         String tcval = portletReq.getParameter("tc");
+         if (tcval.equals("V2URLTests_BaseURL_ApiRenderActurl_writeB1")) {
+            PortletSession ps = portletReq.getPortletSession();
+            TestResult tmp = (TestResult)ps.getAttribute(RESULT_ATTR_PREFIX + "V2URLTests_BaseURL_ApiRenderActurl_writeB1");
+            if (tmp != null) {
+               tr25 = tmp;
+               ps.removeAttribute(RESULT_ATTR_PREFIX + "V2URLTests_BaseURL_ApiRenderActurl_writeB1");
+            }
+         }
+      } catch(Exception e) {tr25.appendTcDetail(e.toString());}
       tr25.writeTo(writer);
 
       /* TestCase: V2URLTests_BaseURL_ApiRenderActurl_addProperty1            */

http://git-wip-us.apache.org/repos/asf/portals-pluto/blob/2239b205/portlet-tck_3.0/V2URLTests/src/main/java/javax/portlet/tck/portlets/URLTests_BaseURL_ApiRenderRenurl.java
----------------------------------------------------------------------
diff --git a/portlet-tck_3.0/V2URLTests/src/main/java/javax/portlet/tck/portlets/URLTests_BaseURL_ApiRenderRenurl.java b/portlet-tck_3.0/V2URLTests/src/main/java/javax/portlet/tck/portlets/URLTests_BaseURL_ApiRenderRenurl.java
index ce1605f..b28d785 100644
--- a/portlet-tck_3.0/V2URLTests/src/main/java/javax/portlet/tck/portlets/URLTests_BaseURL_ApiRenderRenurl.java
+++ b/portlet-tck_3.0/V2URLTests/src/main/java/javax/portlet/tck/portlets/URLTests_BaseURL_ApiRenderRenurl.java
@@ -650,16 +650,50 @@ public class URLTests_BaseURL_ApiRenderRenurl implements Portlet, ResourceServin
       /* Details: "Method setSecure(boolean): If the input parameter is       */
       /* true, the resulting URL uses a secure connection (HTTPS)"            */
       TestResult tr22 = tcd.getTestResultFailed(V2URLTESTS_BASEURL_APIRENDERRENURL_SETSECURE2);
-      /* TODO: implement test */
-      tr22.appendTcDetail("Not implemented.");
+      try {
+         PortletURL turl = portletResp.createRenderURL();
+         turl.setParameter("tc", "V2URLTests_BaseURL_ApiRenderRenurl_setSecure2");
+         try {
+            turl.setSecure(true);
+         } catch(PortletSecurityException e) {
+            // handle as successful completion, since runtime does not support setting            turl.setParameter("ok", "true");
+         }
+         
+         // add the execution link
+         TestLink tl = new TestLink("V2URLTests_BaseURL_ApiRenderRenurl_setSecure2", turl);
+         tl.writeTo(writer);
+         
+         // evaluate results
+         String tcval = portletReq.getParameter("tc");
+         if (tcval.equals("V2URLTests_BaseURL_ApiRenderRenurl_setSecure2")) {
+            String val = portletReq.getParameter("ok");
+            boolean ok = (val != null);
+            ok = ok || portletReq.isSecure();
+            tr22.setTcSuccess(ok);
+         }
+      } catch(Exception e) {tr22.appendTcDetail(e.toString());}
       tr22.writeTo(writer);
 
       /* TestCase: V2URLTests_BaseURL_ApiRenderRenurl_toString                */
       /* Details: "Method toString(): Returns a String containing the         */
       /* portlet URL representation to be included in the markup"             */
       TestResult tr23 = tcd.getTestResultFailed(V2URLTESTS_BASEURL_APIRENDERRENURL_TOSTRING);
-      /* TODO: implement test */
-      tr23.appendTcDetail("Not implemented.");
+      try {
+         PortletURL turl = portletResp.createRenderURL();
+         turl.setParameter("tc", "V2URLTests_BaseURL_ApiRenderRenurl_toString");
+         String urlstr = turl.toString();
+         
+         // add the execution link
+         TestLink tl = new TestLink("V2URLTests_BaseURL_ApiRenderRenurl_toString", urlstr);
+         tl.writeTo(writer);
+         
+         // evaluate results
+         String tcval = portletReq.getParameter("tc");
+         if (tcval.equals("V2URLTests_BaseURL_ApiRenderRenurl_toString")) {
+            // If execution makes it to here, the test was successful
+            tr23.setTcSuccess(true);
+         }
+      } catch(Exception e) {tr23.appendTcDetail(e.toString());}
       tr23.writeTo(writer);
 
       /* TestCase: V2URLTests_BaseURL_ApiRenderRenurl_getParameterMap1        */
@@ -710,19 +744,51 @@ public class URLTests_BaseURL_ApiRenderRenurl implements Portlet, ResourceServin
       tr26.writeTo(writer);
 
       /* TestCase: V2URLTests_BaseURL_ApiRenderRenurl_writeA1                 */
-      /* Details: "Method write(): Writes the URL to the output stream        */
-      /* through the provided Writer"                                         */
+      /* Details: "Method write(Writer out): Writes the URL to the output     */
+      /* stream through the provided Writer"                                  */
       TestResult tr27 = tcd.getTestResultFailed(V2URLTESTS_BASEURL_APIRENDERRENURL_WRITEA1);
-      /* TODO: implement test */
-      tr27.appendTcDetail("Not implemented.");
+      try {
+         PortletURL turl = portletResp.createRenderURL();
+         turl.setParameter("tc", "V2URLTests_BaseURL_ApiRenderRenurl_writeA1");
+         StringWriter tsw = new StringWriter();
+         turl.write(tsw);
+         String urlstr = tsw.toString();
+         
+         // add the execution link
+         TestLink tl = new TestLink("V2URLTests_BaseURL_ApiRenderRenurl_writeA1", urlstr);
+         tl.writeTo(writer);
+         
+         // evaluate results
+         String tcval = portletReq.getParameter("tc");
+         if (tcval.equals("V2URLTests_BaseURL_ApiRenderRenurl_writeA1")) {
+            // If execution makes it to here, the test was successful
+            tr27.setTcSuccess(true);
+         }
+      } catch(Exception e) {tr27.appendTcDetail(e.toString());}
       tr27.writeTo(writer);
 
       /* TestCase: V2URLTests_BaseURL_ApiRenderRenurl_writeB1                 */
-      /* Details: "Method write(): Writes the URL to the output stream        */
-      /* through the provided Writer"                                         */
+      /* Details: "Method write(Writer out, boolean escapeXML): Writes the    */
+      /* URL to the output stream through the provided Writer"                */
       TestResult tr28 = tcd.getTestResultFailed(V2URLTESTS_BASEURL_APIRENDERRENURL_WRITEB1);
-      /* TODO: implement test */
-      tr28.appendTcDetail("Not implemented.");
+      try {
+         PortletURL turl = portletResp.createRenderURL();
+         turl.setParameter("tc", "V2URLTests_BaseURL_ApiRenderRenurl_writeB1");
+         StringWriter tsw = new StringWriter();
+         turl.write(tsw, true);
+         String urlstr = tsw.toString();
+         
+         // add the execution link
+         TestLink tl = new TestLink("V2URLTests_BaseURL_ApiRenderRenurl_writeB1", urlstr);
+         tl.writeTo(writer);
+         
+         // evaluate results
+         String tcval = portletReq.getParameter("tc");
+         if (tcval.equals("V2URLTests_BaseURL_ApiRenderRenurl_writeB1")) {
+            // If execution makes it to here, the test was successful
+            tr28.setTcSuccess(true);
+         }
+      } catch(Exception e) {tr28.appendTcDetail(e.toString());}
       tr28.writeTo(writer);
 
       /* TestCase: V2URLTests_BaseURL_ApiRenderRenurl_addProperty1            */

http://git-wip-us.apache.org/repos/asf/portals-pluto/blob/2239b205/portlet-tck_3.0/V2URLTests/src/main/java/javax/portlet/tck/portlets/URLTests_BaseURL_ApiRenderResurl.java
----------------------------------------------------------------------
diff --git a/portlet-tck_3.0/V2URLTests/src/main/java/javax/portlet/tck/portlets/URLTests_BaseURL_ApiRenderResurl.java b/portlet-tck_3.0/V2URLTests/src/main/java/javax/portlet/tck/portlets/URLTests_BaseURL_ApiRenderResurl.java
index f78c28e..671852b 100644
--- a/portlet-tck_3.0/V2URLTests/src/main/java/javax/portlet/tck/portlets/URLTests_BaseURL_ApiRenderResurl.java
+++ b/portlet-tck_3.0/V2URLTests/src/main/java/javax/portlet/tck/portlets/URLTests_BaseURL_ApiRenderResurl.java
@@ -264,6 +264,56 @@ public class URLTests_BaseURL_ApiRenderResurl implements Portlet, ResourceServin
          }
       }
 
+      // evaluate results for test case V2URLTests_BaseURL_ApiRenderResurl_setSecure2
+      {
+         JSR286ApiTestCaseDetails tcd = new JSR286ApiTestCaseDetails();
+         TestResult tr19 = tcd.getTestResultFailed(V2URLTESTS_BASEURL_APIRENDERRESURL_SETSECURE2);
+         String tcval = portletReq.getParameter("tc");
+         if (tcval.equals("V2URLTests_BaseURL_ApiRenderResurl_setSecure2")) {
+            String val = portletReq.getParameter("ok");
+            boolean ok = (val != null);
+            ok = ok || portletReq.isSecure();
+            tr19.setTcSuccess(ok);
+            tr19.writeTo(writer);
+         }
+      }
+
+      // evaluate results for test case V2URLTests_BaseURL_ApiRenderResurl_toString
+      {
+         JSR286ApiTestCaseDetails tcd = new JSR286ApiTestCaseDetails();
+         TestResult tr20 = tcd.getTestResultFailed(V2URLTESTS_BASEURL_APIRENDERRESURL_TOSTRING);
+         String tcval = portletReq.getParameter("tc");
+         if (tcval.equals("V2URLTests_BaseURL_ApiRenderResurl_toString")) {
+            // If execution makes it to here, the test was successful
+            tr20.setTcSuccess(true);
+            tr20.writeTo(writer);
+         }
+      }
+
+      // evaluate results for test case V2URLTests_BaseURL_ApiRenderResurl_writeA1
+      {
+         JSR286ApiTestCaseDetails tcd = new JSR286ApiTestCaseDetails();
+         TestResult tr25 = tcd.getTestResultFailed(V2URLTESTS_BASEURL_APIRENDERRESURL_WRITEA1);
+         String tcval = portletReq.getParameter("tc");
+         if (tcval.equals("V2URLTests_BaseURL_ApiRenderResurl_writeA1")) {
+            // If execution makes it to here, the test was successful
+            tr25.setTcSuccess(true);
+            tr25.writeTo(writer);
+         }
+      }
+
+      // evaluate results for test case V2URLTests_BaseURL_ApiRenderResurl_writeB1
+      {
+         JSR286ApiTestCaseDetails tcd = new JSR286ApiTestCaseDetails();
+         TestResult tr26 = tcd.getTestResultFailed(V2URLTESTS_BASEURL_APIRENDERRESURL_WRITEB1);
+         String tcval = portletReq.getParameter("tc");
+         if (tcval.equals("V2URLTests_BaseURL_ApiRenderResurl_writeB1")) {
+            // If execution makes it to here, the test was successful
+            tr26.setTcSuccess(true);
+            tr26.writeTo(writer);
+         }
+      }
+
    }
 
    @Override
@@ -667,17 +717,39 @@ public class URLTests_BaseURL_ApiRenderResurl implements Portlet, ResourceServin
       /* Details: "Method setSecure(boolean): If the input parameter is       */
       /* true, the resulting URL uses a secure connection (HTTPS)"            */
       TestResult tr19 = tcd.getTestResultFailed(V2URLTESTS_BASEURL_APIRENDERRESURL_SETSECURE2);
-      /* TODO: implement test */
-      tr19.appendTcDetail("Not implemented.");
-      tr19.writeTo(writer);
+      try {
+         ResourceURL turl = portletResp.createResourceURL();
+         turl.setParameter("tc", "V2URLTests_BaseURL_ApiRenderResurl_setSecure2");
+         try {
+            turl.setSecure(true);
+         } catch(PortletSecurityException e) {
+            // handle as successful completion, since runtime does not support setting            turl.setParameter("ok", "true");
+         }
+         
+         // add the resource results fetcher to the output stream
+         ResourceLink rl = new ResourceLink("V2URLTests_BaseURL_ApiRenderResurl_setSecure2", turl);
+         rl.writeResourceFetcher(writer);
+      } catch(Exception e) {
+         tr19.appendTcDetail(e.toString());
+         tr19.writeTo(writer);
+      }
 
       /* TestCase: V2URLTests_BaseURL_ApiRenderResurl_toString                */
       /* Details: "Method toString(): Returns a String containing the         */
       /* portlet URL representation to be included in the markup"             */
       TestResult tr20 = tcd.getTestResultFailed(V2URLTESTS_BASEURL_APIRENDERRESURL_TOSTRING);
-      /* TODO: implement test */
-      tr20.appendTcDetail("Not implemented.");
-      tr20.writeTo(writer);
+      try {
+         ResourceURL turl = portletResp.createResourceURL();
+         turl.setParameter("tc", "V2URLTests_BaseURL_ApiRenderResurl_toString");
+         String urlstr = turl.toString();
+         
+         // add the resource results fetcher to the output stream
+         ResourceLink rl = new ResourceLink("V2URLTests_BaseURL_ApiRenderResurl_toString", urlstr);
+         rl.writeResourceFetcher(writer);
+      } catch(Exception e) {
+         tr20.appendTcDetail(e.toString());
+         tr20.writeTo(writer);
+      }
 
       /* TestCase: V2URLTests_BaseURL_ApiRenderResurl_getParameterMap1        */
       /* Details: "Method getParameterMap(): Returns an                       */
@@ -749,20 +821,42 @@ public class URLTests_BaseURL_ApiRenderResurl implements Portlet, ResourceServin
       tr24.writeTo(writer);
 
       /* TestCase: V2URLTests_BaseURL_ApiRenderResurl_writeA1                 */
-      /* Details: "Method write(): Writes the URL to the output stream        */
-      /* through the provided Writer"                                         */
+      /* Details: "Method write(Writer out): Writes the URL to the output     */
+      /* stream through the provided Writer"                                  */
       TestResult tr25 = tcd.getTestResultFailed(V2URLTESTS_BASEURL_APIRENDERRESURL_WRITEA1);
-      /* TODO: implement test */
-      tr25.appendTcDetail("Not implemented.");
-      tr25.writeTo(writer);
+      try {
+         ResourceURL turl = portletResp.createResourceURL();
+         turl.setParameter("tc", "V2URLTests_BaseURL_ApiRenderResurl_writeA1");
+         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_BaseURL_ApiRenderResurl_writeA1", urlstr);
+         rl.writeResourceFetcher(writer);
+      } catch(Exception e) {
+         tr25.appendTcDetail(e.toString());
+         tr25.writeTo(writer);
+      }
 
       /* TestCase: V2URLTests_BaseURL_ApiRenderResurl_writeB1                 */
-      /* Details: "Method write(): Writes the URL to the output stream        */
-      /* through the provided Writer"                                         */
+      /* Details: "Method write(Writer out, boolean escapeXML): Writes the    */
+      /* URL to the output stream through the provided Writer"                */
       TestResult tr26 = tcd.getTestResultFailed(V2URLTESTS_BASEURL_APIRENDERRESURL_WRITEB1);
-      /* TODO: implement test */
-      tr26.appendTcDetail("Not implemented.");
-      tr26.writeTo(writer);
+      try {
+         ResourceURL turl = portletResp.createResourceURL();
+         turl.setParameter("tc", "V2URLTests_BaseURL_ApiRenderResurl_writeB1");
+         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_BaseURL_ApiRenderResurl_writeB1", urlstr);
+         rl.writeResourceFetcher(writer);
+      } catch(Exception e) {
+         tr26.appendTcDetail(e.toString());
+         tr26.writeTo(writer);
+      }
 
       /* TestCase: V2URLTests_BaseURL_ApiRenderResurl_addProperty1            */
       /* Details: "Method addProperty(String, String): A property can be      */

http://git-wip-us.apache.org/repos/asf/portals-pluto/blob/2239b205/portlet-tck_3.0/V2URLTests/src/main/java/javax/portlet/tck/portlets/URLTests_PortletURLGenerationListener_ApiRender.java
----------------------------------------------------------------------
diff --git a/portlet-tck_3.0/V2URLTests/src/main/java/javax/portlet/tck/portlets/URLTests_PortletURLGenerationListener_ApiRender.java b/portlet-tck_3.0/V2URLTests/src/main/java/javax/portlet/tck/portlets/URLTests_PortletURLGenerationListener_ApiRender.java
index df5d823..392fb08 100644
--- a/portlet-tck_3.0/V2URLTests/src/main/java/javax/portlet/tck/portlets/URLTests_PortletURLGenerationListener_ApiRender.java
+++ b/portlet-tck_3.0/V2URLTests/src/main/java/javax/portlet/tck/portlets/URLTests_PortletURLGenerationListener_ApiRender.java
@@ -72,6 +72,96 @@ public class URLTests_PortletURLGenerationListener_ApiRender implements Portlet,
 
       StringWriter writer = new StringWriter();
 
+      // evaluate results for test case V2URLTests_PortletURLGenerationListener_ApiRender_filterActionURL1
+      {
+         JSR286ApiTestCaseDetails tcd = new JSR286ApiTestCaseDetails();
+         TestResult tr1 = tcd.getTestResultFailed(V2URLTESTS_PORTLETURLGENERATIONLISTENER_APIRENDER_FILTERACTIONURL1);
+         String tcval = portletReq.getParameter("tc");
+         if (tcval.equals("V2URLTests_PortletURLGenerationListener_ApiRender_filterActionURL1")) {
+            // Verify that the listener set the parameter as expected
+            String val = portletReq.getParameter("PUGL");
+            boolean ok = (val != null) && val.equals("Action");
+            if (!ok) {
+               tr1.appendTcDetail("Parameter not set by listener. Expected: Action, actual: " + val);
+            }
+            tr1.setTcSuccess(ok);
+            PortletSession ps = portletReq.getPortletSession();
+            ps.setAttribute(RESULT_ATTR_PREFIX + "V2URLTests_PortletURLGenerationListener_ApiRender_filterActionURL1", tr1);
+         }
+      }
+
+      // evaluate results for test case V2URLTests_PortletURLGenerationListener_ApiRender_filterActionURL2
+      {
+         JSR286ApiTestCaseDetails tcd = new JSR286ApiTestCaseDetails();
+         TestResult tr2 = tcd.getTestResultFailed(V2URLTESTS_PORTLETURLGENERATIONLISTENER_APIRENDER_FILTERACTIONURL2);
+         String tcval = portletReq.getParameter("tc");
+         if (tcval.equals("V2URLTests_PortletURLGenerationListener_ApiRender_filterActionURL2")) {
+            // Verify that the listener set the parameter as expected
+            String val = portletReq.getParameter("PUGL");
+            boolean ok = (val != null) && val.equals("Action");
+            if (!ok) {
+               tr2.appendTcDetail("Parameter not set by listener. Expected: Action, actual: " + val);
+            }
+            tr2.setTcSuccess(ok);
+            PortletSession ps = portletReq.getPortletSession();
+            ps.setAttribute(RESULT_ATTR_PREFIX + "V2URLTests_PortletURLGenerationListener_ApiRender_filterActionURL2", tr2);
+         }
+      }
+
+      // evaluate results for test case V2URLTests_PortletURLGenerationListener_ApiRender_filterActionURL3
+      {
+         JSR286ApiTestCaseDetails tcd = new JSR286ApiTestCaseDetails();
+         TestResult tr3 = tcd.getTestResultFailed(V2URLTESTS_PORTLETURLGENERATIONLISTENER_APIRENDER_FILTERACTIONURL3);
+         String tcval = portletReq.getParameter("tc");
+         if (tcval.equals("V2URLTests_PortletURLGenerationListener_ApiRender_filterActionURL3")) {
+            // Verify that the listener set the parameter as expected
+            String val = portletReq.getParameter("PUGL");
+            boolean ok = (val != null) && val.equals("Action");
+            if (!ok) {
+               tr3.appendTcDetail("Parameter not set by listener. Expected: Action, actual: " + val);
+            }
+            tr3.setTcSuccess(ok);
+            PortletSession ps = portletReq.getPortletSession();
+            ps.setAttribute(RESULT_ATTR_PREFIX + "V2URLTests_PortletURLGenerationListener_ApiRender_filterActionURL3", tr3);
+         }
+      }
+
+      // evaluate results for test case V2URLTests_PortletURLGenerationListener_ApiRender_filterActionURL4
+      {
+         JSR286ApiTestCaseDetails tcd = new JSR286ApiTestCaseDetails();
+         TestResult tr4 = tcd.getTestResultFailed(V2URLTESTS_PORTLETURLGENERATIONLISTENER_APIRENDER_FILTERACTIONURL4);
+         String tcval = portletReq.getParameter("tc");
+         if (tcval.equals("V2URLTests_PortletURLGenerationListener_ApiRender_filterActionURL4")) {
+            // Verify that the listener set the parameter as expected
+            String val = portletReq.getParameter("PUGL");
+            boolean ok = (val != null) && val.equals("Action");
+            if (!ok) {
+               tr4.appendTcDetail("Parameter not set by listener. Expected: Action, actual: " + val);
+            }
+            tr4.setTcSuccess(ok);
+            PortletSession ps = portletReq.getPortletSession();
+            ps.setAttribute(RESULT_ATTR_PREFIX + "V2URLTests_PortletURLGenerationListener_ApiRender_filterActionURL4", tr4);
+         }
+      }
+
+      // evaluate results for test case V2URLTests_PortletURLGenerationListener_ApiRender_filterActionURL5
+      {
+         JSR286ApiTestCaseDetails tcd = new JSR286ApiTestCaseDetails();
+         TestResult tr5 = tcd.getTestResultFailed(V2URLTESTS_PORTLETURLGENERATIONLISTENER_APIRENDER_FILTERACTIONURL5);
+         String tcval = portletReq.getParameter("tc");
+         if (tcval.equals("V2URLTests_PortletURLGenerationListener_ApiRender_filterActionURL5")) {
+            // Verify that the listener set the parameter as expected
+            String val = portletReq.getParameter("PUGL");
+            boolean ok = (val != null) && val.equals("Action");
+            if (!ok) {
+               tr5.appendTcDetail("Parameter not set by listener. Expected: Action, actual: " + val);
+            }
+            tr5.setTcSuccess(ok);
+            PortletSession ps = portletReq.getPortletSession();
+            ps.setAttribute(RESULT_ATTR_PREFIX + "V2URLTests_PortletURLGenerationListener_ApiRender_filterActionURL5", tr5);
+         }
+      }
+
    }
 
    @Override
@@ -84,6 +174,108 @@ public class URLTests_PortletURLGenerationListener_ApiRender implements Portlet,
 
       PrintWriter writer = portletResp.getWriter();
 
+      // evaluate results for test case V2URLTests_PortletURLGenerationListener_ApiRender_filterResourceURL1
+      {
+         JSR286ApiTestCaseDetails tcd = new JSR286ApiTestCaseDetails();
+         TestResult tr11 = tcd.getTestResultFailed(V2URLTESTS_PORTLETURLGENERATIONLISTENER_APIRENDER_FILTERRESOURCEURL1);
+         String tcval = portletReq.getParameter("tc");
+         if (tcval.equals("V2URLTests_PortletURLGenerationListener_ApiRender_filterResourceURL1")) {
+            // Verify that the listener set the parameter as expected
+            String val = portletReq.getParameter("PUGL");
+            boolean ok = (val != null) && val.equals("Resource");
+            if (!ok) {
+               tr11.appendTcDetail("Parameter not set by listener. Expected: Resource, actual: " + val);
+            }
+            tr11.setTcSuccess(ok);
+            tr11.writeTo(writer);
+         }
+      }
+
+      // evaluate results for test case V2URLTests_PortletURLGenerationListener_ApiRender_filterResourceURL2
+      {
+         JSR286ApiTestCaseDetails tcd = new JSR286ApiTestCaseDetails();
+         TestResult tr12 = tcd.getTestResultFailed(V2URLTESTS_PORTLETURLGENERATIONLISTENER_APIRENDER_FILTERRESOURCEURL2);
+         String tcval = portletReq.getParameter("tc");
+         if (tcval.equals("V2URLTests_PortletURLGenerationListener_ApiRender_filterResourceURL2")) {
+            // Verify that the listener set the parameter as expected
+            String val = portletReq.getParameter("PUGL");
+            boolean ok = (val != null) && val.equals("Resource");
+            if (!ok) {
+               tr12.appendTcDetail("Parameter not set by listener. Expected: Resource, actual: " + val);
+            }
+            tr12.setTcSuccess(ok);
+            tr12.writeTo(writer);
+         }
+      }
+
+      // evaluate results for test case V2URLTests_PortletURLGenerationListener_ApiRender_filterResourceURL3
+      {
+         JSR286ApiTestCaseDetails tcd = new JSR286ApiTestCaseDetails();
+         TestResult tr13 = tcd.getTestResultFailed(V2URLTESTS_PORTLETURLGENERATIONLISTENER_APIRENDER_FILTERRESOURCEURL3);
+         String tcval = portletReq.getParameter("tc");
+         if (tcval.equals("V2URLTests_PortletURLGenerationListener_ApiRender_filterResourceURL3")) {
+            // Verify that the listener set the parameter as expected
+            String val = portletReq.getParameter("PUGL");
+            boolean ok = (val != null) && val.equals("Resource");
+            if (!ok) {
+               tr13.appendTcDetail("Parameter not set by listener. Expected: Resource, actual: " + val);
+            }
+            tr13.setTcSuccess(ok);
+            tr13.writeTo(writer);
+         }
+      }
+
+      // evaluate results for test case V2URLTests_PortletURLGenerationListener_ApiRender_filterResourceURL4
+      {
+         JSR286ApiTestCaseDetails tcd = new JSR286ApiTestCaseDetails();
+         TestResult tr14 = tcd.getTestResultFailed(V2URLTESTS_PORTLETURLGENERATIONLISTENER_APIRENDER_FILTERRESOURCEURL4);
+         String tcval = portletReq.getParameter("tc");
+         if (tcval.equals("V2URLTests_PortletURLGenerationListener_ApiRender_filterResourceURL4")) {
+            // Verify that the listener set the parameter as expected
+            String val = portletReq.getParameter("PUGL");
+            boolean ok = (val != null) && val.equals("Resource");
+            if (!ok) {
+               tr14.appendTcDetail("Parameter not set by listener. Expected: Resource, actual: " + val);
+            }
+            tr14.setTcSuccess(ok);
+            tr14.writeTo(writer);
+         }
+      }
+
+      // evaluate results for test case V2URLTests_PortletURLGenerationListener_ApiRender_filterResourceURL5
+      {
+         JSR286ApiTestCaseDetails tcd = new JSR286ApiTestCaseDetails();
+         TestResult tr15 = tcd.getTestResultFailed(V2URLTESTS_PORTLETURLGENERATIONLISTENER_APIRENDER_FILTERRESOURCEURL5);
+         String tcval = portletReq.getParameter("tc");
+         if (tcval.equals("V2URLTests_PortletURLGenerationListener_ApiRender_filterResourceURL5")) {
+            // Verify that the listener set the parameter as expected
+            String val = portletReq.getParameter("PUGL");
+            boolean ok = (val != null) && val.equals("Resource");
+            if (!ok) {
+               tr15.appendTcDetail("Parameter not set by listener. Expected: Resource, actual: " + val);
+            }
+            tr15.setTcSuccess(ok);
+            tr15.writeTo(writer);
+         }
+      }
+
+      // evaluate results for test case V2URLTests_PortletURLGenerationListener_ApiRender_filterResourceURL7
+      {
+         JSR286ApiTestCaseDetails tcd = new JSR286ApiTestCaseDetails();
+         TestResult tr16 = tcd.getTestResultFailed(V2URLTESTS_PORTLETURLGENERATIONLISTENER_APIRENDER_FILTERRESOURCEURL7);
+         String tcval = portletReq.getParameter("tc");
+         if (tcval.equals("V2URLTests_PortletURLGenerationListener_ApiRender_filterResourceURL7")) {
+            // Verify that the listener set the parameter as expected
+            String val = portletReq.getParameter("PUGL");
+            boolean ok = (val != null) && val.equals("Resource");
+            if (!ok) {
+               tr16.appendTcDetail("Parameter not set by listener. Expected: Resource, actual: " + val);
+            }
+            tr16.setTcSuccess(ok);
+            tr16.writeTo(writer);
+         }
+      }
+
    }
 
    @Override
@@ -106,129 +298,432 @@ public class URLTests_PortletURLGenerationListener_ApiRender implements Portlet,
       /* Details: "A PortletURLGenerationListener can be configured in the    */
       /* portlet deployment descriptor"                                       */
       TestResult tr0 = tcd.getTestResultFailed(V2URLTESTS_PORTLETURLGENERATIONLISTENER_APIRENDER_CONFIGURATION);
-      /* TODO: implement test */
-      tr0.appendTcDetail("Not implemented.");
+      try {
+         PortletURL turl = portletResp.createRenderURL();
+         turl.setParameter("tc", "V2URLTests_PortletURLGenerationListener_ApiRender_configuration");
+         StringWriter tsw = new StringWriter();
+         turl.write(tsw);
+         String urlstr = tsw.toString();
+         
+         // add the execution link
+         TestLink tl = new TestLink("V2URLTests_PortletURLGenerationListener_ApiRender_configuration", urlstr);
+         tl.writeTo(writer);
+         
+         // evaluate results
+         String tcval = portletReq.getParameter("tc");
+         if (tcval.equals("V2URLTests_PortletURLGenerationListener_ApiRender_configuration")) {
+            // Verify that the listener set the parameter as expected
+            String val = portletReq.getParameter("PUGL");
+            boolean ok = (val != null) && val.equals("Render");
+            if (!ok) {
+               tr0.appendTcDetail("Parameter not set by listener. Expected: Render, actual: " + val);
+            }
+            tr0.setTcSuccess(ok);
+         }
+      } catch(Exception e) {tr0.appendTcDetail(e.toString());}
       tr0.writeTo(writer);
 
       /* TestCase: V2URLTests_PortletURLGenerationListener_ApiRender_filterActionURL1 */
       /* Details: "Method filterActionURL(PortletURL): The                    */
-      /* filterActionURL(PortletURL): method is called before the toString    */
-      /* or write methods are executed on an action URL"                      */
+      /* filterActionURL(PortletURL): method is called before the             */
+      /* toString() method is executed"                                       */
       TestResult tr1 = tcd.getTestResultFailed(V2URLTESTS_PORTLETURLGENERATIONLISTENER_APIRENDER_FILTERACTIONURL1);
-      /* TODO: implement test */
-      tr1.appendTcDetail("Not implemented.");
+      try {
+         PortletURL turl = portletResp.createRenderURL();
+         turl.setParameter("tc", "V2URLTests_PortletURLGenerationListener_ApiRender_filterActionURL1");
+         String urlstr = turl.toString();
+         
+         // add the execution button for an action request
+         TestButton tb = new TestButton("V2URLTests_PortletURLGenerationListener_ApiRender_filterActionURL1", urlstr);
+         tb.writeTo(writer);
+         
+         // display evaluated results
+         String tcval = portletReq.getParameter("tc");
+         if (tcval.equals("V2URLTests_PortletURLGenerationListener_ApiRender_filterActionURL1")) {
+            PortletSession ps = portletReq.getPortletSession();
+            TestResult tmp = (TestResult)ps.getAttribute(RESULT_ATTR_PREFIX + "V2URLTests_PortletURLGenerationListener_ApiRender_filterActionURL1");
+            if (tmp != null) {
+               tr1 = tmp;
+               ps.removeAttribute(RESULT_ATTR_PREFIX + "V2URLTests_PortletURLGenerationListener_ApiRender_filterActionURL1");
+            }
+         }
+      } catch(Exception e) {tr1.appendTcDetail(e.toString());}
       tr1.writeTo(writer);
 
       /* TestCase: V2URLTests_PortletURLGenerationListener_ApiRender_filterActionURL2 */
-      /* Details: "Method filterActionURL(PortletURL): The filterActionURL    */
-      /* method is passed the PortletURL object representing the action       */
-      /* URL"                                                                 */
+      /* Details: "Method filterActionURL(PortletURL): The                    */
+      /* filterActionURL(PortletURL): method is called before the             */
+      /* write(Writer out) method is executed"                                */
       TestResult tr2 = tcd.getTestResultFailed(V2URLTESTS_PORTLETURLGENERATIONLISTENER_APIRENDER_FILTERACTIONURL2);
-      /* TODO: implement test */
-      tr2.appendTcDetail("Not implemented.");
+      try {
+         PortletURL turl = portletResp.createRenderURL();
+         turl.setParameter("tc", "V2URLTests_PortletURLGenerationListener_ApiRender_filterActionURL2");
+         StringWriter tsw = new StringWriter();
+         turl.write(tsw);
+         String urlstr = tsw.toString();
+         
+         // add the execution button for an action request
+         TestButton tb = new TestButton("V2URLTests_PortletURLGenerationListener_ApiRender_filterActionURL2", urlstr);
+         tb.writeTo(writer);
+         
+         // display evaluated results
+         String tcval = portletReq.getParameter("tc");
+         if (tcval.equals("V2URLTests_PortletURLGenerationListener_ApiRender_filterActionURL2")) {
+            PortletSession ps = portletReq.getPortletSession();
+            TestResult tmp = (TestResult)ps.getAttribute(RESULT_ATTR_PREFIX + "V2URLTests_PortletURLGenerationListener_ApiRender_filterActionURL2");
+            if (tmp != null) {
+               tr2 = tmp;
+               ps.removeAttribute(RESULT_ATTR_PREFIX + "V2URLTests_PortletURLGenerationListener_ApiRender_filterActionURL2");
+            }
+         }
+      } catch(Exception e) {tr2.appendTcDetail(e.toString());}
       tr2.writeTo(writer);
 
       /* TestCase: V2URLTests_PortletURLGenerationListener_ApiRender_filterActionURL3 */
-      /* Details: "Method filterActionURL(PortletURL): The input action URL   */
-      /* object can be modified by setting a parameter and the modified URL   */
-      /* object is processed by the PortletURL toString or write method"      */
+      /* Details: "Method filterActionURL(PortletURL): The                    */
+      /* filterActionURL(PortletURL): method is called before the             */
+      /* write(Writer out, boolean escapeXML) method is executed"             */
       TestResult tr3 = tcd.getTestResultFailed(V2URLTESTS_PORTLETURLGENERATIONLISTENER_APIRENDER_FILTERACTIONURL3);
-      /* TODO: implement test */
-      tr3.appendTcDetail("Not implemented.");
+      try {
+         PortletURL turl = portletResp.createRenderURL();
+         turl.setParameter("tc", "V2URLTests_PortletURLGenerationListener_ApiRender_filterActionURL3");
+         StringWriter tsw = new StringWriter();
+         turl.write(tsw, true);
+         String urlstr = tsw.toString();
+         
+         // add the execution button for an action request
+         TestButton tb = new TestButton("V2URLTests_PortletURLGenerationListener_ApiRender_filterActionURL3", urlstr);
+         tb.writeTo(writer);
+         
+         // display evaluated results
+         String tcval = portletReq.getParameter("tc");
+         if (tcval.equals("V2URLTests_PortletURLGenerationListener_ApiRender_filterActionURL3")) {
+            PortletSession ps = portletReq.getPortletSession();
+            TestResult tmp = (TestResult)ps.getAttribute(RESULT_ATTR_PREFIX + "V2URLTests_PortletURLGenerationListener_ApiRender_filterActionURL3");
+            if (tmp != null) {
+               tr3 = tmp;
+               ps.removeAttribute(RESULT_ATTR_PREFIX + "V2URLTests_PortletURLGenerationListener_ApiRender_filterActionURL3");
+            }
+         }
+      } catch(Exception e) {tr3.appendTcDetail(e.toString());}
       tr3.writeTo(writer);
 
       /* TestCase: V2URLTests_PortletURLGenerationListener_ApiRender_filterActionURL4 */
-      /* Details: "Method filterActionURL(PortletURL): The input action URL   */
-      /* object can be modified by setting a property and the modified URL    */
-      /* object is processed by the PortletURL toString or write method"      */
+      /* Details: "Method filterActionURL(PortletURL): The filterActionURL    */
+      /* method is passed the PortletURL object representing the action       */
+      /* URL"                                                                 */
       TestResult tr4 = tcd.getTestResultFailed(V2URLTESTS_PORTLETURLGENERATIONLISTENER_APIRENDER_FILTERACTIONURL4);
-      /* TODO: implement test */
-      tr4.appendTcDetail("Not implemented.");
+      try {
+         PortletURL turl = portletResp.createRenderURL();
+         turl.setParameter("tc", "V2URLTests_PortletURLGenerationListener_ApiRender_filterActionURL4");
+         StringWriter tsw = new StringWriter();
+         turl.write(tsw);
+         String urlstr = tsw.toString();
+         
+         // add the execution button for an action request
+         TestButton tb = new TestButton("V2URLTests_PortletURLGenerationListener_ApiRender_filterActionURL4", urlstr);
+         tb.writeTo(writer);
+         
+         // display evaluated results
+         String tcval = portletReq.getParameter("tc");
+         if (tcval.equals("V2URLTests_PortletURLGenerationListener_ApiRender_filterActionURL4")) {
+            PortletSession ps = portletReq.getPortletSession();
+            TestResult tmp = (TestResult)ps.getAttribute(RESULT_ATTR_PREFIX + "V2URLTests_PortletURLGenerationListener_ApiRender_filterActionURL4");
+            if (tmp != null) {
+               tr4 = tmp;
+               ps.removeAttribute(RESULT_ATTR_PREFIX + "V2URLTests_PortletURLGenerationListener_ApiRender_filterActionURL4");
+            }
+         }
+      } catch(Exception e) {tr4.appendTcDetail(e.toString());}
       tr4.writeTo(writer);
 
-      /* TestCase: V2URLTests_PortletURLGenerationListener_ApiRender_filterRenderURL5 */
-      /* Details: "Method filterRenderURL(PortletURL): The                    */
-      /* filterRenderURL(PortletURL): method is called before the toString    */
-      /* or write methods are executed on an action URL"                      */
-      TestResult tr5 = tcd.getTestResultFailed(V2URLTESTS_PORTLETURLGENERATIONLISTENER_APIRENDER_FILTERRENDERURL5);
-      /* TODO: implement test */
-      tr5.appendTcDetail("Not implemented.");
+      /* TestCase: V2URLTests_PortletURLGenerationListener_ApiRender_filterActionURL5 */
+      /* Details: "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"             */
+      TestResult tr5 = tcd.getTestResultFailed(V2URLTESTS_PORTLETURLGENERATIONLISTENER_APIRENDER_FILTERACTIONURL5);
+      try {
+         PortletURL turl = portletResp.createRenderURL();
+         turl.setParameter("tc", "V2URLTests_PortletURLGenerationListener_ApiRender_filterActionURL5");
+         String urlstr = turl.toString();
+         
+         // add the execution button for an action request
+         TestButton tb = new TestButton("V2URLTests_PortletURLGenerationListener_ApiRender_filterActionURL5", urlstr);
+         tb.writeTo(writer);
+         
+         // display evaluated results
+         String tcval = portletReq.getParameter("tc");
+         if (tcval.equals("V2URLTests_PortletURLGenerationListener_ApiRender_filterActionURL5")) {
+            PortletSession ps = portletReq.getPortletSession();
+            TestResult tmp = (TestResult)ps.getAttribute(RESULT_ATTR_PREFIX + "V2URLTests_PortletURLGenerationListener_ApiRender_filterActionURL5");
+            if (tmp != null) {
+               tr5 = tmp;
+               ps.removeAttribute(RESULT_ATTR_PREFIX + "V2URLTests_PortletURLGenerationListener_ApiRender_filterActionURL5");
+            }
+         }
+      } catch(Exception e) {tr5.appendTcDetail(e.toString());}
       tr5.writeTo(writer);
 
-      /* TestCase: V2URLTests_PortletURLGenerationListener_ApiRender_filterRenderURL6 */
-      /* Details: "Method filterRenderURL(PortletURL): The filterRenderURL    */
-      /* method is passed the PortletURL object representing the action       */
-      /* URL"                                                                 */
-      TestResult tr6 = tcd.getTestResultFailed(V2URLTESTS_PORTLETURLGENERATIONLISTENER_APIRENDER_FILTERRENDERURL6);
-      /* TODO: implement test */
-      tr6.appendTcDetail("Not implemented.");
+      /* TestCase: V2URLTests_PortletURLGenerationListener_ApiRender_filterRenderURL1 */
+      /* Details: "Method filterRenderURL(PortletURL): The                    */
+      /* filterRenderURL(PortletURL): method is called before the             */
+      /* toString() method is executed"                                       */
+      TestResult tr6 = tcd.getTestResultFailed(V2URLTESTS_PORTLETURLGENERATIONLISTENER_APIRENDER_FILTERRENDERURL1);
+      try {
+         PortletURL turl = portletResp.createRenderURL();
+         turl.setParameter("tc", "V2URLTests_PortletURLGenerationListener_ApiRender_filterRenderURL1");
+         String urlstr = turl.toString();
+         
+         // add the execution link
+         TestLink tl = new TestLink("V2URLTests_PortletURLGenerationListener_ApiRender_filterRenderURL1", urlstr);
+         tl.writeTo(writer);
+         
+         // evaluate results
+         String tcval = portletReq.getParameter("tc");
+         if (tcval.equals("V2URLTests_PortletURLGenerationListener_ApiRender_filterRenderURL1")) {
+            // Verify that the listener set the parameter as expected
+            String val = portletReq.getParameter("PUGL");
+            boolean ok = (val != null) && val.equals("Render");
+            if (!ok) {
+               tr6.appendTcDetail("Parameter not set by listener. Expected: Render, actual: " + val);
+            }
+            tr6.setTcSuccess(ok);
+         }
+      } catch(Exception e) {tr6.appendTcDetail(e.toString());}
       tr6.writeTo(writer);
 
-      /* TestCase: V2URLTests_PortletURLGenerationListener_ApiRender_filterRenderURL7 */
-      /* Details: "Method filterRenderURL(PortletURL): The input action URL   */
-      /* object can be modified by setting a parameter and the modified URL   */
-      /* object is processed by the PortletURL toString or write method"      */
-      TestResult tr7 = tcd.getTestResultFailed(V2URLTESTS_PORTLETURLGENERATIONLISTENER_APIRENDER_FILTERRENDERURL7);
-      /* TODO: implement test */
-      tr7.appendTcDetail("Not implemented.");
+      /* TestCase: V2URLTests_PortletURLGenerationListener_ApiRender_filterRenderURL2 */
+      /* Details: "Method filterRenderURL(PortletURL): The                    */
+      /* filterRenderURL(PortletURL): method is called before the             */
+      /* write(Writer out) method is executed"                                */
+      TestResult tr7 = tcd.getTestResultFailed(V2URLTESTS_PORTLETURLGENERATIONLISTENER_APIRENDER_FILTERRENDERURL2);
+      try {
+         PortletURL turl = portletResp.createRenderURL();
+         turl.setParameter("tc", "V2URLTests_PortletURLGenerationListener_ApiRender_filterRenderURL2");
+         StringWriter tsw = new StringWriter();
+         turl.write(tsw);
+         String urlstr = tsw.toString();
+         
+         // add the execution link
+         TestLink tl = new TestLink("V2URLTests_PortletURLGenerationListener_ApiRender_filterRenderURL2", urlstr);
+         tl.writeTo(writer);
+         
+         // evaluate results
+         String tcval = portletReq.getParameter("tc");
+         if (tcval.equals("V2URLTests_PortletURLGenerationListener_ApiRender_filterRenderURL2")) {
+            // Verify that the listener set the parameter as expected
+            String val = portletReq.getParameter("PUGL");
+            boolean ok = (val != null) && val.equals("Render");
+            if (!ok) {
+               tr7.appendTcDetail("Parameter not set by listener. Expected: Render, actual: " + val);
+            }
+            tr7.setTcSuccess(ok);
+         }
+      } catch(Exception e) {tr7.appendTcDetail(e.toString());}
       tr7.writeTo(writer);
 
-      /* TestCase: V2URLTests_PortletURLGenerationListener_ApiRender_filterRenderURL8 */
-      /* Details: "Method filterRenderURL(PortletURL): The input action URL   */
-      /* object can be modified by setting a property and the modified URL    */
-      /* object is processed by the PortletURL toString or write method"      */
-      TestResult tr8 = tcd.getTestResultFailed(V2URLTESTS_PORTLETURLGENERATIONLISTENER_APIRENDER_FILTERRENDERURL8);
-      /* TODO: implement test */
-      tr8.appendTcDetail("Not implemented.");
+      /* TestCase: V2URLTests_PortletURLGenerationListener_ApiRender_filterRenderURL3 */
+      /* Details: "Method filterRenderURL(PortletURL): The                    */
+      /* filterRenderURL(PortletURL): method is called before the             */
+      /* write(Writer out, boolean escapeXML) method is executed"             */
+      TestResult tr8 = tcd.getTestResultFailed(V2URLTESTS_PORTLETURLGENERATIONLISTENER_APIRENDER_FILTERRENDERURL3);
+      try {
+         PortletURL turl = portletResp.createRenderURL();
+         turl.setParameter("tc", "V2URLTests_PortletURLGenerationListener_ApiRender_filterRenderURL3");
+         StringWriter tsw = new StringWriter();
+         turl.write(tsw, true);
+         String urlstr = tsw.toString();
+         
+         // add the execution link
+         TestLink tl = new TestLink("V2URLTests_PortletURLGenerationListener_ApiRender_filterRenderURL3", urlstr);
+         tl.writeTo(writer);
+         
+         // evaluate results
+         String tcval = portletReq.getParameter("tc");
+         if (tcval.equals("V2URLTests_PortletURLGenerationListener_ApiRender_filterRenderURL3")) {
+            // Verify that the listener set the parameter as expected
+            String val = portletReq.getParameter("PUGL");
+            boolean ok = (val != null) && val.equals("Render");
+            if (!ok) {
+               tr8.appendTcDetail("Parameter not set by listener. Expected: Render, actual: " + val);
+            }
+            tr8.setTcSuccess(ok);
+         }
+      } catch(Exception e) {tr8.appendTcDetail(e.toString());}
       tr8.writeTo(writer);
 
+      /* TestCase: V2URLTests_PortletURLGenerationListener_ApiRender_filterRenderURL4 */
+      /* Details: "Method filterRenderURL(PortletURL): The filterRenderURL    */
+      /* method is passed the PortletURL object representing the action       */
+      /* URL"                                                                 */
+      TestResult tr9 = tcd.getTestResultFailed(V2URLTESTS_PORTLETURLGENERATIONLISTENER_APIRENDER_FILTERRENDERURL4);
+      try {
+         PortletURL turl = portletResp.createRenderURL();
+         turl.setParameter("tc", "V2URLTests_PortletURLGenerationListener_ApiRender_filterRenderURL4");
+         StringWriter tsw = new StringWriter();
+         turl.write(tsw);
+         String urlstr = tsw.toString();
+         
+         // add the execution link
+         TestLink tl = new TestLink("V2URLTests_PortletURLGenerationListener_ApiRender_filterRenderURL4", urlstr);
+         tl.writeTo(writer);
+         
+         // evaluate results
+         String tcval = portletReq.getParameter("tc");
+         if (tcval.equals("V2URLTests_PortletURLGenerationListener_ApiRender_filterRenderURL4")) {
+            // Verify that the listener set the parameter as expected
+            String val = portletReq.getParameter("PUGL");
+            boolean ok = (val != null) && val.equals("Render");
+            if (!ok) {
+               tr9.appendTcDetail("Parameter not set by listener. Expected: Render, actual: " + val);
+            }
+            tr9.setTcSuccess(ok);
+         }
+      } catch(Exception e) {tr9.appendTcDetail(e.toString());}
+      tr9.writeTo(writer);
+
+      /* TestCase: V2URLTests_PortletURLGenerationListener_ApiRender_filterRenderURL5 */
+      /* Details: "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"             */
+      TestResult tr10 = tcd.getTestResultFailed(V2URLTESTS_PORTLETURLGENERATIONLISTENER_APIRENDER_FILTERRENDERURL5);
+      try {
+         PortletURL turl = portletResp.createRenderURL();
+         turl.setParameter("tc", "V2URLTests_PortletURLGenerationListener_ApiRender_filterRenderURL5");
+         String urlstr = turl.toString();
+         
+         // add the execution link
+         TestLink tl = new TestLink("V2URLTests_PortletURLGenerationListener_ApiRender_filterRenderURL5", urlstr);
+         tl.writeTo(writer);
+         
+         // evaluate results
+         String tcval = portletReq.getParameter("tc");
+         if (tcval.equals("V2URLTests_PortletURLGenerationListener_ApiRender_filterRenderURL5")) {
+            // Verify that the listener set the parameter as expected
+            String val = portletReq.getParameter("PUGL");
+            boolean ok = (val != null) && val.equals("Render");
+            if (!ok) {
+               tr10.appendTcDetail("Parameter not set by listener. Expected: Render, actual: " + val);
+            }
+            tr10.setTcSuccess(ok);
+         }
+      } catch(Exception e) {tr10.appendTcDetail(e.toString());}
+      tr10.writeTo(writer);
+
       /* TestCase: V2URLTests_PortletURLGenerationListener_ApiRender_filterResourceURL1 */
       /* Details: "Method filterResourceURL(ResourceURL): The                 */
       /* filterResourceURL(PortletURL): method is called before the           */
-      /* toString or write methods are executed on an action URL"             */
-      TestResult tr9 = tcd.getTestResultFailed(V2URLTESTS_PORTLETURLGENERATIONLISTENER_APIRENDER_FILTERRESOURCEURL1);
-      /* TODO: implement test */
-      tr9.appendTcDetail("Not implemented.");
-      tr9.writeTo(writer);
+      /* toString() method is executed"                                       */
+      TestResult tr11 = tcd.getTestResultFailed(V2URLTESTS_PORTLETURLGENERATIONLISTENER_APIRENDER_FILTERRESOURCEURL1);
+      try {
+         PortletURL turl = portletResp.createRenderURL();
+         turl.setParameter("tc", "V2URLTests_PortletURLGenerationListener_ApiRender_filterResourceURL1");
+         String urlstr = turl.toString();
+         
+         // add the resource results fetcher to the output stream
+         ResourceLink rl = new ResourceLink("V2URLTests_PortletURLGenerationListener_ApiRender_filterResourceURL1", urlstr);
+         rl.writeResourceFetcher(writer);
+      } catch(Exception e) {
+         tr11.appendTcDetail(e.toString());
+         tr11.writeTo(writer);
+      }
 
       /* TestCase: V2URLTests_PortletURLGenerationListener_ApiRender_filterResourceURL2 */
       /* Details: "Method filterResourceURL(ResourceURL): The                 */
-      /* filterResourceURL method is passed the PortletURL object             */
-      /* representing the action URL"                                         */
-      TestResult tr10 = tcd.getTestResultFailed(V2URLTESTS_PORTLETURLGENERATIONLISTENER_APIRENDER_FILTERRESOURCEURL2);
-      /* TODO: implement test */
-      tr10.appendTcDetail("Not implemented.");
-      tr10.writeTo(writer);
+      /* filterResourceURL(PortletURL): method is called before the           */
+      /* write(Writer out) method is executed"                                */
+      TestResult tr12 = tcd.getTestResultFailed(V2URLTESTS_PORTLETURLGENERATIONLISTENER_APIRENDER_FILTERRESOURCEURL2);
+      try {
+         PortletURL turl = portletResp.createRenderURL();
+         turl.setParameter("tc", "V2URLTests_PortletURLGenerationListener_ApiRender_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_ApiRender_filterResourceURL2", urlstr);
+         rl.writeResourceFetcher(writer);
+      } catch(Exception e) {
+         tr12.appendTcDetail(e.toString());
+         tr12.writeTo(writer);
+      }
 
       /* TestCase: V2URLTests_PortletURLGenerationListener_ApiRender_filterResourceURL3 */
-      /* Details: "Method filterResourceURL(ResourceURL): The input action    */
-      /* URL object can be modified by setting a parameter and the modified   */
-      /* URL object is processed by the PortletURL toString or write          */
-      /* method"                                                              */
-      TestResult tr11 = tcd.getTestResultFailed(V2URLTESTS_PORTLETURLGENERATIONLISTENER_APIRENDER_FILTERRESOURCEURL3);
-      /* TODO: implement test */
-      tr11.appendTcDetail("Not implemented.");
-      tr11.writeTo(writer);
+      /* Details: "Method filterResourceURL(ResourceURL): The                 */
+      /* filterResourceURL(PortletURL): method is called before the           */
+      /* write(Writer out, boolean escapeXML) method is executed"             */
+      TestResult tr13 = tcd.getTestResultFailed(V2URLTESTS_PORTLETURLGENERATIONLISTENER_APIRENDER_FILTERRESOURCEURL3);
+      try {
+         PortletURL turl = portletResp.createRenderURL();
+         turl.setParameter("tc", "V2URLTests_PortletURLGenerationListener_ApiRender_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_ApiRender_filterResourceURL3", urlstr);
+         rl.writeResourceFetcher(writer);
+      } catch(Exception e) {
+         tr13.appendTcDetail(e.toString());
+         tr13.writeTo(writer);
+      }
 
       /* TestCase: V2URLTests_PortletURLGenerationListener_ApiRender_filterResourceURL4 */
-      /* Details: "Method filterResourceURL(ResourceURL): The input action    */
-      /* URL object can be modified by setting a property and the modified    */
-      /* URL object is processed by the PortletURL toString or write          */
-      /* method"                                                              */
-      TestResult tr12 = tcd.getTestResultFailed(V2URLTESTS_PORTLETURLGENERATIONLISTENER_APIRENDER_FILTERRESOURCEURL4);
-      /* TODO: implement test */
-      tr12.appendTcDetail("Not implemented.");
-      tr12.writeTo(writer);
+      /* Details: "Method filterResourceURL(ResourceURL): The                 */
+      /* filterResourceURL method is passed the PortletURL object             */
+      /* representing the action URL"                                         */
+      TestResult tr14 = tcd.getTestResultFailed(V2URLTESTS_PORTLETURLGENERATIONLISTENER_APIRENDER_FILTERRESOURCEURL4);
+      try {
+         PortletURL turl = portletResp.createRenderURL();
+         turl.setParameter("tc", "V2URLTests_PortletURLGenerationListener_ApiRender_filterResourceURL4");
+         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_ApiRender_filterResourceURL4", urlstr);
+         rl.writeResourceFetcher(writer);
+      } catch(Exception e) {
+         tr14.appendTcDetail(e.toString());
+         tr14.writeTo(writer);
+      }
 
       /* TestCase: V2URLTests_PortletURLGenerationListener_ApiRender_filterResourceURL5 */
-      /* Details: "Method filterResourceURL(ResourceURL): The input action    */
-      /* URL object can be modified by setting the resource ID and the        */
-      /* modified URL object is processed by the PortletURL toString or       */
-      /* write method"                                                        */
-      TestResult tr13 = tcd.getTestResultFailed(V2URLTESTS_PORTLETURLGENERATIONLISTENER_APIRENDER_FILTERRESOURCEURL5);
-      /* TODO: implement test */
-      tr13.appendTcDetail("Not implemented.");
-      tr13.writeTo(writer);
+      /* Details: "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"      */
+      TestResult tr15 = tcd.getTestResultFailed(V2URLTESTS_PORTLETURLGENERATIONLISTENER_APIRENDER_FILTERRESOURCEURL5);
+      try {
+         PortletURL turl = portletResp.createRenderURL();
+         turl.setParameter("tc", "V2URLTests_PortletURLGenerationListener_ApiRender_filterResourceURL5");
+         String urlstr = turl.toString();
+         
+         // add the resource results fetcher to the output stream
+         ResourceLink rl = new ResourceLink("V2URLTests_PortletURLGenerationListener_ApiRender_filterResourceURL5", urlstr);
+         rl.writeResourceFetcher(writer);
+      } catch(Exception e) {
+         tr15.appendTcDetail(e.toString());
+         tr15.writeTo(writer);
+      }
+
+      /* TestCase: V2URLTests_PortletURLGenerationListener_ApiRender_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 PortletURL toString or write          */
+      /* method"                                                              */
+      TestResult tr16 = tcd.getTestResultFailed(V2URLTESTS_PORTLETURLGENERATIONLISTENER_APIRENDER_FILTERRESOURCEURL7);
+      try {
+         PortletURL turl = portletResp.createRenderURL();
+         turl.setParameter("tc", "V2URLTests_PortletURLGenerationListener_ApiRender_filterResourceURL7");
+         String urlstr = turl.toString();
+         
+         // add the resource results fetcher to the output stream
+         ResourceLink rl = new ResourceLink("V2URLTests_PortletURLGenerationListener_ApiRender_filterResourceURL7", urlstr);
+         rl.writeResourceFetcher(writer);
+      } catch(Exception e) {
+         tr16.appendTcDetail(e.toString());
+         tr16.writeTo(writer);
+      }
 
    }