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","<![CDATA[");
+ resp = resp.replaceAll("\\Q]]>","]]>");
+ 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","<![CDATA[");
+ resp = resp.replaceAll("\\Q]]>","]]>");
+ 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>