You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@beehive.apache.org by ri...@apache.org on 2005/02/27 21:25:50 UTC

svn commit: r155637 - in incubator/beehive/trunk/netui/test/webapps/drt: coreWeb/WEB-INF/src/mockportal/ coreWeb/mockportal/ coreWeb/mockportal/scoping2/ testRecorder/config/ testRecorder/tests/

Author: rich
Date: Sun Feb 27 12:25:47 2005
New Revision: 155637

URL: http://svn.apache.org/viewcvs?view=rev&rev=155637
Log:
Resolution for http://issues.apache.org/jira/browse/BEEHIVE-356 : Patch for a new coreWeb MockPortal BVT

This is a contributed test from Nathan Jantz.  Thanks Nathan!

DRT/BVT: netui (WinXP)
BB: self (linux)


Added:
    incubator/beehive/trunk/netui/test/webapps/drt/coreWeb/mockportal/scoping2/
    incubator/beehive/trunk/netui/test/webapps/drt/coreWeb/mockportal/scoping2/ScopedPortal.jsp   (with props)
    incubator/beehive/trunk/netui/test/webapps/drt/coreWeb/mockportal/scoping2/ScopingController.jpf   (with props)
    incubator/beehive/trunk/netui/test/webapps/drt/coreWeb/mockportal/scoping2/index.jsp   (with props)
    incubator/beehive/trunk/netui/test/webapps/drt/coreWeb/mockportal/scoping2/results.jsp   (with props)
    incubator/beehive/trunk/netui/test/webapps/drt/coreWeb/mockportal/scoping2/window1.jsp   (with props)
    incubator/beehive/trunk/netui/test/webapps/drt/coreWeb/mockportal/scoping2/window1Results.jsp   (with props)
    incubator/beehive/trunk/netui/test/webapps/drt/testRecorder/tests/MockPortalScopingTest2.xml   (with props)
Modified:
    incubator/beehive/trunk/netui/test/webapps/drt/coreWeb/WEB-INF/src/mockportal/MockPortletTag.java
    incubator/beehive/trunk/netui/test/webapps/drt/coreWeb/mockportal/index.jsp
    incubator/beehive/trunk/netui/test/webapps/drt/testRecorder/config/testRecorder-tests.xml

Modified: incubator/beehive/trunk/netui/test/webapps/drt/coreWeb/WEB-INF/src/mockportal/MockPortletTag.java
URL: http://svn.apache.org/viewcvs/incubator/beehive/trunk/netui/test/webapps/drt/coreWeb/WEB-INF/src/mockportal/MockPortletTag.java?view=diff&r1=155636&r2=155637
==============================================================================
--- incubator/beehive/trunk/netui/test/webapps/drt/coreWeb/WEB-INF/src/mockportal/MockPortletTag.java (original)
+++ incubator/beehive/trunk/netui/test/webapps/drt/coreWeb/WEB-INF/src/mockportal/MockPortletTag.java Sun Feb 27 12:25:47 2005
@@ -32,11 +32,13 @@
 import javax.servlet.jsp.JspException;
 import javax.servlet.http.HttpServletRequest;
 import javax.servlet.http.HttpServletResponse;
+import javax.servlet.http.HttpSession;
 import javax.servlet.ServletContext;
 import javax.servlet.ServletException;
 import java.io.PrintWriter;
 import java.io.IOException;
 import java.io.StringWriter;
