You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@commons.apache.org by di...@apache.org on 2002/04/22 17:48:34 UTC
cvs commit: jakarta-commons/latka/src/distribution/conf tests.ent suite.ent suite.dtd standardValidations.ent report.dtd custom-tests.ent
dion 02/04/22 08:48:34
Added: latka/src/distribution/bin latka.sh latka.bat
latka/src/docbook xml-reference.xml users-guide.xml
status.xml RELEASE_NOTES.txt release-plan-1.0.xml
proposal.xml index.xml developers-guide.xml
latka/src/distribution/tests/watchdog
WatchdogServletSuite.xml WatchdogJSPSuite.xml
processWatchdogServlet.pl processWatchdogJSP.pl
latka/src/distribution/tests/samples TestTaglibsWebsite.xml
TestCommonsWebsite.xml
latka/src/distribution/tests/latka-self-test TestLatka.xml
latka/src/distribution/conf tests.ent suite.ent suite.dtd
standardValidations.ent report.dtd custom-tests.ent
Log:
Moved from top level directories into src
Revision Changes Path
1.1 jakarta-commons/latka/src/distribution/bin/latka.sh
Index: latka.sh
===================================================================
#! /bin/sh
# pass in the path to the XML file for the Latka suite
# optionally override the default host and default port
#
# Author: Morgan Delagrange
# Author: dIon Gillard
#
# Version: $Id: latka.sh,v 1.9 2002/01/28 00:54:30 dion Exp $
#
# Set the LATKA_HOME environment variable to your latka install directory
if [ -z "$LATKA_HOME" ] ; then
LATKA_HOME=..
fi
# Set up classpath for latka - . + all jars in latka/lib + latka/lib
LATKA_LIB=$LATKA_HOME/lib
LATKA_LIBS=${LATKA_LIB}/*.jar
LATKA_CP=.
for lib in ${LATKA_LIBS}
do
# this condition will be false if there are no jar files in LATKA_LIB
if [ "$lib" != "${LATKA_LIBS}" ] ; then
LATKA_CP=$LATKA_CP:"$lib"
fi
done
LATKA_CP=$LATKA_CP:$LATKA_LIB
LATKA_VM_ARGS=-Djava.protocol.handler.pkgs=com.sun.net.ssl.internal.www.protocol
# run latka
java -classpath $LATKA_CP $LATKA_VM_ARGS org.apache.commons.latka.Latka $*
1.1 jakarta-commons/latka/src/distribution/bin/latka.bat
Index: latka.bat
===================================================================
@echo off
rem pass in the path to the XML file for the Latka suite
rem optionally override the default host and default port
java -classpath .;..\lib\jaxp.jar;..\lib\sax2.jar;..\lib\crimson.jar;..\lib\log4j.jar;..\lib\commons-httpclient.jar;..\lib\jakarta-latka.jar;..\lib\jakarta-regexp.jar;..\lib\jdom.jar;..\lib\xalan2.jar;..\lib\jsse.jar;..\lib\jnet.jar;..\lib\jcert.jar;..\lib -Djava.protocol.handler.pkgs=com.sun.net.ssl.internal.www.protocol org.apache.commons.latka.Latka %1 %2 %3 %4 %5 %6 %7 %8 %9
@echo on
1.1 jakarta-commons/latka/src/docbook/xml-reference.xml
Index: xml-reference.xml
===================================================================
<?xml version="1.0"?>
<!DOCTYPE chapter PUBLIC "-//OASIS//DTD DocBook XML V4.1.2//EN"
"http://www.oasis-open.org/docbook/xml/4.1.2/docbookx.dtd">
<!--
Author: Morgan Delagrange
Version: $Id: xml-reference.xml,v 1.1 2002/04/22 15:48:30 dion Exp $
-->
<chapter id="xml-reference">
<chapterinfo>
<authorgroup>
<author>
<firstname>Morgan</firstname>
<surname>Delagrange</surname>
<affiliation>
<address>
<email>mdelagra@yahoo.com</email>
</address>
</affiliation>
</author>
</authorgroup>
</chapterinfo>
<title>Latka XML Reference</title>
<section>
<title>Latka XML Reference</title>
<!-- REFENTRY: byteLength -->
<section id="latka.ref.byteLength" xreflabel="byteLength">
<title>byteLength</title>
<para>
validates the length of an HTTP(S) response
</para>
<section>
<title>DTD</title>
<programlisting><!ELEMENT byteLength EMPTY>
<!ATTLIST byteLength min CDATA "0"
max CDATA #IMPLIED
label CDATA #IMPLIED></programlisting>
</section>
<section>
<title>Attributes</title>
<informaltable colsep="1" rowsep="1">
<tgroup cols="4">
<colspec colwidth="1in"/>
<colspec colwidth="1in"/>
<colspec colwidth="1in"/>
<colspec colwidth="2in"/>
<thead>
<row>
<entry>Name</entry>
<entry>Type</entry>
<entry>Default</entry>
<entry>Description</entry>
</row>
</thead>
<tbody>
<row>
<entry><sgmltag class="attribute">min</sgmltag></entry>
<entry>NUMBER</entry>
<entry><sgmltag class="attvalue">0</sgmltag></entry>
<entry>
Minimum number of bytes required for a valid
response. Implied. Defaults to
<sgmltag class="attvalue">0</sgmltag>.
</entry>
</row>
<row>
<entry><sgmltag class="attribute">max</sgmltag></entry>
<entry>NUMBER</entry>
<entry><emphasis>none</emphasis></entry>
<entry>
Maximum number of bytes required for a valid
response. Optional. When absent, there is no
upper limit on the number of bytes in a valid
response.
</entry>
</row>
<row>
<entry><sgmltag class="attribute">label</sgmltag></entry>
<entry>CDATA</entry>
<entry><emphasis>none</emphasis></entry>
<entry>
Label associated with this validation, which may
be used in programatically generated documentation
or reports. Optional.
</entry>
</row>
</tbody>
</tgroup>
</informaltable>
</section>
<section>
<title>Parents</title>
<simplelist type="inline">
<member><xref linkend="latka.ref.validate"/></member>
</simplelist>
</section>
<section>
<title>Description</title>
<para>
A <sgmltag>byteLength</sgmltag> validation
passes if the HTTP(S) response is at least
<sgmltag class="attribute">min</sgmltag>
bytes long, and (when specified) at most
<sgmltag class="attribute">max</sgmltag> bytes long.
</para>
</section>
</section>
<!-- REFENTRY: COOKIE -->
<section id="latka.ref.cookie" xreflabel="cookie">
<title>cookie</title>
<para>
validates the presence of an HTTP(S) cookie in a response
</para>
<section>
<title>DTD</title>
<programlisting><![CDATA[<!ELEMENT cookie EMPTY>
<!ATTLIST cookie name CDATA #REQUIRED
value CDATA #IMPLIED
label CDATA #IMPLIED>]]></programlisting>
</section>
<section>
<title>Attributes</title>
<informaltable colsep="1" rowsep="1">
<tgroup cols="4">
<colspec colwidth="1in"/>
<colspec colwidth="1in"/>
<colspec colwidth="1in"/>
<colspec colwidth="2in"/>
<thead>
<row>
<entry>Name</entry>
<entry>Type</entry>
<entry>Default</entry>
<entry>Description</entry>
</row>
</thead>
<tbody>
<row>
<entry><sgmltag class="attribute">name</sgmltag></entry>
<entry>CDATA</entry>
<entry><emphasis>none, but required</emphasis></entry>
<entry>
The name of the cookie to look for.
Required.
</entry>
</row>
<row>
<entry><sgmltag class="attribute">value</sgmltag></entry>
<entry>CDATA</entry>
<entry><emphasis>none, optional</emphasis></entry>
<entry>
The value that the cookie with the specified name should
have (if any).
</entry>
</row>
<row>
<entry><sgmltag class="attribute">label</sgmltag></entry>
<entry>CDATA</entry>
<entry><emphasis>none</emphasis></entry>
<entry>
Label associated with this validation, which may
be used in programatically generated documentation
or reports. Optional.
</entry>
</row>
</tbody>
</tgroup>
</informaltable>
</section>
<section>
<title>Parents</title>
<simplelist type="inline">
<member><xref linkend="latka.ref.validate"/></member>
</simplelist>
</section>
<section>
<title>Description</title>
<para>
A <sgmltag>cookie</sgmltag> validation
passes if the HTTP(S) response contains a cookie with the
specified <sgmltag class="attribute">name</sgmltag>.
If a <sgmltag class="attribute">value</sgmltag> is provided,
the cookie must also have the specified value.
</para>
</section>
</section>
<!-- REFENTRY: CREDENTIALS -->
<section id="latka.ref.credentials" xreflabel="credentials">
<title>credentials</title>
<para>
username/password credentials for Basic HTTP authentication.
</para>
<section>
<title>DTD</title>
<programlisting><![CDATA[<!ELEMENT credentials EMPTY>
<!ATTLIST credentials userName CDATA #REQUIRED
password CDATA #REQUIRED>]]></programlisting>
</section>
<section>
<title>Attributes</title>
<informaltable colsep="1" rowsep="1">
<tgroup cols="4">
<colspec colwidth="1in"/>
<colspec colwidth="1in"/>
<colspec colwidth="1in"/>
<colspec colwidth="2in"/>
<thead>
<row>
<entry>Name</entry>
<entry>Type</entry>
<entry>Default</entry>
<entry>Description</entry>
</row>
</thead>
<tbody>
<row>
<entry><sgmltag class="attribute">userName</sgmltag></entry>
<entry>CDATA</entry>
<entry><emphasis>none, required</emphasis></entry>
<entry>User name. Required.</entry>
</row>
<row>
<entry><sgmltag class="attribute">password</sgmltag></entry>
<entry>CDATA</entry>
<entry><emphasis>none, required</emphasis></entry>
<entry>Password. Required.</entry>
</row>
</tbody>
</tgroup>
</informaltable>
</section>
<section>
<title>Parents</title>
<simplelist type="inline">
<member><xref linkend="latka.ref.request"/></member>
</simplelist>
</section>
<section>
<title>Description</title>
<para>
Contains credentials for HTTP Basic Authentication.
</para>
</section>
</section>
<!-- REFENTRY: maxRequestTime -->
<section id="latka.ref.maxRequestTime" xreflabel="maxRequestTime">
<title>maxRequestTime</title>
<para>validates the response time for an HTTP(S) request</para>
<section>
<title>DTD</title>
<programlisting><![CDATA[<!ELEMENT maxRequestTime EMPTY>
<!ATTLIST maxRequestTime millis CDATA "30000"
message CDATA #IMPLIED>]]></programlisting>
</section>
<section>
<title>Attributes</title>
<informaltable colsep="1" rowsep="1">
<tgroup cols="4">
<colspec colwidth="1in"/>
<colspec colwidth="1in"/>
<colspec colwidth="1in"/>
<colspec colwidth="2in"/>
<thead>
<row>
<entry>Name</entry>
<entry>Type</entry>
<entry>Default</entry>
<entry>Description</entry>
</row>
</thead>
<tbody>
<row>
<entry><sgmltag class="attribute">millis</sgmltag></entry>
<entry>NUMBER</entry>
<entry><sgmltag class="attvalue">30000</sgmltag></entry>
<entry>
Maximum amount of time, in milliseconds, in which
a response must be returned to be considered a
valid response. Implied. Defaults to
<sgmltag class="attvalue">30000</sgmltag> milliseconds,
or 30 seconds.
</entry>
</row>
<row>
<entry><sgmltag class="attribute">label</sgmltag></entry>
<entry>CDATA</entry>
<entry><emphasis>none</emphasis></entry>
<entry>
Label associated with this validation, which may
be used in programatically generated documentation
or reports. Optional.
</entry>
</row>
</tbody>
</tgroup>
</informaltable>
</section>
<section>
<title>Parents</title>
<simplelist type="inline">
<member><xref linkend="latka.ref.validate"/></member>
</simplelist>
</section>
<section>
<title>Description</title>
<para>
A <sgmltag>maxRequestTime</sgmltag> validation
passes if the HTTP(S) response is obtained in no more than
<sgmltag class="attribute">millis</sgmltag> milliseconds.
</para>
</section>
</section>
<!-- REFENTRY: PARAM -->
<section id="latka.ref.param" xreflabel="param">
<title>param</title>
<para>indicates a request parameter as part of an HTTP(S) request to be executed</para>
<section>
<title>DTD</title>
<programlisting><!ELEMENT request (<xref linkend="latka.ref.paramName"/>, <xref linkend="latka.ref.paramValue"/>)></programlisting>
</section>
<section>
<title>Attributes</title>
<para>
<emphasis>None.</emphasis>
</para>
</section>
<section>
<title>Parents</title>
<simplelist type="inline">
<member><xref linkend="latka.ref.request"/></member>
</simplelist>
</section>
<section>
<title>Description</title>
<para>
A parameter to be submitted as part of a <xref linkend="latka.ref.request"/>.
</para>
</section>
</section>
<!-- REFENTRY: paramName -->
<section id="latka.ref.paramName" xreflabel="paramName">
<title>paramName</title>
<para>the name part of a name/value pair parameter</para>
<section>
<title>DTD</title>
<programlisting><!ELEMENT paramName (#PCDATA)></programlisting>
</section>
<section>
<title>Attributes</title>
<para>
<emphasis>None.</emphasis>
</para>
</section>
<section>
<title>Parents</title>
<simplelist type="inline">
<member><xref linkend="latka.ref.param"/></member>
</simplelist>
</section>
<section>
<title>Description</title>
<para>
The name part of <xref linkend="latka.ref.param"/>
to be submitted as part of a <xref linkend="latka.ref.request"/>.
</para>
</section>
</section>
<!-- REFENTRY: paramValue -->
<section id="latka.ref.paramValue" xreflabel="paramValue">
<title>paramValue</title>
<para>the value part of a name/value pair parameter</para>
<section>
<title>DTD</title>
<programlisting><!ELEMENT paramValue (#PCDATA)></programlisting>
</section>
<section>
<title>Attributes</title>
<para>
<emphasis>None.</emphasis>
</para>
</section>
<section>
<title>Parents</title>
<simplelist type="inline">
<member><xref linkend="latka.ref.param"/></member>
</simplelist>
</section>
<section>
<title>Description</title>
<para>
The value part of <xref linkend="latka.ref.param"/>
to be submitted as part of a <xref linkend="latka.ref.request"/>.
</para>
</section>
</section>
<!-- REFENTRY: REGEXP -->
<section id="latka.ref.regexp" xreflabel="regexp">
<title>regexp</title>
<para>
validates the presence or absence of a regular expression within an HTTP(S) response
</para>
<section>
<title>DTD</title>
<programlisting><![CDATA[<!ELEMENT regexp EMPTY>
<!ATTLIST regexp pattern CDATA #REQUIRED
cond (true | false) "true"
ignoreCase (true | false) "false"
label CDATA #IMPLIED>]]></programlisting>
</section>
<section>
<title>Attributes</title>
<informaltable colsep="1" rowsep="1">
<tgroup cols="4">
<colspec colwidth="1in"/>
<colspec colwidth="1in"/>
<colspec colwidth="1in"/>
<colspec colwidth="2in"/>
<thead>
<row>
<entry>Name</entry>
<entry>Type</entry>
<entry>Default</entry>
<entry>Description</entry>
</row>
</thead>
<tbody>
<row>
<entry><sgmltag class="attribute">pattern</sgmltag></entry>
<entry>CDATA</entry>
<entry><emphasis>none, but required.</emphasis></entry>
<entry>
The regular expression to look for.
</entry>
</row>
<row>
<entry><sgmltag class="attribute">cond</sgmltag></entry>
<entry>
<emphasis>Enumeration:</emphasis>
<simplelist>
<member><sgmltag class="attvalue">true</sgmltag></member>
<member><sgmltag class="attvalue">false</sgmltag></member>
</simplelist>
</entry>
<entry><sgmltag class="attvalue">true</sgmltag></entry>
<entry>
When <sgmltag class="attvalue">true</sgmltag>,
the given <sgmltag class="attribute">pattern</sgmltag>
must match within the response.
When <sgmltag class="attvalue">false</sgmltag>,
the given <sgmltag class="attribute">pattern</sgmltag>
must not match within the response.
</entry>
</row>
<row>
<entry><sgmltag class="attribute">ignoreCase</sgmltag></entry>
<entry>
<emphasis>Enumeration:</emphasis>
<simplelist>
<member><sgmltag class="attvalue">true</sgmltag></member>
<member><sgmltag class="attvalue">false</sgmltag></member>
</simplelist>
</entry>
<entry><sgmltag class="attvalue">false</sgmltag></entry>
<entry>
When <sgmltag class="attvalue">true</sgmltag>,
case is ignored within the
given <sgmltag class="attribute">pattern</sgmltag>.
</entry>
</row>
<row>
<entry><sgmltag class="attribute">label</sgmltag></entry>
<entry>CDATA</entry>
<entry><emphasis>none</emphasis></entry>
<entry>
Label associated with this validation, which may
be used in programatically generated documentation
or reports. Optional.
</entry>
</row>
</tbody>
</tgroup>
</informaltable>
</section>
<section>
<title>Parents</title>
<simplelist type="inline">
<member><xref linkend="latka.ref.validate"/></member>
</simplelist>
</section>
<section>
<title>Description</title>
<para>
A <sgmltag>maxRequestTime</sgmltag> validation
passes if the HTTP(S) response is obtained in no more than
<sgmltag class="attribute">millis</sgmltag> milliseconds.
</para>
</section>
</section>
<!-- REFENTRY: REQUEST -->
<section id="latka.ref.request" xreflabel="request">
<title>request</title>
<para>indicates an HTTP(S) request to be executed</para>
<section>
<title>DTD</title>
<programlisting><!ELEMENT request (<xref linkend="latka.ref.credentials"/>?, <xref linkend="latka.ref.param"/>*, <xref linkend="latka.ref.validate"/>?)>
<!ATTLIST request path CDATA #REQUIRED
method (post | get) "get"
host CDATA #IMPLIED
port CDATA #IMPLIED
label CDATA #IMPLIED></programlisting>
</section>
<section>
<title>Attributes</title>
<para>
<informaltable colsep="1" rowsep="1">
<tgroup cols="4">
<colspec colwidth="1in"/>
<colspec colwidth="1in"/>
<colspec colwidth="1in"/>
<colspec colwidth="2in"/>
<thead>
<row>
<entry>Name</entry>
<entry>Type</entry>
<entry>Default</entry>
<entry>Description</entry>
</row>
</thead>
<tbody>
<row>
<entry><sgmltag class="attribute">path</sgmltag></entry>
<entry>CDATA</entry>
<entry><emphasis>none, but required</emphasis></entry>
<entry>Request path. Required.</entry>
</row>
<row>
<entry><sgmltag class="attribute">method</sgmltag></entry>
<entry>
<emphasis>enumeration:</emphasis>
<simplelist>
<member><sgmltag class="attvalue">get</sgmltag></member>
<member><sgmltag class="attvalue">post</sgmltag></member>
</simplelist>
</entry>
<entry><sgmltag class="attvalue">get</sgmltag></entry>
<entry>HTTP method. Implied. Defaults to <sgmltag class="attvalue">get</sgmltag>.</entry>
</row>
<row>
<entry><sgmltag class="attribute">host</sgmltag></entry>
<entry>CDATA</entry>
<entry><emphasis>none</emphasis></entry>
<entry>
Host to submit request to.
Optional.
When absent, uses default from <xref linkend="latka.ref.suite"/>.
</entry>
</row>
<row>
<entry><sgmltag class="attribute">port</sgmltag></entry>
<entry>NUMBER</entry>
<entry><emphasis>depends upon protocol</emphasis></entry>
<entry>
Port to submit request to.
Optional.
When absent, uses default from <xref linkend="latka.ref.suite"/>.
</entry>
</row>
<row>
<entry><sgmltag class="attribute">label</sgmltag></entry>
<entry>CDATA</entry>
<entry><emphasis>none</emphasis></entry>
<entry>
Label associated with this validation, which may
be used in programatically generated documentation
or reports. Optional.
</entry>
</row>
</tbody>
</tgroup>
</informaltable>
</para>
</section>
<section>
<title>Parents</title>
<simplelist type="inline">
<member><xref linkend="latka.ref.suite"/></member>
<member><xref linkend="latka.ref.session"/></member>
</simplelist>
</section>
<section>
<title>Description</title>
<para>
An HTTP(S) request to be executed.
</para>
</section>
</section>
<!-- REFENTRY: SESSION -->
<section id="latka.ref.session" xreflabel="session">
<title>session</title>
<para>wrapper for a sequence of <xref linkend="latka.ref.request"/>s associated with the same state (session)</para>
<section>
<title>DTD</title>
<programlisting><!ELEMENT session (<xref linkend="latka.ref.request"/>+)>
<!ATTLIST session sessionId CDATA #IMPLIED
label CDATA #IMPLIED></programlisting>
</section>
<section>
<title>Attributes</title>
<informaltable colsep="1" rowsep="1">
<tgroup cols="4">
<colspec colwidth="1in"/>
<colspec colwidth="1in"/>
<colspec colwidth="1in"/>
<colspec colwidth="2in"/>
<thead>
<row>
<entry>Name</entry>
<entry>Type</entry>
<entry>Default</entry>
<entry>Description</entry>
</row>
</thead>
<tbody>
<row>
<entry><sgmltag class="attribute">sessionId</sgmltag></entry>
<entry>CDATA</entry>
<entry><emphasis>none</emphasis></entry>
<entry>
Unique identifier for this <sgmltag>session</sgmltag>.
Sessions with the same <sgmltag class="attribute">sessionId</sgmltag>
will share the same underlying state (e.g., cookies, etc.)
</entry>
</row>
<row>
<entry><sgmltag class="attribute">label</sgmltag></entry>
<entry>CDATA</entry>
<entry><emphasis>none</emphasis></entry>
<entry>
Label associated with this <sgmltag>session</sgmltag>, which may
be used in programatically generated documentation
or reports. Optional.
</entry>
</row>
</tbody>
</tgroup>
</informaltable>
</section>
<section>
<title>Parents</title>
<simplelist type="inline">
<member><xref linkend="latka.ref.suite"/></member>
</simplelist>
</section>
<section>
<title>Description</title>
<para>
A <sgmltag>session</sgmltag> is a collection of
<xref linkend="latka.ref.request"/>s
that share the same underlying state. For example,
a cookie that returned in the response to one
<xref linkend="latka.ref.request"/>
will be included in subsequent
<xref linkend="latka.ref.request"/>s.
</para>
</section>
</section>
<!-- REFENTRY: statusCode -->
<section id="latka.ref.statusCode" xreflabel="statusCode">
<title>statusCode</title>
<para>validates an HTTP response code</para>
<section>
<title>DTD</title>
<programlisting><![CDATA[<!ELEMENT statusCode EMPTY>
<!ATTLIST statusCode code CDATA "200"
label CDATA #IMPLIED>]]></programlisting>
</section>
<section>
<title>Attributes</title>
<informaltable colsep="1" rowsep="1">
<tgroup cols="4">
<colspec colwidth="1in"/>
<colspec colwidth="1in"/>
<colspec colwidth="1in"/>
<colspec colwidth="2in"/>
<thead>
<row>
<entry>Name</entry>
<entry>Type</entry>
<entry>Default</entry>
<entry>Description</entry>
</row>
</thead>
<tbody>
<row>
<entry><sgmltag class="attribute">code</sgmltag></entry>
<entry>NUMBER</entry>
<entry><sgmltag class="attvalue">200</sgmltag></entry>
<entry>
Numeric HTTP response code to expect.
Implied. Defaults to
<sgmltag class="attvalue">200</sgmltag>.
</entry>
</row>
<row>
<entry><sgmltag class="attribute">label</sgmltag></entry>
<entry>CDATA</entry>
<entry><emphasis>none</emphasis></entry>
<entry>
Label associated with this validation, which may
be used in programatically generated documentation
or reports. Optional.
</entry>
</row>
</tbody>
</tgroup>
</informaltable>
</section>
<section>
<title>Parents</title>
<simplelist type="inline">
<member><xref linkend="latka.ref.validate"/></member>
</simplelist>
</section>
<section>
<title>Description</title>
<para>
A <sgmltag>statusCode</sgmltag> validation
passes if the HTTP(S) response code for the given request
matches the value specified by
<sgmltag class="attribute">code</sgmltag>.
</para>
</section>
</section>
<!-- REFENTRY: SUITE -->
<section id="latka.ref.suite" xreflabel="suite">
<title>suite</title>
<para>root element for a suite of tests</para>
<section>
<title>DTD</title>
<programlisting><!ELEMENT suite ( (<xref linkend="latka.ref.session"/> | <xref linkend="latka.ref.request"/>)+ )>
<!ATTLIST suite defaultHost CDATA #IMPLIED
defaultPort CDATA #IMPLIED
label CDATA #IMPLIED></programlisting>
</section>
<section>
<title>Attributes</title>
<informaltable colsep="1" rowsep="1">
<tgroup cols="4">
<colspec colwidth="1in"/>
<colspec colwidth="1in"/>
<colspec colwidth="1in"/>
<colspec colwidth="2in"/>
<thead>
<row>
<entry>Name</entry>
<entry>Type</entry>
<entry>Default</entry>
<entry>Description</entry>
</row>
</thead>
<tbody>
<row>
<entry><sgmltag class="attribute">defaultHost</sgmltag></entry>
<entry>CDATA</entry>
<entry><emphasis>none</emphasis></entry>
<entry>
Default hostname for <xref linkend="latka.ref.request"/>s. Optional.
</entry>
</row>
<row>
<entry><sgmltag class="attribute">defaultPort</sgmltag></entry>
<entry>NUMBER</entry>
<entry><emphasis>none</emphasis></entry>
<entry>
Default port for <xref linkend="latka.ref.request"/>s. Optional.
</entry>
</row>
<row>
<entry><sgmltag class="attribute">label</sgmltag></entry>
<entry>CDATA</entry>
<entry><emphasis>none</emphasis></entry>
<entry>
Label associated with this <sgmltag>suite</sgmltag>, which may
be used in programatically generated documentation
or reports. Optional.
</entry>
</row>
</tbody>
</tgroup>
</informaltable>
</section>
<section>
<title>Parents</title>
<para>
<emphasis>None.</emphasis>
</para>
</section>
<section>
<title>Description</title>
<para>
A <sgmltag>suite</sgmltag> is a collection of
<xref linkend="latka.ref.request"/>s
and <xref linkend="latka.ref.session"/>s
to execute.
</para>
</section>
</section>
<!-- REFENTRY: VALIDATE -->
<section id="latka.ref.validate" xreflabel="validate">
<title>validate</title>
<para>
indicates the suite of validations to apply to the
current <xref linkend="latka.ref.request"/> (and its response)
</para>
<section>
<title>DTD</title>
<programlisting><!ELEMENT validate (<xref linkend="latka.ref.byteLength"/> | <xref linkend="latka.ref.cookie"/> | <xref linkend="latka.ref.maxRequestTime"/> | <xref linkend="latka.ref.regexp"/> | <xref linkend="latka.ref.statusCode"/> | <xref linkend="latka.ref.xpath"/> )+></programlisting>
</section>
<section>
<title>Attributes</title>
<para>
<emphasis>None.</emphasis>
</para>
</section>
<section>
<title>Parents</title>
<simplelist type="inline">
<member><xref linkend="latka.ref.request"/></member>
</simplelist>
</section>
<section>
<title>Description</title>
<para>
Contains the set of validations to apply to the
current <xref linkend="latka.ref.request"/>
(and its response).
</para>
</section>
</section>
<!-- REFENTRY: xpath -->
<section id="latka.ref.xpath" xreflabel="xpath">
<title>xpath</title>
<para>
xpath - assuming the HTTP(s) response contains XML, checks if an
<ulink url="http://www.w3.org/TR/xpath">XPath</ulink> expression matches
</para>
<section>
<title>DTD</title>
<programlisting><!ELEMENT xpath EMPTY>
<!ATTLIST xpath select CDATA #REQUIRED
cond (true | false) "true"
value CDATA #IMPLIED
label CDATA #IMPLIED></programlisting>
</section>
<section>
<title>Attributes</title>
<informaltable colsep="1" rowsep="1">
<tgroup cols="4">
<colspec colwidth="1in"/>
<colspec colwidth="1in"/>
<colspec colwidth="1in"/>
<colspec colwidth="2in"/>
<thead>
<row>
<entry>Name</entry>
<entry>Type</entry>
<entry>Default</entry>
<entry>Description</entry>
</row>
</thead>
<tbody>
<row>
<entry><sgmltag class="attribute">select</sgmltag></entry>
<entry>CDATA</entry>
<entry><emphasis>none</emphasis></entry>
<entry>
An XPath expression, designed to match a node in the
XML body of the response.
</entry>
</row>
<row>
<entry><sgmltag class="attribute">cond</sgmltag></entry>
<entry>
<emphasis>Enumeration:</emphasis>
<simplelist>
<member><sgmltag class="attvalue">true</sgmltag></member>
<member><sgmltag class="attvalue">false</sgmltag></member>
</simplelist>
</entry>
<entry>
<sgmltag class="attvalue">true</sgmltag>
</entry>
<entry>
When <sgmltag class="attvalue">true</sgmltag>, the given XPath expression must match within the
response. When <sgmltag class="attvalue">false</sgmltag>, the given XPath expression must not
match within the response.
</entry>
</row>
<row>
<entry><sgmltag class="attribute">value</sgmltag></entry>
<entry>
CDATA
</entry>
<entry>
<emphasis>none, optional</emphasis>
</entry>
<entry>
The value that the matched node should have, if any.
</entry>
</row>
<row>
<entry><sgmltag class="attribute">label</sgmltag></entry>
<entry>
CDATA
</entry>
<entry>
<emphasis>none</emphasis>
</entry>
<entry>
Label associated with this validation, which may be used
in programatically generated documentation or reports. Optional.
</entry>
</row>
</tbody>
</tgroup>
</informaltable>
</section>
<section>
<title>Parents</title>
<simplelist type="inline">
<member><xref linkend="latka.ref.validate"/></member>
</simplelist>
</section>
<section>
<title>Description</title>
<para>
A xpath validation passes if the HTTP(S) response body contains XML,
and the specified XPath expression matches (or not, depending on cond)
</para>
</section>
</section>
</section>
</chapter>
1.1 jakarta-commons/latka/src/docbook/users-guide.xml
Index: users-guide.xml
===================================================================
<?xml version="1.0"?>
<!DOCTYPE chapter PUBLIC "-//OASIS//DTD DocBook XML V4.1.2//EN" "http://www.oasis-open.org/docbook/xml/4.1.2/docbookx.dtd">
<!--
Author: dIon Gillard
Version: $Id: users-guide.xml,v 1.1 2002/04/22 15:48:32 dion Exp $
-->
<chapter id="users-guide">
<title>Latka User's Guide</title>
<!-- taken directly from index.xml -->
<section id="introduction">
<title>What is <firstterm>Latka</firstterm></title>
<para>Latka is a functional (end-to-end) testing tool. It is implemented
in Java, and uses an XML syntax to define a series of HTTP (or HTTPS)
requests and a set of <firstterm>validations</firstterm> used to verify
that the request was processed correctly.
</para>
<remark>
Although Latka currently supports only HTTP and HTTPS
request/response validations, it may be expanded to perform other
sorts of functional testing as warranted.
</remark>
<para>
A simple example of a Latka XML test suite is shown in our
<ulink url="http://cvs.apache.org/viewcvs/jakarta-commons/latka/tests/samples/TestCommonsWebsite.xml">
sample Latka test suite</ulink>.
When processed, this example would verify that the Jakarta Commons
homepage is present and that all the Commons Components have online
documenation.
</para>
</section>
<section id="run-latka">
<title>Running Latka</title>
<para>A Latka test suite can be run:
<itemizedlist>
<listitem><para>From a command prompt</para></listitem>
<listitem><para>From the Latka web application</para></listitem>
<listitem><para>From a JUnit TestRunner</para></listitem>
</itemizedlist>
<remark>To run Latka as an ant task, we suggest you use the JUnit
support of ant and write a small test case to invoke Latka, as discussed later</remark>
</para>
<section id="run-latka-cmd">
<title>Running Latka from the command prompt</title>
<para>There are two scripts (or batch files) shipped with latka:
<orderedlist>
<listitem><para>latka.bat - for Windows machines</para></listitem>
<listitem><para>latka.sh - for Unix machines</para></listitem>
</orderedlist>
</para>
<para>Both of the scripts take the following parameters: </para>
<orderedlist>
<listitem>
<para>a test suite URL, e.g.
<programlisting>file:./TestCommonsWebsite.xml</programlisting> or
<programlisting>http://jakarta.apache.org/commons/latka/TestCommonsWebsite.xml</programlisting>
</para>
</listitem>
<listitem>
<para>Optionally properties files of Latka options
can be specified using the propfile parameter: <programlisting>propfile:<file name></programlisting>
</para></listitem>
<listitem>
<para>Optionally individual Latka options may be specified
using the prop parameter: <programlisting>prop:<prop name>=<prop value></programlisting>
</para>
</listitem>
</orderedlist>
<para>For more information about what properties you can pass to
Latka, please see the <link linkend="properties">Latka Properties</link>
definition</para>
</section>
<section id="run-latka-webapp">
<title>Running Latka from a web application (Under Construction)</title>
<para>The Latka release distribution comes with a web application
(latka-webapp.war) ready to deploy on a conforming Servlet 2.2/ JSP 1.1
container.</para>
<para>For example, to install the Latka web application into a
<ulink url="http://jakarta.apache.org/tomcat/">Tomcat 4</ulink> server, simply
copy the .war file to Tomcat's webapp directory, e.g.</para>
<programlisting>[Win32] copy latka-webapp.war c:\tomcat4\webapps</programlisting>
<para>or</para>
<programlisting>[Unix] cp latka-webapp.war /usr/java/jtomcat4/webapps</programlisting>
<para>and restart Tomcat</para>
<section id="using-latka-webapp">
<title>Using the Latka Web App</title>
<para>Once you've gotten the Latka web app running, it's
straightforward to use. You can either
<orderedlist>
<listitem><para>Run a latka</para></listitem>
</orderedlist>
</para>
</section>
</section>
<section id="run-latka-junit">
<title>Running Latka as a JUnit Test Case</title>
<para>Here's hoping you're familiar with <firstterm>JUnit</firstterm></para>
<para>Latka ships with a class <ulink
url="http://jakarta.apache.org/commons/latka/apidocs/org/apache/commons/latka/junit/JUnitTestAdapter.html"
>JUnitTestAdapter</ulink>
that bridges Latka and JUnit. You can use this class to create JUnit
<firstterm>Test</firstterm>s from Latka's XML documents. For example, calling
<programlisting>JUnitTestAdapter.createTestFromFile(fileName)</programlisting>
with a valid Latka XML document's file name will return you back a JUnit Test,
ready to be added to a TestCase.</para>
<para>So, essentially you code a JUnit TestCase, and in the
<emphasis>suite</emphasis> method, you add the Tests created by JUnitTestAdapter
to the JUnit TestSuite.
<programlisting>
public static Test suite() {
TestSuite suite = new TestSuite();
String fileName = "tests/samples/TestCommonsWebsite.xml";
suite.addTest(JUnitTestAdapter.createTestFromFile(fileName));
return suite;
}
</programlisting>
</para>
<para>Once you have Latka's suite as a JUnit TestSuite, you can run it
using any JUnit TestRunner to execute the suite, including those shipped with
<ulink url="http://jakarta.apache.org/ant/">ant</ulink>.</para>
</section>
</section>
<section id="test-suite">
<title>Anatomy of a test suite (Under Construction)</title>
<para>For a <emphasis>reference</emphasis> of the XML tags that can
possibly be used in developing latka test suites, see
<ulink url="http://jakarta.apache.org/commons/latka/xml-reference.html">The
XML Reference</ulink></para>
<para>A Latka test suite is an XML document with a top level element
of <firstterm>suite</firstterm></para>
</section>
<section id="properties">
<title>Latka Properties (Under Construction)</title>
<para>Definitive list of properties and their meanings...</para>
</section>
</chapter>
1.1 jakarta-commons/latka/src/docbook/status.xml
Index: status.xml
===================================================================
<?xml version="1.0"?>
<!DOCTYPE chapter PUBLIC "-//OASIS//DTD DocBook XML V4.1.2//EN"
"http://www.oasis-open.org/docbook/xml/4.1.2/docbookx.dtd">
<!--
Author: Morgan Delagrange
Author: Doug Sale
Author: Rodney Waldhoff
Author: dIon Gillard
Version: $Id: status.xml,v 1.1 2002/04/22 15:48:32 dion Exp $
-->
<chapter id="status">
<chapterinfo>
<authorgroup>
<author><firstname>Morgan</firstname><surname>Delagrange</surname>
<affiliation><address><email>mdelagra@yahoo.com</email></address></affiliation>
</author>
<author><firstname>Doug</firstname><surname>Sale</surname>
<affiliation><address><email>dsale@us.britannica.com</email></address></affiliation>
</author>
<author><firstname>Rodney</firstname><surname>Waldhoff</surname>
<affiliation><address><email>rwaldhof@us.britannica.com</email></address></affiliation>
</author>
<author><firstname>dIon</firstname><surname>Gillard</surname>
<affiliation><address><email>trongus@yahoo.com</email></address></affiliation>
</author>
</authorgroup>
</chapterinfo>
<title>Status File for Jakarta Commons "Latka" Application</title>
<section>
<title>INTRODUCTION</title>
<para>Testing websites is a pain. Many regression tests for a website can
be verified automatically, speeding up the quality assurance process
and allowing the engineers to focus on the more important issues.
Additionally developers may want to monitor their development, QA
and production environment, so that they can be sure that everything
is running as they expect.</para>
<para>Latka is an HTTP functional testing suite for automated QA, acceptance and
regression testing. Latka suites are XML documents, which
can be written and/or modified without writing Java code. Latka tests can be
created quickly and modified easily, even by engineers without Java experience.</para>
</section>
<section>
<title>2. DEPENDENCIES</title>
<para><emphasis>Latka</emphasis> relies on:</para>
<itemizedlist>
<listitem><para>Java Development Kit (Version 1.3 or later)</para></listitem>
<listitem><para>A JAXP 1.1 implementation</para></listitem>
<listitem><para>A SAX 2.0 parser conforming to the JAXP 1.1 APIs</para></listitem>
<listitem><para>An XSLT parser conforming to JAXP 1.1</para></listitem>
<listitem><para>HttpClient from Commons - for HTTP communcation</para></listitem>
<listitem><para>Jakarta Log4J logging package</para></listitem>
<listitem><para>JUnit - for testing</para></listitem>
<listitem><para>JSSE - SSL support (optional at runtime)</para></listitem>
<listitem><para>Jakarta-Regexp - regular expression tests and XML preprocessing (for variable support)</para></listitem>
<listitem><para>JDOM - for building XML reports</para></listitem>
</itemizedlist>
</section>
<section>
<title>3. RELEASE INFO</title>
<para>Current Release: <ulink
url="http://jakarta.apache.org/builds/jakarta-commons/release/commons-latka/1.0/">
1.0 alpha 1</ulink></para>
<para>Planned Next Release: 1.0, timeframe: 12 April, 2002</para>
</section>
<section>
<title>4. COMMITTERS</title>
<para>The following individuals are the primary developers and
maintainers of this component. Developers who plan to use
<emphasis>Latka</emphasis> in their own projects are encouraged to collaborate
on the future development of this component to ensure that it continues to meet
a variety of needs.</para>
<itemizedlist>
<listitem><para>Morgan Delagrange</para></listitem>
<listitem><para>Doug Sale</para></listitem>
<listitem><para>Rodney Waldhoff</para></listitem>
<listitem><para>Jeff Turner (part-time)</para></listitem>
<listitem><para>dIon Gillard</para></listitem>
</itemizedlist>
</section>
<section>
<title>5. DEVELOPMENT STATUS</title>
<para>Latka development status:</para>
<itemizedlist>
<listitem><para>Latka 1.0 Alpha 1 released</para></listitem>
<listitem><para>Latka library and command line interface:</para>
<para> Fully functional, but with potential interface changes
forthcoming.</para></listitem>
<listitem><para>Latka tag library (in Jakarta Taglibs):</para>
<para> Experimental, unstable.</para></listitem>
<listitem><para>Latka web application (in Commons Sandbox):</para>
<para> Experimental, promising but unstable.</para></listitem>
</itemizedlist>
<section>
<title>Todo items:</title>
<itemizedlist>
<listitem><para>Add a universal mechanism for negating
validators. Currently regexp and xpath validators implement negation internally
as a special <literal>cond</literal> attribute. This adds somewhat to the
internal complexity. It would be better to have the framework handle negation by
being able to wrap tests in a <not/> element.</para></listitem>
<listitem><para>Make the inclusion of individual validators
optional at build time.</para></listitem>
<listitem><para>Set up Latka to use the proxy support of later
<ulink url="http://jakarta.apache.org/commons/httpclient/">HttpClient</ulink>
builds</para></listitem>
<listitem><para>Write unit tests for each validator, with a mock
object implementing the Response interface</para></listitem>
<listitem><para>Fix the webpages build so that it builds into
the build/docs directory and then copies to commons</para></listitem>
<listitem><para>Create better documentation, especially the
<ulink url="users-guide.html">User's Guide</ulink> and
<ulink url="developers-guide.html">Developer's Guide</ulink></para></listitem>
<listitem><para>Ensure coding standards are consistent across
the project's codebase, preferably using a tool such as
<ulink url="http://checkstyle.sourceforge.net/">CheckStyle</ulink></para>
</listitem>
<listitem><para>Add XMLValidate tasks to the build file so that
any XML doc with a DTD is checked before used</para></listitem>
</itemizedlist>
</section>
</section>
</chapter>
1.1 jakarta-commons/latka/src/docbook/RELEASE_NOTES.txt
Index: RELEASE_NOTES.txt
===================================================================
LATKA RELEASE NOTES
-------------------
Note: Alpha and beta releases are not frozen in terms of the API. There may be changes before the final release.
1.0 Alpha 2
-----------
Webapp interface
- Added last modified dates to the list of tests on the server
- Added more HTML-friendly stylesheet for test results
- Added servlet to view the XML of a Latka suite. This servlet
resolves all external entities.
Webapp and command-line interface
- Added ability to set default properties from the classpath using the
latka.properties file, and added default prop files to the command-line
and webapp distributions
- Removed unnecessary redundancy from labels for request failures and
errors.
- Removed labels from skipped requests, which were unnecessary and not
permitted by the DTD.
1.0 Alpha 1
-----------
- First Latka release
1.1 jakarta-commons/latka/src/docbook/release-plan-1.0.xml
Index: release-plan-1.0.xml
===================================================================
<?xml version="1.0"?>
<!DOCTYPE chapter PUBLIC "-//OASIS//DTD DocBook XML V4.1.2//EN"
"http://www.oasis-open.org/docbook/xml/4.1.2/docbookx.dtd">
<!--
Author: dIon Gillard
Version: $Id: release-plan-1.0.xml,v 1.1 2002/04/22 15:48:33 dion Exp $
-->
<chapter id="status">
<chapterinfo>
<authorgroup>
<author><firstname>dIon</firstname><surname>Gillard</surname>
<affiliation><address><email>dion@apache.org</email></address></affiliation>
</author>
</authorgroup>
</chapterinfo>
<title>Release Plan for Latka 1.0</title>
<section>
<title>Administrivia</title>
<para>This document describes a plan for a 1.0 release of the
Jakarta-Commons Latka component (for the remainder of this document, simply
"Latka").</para>
<para>As per the
<ulink url="http://jakarta.apache.org/site/decisions.html">
Jakarta/ASF guidelines</ulink>, this document doesn't mean anything until
accepted by the relevant committer community via a lazy majority vote
(hereafter, simply "lazy majority"). Once accepted, it may be replaced by an
alternative plan, again subject to lazy majority approval.</para>
<para>Non-binding votes (votes cast by those outside the relevant
committer community) are welcome, but only binding votes are significant for
decision making purposes.</para>
</section>
<section><title>Objective</title>
<para>The objective of the 1.0 release of Latka is to provide a stable
and robust release focused on design clarity, forward compatibility, and ease
of use (i.e., with the intention of providing a stable foundation for the
further evolution of the Latka component).</para>
<para>Specifically, the 1.0 release seeks to
introduce and evaluate changes based upon the following
(ordered) criteria:
<itemizedlist>
<listitem><para>Freedom from defects (deviation from the
documented or reasonably expected behavior)</para></listitem>
<listitem><para>Interface and design consistency and clarity,
ease-of-use, and ease-of-extension.</para></listitem>
<listitem><para>Forward compatibility. That is, the ability to
add support for features that can be reasonably predicted without "breaking"
the external (and to a lesser degree, internal) interface of the component
</para></listitem>
</itemizedlist>
</para>
<para>The 1.0 release should also include:
<itemizedlist>
<listitem><para>Adequate documentation (including both
API-level/JavaDoc documentation as well documentation suitable for use on the
Jakarta-Commons site)</para></listitem>
<listitem><para>A substantial unit and functional test suite
suitable for ensuring the quality and compatibility of release 1.0 and
subsequent releases.</para></listitem>
<listitem><para>A clear demarcation of the "internal" and
"external" interfaces within Latka, as defined in the
<ulink url="http://jakarta.apache.org/commons/versioning.html">
Versioning Guidelines</ulink> document</para></listitem>
</itemizedlist>
</para>
</section>
<section>
<title>Release Manager</title>
<para><ulink url="mailto:dion@apache.org">dIon Gillard</ulink>
(assuming no one else is really itching to do it)</para>
</section>
<section>
<title>Timeline</title>
<para>(All days ending at 23:59:59 GMT in case of dispute.)
<itemizedlist>
<listitem>
<para>Review Period</para>
<para>Friday, March 29 - Friday, 5 April 2002</para>
<para>During the Review Period specific design, functional and
contract changes to Latka will be considered on the Jakarta-Commons mailing
list, using the following process:
<itemizedlist>
<listitem><para>Any developer or committer that
would like to see a specific change (or group of changes) enacted or
rolled back will suggest it on the <ulink url="jakarta-commons@jakarta.apache.org">
Jakarta-Commons mailing list</ulink></para></listitem>
<listitem><para>Any interested committer that
opposes a given change (or group of changes) is obligated to indicate this
disapproval on the list during the Review Period.</para></listitem>
<listitem><para>We will seek, but not strictly
require consensus on each decision point. If consensus cannot be reached,
any committer may call for a vote to resolve the issue via a lazy majority vote.
</para></listitem>
</itemizedlist>
</para>
<para>The Review Period may be closed before 5 April 2002,
given one "workday"'s notice and lazy majority approval.</para>
<para>The Review Period may be extended by one week (at a
time) given lazy majority approval, in case issues still need to be resolved.
</para>
</listitem>
<listitem>
<para>Implementation Period</para>
<para>Friday, 5 April 2002 - Friday, 12 April 2002
(assuming the Review Period is not extended)</para>
<para>During this period, any remaining implementation,
testing and documentation will be completed. No new features or "public"
interface changes will be considered in-scope at this time (short of a
lazy-majority approved revised release plan or any "showstopper" defects).
</para>
<para>At the end of the Implementation Period, a formal
release vote will be called, subject to lazy approval.</para>
<para>A formal release vote may be called before 12 April,
but after the end of the Review Period, if appropriate.</para>
</listitem>
</itemizedlist>
</para>
</section>
</chapter>
1.1 jakarta-commons/latka/src/docbook/proposal.xml
Index: proposal.xml
===================================================================
<?xml version="1.0"?>
<!DOCTYPE chapter PUBLIC "-//OASIS//DTD DocBook XML V4.1.2//EN"
"http://www.oasis-open.org/docbook/xml/4.1.2/docbookx.dtd">
<!--
Author: Morgan Delagrange
Author: Doug Sale
Author: Rodney Waldhoff
Version: $Id: proposal.xml,v 1.1 2002/04/22 15:48:33 dion Exp $
-->
<chapter id="proposal">
<chapterinfo>
<authorgroup>
<author><firstname>Morgan</firstname><surname>Delagrange</surname>
<affiliation><address><email>mdelagra@yahoo.com</email></address></affiliation>
</author>
<author><firstname>Doug</firstname><surname>Sale</surname>
<affiliation><address><email>dsale@us.britannica.com</email></address></affiliation>
</author>
<author><firstname>Rodney</firstname><surname>Waldhoff</surname>
<affiliation><address><email>rwaldhof@us.britannica.com</email></address></affiliation>
</author>
</authorgroup>
</chapterinfo>
<title>Proposal for Latka Package</title>
<section>
<title>(0) Rationale</title>
<para>Testing websites is a pain. Many regression tests for a website can
be verified automatically, speeding up the quality assurance process and
allowing the engineers to focus on the more important issues. Additionally
developers may want to monitor their development, QA and production environment,
so that they can be sure that everything is running as they expect.</para>
<para>Latka is an HTTP functional testing suite for automated QA. Latka
suites are XML documents, which can be written and/or modified without writing
Java code. Latka tests can be created quickly and modified easily, even by
engineers without Java experience.</para>
</section>
<section>
<title>(1) Scope of the Package</title>
<para>The <emphasis>Latka</emphasis> project shall develop an
XML-based syntax for HTTP-based functional tests. Latka will support, at the
least, SSL communication and cookies.</para>
<para>Included within Latka are classes that simulate a user agent.
While the backend HTTP communication is handled by the HttpClient Commons
component, the Latka interfaces simulate some of the behaviour of an actual web
browser, including automatically passing cookies from request to request in a
session. We hope to integrate these classes into a "useragent" package in
HttpClient at some point, since they are a useful abstraction and not tied to
Latka in any way, nor do they modify the core HttpClient classes.</para>
<para>Latka also includes several validations that can be performed
on the HTTP responses, including checking the status code, byte length, or
request timing. In addition you will be able to customize Latka with your own
validators by writing a couple of simple classes.</para>
</section>
<section>
<title>(1.5) Interaction With Other Packages</title>
<para><emphasis>Latka</emphasis> relies on:</para>
<itemizedlist>
<listitem><para>Java Development Kit (Version 1.3 or later)</para></listitem>
<listitem><para>A JAXP 1.1 implementation</para></listitem>
<listitem><para>A SAX 2.0 parser conforming to the JAXP 1.1 APIs</para></listitem>
<listitem><para>An XSLT parser conforming to JAXP 1.1</para></listitem>
<listitem><para>HttpClient from Commons - for HTTP communcation</para></listitem>
<listitem><para>Logging component from Commons (not yet implemented)</para></listitem>
<listitem><para>JUnit - for testing</para></listitem>
<listitem><para>JSSE - SSL support (optional at runtime)</para></listitem>
<listitem><para>Jakarta-Regexp - regular expression tests and XML preprocessing (for variable support)</para></listitem>
<listitem><para>JDOM - for building XML reports</para></listitem>
</itemizedlist>
</section>
<section>
<title>(2) Initial Source of the Package</title>
<para>The initial source has been committed to the Sandbox, and includes
almost all of the functionality described above.</para>
</section>
<section>
<title>(3) Required Jakarta-Commons Resources</title>
<itemizedlist>
<listitem>
<para>CVS Repository - New directory <emphasis>latka
</emphasis> in the <emphasis>jakarta-commons</emphasis> CVS repository.</para>
</listitem>
<listitem><para>Mailing List - Discussions will take place on
the general <emphasis>jakarta-commons@jakarta.apache.org</emphasis> mailing
list. To help list subscribers identify messages of interest, it is suggested
that the message subject of messages about this component be prefixed with
[Latka].</para></listitem>
<listitem><para>Bugzilla - New component "Latka" under the
"Commons" product category, with appropriate version identifiers as needed.
</para></listitem>
<listitem><para>Jyve FAQ - New category "commons-latka" (when
available).</para></listitem>
</itemizedlist>
</section>
<section>
<title>(4) Initial Committers</title>
<para>The initial committers on the Latka component shall be:</para>
<itemizedlist>
<listitem><para>Morgan Delagrange</para></listitem>
<listitem><para>Doug Sale</para></listitem>
<listitem><para>Rodney Waldhoff</para></listitem>
<listitem><para>TBD</para></listitem>
</itemizedlist>
</section>
</chapter>
1.1 jakarta-commons/latka/src/docbook/index.xml
Index: index.xml
===================================================================
<?xml version="1.0"?>
<!DOCTYPE chapter PUBLIC "-//OASIS//DTD DocBook XML V4.1.2//EN"
"http://www.oasis-open.org/docbook/xml/4.1.2/docbookx.dtd">
<!--
Author: Morgan Delagrange
Version: $Id: index.xml,v 1.1 2002/04/22 15:48:33 dion Exp $
-->
<chapter id="latka">
<chapterinfo>
<authorgroup>
<author>
<firstname>Morgan</firstname>
<surname>Delagrange</surname>
<affiliation>
<address>
<email>mdelagra@yahoo.com</email>
</address>
</affiliation>
</author>
</authorgroup>
</chapterinfo>
<title>Latka (Version 1.0 Alpha 2)</title>
<section>
<title>Other Documentation</title>
<para>See the <ulink url="xml-reference.html">XML Reference</ulink>,
<ulink url="users-guide.html">User's Guide</ulink> and
<ulink url="apidocs/index.html">API Docs</ulink> for more detailed information.
</para>
</section>
<section>
<title>What is Latka?</title>
<para>
<firstterm>Latka</firstterm> is a functional (end-to-end) testing
tool. It is implemented in Java, and uses an XML syntax to define
a series of HTTP (or HTTPS) requests and a set of
<firstterm>validations</firstterm> used to verify that the request
was processed correctly.
</para>
<remark>
Although Latka currently supports only HTTP and HTTPS
request/response validations, it may be expanded to perform other
sorts of functional testing as warranted.
</remark>
<para>
A simple example of a Latka XML test suite is shown in our
<ulink url="http://cvs.apache.org/viewcvs/jakarta-commons/latka/tests/samples/TestCommonsWebsite.xml">
sample Latka test suite</ulink>.
When processed, this example would verify that the Jakarta Commons
homepage is present and that all the Commons Components have online documenation.
</para>
</section>
<section>
<title>Installing Latka</title>
<section>
<title>Requirements</title>
<itemizedlist>
<listitem><para>JDK 1.3 or better</para></listitem>
<listitem><para>
(for optional web application)
Tomcat 4.0 B7 or better - does not work in Tomcat 3.2, untested in
other containers</para>
</listitem>
<listitem><para>
(for optional SSL support)
<ulink url="http://java.sun.com/security/index.html">Sun JSSE library</ulink>
</para>
</listitem>
</itemizedlist>
</section>
<section>
<title>General installation</title>
<orderedlist>
<listitem><para>
Download and uncompress the
<ulink url="http://jakarta.apache.org/builds/jakarta-commons/release/commons-latka">Latka distribution</ulink>.
</para>
</listitem>
<listitem><para>
If you wish to perform Latka test over SSL,
you need to configure your JVM with the
<ulink url="http://java.sun.com/security/index.html">Sun JSSE library</ulink>.
</para>
</listitem>
</orderedlist>
</section>
<section>
<title>Optional web application installation </title>
<orderedlist>
<listitem><para>
Copy the "webapp/latka-webapp.war" file from the
distribution to the "webapp" directory of Tomcat.</para>
</listitem>
<listitem><para>
If you have already configured log4j for Tomcat,
you should remove log4j.jar from the /WEB-INF/lib
directory of the Latka webapp. </para>
</listitem>
</orderedlist>
</section>
</section>
<section>
<title>Using Latka</title>
<section>
<title>Running the sample tests</title>
<remark>Command-line interface</remark>
<orderedlist>
<listitem>
<para>Open a command prompt inside the "bin" directory of the
distribution.</para>
</listitem>
<listitem><para>
Run the Latka batch script on one of the sample XML test suites
(e.g. "latka file:../tests/samples/TestCommonsWebsite.xml ").
</para>
</listitem>
</orderedlist>
<remark>Web application</remark>
<orderedlist>
<listitem><para>
Go to the index page of the Latka web application.</para>
</listitem>
<listitem><para>Select "Run a test from the server"</para></listitem>
<listitem><para>
In the test directory dialog box, enter the directory:
<latka distrubution directory>/tests/samples
</para>
</listitem>
<listitem><para>
Click on one of the tests to execute it.</para>
</listitem>
</orderedlist>
</section>
<section>
<title>Creating your own tests</title>
<para>
(More to come...) Examine the Latka DTD in the conf directory
for a list of all available elements. See the samples for typical syntax.
</para>
</section>
<section>
<title>Running tests</title>
<remark>Command-line interface</remark>
<orderedlist>
<listitem><para>
Open a command prompt inside the "bin" directory of the distribution.
</para>
</listitem>
<listitem>
<para>
Run the Latka script with no arguments for information on usage.
</para>
</listitem>
</orderedlist>
<remark>Web application</remark>
<orderedlist>
<listitem>
<para>Go to the index page of the Latka web application.</para>
</listitem>
<listitem><para>Select "Run a test from the server"</para></listitem>
<listitem><para>
In the test directory dialog box, enter the directory where your tests are located.
</para>
</listitem>
<listitem><para>Click on one of the tests to execute it.</para></listitem>
</orderedlist>
</section>
<section>
<title>Creating your custom validations</title>
<remark>(More to come...)</remark>
</section>
</section>
</chapter>
1.1 jakarta-commons/latka/src/docbook/developers-guide.xml
Index: developers-guide.xml
===================================================================
<?xml version="1.0"?>
<!DOCTYPE chapter PUBLIC "-//OASIS//DTD DocBook XML V4.1.2//EN" "http://www.oasis-open.org/docbook/xml/4.1.2/docbookx.dtd">
<!--
Author: dIon Gillard
Version: $Id: developers-guide.xml,v 1.1 2002/04/22 15:48:33 dion Exp $
-->
<chapter id="users-guide">
<title>Latka Developers's Guide</title>
<section id="introduction">
<title>Introduction</title>
<para>These are informal notes gathered as I've started working
on <ulink url="index.html">Latka</ulink>. Hopefully they will make sense to
those coming after me, and possibly clarify the current state for the existing
</para>
</section>
<section id="coding-style">
<title>Coding Style</title>
<para>Latka has some unusual coding conventions, which we've hopefully
captured using a tool, <ulink url="http://checkstyle.sourceforge.net">CheckStyle
</ulink>.</para>
<para>Onto the conventions... The Sun coding conventions are followed in
most places, except for the items that follow</para>
<itemizedlist>
<listitem><para>private and protected member variables begin with an
underscore, <programlisting>_requestSucceeded</programlisting></para></listitem>
<listitem><para>private methods also begin with an underscore on
rare occasions (mainly when there is some public method and protected/private
method with an otherwise identical signature)</para>
</listitem>
<listitem><para>Javadoc on classes and methods is not yet complete.
Feel free to help out here :-)</para></listitem>
</itemizedlist>
</section>
<section id="general-practices">
<title>General Practices</title>
<para>Here are some of the development practices of the Latka team</para>
<itemizedlist>
<listitem><para>Before committing any changes, run a cvs diff to
ensure unexpected changes are not being introduced</para>
</listitem>
<listitem><para>Before committing java source code changes, do a
clean build of the project to ensure all code still compiles. Run all testcases
to ensure the code isn't broken. Run the checkstyle task to ensure code meets
the project's current standards</para>
</listitem>
<listitem><para>Before committing changes to the web pages:
<orderedlist>
<listitem><para>Ensure the original docbook is valid by
validating the XML against the docbook DTD</para>
</listitem>
<listitem><para>do a clean build of the webpages target in
the main build file and view the resulting output</para>
</listitem>
</orderedlist>
</para>
</listitem>
</itemizedlist>
</section>
<!-- other sections: build files, documentation, updating the live site,
explaining the dtds, directory structure of source, what we need
help with, docbook, the xsl stylesheets, nightly builds
-->
</chapter>
1.1 jakarta-commons/latka/src/distribution/tests/watchdog/WatchdogServletSuite.xml
Index: WatchdogServletSuite.xml
===================================================================
<?xml version="1.0" standalone="no"?>
<!DOCTYPE suite SYSTEM "../../conf/suite.dtd">
<suite defaultHost="localhost" defaultPort="8080" label="Watchdog Servlet tests">
<!-- ==================== Watchdog Servlet tests ==================== -->
<!-- javax_servlet_GenericServlet tests -->
<request path="/servlet-tests/DestroyTest" label="Called by the servlet container to indicate to a servlet that the servlet is being taken out of service., specified in the Java Servlet Pages Specification v2.3, Sec 16 - javax.servlet.GenericServlet.Destroy() method ">
<validate>
<statusCode label="Create a GenericServlet and take out of service using destroy method"/>
</validate>
</request>
<request path="/servlet-tests/GetServletConfigTest" label="Returns this servlet's ServletConfig object, specified in the Java Servlet Pages Specification v2.3, Sec 16 - javax.servlet.GenericServlet.ServletConfig() method ">
<validate>
<goldenFile fileName="${wgdir}/javax_servlet/GenericServlet/GetServletConfigTest.html" ignoreWhitespace="true" label="Create a GenericServlet and check for its ServletConfig object existence"/>
</validate>
</request>
<request path="/servlet-tests/GetServletContextTest" label="Returns this servlet's ServletContext object, specified in the Java Servlet Pages Specification v2.3, Sec 16 - javax.servlet.GenericServlet.ServletContext() method ">
<validate>
<goldenFile fileName="${wgdir}/javax_servlet/GenericServlet/GetServletContextTest.html" ignoreWhitespace="true" label="Create a GenericServlet and check for its ServletContext object existence"/>
</validate>
</request>
<request path="/servlet-tests/GetServletInfoTest" label="Returns this servlet's ServletInfo object, specified in the Java Servlet Pages Specification v2.3, Sec 16 - javax.servlet.GenericServlet.ServletContext() method ">
<validate>
<goldenFile fileName="${wgdir}/javax_servlet/GenericServlet/GetServletInfoTest.html" ignoreWhitespace="true" label="Create a GenericServlet and check for its ServletInfo object values"/>
</validate>
</request>
<!-- javax_servlet_RequestDispatcher tests -->
<request path="/servlet-tests/ForwardTest" label="Forwards a request from a servlet to another resource (servlet, JSP file, or HTML file) on the server, specified in the Java Servlet Pages Specification v2.3, Sec 16 - javax.servlet.RequestDispatcher.ForwardTest() method ">
<validate>
<goldenFile fileName="${wgdir}/javax_servlet/RequestDispatcher/ForwardTest.html" ignoreWhitespace="true" label="Create a servlet, get its RequestDispatcher and use it to forward to a servlet"/>
</validate>
</request>
<request path="/servlet-tests/Forward_1Test" label="Forwards a request from a servlet to another resource (servlet, JSP file, or HTML file) on the server,throws an java.lang.IllegalStateException, if the response was already committed, specified in the Java Servlet Pages Specification v2.3, Sec 16 - javax.servlet.RequestDispatcher.ForwardTest() method ">
<validate>
<goldenFile fileName="${wgdir}/javax_servlet/RequestDispatcher/Forward_1Test.html" ignoreWhitespace="true" label="A negative test for RequestDispatcher.forward() method. Create a servlet, print a string to the buffer, flush the buffer to commit the string, get its RequestDispatcher and use it to forward to a servlet. Test for java.lang.IllegalStateException to be thrown."/>
</validate>
</request>
<request path="/servlet-tests/IncludeTest" label="Includes the content of a resource (servlet, JSP page, HTML file) in the response, enabling programmatic server-side includes., specified in the Java Servlet Pages Specification v2.3, Sec 16 - javax.servlet.RequestDispatcher.Include() method ">
<validate>
<goldenFile fileName="${wgdir}/javax_servlet/RequestDispatcher/IncludeTest.html" ignoreWhitespace="true" label="Create a servlet, get its RequestDispatcher and use it to include a servlet"/>
</validate>
</request>
<request path="/servlet-tests/Include_1Test" label="Includes the content of a resource (servlet, JSP page, HTML file) in the response, enabling programmatic server-side includes.The included servlet cannot change the response
status code or set headers; any attempt to make a change is ignored. The request and response parameters must be the same objects as were passed to the calling servlet's service method., specified in the Java Servlet Pages Specification v2.3, Sec 16 - javax.servlet.RequestDispatcher.Include() method ">
<validate>
<responseHeader headerName="Content-Type" headerValue="text/plain" label="A negative test for RequestDispatcher.include() test. Create a servlet, set its Content-Type to be 'text/plain', get its RequestDispatcher and use it to include a servlet. The included servlet tries to change the Content-Type to be text/html. Test at the client side for correct Content-Type."/>
<goldenFile fileName="${wgdir}/javax_servlet/RequestDispatcher/Include_1Test.html" ignoreWhitespace="true"/>
</validate>
</request>
<!-- javax_servlet_Servlet tests -->
<request path="/servlet-tests/DoDestroyedTest" label="Called by the servlet container to indicate to a servlet that the servlet is being taken out of service, specified in the Java Servlet Pages Specification v2.3, Sec 16 - javax.servlet.Servlet.destroy() method ">
<validate>
<goldenFile fileName="${wgdir}/javax_servlet/Servlet/DoDestroyedTest.html" ignoreWhitespace="true" label="Testing that destroy method is not called during service method execution"/>
</validate>
</request>
<request path="/servlet-tests/DoInit1Test" label="CalLed by the servlet container to indicate to a servlet that the servlet is being placed into service., specified in the Java Servlet Pages Specification v2.3, Sec 16 - javax.servlet.Servlet.init() method ">
<validate>
<statusCode code="500" label="A negative test for the init method. We will throw UnavailableException from inside init.The Servlet should not be initialized "/>
</validate>
</request>
<request path="/servlet-tests/DoInit2Test" label="Called by the servlet container to indicate to a servlet that the servlet is being placed into service., specified in the Java Servlet Pages Specification v2.3, Sec 16 - javax.servlet.Servlet.init() method ">
<validate>
<goldenFile fileName="${wgdir}/javax_servlet/Servlet/DoInit2Test.html" ignoreWhitespace="true" label="Inside CoreServletTest, which is the parent servlet, we are implementing init() and setting a boolean variable to true. We'll check for the variables here in the DoInit2Test "/>
</validate>
</request>
<request path="/servlet-tests/DoServiceTest" label="Called by the servlet container to allow the servlet to respond to a request, specified in the Java Servlet Pages Specification v2.3, Sec 16 - javax.servlet.Servlet.service() method ">
<validate>
<goldenFile fileName="${wgdir}/javax_servlet/Servlet/DoServiceTest.html" ignoreWhitespace="true" label="Inside CoreServletTest, which is the parent servlet, we will override init method and assign some value to the String. We'll check for that value in the service method"/>
</validate>
</request>
<request path="/servlet-tests/DoServletConfigTest" label="Returns a ServletConfig object, which contains initialization and startup parameters for this servlet., specified in the Java Servlet Pages Specification v2.3, Sec 16 - javax.servlet.Servlet.getServletConfig() method ">
<validate>
<goldenFile fileName="${wgdir}/javax_servlet/Servlet/DoServletConfigTest.html" ignoreWhitespace="true" label="Create a servlet and test for the getServletConfig() method to be a non-null value"/>
</validate>
</request>
<request path="/servlet-tests/DoServletInfoTest" label="Returns information about the servlet, such as author, version, and copyright., specified in the Java Servlet Pages Specification v2.3, Sec 16 - javax.servlet.Servlet.getServletInfo() method ">
<validate>
<goldenFile fileName="${wgdir}/javax_servlet/Servlet/DoServletInfoTest.html" ignoreWhitespace="true" label="Create a servlet and test for the getServletInfo() method to be a non-null value"/>
</validate>
</request>
<request path="/servlet-tests/PUTest" label="Servlet lifecycle test, check if UnavailableException.isPermanent() is true, specified in the Java Servlet Pages Specification v2.3, Sec 3.3.2.1">
<validate>
<goldenFile fileName="${wgdir}/javax_servlet/Servlet/PUTest.html" ignoreWhitespace="true" label="Create a servlet, throw UnavailableException and test if isPermanent() method is true"/>
</validate>
</request>
<!-- javax_servlet_ServletConfig tests -->
<request path="/servlet-tests/GetServletConfigInitParameterNamesTest" label="Returns a String containing the value of the named initialization parameter, or null if the parameter does not exist, specified in the Java Servlet Pages Specification v2.3, Sec 3.3.2.1">
<validate>
<goldenFile fileName="${wgdir}/javax_servlet/ServletConfig/GetServletConfigInitParameterNamesTest.html" ignoreWhitespace="true" label="Set init parameters in the web.xml file and check for the enumerated values in the servlet."/>
</validate>
</request>
<request path="/servlet-tests/GetServletConfigInitParameterNames_1Test" label="If no initialization parameters are set, this method returns a null value, specified in the Java Servlet Pages Specification v2.3, Sec 3.3.2.1">
<validate>
<goldenFile fileName="${wgdir}/javax_servlet/ServletConfig/GetServletConfigInitParameterNames_1Test.html" ignoreWhitespace="true" label="Do not set init parameters in the web.xml file and check for null value in the servlet."/>
</validate>
</request>
<request path="/servlet-tests/GetServletConfigInitParameterTest" label="Returns a String containing the value of the named initialization parameter, or null if the parameter does not exist, specified in the Java Servlet Pages Specification v2.3, Sec 3.3.2.1">
<validate>
<goldenFile fileName="${wgdir}/javax_servlet/ServletConfig/GetServletConfigInitParameterTest.html" ignoreWhitespace="true" label="Set init parameters in the web.xml file and check for the value in the servlet."/>
</validate>
</request>
<request path="/servlet-tests/GetServletConfigInitParameter_1Test" label="If no initialization parameter is set, this method returns a null value, specified in the Java Servlet Pages Specification v2.3, Sec 3.3.2.1">
<validate>
<goldenFile fileName="${wgdir}/javax_servlet/ServletConfig/GetServletConfigInitParameter_1Test.html" ignoreWhitespace="true" label="Do not set init parameters in the web.xml file and check for null value after in the servlet."/>
</validate>
</request>
<request path="/servlet-tests/ServletConfigGetServletContextTest" label="Returns a reference to the ServletContext in which the servlet is executing, specified in the Java Servlet Pages Specification v2.3, Sec 3.3.2.1">
<validate>
<goldenFile fileName="${wgdir}/javax_servlet/ServletConfig/ServletConfigGetServletContextTest.html" ignoreWhitespace="true" label="Try to get the ServletContext for this servlet itself"/>
</validate>
</request>
<request path="/servlet-tests/GetServletNameTest" label="Returns the name of this servlet instance, specified in the Java Servlet Pages Specification v2.3, Sec 3.3.2.1">
<validate>
<goldenFile fileName="${wgdir}/javax_servlet/ServletConfig/GetServletNameTest.html" ignoreWhitespace="true" label="Try to get the ServletName for this servlet itself"/>
</validate>
</request>
<!-- javax_servlet_ServletContext tests -->
<request path="/servlet-tests/ServletContextGetAttributeNamesTest" label="Returns the name of this servlet instance, specified in the Java Servlet Pages Specification v2.3, Sec 3.3.2.1">
<validate>
<goldenFile fileName="${wgdir}/javax_servlet/ServletContext/ServletContextGetAttributeNamesTest.html" ignoreWhitespace="true" label="Try to get the ServletName for this servlet itself"/>
</validate>
</request>
<request path="/servlet-tests/ServletContextGetAttributeTest">
<validate>
<goldenFile fileName="${wgdir}/javax_servlet/ServletContext/ServletContextGetAttributeTest.html" ignoreWhitespace="true"/>
</validate>
</request>
<request path="/servlet-tests/ServletContextGetAttribute_1Test">
<validate>
<goldenFile fileName="${wgdir}/javax_servlet/ServletContext/ServletContextGetAttribute_1Test.html" ignoreWhitespace="true"/>
</validate>
</request>
<request path="/servlet-tests/ServletContextGetContextTest">
<validate>
<goldenFile fileName="${wgdir}/javax_servlet/ServletContext/ServletContextGetContextTest.html" ignoreWhitespace="true"/>
</validate>
</request>
<request path="/servlet-tests/ServletContextGetInitParameterTest">
<validate>
<goldenFile fileName="${wgdir}/javax_servlet/ServletContext/ServletContextGetInitParameterTest.html" ignoreWhitespace="true"/>
</validate>
</request>
<request path="/servlet-tests/ServletContextGetInitParameterNamesTest">
<validate>
<goldenFile fileName="${wgdir}/javax_servlet/ServletContext/ServletContextGetInitParameterNamesTest.html" ignoreWhitespace="true"/>
</validate>
</request>
<request path="/servlet-tests/ServletContextGetInitParameter_1Test">
<validate>
<goldenFile fileName="${wgdir}/javax_servlet/ServletContext/ServletContextGetInitParameter_1Test.html" ignoreWhitespace="true"/>
</validate>
</request>
<request path="/servlet-tests/GetMajorVersionTest">
<validate>
<goldenFile fileName="${wgdir}/javax_servlet/ServletContext/GetMajorVersionTest.html" ignoreWhitespace="true"/>
</validate>
</request>
<request path="/servlet-tests/GetMinorVersionTest">
<validate>
<goldenFile fileName="${wgdir}/javax_servlet/ServletContext/GetMinorVersionTest.html" ignoreWhitespace="true"/>
</validate>
</request>
<request path="/servlet-tests/GetMimeTypeTest">
<validate>
<goldenFile fileName="${wgdir}/javax_servlet/ServletContext/GetMimeTypeTest.html" ignoreWhitespace="true"/>
</validate>
</request>
<request path="/servlet-tests/GetMimeType_1Test">
<validate>
<goldenFile fileName="${wgdir}/javax_servlet/ServletContext/GetMimeType_1Test.html" ignoreWhitespace="true"/>
</validate>
</request>
<request path="/servlet-tests/GetRealPathTest">
<validate>
<goldenFile fileName="${wgdir}/javax_servlet/ServletContext/GetRealPathTest.html" ignoreWhitespace="true"/>
</validate>
</request>
<request path="/servlet-tests/ServletContextGetRequestDispatcherTest">
<validate>
<goldenFile fileName="${wgdir}/javax_servlet/ServletContext/GetMinorVersionTest.html" ignoreWhitespace="true"/>
</validate>
</request>
<request path="/servlet-tests/GetResourceAsStreamTest">
<validate>
<goldenFile fileName="${wgdir}/javax_servlet/ServletContext/GetResourceAsStreamTest.html" ignoreWhitespace="true"/>
</validate>
</request>
<request path="/servlet-tests/GetResourceAsStream_1Test">
<validate>
<goldenFile fileName="${wgdir}/javax_servlet/ServletContext/GetResourceAsStream_1Test.html" ignoreWhitespace="true"/>
</validate>
</request>
<request path="/servlet-tests/GetResourceTest">
<validate>
<goldenFile fileName="${wgdir}/javax_servlet/ServletContext/GetResourceTest.html" ignoreWhitespace="true"/>
</validate>
</request>
<request path="/servlet-tests/GetResource_1Test">
<validate>
<goldenFile fileName="${wgdir}/javax_servlet/ServletContext/GetResource_1Test.html" ignoreWhitespace="true"/>
</validate>
</request>
<request path="/servlet-tests/GetServerInfoTest">
<validate>
<goldenFile fileName="${wgdir}/javax_servlet/ServletContext/GetServerInfoTest.html" ignoreWhitespace="true"/>
</validate>
</request>
<request path="/servlet-tests/ServletContextRemoveAttributeTest">
<validate>
<goldenFile fileName="${wgdir}/javax_servlet/ServletContext/ServletContextRemoveAttributeTest.html" ignoreWhitespace="true"/>
</validate>
</request>
<request path="/servlet-tests/ServletContextSetAttributeTest">
<validate>
<goldenFile fileName="${wgdir}/javax_servlet/ServletContext/ServletContextSetAttributeTest.html" ignoreWhitespace="true"/>
</validate>
</request>
<request path="/servlet-tests/Log_StringTest">
<validate>
<statusCode/>
</validate>
</request>
<request path="/servlet-tests/Log_StringThrowableTest">
<validate>
<statusCode/>
</validate>
</request>
<!-- javax_servlet_ServletException tests -->
<request path="/servlet-tests/ServletExceptionConstructor1Test">
<validate>
<goldenFile fileName="${wgdir}/javax_servlet/ServletException/ServletExceptionConstructor1Test.html" ignoreWhitespace="true"/>
</validate>
</request>
<request path="/servlet-tests/ServletExceptionConstructor2Test">
<validate>
<goldenFile fileName="${wgdir}/javax_servlet/ServletException/ServletExceptionConstructor2Test.html" ignoreWhitespace="true"/>
</validate>
</request>
<request path="/servlet-tests/ServletExceptionConstructor3Test">
<validate>
<goldenFile fileName="${wgdir}/javax_servlet/ServletException/ServletExceptionConstructor3Test.html" ignoreWhitespace="true"/>
</validate>
</request>
<request path="/servlet-tests/ServletExceptionConstructor4Test">
<validate>
<goldenFile fileName="${wgdir}/javax_servlet/ServletException/ServletExceptionConstructor4Test.html" ignoreWhitespace="true"/>
</validate>
</request>
<request path="/servlet-tests/GetRootCauseTest">
<validate>
<goldenFile fileName="${wgdir}/javax_servlet/ServletException/GetRootCauseTest.html" ignoreWhitespace="true"/>
</validate>
</request>
<!-- javax_servlet_ServletInputStream tests -->
<request path="/servlet-tests/ReadLineTest">
<validate>
<!-- what does this gtest parameter do?
content="java" -->
<goldenFile fileName="${wgdir}/javax_servlet/ServletInputStream/ReadLineTest.html" ignoreWhitespace="true"/>
</validate>
</request>
<!-- javax_servlet_ServletOutputStream tests -->
<request path="/servlet-tests/Print_StringTest">
<validate>
<goldenFile fileName="${wgdir}/javax_servlet/ServletOutputStream/Print_StringTest.html" ignoreWhitespace="true"/>
</validate>
</request>
<request path="/servlet-tests/Print_booleanTest">
<validate>
<goldenFile fileName="${wgdir}/javax_servlet/ServletOutputStream/Print_booleanTest.html" ignoreWhitespace="true"/>
</validate>
</request>
<request path="/servlet-tests/Print_charTest">
<validate>
<goldenFile fileName="${wgdir}/javax_servlet/ServletOutputStream/Print_charTest.html" ignoreWhitespace="true"/>
</validate>
</request>
<request path="/servlet-tests/Print_intTest">
<validate>
<goldenFile fileName="${wgdir}/javax_servlet/ServletOutputStream/Print_intTest.html" ignoreWhitespace="true"/>
</validate>
</request>
<request path="/servlet-tests/Print_longTest">
<validate>
<goldenFile fileName="${wgdir}/javax_servlet/ServletOutputStream/Print_longTest.html" ignoreWhitespace="true"/>
</validate>
</request>
<request path="/servlet-tests/Print_floatTest">
<validate>
<goldenFile fileName="${wgdir}/javax_servlet/ServletOutputStream/Print_floatTest.html" ignoreWhitespace="true"/>
</validate>
</request>
<request path="/servlet-tests/Print_doubleTest">
<validate>
<goldenFile fileName="${wgdir}/javax_servlet/ServletOutputStream/Print_doubleTest.html" ignoreWhitespace="true"/>
</validate>
</request>
<request path="/servlet-tests/PrintlnTest">
<validate>
<goldenFile fileName="${wgdir}/javax_servlet/ServletOutputStream/PrintlnTest.html" ignoreWhitespace="true"/>
</validate>
</request>
<request path="/servlet-tests/Println_StringTest">
<validate>
<goldenFile fileName="${wgdir}/javax_servlet/ServletOutputStream/Println_StringTest.html" ignoreWhitespace="true"/>
</validate>
</request>
<request path="/servlet-tests/Println_booleanTest">
<validate>
<goldenFile fileName="${wgdir}/javax_servlet/ServletOutputStream/Println_booleanTest.html" ignoreWhitespace="true"/>
</validate>
</request>
<request path="/servlet-tests/Println_charTest">
<validate>
<goldenFile fileName="${wgdir}/javax_servlet/ServletOutputStream/Println_charTest.html" ignoreWhitespace="true"/>
</validate>
</request>
<request path="/servlet-tests/Println_intTest">
<validate>
<goldenFile fileName="${wgdir}/javax_servlet/ServletOutputStream/Println_intTest.html" ignoreWhitespace="true"/>
</validate>
</request>
<request path="/servlet-tests/Println_longTest">
<validate>
<goldenFile fileName="${wgdir}/javax_servlet/ServletOutputStream/Println_longTest.html" ignoreWhitespace="true"/>
</validate>
</request>
<request path="/servlet-tests/Println_floatTest">
<validate>
<goldenFile fileName="${wgdir}/javax_servlet/ServletOutputStream/Println_floatTest.html" ignoreWhitespace="true"/>
</validate>
</request>
<request path="/servlet-tests/Println_doubleTest">
<validate>
<goldenFile fileName="${wgdir}/javax_servlet/ServletOutputStream/Println_doubleTest.html" ignoreWhitespace="true"/>
</validate>
</request>
<!-- javax_servlet_ServletRequest tests -->
<request path="/servlet-tests/ServletRequestGetAttributeNamesTest ">
<validate>
<goldenFile fileName="${wgdir}/javax_servlet/ServletRequest/ServletRequestGetAttributeNamesTest.html" ignoreWhitespace="true"/>
</validate>
</request>
<request path="/servlet-tests/ServletRequestGetAttributeTest">
<validate>
<goldenFile fileName="${wgdir}/javax_servlet/ServletRequest/ServletRequestGetAttributeTest.html" ignoreWhitespace="true"/>
</validate>
</request>
<request path="/servlet-tests/ServletRequestGetAttribute_01Test">
<validate>
<goldenFile fileName="${wgdir}/javax_servlet/ServletRequest/ServletRequestGetAttribute_01Test.html" ignoreWhitespace="true"/>
</validate>
</request>
<request path="/servlet-tests/ServletRequestGetCharacterEncodingTest">
<requestHeader headerName="Content-Type" headerValue="text/plain;charset=ISO-8859-1"/>
<validate>
<goldenFile fileName="${wgdir}/javax_servlet/ServletRequest/ServletRequestGetCharacterEncodingTest.html" ignoreWhitespace="true"/>
</validate>
</request>
<request path="/servlet-tests/ServletRequestGetCharacterEncoding_1Test">
<validate>
<goldenFile fileName="${wgdir}/javax_servlet/ServletRequest/ServletRequestGetCharacterEncoding_1Test.html" ignoreWhitespace="true"/>
</validate>
</request>
<request path="/servlet-tests/GetContentLengthTest">
<requestHeader headerName="Content-Type" headerValue="text/plain"/>
<validate>
<!-- what does this gtest parameter do?
content="ULTRA SPARC" -->
<goldenFile fileName="${wgdir}/javax_servlet/ServletRequest/GetContentLengthTest.html" ignoreWhitespace="true"/>
</validate>
</request>
<request path="/servlet-tests/GetContentTypeTest">
<requestHeader headerName="Content-Type" headerValue="text/plain"/>
<validate>
<goldenFile fileName="${wgdir}/javax_servlet/ServletRequest/GetContentTypeTest.html" ignoreWhitespace="true"/>
</validate>
</request>
<request path="/servlet-tests/GetInputStreamTest">
<validate>
<goldenFile fileName="${wgdir}/javax_servlet/ServletRequest/GetInputStreamTest.html" ignoreWhitespace="true"/>
</validate>
</request>
<request path="/servlet-tests/GetInputStream_1Test">
<validate>
<goldenFile fileName="${wgdir}/javax_servlet/ServletRequest/GetInputStream_1Test.html" ignoreWhitespace="true"/>
</validate>
</request>
<request path="/servlet-tests/GetLocaleTest">
<requestHeader headerName="Accept-Language" headerValue="en-us"/>
<validate>
<goldenFile fileName="${wgdir}/javax_servlet/ServletRequest/GetLocaleTest.html" ignoreWhitespace="true"/>
</validate>
</request>
<request path="/servlet-tests/GetLocalesTest">
<requestHeader headerName="Accept-Language" headerValue="en-us,en-gb"/>
<validate>
<goldenFile fileName="${wgdir}/javax_servlet/ServletRequest/GetLocalesTest.html" ignoreWhitespace="true"/>
</validate>
</request>
<!-- FIXME - Causes OutOfMemoryException in GTest client
<request path="/servlet-tests/GetParameterNamesTest?BestLanguage=Java&BestJSP=Tomcat">
<validate>
<goldenFile fileName="${wgdir}/javax_servlet/ServletRequest/GetParameterNamesTest.html" ignoreWhitespace="true"/>
</validate>
</request>
-->
<request path="/servlet-tests/GetParameterNames_1Test">
<validate>
<goldenFile fileName="${wgdir}/javax_servlet/ServletRequest/GetParameterNames_1Test.html" ignoreWhitespace="true"/>
</validate>
</request>
<request path="/servlet-tests/GetParameterTest?BestLanguage=Java">
<validate>
<goldenFile fileName="${wgdir}/javax_servlet/ServletRequest/GetParameterTest.html" ignoreWhitespace="true"/>
</validate>
</request>
<request path="/servlet-tests/GetParameterValuesTest?Containers=JSP&Containers=Servlet">
<validate>
<goldenFile fileName="${wgdir}/javax_servlet/ServletRequest/GetParameterValuesTest.html" ignoreWhitespace="true"/>
</validate>
</request>
<request path="/servlet-tests/GetParameterValues_1Test">
<validate>
<goldenFile fileName="${wgdir}/javax_servlet/ServletRequest/GetParameterValues_1Test.html" ignoreWhitespace="true"/>
</validate>
</request>
<request path="/servlet-tests/GetParameter_1Test">
<validate>
<goldenFile fileName="${wgdir}/javax_servlet/ServletRequest/GetParameter_1Test.html" ignoreWhitespace="true"/>
</validate>
</request>
<request path="/servlet-tests/GetProtocolTest">
<validate>
<goldenFile fileName="${wgdir}/javax_servlet/ServletRequest/GetProtocolTest.html" ignoreWhitespace="true"/>
</validate>
</request>
<request path="/servlet-tests/GetReaderTest">
<validate>
<goldenFile fileName="${wgdir}/javax_servlet/ServletRequest/GetReaderTest.html" ignoreWhitespace="true"/>
</validate>
</request>
<request path="/servlet-tests/GetReader_1Test">
<validate>
<goldenFile fileName="${wgdir}/javax_servlet/ServletRequest/GetReader_1Test.html" ignoreWhitespace="true"/>
</validate>
</request>
<request path="/servlet-tests/GetRemoteAddrTest">
<validate>
<goldenFile fileName="${wgdir}/javax_servlet/ServletRequest/GetRemoteAddrTest.html" ignoreWhitespace="true"/>
</validate>
</request>
<request path="/servlet-tests/GetRemoteHostTest">
<validate>
<goldenFile fileName="${wgdir}/javax_servlet/ServletRequest/GetRemoteHostTest.html" ignoreWhitespace="true"/>
</validate>
</request>
<request path="/servlet-tests/ServletRequestGetRequestDispatcherTest">
<validate>
<goldenFile fileName="${wgdir}/javax_servlet/ServletRequest/ServletRequestGetRequestDispatcherTest.html" ignoreWhitespace="true"/>
</validate>
</request>
<request path="/servlet-tests/GetSchemeTest">
<validate>
<goldenFile fileName="${wgdir}/javax_servlet/ServletRequest/GetSchemeTest.html" ignoreWhitespace="true"/>
</validate>
</request>
<request path="/servlet-tests/GetServerNameTest">
<validate>
<goldenFile fileName="${wgdir}/javax_servlet/ServletRequest/GetServerNameTest.html" ignoreWhitespace="true"/>
</validate>
</request>
<request path="/servlet-tests/GetServerPortTest">
<validate>
<goldenFile fileName="${wgdir}/javax_servlet/ServletRequest/GetServerPortTest.html" ignoreWhitespace="true"/>
</validate>
</request>
<request path="/servlet-tests/ServletRequestSetAttributeTest">
<validate>
<goldenFile fileName="${wgdir}/javax_servlet/ServletRequest/ServletRequestSetAttributeTest.html" ignoreWhitespace="true"/>
</validate>
</request>
<request path="/servlet-tests/ServletRequestSetCharacterEncoding_1Test">
<validate>
<goldenFile fileName="${wgdir}/javax_servlet/ServletRequest/ServletRequestSetCharacterEncoding_1Test.html" ignoreWhitespace="true"/>
</validate>
</request>
<!-- javax_servlet_ServletResponse tests -->
<request path="/servlet-tests/GetBufferSizeTest">
<validate>
<goldenFile fileName="${wgdir}/javax_servlet/ServletResponse/GetBufferSizeTest.html" ignoreWhitespace="true"/>
</validate>
</request>
<request path="/servlet-tests/ServletResponseGetCharacterEncodingTest">
<validate>
<goldenFile fileName="${wgdir}/javax_servlet/ServletResponse/ServletResponseGetCharacterEncodingTest.html" ignoreWhitespace="true"/>
</validate>
</request>
<request path="/servlet-tests/SetBufferSizeTest">
<validate>
<goldenFile fileName="${wgdir}/javax_servlet/ServletResponse/SetBufferSizeTest.html" ignoreWhitespace="true"/>
</validate>
</request>
<request path="/servlet-tests/SetBufferSize_1Test">
<validate>
<goldenFile fileName="${wgdir}/javax_servlet/ServletResponse/SetBufferSize_1Test.html" ignoreWhitespace="true"/>
</validate>
</request>
<request path="/servlet-tests/GetOutputStream_1Test">
<validate>
<goldenFile fileName="${wgdir}/javax_servlet/ServletResponse/GetOutputStream_1Test.html" ignoreWhitespace="true"/>
</validate>
</request>
<request path="/servlet-tests/GetWriter_1Test">
<validate>
<goldenFile fileName="${wgdir}/javax_servlet/ServletResponse/GetWriter_1Test.html" ignoreWhitespace="true"/>
</validate>
</request>
<request path="/servlet-tests/IsCommittedTest">
<validate>
<goldenFile fileName="${wgdir}/javax_servlet/ServletResponse/IsCommittedTest.html" ignoreWhitespace="true"/>
</validate>
</request>
<!-- FIXME - GTest mishandles the comparison test for a missing header
<request path="/servlet-tests/ResetTest">
<validate>
<responseHeader headerName="Content-Type" headerValue="null"/>
</validate>
</request>
-->
<request path="/servlet-tests/Reset_1Test">
<validate>
<goldenFile fileName="${wgdir}/javax_servlet/ServletResponse/Reset_1Test.html" ignoreWhitespace="true"/>
</validate>
</request>
<request path="/servlet-tests/SetContentLengthTest">
<validate>
<responseHeader headerName="Content-Length" headerValue="10"/>
</validate>
</request>
<request path="/servlet-tests/SetContentTypeTest">
<validate>
<responseHeader headerName="Content-Type" headerValue="text/html"/>
</validate>
</request>
<request path="/servlet-tests/SetLocaleTest">
<validate>
<responseHeader headerName="Content-Language" headerValue="en"/>
</validate>
</request>
<!-- javax_servlet_UnavailableException tests -->
<request path="/servlet-tests/GetUnavailableSecondsTest">
<validate>
<goldenFile fileName="${wgdir}/javax_servlet/UnavailableException/GetUnavailableSecondsTest.html" ignoreWhitespace="true"/>
</validate>
</request>
<request path="/servlet-tests/IsPermanentTest">
<validate>
<goldenFile fileName="${wgdir}/javax_servlet/UnavailableException/IsPermanentTest.html" ignoreWhitespace="true"/>
</validate>
</request>
<request path="/servlet-tests/UnavailableException_Constructor1Test">
<validate>
<goldenFile fileName="${wgdir}/javax_servlet/UnavailableException/UnavailableException_Constructor1Test.html" ignoreWhitespace="true"/>
</validate>
</request>
<request path="/servlet-tests/UnavailableException_Constructor2Test">
<validate>
<goldenFile fileName="${wgdir}/javax_servlet/UnavailableException/UnavailableException_Constructor2Test.html" ignoreWhitespace="true"/>
</validate>
</request>
<!-- javax_servlet_http_Cookie tests -->
<request path="/servlet-tests/Cookie_ConstructorTest">
<validate>
<goldenFile fileName="${wgdir}/javax_servlet_http/Cookie/Cookie_ConstructorTest.html" ignoreWhitespace="true"/>
</validate>
</request>
<request path="/servlet-tests/Cookie_Constructor_1Test">
<validate>
<goldenFile fileName="${wgdir}/javax_servlet_http/Cookie/Cookie_Constructor_1Test.html" ignoreWhitespace="true"/>
</validate>
</request>
<request path="/servlet-tests/CookieCloneTest">
<validate>
<goldenFile fileName="${wgdir}/javax_servlet_http/Cookie/CookieCloneTest.html" ignoreWhitespace="true"/>
</validate>
</request>
<request path="/servlet-tests/GetCommentTest">
<validate>
<goldenFile fileName="${wgdir}/javax_servlet_http/Cookie/GetCommentTest.html" ignoreWhitespace="true"/>
</validate>
</request>
<request path="/servlet-tests/GetComment_01Test">
<validate>
<goldenFile fileName="${wgdir}/javax_servlet_http/Cookie/GetComment_01Test.html" ignoreWhitespace="true"/>
</validate>
</request>
<request path="/servlet-tests/GetDomainTest">
<validate>
<goldenFile fileName="${wgdir}/javax_servlet_http/Cookie/GetDomainTest.html" ignoreWhitespace="true"/>
</validate>
</request>
<request path="/servlet-tests/GetMaxAgeTest">
<validate>
<goldenFile fileName="${wgdir}/javax_servlet_http/Cookie/GetMaxAgeTest.html" ignoreWhitespace="true"/>
</validate>
</request>
<request path="/servlet-tests/GetMaxAge_1Test">
<validate>
<goldenFile fileName="${wgdir}/javax_servlet_http/Cookie/GetMaxAge_1Test.html" ignoreWhitespace="true"/>
</validate>
</request>
<request path="/servlet-tests/GetNameTest">
<validate>
<goldenFile fileName="${wgdir}/javax_servlet_http/Cookie/GetNameTest.html" ignoreWhitespace="true"/>
</validate>
</request>
<request path="/servlet-tests/GetPathTest">
<validate>
<goldenFile fileName="${wgdir}/javax_servlet_http/Cookie/GetPathTest.html" ignoreWhitespace="true"/>
</validate>
</request>
<request path="/servlet-tests/GetSecureTest">
<validate>
<goldenFile fileName="${wgdir}/javax_servlet_http/Cookie/GetSecureTest.html" ignoreWhitespace="true"/>
</validate>
</request>
<request path="/servlet-tests/GetValueTest">
<validate>
<goldenFile fileName="${wgdir}/javax_servlet_http/Cookie/GetValueTest.html" ignoreWhitespace="true"/>
</validate>
</request>
<request path="/servlet-tests/GetVersionTest">
<validate>
<goldenFile fileName="${wgdir}/javax_servlet_http/Cookie/GetVersionTest.html" ignoreWhitespace="true"/>
</validate>
</request>
<request path="/servlet-tests/SetCommentTest">
<validate>
<goldenFile fileName="${wgdir}/javax_servlet_http/Cookie/SetCommentTest.html" ignoreWhitespace="true"/>
</validate>
</request>
<request path="/servlet-tests/SetDomainTest">
<validate>
<goldenFile fileName="${wgdir}/javax_servlet_http/Cookie/SetDomainTest.html" ignoreWhitespace="true"/>
</validate>
</request>
<request path="/servlet-tests/SetMaxAgeTest">
<validate>
<goldenFile fileName="${wgdir}/javax_servlet_http/Cookie/SetMaxAgeTest.html" ignoreWhitespace="true"/>
</validate>
</request>
<request path="/servlet-tests/SetSecureTest">
<validate>
<goldenFile fileName="${wgdir}/javax_servlet_http/Cookie/SetSecureTest.html" ignoreWhitespace="true"/>
</validate>
</request>
<request path="/servlet-tests/SetValueTest">
<validate>
<goldenFile fileName="${wgdir}/javax_servlet_http/Cookie/SetValueTest.html" ignoreWhitespace="true"/>
</validate>
</request>
<request path="/servlet-tests/SetVersionTest">
<validate>
<goldenFile fileName="${wgdir}/javax_servlet_http/Cookie/SetVersionTest.html" ignoreWhitespace="true"/>
</validate>
</request>
<request path="/servlet-tests/SetPathTest">
<validate>
<goldenFile fileName="${wgdir}/javax_servlet_http/Cookie/SetPathTest.html" ignoreWhitespace="true"/>
</validate>
</request>
<!-- javax_servlet_http_HttpServletRequest tests -->
<request path="/servlet-tests/GetAuthTypeWithoutProtectionTest">
<validate>
<goldenFile fileName="${wgdir}/javax_servlet_http/HttpServletRequest/GetAuthTypeWithoutProtectionTest.html" ignoreWhitespace="true"/>
</validate>
</request>
<request path="/servlet-tests/GetContextPathTest">
<validate>
<goldenFile fileName="${wgdir}/javax_servlet_http/HttpServletRequest/GetContextPathTest.html" ignoreWhitespace="true"/>
</validate>
</request>
<request path="/servlet-tests/GetCookiesTest">
<requestHeader headerName="Cookie" headerValue="BestLanguage=Java"/>
<validate>
<goldenFile fileName="${wgdir}/javax_servlet_http/HttpServletRequest/GetCookiesTest.html" ignoreWhitespace="true"/>
</validate>
</request>
<request path="/servlet-tests/GetCookies_01Test">
<validate>
<goldenFile fileName="${wgdir}/javax_servlet_http/HttpServletRequest/GetCookies_01Test.html" ignoreWhitespace="true"/>
</validate>
</request>
<request path="/servlet-tests/GetDateHeaderTest">
<requestHeader headerName="If-Modified-Since" headerValue="Sat, 01 Jan 2000 00:00:01 GMT"/>
<validate>
<goldenFile fileName="${wgdir}/javax_servlet_http/HttpServletRequest/GetDateHeaderTest.html" ignoreWhitespace="true"/>
</validate>
</request>
<request path="/servlet-tests/GetDateHeader_01Test">
<validate>
<goldenFile fileName="${wgdir}/javax_servlet_http/HttpServletRequest/GetDateHeader_01Test.html" ignoreWhitespace="true"/>
</validate>
</request>
<request path="/servlet-tests/GetDateHeader_02Test">
<requestHeader headerName="If-Modified-Since" headerValue="234"/>
<validate>
<goldenFile fileName="${wgdir}/javax_servlet_http/HttpServletRequest/GetDateHeader_02Test.html" ignoreWhitespace="true"/>
</validate>
</request>
<request path="/servlet-tests/GetHeaderNamesTest">
<requestHeader headerName="Authorization" headerValue="Basic achegkliporV8y##Cookie:BestLanguage=java"/>
<validate>
<goldenFile fileName="${wgdir}/javax_servlet_http/HttpServletRequest/GetHeaderNamesTest.html" ignoreWhitespace="true"/>
</validate>
</request>
<request path="/servlet-tests/GetHeaderTest">
<requestHeader headerName="User-Agent" headerValue="Mozilla/4.0"/>
<validate>
<goldenFile fileName="${wgdir}/javax_servlet_http/HttpServletRequest/GetHeaderTest.html" ignoreWhitespace="true"/>
</validate>
</request>
<request path="/servlet-tests/GetHeader_01Test">
<validate>
<goldenFile fileName="${wgdir}/javax_servlet_http/HttpServletRequest/GetHeader_01Test.html" ignoreWhitespace="true"/>
</validate>
</request>
<!-- FIXME - GTest mishandles multiple request headers with the same name
<request path="/servlet-tests/GetHeadersTest">
<requestHeader headerName="Accept-Language" headerValue="en-us##Accept-Language:en-gb"/>
<validate>
<goldenFile fileName="${wgdir}/javax_servlet_http/HttpServletRequest/GetHeadersTest.html" ignoreWhitespace="true"/>
</validate>
</request>
-->
<request path="/servlet-tests/GetHeaders_01Test">
<validate>
<goldenFile fileName="${wgdir}/javax_servlet_http/HttpServletRequest/GetHeaders_01Test.html" ignoreWhitespace="true"/>
</validate>
</request>
<request path="/servlet-tests/GetIntHeaderTest">
<requestHeader headerName="MyIntHeader" headerValue="123"/>
<validate>
<goldenFile fileName="${wgdir}/javax_servlet_http/HttpServletRequest/GetIntHeaderTest.html" ignoreWhitespace="true"/>
</validate>
</request>
<request path="/servlet-tests/GetIntHeader_1Test">
<requestHeader headerName="MyNonIntHeader" headerValue="somestring"/>
<validate>
<goldenFile fileName="${wgdir}/javax_servlet_http/HttpServletRequest/GetIntHeader_1Test.html" ignoreWhitespace="true"/>
</validate>
</request>
<request path="/servlet-tests/GetIntHeader_2Test">
<validate>
<goldenFile fileName="${wgdir}/javax_servlet_http/HttpServletRequest/GetIntHeader_2Test.html" ignoreWhitespace="true"/>
</validate>
</request>
<request path="/servlet-tests/GetMethodTest">
<validate>
<goldenFile fileName="${wgdir}/javax_servlet_http/HttpServletRequest/GetMethodTest.html" ignoreWhitespace="true"/>
</validate>
</request>
<request path="/servlet-tests/GetMethod_HEADTest" method="head">
<validate>
<goldenFile fileName="${wgdir}/javax_servlet_http/HttpServletRequest/GetMethod_HEADTest.html" ignoreWhitespace="true"/>
</validate>
</request>
<request path="/servlet-tests/GetMethod_POSTTest" method="post">
<validate>
<goldenFile fileName="${wgdir}/javax_servlet_http/HttpServletRequest/GetMethod_POSTTest.html" ignoreWhitespace="true"/>
</validate>
</request>
<request path="/servlet-tests/GetPathInfoTest/pathinfostring1/pathinfostring2">
<validate>
<goldenFile fileName="${wgdir}/javax_servlet_http/HttpServletRequest/GetPathInfoTest.html" ignoreWhitespace="true"/>
</validate>
</request>
<request path="/servlet-tests/GetPathInfo_01Test">
<validate>
<goldenFile fileName="${wgdir}/javax_servlet_http/HttpServletRequest/GetPathInfo_01Test.html" ignoreWhitespace="true"/>
</validate>
</request>
<request path="/servlet-tests/GetPathTranslatedTest/javax_servlet">
<validate>
<goldenFile fileName="${wgdir}/javax_servlet_http/HttpServletRequest/GetPathTranslatedTest.html" ignoreWhitespace="true"/>
</validate>
</request>
<request path="/servlet-tests/GetPathTranslated_01Test">
<validate>
<goldenFile fileName="${wgdir}/javax_servlet_http/HttpServletRequest/GetPathTranslated_01Test.html" ignoreWhitespace="true"/>
</validate>
</request>
<request path="/servlet-tests/GetQueryStringTest?language=java">
<validate>
<goldenFile fileName="${wgdir}/javax_servlet_http/HttpServletRequest/GetQueryStringTest.html" ignoreWhitespace="true"/>
</validate>
</request>
<request path="/servlet-tests/GetQueryString_01Test">
<validate>
<goldenFile fileName="${wgdir}/javax_servlet_http/HttpServletRequest/GetQueryString_01Test.html" ignoreWhitespace="true"/>
</validate>
</request>
<request path="/servlet-tests/GetRemoteUser_01Test">
<validate>
<goldenFile fileName="${wgdir}/javax_servlet_http/HttpServletRequest/GetRemoteUser_01Test.html" ignoreWhitespace="true"/>
</validate>
</request>
<request path="/servlet-tests/GetRequestURITest">
<validate>
<goldenFile fileName="${wgdir}/javax_servlet_http/HttpServletRequest/GetRequestURITest.html" ignoreWhitespace="true"/>
</validate>
</request>
<request path="/servlet-tests/GetRequestURIWithQSTest?language=java">
<validate>
<goldenFile fileName="${wgdir}/javax_servlet_http/HttpServletRequest/GetRequestURIWithQSTest.html" ignoreWhitespace="true"/>
</validate>
</request>
<request path="/servlet-tests/GetRequestedSessionId_01Test">
<validate>
<goldenFile fileName="${wgdir}/javax_servlet_http/HttpServletRequest/GetRequestedSessionId_01Test.html" ignoreWhitespace="true"/>
</validate>
</request>
<request path="/servlet-tests/GetServletPathTest">
<validate>
<goldenFile fileName="${wgdir}/javax_servlet_http/HttpServletRequest/GetServletPathTest.html" ignoreWhitespace="true"/>
</validate>
</request>
<!-- FIXME - Test webapp does not have security set up correctly
<request path="/servlet-tests/GetUserPrincipalTest">
<requestHeader headerName="Authorization" headerValue="Basic d2VibWFzdGVyOnRyeTUndWVTUw=##From:got2be@eng.sun.com"/>
<validate>
<goldenFile fileName="${wgdir}/javax_servlet_http/HttpServletRequest/GetUserPrincipalTest.html" ignoreWhitespace="true"/>
</validate>
</request>
-->
<!-- FIXME - Test webapp does not have security set up correctly
<request path="/servlet-tests/GetUserPrincipal_01Test">
<validate>
<goldenFile fileName="${wgdir}/javax_servlet_http/HttpServletRequest/GetUserPrincipal_01Test.html" ignoreWhitespace="true"/>
</validate>
</request>
-->
<request path="/servlet-tests/IsRequestedSessionIdFromCookie_01Test">
<validate>
<goldenFile fileName="${wgdir}/javax_servlet_http/HttpServletRequest/IsRequestedSessionIdFromCookie_01Test.html" ignoreWhitespace="true"/>
</validate>
</request>
<request path="/servlet-tests/IsRequestedSessionIdFromURL_01Test">
<validate>
<goldenFile fileName="${wgdir}/javax_servlet_http/HttpServletRequest/IsRequestedSessionIdFromURL_01Test.html" ignoreWhitespace="true"/>
</validate>
</request>
<request path="/servlet-tests/IsRequestedSessionIdValid_01Test">
<validate>
<goldenFile fileName="${wgdir}/javax_servlet_http/HttpServletRequest/IsRequestedSessionIdValid_01Test.html" ignoreWhitespace="true"/>
</validate>
</request>
<!-- FIXME - Test webapp does not have security set up correctly
<request path="/servlet-tests/IsUserInRoleTest">
<validate>
<goldenFile fileName="${wgdir}/javax_servlet_http/HttpServletRequest/IsUserInRoleTest.html" ignoreWhitespace="true"/>
</validate>
</request>
-->
<!-- javax_servlet_http_HttpServletResponse tests -->
<request path="/servlet-tests/AddCookieTest">
<validate>
<responseHeader headerName="Set-Cookie" headerValue="BestLanguage=java"/>
</validate>
</request>
<request path="/servlet-tests/AddDateHeaderTest">
<validate>
<responseHeader headerName="DateInfo" headerValue="Sat, 25 Apr 1970 07:29:03 GMT"/>
</validate>
</request>
<request path="/servlet-tests/AddHeaderTest">
<validate>
<responseHeader headerName="MyStrHeader" headerValue="java"/>
</validate>
</request>
<request path="/servlet-tests/AddIntHeaderTest">
<validate>
<responseHeader headerName="MyIntHeader" headerValue="2"/>
</validate>
</request>
<request path="/servlet-tests/ContainsHeaderTest">
<validate>
<goldenFile fileName="${wgdir}/javax_servlet_http/HttpServletResponse/ContainsHeaderTest.html" ignoreWhitespace="true"/>
<responseHeader headerName="MyIntHeader" headerValue="20"/>
</validate>
</request>
<request path="/servlet-tests/ContainsHeader_01Test">
<validate>
<goldenFile fileName="${wgdir}/javax_servlet_http/HttpServletResponse/ContainsHeader_01Test.html" ignoreWhitespace="true"/>
</validate>
</request>
<request path="/servlet-tests/SendErrorTest">
<validate>
<statusCode/>
</validate>
</request>
<request path="/servlet-tests/SendError_StringTest">
<validate>
<statusCode/>
</validate>
</request>
<!-- FIXME - GTest does not properly deal with redirect responses
<request path="/servlet-tests/SendRedirectTest">
<validate>
<goldenFile fileName="${wgdir}/javax_servlet_http/HttpServletResponse/SendRedirectTest.html" ignoreWhitespace="true"/>
</validate>
</request>
-->
<request path="/servlet-tests/SendRedirect_1Test">
<validate>
<goldenFile fileName="${wgdir}/javax_servlet_http/HttpServletResponse/SendRedirect_1Test.html" ignoreWhitespace="true"/>
</validate>
</request>
<request path="/servlet-tests/SetDateHeaderTest">
<validate>
<responseHeader headerName="DateInfo" headerValue="Sat, 25 Apr 1970 07:29:03 GMT"/>
</validate>
</request>
<request path="/servlet-tests/SetHeaderTest">
<validate>
<responseHeader headerName="MyStrHeader" headerValue="Java"/>
</validate>
</request>
<request path="/servlet-tests/SetIntHeaderTest">
<validate>
<responseHeader headerName="MyIntHeader" headerValue="2"/>
</validate>
</request>
<request path="/servlet-tests/SetStatusTest">
<validate>
<statusCode/>
</validate>
</request>
<!-- javax_servlet_http_HttpSession tests -->
<request path="/servlet-tests/HttpSessionGetAttributeNamesTest">
<validate>
<goldenFile fileName="${wgdir}/javax_servlet_http/HttpSession/HttpSessionGetAttributeNamesTest.html" ignoreWhitespace="true"/>
</validate>
</request>
<request path="/servlet-tests/HttpSessionGetAttributeNames_01Test">
<validate>
<goldenFile fileName="${wgdir}/javax_servlet_http/HttpSession/HttpSessionGetAttributeNames_01Test.html" ignoreWhitespace="true"/>
</validate>
</request>
<request path="/servlet-tests/HttpSessionGetAttributeTest">
<validate>
<goldenFile fileName="${wgdir}/javax_servlet_http/HttpSession/HttpSessionGetAttributeTest.html" ignoreWhitespace="true"/>
</validate>
</request>
<request path="/servlet-tests/HttpSessionGetAttribute_01Test">
<validate>
<goldenFile fileName="${wgdir}/javax_servlet_http/HttpSession/HttpSessionGetAttribute_01Test.html" ignoreWhitespace="true"/>
</validate>
</request>
<request path="/servlet-tests/GetCreationTimeTest">
<validate>
<goldenFile fileName="${wgdir}/javax_servlet_http/HttpSession/GetCreationTimeTest.html" ignoreWhitespace="true"/>
</validate>
</request>
<request path="/servlet-tests/GetIdTest">
<validate>
<goldenFile fileName="${wgdir}/javax_servlet_http/HttpSession/GetIdTest.html" ignoreWhitespace="true"/>
</validate>
</request>
<request path="/servlet-tests/GetLastAccessedTimeTest">
<validate>
<goldenFile fileName="${wgdir}/javax_servlet_http/HttpSession/GetLastAccessedTimeTest.html" ignoreWhitespace="true"/>
</validate>
</request>
<request path="/servlet-tests/GetMaxInactiveIntervalTest">
<validate>
<goldenFile fileName="${wgdir}/javax_servlet_http/HttpSession/GetMaxInactiveIntervalTest.html" ignoreWhitespace="true"/>
</validate>
</request>
<request path="/servlet-tests/IsNewTest">
<validate>
<goldenFile fileName="${wgdir}/javax_servlet_http/HttpSession/IsNewTest.html" ignoreWhitespace="true"/>
</validate>
</request>
<request path="/servlet-tests/IsNew_01Test">
<validate>
<goldenFile fileName="${wgdir}/javax_servlet_http/HttpSession/IsNew_01Test.html" ignoreWhitespace="true"/>
</validate>
</request>
<request path="/servlet-tests/RemoveAttributeTest">
<validate>
<goldenFile fileName="${wgdir}/javax_servlet_http/HttpSession/RemoveAttributeTest.html" ignoreWhitespace="true"/>
</validate>
</request>
<request path="/servlet-tests/RemoveAttribute_01Test">
<validate>
<goldenFile fileName="${wgdir}/javax_servlet_http/HttpSession/RemoveAttribute_01Test.html" ignoreWhitespace="true"/>
</validate>
</request>
<request path="/servlet-tests/SetAttributeTest">
<validate>
<goldenFile fileName="${wgdir}/javax_servlet_http/HttpSession/SetAttributeTest.html" ignoreWhitespace="true"/>
</validate>
</request>
<request path="/servlet-tests/SetAttribute_01Test">
<validate>
<goldenFile fileName="${wgdir}/javax_servlet_http/HttpSession/SetAttribute_01Test.html" ignoreWhitespace="true"/>
</validate>
</request>
<request path="/servlet-tests/SetMaxInactiveIntervalTest">
<validate>
<goldenFile fileName="${wgdir}/javax_servlet_http/HttpSession/SetMaxInactiveIntervalTest.html" ignoreWhitespace="true"/>
</validate>
</request>
<request path="/servlet-tests/InvalidateTest">
<validate>
<goldenFile fileName="${wgdir}/javax_servlet_http/HttpSession/InvalidateTest.html" ignoreWhitespace="true"/>
</validate>
</request>
<request path="/servlet-tests/DestroyTest">
<validate>
<statusCode/>
</validate>
</request>
<request path="/servlet-tests/GetServletConfigTest">
<validate>
<goldenFile fileName="${wgdir}/GetServletConfigTest.html" ignoreWhitespace="true"/>
</validate>
</request>
<request path="/servlet-tests/GetServletContextTest">
<validate>
<goldenFile fileName="${wgdir}/GetServletContextTest.html" ignoreWhitespace="true"/>
</validate>
</request>
<request path="/servlet-tests/GetServletInfoTest">
<validate>
<goldenFile fileName="${wgdir}/GetServletInfoTest.html" ignoreWhitespace="true"/>
</validate>
</request>
<request path="/servlet-tests/ForwardTest">
<validate>
<goldenFile fileName="${wgdir}/javax_servlet/RequestDispatcher/ForwardTest.html" ignoreWhitespace="true"/>
</validate>
</request>
<request path="/servlet-tests/Forward_1Test">
<validate>
<goldenFile fileName="${wgdir}/javax_servlet/RequestDispatcher/Forward_1Test.html" ignoreWhitespace="true"/>
</validate>
</request>
<request path="/servlet-tests/IncludeTest">
<validate>
<goldenFile fileName="${wgdir}/javax_servlet/RequestDispatcher/IncludeTest.html" ignoreWhitespace="true"/>
</validate>
</request>
<request path="/servlet-tests/Include_1Test">
<validate>
<responseHeader headerName="Content-Type" headerValue="text/plain"/>
<goldenFile fileName="${wgdir}/javax_servlet/RequestDispatcher/Include_1Test.html" ignoreWhitespace="true"/>
</validate>
</request>
<request path="/servlet-tests/DoDestroyedTest">
<validate>
<goldenFile fileName="${wgdir}/javax_servlet/Servlet/DoDestroyedTest.html" ignoreWhitespace="true"/>
</validate>
</request>
<request path="/servlet-tests/DoInit1Test">
<validate>
<statusCode code="500"/>
</validate>
</request>
<request path="/servlet-tests/DoInit2Test">
<validate>
<goldenFile fileName="${wgdir}/javax_servlet/Servlet/DoInit2Test.html" ignoreWhitespace="true"/>
</validate>
</request>
<request path="/servlet-tests/DoServiceTest">
<validate>
<goldenFile fileName="${wgdir}/javax_servlet/Servlet/DoServiceTest.html" ignoreWhitespace="true"/>
</validate>
</request>
<request path="/servlet-tests/DoServletConfigTest">
<validate>
<goldenFile fileName="${wgdir}/javax_servlet/Servlet/DoServletConfigTest.html" ignoreWhitespace="true"/>
</validate>
</request>
<request path="/servlet-tests/DoServletInfoTest">
<validate>
<goldenFile fileName="${wgdir}/javax_servlet/Servlet/DoServletInfoTest.html" ignoreWhitespace="true"/>
</validate>
</request>
<request path="/servlet-tests/PUTest">
<validate>
<goldenFile fileName="${wgdir}/javax_servlet/Servlet/PUTest.html" ignoreWhitespace="true"/>
</validate>
</request>
<request path="/servlet-tests/GetAuthTypeWithoutProtectionTest">
<validate>
<goldenFile fileName="${wgdir}/javax_servlet_http/HttpServletRequest/GetAuthTypeWithoutProtectionTest.html" ignoreWhitespace="true"/>
</validate>
</request>
<request path="/servlet-tests/GetContextPathTest">
<validate>
<goldenFile fileName="${wgdir}/javax_servlet_http/HttpServletRequest/GetContextPathTest.html" ignoreWhitespace="true"/>
</validate>
</request>
<request path="/servlet-tests/GetCookiesTest">
<requestHeader headerName="Cookie" headerValue="BestLanguage=Java"/>
<validate>
<goldenFile fileName="${wgdir}/javax_servlet_http/HttpServletRequest/GetCookiesTest.html" ignoreWhitespace="true"/>
</validate>
</request>
<request path="/servlet-tests/GetCookies_01Test">
<validate>
<goldenFile fileName="${wgdir}/javax_servlet_http/HttpServletRequest/GetCookies_01Test.html" ignoreWhitespace="true"/>
</validate>
</request>
<request path="/servlet-tests/GetDateHeaderTest">
<requestHeader headerName="If-Modified-Since" headerValue="2000-08-04"/>
<validate>
<goldenFile fileName="${wgdir}/javax_servlet_http/HttpServletRequest/GetDateHeaderTest.html" ignoreWhitespace="true"/>
</validate>
</request>
<request path="/servlet-tests/GetDateHeader_01Test">
<validate>
<goldenFile fileName="${wgdir}/javax_servlet_http/HttpServletRequest/GetDateHeader_01Test.html" ignoreWhitespace="true"/>
</validate>
</request>
<request path="/servlet-tests/GetDateHeader_02Test">
<requestHeader headerName="If-Modified-Since" headerValue="966465196330"/>
<validate>
<goldenFile fileName="${wgdir}/javax_servlet_http/HttpServletRequest/GetDateHeader_02Test.html" ignoreWhitespace="true"/>
</validate>
</request>
<request path="/servlet-tests/GetHeaderNamesTest">
<requestHeader headerName="Authorization" headerValue="Basic achegkliporV8y##Cookie:BestLanguage=java"/>
<validate>
<goldenFile fileName="${wgdir}/javax_servlet_http/HttpServletRequest/GetHeaderNamesTest.html" ignoreWhitespace="true"/>
</validate>
</request>
<request path="/servlet-tests/GetHeaderTest">
<requestHeader headerName="User-Agent" headerValue="Mozilla/4.0"/>
<validate>
<goldenFile fileName="${wgdir}/javax_servlet_http/HttpServletRequest/GetHeaderTest.html" ignoreWhitespace="true"/>
</validate>
</request>
<request path="/servlet-tests/GetHeader_01Test">
<validate>
<goldenFile fileName="${wgdir}/javax_servlet_http/HttpServletRequest/GetHeader_01Test.html" ignoreWhitespace="true"/>
</validate>
</request>
<request path="/servlet-tests/GetHeadersTest">
<requestHeader headerName="Accept-Language" headerValue="en-us,en-gb"/>
<validate>
<goldenFile fileName="${wgdir}/javax_servlet_http/HttpServletRequest/GetHeadersTest.html" ignoreWhitespace="true"/>
</validate>
</request>
<request path="/servlet-tests/GetHeaders_01Test">
<validate>
<goldenFile fileName="${wgdir}/javax_servlet_http/HttpServletRequest/GetHeaders_01Test.html" ignoreWhitespace="true"/>
</validate>
</request>
<request path="/servlet-tests/GetIntHeaderTest">
<requestHeader headerName="MyIntHeader" headerValue="1"/>
<validate>
<goldenFile fileName="${wgdir}/javax_servlet_http/HttpServletRequest/GetIntHeaderTest.html" ignoreWhitespace="true"/>
</validate>
</request>
<request path="/servlet-tests/GetIntHeader_1Test">
<requestHeader headerName="MyNonIntHeader" headerValue="somestring"/>
<validate>
<goldenFile fileName="${wgdir}/javax_servlet_http/HttpServletRequest/GetIntHeader_1Test.html" ignoreWhitespace="true"/>
</validate>
</request>
<request path="/servlet-tests/GetIntHeader_2Test">
<validate>
<goldenFile fileName="${wgdir}/javax_servlet_http/HttpServletRequest/GetIntHeader_2Test.html" ignoreWhitespace="true"/>
</validate>
</request>
<request path="/servlet-tests/GetMethodTest">
<validate>
<goldenFile fileName="${wgdir}/javax_servlet_http/HttpServletRequest/GetMethodTest.html" ignoreWhitespace="true"/>
</validate>
</request>
<request path="/servlet-tests/GetMethod_HEADTest" method="head">
<validate>
<goldenFile fileName="${wgdir}/javax_servlet_http/HttpServletRequest/GetMethod_HEADTest.html" ignoreWhitespace="true"/>
</validate>
</request>
<request path="/servlet-tests/GetMethod_POSTTest" method="post">
<validate>
<goldenFile fileName="${wgdir}/javax_servlet_http/HttpServletRequest/GetMethod_POSTTest.html" ignoreWhitespace="true"/>
</validate>
</request>
<request path="/servlet-tests/GetPathInfoTest/pathinfostring1/pathinfostring2" method="post">
<validate>
<goldenFile fileName="${wgdir}/javax_servlet_http/HttpServletRequest/GetPathInfoTest.html" ignoreWhitespace="true"/>
</validate>
</request>
<request path="/servlet-tests/GetPathInfo_01Test">
<validate>
<goldenFile fileName="${wgdir}/javax_servlet_http/HttpServletRequest/GetPathInfo_01Test.html" ignoreWhitespace="true"/>
</validate>
</request>
<request path="/servlet-tests/GetPathTranslatedTest/javax_servlet">
<validate>
<goldenFile fileName="${wgdir}/javax_servlet_http/HttpServletRequest/GetPathTranslatedTest.html" ignoreWhitespace="true"/>
</validate>
</request>
<request path="/servlet-tests/GetPathTranslated_01Test/javax_servlet">
<validate>
<goldenFile fileName="${wgdir}/javax_servlet_http/HttpServletRequest/GetPathTranslated_01Test.html" ignoreWhitespace="true"/>
</validate>
</request>
<request path="/servlet-tests/GetQueryStringTest?language=java">
<validate>
<goldenFile fileName="${wgdir}/javax_servlet_http/HttpServletRequest/GetQueryStringTest.html" ignoreWhitespace="true"/>
</validate>
</request>
<request path="/servlet-tests/GetQueryString_01Test">
<validate>
<goldenFile fileName="${wgdir}/javax_servlet_http/HttpServletRequest/GetQueryString_01Test.html" ignoreWhitespace="true"/>
</validate>
</request>
<request path="/servlet-tests/GetRemoteUser_01Test">
<validate>
<goldenFile fileName="${wgdir}/javax_servlet_http/HttpServletRequest/GetRemoteUser_01Test.html" ignoreWhitespace="true"/>
</validate>
</request>
<request path="/servlet-tests/GetRequestURITest">
<validate>
<goldenFile fileName="${wgdir}/javax_servlet_http/HttpServletRequest/GetRequestURITest.html" ignoreWhitespace="true"/>
</validate>
</request>
<request path="/servlet-tests/GetRequestURIWithQSTest?language=java">
<validate>
<goldenFile fileName="${wgdir}/javax_servlet_http/HttpServletRequest/GetRequestURIWithQSTest.html" ignoreWhitespace="true"/>
</validate>
</request>
<request path="/servlet-tests/GetRequestedSessionId_01Test">
<validate>
<goldenFile fileName="${wgdir}/javax_servlet_http/HttpServletRequest/GetRequestedSessionId_01Test.html" ignoreWhitespace="true"/>
</validate>
</request>
<request path="/servlet-tests/GetServletPathTest">
<validate>
<goldenFile fileName="${wgdir}/javax_servlet_http/HttpServletRequest/GetServletPathTest.html" ignoreWhitespace="true"/>
</validate>
</request>
<request path="/servlet-tests/GetUserPrincipalTest">
<requestHeader headerName="Authorization" headerValue="Basic d2VibWFzdGVyOnRyeTUndWVTUw=##From:got2be@eng.sun.com"/>
<validate>
<goldenFile fileName="${wgdir}/javax_servlet_http/HttpServletRequest/GetUserPrincipalTest.html" ignoreWhitespace="true"/>
</validate>
</request>
<request path="/servlet-tests/GetUserPrincipal_01Test">
<validate>
<goldenFile fileName="${wgdir}/javax_servlet_http/HttpServletRequest/GetUserPrincipal_01Test.html" ignoreWhitespace="true"/>
</validate>
</request>
<request path="/servlet-tests/IsRequestedSessionIdFromCookie_01Test">
<validate>
<goldenFile fileName="${wgdir}/javax_servlet_http/HttpServletRequest/IsRequestedSessionIdFromCookie_01Test.html" ignoreWhitespace="true"/>
</validate>
</request>
<request path="/servlet-tests/IsRequestedSessionIdFromURL_01Test">
<validate>
<goldenFile fileName="${wgdir}/javax_servlet_http/HttpServletRequest/IsRequestedSessionIdFromURL_01Test.html" ignoreWhitespace="true"/>
</validate>
</request>
<request path="/servlet-tests/IsRequestedSessionIdValid_01Test">
<validate>
<goldenFile fileName="${wgdir}/javax_servlet_http/HttpServletRequest/IsRequestedSessionIdValid_01Test.html" ignoreWhitespace="true"/>
</validate>
</request>
<request path="/servlet-tests/IsUserInRoleTest">
<validate>
<goldenFile fileName="${wgdir}/javax_servlet_http/HttpServletRequest/IsUserInRoleTest.html" ignoreWhitespace="true"/>
</validate>
</request>
<request path="/servlet-tests/AddCookieTest">
<validate>
<responseHeader headerName="Cookie" headerValue=" BestLanguage=java"/>
</validate>
</request>
<request path="/servlet-tests/AddDateHeaderTest">
<validate>
<responseHeader headerName="DateInfo" headerValue="Sat, 25 Apr 1970 07:29:03 GMT"/>
</validate>
</request>
<request path="/servlet-tests/AddHeaderTest">
<validate>
<responseHeader headerName="MyStrHeader" headerValue="java"/>
</validate>
</request>
<request path="/servlet-tests/AddIntHeaderTest">
<validate>
<responseHeader headerName="MyIntHeader" headerValue="2"/>
</validate>
</request>
<request path="/servlet-tests/ContainsHeaderTest">
<validate>
<responseHeader headerName="MyIntHeader" headerValue="20"/>
<goldenFile fileName="${wgdir}/javax_servlet_http/HttpServletResponse/ContainsHeaderTest.html" ignoreWhitespace="true"/>
</validate>
</request>
<request path="/servlet-tests/ContainsHeader_01Test">
<validate>
<goldenFile fileName="${wgdir}/javax_servlet_http/HttpServletResponse/ContainsHeader_01Test.html" ignoreWhitespace="true"/>
</validate>
</request>
<!-- sample of all the various test options allowed
<gtest description="Content Type Test"
request="GET /test/binaries/image1.gif HTTP/1.0"
<goldenFile fileName="${gdir}/image1.gif" ignoreWhitespace="true"/>
<regexp pattern="PreInclude"/>
<responseHeader headerName="Content-Type" headerValue="image/gif"/> />
exactMatch="true" />
-->
</suite>
1.1 jakarta-commons/latka/src/distribution/tests/watchdog/WatchdogJSPSuite.xml
Index: WatchdogJSPSuite.xml
===================================================================
<?xml version="1.0" standalone="no"?>
<!DOCTYPE suite SYSTEM "../../conf/suite.dtd">
<suite defaultHost="localhost" defaultPort="8080" label="Watchdog JSP tests">
<!-- ==================== Watchdog JSP tests ==================== -->
<!-- Precompilation tests -->
<request path="/jsp-tests/jsp/misc/precompilation/precompile.jsp?jsp_precompile" label="Test that the request is not sent to the JSP">
<validate>
<statusCode label="No HTML page received when jsp_precompile has no value"/>
</validate>
</request>
<request path="/jsp-tests/jsp/misc/precompilation/precompile.jsp?jsp_precompile=false&test=insignificant" label="Test that the request is forwarded properly when jsp_precompile=false">
<validate>
<goldenFile fileName="${wgdir}/misc/precompilation/response.html" ignoreWhitespace="true" label="The value of variable passed in the request is displayed if the request goes to the JSP"/>
</validate>
</request>
<request path="/jsp-tests/jsp/misc/precompilation/precompile.jsp?jsp_precompile=false" label="Test that the request is forwarded properly when jsp_precompile=false">
<validate>
<goldenFile fileName="${wgdir}/misc/precompilation/no_parameter.html" ignoreWhitespace="true" label="The request should be processed "/>
</validate>
</request>
<!--
<request path="/jsp-tests/jsp/misc/precompilation/precompile.jsp?jsp_precompile=%22false%22" label="Test that the request is forwarded properly when jsp_precompile=%22false%22">
<validate>
<goldenFile fileName="${wgdir}/misc/precompilation/no_parameter.html" ignoreWhitespace="true" label="The request should be processed "/>
</validate>
</request>
-->
<request path="/jsp-tests/jsp/misc/precompilation/precompile.jsp?jsp_precompile=true" label="Test that the request is not sent to the JSP">
<validate>
<statusCode label="No HTML page received when jsp_precompile=true "/>
</validate>
</request>
<!--
<request path="/jsp-tests/jsp/misc/precompilation/precompile.jsp?jsp_precompile=%22true%22" label="Test that the request is not sent to the JSP">
<validate>
<statusCode label="No HTML page received when jsp_precompile=true "/>
</validate>
</request>
-->
<request path="/jsp-tests/jsp/misc/precompilation/precompile.jsp?jsp_precompile=any_invalid_value" label="Test that the proper error code is returned if jsp_precompile is given an invalid value">
<validate>
<statusCode code="500" label="check for status code 500"/>
</validate>
</request>
<!-- End Precompilation Tests -->
<!-- Begin TLD Resource Path tests -->
<request path="/jsp-tests/jsp/tagext/tld_resource_path/positive_ABS_URI.jsp" label="Test that the proper tld file is located when the URI in tha taglib directive is an absolutr URI">
<validate>
<goldenFile fileName="${wgdir}/tagext/tld_resource_path/absolute_uri.html" ignoreWhitespace="true" label="Use an absolute URI and print a message from the tag handler telling the type of URI that was used.No error should ocurr"/>
</validate>
</request>
<request path="/jsp-tests/jsp/tagext/tld_resource_path/positive_REL_URI.jsp" label="Test that the proper tld file is located when the URI in tha taglib directive is a relative URI">
<validate>
<goldenFile fileName="${wgdir}/tagext/tld_resource_path/relative_uri.html" ignoreWhitespace="true" label="Use a relative URI and print a message from the tag handler telling the type of URI that was used.No error should ocurr"/>
</validate>
</request>
<request path="/jsp-tests/jsp/tagext/tld_resource_path/positive_NONREL_URI.jsp" label="Test that the proper tld file is located when the URI in tha taglib directive is a non relative URI">
<validate>
<goldenFile fileName="${wgdir}/tagext/tld_resource_path/non-relative_uri.html" ignoreWhitespace="true" label="Use a non relative URI and print a message from the tag handler telling the type of URI that was used.No error should ocurr"/>
</validate>
</request>
<request path="/jsp-tests/jsp/tagext/tld_resource_path/positive_JAR_URI.jsp" label="Test that the proper tld file is located when the URI in tha taglib directive points to a jar file">
<validate>
<goldenFile fileName="${wgdir}/tagext/tld_resource_path/jar_uri.html" ignoreWhitespace="true" label="Use a jar file in URI and print a message from the tag handler telling the type of URI that was used.No error should ocurr"/>
</validate>
</request>
<!-- End TLD Resource path Tests -->
<!-- Commented out to be fixed after Beta
<request path="/jsp-tests/jsp/tagext/TagLibraryValidator/validate.jsp" label="Tests the working of Validator class for a taglib">
<validate>
<goldenFile fileName="${wgdir}/tagext/TagLibraryValidator/validate.html" ignoreWhitespace="true" label="Tests if the prefix is more than 10 characters"/>
</validate>
</request>
-->
<request path="/jsp-tests/jsp/HelloWorld.jsp" label="Test if string Hello can be displayed ">
<validate>
<goldenFile fileName="${wgdir}/HelloWorld.html" ignoreWhitespace="true" label="Simple html display when no JSP tags are present"/>
</validate>
</request>
<request path="/jsp-tests/jsp/core_syntax/beantests/useBean/positiveBeanNameClass.jsp" label="Declaring the bean with beanName as a class file, specified in the Java Server Pages Specification v1.2, Sec 3.2.1 ">
<validate>
<goldenFile fileName="${wgdir}/core_syntax/beantests/useBean/positiveBeanNameClass.html" ignoreWhitespace="true" label="Create a bean using useBean tag and access using a scriptlet"/>
</validate>
</request>
<request path="/jsp-tests/jsp/core_syntax/beantests/useBean/positiveBeanNameRes.jsp" label="Declaring the bean with beanName as a resource file, specified in the Java Server Pages Specification v1.2, Sec 3.2.1 ">
<validate>
<goldenFile fileName="${wgdir}/core_syntax/beantests/useBean/positiveBeanNameRes.html" ignoreWhitespace="true" label="Create a bean using useBean tag and access using a scriptlet"/>
</validate>
</request>
<request path="/jsp-tests/jsp/core_syntax/beantests/useBean/positiveBodyExists.jsp" label="Create a valid useBean tag in the JSP page with a non-empty body and with a class name that has already been created., specified in the Java Server Pages Specification v1.2, Sec 3.2.1 ">
<validate>
<goldenFile fileName="${wgdir}/core_syntax/beantests/useBean/positiveBodyExists.html" ignoreWhitespace="true" label="Create a bean using useBean tag and access using a scriptlet"/>
</validate>
</request>
<request path="/jsp-tests/jsp/core_syntax/beantests/useBean/positiveBodyNew.jsp" label="Create a valid useBean tag in the JSP page with a non-empty body. Ensure that the classname specified does not exist, specified in the Java Server Pages Specification v1.2, Sec 3.2.1 ">
<validate>
<goldenFile fileName="${wgdir}/core_syntax/beantests/useBean/positiveBodyNew.html" ignoreWhitespace="true" label="Create a bean using useBean tag and access using a scriptlet"/>
</validate>
</request>
<request path="/jsp-tests/jsp/core_syntax/beantests/useBean/positiveDupIDPage1.jsp" label="Create two useBean tags on different JSP pages with the same ID, and the scope attribute of each being set to 'page'. Access each page one after the other., specified in the Java Server Pages Specification v1.2, Sec 3.2.1 ">
<validate>
<goldenFile fileName="${wgdir}/core_syntax/beantests/useBean/positiveDupIDPage1.html" ignoreWhitespace="true" label="Create a bean using useBean tag and access using a scriptlet"/>
</validate>
</request>
<request path="/jsp-tests/jsp/core_syntax/beantests/useBean/positiveDupIDRequest1.jsp" label="Create two useBean tags on different JSP pages with the same ID, and the scope attribute of each being set to 'request'., specified in the Java Server Pages Specification v1.2, Sec 3.2.1 ">
<validate>
<goldenFile fileName="${wgdir}/core_syntax/beantests/useBean/positiveDupIDRequest1.html" ignoreWhitespace="true" label="Create a bean using useBean tag and access using a scriptlet"/>
</validate>
</request>
<request path="/jsp-tests/jsp/core_syntax/beantests/useBean/positiveNoBody.jsp" label="Create a valid useBean tag in the JSP page with no body., and the scope attribute of each being set to 'request'., specified in the Java Server Pages Specification v1.2, Sec 3.2.1 ">
<validate>
<goldenFile fileName="${wgdir}/core_syntax/beantests/useBean/positiveNoBody.html" ignoreWhitespace="true" label="Create a bean using useBean tag and access using a scriptlet"/>
</validate>
</request>
<request path="/jsp-tests/jsp/core_syntax/beantests/useBean/positivePageScope.jsp" label="Create the JSP page with useBean scope set to page. Access the page multiple times., specified in the Java Server Pages Specification v1.2, Sec 3.2.1 ">
<validate>
<goldenFile fileName="${wgdir}/core_syntax/beantests/useBean/positivePageScope.html" ignoreWhitespace="true" label="Create a bean using useBean tag and access using a scriptlet"/>
</validate>
</request>
<!--
<request path="/jsp-tests/jsp/core_syntax/beantests/useBean/positiveSessionScope.jsp" label="Create the JSP page with useBean scope set to page. Access the page multiple times., specified in the Java Server Pages Specification v1.2, Sec 3.2.1 ">
<validate>
<statusCode label="Create a bean using useBean tag and access using a scriptlet"/>
</validate>
</request>
-->
<request path="/jsp-tests/jsp/core_syntax/beantests/useBean/positiveTypeAssignable.jsp" label="Using 'class' and 'type' together in useBean tag. 'Class' is assignable to 'type'., specified in the Java Server Pages Specification v1.2, Sec 3.2.1 ">
<validate>
<goldenFile fileName="${wgdir}/core_syntax/beantests/useBean/positiveTypeAssignable.html" ignoreWhitespace="true" label="Create a bean using useBean tag and access using a scriptlet"/>
</validate>
</request>
<request path="/jsp-tests/jsp/core_syntax/beantests/setProperty/positiveSetPropParam.jsp?Name=MANGO" label="Create a valid useBean action in JSP. Set a specific property of that bean from the request using a <jsp:setPropertyparam=paramname> action. Then access that property., specified in the Java Server Pages Specification v1.2, Sec 3.2.2 ">
<validate>
<goldenFile fileName="${wgdir}/core_syntax/beantests/setProperty/positiveSetPropParam.html" ignoreWhitespace="true" label="Create a bean using useBean tag, use setProperty and access using a scriptlet"/>
</validate>
</request>
<request path="/jsp-tests/jsp/core_syntax/beantests/setProperty/positiveSetPropNoParam.jsp?str=SAPPOTA" label="Create a valid useBean action in JSP. Set a specific property of that bean from the request using a <jsp:setProperty property='propName'> action. Then access that property with a request that contains a parameter with the same name as the Bean Name., specified in the Java Server Pages Specification v1.2, Sec 3.2.2 ">
<validate>
<goldenFile fileName="${wgdir}/core_syntax/beantests/setProperty/positiveSetPropNoParam.html" ignoreWhitespace="true" label="Create a bean using useBean tag, use setProperty and access using a scriptlet"/>
</validate>
</request>
<request path="/jsp-tests/jsp/core_syntax/beantests/setProperty/positiveSetPropValue.jsp" label="Create a valid useBean action in JSP. Set a specific property of that bean from the request using a <jsp:setProperty value='propValue'> action. Then access that property. , specified in the Java Server Pages Specification v1.2, Sec 3.2.2 ">
<validate>
<goldenFile fileName="${wgdir}/core_syntax/beantests/setProperty/positiveSetPropValue.html" ignoreWhitespace="true" label="Create a bean using useBean tag, use setProperty and access using a scriptlet"/>
</validate>
</request>
<request path="/jsp-tests/jsp/core_syntax/beantests/setProperty/positiveSetPropSingleQuotes.jsp" label="Use a scriptlet expression in single quotes as 'value' attribute in setProperty , specified in the Java Server Pages Specification v1.2, Sec 3.2.2 ">
<validate>
<goldenFile fileName="${wgdir}/core_syntax/beantests/setProperty/positiveSetPropSingleQuotes.html" ignoreWhitespace="true" label="Create a bean using useBean tag, use setProperty and access using a scriptlet"/>
</validate>
</request>
<request path="/jsp-tests/jsp/core_syntax/beantests/setProperty/positiveUseBeanInit.jsp" label="Create a valid useBean action. In the body of the action, put setProperty statements to set specific properties of the bean.Ensure that the bean class does not exist before calling this page. Call the page for the first time. , specified in the Java Server Pages Specification v1.2, Sec 3.2.2 ">
<validate>
<goldenFile fileName="${wgdir}/core_syntax/beantests/setProperty/positiveUseBeanInit.html" ignoreWhitespace="true" label="Create a bean using useBean tag, use setProperty and access using a scriptlet"/>
</validate>
</request>
<request path="/jsp-tests/jsp/core_syntax/beantests/setProperty/positiveUseBeanNext.jsp" label="Create a valid useBean action. In the body of the action, put setProperty statements to set specific properties of the bean.Ensure that the bean already exists. Call the page and check the value of the property that you have specified in the useBean body., specified in the Java Server Pages Specification v1.2, Sec 3.2.2 ">
<validate>
<goldenFile fileName="${wgdir}/core_syntax/beantests/setProperty/positiveUseBeanNext.html" ignoreWhitespace="true" label="Create a bean using useBean tag, use setProperty and access using a scriptlet"/>
</validate>
</request>
<request path="/jsp-tests/jsp/core_syntax/beantests/setProperty/positiveSetLongPrim.jsp" label="use a setProperty to set a primitive Long value in a bean and access it, specified in the Java Server Pages Specification v1.2, Sec 3.2.2 ">
<validate>
<goldenFile fileName="${wgdir}/core_syntax/beantests/setProperty/positiveSetLongPrim.html" ignoreWhitespace="true" label="Create a bean using useBean tag, use setProperty and access using a scriptlet"/>
</validate>
</request>
<request path="/jsp-tests/jsp/core_syntax/beantests/setProperty/positiveSetLongObj.jsp" label="use a setProperty to set a object Long value in a bean and access it, specified in the Java Server Pages Specification v1.2, Sec 3.2.2 ">
<validate>
<goldenFile fileName="${wgdir}/core_syntax/beantests/setProperty/positiveSetLongObj.html" ignoreWhitespace="true" label="Create a bean using useBean tag, use setProperty and access using a scriptlet"/>
</validate>
</request>
<request path="/jsp-tests/jsp/core_syntax/beantests/setProperty/positiveSetIntPrim.jsp" label="use a setProperty to set a Primitive Int value in a bean and access it, specified in the Java Server Pages Specification v1.2, Sec 3.2.2 ">
<validate>
<goldenFile fileName="${wgdir}/core_syntax/beantests/setProperty/positiveSetIntPrim.html" ignoreWhitespace="true" label="Create a bean using useBean tag, use setProperty and access using a scriptlet"/>
</validate>
</request>
<request path="/jsp-tests/jsp/core_syntax/beantests/setProperty/positiveSetIntObj.jsp" label="use a setProperty to set a Integer value in a bean, specified in the Java Server Pages Specification v1.2, Sec 3.2.2 ">
<validate>
<goldenFile fileName="${wgdir}/core_syntax/beantests/setProperty/positiveSetIntObj.html" ignoreWhitespace="true" label="Create a bean using useBean tag, use setProperty and access using a scriptlet"/>
</validate>
</request>
<request path="/jsp-tests/jsp/core_syntax/beantests/setProperty/positiveSetIndexedProp.jsp" label="use a setProperty to set a Array (declared in the scriptlet) value in a bean, specified in the Java Server Pages Specification v1.2, Sec 3.2.2 ">
<validate>
<goldenFile fileName="${wgdir}/core_syntax/beantests/setProperty/positiveSetIndexedProp.html" ignoreWhitespace="true" label="Create a bean using useBean tag, use setProperty and access using a scriptlet"/>
</validate>
</request>
<request path="/jsp-tests/jsp/core_syntax/beantests/setProperty/positiveSetFloatObj.jsp" label="use a setProperty to set a Float value in a bean, specified in the Java Server Pages Specification v1.2, Sec 3.2.2 ">
<validate>
<goldenFile fileName="${wgdir}/core_syntax/beantests/setProperty/positiveSetFloatObj.html" ignoreWhitespace="true" label="Create a bean using useBean tag, use setProperty and access using a scriptlet"/>
</validate>
</request>
<request path="/jsp-tests/jsp/core_syntax/beantests/setProperty/positiveSetFloatPrim.jsp" label="use a setProperty to set a Float value in a bean, specified in the Java Server Pages Specification v1.2, Sec 3.2.2 ">
<validate>
<goldenFile fileName="${wgdir}/core_syntax/beantests/setProperty/positiveSetFloatPrim.html" ignoreWhitespace="true" label="Create a bean using useBean tag, use setProperty and access using a scriptlet"/>
</validate>
</request>
<request path="/jsp-tests/jsp/core_syntax/beantests/setProperty/positiveSetDoublePrim.jsp" label="use a setProperty to set a double value in a bean, specified in the Java Server Pages Specification v1.2, Sec 3.2.2 ">
<validate>
<goldenFile fileName="${wgdir}/core_syntax/beantests/setProperty/positiveSetDoublePrim.html" ignoreWhitespace="true" label="Create a bean using useBean tag, use setProperty and access using a scriptlet"/>
</validate>
</request>
<request path="/jsp-tests/jsp/core_syntax/beantests/setProperty/positiveSetDoubleObj.jsp" label="use a setProperty to set a Double value in a bean, specified in the Java Server Pages Specification v1.2, Sec 3.2.2 ">
<validate>
<goldenFile fileName="${wgdir}/core_syntax/beantests/setProperty/positiveSetDoubleObj.html" ignoreWhitespace="true" label="Create a bean using useBean tag, use setProperty and access using a scriptlet"/>
</validate>
</request>
<request path="/jsp-tests/jsp/core_syntax/beantests/setProperty/positiveSetCharPrim.jsp" label="use a setProperty to set a char value in a bean, specified in the Java Server Pages Specification v1.2, Sec 3.2.2 ">
<validate>
<goldenFile fileName="${wgdir}/core_syntax/beantests/setProperty/positiveSetCharPrim.html" ignoreWhitespace="true" label="Create a bean using useBean tag, use setProperty and access using a scriptlet"/>
</validate>
</request>
<request path="/jsp-tests/jsp/core_syntax/beantests/setProperty/positiveSetCharObj.jsp" label="use a setProperty to set a Character value in a bean, specified in the Java Server Pages Specification v1.2, Sec 3.2.2 ">
<validate>
<goldenFile fileName="${wgdir}/core_syntax/beantests/setProperty/positiveSetCharObj.html" ignoreWhitespace="true" label="Create a bean using useBean tag, use setProperty and access using a scriptlet"/>
</validate>
</request>
<request path="/jsp-tests/jsp/core_syntax/beantests/setProperty/positiveSetBooleanObj.jsp" label="use a setProperty to set a Boolean value in a bean, specified in the Java Server Pages Specification v1.2, Sec 3.2.2 ">
<validate>
<goldenFile fileName="${wgdir}/core_syntax/beantests/setProperty/positiveSetBooleanObj.html" ignoreWhitespace="true" label="Create a bean using useBean tag, use setProperty and access using a scriptlet"/>
</validate>
</request>
<request path="/jsp-tests/jsp/core_syntax/beantests/setProperty/positiveSetBooleanPrim.jsp" label="use a setProperty to set a boolean value in a bean, specified in the Java Server Pages Specification v1.2, Sec 3.2.2 ">
<validate>
<goldenFile fileName="${wgdir}/core_syntax/beantests/setProperty/positiveSetBooleanPrim.html" ignoreWhitespace="true" label="Create a bean using useBean tag, use setProperty and access using a scriptlet"/>
</validate>
</request>
<request path="/jsp-tests/jsp/core_syntax/beantests/setProperty/positiveSetByteObj.jsp" label="use a setProperty to set a Byte value in a bean, specified in the Java Server Pages Specification v1.2, Sec 3.2.2 ">
<validate>
<goldenFile fileName="${wgdir}/core_syntax/beantests/setProperty/positiveSetByteObj.html" ignoreWhitespace="true" label="Create a bean using useBean tag, use setProperty and access using a scriptlet"/>
</validate>
</request>
<request path="/jsp-tests/jsp/core_syntax/beantests/setProperty/positiveSetBytePrim.jsp" label="use a setProperty to set a byte value in a bean, specified in the Java Server Pages Specification v1.2, Sec 3.2.2 ">
<validate>
<goldenFile fileName="${wgdir}/core_syntax/beantests/setProperty/positiveSetBytePrim.html" ignoreWhitespace="true" label="Create a bean using useBean tag, use setProperty and access using a scriptlet"/>
</validate>
</request>
<request path="/jsp-tests/jsp/core_syntax/beantests/setProperty/positiveSetPropAll.jsp" label="Use a setProperty to set and access multiple properties in a bean, specified in the Java Server Pages Specification v1.2, Sec 3.2.2 ">
<validate>
<goldenFile fileName="${wgdir}/core_syntax/beantests/setProperty/positiveSetPropAll.html" ignoreWhitespace="true" label="Create a bean using useBean tag, use setProperty to set multiple properties"/>
</validate>
</request>
<request path="/jsp-tests/jsp/core_syntax/beantests/getProperty/positiveGetProps.jsp" label="Create a valid useBean tag in the JSP. Access one of its properties through a getProperty tag, specified in the Java Server Pages Specification v1.2, Sec 3.2.3 ">
<validate>
<goldenFile fileName="${wgdir}/core_syntax/beantests/getProperty/positiveGetProps.html" ignoreWhitespace="true" label="Create a bean using useBean tag, use getProperty to access property"/>
</validate>
</request>
<request path="/jsp-tests/jsp/core_syntax/implicitobjects/checkSession.jsp" label="checking 'session' is of type javax.servlet.HttpSession and also whether an identifier is assigned to this session or not, specified in the Java Server Pages Specification v1.2, Sec 2.9.3 ">
<validate>
<goldenFile fileName="${wgdir}/core_syntax/implicitobjects/checkSession.html" ignoreWhitespace="true" label="checking for Session object state"/>
</validate>
</request>
<request path="/jsp-tests/jsp/core_syntax/implicitobjects/checkConfig.jsp" label="Check if configuration information is being passed to the server page. Also checks whether it returns the initialization parameters as an Enumeration of Strings or as an empty enumeration., specified in the Java Server Pages Specification v1.2, Sec 2.9.3 ">
<validate>
<goldenFile fileName="${wgdir}/core_syntax/implicitobjects/checkConfig.html" ignoreWhitespace="true" label="checking for config object state"/>
</validate>
</request>
<request path="/jsp-tests/jsp/core_syntax/implicitobjects/checkException.jsp" label="Checks whether 'exception' is of type java.lang.Throwable, specified in the Java Server Pages Specification v1.2, Sec 2.9.3 ">
<validate>
<goldenFile fileName="${wgdir}/core_syntax/implicitobjects/checkException.html" ignoreWhitespace="true" label="checking for Exception object state"/>
</validate>
</request>
<request path="/jsp-tests/jsp/core_syntax/implicitobjects/checkOut.jsp" label="Checks whether 'out' is of the type javax.servlet.jsp.JspWriter, specified in the Java Server Pages Specification v1.2, Sec 2.9.3 ">
<validate>
<goldenFile fileName="${wgdir}/core_syntax/implicitobjects/checkOut.html" ignoreWhitespace="true" label="checking for out object type"/>
</validate>
</request>
<request path="/jsp-tests/jsp/core_syntax/implicitobjects/checkPage.jsp" label="checking if this page is of the type java.lang.Object, specified in the Java Server Pages Specification v1.2, Sec 2.9.3 ">
<validate>
<goldenFile fileName="${wgdir}/core_syntax/implicitobjects/checkPage.html" ignoreWhitespace="true" label="checking for page object type"/>
</validate>
</request>
<request path="/jsp-tests/jsp/core_syntax/implicitobjects/checkPageContext.jsp" label="checking 'page' is of type javax.servlet.jsp.PageContext, specified in the Java Server Pages Specification v1.2, Sec 2.9.3 ">
<validate>
<goldenFile fileName="${wgdir}/core_syntax/implicitobjects/checkPageContext.html" ignoreWhitespace="true" label="checking for pageContext object type"/>
</validate>
</request>
<request path="/jsp-tests/jsp/core_syntax/implicitobjects/checkRequest.jsp?Years=2" label="checks whether 'request' is an instance of javax.servlet.ServletRequest, specified in the Java Server Pages Specification v1.2, Sec 2.9.3 ">
<validate>
<goldenFile fileName="${wgdir}/core_syntax/implicitobjects/checkRequest.html" ignoreWhitespace="true" label="checking for request object type"/>
</validate>
</request>
<request path="/jsp-tests/jsp/core_syntax/implicitobjects/checkResponse.jsp" label="Checks whether response is an object of type javax.servlet.ServletResponse, specified in the Java Server Pages Specification v1.2, Sec 2.9.3 ">
<validate>
<goldenFile fileName="${wgdir}/core_syntax/implicitobjects/checkResponse.html" ignoreWhitespace="true" label="checking for response object type"/>
</validate>
</request>
<request path="/jsp-tests/jsp/core_syntax/implicitobjects/checkApplication.jsp" label="Returns true if application is of type javax.servlet.ServletContext, specified in the Java Server Pages Specification v1.2, Sec 2.9.3 ">
<validate>
<goldenFile fileName="${wgdir}/core_syntax/implicitobjects/checkApplication.html" ignoreWhitespace="true" label="checking for application object type"/>
</validate>
</request>
<request path="/jsp-tests/jsp/core_syntax/scripting/declaration/positiveDeclaration.jsp" label="Test a JSP page with a valid Java declaration element., specified in the Java Server Pages Specification v1.2, Sec 2.12.1 ">
<validate>
<goldenFile fileName="${wgdir}/core_syntax/scripting/declaration/positiveDeclaration.html" ignoreWhitespace="true" label="correct syntax is used in the declaration statement"/>
</validate>
</request>
<request path="/jsp-tests/jsp/core_syntax/scripting/expressions/positiveExpr.jsp" label="Test a JSP page with a valid expression element., specified in the Java Server Pages Specification v1.2, Sec 2.12.3 ">
<validate>
<goldenFile fileName="${wgdir}/core_syntax/scripting/expressions/positiveExpr.html" ignoreWhitespace="true" label="correct syntax is used in the expression statement"/>
</validate>
</request>
<request path="/jsp-tests/jsp/core_syntax/scripting/expressions/positiveExprBean.jsp" label="Test a JSP page with a useBean tag and valid expression element., specified in the Java Server Pages Specification v1.2, Sec 2.12.3 ">
<validate>
<goldenFile fileName="${wgdir}/core_syntax/scripting/expressions/positiveExprBean.html" ignoreWhitespace="true" label="correct syntax is used in the expression with useBean tag"/>
</validate>
</request>
<request path="/jsp-tests/jsp/core_syntax/scripting/expressions/positiveExprComment.jsp" label="Create a JSP page with a JSP expression inserted into a HTML comment, specified in the Java Server Pages Specification v1.2, Sec 2.12.3 ">
<validate>
<goldenFile fileName="${wgdir}/core_syntax/scripting/expressions/positiveExprComment.html" ignoreWhitespace="true" label="correct syntax is used in the expression with HTML"/>
</validate>
</request>
<request path="/jsp-tests/jsp/core_syntax/scripting/expressions/positiveExprSyntax.jsp" label="Create an expression in the page with no space between the start tag and expression. Similarly have no space between the end of the expression and end tag, specified in the Java Server Pages Specification v1.2, Sec 2.12.3 ">
<validate>
<goldenFile fileName="${wgdir}/core_syntax/scripting/expressions/positiveExprSyntax.html" ignoreWhitespace="true" label="correct syntax is used in the expression with no space between tags"/>
</validate>
</request>
<request path="/jsp-tests/jsp/core_syntax/scripting/scriptlet/positiveScriptlet.jsp" label="Create a valid scriplet in the JSP page.Declare a variable and increment it, specified in the Java Server Pages Specification v1.2, Sec 2.12.2 ">
<validate>
<goldenFile fileName="${wgdir}/core_syntax/scripting/scriptlet/positiveScriptlet.html" ignoreWhitespace="true" label="correct syntax is used in the scriptlet"/>
</validate>
</request>
<request path="/jsp-tests/jsp/core_syntax/scripting/scriptlet/positiveScriptletComment.jsp" label="Create a valid scriplet in the JSP page.Declare a variable and increment it, specified in the Java Server Pages Specification v1.2, Sec 2.12.2 ">
<validate>
<goldenFile fileName="${wgdir}/core_syntax/scripting/scriptlet/positiveScriptletComment.html" ignoreWhitespace="true" label="correct syntax is used in the scriptlet"/>
</validate>
</request>
<!-- Test commented out as the JSP file contains invalid Java code in the scriptlet
<request path="/jsp-tests/jsp/core_syntax/scripting/scriptlet/positiveScriptletLiteral.jsp" label="Create a valid scriptlet in a JSP page that includes the usual scriptlet end tag in a String literal.">
<validate>
<goldenFile fileName="${wgdir}/core_syntax/scripting/scriptlet/positiveScriptletLiteral.html" ignoreWhitespace="true" label="correct syntax is used in the scriptlet"/>
</validate>
</request>
-->
<request path="/jsp-tests/jsp/core_syntax/scripting/scriptlet/positiveScriptletMultiline.jsp" label="Create a valid scriplet in JSP that spans multiple lines., specified in the Java Server Pages Specification v1.2, Sec 2.12.2 ">
<validate>
<goldenFile fileName="${wgdir}/core_syntax/scripting/scriptlet/positiveScriptletMultiline.html" ignoreWhitespace="true" label="correct syntax is used in the multiline scriptlet"/>
</validate>
</request>
<request path="/jsp-tests/jsp/core_syntax/scripting/scriptlet/positiveScriptletMultiline2.jsp" label="Testing with multiple scriptlets, which spans multiple lines in such a way that each starts and ends in the same line, specified in the Java Server Pages Specification v1.2, Sec 2.12.2 ">
<validate>
<goldenFile fileName="${wgdir}/core_syntax/scripting/scriptlet/positiveScriptletMultiline2.html" ignoreWhitespace="true" label="correct syntax is used in the multiline scriptlet"/>
</validate>
</request>
<request path="/jsp-tests/jsp/core_syntax/scripting/scriptlet/positiveScriptletUseBean.jsp" label="Create a valid useBean action in the JSP. After that,use a scriplet to change the value of a specific bean property. Send the new value of the property to outstream., specified in the Java Server Pages Specification v1.2, Sec 2.12.2 ">
<validate>
<goldenFile fileName="${wgdir}/core_syntax/scripting/scriptlet/positiveScriptletUseBean.html" ignoreWhitespace="true" label="Use scriptlet to access the property of a bean"/>
</validate>
</request>
<!-- Test commented out as the positiveDoubleQuotesXML gives error. jsp2XML tools needs more work; after Beta
<request path="/jsp-tests/jsp/core_syntax/directives/forward/positiveDoubleQuotes.jsp" label="Checking request time attributes with a scriptlet expression in doublequotes to do forwarding, specified in the Java Server Pages Specification v1.2, Sec 3.2.5 ">
<validate>
<goldenFile fileName="${wgdir}/core_syntax/directives/forward/positiveDoubleQuotes.html" ignoreWhitespace="true" label="Test forward in a scriptlet expression"/>
</validate>
</request>
-->
<request path="/jsp-tests/jsp/core_syntax/directives/forward/positiveForwardRelHtml.jsp" label="We are testing for forwarding to static pages using <jsp:forward page > tag. here we use relative path from current context as url., specified in the Java Server Pages Specification v1.2, Sec 3.2.5 ">
<validate>
<goldenFile fileName="${wgdir}/core_syntax/directives/forward/positiveForwardRelHtml.html" ignoreWhitespace="true" label="testing whether forwarding works using url relative to current context"/>
</validate>
</request>
<request path="/jsp-tests/jsp/core_syntax/directives/include/positiveIncludeRel.jsp" label="Create a JSP page with the include attribute set for the jsp:request action with a relative URL. The included page should exist in the desired location, specified in the Java Server Pages Specification v1.2, Sec 3.2.4 ">
<validate>
<goldenFile fileName="${wgdir}/core_syntax/directives/include/positiveIncludeRel.html" ignoreWhitespace="true" label="testing if including of files work"/>
</validate>
</request>
<request path="/jsp-tests/jsp/core_syntax/directives/page/content/positiveContenttype.jsp" label="Create a JSP page with the include attribute set for the jsp:request action with a relative URL. The included page should exist in the desired location, specified in the Java Server Pages Specification v1.2, Sec 3.2.4 ">
<validate>
<goldenFile fileName="${wgdir}/core_syntax/directives/page/content/positiveContenttype.html" ignoreWhitespace="true" label="testing if including of files work"/>
</validate>
</request>
<request path="/jsp-tests/jsp/core_syntax/directives/page/errorpage/positiveErrorPage.jsp" label="Test with the errorPage directive and test for exception, specified in the Java Server Pages Specification v1.2, Sec 2.11.1">
<validate>
<goldenFile fileName="${wgdir}/core_syntax/directives/page/errorpage/positiveErrorPage.html" ignoreWhitespace="true" label="testing if errorpage directive works"/>
</validate>
</request>
<request path="/jsp-tests/jsp/core_syntax/directives/page/extend/positiveExtends.jsp" label="we use extends directive to point our own defined class as super class to the jsp, specified in the Java Server Pages Specification v1.2, Sec 2.11.1">
<validate>
<goldenFile fileName="${wgdir}/core_syntax/directives/page/extend/positiveExtends.html" ignoreWhitespace="true" label="testing if extends directive works"/>
</validate>
</request>
<request path="/jsp-tests/jsp/core_syntax/directives/page/imports/positiveImport.jsp" label="Use a jsp directive with 'language = java' and a valid import attribute. Use the imported package in the page., specified in the Java Server Pages Specification v1.2, Sec 2.11.1">
<validate>
<goldenFile fileName="${wgdir}/core_syntax/directives/page/imports/positiveImport.html" ignoreWhitespace="true" label="testing if extends directive works"/>
</validate>
</request>
<request path="/jsp-tests/jsp/core_syntax/directives/page/info/positiveInfo.jsp" label="Set the value of the info attribute to a specific value.Then invoke the getServletInfo method on the current page's Servlet object, specified in the Java Server Pages Specification v1.2, Sec 2.11.1">
<validate>
<goldenFile fileName="${wgdir}/core_syntax/directives/page/info/positiveInfo.html" ignoreWhitespace="true" label="testing if info directive works"/>
</validate>
</request>
<request path="/jsp-tests/jsp/core_syntax/directives/page/language/positiveLang.jsp" label="Use a jsp attribute in a page with the language attribute set to 'java', specified in the Java Server Pages Specification v1.2, Sec 2.11.1">
<validate>
<goldenFile fileName="${wgdir}/core_syntax/directives/page/language/positiveLang.html" ignoreWhitespace="true" label="testing if the language directive set to java cause any problem"/>
</validate>
</request>
<request path="/jsp-tests/jsp/core_syntax/directives/page/session/positiveSession.jsp" label="Test the implicit session object and call one of its methods, specified in the Java Server Pages Specification v1.2, Sec 2.11.1">
<validate>
<statusCode label="testing if implicit session object works"/>
<regexp pattern="got true"/>
</validate>
</request>
<request path="/jsp-tests/jsp/core_syntax/directives/page/session/positiveSessionDefault.jsp" label="Test to invoke a method on the implicit session object., specified in the Java Server Pages Specification v1.2, Sec 2.11.1">
<validate>
<statusCode label="testing if implicit session object is available by default "/>
<regexp pattern="got true"/>
</validate>
</request>
<request path="/jsp-tests/jsp/core_syntax/directives/page/buffer/positiveBuffAutoflush.jsp" label="Set autoflush to true. Use default buffer size of 8kb. Write more than 8kb of data to the out object, specified in the Java Server Pages Specification v1.2, Sec 2.11.1">
<validate>
<statusCode label="testing buffer AutoFlush "/>
<regexp pattern="5999"/>
</validate>
</request>
<request path="/jsp-tests/jsp/core_syntax/directives/page/buffer/positiveBuffCreate.jsp" label="Create a buffer size of say 12kb. Keep autoflush set to false(default).Write characters to the out object. Invoke the flush() method on out to flush the output to the client., specified in the Java Server Pages Specification v1.2, Sec 2.11.1">
<validate>
<statusCode label="testing buffer AutoFlush "/>
<regexp pattern="999"/>
</validate>
</request>
<request path="/jsp-tests/jsp/engine/JspFactory/positiveGetDefaultFactory.jsp" label="A test for the static method getDefaultFactory, specified in the Java Server Pages Specification v1.2, Sec 8.1.6">
<validate>
<goldenFile fileName="${wgdir}/engine/JspFactory/positiveGetDefaultFactory.html" ignoreWhitespace="true" label="testing for a non null value for the default factory"/>
</validate>
</request>
<request path="/jsp-tests/jsp/engine/JspFactory/positiveSetDefaultFactory.jsp" label="A test for the static method setDefaultFactory, specified in the Java Server Pages Specification v1.2, Sec 8.1.6">
<validate>
<goldenFile fileName="${wgdir}/engine/JspFactory/positiveSetDefaultFactory.html" ignoreWhitespace="true" label="testing for a non null value for the default factory"/>
</validate>
</request>
<request path="/jsp-tests/jsp/engine/JspFactory/positiveGetPageContext.jsp" label="Use getDefaultFactory to get a valid factory object and call getPageContext and on the obtained object call a pagecontext method , specified in the Java Server Pages Specification v1.2, Sec 8.1.4">
<validate>
<goldenFile fileName="${wgdir}/engine/JspFactory/positiveGetPageContext.html" ignoreWhitespace="true" label="testing PageContext features with no compile time errors"/>
</validate>
</request>
<request path="/jsp-tests/jsp/engine/JspFactory/positiveReleasePageContext.jsp" label="Create a pageContext object and using the method releasePageContext with the pageContext created , specified in the Java Server Pages Specification v1.2, Sec 8.1.4">
<validate>
<goldenFile fileName="${wgdir}/engine/JspFactory/positiveReleasePageContext.html" ignoreWhitespace="true" label="testing for null in PageContext features"/>
</validate>
</request>
<request path="/jsp-tests/jsp/engine/HttpJspPage/positiveJSPInitJSP.jsp" label="Override the jspInit in the jsp itself and test how getServletConfig method works, specified in the Java Server Pages Specification v1.2, Sec 8.1.1">
<validate>
<goldenFile fileName="${wgdir}/engine/HttpJspPage/positiveJSPInitJSP.html" ignoreWhitespace="true" label="testing HttpJspPage jspInit() features "/>
</validate>
</request>
<request path="/jsp-tests/jsp/engine/HttpJspPage/positiveJSPInitExtends.jsp" label="Use extends directive to make the defined java class as the super class. now we check the result of getServletConfig, specified in the Java Server Pages Specification v1.2, Sec 8.1.1">
<validate>
<goldenFile fileName="${wgdir}/engine/HttpJspPage/positiveJSPInitExtends.html" ignoreWhitespace="true" label="testing HttpJspPage jspService() features "/>
</validate>
</request>
<request path="/jsp-tests/jsp/engine/PageContext/positiveForward.jsp" label="Test the forward() method from a PageContext object, specified in the Java Server Pages Specification v1.2, Sec 8.1.1">
<validate>
<goldenFile fileName="${wgdir}/engine/PageContext/positiveForward.html" ignoreWhitespace="true" label="testing PageContext forward() features "/>
</validate>
</request>
<request path="/jsp-tests/jsp/engine/PageContext/positiveGetAttributeAvbl.jsp" label="Test the getAttribute() from a PageContext object, specified in the Java Server Pages Specification v1.2, Sec 8.1.1">
<validate>
<goldenFile fileName="${wgdir}/engine/PageContext/positiveGetAttributeAvbl.html" ignoreWhitespace="true" label="testing PageContext getAttribute() features "/>
</validate>
</request>
<request path="/jsp-tests/jsp/engine/PageContext/positiveGetAttributeNotAvbl.jsp" label="Test the getAttribute() of a non-existant PageContext object, specified in the Java Server Pages Specification v1.2, Sec 8.1.1">
<validate>
<goldenFile fileName="${wgdir}/engine/PageContext/positiveGetAttributeNotAvbl.html" ignoreWhitespace="true" label="testing PageContext getAttribute() features "/>
</validate>
</request>
<request path="/jsp-tests/jsp/engine/PageContext/positiveGetAttributeNamesInScope.jsp" label="Test for the getAttributeNamesInScope method in a scriptlet., specified in the Java Server Pages Specification v1.2, Sec 8.1.1">
<validate>
<goldenFile fileName="${wgdir}/engine/PageContext/positiveGetAttributeNamesInScope.html" ignoreWhitespace="true" label="testing PageContext getAttributeNamesInScope() features "/>
</validate>
</request>
<request path="/jsp-tests/jsp/engine/PageContext/positiveGetAttributeScope.jsp" label="Test for the getAttributeScope method in a scriptlet., specified in the Java Server Pages Specification v1.2, Sec 8.1.1">
<validate>
<goldenFile fileName="${wgdir}/engine/PageContext/positiveGetAttributeScope.html" ignoreWhitespace="true" label="testing PageContext getAttributeScope() features "/>
</validate>
</request>
<request path="/jsp-tests/jsp/engine/PageContext/checkGetSession.jsp" label="Test for the checkGetSession method in a scriptlet., specified in the Java Server Pages Specification v1.2, Sec 8.1.1">
<validate>
<goldenFile fileName="${wgdir}/engine/PageContext/checkGetSession.html" ignoreWhitespace="true" label="testing PageContext checkGetSession() features "/>
</validate>
</request>
<request path="/jsp-tests/jsp/engine/PageContext/checkGetResponse.jsp" label="Test for the checkGetResponse method in a scriptlet., specified in the Java Server Pages Specification v1.2, Sec 8.1.1">
<validate>
<goldenFile fileName="${wgdir}/engine/PageContext/checkGetResponse.html" ignoreWhitespace="true" label="testing PageContext checkGetResponse() features "/>
</validate>
</request>
<request path="/jsp-tests/jsp/engine/PageContext/checkGetRequest.jsp" label="Test for the checkGetRequest method in a scriptlet., specified in the Java Server Pages Specification v1.2, Sec 8.1.1">
<validate>
<goldenFile fileName="${wgdir}/engine/PageContext/checkGetRequest.html" ignoreWhitespace="true" label="testing PageContext checkGetRequest() features "/>
</validate>
</request>
<request path="/jsp-tests/jsp/engine/PageContext/checkGetServletContext.jsp" label="Test for the checkGetServletContext method in a scriptlet., specified in the Java Server Pages Specification v1.2, Sec 8.1.1">
<validate>
<goldenFile fileName="${wgdir}/engine/PageContext/checkGetServletContext.html" ignoreWhitespace="true" label="testing PageContext checkGetServletContext() features "/>
</validate>
</request>
<request path="/jsp-tests/jsp/engine/PageContext/checkGetServletConfig.jsp" label="Test for the checkGetServletConfig method in a scriptlet., specified in the Java Server Pages Specification v1.2, Sec 8.1.1">
<validate>
<goldenFile fileName="${wgdir}/engine/PageContext/checkGetServletConfig.html" ignoreWhitespace="true" label="testing PageContext checkGetServletConfig() features "/>
</validate>
</request>
<request path="/jsp-tests/jsp/engine/PageContext/checkGetOut.jsp" label="Test for the checkGetOut method in a scriptlet., specified in the Java Server Pages Specification v1.2, Sec 8.1.1">
<validate>
<goldenFile fileName="${wgdir}/engine/PageContext/checkGetOut.html" ignoreWhitespace="true" label="testing PageContext checkGetOut() features "/>
</validate>
</request>
<request path="/jsp-tests/jsp/engine/PageContext/positiveInclude.jsp" label="Test for the positiveInclude method in a scriptlet., specified in the Java Server Pages Specification v1.2, Sec 8.1.1">
<validate>
<goldenFile fileName="${wgdir}/engine/PageContext/positiveInclude.html" ignoreWhitespace="true" label="testing PageContext positiveInclude() features "/>
</validate>
</request>
<request path="/jsp-tests/jsp/engine/PageContext/positiveRemoveAttribute.jsp" label="Test for the positiveRemoveAttribute method in a scriptlet., specified in the Java Server Pages Specification v1.2, Sec 8.1.1">
<validate>
<goldenFile fileName="${wgdir}/engine/PageContext/positiveRemoveAttribute.html" ignoreWhitespace="true" label="testing PageContext positiveRemoveAttribute() features "/>
</validate>
</request>
<request path="/jsp-tests/jsp/engine/PageContext/positiveSetAttribute.jsp" label="Test for the positiveSetAttribute method in a scriptlet., specified in the Java Server Pages Specification v1.2, Sec 8.1.1">
<validate>
<goldenFile fileName="${wgdir}/engine/PageContext/positiveSetAttribute.html" ignoreWhitespace="true" label="testing PageContext positiveSetAttribute() features "/>
</validate>
</request>
<request path="/jsp-tests/jsp/engine/PageContext/positiveSetAttributeInScope.jsp" label="Test for the positiveSetAttributeInScope method in a scriptlet., specified in the Java Server Pages Specification v1.2, Sec 8.1.1">
<validate>
<goldenFile fileName="${wgdir}/engine/PageContext/positiveSetAttributeInScope.html" ignoreWhitespace="true" label="testing PageContext positiveSetAttributeInScope() features "/>
</validate>
</request>
<request path="/jsp-tests/jsp/engine/PageContext/positivePopBody.jsp" label="Test for popBody() which returns the previous JspWriter 'out' saved by the matching pushBody() and updates the value of the 'out' attribute in the page scope attribute namespace of the PageConxtext, specified in the Java Server Pages Specification v1.2, Sec 8.1.1">
<validate>
<goldenFile fileName="${wgdir}/engine/PageContext/positivePopBody.html" ignoreWhitespace="true" label="testing PageContext positivePopBody() features "/>
</validate>
</request>
<request path="/jsp-tests/jsp/engine/PageContext/positivePushBody.jsp" label="Test for pushBody() which returns the new BodyJspWriter object and updates the value of the 'out' attribute in the page scope attribute namespace of the PageConxtext, specified in the Java Server Pages Specification v1.2, Sec 8.1.1">
<validate>
<goldenFile fileName="${wgdir}/engine/PageContext/positivePushBody.html" ignoreWhitespace="true" label="testing PageContext positivePushBody() features "/>
</validate>
</request>
<request path="/jsp-tests/jsp/engine/JspWriter/write/positiveWriteCharArray1.jsp" label=" Test for JspWriter write(char c[]) method, specified in the Java Server Pages Specification v1.2, Sec 8.1.2">
<validate>
<goldenFile fileName="${wgdir}/engine/JspWriter/write/positiveWriteCharArray1.html" ignoreWhitespace="true" label="testing JspWriter write(char c[]) features "/>
</validate>
</request>
<request path="/jsp-tests/jsp/engine/JspWriter/write/positiveWriteCharArray2.jsp" label="Test for JspWriter write(char[] c,int off,int len) method, specified in the Java Server Pages Specification v1.2, Sec 8.1.2">
<validate>
<goldenFile fileName="${wgdir}/engine/JspWriter/write/positiveWriteCharArray2.html" ignoreWhitespace="true" label="testing JspWriter write(char[] c,int off,int len) features "/>
</validate>
</request>
<request path="/jsp-tests/jsp/engine/JspWriter/write/positiveWriteInt.jsp" label="Test for JspWriter write(int i) method, specified in the Java Server Pages Specification v1.2, Sec 8.1.2">
<validate>
<goldenFile fileName="${wgdir}/engine/JspWriter/write/positiveWriteInt.html" ignoreWhitespace="true" label="testing JspWriter write(int i) features "/>
</validate>
</request>
<request path="/jsp-tests/jsp/engine/JspWriter/write/positiveWriteStr.jsp" label="Test for JspWriter write(java.lang.String str) method, specified in the Java Server Pages Specification v1.2, Sec 8.1.2">
<validate>
<goldenFile fileName="${wgdir}/engine/JspWriter/write/positiveWriteStr.html" ignoreWhitespace="true" label="testing JspWriter write(java.lang.String str) features "/>
</validate>
</request>
<request path="/jsp-tests/jsp/engine/JspWriter/write/positiveWriteStrOffset.jsp" label="Test for JspWriter write(java.lang.String str,int off,int len) method, specified in the Java Server Pages Specification v1.2, Sec 8.1.2">
<validate>
<goldenFile fileName="${wgdir}/engine/JspWriter/write/positiveWriteStrOffset.html" ignoreWhitespace="true" label="testing JspWriter write(java.lang.String str,int off,int len) features "/>
</validate>
</request>
<request path="/jsp-tests/jsp/engine/JspWriter/write/positiveWriteIntExt.jsp" label="Another test for JspWriter write(int i) method, specified in the Java Server Pages Specification v1.2, Sec 8.1.2">
<validate>
<goldenFile fileName="${wgdir}/engine/JspWriter/write/positiveWriteIntExt.html" ignoreWhitespace="true" label="testing JspWriter write(int i) features "/>
</validate>
</request>
<request path="/jsp-tests/jsp/engine/JspWriter/write/positiveWriteIntMaxValue.jsp" label="Another test for JspWriter write(int i) method with max value of the integer, specified in the Java Server Pages Specification v1.2, Sec 8.1.2">
<validate>
<goldenFile fileName="${wgdir}/engine/JspWriter/write/positiveWriteIntMaxValue.html" ignoreWhitespace="true" label="testing JspWriter write(int i) with max value of the integer "/>
</validate>
</request>
<request path="/jsp-tests/jsp/engine/JspWriter/write/positiveWriteIntLowBit.jsp" label="Another test for JspWriter write(int i) method where the upper two bytes are non-zero and lower two bytes constitute a valid ASCII character, specified in the Java Server Pages Specification v1.2, Sec 8.1.2">
<validate>
<goldenFile fileName="${wgdir}/engine/JspWriter/write/positiveWriteIntLowBit.html" ignoreWhitespace="true" label="testing JspWriter write(int i) where the upper two bytes are non-zero and lower two bytes constitute a valid ASCII character"/>
</validate>
</request>
<request path="/jsp-tests/jsp/engine/JspWriter/print/positivePrintBoolean.jsp" label="Test for print(boolean b) method, specified in the Java Server Pages Specification v1.2, Sec 8.1.2">
<validate>
<goldenFile fileName="${wgdir}/engine/JspWriter/print/positivePrintBoolean.html" ignoreWhitespace="true" label="testing JspWriter print(boolean b) features"/>
</validate>
</request>
<request path="/jsp-tests/jsp/engine/JspWriter/print/positivePrintChar.jsp" label="Test for print(char c) method, specified in the Java Server Pages Specification v1.2, Sec 8.1.2">
<validate>
<goldenFile fileName="${wgdir}/engine/JspWriter/print/positivePrintChar.html" ignoreWhitespace="true" label="testing JspWriter print(char c) features"/>
</validate>
</request>
<request path="/jsp-tests/jsp/engine/JspWriter/print/positivePrintCharArray.jsp" label="Test for print(char[] c) method, specified in the Java Server Pages Specification v1.2, Sec 8.1.2">
<validate>
<goldenFile fileName="${wgdir}/engine/JspWriter/print/positivePrintCharArray.html" ignoreWhitespace="true" label="testing JspWriter print(char[] c) features"/>
</validate>
</request>
<request path="/jsp-tests/jsp/engine/JspWriter/print/positivePrintDouble.jsp" label="Test for print(double d) method, specified in the Java Server Pages Specification v1.2, Sec 8.1.2">
<validate>
<goldenFile fileName="${wgdir}/engine/JspWriter/print/positivePrintDouble.html" ignoreWhitespace="true" label="testing JspWriter print(double d) features"/>
</validate>
</request>
<request path="/jsp-tests/jsp/engine/JspWriter/print/positivePrintFloat.jsp" label="Test for print(float f) method, specified in the Java Server Pages Specification v1.2, Sec 8.1.2">
<validate>
<goldenFile fileName="${wgdir}/engine/JspWriter/print/positivePrintFloat.html" ignoreWhitespace="true" label="testing JspWriter print(float f) features"/>
</validate>
</request>
<request path="/jsp-tests/jsp/engine/JspWriter/print/positivePrintInt.jsp" label="Test for print(Int i) method, specified in the Java Server Pages Specification v1.2, Sec 8.1.2">
<validate>
<goldenFile fileName="${wgdir}/engine/JspWriter/print/positivePrintInt.html" ignoreWhitespace="true" label="testing JspWriter print(Int i) features"/>
</validate>
</request>
<request path="/jsp-tests/jsp/engine/JspWriter/print/positivePrintLong.jsp" label="Test for print(long l) method, specified in the Java Server Pages Specification v1.2, Sec 8.1.2">
<validate>
<goldenFile fileName="${wgdir}/engine/JspWriter/print/positivePrintLong.html" ignoreWhitespace="true" label="testing JspWriter print(long l) features"/>
</validate>
</request>
<request path="/jsp-tests/jsp/engine/JspWriter/print/positivePrintObj.jsp" label="Test for print(java.lang.Object obj) method, specified in the Java Server Pages Specification v1.2, Sec 8.1.2">
<validate>
<goldenFile fileName="${wgdir}/engine/JspWriter/print/positivePrintObj.html" ignoreWhitespace="true" label="testing JspWriter print(java.lang.Object obj) features"/>
</validate>
</request>
<request path="/jsp-tests/jsp/engine/JspWriter/print/positivePrintStr.jsp" label="Test for print(java.lang.String str) method, specified in the Java Server Pages Specification v1.2, Sec 8.1.2">
<validate>
<goldenFile fileName="${wgdir}/engine/JspWriter/print/positivePrintStr.html" ignoreWhitespace="true" label="testing JspWriter print(java.lang.String str) features"/>
</validate>
</request>
<request path="/jsp-tests/jsp/engine/JspWriter/print/positivePrintln.jsp" label="Test for println method, specified in the Java Server Pages Specification v1.2, Sec 8.1.2">
<validate>
<goldenFile fileName="${wgdir}/engine/JspWriter/print/positivePrintln.html" ignoreWhitespace="true" label="testing JspWriter println features"/>
</validate>
</request>
<request path="/jsp-tests/jsp/engine/JspWriter/print/positivePrintlnBoolean.jsp" label="Test for println(boolean b) method, specified in the Java Server Pages Specification v1.2, Sec 8.1.2">
<validate>
<goldenFile fileName="${wgdir}/engine/JspWriter/print/positivePrintlnBoolean.html" ignoreWhitespace="true" label="testing JspWriter println(boolean b) features"/>
</validate>
</request>
<request path="/jsp-tests/jsp/engine/JspWriter/print/positivePrintlnChar.jsp" label="Test for println(char c) method, specified in the Java Server Pages Specification v1.2, Sec 8.1.2">
<validate>
<goldenFile fileName="${wgdir}/engine/JspWriter/print/positivePrintlnChar.html" ignoreWhitespace="true" label="testing JspWriter println(char c) features"/>
</validate>
</request>
<request path="/jsp-tests/jsp/engine/JspWriter/print/positivePrintlnCharArray.jsp" label="Test for println(char c[]) method, specified in the Java Server Pages Specification v1.2, Sec 8.1.2">
<validate>
<goldenFile fileName="${wgdir}/engine/JspWriter/print/positivePrintlnCharArray.html" ignoreWhitespace="true" label="testing JspWriter println(char c[]) features"/>
</validate>
</request>
<request path="/jsp-tests/jsp/engine/JspWriter/print/positivePrintlnDouble.jsp" label="Test for println(double d) method, specified in the Java Server Pages Specification v1.2, Sec 8.1.2">
<validate>
<goldenFile fileName="${wgdir}/engine/JspWriter/print/positivePrintlnDouble.html" ignoreWhitespace="true" label="testing JspWriter println(double d) features"/>
</validate>
</request>
<request path="/jsp-tests/jsp/engine/JspWriter/print/positivePrintlnFloat.jsp" label="Test for println(float f) method, specified in the Java Server Pages Specification v1.2, Sec 8.1.2">
<validate>
<goldenFile fileName="${wgdir}/engine/JspWriter/print/positivePrintlnFloat.html" ignoreWhitespace="true" label="testing JspWriter println(float f) features"/>
</validate>
</request>
<request path="/jsp-tests/jsp/engine/JspWriter/print/positivePrintlnInt.jsp" label="Test for println(int i) method, specified in the Java Server Pages Specification v1.2, Sec 8.1.2">
<validate>
<goldenFile fileName="${wgdir}/engine/JspWriter/print/positivePrintlnInt.html" ignoreWhitespace="true" label="testing JspWriter println(int i) features"/>
</validate>
</request>
<request path="/jsp-tests/jsp/engine/JspWriter/print/positivePrintlnLong.jsp" label="Test for println(long l) method, specified in the Java Server Pages Specification v1.2, Sec 8.1.2">
<validate>
<goldenFile fileName="${wgdir}/engine/JspWriter/print/positivePrintlnLong.html" ignoreWhitespace="true" label="testing JspWriter println(long l) features"/>
</validate>
</request>
<request path="/jsp-tests/jsp/engine/JspWriter/print/positivePrintlnObj.jsp" label="Test for println(java.lang.Object obj) method, specified in the Java Server Pages Specification v1.2, Sec 8.1.2">
<validate>
<goldenFile fileName="${wgdir}/engine/JspWriter/print/positivePrintlnObj.html" ignoreWhitespace="true" label="testing JspWriter println(java.lang.Object obj) features"/>
</validate>
</request>
<request path="/jsp-tests/jsp/engine/JspWriter/print/positivePrintlnStr.jsp" label="Test for println(java.lang.String str) method, specified in the Java Server Pages Specification v1.2, Sec 8.1.2">
<validate>
<goldenFile fileName="${wgdir}/engine/JspWriter/print/positivePrintlnStr.html" ignoreWhitespace="true" label="testing JspWriter println(java.lang.String str) features"/>
</validate>
</request>
<request path="/jsp-tests/jsp/engine/JspWriter/print/positivePrintDoubleMaxBound.jsp" label="Test for printing max boundary value for double, specified in the Java Server Pages Specification v1.2, Sec 8.1.2">
<validate>
<goldenFile fileName="${wgdir}/engine/JspWriter/print/positivePrintDoubleMaxBound.html" ignoreWhitespace="true" label="testing JspWriter printing of max boundary value for double"/>
</validate>
</request>
<request path="/jsp-tests/jsp/engine/JspWriter/print/positivePrintDoubleMinBound.jsp" label="Test for printing min boundary value for double, specified in the Java Server Pages Specification v1.2, Sec 8.1.2">
<validate>
<goldenFile fileName="${wgdir}/engine/JspWriter/print/positivePrintDoubleMinBound.html" ignoreWhitespace="true" label="testing JspWriter printing of min boundary value for double"/>
</validate>
</request>
<request path="/jsp-tests/jsp/engine/JspWriter/print/positivePrintFloatMaxBound.jsp" label="Test for printing max boundary value for float, specified in the Java Server Pages Specification v1.2, Sec 8.1.2">
<validate>
<goldenFile fileName="${wgdir}/engine/JspWriter/print/positivePrintFloatMaxBound.html" ignoreWhitespace="true" label="testing JspWriter printing of max boundary value for float"/>
</validate>
</request>
<request path="/jsp-tests/jsp/engine/JspWriter/print/positivePrintFloatMinBound.jsp" label="Test for printing min boundary value for float, specified in the Java Server Pages Specification v1.2, Sec 8.1.2">
<validate>
<goldenFile fileName="${wgdir}/engine/JspWriter/print/positivePrintFloatMinBound.html" ignoreWhitespace="true" label="testing JspWriter printing of min boundary value for float"/>
</validate>
</request>
<request path="/jsp-tests/jsp/engine/JspWriter/print/positivePrintIntMaxBound.jsp" label="Test for printing max boundary value for int, specified in the Java Server Pages Specification v1.2, Sec 8.1.2">
<validate>
<goldenFile fileName="${wgdir}/engine/JspWriter/print/positivePrintIntMaxBound.html" ignoreWhitespace="true" label="testing JspWriter printing of max boundary value for int"/>
</validate>
</request>
<request path="/jsp-tests/jsp/engine/JspWriter/print/positivePrintIntMinBound.jsp" label="Test for printing min boundary value for int, specified in the Java Server Pages Specification v1.2, Sec 8.1.2">
<validate>
<goldenFile fileName="${wgdir}/engine/JspWriter/print/positivePrintIntMinBound.html" ignoreWhitespace="true" label="testing JspWriter printing of min boundary value for int"/>
</validate>
</request>
<request path="/jsp-tests/jsp/engine/JspWriter/print/positivePrintLongMaxBound.jsp" label="Test for printing max boundary value for long, specified in the Java Server Pages Specification v1.2, Sec 8.1.2">
<validate>
<goldenFile fileName="${wgdir}/engine/JspWriter/print/positivePrintLongMaxBound.html" ignoreWhitespace="true" label="testing JspWriter printing of max boundary value for long"/>
</validate>
</request>
<request path="/jsp-tests/jsp/engine/JspWriter/print/positivePrintLongMinBound.jsp" label="Test for printing min boundary value for long, specified in the Java Server Pages Specification v1.2, Sec 8.1.2">
<validate>
<goldenFile fileName="${wgdir}/engine/JspWriter/print/positivePrintLongMinBound.html" ignoreWhitespace="true" label="testing JspWriter printing of min boundary value for long"/>
</validate>
</request>
<request path="/jsp-tests/jsp/engine/JspWriter/misc/positiveClear.jsp" label="Test for clear() method, specified in the Java Server Pages Specification v1.2, Sec 8.1.2">
<validate>
<goldenFile fileName="${wgdir}/engine/JspWriter/misc/positiveClear.html" ignoreWhitespace="true" label="testing JspWriter clear() features"/>
</validate>
</request>
<request path="/jsp-tests/jsp/engine/JspWriter/misc/positiveFlush.jsp" label="Test for flush() method, specified in the Java Server Pages Specification v1.2, Sec 8.1.2">
<validate>
<goldenFile fileName="${wgdir}/engine/JspWriter/misc/positiveFlush.html" ignoreWhitespace="true" label="testing JspWriter flush() features"/>
</validate>
</request>
<request path="/jsp-tests/jsp/engine/JspWriter/misc/positiveGetBufferSize.jsp" label="Test buffer size with buffer directive using the getBufferSize() method, specified in the Java Server Pages Specification v1.2, Sec 8.1.2">
<validate>
<goldenFile fileName="${wgdir}/engine/JspWriter/misc/positiveGetBufferSize.html" ignoreWhitespace="true" label="testing JspWriter getBufferSize() features"/>
</validate>
</request>
<request path="/jsp-tests/jsp/engine/JspWriter/misc/positiveGetBufferSizeUnBuffered.jsp" label="Test buffer size to 'none' with buffer directive using the getBufferSize() method, specified in the Java Server Pages Specification v1.2, Sec 8.1.2">
<validate>
<goldenFile fileName="${wgdir}/engine/JspWriter/misc/positiveGetBufferSizeUnBuffered.html" ignoreWhitespace="true" label="testing JspWriter getBufferSize() features"/>
</validate>
</request>
<request path="/jsp-tests/jsp/engine/JspWriter/misc/positiveGetRemaining.jsp" label="Test buffer size with buffer directive using the getRemaining() method, specified in the Java Server Pages Specification v1.2, Sec 8.1.2">
<validate>
<goldenFile fileName="${wgdir}/engine/JspWriter/misc/positiveGetRemaining.html" ignoreWhitespace="true" label="testing JspWriter getRemaining() features"/>
</validate>
</request>
<request path="/jsp-tests/jsp/engine/JspWriter/misc/positiveGetRemainingBufferUnset.jsp" label="Test buffer size set to 'none' with buffer directive using the getRemaining() method, specified in the Java Server Pages Specification v1.2, Sec 8.1.2">
<validate>
<goldenFile fileName="${wgdir}/engine/JspWriter/misc/positiveGetRemainingBufferUnset.html" ignoreWhitespace="true" label="testing JspWriter getRemaining() features"/>
</validate>
</request>
<request path="/jsp-tests/jsp/engine/JspWriter/misc/positiveIsAutoFlush.jsp" label="Test the isAutoFlush() method when autoflush directive is set to 'true', specified in the Java Server Pages Specification v1.2, Sec 8.1.2">
<validate>
<goldenFile fileName="${wgdir}/engine/JspWriter/misc/positiveIsAutoFlush.html" ignoreWhitespace="true" label="testing JspWriter isAutoFlush() features"/>
</validate>
</request>
<request path="/jsp-tests/jsp/core_syntax/directives/page/imports/implicitImportLang.jsp" label="Test for implicit import of 'java' by checking for some class in Lang, specified in the Java Server Pages Specification v1.2, Sec 2.11.1.1">
<validate>
<goldenFile fileName="${wgdir}/core_syntax/directives/page/imports/implicitImportLang.html" ignoreWhitespace="true" label="testing page directive implicit import of 'java' as the scripting language "/>
</validate>
</request>
<request path="/jsp-tests/jsp/core_syntax/directives/page/imports/implicitImportJsp.jsp" label="Test for implicit import of 'java' by checking for some class in Lang, specified in the Java Server Pages Specification v1.2, Sec 2.11.1.1">
<validate>
<goldenFile fileName="${wgdir}/core_syntax/directives/page/imports/implicitImportJsp.html" ignoreWhitespace="true" label="testing page directive implicit import of 'java' as the scripting language "/>
</validate>
</request>
<request path="/jsp-tests/jsp/core_syntax/directives/page/imports/implicitImportServlet.jsp" label="Test for implicit import of 'javax.servlet' by checking for servlet class, specified in the Java Server Pages Specification v1.2, Sec 2.11.1.1">
<validate>
<goldenFile fileName="${wgdir}/core_syntax/directives/page/imports/implicitImportServlet.html" ignoreWhitespace="true" label="testing page directive implicit import of servlet package "/>
</validate>
</request>
<request path="/jsp-tests/jsp/core_syntax/directives/page/imports/implicitImportHttp.jsp" label="Test for implicit import of 'javax.servlet' by checking for servlet class, specified in the Java Server Pages Specification v1.2, Sec 2.11.1.1">
<validate>
<goldenFile fileName="${wgdir}/core_syntax/directives/page/imports/implicitImportHttp.html" ignoreWhitespace="true" label="testing page directive implicit import of servlet package "/>
</validate>
</request>
<!-- ###commented ..has to be debugged
<request path="/jsp-tests/jsp/core_syntax/directives/taglib/positiveTagLib.jsp" label="Test for the taglib directive with a valid uri, specified in the Java Server Pages Specification v1.2, Sec 2.11.2">
<validate>
<goldenFile fileName="${wgdir}/core_syntax/directives/taglib/positiveTagLib.html" ignoreWhitespace="true" label="testing taglib directive with a valid uri"/>
</validate>
</request>
-->
<request path="/jsp-tests/jsp/tagext/TagSupport/positiveGetValues.jsp" label="Test for getValues() method which returns an enumeration and print the contents, specified in the Java Server Pages Specification v1.2, Sec 6.4.3">
<validate>
<goldenFile fileName="${wgdir}/tagext/TagSupport/positiveGetValues.html" ignoreWhitespace="true" label="testing TagSupport getValues() method "/>
</validate>
</request>
<request path="/jsp-tests/jsp/tagext/TagSupport/default_return_values.jsp " label="Tests if the default values are returned from the methods of TagSupport class">
<validate>
<goldenFile fileName="${wgdir}/tagext/TagSupport/default_return_values.html" ignoreWhitespace="true" label="testing TagSupport default return values by calling supe.FunctionName"/>
</validate>
</request>
<request path="/jsp-tests/jsp/tagext/TagSupport/positiveDoEndTag.jsp
" label="Tests that doEndTag metjod is called when the end of the tag is found">
<validate>
<goldenFile fileName="${wgdir}/tagext/TagSupport/positiveDoEndTag.html" ignoreWhitespace="true" label="testing TagSupport doEndTag method "/>
</validate>
</request>
<request path="/jsp-tests/jsp/tagext/TagSupport/positiveSetGetId.jsp" label="Test for setId and getId methods of TagSupport">
<validate>
<goldenFile fileName="${wgdir}/tagext/TagSupport/positiveSetGetId.html" ignoreWhitespace="true" label="testing TagSupport getId and setId in the same test"/>
</validate>
</request>
<request path="/jsp-tests/jsp/tagext/TagSupport/positivefindAncestorWithClass.jsp" label="Test for Nested classes. Tests the findAncestorWithClass method for TagSupport">
<validate>
<goldenFile fileName="${wgdir}/tagext/TagSupport/positivefindAncestorWithClass.html" ignoreWhitespace="true" label="Testing TagSupport.findAncestorWithClass method"/>
</validate>
</request>
<request path="/jsp-tests/jsp/tagext/misc/persistentValues.jsp" label="Tests if the attribute values are retaines when tags are nested inside a tag">
<validate>
<goldenFile fileName="${wgdir}/tagext/misc/persistentValues.html" ignoreWhitespace="true" label="testing persistence of tag attributes"/>
</validate>
</request>
<request path="/jsp-tests/jsp/tagext/misc/request_time_attributes.jsp" label="Tests the order of evaluation of the expressions if attribute values are runtime expressions">
<validate>
<goldenFile fileName="${wgdir}/tagext/misc/request_time_attributes.html" ignoreWhitespace="true" label="testing associativity of expression evaluation"/>
</validate>
</request>
<request path="/jsp-tests/jsp/tagext/TagSupport/positiveGetValue.jsp" label="Test for getValue() method, specified in the Java Server Pages Specification v1.2, Sec 6.4.3">
<validate>
<goldenFile fileName="${wgdir}/tagext/TagSupport/positiveGetValue.html" ignoreWhitespace="true" label="testing TagSupport getValue() method "/>
</validate>
</request>
<request path="/jsp-tests/jsp/tagext/TagSupport/positiveRemoveValue.jsp" label="Test for removeValue() method, specified in the Java Server Pages Specification v1.2, Sec 6.4.3">
<validate>
<goldenFile fileName="${wgdir}/tagext/TagSupport/positiveRemoveValue.html" ignoreWhitespace="true" label="testing TagSupport removeValue() method "/>
</validate>
</request>
<request path="/jsp-tests/jsp/tagext/TagSupport/positiveSetValue.jsp" label="Test for setValue() method, specified in the Java Server Pages Specification v1.2, Sec 6.4.3">
<validate>
<goldenFile fileName="${wgdir}/tagext/TagSupport/positiveSetValue.html" ignoreWhitespace="true" label="testing TagSupport setValue() method "/>
</validate>
</request>
<request path="/jsp-tests/jsp/tagext/TagSupport/positiveGetParent.jsp" label="Test for getParent() method which returns the parent class name, specified in the Java Server Pages Specification v1.2, Sec 6.4.3">
<validate>
<goldenFile fileName="${wgdir}/tagext/TagSupport/positiveGetParent.html" ignoreWhitespace="true" label="testing TagSupport getParent() method "/>
</validate>
</request>
<request path="/jsp-tests/jsp/tagext/TagSupport/positiveDoStartTag.jsp" label="Test for checking if doStartTag() is called correctly, specified in the Java Server Pages Specification v1.2, Sec 6.4.3">
<validate>
<goldenFile fileName="${wgdir}/tagext/TagSupport/positiveDoStartTag.html" ignoreWhitespace="true" label="testing TagSupport doStartTag() method "/>
</validate>
</request>
<request path="/jsp-tests/jsp/tagext/TagSupport/positiveSetPageContext.jsp" label="Test if setPageContext() can be used to set the page context.Using this page context obj set an attribute which is passed to the jsp page, specified in the Java Server Pages Specification v1.2, Sec 6.4.3">
<validate>
<goldenFile fileName="${wgdir}/tagext/TagSupport/positiveSetPageContext.html" ignoreWhitespace="true" label="testing TagSupport setPageContext() method "/>
</validate>
</request>
<request path="/jsp-tests/jsp/tagext/TagSupport/positiveDoAfterBody.jsp" label="testing TagSupport DoAfterBody method">
<validate>
<goldenFile fileName="${wgdir}/tagext/TagSupport/positiveDoAfterBody.html" ignoreWhitespace="true" label="Test the DoAfterBody method of the TagSupport class. Create a Tag handler that outputs a message a given number of times from the DoAFterBody"/>
</validate>
</request>
<request path="/jsp-tests/jsp/tagext/BodyContent/positiveGetEnclosingWriter.jsp" label="Test for getParent() method which returns the parent class name, specified in the Java Server Pages Specification v1.2, Sec 6.4.3">
<validate>
<goldenFile fileName="${wgdir}/tagext/BodyContent/positiveGetEnclosingWriter.html" ignoreWhitespace="true" label="testing BodyContent getParent() method "/>
</validate>
</request>
<request path="/jsp-tests/jsp/tagext/BodyContent/positiveGetReader.jsp" label="Test getReader() method using the BodyContent object, specified in the Java Server Pages Specification v1.2, Sec 6.4.5">
<validate>
<goldenFile fileName="${wgdir}/tagext/BodyContent/positiveGetReader.html" ignoreWhitespace="true" label="testing BodyContent getReader() method"/>
</validate>
</request>
<request path="/jsp-tests/jsp/tagext/BodyContent/positiveGetString.jsp" label="Test getString() method using the BodyContent object, specified in the Java Server Pages Specification v1.2, Sec 6.4.5">
<validate>
<goldenFile fileName="${wgdir}/tagext/BodyContent/positiveGetString.html" ignoreWhitespace="true" label="testing BodyContent getString() method"/>
</validate>
</request>
<!-- ##commented...has to be debugged
<request path="/jsp-tests/jsp/tagext/BodyTagSupport/positiveDoInitBody.jsp" label="Test doInitBody() method, specified in the Java Server Pages Specification v1.2, Sec 6.4.6">
<validate>
<goldenFile fileName="${wgdir}/tagext/BodyTagSupport/positiveDoInitBody.html" ignoreWhitespace="true" label="testing BodyTagSupport doInitBody() method"/>
</validate>
</request>
<request path="/jsp-tests/jsp/tagext/BodyTagSupport/positiveDoAfterBody.jsp" label="Test doAfterBody() method, specified in the Java Server Pages Specification v1.2, Sec 6.4.6">
<validate>
<goldenFile fileName="${wgdir}/tagext/BodyTagSupport/positiveDoAfterBody.html" ignoreWhitespace="true" label="testing BodyTagSupport doAfterBody() method"/>
</validate>
</request>
<request path="/jsp-tests/jsp/tagext/BodyTagSupport/positiveDoEndTag.jsp" label="Test doEndTag() method, specified in the Java Server Pages Specification v1.2, Sec 6.4.6">
<validate>
<goldenFile fileName="${wgdir}/tagext/BodyTagSupport/positiveDoEndTag.html" ignoreWhitespace="true" label="testing BodyTagSupport doEndTag() method"/>
</validate>
</request>
<request path="/jsp-tests/jsp/tagext/BodyTagSupport/positiveRelease.jsp" label="Test release() method, specified in the Java Server Pages Specification v1.2, Sec 6.4.6">
<validate>
<goldenFile fileName="${wgdir}/tagext/BodyTagSupport/positiveRelease.html" ignoreWhitespace="true" label="testing BodyTagSupport release() method"/>
</validate>
</request>
##Commented till here -->
<request path="/jsp-tests/jsp/tagext/TagData/positiveTagGetAttribute.jsp" label="Test a TagData object by passing a hashtable and printing the contents of the hashtable using the getAttribute() method of TagData., specified in the Java Server Pages Specification v1.2, Sec 6.4.1">
<validate>
<goldenFile fileName="${wgdir}/tagext/TagData/positiveTagGetAttribute.html" ignoreWhitespace="true" label="testing TagData release() method"/>
</validate>
</request>
<request path="/jsp-tests/jsp/tagext/TagData/positiveTagSetAttribute.jsp" label="Test a TagData object by passing a hashtable created using setAttribute() method of the TagData and print the contents of the hashtable, specified in the Java Server Pages Specification v1.2, Sec 6.4.1">
<validate>
<goldenFile fileName="${wgdir}/tagext/TagData/positiveTagSetAttribute.html" ignoreWhitespace="true" label="testing TagData setAttribute() method"/>
</validate>
</request>
<request path="/jsp-tests/jsp/tagext/TagData/positiveTagGetAttributeString.jsp" label="Test a TagData object by passing a hashtable created using setAttribute() method of the TagData and print the contents of the hashtable using the getAttributeString() method, specified in the Java Server Pages Specification v1.2, Sec 6.4.1">
<validate>
<goldenFile fileName="${wgdir}/tagext/TagData/positiveTagGetAttributeString.html" ignoreWhitespace="true" label="testing TagData getAttributeString() method"/>
</validate>
</request>
<!-- ##Commented ....has to be debugged
<request path="/jsp-tests/jsp/tagext/VariableInfo/positiveGetVarName.jsp" label="Test the getVarName() method by creating a VariableInfo object in the TestTagExtraInfo class., specified in the Java Server Pages Specification v1.2, Sec 6.5.1">
<validate>
<goldenFile fileName="${wgdir}/tagext/VariableInfo/positiveGetVarName.html" ignoreWhitespace="true" label="testing VariableInfo getVarName() method"/>
</validate>
</request>
<request path="/jsp-tests/jsp/tagext/VariableInfo/positiveGetScope.jsp" label="Test the getScope() method by creating a VariableInfo object in the TestTagExtraInfo class., specified in the Java Server Pages Specification v1.2, Sec 6.5.1">
<validate>
<goldenFile fileName="${wgdir}/tagext/VariableInfo/positiveGetScope.html" ignoreWhitespace="true" label="testing VariableInfo getScope() method"/>
</validate>
</request>
<request path="/jsp-tests/jsp/tagext/VariableInfo/positiveGetDeclare.jsp" label="Test the getDeclare() method by creating a VariableInfo object in the TestTagExtraInfo class, specified in the Java Server Pages Specification v1.2, Sec 6.5.1">
<validate>
<goldenFile fileName="${wgdir}/tagext/VariableInfo/positiveGetDeclare.html" ignoreWhitespace="true" label="testing VariableInfo getDeclare() method"/>
</validate>
</request>
<request path="/jsp-tests/jsp/tagext/VariableInfo/positiveGetClassName.jsp" label="Test the getClassName() method by creating a VariableInfo object in the TestTagExtraInfo class, specified in the Java Server Pages Specification v1.2, Sec 6.5.1">
<validate>
<goldenFile fileName="${wgdir}/tagext/VariableInfo/positiveGetClassName.html" ignoreWhitespace="true" label="testing VariableInfo getClassName() method"/>
</validate>
</request>
##commented till here -->
<request path="/jsp-tests/jsp/tagext/LifeCycle/tag_attr_setting_1.jsp" label="Test that attribute setting is as wanted, specified in the Java Server Pages Specification v1.2, Sec 6.4.7">
<validate>
<goldenFile fileName="${wgdir}/tagext/LifeCycle/tag_attr_setting_1.html" ignoreWhitespace="true" label="testing LifeCycle process"/>
</validate>
</request>
<!-- ##Commented ..has to be debugged
<request path="/jsp-tests/jsp/tagext/LifeCycle/tag_attr_setting_2.jsp" label="Test that attribute setting is as wanted and intermix some different tags, specified in the Java Server Pages Specification v1.2, Sec 6.4.7">
<validate>
<goldenFile fileName="${wgdir}/tagext/LifeCycle/tag_attr_setting_2.html" ignoreWhitespace="true" label="testing LifeCycle process"/>
</validate>
</request>
<request path="/jsp-tests/jsp/tagext/LifeCycle/tag_attr_setting_3.jsp" label="Another test for attribute setting intermixed with some different tags, specified in the Java Server Pages Specification v1.2, Sec 6.4.7">
<validate>
<goldenFile fileName="${wgdir}/tagext/LifeCycle/tag_attr_setting_3.html" ignoreWhitespace="true" label="testing LifeCycle process"/>
</validate>
</request>
## Commented till here -->
<request path="/jsp-tests/jsp/tagext/LifeCycle/tag_check_BodyContent_1.jsp" label="Check that BodyContent provides access to the proper information, specified in the Java Server Pages Specification v1.2, Sec 6.4.7">
<validate>
<goldenFile fileName="${wgdir}/tagext/LifeCycle/tag_check_BodyContent_1.html" ignoreWhitespace="true" label="testing LifeCycle process"/>
</validate>
</request>
<request path="/jsp-tests/jsp/tagext/LifeCycle/tag_check_BodyContent_2.jsp" label="Check that BodyContent provides access to the proper information, specified in the Java Server Pages Specification v1.2, Sec 6.4.7">
<validate>
<goldenFile fileName="${wgdir}/tagext/LifeCycle/tag_check_BodyContent_2.html" ignoreWhitespace="true" label="testing LifeCycle process"/>
</validate>
</request>
<request path="/jsp-tests/jsp/tagext/LifeCycle/tag_check_BodyContent_3.jsp" label="Check that BodyContent provides access to the proper information, specified in the Java Server Pages Specification v1.2, Sec 6.4.7">
<validate>
<goldenFile fileName="${wgdir}/tagext/LifeCycle/tag_check_BodyContent_3.html" ignoreWhitespace="true" label="testing LifeCycle process"/>
</validate>
</request>
<request path="/jsp-tests/jsp/tagext/LifeCycle/tag_check_BodyContent_4.jsp" label="Check that BodyContent provides access to the proper information, specified in the Java Server Pages Specification v1.2, Sec 6.4.7">
<validate>
<goldenFile fileName="${wgdir}/tagext/LifeCycle/tag_check_BodyContent_4.html" ignoreWhitespace="true" label="testing LifeCycle process"/>
</validate>
</request>
<request path="/jsp-tests/jsp/tagext/LifeCycle/tag_check_BodyContent_5.jsp" label="Check that BodyContent provides access to the proper information, specified in the Java Server Pages Specification v1.2, Sec 6.4.7">
<validate>
<goldenFile fileName="${wgdir}/tagext/LifeCycle/tag_check_BodyContent_5.html" ignoreWhitespace="true" label="testing LifeCycle process"/>
</validate>
</request>
<request path="/jsp-tests/jsp/tagext/LifeCycle/tag_check_comments_1.jsp" label="Check that comments are processed correctly, specified in the Java Server Pages Specification v1.2, Sec 6.4.7">
<validate>
<goldenFile fileName="${wgdir}/tagext/LifeCycle/tag_check_comments_1.html" ignoreWhitespace="true" label="testing LifeCycle process"/>
</validate>
</request>
<request path="/jsp-tests/jsp/tagext/LifeCycle/tag_check_comments_2.jsp" label="Check that comments are processed correctly, specified in the Java Server Pages Specification v1.2, Sec 6.4.7">
<validate>
<goldenFile fileName="${wgdir}/tagext/LifeCycle/tag_check_comments_2.html" ignoreWhitespace="true" label="testing LifeCycle process"/>
</validate>
</request>
<request path="/jsp-tests/jsp/tagext/LifeCycle/tag_doEndTag_skip_page.jsp" label="Test for doEndTag SKIP_PAGE, specified in the Java Server Pages Specification v1.2, Sec 6.4.7">
<validate>
<goldenFile fileName="${wgdir}/tagext/LifeCycle/tag_doEndTag_skip_page.html" ignoreWhitespace="true" label="testing LifeCycle process"/>
</validate>
</request>
<request path="/jsp-tests/jsp/tagext/LifeCycle/tag_doStart_eval_body_include.jsp" label="Test for doStartTag EVAL_BODY_INCLUDE, specified in the Java Server Pages Specification v1.2, Sec 6.4.7">
<validate>
<goldenFile fileName="${wgdir}/tagext/LifeCycle/tag_doStart_eval_body_include.html" ignoreWhitespace="true" label="testing LifeCycle process"/>
</validate>
</request>
<request path="/jsp-tests/jsp/tagext/LifeCycle/tag_doStart_skip_body.jsp" label="Test for doStartTag SKIP_BODY, specified in the Java Server Pages Specification v1.2, Sec 6.4.7">
<validate>
<goldenFile fileName="${wgdir}/tagext/LifeCycle/tag_doStart_skip_body.html" ignoreWhitespace="true" label="testing LifeCycle process"/>
</validate>
</request>
<!--
<request path="/jsp-tests/jsp/tagext/LifeCycle/tag_doStart_skip_page.jsp" label="Test for doEndTag SKIP_PAGE, specified in the Java Server Pages Specification v1.2, Sec 6.4.7">
<validate>
<goldenFile fileName="${wgdir}/tagext/LifeCycle/tag_doStart_skip_page.html" ignoreWhitespace="true" label="testing LifeCycle process"/>
</validate>
</request>
<request path="/jsp-tests/jsp/tagext/LifeCycle/tag_ignoreBody.jsp" label="Test for translation-time verification. Test that a tag is passed (at translation time) correct TagInfo data. Body will be ignored, specified in the Java Server Pages Specification v1.2, Sec 6.4.7">
<validate>
<goldenFile fileName="${wgdir}/tagext/LifeCycle/tag_ignoreBody.html" ignoreWhitespace="true" label="testing LifeCycle process"/>
</validate>
</request>
-->
<request path="/jsp-tests/jsp/tagext/LifeCycle/tag_int.jsp" label="Test for defining an int variable, specified in the Java Server Pages Specification v1.2, Sec 6.4.7">
<validate>
<goldenFile fileName="${wgdir}/tagext/LifeCycle/tag_int.html" ignoreWhitespace="true" label="testing LifeCycle process"/>
</validate>
</request>
<!--
<request path="/jsp-tests/jsp/tagext/LifeCycle/tag_nonempty_body_1.jsp" label="Test for translation-time verification. Verify that a non-empty body can be passed. The body will be ignored, specified in the Java Server Pages Specification v1.2, Sec 6.4.7">
<validate>
<goldenFile fileName="${wgdir}/tagext/LifeCycle/tag_nonempty_body_1.html" ignoreWhitespace="true" label="testing LifeCycle process"/>
</validate>
</request>
<request path="/jsp-tests/jsp/tagext/LifeCycle/tag_nonempty_body_2.jsp" label="Test for translation-time verification. Verify that single and double quotes can be used. Verify that a non-empty body can be passed The body will be ignored, specified in the Java Server Pages Specification v1.2, Sec 6.4.7">
<validate>
<goldenFile fileName="${wgdir}/tagext/LifeCycle/tag_nonempty_body_2.html" ignoreWhitespace="true" label="testing LifeCycle process"/>
</validate>
</request>
<request path="/jsp-tests/jsp/tagext/LifeCycle/tag_positiveBody.jsp" label="Test for translation-time verification. Test that a tag is passed (at translation time) correct TagInfo data, specified in the Java Server Pages Specification v1.2, Sec 6.4.7">
<validate>
<goldenFile fileName="${wgdir}/tagext/LifeCycle/tag_positiveBody.html" ignoreWhitespace="true" label="testing LifeCycle process"/>
</validate>
</request>
-->
<request path="/jsp-tests/jsp/tagext/LifeCycle/tag_translationtime_verify_1.jsp" label="Test for translation-time verification, specified in the Java Server Pages Specification v1.2, Sec 6.4.7">
<validate>
<goldenFile fileName="${wgdir}/tagext/LifeCycle/tag_translationtime_verify_1.html" ignoreWhitespace="true" label="testing LifeCycle process"/>
</validate>
</request>
<!-- All below JSP negative tests have been commented out till they get fixed
<gtest request="GET /jsp-tests/jsp/core_syntax/beantests/useBean/negativeBody.jsp HTTP/1.0"
returnCode="HTTP/1.0 500" />
<gtest request="GET /jsp-tests/jsp/core_syntax/beantests/useBean/negativeDupID.jsp HTTP/1.0"
returnCode="HTTP/1.0 500" />
<gtest request="GET /jsp-tests/jsp/core_syntax/beantests/useBean/negativeDupIDSession1.jsp HTTP/1.0"
returnCode="HTTP/1.0 500" />
<gtest request="GET /jsp-tests/jsp/core_syntax/beantests/useBean/negativeInvalidClass.jsp HTTP/1.0"
returnCode="HTTP/1.0 500" />
<gtest request="GET /jsp-tests/jsp/core_syntax/beantests/useBean/negativeNoBody.jsp HTTP/1.0"
returnCode="HTTP/1.0 500" />
<gtest request="GET /jsp-tests/jsp/core_syntax/beantests/setProperty/negativeSetPropNotWrite.jsp HTTP/1.0"
returnCode="HTTP/1.0 500" />
<gtest request="GET /jsp-tests/jsp/core_syntax/beantests/setProperty/negativeSetPropNotProperty.jsp HTTP/1.0"
returnCode="HTTP/1.0 500" />
<gtest request="GET /jsp-tests/jsp/core_syntax/beantests/setProperty/negativePropSyntax.jsp HTTP/1.0"
returnCode="HTTP/1.0 500" />
<gtest request="GET /jsp-tests/jsp/core_syntax/beantests/getProperty/negativeGetPropNotRead.jsp HTTP/1.0"
returnCode="HTTP/1.0 500" />
<gtest request="GET /jsp-tests/jsp/core_syntax/beantests/getProperty/negativeGetPropNotProperty.jsp HTTP/1.0"
returnCode="HTTP/1.0 500" />
<gtest request="GET /jsp-tests/jsp/core_syntax/beantests/getProperty/negativeGetProps.jsp HTTP/1.0"
returnCode="HTTP/1.0 500" />
<gtest request="GET /jsp-tests/jsp/core_syntax/scripting/declaration/negativeDeclarationSyn.jsp HTTP/1.0"
returnCode="HTTP/1.0 500" />
-->
<!-- sample of all the various test options allowed
<gtest description="Content Type Test"
request="GET /test/binaries/image1.gif HTTP/1.0"
<goldenFile fileName="${gdir}/image1.gif" ignoreWhitespace="true"/>
<regexp pattern="PreInclude"/>
expectHeaders="Content-Type:image/gif" />
exactMatch="true" />
-->
</suite>
1.1 jakarta-commons/latka/src/distribution/tests/watchdog/processWatchdogServlet.pl
Index: processWatchdogServlet.pl
===================================================================
while (<STDIN>) {
$doc .= $_;
}
print qq'<?xml version="1.0" standalone="no"?>\n';
print qq'<!DOCTYPE suite SYSTEM "../conf/suite.dtd">\n';
print qq'<suite defaultHost="localhost" defaultPort="8080" label="Watchdog Servlet tests">';
# remove junk
$doc =~ s#<property .*?/>##sg;
$doc =~ s#<taskdef .*?/>##sg;
$doc =~ s#</?target.*?>##sg;
$doc =~ s#</?project.*?>##sg;
# fix me - create sessions for each test category
$doc =~ s#testName=\".*?\"##sg;
# this is never relevant - latka has other ways to handle this
$doc =~ s#debug="0" host="\${host}" port ?="\${port}"##sg;
# make every gtest into a request
$doc =~ s#<gtest request="GET (.*?) HTTP/1.0"(.*?)assertion="(.*?)"\s*?testStrategy="(.*?)"\s*?/>#<request path="$1" label="$3">\n<validate>\n<TEMPLABEL>$4</TEMPLABEL>\n$2</validate>\n</request>#sg;
# for gtests with no description
$doc =~ s#<gtest request="GET (.*?) HTTP/1.0"(.*?)/>#<request path="$1">\n<validate>\n$2</validate>\n</request>#sg;
# for gtests with no description
$doc =~ s#<gtest request="POST (.*?) HTTP/1.0"(.*?)/>#<request path="$1" method="post">\n<validate>\n$2</validate>\n</request>#sg;
# for gtests with no description
$doc =~ s#<gtest request="HEAD (.*?) HTTP/1.0"(.*?)/>#<request path="$1" method="head">\n<validate>\n$2</validate>\n</request>#sg;
$doc =~ s#returncode="200"#<statusCode/>#sgi;
$doc =~ s#returncode="HTTP/1.0 200 OK"#<statusCode/>#sgi;
$doc =~ s#returncode="500"#<statusCode code="500"/>#sgi;
$doc =~ s#goldenFile="(.*?)"#<goldenFile fileName="$1" ignoreWhitespace="true"/>#sg;
$doc =~ s#responseMatch="(.*?)"#<regexp pattern="$1"/>#sg;
$doc =~ s#expectHeaders="(.*?):(.*?)"#<responseHeader headerName="$1" headerValue="$2"/>#sg;
$doc =~ s#<validate>\s*requestHeaders="(.*?):(.*?)"#<requestHeader headerName="$1" headerValue="$2"/>\n<validate>#sg;
# what does this test do?
$doc =~ s#content="(.*?)"#<!-- what does this gtest parameter do? \n content="$1" -->#sg;
# for tests with no validations, assume 200 check
$doc =~ s#<validate>\s*</validate>#<validate>\n<statusCode/>\n</validate>#sg;
$doc =~ s#</TEMPLABEL>\s*</validate>#</TEMPLABEL>\n<statusCode/>\n</validate>#sg;
# apply the label to the first test
$doc =~ s#<validate>\s*<TEMPLABEL>(.*?)</TEMPLABEL>\s*?(<[^>]*?)/>#<validate>\n$2 label="$1"/>#sg;
print $doc;
print "\n</suite>";
#now someone beautify me and we're done
1.1 jakarta-commons/latka/src/distribution/tests/watchdog/processWatchdogJSP.pl
Index: processWatchdogJSP.pl
===================================================================
while (<STDIN>) {
$doc .= $_;
}
print qq'<?xml version="1.0" standalone="no"?>\n';
print qq'<!DOCTYPE suite SYSTEM "../conf/suite.dtd">\n';
print qq'<suite defaultHost="localhost" defaultPort="8080" label="Watchdog JSP tests">';
# remove junk
$doc =~ s#<property .*?/>##sg;
$doc =~ s#<taskdef .*?/>##sg;
$doc =~ s#</?target.*?>##sg;
$doc =~ s#</?project.*?>##sg;
# fix me - create sessions for each test category
$doc =~ s#testName=\".*?\"##sg;
# this is never relevant - latka has other ways to handle this
$doc =~ s#debug="0" host="\${host}" port ?="\${port}"##sg;
# make every gtest into a request
$doc =~ s#<gtest request="GET (.*?) HTTP/1.0"(.*?)assertion="(.*?)"\s*?testStrategy="(.*?)"\s*?/>#<request path="$1" label="$3">\n<validate>\n<TEMPLABEL>$4</TEMPLABEL>\n$2</validate>\n</request>#sg;
$doc =~ s#returncode="200"#<statusCode/>#sgi;
$doc =~ s#returncode="HTTP/1.0 200 OK"#<statusCode/>#sgi;
$doc =~ s#returncode="500"#<statusCode code="500"/>#sgi;
$doc =~ s#goldenFile="(.*?)"#<goldenFile fileName="$1" ignoreWhitespace="true"/>#sg;
$doc =~ s#responseMatch="(.*?)"#<regexp pattern="$1"/>#sg;
# apply the label to the first test
$doc =~ s#<validate>\s*<TEMPLABEL>(.*?)</TEMPLABEL>\s*?(<[^>]*?)/>#<validate>\n$2 label="$1"/>#sg;
print $doc;
print "\n</suite>";
#now someone beautify me and we're done
1.1 jakarta-commons/latka/src/distribution/tests/samples/TestTaglibsWebsite.xml
Index: TestTaglibsWebsite.xml
===================================================================
<?xml version="1.0" standalone="no"?>
<!DOCTYPE suite SYSTEM "../../conf/suite.dtd">
<suite defaultHost="jakarta.apache.org" label="Tablibs">
<!-- confirm that docs for all Jakarta Taglibs are present -->
<request path="/taglibs" label="home page">
<validate>
&commonValidations;
<regexp pattern="Welcome to Jakarta Taglibs!"/>
</validate>
</request>
<request path="/taglibs/doc/application-doc/intro.html" label="Application Taglib">
<validate>
&commonValidations;
</validate>
</request>
<request path="/taglibs/doc/benchmark-doc/intro.html" label="Benchmark Taglib">
<validate>
&commonValidations;
</validate>
</request>
<request path="/taglibs/doc/bsf-doc/intro.html" label="BSF Taglib">
<validate>
&commonValidations;
</validate>
</request>
<request path="/taglibs/doc/datetime-doc/intro.html" label="DateTime Taglib">
<validate>
&commonValidations;
</validate>
</request>
<request path="/taglibs/doc/dbtags-doc/intro.html" label="DBTags Taglib">
<validate>
&commonValidations;
</validate>
</request>
<request path="/taglibs/doc/i18n-doc/intro.html" label="I18N Taglib">
<validate>
&commonValidations;
</validate>
</request>
<request path="/taglibs/doc/input-doc/intro.html" label="Input Taglib">
<validate>
&commonValidations;
</validate>
</request>
<request path="/taglibs/doc/io-doc/intro.html" label="IO Taglib">
<validate>
&commonValidations;
</validate>
</request>
<request path="/taglibs/doc/jndi-doc/intro.html" label="JNDI Taglib">
<validate>
&commonValidations;
</validate>
</request>
<request path="/taglibs/doc/jsptl-doc/intro.html" label="JSPTL Taglib">
<validate>
&commonValidations;
</validate>
</request>
<request path="/taglibs/doc/mailer-doc/intro.html" label="Mailer Taglib">
<validate>
&commonValidations;
</validate>
</request>
<request path="/taglibs/doc/page-doc/intro.html" label="Page Taglib">
<validate>
&commonValidations;
</validate>
</request>
<request path="/taglibs/doc/random-doc/intro.html" label="Random Taglib">
<validate>
&commonValidations;
</validate>
</request>
<request path="/taglibs/doc/regexp-doc/intro.html" label="Regexp Taglib">
<validate>
&commonValidations;
</validate>
</request>
<request path="/taglibs/doc/request-doc/intro.html" label="Request Taglib">
<validate>
&commonValidations;
</validate>
</request>
<request path="/taglibs/doc/response-doc/intro.html" label="Response Taglib">
<validate>
&commonValidations;
</validate>
</request>
<request path="/taglibs/doc/scrape-doc/intro.html" label="Scrape Taglib">
<validate>
&commonValidations;
</validate>
</request>
<request path="/taglibs/doc/session-doc/intro.html" label="Session Taglib">
<validate>
&commonValidations;
</validate>
</request>
<request path="/taglibs/doc/utility-doc/intro.html" label="Utility Taglib">
<validate>
&commonValidations;
</validate>
</request>
<request path="/taglibs/doc/xsl-doc/intro.html" label="XSL Taglib">
<validate>
&commonValidations;
</validate>
</request>
<request path="/taglibs/doc/xtags-doc/intro.html" label="XTags Taglib">
<validate>
&commonValidations;
</validate>
</request>
</suite>
1.1 jakarta-commons/latka/src/distribution/tests/samples/TestCommonsWebsite.xml
Index: TestCommonsWebsite.xml
===================================================================
<?xml version="1.0" standalone="no"?>
<!DOCTYPE suite PUBLIC
"-//Apache Software Foundation/DTD Latka Test Suite 1.0/EN"
"http://jakarta.apache.org/commons/latka/dtds/1.0/suite.dtd">
<suite defaultHost="jakarta.apache.org" label="Taglibs">
<!-- confirm that docs for all Jakarta Commons components are present -->
<request path="/commons" label="home page">
<validate>
&commonValidations;
<regexp pattern="Welcome to the Commons!"/>
</validate>
</request>
<request path="/commons/beanutils.html" label="BeanUtils">
<validate>
&commonValidations;
</validate>
</request>
<request path="/commons/cactus/index.html" label="Cactus">
<validate>
&commonValidations;
</validate>
</request>
<request path="/commons/collections.html" label="Collections">
<validate>
&commonValidations;
</validate>
</request>
<request path="/commons/digester/index.html" label="Digester">
<validate>
&commonValidations;
</validate>
</request>
<request path="/commons/dbcp/index.html" label="DBCP">
<validate>
&commonValidations;
</validate>
</request>
<request path="/commons/httpclient/index.html" label="HTTPClient">
<validate>
&commonValidations;
</validate>
</request>
<request path="/commons/latka/index.html" label="Latka">
<validate>
&commonValidations;
</validate>
</request>
<request path="/commons/pool/index.html" label="Pool">
<validate>
&commonValidations;
</validate>
</request>
</suite>
1.1 jakarta-commons/latka/src/distribution/tests/latka-self-test/TestLatka.xml
Index: TestLatka.xml
===================================================================
<?xml version="1.0" standalone="no"?>
<!DOCTYPE suite SYSTEM "../../conf/suite.dtd">
<suite defaultHost="${defaultHost}" defaultPort="${defaultPort}"
label="Latka self-diagnostics">
<!--
functional tests that Latka can run on itself,
using JSPs included in the Latka webapp.
You can actually run this test from the web interface
to have the webapp test its own jar. :)
-->
<!-- START HEADER CHECKS -->
<session>
<!-- first request should not set a referer -->
<request path="${latkaContext}/self-test/snoop/RequestHeaders.jsp" label="no referer 1">
<validate>
<regexp pattern="referer" cond="false"/>
</validate>
</request>
<!-- second should refer to the first -->
<request path="${latkaContext}/self-test/snoop/RequestHeaders.jsp" label="referer">
<validate>
<regexp pattern="referer:"/>
<regexp pattern="${latkaContext}/self-test/snoop/RequestHeaders.jsp"/>
</validate>
</request>
</session>
<!-- no referer for requests outside of a session -->
<request path="${latkaContext}/self-test/RequestHeaders.jsp" label="no referer 2">
<validate>
<regexp pattern="referer" cond="false"/>
</validate>
</request>
<session>
<!-- checks single header and makes sure that referer can be overridden
in a session -->
<request path="${latkaContext}/self-test/snoop/RequestHeaders.jsp" label="single request header">
<requestHeader headerName="referer" headerValue="Foo"/>
<validate>
<regexp pattern="Foo"/>
</validate>
</request>
<request path="${latkaContext}/self-test/snoop/RequestHeaders.jsp" label="multi request header">
<requestHeader headerName="referer" headerValue="Foo"/>
<requestHeader headerName="customheader1" headerValue="Bar"/>
<requestHeader headerName="customheader2" headerValue="Bar2"/>
<validate>
<regexp pattern="Foo"/>
<regexp pattern="Bar"/>
<regexp pattern="Bar2"/>
</validate>
</request>
<!-- verify that header tests are case-insensitive -->
<request path="${latkaContext}/self-test/snoop/RequestHeaders.jsp"
label="case-insensitive headers">
<validate>
<responseHeader headerName="Date" label="Date spelling"/>
<responseHeader headerName="date" label="date spelling"/>
<responseHeader headerName="dATE" label="dATE spelling"/>
</validate>
</request>
</session>
<!--END HEADER TESTS -->
<!-- START SESSION TESTS -->
<!-- verify that cookies are preserved correctly -->
<session sessionId="corporatePants">
<!-- server sets a cookie in the session -->
<request path="${latkaContext}/self-test/cookies/SetCookie.jsp"
label="set a cookie">
<param>
<paramName>cookieName</paramName>
<paramValue>foo</paramValue>
</param>
<param>
<paramName>cookieValue</paramName>
<paramValue>bar</paramValue>
</param>
<validate>
<regexp pattern="Cookie added; name=foo; value=bar"/>
<regexp pattern="Cookie path: /"/>
<regexp pattern="Cookie domain: localhost"/>
<cookie name="foo" value="bar"
label="verify that HttpClient assigned 'foo' cookie to the session"/>
</validate>
</request>
<!-- make sure we received the cookie -->
<request path="${latkaContext}/self-test/snoop/Cookies.jsp"
label="cookie should be in the originating session">
<validate>
<regexp pattern="foo:bar"/>
</validate>
</request>
</session>
<session>
<!--
this request shouldn't have the cookie, because it's in
a different session
-->
<request path="${latkaContext}/self-test/snoop/Cookies.jsp"
label="cookie should not be in a different session">
<validate>
<regexp pattern="foo:bar" cond="false"/>
</validate>
</request>
</session>
<session sessionId="corporatePants">
<!--
but this one should, because it's using the cached
"corporatePants" session
-->
<request path="${latkaContext}/self-test/snoop/Cookies.jsp"
label="cookie should still be in a cached session">
<validate>
<regexp pattern="foo:bar"/>
</validate>
</request>
</session>
<!-- END SESSION TESTS -->
<!-- START INTERNAL REDIRECT TESTS -->
<session>
<!-- verify that HTTPClient processes redirects correctly -->
<request path="${latkaContext}/self-test/redirect/InternalRedirect.jsp"
label="internal redirects function correctly">
<validate>
<regexp pattern="Received redirect\."/>
</validate>
</request>
<!--
verify that Latka sends the correct referer (i.e. the _target_
of the previous redirect, NOT the original request
-->
<request path="${latkaContext}/self-test/redirect/PrintReferer.jsp"
label="Latka sends the correct referer">
<validate>
<regexp pattern="${latkaContext}/self-test/redirect/RedirectTarget.jsp"/>
</validate>
</request>
</session>
<!-- START EXTERNAL REDIRECT TESTS -->
<request path="${latkaContext}/self-test/redirect/ExternalRedirect.jsp"
label="should follow redirects to other servers">
<validate>
<statusCode/>
<regexp pattern="Latka" ignoreCase="true"/>
</validate>
</request>
<!-- END EXTERNAL REDIRECT TESTS -->
<!-- START BASIC AUTH TESTS -->
<request path="${latkaContext}/self-test/basicAuth/Login.jsp" label="not logged in">
<validate>
<statusCode code="401" label="Without credentials, status code should be 401"/>
</validate>
</request>
<!--
in order for these tests to succeed, you must configure the latka roles
and MisterSmiley user in your servlet container. For tomcat, this is:
<user name="MisterSmiley" password="smiley!1" roles="latka-auth" />
-->
<session sessionId="authSession">
<request path="${latkaContext}/self-test/basicAuth/Login.jsp" label="logged in">
<credentials userName="MisterSmiley" password="smiley!1" />
<validate>
<regexp pattern="Logged in"/>
</validate>
</request>
<request path="${latkaContext}/self-test/basicAuth/Login.jsp" label="cached credentials">
<validate>
<regexp pattern="Logged in" label="should still be logged in"/>
</validate>
</request>
</session>
<!-- outside a session, credentials should not be preserved -->
<request path="${latkaContext}/self-test/basicAuth/Login.jsp" label="still not logged in">
<validate>
<statusCode code="401" label="Without credentials, status code should be 401"/>
</validate>
</request>
<session sessionId="authSession">
<request path="${latkaContext}/self-test/basicAuth/Login.jsp" label="credentials in a cached session">
<validate>
<regexp pattern="Logged in" label="should still be logged in"/>
</validate>
</request>
</session>
<!-- END BASIC AUTH CHECKS -->
</suite>
1.1 jakarta-commons/latka/src/distribution/conf/tests.ent
Index: tests.ent
===================================================================
<!ENTITY % custom-tests.ent SYSTEM "custom-tests.ent">
%custom-tests.ent;
<!-- all Latka test top level elements are here -->
<!ENTITY % tests "byteLength | cookie | goldenFile | maxRequestTime | regexp |
responseHeader | statusCode | xpath">
<!ELEMENT byteLength EMPTY>
<!ATTLIST byteLength min CDATA "0"
max CDATA #IMPLIED
label CDATA #IMPLIED>
<!-- start cookie validator-->
<!ELEMENT cookie EMPTY>
<!ATTLIST cookie name CDATA #REQUIRED
value CDATA #IMPLIED
label CDATA #IMPLIED>
<!-- end cookie validator -->
<!ELEMENT goldenFile EMPTY>
<!ATTLIST goldenFile fileName CDATA #REQUIRED
ignoreWhitespace (true | false) "false"
label CDATA #IMPLIED>
<!ELEMENT maxRequestTime EMPTY>
<!-- defaults to 30 seconds -->
<!ATTLIST maxRequestTime millis CDATA "30000"
label CDATA #IMPLIED>
<!ELEMENT regexp EMPTY>
<!ATTLIST regexp pattern CDATA #REQUIRED
cond (true | false) "true"
ignoreCase (true | false) "false"
label CDATA #IMPLIED>
<!--
if you omit the headerValue, Latka assumes that you
simply want to make sure the header exists
-->
<!ELEMENT responseHeader EMPTY>
<!ATTLIST responseHeader headerName CDATA #REQUIRED
headerValue CDATA #IMPLIED
label CDATA #IMPLIED>
<!ELEMENT statusCode EMPTY>
<!ATTLIST statusCode code CDATA "200"
label CDATA #IMPLIED>
<!ELEMENT xpath EMPTY>
<!ATTLIST xpath select CDATA #REQUIRED
cond (true | false) "true"
value CDATA #IMPLIED
label CDATA #IMPLIED>
1.1 jakarta-commons/latka/src/distribution/conf/suite.ent
Index: suite.ent
===================================================================
<!-- entities -->
<!ENTITY % standardValidations.ent SYSTEM "standardValidations.ent">
%standardValidations.ent;
<!-- validations and custom tests
alter this file to add new custom tests -->
<!ENTITY % tests.ent SYSTEM "tests.ent">
%tests.ent;
<!ELEMENT suite ( (session | request)+ )>
<!ATTLIST suite defaultHost CDATA #IMPLIED
defaultPort CDATA #IMPLIED
label CDATA #IMPLIED>
<!ELEMENT session (request+)>
<!-- tests that use the same session_id share the same environment -->
<!ATTLIST session sessionId CDATA #IMPLIED
label CDATA #IMPLIED>
<!ELEMENT request (credentials?, requestHeader*, param*, validate?)>
<!ATTLIST request path CDATA #REQUIRED
method (post | get | head) "get"
secure (true | false) "false"
host CDATA #IMPLIED
port CDATA #IMPLIED
label CDATA #IMPLIED
followRedirects (true | false) "true">
<!ELEMENT credentials EMPTY>
<!ATTLIST credentials userName CDATA #REQUIRED
password CDATA #REQUIRED>
<!ELEMENT requestHeader EMPTY>
<!ATTLIST requestHeader headerName CDATA #REQUIRED
headerValue CDATA #IMPLIED>
<!ELEMENT param (paramName, paramValue)>
<!ELEMENT paramName (#PCDATA)>
<!ELEMENT paramValue (#PCDATA)>
<!ELEMENT validate ( (%tests; %custom-tests;)+ )>
1.1 jakarta-commons/latka/src/distribution/conf/suite.dtd
Index: suite.dtd
===================================================================
<?xml version="1.0" encoding="UTF-8"?>
<!-- standard wrapper for the main DTD elements -->
<!ENTITY % suite.ent SYSTEM "suite.ent">
%suite.ent;
1.1 jakarta-commons/latka/src/distribution/conf/standardValidations.ent
Index: standardValidations.ent
===================================================================
<!-- This module contains a set of standard validation entities for Latka tests. -->
<!-- standard set -->
<!ENTITY commonValidations "<statusCode/>">
<!-- response time -->
<!ENTITY fast "<maxRequestTime millis='2500' label='Response in at most 2.5 seconds.'/>">
<!ENTITY slow "<maxRequestTime millis='5000' label='Response in at most 5 seconds.'/>">
<!-- byte size -->
<!ENTITY tiny "<byteLength min= '1' max= '1000' label='Less than 1 KB long.'/>">
<!ENTITY small "<byteLength min= '1000' max='10000' label='Between 1 and 10 KB long.'/>">
<!ENTITY medium "<byteLength min='8000' max='22000' label='Between 8 and 22 KB long.'/>">
<!ENTITY large "<byteLength min='18000' max='32000' label='Between 18 and 32 KB long.'/>">
<!ENTITY huge "<byteLength min='30000' label='More than 30 KB long.'/>">
<!-- regexp -->
1.1 jakarta-commons/latka/src/distribution/conf/report.dtd
Index: report.dtd
===================================================================
<?xml encoding="UTF-8" ?>
<!ELEMENT report (request+)>
<!ATTLIST report suiteSuccess (true|false) #REQUIRED
label CDATA #IMPLIED>
<!ELEMENT request (requestSuccess | requestFailure |
requestSkipped | requestError)>
<!ATTLIST request requestTime CDATA #REQUIRED
label CDATA #IMPLIED
url CDATA #REQUIRED>
<!ELEMENT requestSuccess EMPTY>
<!ELEMENT requestFailure (label)>
<!ATTLIST requestFailure responseId CDATA #REQUIRED>
<!ELEMENT requestSkipped EMPTY>
<!ELEMENT requestError (label)>
<!ELEMENT label (#PCDATA)>
1.1 jakarta-commons/latka/src/distribution/conf/custom-tests.ent
Index: custom-tests.ent
===================================================================
<!--
Author: dIon Gillard (dion@apache.org)
Version: $Id: custom-tests.ent,v 1.1 2002/04/22 15:48:34 dion Exp $
alter this file to add new custom tests
There is an entity defined here called 'custom-tests' which has a list of
top-level elements for the tests. These top-level elements will be defined
in the resulting DTD to appear as children of the <validate> element in
a Latka Suite
Each custom test top-level element should be entered, with a vertical
bar ( '|' ) separating each.
-->
<!--top level element only, e.g.
the vertical bar is VERY important
### example only
custom-tests " | myvalidator" >
default is no custom tests i.e. blank
-->
<!ENTITY % custom-tests "" >
<!--
now for custom test element and attribute definitions, e.g.
### example only
<!ELEMENT myvalidator EMPTY>
<!ATTLIST myvalidator name CDATA #REQUIRED
value CDATA #IMPLIED
label CDATA #IMPLIED>
-->
--
To unsubscribe, e-mail: <ma...@jakarta.apache.org>
For additional commands, e-mail: <ma...@jakarta.apache.org>