Author: dolander
Date: Thu Feb  3 09:29:31 2005
New Revision: 151188

URL: http://svn.apache.org/viewcvs?view=rev&rev=151188
Log:
Update the test recorder to handle xml documents that contain CDATA.
There was a problem where we were creating response files that contained
nested CDTATA.

Add the RichTreeExpandOnServer test which contains XML updates to the tree.



Modified:
    
incubator/beehive/trunk/netui/src/testRecorder/org/apache/beehive/netui/tools/testrecorder/server/DefaultFilterData.java
    
incubator/beehive/trunk/netui/src/testRecorder/org/apache/beehive/netui/tools/testrecorder/server/TestRecorderFilter.java
    
incubator/beehive/trunk/netui/src/testRecorder/org/apache/beehive/netui/tools/testrecorder/server/serverAdapter/ServerAdapterUtils.java
    
incubator/beehive/trunk/netui/src/testRecorder/org/apache/beehive/netui/tools/testrecorder/server/state/PlaybackSessionImpl.java
    
incubator/beehive/trunk/netui/test/webapps/drt/testRecorder/config/testRecorder-tests.xml
    
incubator/beehive/trunk/netui/test/webapps/drt/testRecorder/tests/RichTreeExpandOnServer.xml

Modified: 
incubator/beehive/trunk/netui/src/testRecorder/org/apache/beehive/netui/tools/testrecorder/server/DefaultFilterData.java
URL: 
http://svn.apache.org/viewcvs/incubator/beehive/trunk/netui/src/testRecorder/org/apache/beehive/netui/tools/testrecorder/server/DefaultFilterData.java?view=diff&r1=151187&r2=151188
==============================================================================
--- 
incubator/beehive/trunk/netui/src/testRecorder/org/apache/beehive/netui/tools/testrecorder/server/DefaultFilterData.java
 (original)
+++ 
incubator/beehive/trunk/netui/src/testRecorder/org/apache/beehive/netui/tools/testrecorder/server/DefaultFilterData.java
 Thu Feb  3 09:29:31 2005
@@ -389,9 +389,9 @@
 
     public void setRespData( boolean replaceSessionId ) throws 
SessionFailedException {
         respData = ResponseWrapper.populate( (HttpServletResponse) newResponse,
-                new ResponseData( request.getServerName(), 
request.getServerPort() ) );
-        if ( replaceSessionId && respData.getBody() != null ) {
-            respData.setBody( serverAdapter.replaceSessionID( 
respData.getBody() ) );
+                new ResponseData( request.getServerName(), 
request.getServerPort() ) );       
+        if ( replaceSessionId &&  respData.getBody() != null ) {
+            respData.setBody( serverAdapter.replaceSessionID(  
respData.getBody() ) );
         }
     }
 

Modified: 
incubator/beehive/trunk/netui/src/testRecorder/org/apache/beehive/netui/tools/testrecorder/server/TestRecorderFilter.java
URL: 
http://svn.apache.org/viewcvs/incubator/beehive/trunk/netui/src/testRecorder/org/apache/beehive/netui/tools/testrecorder/server/TestRecorderFilter.java?view=diff&r1=151187&r2=151188
==============================================================================
--- 
incubator/beehive/trunk/netui/src/testRecorder/org/apache/beehive/netui/tools/testrecorder/server/TestRecorderFilter.java
 (original)
+++ 
incubator/beehive/trunk/netui/src/testRecorder/org/apache/beehive/netui/tools/testrecorder/server/TestRecorderFilter.java
 Thu Feb  3 09:29:31 2005