+import java.util.Enumeration;
 
 public class MockPortletTag extends BodyTagSupport
 {
@@ -45,8 +47,27 @@
     private String _strutsModulePath;
     private String _listenTo;
     private boolean _verbose;
+
+    private static final String CURRENT_URL_ATTR_PREFIX = "mockportal.currentURL:";
     
 
+    /**
+     * Remove all session-scoped MockPortal information.  Used to clean up when running automated tests.
+     */ 
+    public static void reset( HttpServletRequest request )
+    {
+        HttpSession session = request.getSession( false );
+        
+        if ( session != null )
+        {
+            for ( Enumeration e = session.getAttributeNames(); e.hasMoreElements(); )
+            {
+                String attrName = ( String ) e.nextElement();
+                if ( attrName.startsWith( CURRENT_URL_ATTR_PREFIX ) ) session.removeAttribute( attrName );
+            }
+        }
+    }
+    
     public int doStartTag() throws JspException
     {
         try
@@ -63,7 +84,7 @@
             //
             // We're having each portlet keep track of its current URL in the session.  'Cause it was easy.
             //
-            String currentURL = ( String ) outerRequest.getSession().getAttribute( _portletID + "CurrentURL" );
+            String currentURL = ( String ) outerRequest.getSession().getAttribute( CURRENT_URL_ATTR_PREFIX + _portletID );
 
             //
             // Override the request/response (etc.) with scoped versions.  Keep track of these scoped
@@ -188,7 +209,7 @@
                 scopedRequest.restoreAttributes();
             }
 
-            outerRequest.getSession().setAttribute( _portletID + "CurrentURL", currentURL );
+            outerRequest.getSession().setAttribute( CURRENT_URL_ATTR_PREFIX + _portletID , currentURL );
 
             ActionResolver currentActionResolver = PageFlowUtils.getCurrentActionResolver( scopedRequest ) ;
             String type = ( currentActionResolver != null ? currentActionResolver.getClass().getName() : "null" );

Modified: incubator/beehive/trunk/netui/test/webapps/drt/coreWeb/mockportal/index.jsp
URL: http://svn.apache.org/viewcvs/incubator/beehive/trunk/netui/test/webapps/drt/coreWeb/mockportal/index.jsp?view=diff&r1=155636&r2=155637
==============================================================================
--- incubator/beehive/trunk/netui/test/webapps/drt/coreWeb/mockportal/index.jsp (original)
+++ incubator/beehive/trunk/netui/test/webapps/drt/coreWeb/mockportal/index.jsp Sun Feb 27 12:25:47 2005
@@ -15,6 +15,7 @@
 <netui:anchor href="MockPortal.jsp">basic MockPortal test</netui:anchor><br>
 <netui:anchor href="listenTo/ListenToPortal.jsp">tests "listenTo" and exception-handling</netui:anchor><br>
 <netui:anchor href="scoping/ScopingController.jpf">tests "jpfScopeID" parameter in portlets</netui:anchor><br>
+<netui:anchor href="scoping2/ScopingController.jpf">tests "jpfScopeID" parameter in portlets using netui:anchor tag to launch popup</netui:anchor><br>
 
 </body>
 </html>

Added: incubator/beehive/trunk/netui/test/webapps/drt/coreWeb/mockportal/scoping2/ScopedPortal.jsp
URL: http://svn.apache.org/viewcvs/incubator/beehive/trunk/netui/test/webapps/drt/coreWeb/mockportal/scoping2/ScopedPortal.jsp?view=auto&rev=155637
==============================================================================
--- incubator/beehive/trunk/netui/test/webapps/drt/coreWeb/mockportal/scoping2/ScopedPortal.jsp (added)
+++ incubator/beehive/trunk/netui/test/webapps/drt/coreWeb/mockportal/scoping2/ScopedPortal.jsp Sun Feb 27 12:25:47 2005
@@ -0,0 +1,18 @@
+<%@ page contentType="text/html;charset=UTF-8" language="java" %>
+<%@ taglib uri="mockportal.tld" prefix="mp" %>
+
+<html>
+<head>
+<title>Scoped Portal (/mockportal/scoping2)</title>
+</head>
+
+<h3>Scoped Portal (/mockportal/scoping2)</h3>
+<body>
+
+    <mp:mockPortal>
+        <mp:mockPortlet portletID="portletA2" pageFlowURI="/mockportal/scoping2/ScopingtController.jpf" verbose="false" />
+        <mp:mockPortlet portletID="portletB2" pageFlowURI="/mockportal/scoping2/ScopingController.jpf" verbose="false" />
+    </mp:mockPortal>
+
+</body>
+</html>

Propchange: incubator/beehive/trunk/netui/test/webapps/drt/coreWeb/mockportal/scoping2/ScopedPortal.jsp
------------------------------------------------------------------------------
    svn:eol-style = native

Added: incubator/beehive/trunk/netui/test/webapps/drt/coreWeb/mockportal/scoping2/ScopingController.jpf
URL: http://svn.apache.org/viewcvs/incubator/beehive/trunk/netui/test/webapps/drt/coreWeb/mockportal/scoping2/ScopingController.jpf?view=auto&rev=155637
==============================================================================
--- incubator/beehive/trunk/netui/test/webapps/drt/coreWeb/mockportal/scoping2/ScopingController.jpf (added)
+++ incubator/beehive/trunk/netui/test/webapps/drt/coreWeb/mockportal/scoping2/ScopingController.jpf Sun Feb 27 12:25:47 2005
@@ -0,0 +1,55 @@
+/*
+ * Copyright 2004 The Apache Software Foundation.
+ *
+ * Licensed 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.
+ *
+ * $Header:$
+ */
+package mockportal.scoping2;
+import org.apache.beehive.netui.pageflow.Forward;
+import org.apache.beehive.netui.pageflow.PageFlowController;
+import org.apache.beehive.netui.pageflow.annotations.Jpf;
+
+import java.io.IOException;
+
+@Jpf.Controller(
+    simpleActions={
+        @Jpf.SimpleAction(name="begin", path="index.jsp"),
+        @Jpf.SimpleAction(name="submit", path="results.jsp"),
+        @Jpf.SimpleAction(name="launchPopUp", path="window1.jsp"),
+        @Jpf.SimpleAction(name="showResults", path="window1Results.jsp")
+    }
+)
+public class ScopingController extends PageFlowController
+{
+    private String _data;
+
+    public String getData()
+    {
+        return _data;
+    }
+
+    public void setData( String data )
+    {
+        _data = data;
+    }
+
+    @Jpf.Action
+    public Forward resetMockPortal()
+        throws IOException
+    {
+        mockportal.MockPortletTag.reset( getRequest() );
+        getResponse().getWriter().println( "OK -- reset MockPortal" );
+        return null;
+    }
+}

Propchange: incubator/beehive/trunk/netui/test/webapps/drt/coreWeb/mockportal/scoping2/ScopingController.jpf
------------------------------------------------------------------------------
    svn:eol-style = native

Added: incubator/beehive/trunk/netui/test/webapps/drt/coreWeb/mockportal/scoping2/index.jsp
URL: http://svn.apache.org/viewcvs/incubator/beehive/trunk/netui/test/webapps/drt/coreWeb/mockportal/scoping2/index.jsp?view=auto&rev=155637
==============================================================================
--- incubator/beehive/trunk/netui/test/webapps/drt/coreWeb/mockportal/scoping2/index.jsp (added)
+++ incubator/beehive/trunk/netui/test/webapps/drt/coreWeb/mockportal/scoping2/index.jsp Sun Feb 27 12:25:47 2005
@@ -0,0 +1,19 @@
+<%@ page language="java" contentType="text/html;charset=UTF-8"%>
+<%@ taglib uri="http://beehive.apache.org/netui/tags-html-1.0" prefix="netui" %>
+
+<netui:html>
+    <head>
+        <title>
+            Portal Scoping Test 2
+        </title>
+    </head>
+    <body>
+        <h3>Portal Scoping Test 2</h3>
+        
+        <netui:form action="submit">
+            data: <netui:textBox tagId="tb" dataSource="pageFlow.data"/>
+            <netui:button value="submit"/>
+        </netui:form>
+        <p>
+    </body>
+</netui:html>

Propchange: incubator/beehive/trunk/netui/test/webapps/drt/coreWeb/mockportal/scoping2/index.jsp
------------------------------------------------------------------------------
    svn:eol-style = native

Added: incubator/beehive/trunk/netui/test/webapps/drt/coreWeb/mockportal/scoping2/results.jsp
URL: http://svn.apache.org/viewcvs/incubator/beehive/trunk/netui/test/webapps/drt/coreWeb/mockportal/scoping2/results.jsp?view=auto&rev=155637
==============================================================================
--- incubator/beehive/trunk/netui/test/webapps/drt/coreWeb/mockportal/scoping2/results.jsp (added)
+++ incubator/beehive/trunk/netui/test/webapps/drt/coreWeb/mockportal/scoping2/results.jsp Sun Feb 27 12:25:47 2005
@@ -0,0 +1,25 @@
+<%@ page language="java" contentType="text/html;charset=UTF-8"%>
+<%@ taglib uri="http://beehive.apache.org/netui/tags-html-1.0" prefix="netui" %>
+
+<netui:html>
+    <head>
+        <title>
+            Portal Scoping Test 2
+        </title>
+    </head>
+    <body>
+        <h3>Portal Scoping Test 2</h3>
+
+        data: <b><netui:span value="${pageFlow.data}"/></b>
+        <br/>
+        <netui:anchor action="launchPopUp" target="portletA2" targetScope="portletA2">
+            launch window in 'portletA2' scope
+        </netui:anchor>
+        <br/>
+        <netui:anchor action="submit">
+            refresh results
+        </netui:anchor>
+        <br/>
+        <netui:anchor action="begin">go back</netui:anchor>
+    </body>
+</netui:html>

Propchange: incubator/beehive/trunk/netui/test/webapps/drt/coreWeb/mockportal/scoping2/results.jsp
------------------------------------------------------------------------------
    svn:eol-style = native

Added: incubator/beehive/trunk/netui/test/webapps/drt/coreWeb/mockportal/scoping2/window1.jsp
URL: http://svn.apache.org/viewcvs/incubator/beehive/trunk/netui/test/webapps/drt/coreWeb/mockportal/scoping2/window1.jsp?view=auto&rev=155637
==============================================================================
--- incubator/beehive/trunk/netui/test/webapps/drt/coreWeb/mockportal/scoping2/window1.jsp (added)
+++ incubator/beehive/trunk/netui/test/webapps/drt/coreWeb/mockportal/scoping2/window1.jsp Sun Feb 27 12:25:47 2005
@@ -0,0 +1,18 @@
+<%@ page language="java" contentType="text/html;charset=UTF-8"%>
+<%@ taglib uri="http://beehive.apache.org/netui/tags-html-1.0" prefix="netui" %>
+
+<netui:html>
+    <head>
+        <title>
+            Portal Scoping Test 2
+        </title>
+    </head>
+    <body>
+        data: <b><netui:span value="${pageFlow.data}"/></b>
+        <p>
+        <netui:form action="showResults">
+            new data: <netui:textBox tagId="tb" dataSource="pageFlow.data"/>
+            <netui:button value="submit"/>
+        </netui:form>
+    </body>
+</netui:html>

Propchange: incubator/beehive/trunk/netui/test/webapps/drt/coreWeb/mockportal/scoping2/window1.jsp
------------------------------------------------------------------------------
    svn:eol-style = native

Added: incubator/beehive/trunk/netui/test/webapps/drt/coreWeb/mockportal/scoping2/window1Results.jsp
URL: http://svn.apache.org/viewcvs/incubator/beehive/trunk/netui/test/webapps/drt/coreWeb/mockportal/scoping2/window1Results.jsp?view=auto&rev=155637
==============================================================================
--- incubator/beehive/trunk/netui/test/webapps/drt/coreWeb/mockportal/scoping2/window1Results.jsp (added)
+++ incubator/beehive/trunk/netui/test/webapps/drt/coreWeb/mockportal/scoping2/window1Results.jsp Sun Feb 27 12:25:47 2005
@@ -0,0 +1,15 @@
+<%@ page language="java" contentType="text/html;charset=UTF-8"%>
+<%@ taglib uri="http://beehive.apache.org/netui/tags-html-1.0" prefix="netui" %>
+
+<netui:html>
+    <head>
+        <title>
+            Portal Scoping Test 2
+        </title>
+    </head>
+    <body>
+        data: <b><netui:span value="${pageFlow.data}"/></b>
+        <p>
+        <a href="javascript:window.close();">close window</a>
+    </body>
+</netui:html>
\ No newline at end of file

Propchange: incubator/beehive/trunk/netui/test/webapps/drt/coreWeb/mockportal/scoping2/window1Results.jsp
------------------------------------------------------------------------------
    svn:eol-style = native

Modified: incubator/beehive/trunk/netui/test/webapps/drt/testRecorder/config/testRecorder-tests.xml
URL: http://svn.apache.org/viewcvs/incubator/beehive/trunk/netui/test/webapps/drt/testRecorder/config/testRecorder-tests.xml?view=diff&r1=155636&r2=155637
==============================================================================
--- incubator/beehive/trunk/netui/test/webapps/drt/testRecorder/config/testRecorder-tests.xml (original)
+++ incubator/beehive/trunk/netui/test/webapps/drt/testRecorder/config/testRecorder-tests.xml Sun Feb 27 12:25:47 2005
@@ -4462,6 +4462,20 @@
          </features>
       </test>
       <test>
+         <name>MockPortalScopingTest2</name>
+         <description>Test of targeting a particular portlet scope from a popup window. </description>
+         <webapp>coreWeb</webapp>
+         <categories>
+            <category>bvt</category>
+            <category>bvt.struts11</category>
+            <category>mockPortal</category>
+         </categories>
+         <features>
+            <feature>Popup</feature>
+            <feature>Scoping</feature>
+         </features>
+      </test>
+      <test>
          <name>ModuleConfigLocator</name>
          <description>Test DynamicSubappActionServlet.ModuleConfigLocators, which allow the user to specify alternate locations for auto-registered Struts config files.</description>
          <webapp>coreWeb</webapp>

Added: incubator/beehive/trunk/netui/test/webapps/drt/testRecorder/tests/MockPortalScopingTest2.xml
URL: http://svn.apache.org/viewcvs/incubator/beehive/trunk/netui/test/webapps/drt/testRecorder/tests/MockPortalScopingTest2.xml?view=auto&rev=155637
==============================================================================
--- incubator/beehive/trunk/netui/test/webapps/drt/testRecorder/tests/MockPortalScopingTest2.xml (added)
+++ incubator/beehive/trunk/netui/test/webapps/drt/testRecorder/tests/MockPortalScopingTest2.xml Sun Feb 27 12:25:47 2005
@@ -0,0 +1,1143 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<ses:recorderSession xmlns:ses="http://beehive.apache.org/netui/tools/testrecorder/2004/session">
+   <ses:sessionName>MockPortalScopingTest2</ses:sessionName>
+   <ses:tester>rich</ses:tester>
+   <ses:startDate>27 Feb 2005, 12:30:53.882 PM MST</ses:startDate>
+   <ses:description>Test of targeting a particular portlet scope from a popup window.</ses:description>
+   <ses:tests>
+      <ses:test>
+         <ses:testNumber>1</ses:testNumber>
+         <ses:request>
+            <ses:protocol>HTTP</ses:protocol>
+            <ses:protocolVersion>1.1</ses:protocolVersion>
+            <ses:host>localhost</ses:host>
+            <ses:port>8080</ses:port>
+            <ses:uri>/coreWeb/mockportal/scoping2/ScopedPortal.jsp</ses:uri>
+            <ses:method>GET</ses:method>
+            <ses:parameters/>
+            <ses:cookies>
+               <ses:cookie>
+                  <ses:name>JSESSIONID</ses:name>
+                  <ses:value>3163E06D4A52E31CF88A568443A5C412</ses:value>
+               </ses:cookie>
+            </ses:cookies>
+            <ses:headers>
+               <ses:header>
+                  <ses:name>accept</ses:name>
+                  <ses:value>text/xml,application/xml,application/xhtml+xml,text/html;q=0.9,text/plain;q=0.8,image/png,*/*;q=0.5</ses:value>
+               </ses:header>
+               <ses:header>
+                  <ses:name>accept-charset</ses:name>
+                  <ses:value>ISO-8859-1,utf-8;q=0.7,*;q=0.7</ses:value>
+               </ses:header>
+               <ses:header>
+                  <ses:name>accept-encoding</ses:name>
+                  <ses:value>gzip,deflate</ses:value>
+               </ses:header>
+               <ses:header>
+                  <ses:name>accept-language</ses:name>
+                  <ses:value>en-us,en;q=0.5</ses:value>
+               </ses:header>
+               <ses:header>
+                  <ses:name>connection</ses:name>
+                  <ses:value>keep-alive</ses:value>
+               </ses:header>
+               <ses:header>
+                  <ses:name>cookie</ses:name>
+                  <ses:value>JSESSIONID=3163E06D4A52E31CF88A568443A5C412</ses:value>
+               </ses:header>
+               <ses:header>
+                  <ses:name>host</ses:name>
+                  <ses:value>localhost:8080</ses:value>
+               </ses:header>
+               <ses:header>
+                  <ses:name>keep-alive</ses:name>
+                  <ses:value>300</ses:value>
+               </ses:header>
+               <ses:header>
+                  <ses:name>user-agent</ses:name>
+                  <ses:value>Mozilla/5.0 (Windows; U; Windows NT 5.1; en-US; rv:1.7.5) Gecko/20041107 Firefox/1.0</ses:value>
+               </ses:header>
+            </ses:headers>
+         </ses:request>
+         <ses:response>
+            <ses:statusCode>200</ses:statusCode>
+            <ses:reason/>
+            <ses:responseBody><![CDATA[<html>
+<head>
+<title>Scoped Portal (/mockportal/scoping2)</title>
+</head>
+
+<h3>Scoped Portal (/mockportal/scoping2)</h3>
+<body>
+
+    <table border="1" cellspacing="1" cellpadding="5" width="100%">
+<tr bordercolor="White"><td bgcolor="#EEEEFF">
+<b>Portlet portletA2</b></td></tr><tr bordercolor="White"><td bgcolor="#EEEEFF">
+<font color="green">Action was: <b>begin</b></font><br>
+<font color="green">Action result URI: <b>/mockportal/scoping2/index.jsp</b></font><br>
+<font color="green">Action result isRedirect: <b>false</b></font><br>
+<font color="black">PageFlow/StrutsModule type: <b>mockportal.scoping2.ScopingController</b></font><br>
+<font color="black">Current URL: <b>/mockportal/scoping2/index.jsp</b></font><br>
+</td></tr>
+<tr><td>
+
+
+
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"
+	"http://www.w3.org/TR/html4/loose.dtd">
+<html lang="en">
+
+    <head>
+        <title>
+            Portal Scoping Test 2
+        </title>
+    </head>
+    <body>
+        <h3>Portal Scoping Test 2</h3>
+        
+        <form action="/coreWeb/mockportal/scoping2/ScopedPortal.jsp?portletA2altAction=submit&portletA2_submit=true" method="post">
+            data: <input type="text" name="portletA2{pageFlow.data}" id="portletA2.tb">
+            <input type="submit" value="submit">
+        </form>
+        <p>
+    </body>
+</div><script language="JavaScript" type="text/JavaScript">
+<!--
+
+// **** Start the NetUI Framework Generated JavaScript ****
+
+// Build the netui_names table to map the tagId attributes
+// to the real id written into the HTML
+if (netui_names == null)
+   var netui_names = new Object();
+netui_names.portletA2__tb="portletA2{pageFlow.data}"
+
+
+// Build the netui_names table to map the tagId attributes
+// to the real id written into the HTML
+if (netui_tagIdNameMap == null)
+   var netui_tagIdNameMap = new Object();
+netui_tagIdNameMap.portletA2___tb="portletA2{pageFlow.data}"
+
+
+// method which will return a real id for a tagId,
+// the tag parameter will be used to find the idScope for
+// containers that may scope their ids
+function getNetuiTagName(id, tag)
+{
+   var idScope = getScopeId(tag);
+   if (idScope == "")
+      return netui_names[id];
+   else
+      return netui_names[idScope  + "__" + id];
+}
+
+// This method will walk the hierarchy from the pass element looking for a idScope.
+// The first idScope found will be returned or the empty string if a idScope is not found.
+function getScopeId(tag)
+{
+   if (tag == null || tag.getAttribute == null)
+      return "";
+   var attrVal = tag.getAttribute("netui:idScope");
+   if (attrVal != null)
+      return attrVal;
+   return getScopeId(tag.parentNode);
+}
+
+// lookup by tagId to "real id"
+function lookupIdByTagId(id, tag)
+{
+   var idScope = lookupIdScope(tag,".");
+   return (idScope == "") ? id : idScope + id;
+}
+
+// lookup by tagId to "real name"
+function lookupNameByTagId(id, tag)
+{
+   var idScope = lookupIdScope(tag,"_");
+   if (idScope == "")
+      return netui_tagIdNameMap[id];
+   else
+      return netui_tagIdNameMap[idScope  + "__" + id];
+}
+
+//Non-Legacy lookup method creating a fully qualified scope id
+function lookupIdScope(tag,sep)
+{
+   var val = "";
+   if (sep == null) sep = "";
+   while (tag != null && tag.getAttribute != null) {
+      var attrVal = tag.getAttribute("netui:idScope");
+      if (attrVal != null)
+         val = attrVal + sep + val;
+      tag = tag.parentNode;
+   }
+   return val;
+}
+-->
+</script>
+</html>
+</td></tr>
+</table><br><br>
+<table border="1" cellspacing="1" cellpadding="5" width="100%">
+<tr bordercolor="White"><td bgcolor="#EEEEFF">
+<b>Portlet portletB2</b></td></tr><tr bordercolor="White"><td bgcolor="#EEEEFF">
+<font color="green">Action was: <b>begin</b></font><br>
+<font color="green">Action result URI: <b>/mockportal/scoping2/index.jsp</b></font><br>
+<font color="green">Action result isRedirect: <b>false</b></font><br>
+<font color="black">PageFlow/StrutsModule type: <b>mockportal.scoping2.ScopingController</b></font><br>
+<font color="black">Current URL: <b>/mockportal/scoping2/index.jsp</b></font><br>
+</td></tr>
+<tr><td>
+
+
+
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"
+	"http://www.w3.org/TR/html4/loose.dtd">
+<html lang="en">
+
+    <head>
+        <title>
+            Portal Scoping Test 2
+        </title>
+    </head>
+    <body>
+        <h3>Portal Scoping Test 2</h3>
+        
+        <form action="/coreWeb/mockportal/scoping2/ScopedPortal.jsp?portletB2altAction=submit&portletB2_submit=true" method="post">
+            data: <input type="text" name="portletB2{pageFlow.data}" id="portletB2.tb">
+            <input type="submit" value="submit">
+        </form>
+        <p>
+    </body>
+</div><script language="JavaScript" type="text/JavaScript">
+<!--
+
+// **** Start the NetUI Framework Generated JavaScript ****
+
+// Build the netui_names table to map the tagId attributes
+// to the real id written into the HTML
+if (netui_names == null)
+   var netui_names = new Object();
+netui_names.portletB2__tb="portletB2{pageFlow.data}"
+
+
+// Build the netui_names table to map the tagId attributes
+// to the real id written into the HTML
+if (netui_tagIdNameMap == null)
+   var netui_tagIdNameMap = new Object();
+netui_tagIdNameMap.portletB2___tb="portletB2{pageFlow.data}"
+
+-->
+</script>
+</html>
+</td></tr>
+</table><br><br>
+
+        
+        
+    
+
+</body>
+</html>]]></ses:responseBody>
+         </ses:response>
+      </ses:test>
+      <ses:test>
+         <ses:testNumber>2</ses:testNumber>
+         <ses:request>
+            <ses:protocol>HTTP</ses:protocol>
+            <ses:protocolVersion>1.1</ses:protocolVersion>
+            <ses:host>localhost</ses:host>
+            <ses:port>8080</ses:port>
+            <ses:uri>/coreWeb/mockportal/scoping2/ScopedPortal.jsp</ses:uri>
+            <ses:method>POST</ses:method>
+            <ses:parameters>
+               <ses:parameter>
+                  <ses:name>portletA2_submit</ses:name>
+                  <ses:value>true</ses:value>
+               </ses:parameter>
+               <ses:parameter>
+                  <ses:name>portletA2altAction</ses:name>
+                  <ses:value>submit</ses:value>
+               </ses:parameter>
+               <ses:parameter>
+                  <ses:name>portletA2{pageFlow.data}</ses:name>
+                  <ses:value>aaa</ses:value>
+               </ses:parameter>
+            </ses:parameters>
+            <ses:cookies>
+               <ses:cookie>
+                  <ses:name>JSESSIONID</ses:name>
+                  <ses:value>3163E06D4A52E31CF88A568443A5C412</ses:value>
+               </ses:cookie>
+            </ses:cookies>
+            <ses:headers>
+               <ses:header>
+                  <ses:name>accept</ses:name>
+                  <ses:value>text/xml,application/xml,application/xhtml+xml,text/html;q=0.9,text/plain;q=0.8,image/png,*/*;q=0.5</ses:value>
+               </ses:header>
+               <ses:header>
+                  <ses:name>accept-charset</ses:name>
+                  <ses:value>ISO-8859-1,utf-8;q=0.7,*;q=0.7</ses:value>
+               </ses:header>
+               <ses:header>
+                  <ses:name>accept-encoding</ses:name>
+                  <ses:value>gzip,deflate</ses:value>
+               </ses:header>
+               <ses:header>
+                  <ses:name>accept-language</ses:name>
+                  <ses:value>en-us,en;q=0.5</ses:value>
+               </ses:header>
+               <ses:header>
+                  <ses:name>connection</ses:name>
+                  <ses:value>keep-alive</ses:value>
+               </ses:header>
+               <ses:header>
+                  <ses:name>content-length</ses:name>
+                  <ses:value>31</ses:value>
+               </ses:header>
+               <ses:header>
+                  <ses:name>content-type</ses:name>
+                  <ses:value>application/x-www-form-urlencoded</ses:value>
+               </ses:header>
+               <ses:header>
+                  <ses:name>cookie</ses:name>
+                  <ses:value>JSESSIONID=3163E06D4A52E31CF88A568443A5C412</ses:value>
+               </ses:header>
+               <ses:header>
+                  <ses:name>host</ses:name>
+                  <ses:value>localhost:8080</ses:value>
+               </ses:header>
+               <ses:header>
+                  <ses:name>keep-alive</ses:name>
+                  <ses:value>300</ses:value>
+               </ses:header>
+               <ses:header>
+                  <ses:name>referer</ses:name>
+                  <ses:value>http://localhost:8080/coreWeb/mockportal/scoping2/ScopedPortal.jsp</ses:value>
+               </ses:header>
+               <ses:header>
+                  <ses:name>user-agent</ses:name>
+                  <ses:value>Mozilla/5.0 (Windows; U; Windows NT 5.1; en-US; rv:1.7.5) Gecko/20041107 Firefox/1.0</ses:value>
+               </ses:header>
+            </ses:headers>
+         </ses:request>
+         <ses:response>
+            <ses:statusCode>200</ses:statusCode>
+            <ses:reason/>
+            <ses:responseBody><![CDATA[<html>
+<head>
+<title>Scoped Portal (/mockportal/scoping2)</title>
+</head>
+
+<h3>Scoped Portal (/mockportal/scoping2)</h3>
+<body>
+
+    <table border="1" cellspacing="1" cellpadding="5" width="100%">
+<tr bordercolor="White"><td bgcolor="#EEEEFF">
+<b>Portlet portletA2</b></td></tr><tr bordercolor="White"><td bgcolor="#EEEEFF">
+<font color="green">Action was: <b>submit</b></font><br>
+<font color="green">Action result URI: <b>/mockportal/scoping2/results.jsp</b></font><br>
+<font color="green">Action result isRedirect: <b>false</b></font><br>
+<font color="black">PageFlow/StrutsModule type: <b>mockportal.scoping2.ScopingController</b></font><br>
+<font color="black">Current URL: <b>/mockportal/scoping2/results.jsp</b></font><br>
+</td></tr>
+<tr><td>
+
+
+
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"
+	"http://www.w3.org/TR/html4/loose.dtd">
+<html lang="en">
+
+    <head>
+        <title>
+            Portal Scoping Test 2
+        </title>
+    </head>
+    <body>
+        <h3>Portal Scoping Test 2</h3>
+
+        data: <b><span>aaa</span></b>
+        <br/>
+        <a href="/coreWeb/mockportal/scoping2/launchPopUp.do?jpfScopeID=portletA2" target="portletA2">launch window in 'portletA2' scope</a>
+        <br/>
+        <a href="/coreWeb/mockportal/scoping2/ScopedPortal.jsp?portletA2altAction=submit&portletA2_submit=true">refresh results</a>
+        <br/>
+        <a href="/coreWeb/mockportal/scoping2/ScopedPortal.jsp?portletA2altAction=begin&portletA2_submit=true">go back</a>
+    </body>
+</div>
+</html>
+</td></tr>
+</table><br><br>
+<table border="1" cellspacing="1" cellpadding="5" width="100%">
+<tr bordercolor="White"><td bgcolor="#EEEEFF">
+<b>Portlet portletB2</b></td></tr><tr bordercolor="White"><td bgcolor="#EEEEFF">
+<font color="black">PageFlow/StrutsModule type: <b>mockportal.scoping2.ScopingController</b></font><br>
+<font color="black">Current URL: <b>/mockportal/scoping2/index.jsp</b></font><br>
+</td></tr>
+<tr><td>
+
+
+
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"
+	"http://www.w3.org/TR/html4/loose.dtd">
+<html lang="en">
+
+    <head>
+        <title>
+            Portal Scoping Test 2
+        </title>
+    </head>
+    <body>
+        <h3>Portal Scoping Test 2</h3>
+        
+        <form action="/coreWeb/mockportal/scoping2/ScopedPortal.jsp?portletB2altAction=submit&portletB2_submit=true" method="post">
+            data: <input type="text" name="portletB2{pageFlow.data}" id="portletB2.tb">
+            <input type="submit" value="submit">
+        </form>
+        <p>
+    </body>
+</div><script language="JavaScript" type="text/JavaScript">
+<!--
+
+// **** Start the NetUI Framework Generated JavaScript ****
+
+// Build the netui_names table to map the tagId attributes
+// to the real id written into the HTML
+if (netui_names == null)
+   var netui_names = new Object();
+netui_names.portletB2__tb="portletB2{pageFlow.data}"
+
+
+// Build the netui_names table to map the tagId attributes
+// to the real id written into the HTML
+if (netui_tagIdNameMap == null)
+   var netui_tagIdNameMap = new Object();
+netui_tagIdNameMap.portletB2___tb="portletB2{pageFlow.data}"
+
+
+// method which will return a real id for a tagId,
+// the tag parameter will be used to find the idScope for
+// containers that may scope their ids
+function getNetuiTagName(id, tag)
+{
+   var idScope = getScopeId(tag);
+   if (idScope == "")
+      return netui_names[id];
+   else
+      return netui_names[idScope  + "__" + id];
+}
+
+// This method will walk the hierarchy from the pass element looking for a idScope.
+// The first idScope found will be returned or the empty string if a idScope is not found.
+function getScopeId(tag)
+{
+   if (tag == null || tag.getAttribute == null)
+      return "";
+   var attrVal = tag.getAttribute("netui:idScope");
+   if (attrVal != null)
+      return attrVal;
+   return getScopeId(tag.parentNode);
+}
+
+// lookup by tagId to "real id"
+function lookupIdByTagId(id, tag)
+{
+   var idScope = lookupIdScope(tag,".");
+   return (idScope == "") ? id : idScope + id;
+}
+
+// lookup by tagId to "real name"
+function lookupNameByTagId(id, tag)
+{
+   var idScope = lookupIdScope(tag,"_");
+   if (idScope == "")
+      return netui_tagIdNameMap[id];
+   else
+      return netui_tagIdNameMap[idScope  + "__" + id];
+}
+
+//Non-Legacy lookup method creating a fully qualified scope id
+function lookupIdScope(tag,sep)
+{
+   var val = "";
+   if (sep == null) sep = "";
+   while (tag != null && tag.getAttribute != null) {
+      var attrVal = tag.getAttribute("netui:idScope");
+      if (attrVal != null)
+         val = attrVal + sep + val;
+      tag = tag.parentNode;
+   }
+   return val;
+}
+-->
+</script>
+</html>
+</td></tr>
+</table><br><br>
+
+        
+        
+    
+
+</body>
+</html>]]></ses:responseBody>
+         </ses:response>
+      </ses:test>
+      <ses:test>
+         <ses:testNumber>3</ses:testNumber>
+         <ses:request>
+            <ses:protocol>HTTP</ses:protocol>
+            <ses:protocolVersion>1.1</ses:protocolVersion>
+            <ses:host>localhost</ses:host>
+            <ses:port>8080</ses:port>
+            <ses:uri>/coreWeb/mockportal/scoping2/ScopedPortal.jsp</ses:uri>
+            <ses:method>POST</ses:method>
+            <ses:parameters>
+               <ses:parameter>
+                  <ses:name>portletB2_submit</ses:name>
+                  <ses:value>true</ses:value>
+               </ses:parameter>
+               <ses:parameter>
+                  <ses:name>portletB2altAction</ses:name>
+                  <ses:value>submit</ses:value>
+               </ses:parameter>
+               <ses:parameter>
+                  <ses:name>portletB2{pageFlow.data}</ses:name>
+                  <ses:value>bbb</ses:value>
+               </ses:parameter>
+            </ses:parameters>
+            <ses:cookies>
+               <ses:cookie>
+                  <ses:name>JSESSIONID</ses:name>
+                  <ses:value>3163E06D4A52E31CF88A568443A5C412</ses:value>
+               </ses:cookie>
+            </ses:cookies>
+            <ses:headers>
+               <ses:header>
+                  <ses:name>accept</ses:name>
+                  <ses:value>text/xml,application/xml,application/xhtml+xml,text/html;q=0.9,text/plain;q=0.8,image/png,*/*;q=0.5</ses:value>
+               </ses:header>
+               <ses:header>
+                  <ses:name>accept-charset</ses:name>
+                  <ses:value>ISO-8859-1,utf-8;q=0.7,*;q=0.7</ses:value>
+               </ses:header>
+               <ses:header>
+                  <ses:name>accept-encoding</ses:name>
+                  <ses:value>gzip,deflate</ses:value>
+               </ses:header>
+               <ses:header>
+                  <ses:name>accept-language</ses:name>
+                  <ses:value>en-us,en;q=0.5</ses:value>
+               </ses:header>
+               <ses:header>
+                  <ses:name>connection</ses:name>
+                  <ses:value>keep-alive</ses:value>
+               </ses:header>
+               <ses:header>
+                  <ses:name>content-length</ses:name>
+                  <ses:value>31</ses:value>
+               </ses:header>
+               <ses:header>
+                  <ses:name>content-type</ses:name>
+                  <ses:value>application/x-www-form-urlencoded</ses:value>
+               </ses:header>
+               <ses:header>
+                  <ses:name>cookie</ses:name>
+                  <ses:value>JSESSIONID=3163E06D4A52E31CF88A568443A5C412</ses:value>
+               </ses:header>
+               <ses:header>
+                  <ses:name>host</ses:name>
+                  <ses:value>localhost:8080</ses:value>
+               </ses:header>
+               <ses:header>
+                  <ses:name>keep-alive</ses:name>
+                  <ses:value>300</ses:value>
+               </ses:header>
+               <ses:header>
+                  <ses:name>referer</ses:name>
+                  <ses:value>http://localhost:8080/coreWeb/mockportal/scoping2/ScopedPortal.jsp?portletA2altAction=submit&amp;portletA2_submit=true</ses:value>
+               </ses:header>
+               <ses:header>
+                  <ses:name>user-agent</ses:name>
+                  <ses:value>Mozilla/5.0 (Windows; U; Windows NT 5.1; en-US; rv:1.7.5) Gecko/20041107 Firefox/1.0</ses:value>
+               </ses:header>
+            </ses:headers>
+         </ses:request>
+         <ses:response>
+            <ses:statusCode>200</ses:statusCode>
+            <ses:reason/>
+            <ses:responseBody><![CDATA[<html>
+<head>
+<title>Scoped Portal (/mockportal/scoping2)</title>
+</head>
+
+<h3>Scoped Portal (/mockportal/scoping2)</h3>
+<body>
+
+    <table border="1" cellspacing="1" cellpadding="5" width="100%">
+<tr bordercolor="White"><td bgcolor="#EEEEFF">
+<b>Portlet portletA2</b></td></tr><tr bordercolor="White"><td bgcolor="#EEEEFF">
+<font color="black">PageFlow/StrutsModule type: <b>mockportal.scoping2.ScopingController</b></font><br>
+<font color="black">Current URL: <b>/mockportal/scoping2/results.jsp</b></font><br>
+</td></tr>
+<tr><td>
+
+
+
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"
+	"http://www.w3.org/TR/html4/loose.dtd">
+<html lang="en">
+
+    <head>
+        <title>
+            Portal Scoping Test 2
+        </title>
+    </head>
+    <body>
+        <h3>Portal Scoping Test 2</h3>
+
+        data: <b><span>aaa</span></b>
+        <br/>
+        <a href="/coreWeb/mockportal/scoping2/launchPopUp.do?jpfScopeID=portletA2" target="portletA2">launch window in 'portletA2' scope</a>
+        <br/>
+        <a href="/coreWeb/mockportal/scoping2/ScopedPortal.jsp?portletA2altAction=submit&portletA2_submit=true">refresh results</a>
+        <br/>
+        <a href="/coreWeb/mockportal/scoping2/ScopedPortal.jsp?portletA2altAction=begin&portletA2_submit=true">go back</a>
+    </body>
+</div>
+</html>
+</td></tr>
+</table><br><br>
+<table border="1" cellspacing="1" cellpadding="5" width="100%">
+<tr bordercolor="White"><td bgcolor="#EEEEFF">
+<b>Portlet portletB2</b></td></tr><tr bordercolor="White"><td bgcolor="#EEEEFF">
+<font color="green">Action was: <b>submit</b></font><br>
+<font color="green">Action result URI: <b>/mockportal/scoping2/results.jsp</b></font><br>
+<font color="green">Action result isRedirect: <b>false</b></font><br>
+<font color="black">PageFlow/StrutsModule type: <b>mockportal.scoping2.ScopingController</b></font><br>
+<font color="black">Current URL: <b>/mockportal/scoping2/results.jsp</b></font><br>
+</td></tr>
+<tr><td>
+
+
+
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"
+	"http://www.w3.org/TR/html4/loose.dtd">
+<html lang="en">
+
+    <head>
+        <title>
+            Portal Scoping Test 2
+        </title>
+    </head>
+    <body>
+        <h3>Portal Scoping Test 2</h3>
+
+        data: <b><span>bbb</span></b>
+        <br/>
+        <a href="/coreWeb/mockportal/scoping2/launchPopUp.do?jpfScopeID=portletA2" target="portletA2">launch window in 'portletA2' scope</a>
+        <br/>
+        <a href="/coreWeb/mockportal/scoping2/ScopedPortal.jsp?portletB2altAction=submit&portletB2_submit=true">refresh results</a>
+        <br/>
+        <a href="/coreWeb/mockportal/scoping2/ScopedPortal.jsp?portletB2altAction=begin&portletB2_submit=true">go back</a>
+    </body>
+</div>
+</html>
+</td></tr>
+</table><br><br>
+
+        
+        
+    
+
+</body>
+</html>]]></ses:responseBody>
+         </ses:response>
+      </ses:test>
+      <ses:test>
+         <ses:testNumber>4</ses:testNumber>
+         <ses:request>
+            <ses:protocol>HTTP</ses:protocol>
+            <ses:protocolVersion>1.1</ses:protocolVersion>
+            <ses:host>localhost</ses:host>
+            <ses:port>8080</ses:port>
+            <ses:uri>/coreWeb/mockportal/scoping2/launchPopUp.do</ses:uri>
+            <ses:method>GET</ses:method>
+            <ses:parameters>
+               <ses:parameter>
+                  <ses:name>jpfScopeID</ses:name>
+                  <ses:value>portletA2</ses:value>
+               </ses:parameter>
+            </ses:parameters>
+            <ses:cookies>
+               <ses:cookie>
+                  <ses:name>JSESSIONID</ses:name>
+                  <ses:value>3163E06D4A52E31CF88A568443A5C412</ses:value>
+               </ses:cookie>
+            </ses:cookies>
+            <ses:headers>
+               <ses:header>
+                  <ses:name>accept</ses:name>
+                  <ses:value>text/xml,application/xml,application/xhtml+xml,text/html;q=0.9,text/plain;q=0.8,image/png,*/*;q=0.5</ses:value>
+               </ses:header>
+               <ses:header>
+                  <ses:name>accept-charset</ses:name>
+                  <ses:value>ISO-8859-1,utf-8;q=0.7,*;q=0.7</ses:value>
+               </ses:header>
+               <ses:header>
+                  <ses:name>accept-encoding</ses:name>
+                  <ses:value>gzip,deflate</ses:value>
+               </ses:header>
+               <ses:header>
+                  <ses:name>accept-language</ses:name>
+                  <ses:value>en-us,en;q=0.5</ses:value>
+               </ses:header>
+               <ses:header>
+                  <ses:name>connection</ses:name>
+                  <ses:value>keep-alive</ses:value>
+               </ses:header>
+               <ses:header>
+                  <ses:name>cookie</ses:name>
+                  <ses:value>JSESSIONID=3163E06D4A52E31CF88A568443A5C412</ses:value>
+               </ses:header>
+               <ses:header>
+                  <ses:name>host</ses:name>
+                  <ses:value>localhost:8080</ses:value>
+               </ses:header>
+               <ses:header>
+                  <ses:name>keep-alive</ses:name>
+                  <ses:value>300</ses:value>
+               </ses:header>
+               <ses:header>
+                  <ses:name>referer</ses:name>
+                  <ses:value>http://localhost:8080/coreWeb/mockportal/scoping2/ScopedPortal.jsp?portletB2altAction=submit&amp;portletB2_submit=true</ses:value>
+               </ses:header>
+               <ses:header>
+                  <ses:name>user-agent</ses:name>
+                  <ses:value>Mozilla/5.0 (Windows; U; Windows NT 5.1; en-US; rv:1.7.5) Gecko/20041107 Firefox/1.0</ses:value>
+               </ses:header>
+            </ses:headers>
+         </ses:request>
+         <ses:response>
+            <ses:statusCode>200</ses:statusCode>
+            <ses:reason/>
+            <ses:responseBody>&lt;!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"
+	"http://www.w3.org/TR/html4/loose.dtd">
+&lt;html lang="en">
+
+    &lt;head>
+        &lt;title>
+            Portal Scoping Test 2
+        &lt;/title>
+    &lt;/head>
+    &lt;body>
+        data: &lt;b>&lt;span>aaa&lt;/span>&lt;/b>
+        &lt;p>
+        &lt;form action="/coreWeb/mockportal/scoping2/showResults.do" method="post">
+&lt;input type="hidden" name="jpfScopeID" value="portletA2">
+            new data: &lt;input type="text" name="{pageFlow.data}" id="tb" value="aaa">
+            &lt;input type="submit" value="submit">
+        &lt;/form>
+    &lt;/body>
+&lt;script language="JavaScript" type="text/JavaScript">
+&lt;!--
+
+// **** Start the NetUI Framework Generated JavaScript ****
+
+// Build the netui_names table to map the tagId attributes
+// to the real id written into the HTML
+if (netui_names == null)
+   var netui_names = new Object();
+netui_names.tb="{pageFlow.data}"
+
+
+// Build the netui_names table to map the tagId attributes
+// to the real id written into the HTML
+if (netui_tagIdNameMap == null)
+   var netui_tagIdNameMap = new Object();
+netui_tagIdNameMap.tb="{pageFlow.data}"
+
+
+// method which will return a real id for a tagId,
+// the tag parameter will be used to find the idScope for
+// containers that may scope their ids
+function getNetuiTagName(id, tag)
+{
+   var idScope = getScopeId(tag);
+   if (idScope == "")
+      return netui_names[id];
+   else
+      return netui_names[idScope  + "__" + id];
+}
+
+// This method will walk the hierarchy from the pass element looking for a idScope.
+// The first idScope found will be returned or the empty string if a idScope is not found.
+function getScopeId(tag)
+{
+   if (tag == null || tag.getAttribute == null)
+      return "";
+   var attrVal = tag.getAttribute("netui:idScope");
+   if (attrVal != null)
+      return attrVal;
+   return getScopeId(tag.parentNode);
+}
+
+// lookup by tagId to "real id"
+function lookupIdByTagId(id, tag)
+{
+   var idScope = lookupIdScope(tag,".");
+   return (idScope == "") ? id : idScope + id;
+}
+
+// lookup by tagId to "real name"
+function lookupNameByTagId(id, tag)
+{
+   var idScope = lookupIdScope(tag,"_");
+   if (idScope == "")
+      return netui_tagIdNameMap[id];
+   else
+      return netui_tagIdNameMap[idScope  + "__" + id];
+}
+
+//Non-Legacy lookup method creating a fully qualified scope id
+function lookupIdScope(tag,sep)
+{
+   var val = "";
+   if (sep == null) sep = "";
+   while (tag != null &amp;&amp; tag.getAttribute != null) {
+      var attrVal = tag.getAttribute("netui:idScope");
+      if (attrVal != null)
+         val = attrVal + sep + val;
+      tag = tag.parentNode;
+   }
+   return val;
+}
+-->
+&lt;/script>
+&lt;/html></ses:responseBody>
+         </ses:response>
+      </ses:test>
+      <ses:test>
+         <ses:testNumber>5</ses:testNumber>
+         <ses:request>
+            <ses:protocol>HTTP</ses:protocol>
+            <ses:protocolVersion>1.1</ses:protocolVersion>
+            <ses:host>localhost</ses:host>
+            <ses:port>8080</ses:port>
+            <ses:uri>/coreWeb/mockportal/scoping2/showResults.do</ses:uri>
+            <ses:method>POST</ses:method>
+            <ses:parameters>
+               <ses:parameter>
+                  <ses:name>jpfScopeID</ses:name>
+                  <ses:value>portletA2</ses:value>
+               </ses:parameter>
+               <ses:parameter>
+                  <ses:name>{pageFlow.data}</ses:name>
+                  <ses:value>changed</ses:value>
+               </ses:parameter>
+            </ses:parameters>
+            <ses:cookies>
+               <ses:cookie>
+                  <ses:name>JSESSIONID</ses:name>
+                  <ses:value>3163E06D4A52E31CF88A568443A5C412</ses:value>
+               </ses:cookie>
+            </ses:cookies>
+            <ses:headers>
+               <ses:header>
+                  <ses:name>accept</ses:name>
+                  <ses:value>text/xml,application/xml,application/xhtml+xml,text/html;q=0.9,text/plain;q=0.8,image/png,*/*;q=0.5</ses:value>
+               </ses:header>
+               <ses:header>
+                  <ses:name>accept-charset</ses:name>
+                  <ses:value>ISO-8859-1,utf-8;q=0.7,*;q=0.7</ses:value>
+               </ses:header>
+               <ses:header>
+                  <ses:name>accept-encoding</ses:name>
+                  <ses:value>gzip,deflate</ses:value>
+               </ses:header>
+               <ses:header>
+                  <ses:name>accept-language</ses:name>
+                  <ses:value>en-us,en;q=0.5</ses:value>
+               </ses:header>
+               <ses:header>
+                  <ses:name>connection</ses:name>
+                  <ses:value>keep-alive</ses:value>
+               </ses:header>
+               <ses:header>
+                  <ses:name>content-length</ses:name>
+                  <ses:value>47</ses:value>
+               </ses:header>
+               <ses:header>
+                  <ses:name>content-type</ses:name>
+                  <ses:value>application/x-www-form-urlencoded</ses:value>
+               </ses:header>
+               <ses:header>
+                  <ses:name>cookie</ses:name>
+                  <ses:value>JSESSIONID=3163E06D4A52E31CF88A568443A5C412</ses:value>
+               </ses:header>
+               <ses:header>
+                  <ses:name>host</ses:name>
+                  <ses:value>localhost:8080</ses:value>
+               </ses:header>
+               <ses:header>
+                  <ses:name>keep-alive</ses:name>
+                  <ses:value>300</ses:value>
+               </ses:header>
+               <ses:header>
+                  <ses:name>referer</ses:name>
+                  <ses:value>http://localhost:8080/coreWeb/mockportal/scoping2/launchPopUp.do?jpfScopeID=portletA2</ses:value>
+               </ses:header>
+               <ses:header>
+                  <ses:name>user-agent</ses:name>
+                  <ses:value>Mozilla/5.0 (Windows; U; Windows NT 5.1; en-US; rv:1.7.5) Gecko/20041107 Firefox/1.0</ses:value>
+               </ses:header>
+            </ses:headers>
+         </ses:request>
+         <ses:response>
+            <ses:statusCode>200</ses:statusCode>
+            <ses:reason/>
+            <ses:responseBody><![CDATA[<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"
+	"http://www.w3.org/TR/html4/loose.dtd">
+<html lang="en">
+
+    <head>
+        <title>
+            Portal Scoping Test 2
+        </title>
+    </head>
+    <body>
+        data: <b><span>changed</span></b>
+        <p>
+        <a href="javascript:window.close();">close window</a>
+    </body>
+
+</html>]]></ses:responseBody>
+         </ses:response>
+      </ses:test>
+      <ses:test>
+         <ses:testNumber>6</ses:testNumber>
+         <ses:request>
+            <ses:protocol>HTTP</ses:protocol>
+            <ses:protocolVersion>1.1</ses:protocolVersion>
+            <ses:host>localhost</ses:host>
+            <ses:port>8080</ses:port>
+            <ses:uri>/coreWeb/mockportal/scoping2/ScopedPortal.jsp</ses:uri>
+            <ses:method>GET</ses:method>
+            <ses:parameters>
+               <ses:parameter>
+                  <ses:name>portletA2_submit</ses:name>
+                  <ses:value>true</ses:value>
+               </ses:parameter>
+               <ses:parameter>
+                  <ses:name>portletA2altAction</ses:name>
+                  <ses:value>submit</ses:value>
+               </ses:parameter>
+            </ses:parameters>
+            <ses:cookies>
+               <ses:cookie>
+                  <ses:name>JSESSIONID</ses:name>
+                  <ses:value>3163E06D4A52E31CF88A568443A5C412</ses:value>
+               </ses:cookie>
+            </ses:cookies>
+            <ses:headers>
+               <ses:header>
+                  <ses:name>accept</ses:name>
+                  <ses:value>text/xml,application/xml,application/xhtml+xml,text/html;q=0.9,text/plain;q=0.8,image/png,*/*;q=0.5</ses:value>
+               </ses:header>
+               <ses:header>
+                  <ses:name>accept-charset</ses:name>
+                  <ses:value>ISO-8859-1,utf-8;q=0.7,*;q=0.7</ses:value>
+               </ses:header>
+               <ses:header>
+                  <ses:name>accept-encoding</ses:name>
+                  <ses:value>gzip,deflate</ses:value>
+               </ses:header>
+               <ses:header>
+                  <ses:name>accept-language</ses:name>
+                  <ses:value>en-us,en;q=0.5</ses:value>
+               </ses:header>
+               <ses:header>
+                  <ses:name>connection</ses:name>
+                  <ses:value>keep-alive</ses:value>
+               </ses:header>
+               <ses:header>
+                  <ses:name>cookie</ses:name>
+                  <ses:value>JSESSIONID=3163E06D4A52E31CF88A568443A5C412</ses:value>
+               </ses:header>
+               <ses:header>
+                  <ses:name>host</ses:name>
+                  <ses:value>localhost:8080</ses:value>
+               </ses:header>
+               <ses:header>
+                  <ses:name>keep-alive</ses:name>
+                  <ses:value>300</ses:value>
+               </ses:header>
+               <ses:header>
+                  <ses:name>referer</ses:name>
+                  <ses:value>http://localhost:8080/coreWeb/mockportal/scoping2/ScopedPortal.jsp?portletB2altAction=submit&amp;portletB2_submit=true</ses:value>
+               </ses:header>
+               <ses:header>
+                  <ses:name>user-agent</ses:name>
+                  <ses:value>Mozilla/5.0 (Windows; U; Windows NT 5.1; en-US; rv:1.7.5) Gecko/20041107 Firefox/1.0</ses:value>
+               </ses:header>
+            </ses:headers>
+         </ses:request>
+         <ses:response>
+            <ses:statusCode>200</ses:statusCode>
+            <ses:reason/>
+            <ses:responseBody><![CDATA[<html>
+<head>
+<title>Scoped Portal (/mockportal/scoping2)</title>
+</head>
+
+<h3>Scoped Portal (/mockportal/scoping2)</h3>
+<body>
+
+    <table border="1" cellspacing="1" cellpadding="5" width="100%">
+<tr bordercolor="White"><td bgcolor="#EEEEFF">
+<b>Portlet portletA2</b></td></tr><tr bordercolor="White"><td bgcolor="#EEEEFF">
+<font color="green">Action was: <b>submit</b></font><br>
+<font color="green">Action result URI: <b>/mockportal/scoping2/results.jsp</b></font><br>
+<font color="green">Action result isRedirect: <b>false</b></font><br>
+<font color="black">PageFlow/StrutsModule type: <b>mockportal.scoping2.ScopingController</b></font><br>
+<font color="black">Current URL: <b>/mockportal/scoping2/results.jsp</b></font><br>
+</td></tr>
+<tr><td>
+
+
+
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"
+	"http://www.w3.org/TR/html4/loose.dtd">
+<html lang="en">
+
+    <head>
+        <title>
+            Portal Scoping Test 2
+        </title>
+    </head>
+    <body>
+        <h3>Portal Scoping Test 2</h3>
+
+        data: <b><span>changed</span></b>
+        <br/>
+        <a href="/coreWeb/mockportal/scoping2/launchPopUp.do?jpfScopeID=portletA2" target="portletA2">launch window in 'portletA2' scope</a>
+        <br/>
+        <a href="/coreWeb/mockportal/scoping2/ScopedPortal.jsp?portletA2altAction=submit&portletA2_submit=true">refresh results</a>
+        <br/>
+        <a href="/coreWeb/mockportal/scoping2/ScopedPortal.jsp?portletA2altAction=begin&portletA2_submit=true">go back</a>
+    </body>
+</div>
+</html>
+</td></tr>
+</table><br><br>
+<table border="1" cellspacing="1" cellpadding="5" width="100%">
+<tr bordercolor="White"><td bgcolor="#EEEEFF">
+<b>Portlet portletB2</b></td></tr><tr bordercolor="White"><td bgcolor="#EEEEFF">
+<font color="black">PageFlow/StrutsModule type: <b>mockportal.scoping2.ScopingController</b></font><br>
+<font color="black">Current URL: <b>/mockportal/scoping2/results.jsp</b></font><br>
+</td></tr>
+<tr><td>
+
+
+
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"
+	"http://www.w3.org/TR/html4/loose.dtd">
+<html lang="en">
+
+    <head>
+        <title>
+            Portal Scoping Test 2
+        </title>
+    </head>
+    <body>
+        <h3>Portal Scoping Test 2</h3>
+
+        data: <b><span>bbb</span></b>
+        <br/>
+        <a href="/coreWeb/mockportal/scoping2/launchPopUp.do?jpfScopeID=portletA2" target="portletA2">launch window in 'portletA2' scope</a>
+        <br/>
+        <a href="/coreWeb/mockportal/scoping2/ScopedPortal.jsp?portletB2altAction=submit&portletB2_submit=true">refresh results</a>
+        <br/>
+        <a href="/coreWeb/mockportal/scoping2/ScopedPortal.jsp?portletB2altAction=begin&portletB2_submit=true">go back</a>
+    </body>
+</div>
+</html>
+</td></tr>
+</table><br><br>
+
+        
+        
+    
+
+</body>
+</html>]]></ses:responseBody>
+         </ses:response>
+      </ses:test>
+      <ses:test>
+         <ses:testNumber>7</ses:testNumber>
+         <ses:request>
+            <ses:protocol>HTTP</ses:protocol>
+            <ses:protocolVersion>1.1</ses:protocolVersion>
+            <ses:host>localhost</ses:host>
+            <ses:port>8080</ses:port>
+            <ses:uri>/coreWeb/mockportal/scoping2/resetMockPortal.do</ses:uri>
+            <ses:method>GET</ses:method>
+            <ses:parameters/>
+            <ses:cookies>
+               <ses:cookie>
+                  <ses:name>JSESSIONID</ses:name>
+                  <ses:value>3163E06D4A52E31CF88A568443A5C412</ses:value>
+               </ses:cookie>
+            </ses:cookies>
+            <ses:headers>
+               <ses:header>
+                  <ses:name>accept</ses:name>
+                  <ses:value>text/xml,application/xml,application/xhtml+xml,text/html;q=0.9,text/plain;q=0.8,image/png,*/*;q=0.5</ses:value>
+               </ses:header>
+               <ses:header>
+                  <ses:name>accept-charset</ses:name>
+                  <ses:value>ISO-8859-1,utf-8;q=0.7,*;q=0.7</ses:value>
+               </ses:header>
+               <ses:header>
+                  <ses:name>accept-encoding</ses:name>
+                  <ses:value>gzip,deflate</ses:value>
+               </ses:header>
+               <ses:header>
+                  <ses:name>accept-language</ses:name>
+                  <ses:value>en-us,en;q=0.5</ses:value>
+               </ses:header>
+               <ses:header>
+                  <ses:name>connection</ses:name>
+                  <ses:value>keep-alive</ses:value>
+               </ses:header>
+               <ses:header>
+                  <ses:name>cookie</ses:name>
+                  <ses:value>JSESSIONID=3163E06D4A52E31CF88A568443A5C412</ses:value>
+               </ses:header>
+               <ses:header>
+                  <ses:name>host</ses:name>
+                  <ses:value>localhost:8080</ses:value>
+               </ses:header>
+               <ses:header>
+                  <ses:name>keep-alive</ses:name>
+                  <ses:value>300</ses:value>
+               </ses:header>
+               <ses:header>
+                  <ses:name>user-agent</ses:name>
+                  <ses:value>Mozilla/5.0 (Windows; U; Windows NT 5.1; en-US; rv:1.7.5) Gecko/20041107 Firefox/1.0</ses:value>
+               </ses:header>
+            </ses:headers>
+         </ses:request>
+         <ses:response>
+            <ses:statusCode>200</ses:statusCode>
+            <ses:reason/>
+            <ses:responseBody>OK -- reset MockPortal</ses:responseBody>
+         </ses:response>
+      </ses:test>
+   </ses:tests>
+   <ses:endDate>27 Feb 2005, 12:31:44.545 PM MST</ses:endDate>
+   <ses:testCount>7</ses:testCount>
+</ses:recorderSession>

Propchange: incubator/beehive/trunk/netui/test/webapps/drt/testRecorder/tests/MockPortalScopingTest2.xml
------------------------------------------------------------------------------
    svn:eol-style = native