@@ -235,6 +235,14 @@
                     }
                 }
                 else {
+                    String resp = data.getRespData().getBody();
+                    // replace the CDATA in the body. We escape the CDATA so 
we can nest this.
+                    int pos = resp.indexOf("<![CDATA[");
+                    if (pos != -1) {
+                        resp = 
resp.replaceAll("\\Q<![CDATA[\\E","&lt;![CDATA[");
+                        resp = resp.replaceAll("\\Q]]>","]]&gt;");
+                        data.getRespData().setBody(resp);
+                    }
                     testNum = data.getRecordingSession().endTest( 
data.getReqData(), data.getRespData() );
                     if ( log.isDebugEnabled() ) {
                         log.debug( "testNum( " + testNum + " )" );

Modified: 
incubator/beehive/trunk/netui/src/testRecorder/org/apache/beehive/netui/tools/testrecorder/server/serverAdapter/ServerAdapterUtils.java
URL: 
http://svn.apache.org/viewcvs/incubator/beehive/trunk/netui/src/testRecorder/org/apache/beehive/netui/tools/testrecorder/server/serverAdapter/ServerAdapterUtils.java?view=diff&r1=151187&r2=151188
==============================================================================
--- 
incubator/beehive/trunk/netui/src/testRecorder/org/apache/beehive/netui/tools/testrecorder/server/serverAdapter/ServerAdapterUtils.java
 (original)
+++ 
incubator/beehive/trunk/netui/src/testRecorder/org/apache/beehive/netui/tools/testrecorder/server/serverAdapter/ServerAdapterUtils.java
 Thu Feb  3 09:29:31 2005
@@ -21,6 +21,7 @@
 import org.apache.beehive.netui.tools.testrecorder.shared.Logger;
 
 /**
+ * This is basically a Factory for creating a Service Adapter.
  */
 public class ServerAdapterUtils {
 
@@ -33,12 +34,22 @@
     private static final String TOMCAT_SERVER_ADAPTER_CLASS =
             
"org.apache.beehive.netui.tools.testrecorder.server.serverAdapter.DefaultServerAdapter";
 
-    public static ServerAdapter SERVER_ADAPTER = createServerAdapter();
+    private static ServerAdapter SERVER_ADAPTER = createServerAdapter();
 
+    /**
+     * prevent the creation of the ServerAdapterUtils.  This is only accessed 
statically.
+     */
+    private ServerAdapterUtils() {}
+
+    /**
+     * Return the current ServerAdaptor.
+     * @return
+     */
     public static final ServerAdapter getServerAdapter() {
         return SERVER_ADAPTER;
     }
 
+    // this will create the ServerAdapter.
     private static ServerAdapter createServerAdapter() {
         String serverAdapterClassName = System.getProperty( 
SERVER_ADAPTER_PROP );
         if ( serverAdapterClassName == null ) {

Modified: 
incubator/beehive/trunk/netui/src/testRecorder/org/apache/beehive/netui/tools/testrecorder/server/state/PlaybackSessionImpl.java
URL: 
http://svn.apache.org/viewcvs/incubator/beehive/trunk/netui/src/testRecorder/org/apache/beehive/netui/tools/testrecorder/server/state/PlaybackSessionImpl.java?view=diff&r1=151187&r2=151188
==============================================================================
--- 
incubator/beehive/trunk/netui/src/testRecorder/org/apache/beehive/netui/tools/testrecorder/server/state/PlaybackSessionImpl.java
 (original)
+++ 
incubator/beehive/trunk/netui/src/testRecorder/org/apache/beehive/netui/tools/testrecorder/server/state/PlaybackSessionImpl.java
 Thu Feb  3 09:29:31 2005
@@ -203,9 +203,23 @@
         }
         try {
             DiffEngine engine = DiffEngineFactory.getInstance( filterData );
+
+            String resp = filterData.getRespData().getBody();
+            String body = null;
+            // replace the CDATA in the body. We escape the CDATA so we can 
nest this.
+            int pos = resp.indexOf("<![CDATA[");
+            if (pos != -1) {
+                body = resp;
+                resp = resp.replaceAll("\\Q<![CDATA[\\E","&lt;![CDATA[");
+                resp = resp.replaceAll("\\Q]]>","]]&gt;");
+                filterData.getRespData().setBody(resp);
+            }
             results = engine.diff( recordSessionBean.getRequestData( 
testCount() ),
                     recordSessionBean.getResponseData( testCount() ),
                     filterData.getReqData(), filterData.getRespData(), results 
);
+            if (body != null) {
+                filterData.getRespData().setBody(body);
+            }
         }
         catch ( Exception e ) {
             String msg = "Failed diffing results for session( " + 
getSessionName() +

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=151187&r2=151188
==============================================================================
--- 
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
 Thu Feb  3 09:29:31 2005
@@ -5428,11 +5428,6 @@
             <feature>escapeForHtml</feature>
          </features>
       </test>
-<!--
[EMAIL PROTECTED]: this is removed because you the test recorder can't handle 
the
-response which includes a CDATA
--->
-<!---
       <test>
          <name>RichTreeExpandOnServer</name>
          <description>[*goExpandOnServer/expandOnServer.jsp] Verification of 
the expandOnServer feature</description>
@@ -5447,7 +5442,6 @@
             <feature>expandOnServer</feature>
          </features>
       </test>
--->
       <test>
          <name>RichTreeHref</name>
          <description>[goHref/href.jsp] Test of the Href and Target 
attributes</description>


Reply via email to