blob: a3060fe82403487c0e8f1f4f536852ddeea15d30 [file] [log] [blame]
<?xml version="1.0"?>
<project name="test" default="test" basedir=".">
<!-- Allow any user specific values to override the defaults -->
<property file="${user.home}/build.properties" />
<property file="build.properties" />
<property file="default.properties" />
<!-- Construct compile/run-time classpath -->
<path id="test-classpath">
<pathelement location="${junit.jar}"/>
<pathelement location="${cactus.jar}"/>
<pathelement location="${cactus-ant.jar}"/>
<pathelement location="${httpunit.jar}"/>
<pathelement location="${tidy.jar}"/>
<pathelement location="${log4j.jar}"/>
<pathelement location="${servlet.jar}"/>
<pathelement location="${velocity.jar}"/>
<pathelement location="${commons-collections.jar}"/>
<pathelement location="${httpclient.jar}"/>
<pathelement path="${build.dest}"/>
</path>
<!-- ================================================================== -->
<!-- C O M P I L E T E S T S -->
<!-- ================================================================== -->
<target
name="compile"
description="==> compiles the test source code">
<ant antfile="build-legacy.xml" target="compile"/>
<copy todir="${build.src}/org">
<fileset dir="${test.dir}/org"/>
<fileset dir="${rttest.dir}/org"/>
</copy>
<javac srcdir="${build.src}"
destdir="${build.dest}"
includes="**/*Test.java"
excludes="**/package.html"
debug="${debug}"
deprecation="${deprecation}"
optimize="${optimize}">
<classpath refid="test-classpath"/>
</javac>
</target>
<!-- ================================================================== -->
<!-- U N I T T E S T S -->
<!-- ================================================================== -->
<target
name="test"
depends="compile"
description="runs (junit) unit tests">
<echo>
Running all JUnit tests
</echo>
<delete dir="${test.reportsDirectory}"/>
<mkdir dir="${test.reportsDirectory}"/>
<junit printSummary="yes" haltonerror="yes">
<formatter type="plain"/>
<classpath refid="test-classpath"/>
<batchtest todir="${test.reportsDirectory}">
<fileset dir="${build.dest}">
<include name="**/*Test.class"/>
<exclude name="**/*ServletTest.class"/>
<exclude name="**/BaseValueParserTest.class"/>
<exclude name="**/FileHandlerTest.class"/>
<exclude name="**/TurbineCacheTest.class"/>
</fileset>
</batchtest>
</junit>
</target>
<!-- ================================================================== -->
<!-- S E R V L E T T E S T S -->
<!-- ================================================================== -->
<target
name="test-servlet"
description="--> runs turbine servlet tests">
<fail message="The integration unit tests only work with the maven controlled build."/>
<taskdef
name="RunServerTests"
className="org.apache.cactus.ant.RunServerTestsTask">
<classpath refid="test-classpath"/>
</taskdef>
<!--
Start the servlet engine, wait for it to be started, run the
unit tests, stop the servlet engine, wait for it to be stopped.
The servlet engine is stopped if the tests fail for any reason
-->
<RunServerTests
testURL="http://localhost:${test.port}/test"
startTarget="start-tomcat-40"
stopTarget="stop-tomcat-40"
testTarget="turbine-servlet-tests"/>
</target>
<target
name="turbine-servlet-tests">
<junit
printsummary="no"
haltonfailure="yes"
haltonerror="yes"
fork="yes"
dir="./">
<classpath refid="test-classpath"/>
<sysproperty key="java.compiler" value="NONE" />
<sysproperty key="java.net.namelookup.cache" value="0" />
<sysproperty key="sun.net.inetaddr.ttl" value="0" />
<formatter type="plain" usefile="false"/>
<batchtest>
<fileset dir="${build.dest}">
<include name="**/*ServletTest.class"/>
<include name="**/TurbineCacheTest.class"/>
<include name="**/BaseValueParserTest.class"/>
<!-- NEEDS TO BE FIXED -->
<exclude name="**/FileHandlerTest.class"/>
</fileset>
</batchtest>
</junit>
</target>
<!-- =================================================================== -->
<!-- S T A R T T O M C A T 4 . 0 -->
<!-- =================================================================== -->
<target
name="start-tomcat-40">
<java
classname="org.apache.catalina.startup.Bootstrap"
fork="yes">
<jvmarg value="-Dcatalina.home=${tomcat.home.40}"/>
<arg value="-config"/>
<arg value="${out.tomcat40.full.dir}/conf/server.xml"/>
<arg value="start"/>
<classpath>
<pathelement location="${java.home}/../lib/tools.jar"/>
<fileset dir="${tomcat.home.40}">
<include name="bin/bootstrap.jar"/>
</fileset>
</classpath>
</java>
</target>
<!-- =================================================================== -->
<!-- S T O P T O M C A T 4 . 0 -->
<!-- =================================================================== -->
<target
name="stop-tomcat-40">
<java
classname="org.apache.catalina.startup.Bootstrap"
fork="yes">
<jvmarg value="-Dcatalina.home=${tomcat.home.40}"/>
<arg value="stop"/>
<classpath>
<fileset dir="${tomcat.home.40}">
<include name="bin/bootstrap.jar"/>
<include name="server/catalina.jar"/>
</fileset>
</classpath>
</java>
</target>
<!-- =================================================================== -->
<!-- Display a warning message if the needed servlet engine home -->
<!-- property is not set -->
<!-- =================================================================== -->
<target
name="check-tests-tomcat-40"
depends="testwar"
unless="tomcat.home.40">
<echo>
*********************************************************
WARNING : The 'tomcat.home.40' property has not been set.
No test will be run on that servlet engine.
*********************************************************
</echo>
</target>
<!-- =================================================================== -->
<!-- C R E A T E T E S T W A R F I L E -->
<!-- =================================================================== -->
<target
name="testwar"
depends="compile">
<!-- Make sure the directory for the war exist -->
<delete dir="${out.test.dir}"/>
<mkdir dir="${out.test.dir}"/>
<!-- Create the WEB-INF/lib directory that will be used
with the testapp -->
<mkdir dir="${build.dir}/rttest/lib"/>
<copy file="${cactus.jar}" todir="${build.dir}/rttest/lib"/>
<copy file="${httpunit.jar}" todir="${build.dir}/rttest/lib"/>
<copy file="${tidy.jar}" todir="${build.dir}/rttest/lib"/>
<copy file="${commons-collections.jar}" todir="${build.dir}/rttest/lib"/>
<copy file="${junit.jar}" todir="${build.dir}/rttest/lib"/>
<copy file="${log4j.jar}" todir="${build.dir}/rttest/lib"/>
<copy file="${velocity.jar}" todir="${build.dir}/rttest/lib"/>
<copy file="${httpclient.jar}" todir="${build.dir}/rttest/lib"/>
<copy file="${xmlrpc.jar}" todir="${build.dir}/rttest/lib"/>
<copy file="${xalan.jar}" todir="${build.dir}/rttest/lib"/>
<copy file="${xerces.jar}" todir="${build.dir}/rttest/lib"/>
<copy file="${ecs.jar}" todir="${build.dir}/rttest/lib"/>
<copy file="${activation.jar}" todir="${build.dir}/rttest/lib"/>
<copy file="${javamail.jar}" todir="${build.dir}/rttest/lib"/>
<copy file="${stratum.jar}" todir="${build.dir}/rttest/lib"/>
<war
warfile="${out.test.dir}/test.war"
webxml="${conf.test.dir}/web.xml">
<lib dir="${build.dir}/rttest/lib"/>
<!-- We want to test Turbine core classes -->
<classes dir="${build.dest}"/>
<fileset dir="${webapp.dir}">
<exclude name="**/CVS/*"/>
<exclude name="**/WEB-INF/web.xml"/>
</fileset>
</war>
</target>
<!-- =================================================================== -->
<!-- Prepare directories and variables for running the tests -->
<!-- =================================================================== -->
<target
name="prepare-tests-tomcat-40"
depends="check-tests-tomcat-40"
if="tomcat.home.40">
<echo message="tomcat.home.40 = ${tomcat.home.40}"/>
<property name="out.tomcat40.dir" value="${out.test.dir}/tomcat40"/>
<property name="conf.tomcat40.dir" value="${conf.test.dir}/tomcat40"/>
<property name="out.tomcat40.full.dir" value="${basedir}/${out.tomcat40.dir}"/>
<filter token="out.tomcat40.full.dir" value="${out.tomcat40.full.dir}"/>
<filter token="test.port" value="${test.port}"/>
<!-- Create work and conf directories and copy configuration files -->
<mkdir dir="${out.tomcat40.dir}/conf"/>
<mkdir dir="${out.tomcat40.dir}/work"/>
<mkdir dir="${out.tomcat40.dir}/webapps"/>
<!-- Delete some config file so that they will be copied every time -->
<delete file="${out.tomcat40.dir}/conf/server.xml"/>
<!-- Remove the auto deployed webapp so that it is redeployed every -->
<!-- time. -->
<delete dir="${out.tomcat40.dir}/webapps/test"/>
<!-- Copy the default tomcat web.xml to our test conf/ directory. -->
<!-- This is needed otherwise tomcat does not start. -->
<copy
file="${tomcat.home.40}/conf/web.xml"
tofile="${out.tomcat40.dir}/conf/web.xml"
filtering="on"/>
<copy
file="${conf.tomcat40.dir}/server.xml"
tofile="${out.tomcat40.dir}/conf/server.xml"
filtering="on"/>
<!-- Copy the war file -->
<copy
file="${out.test.dir}/test.war"
tofile="${out.tomcat40.dir}/webapps/test.war"/>
<!-- As this classes directory will be used to run the client side
of Cactus, we need to copy the cactus.properties -->
<copy
todir="${build.dest}"
file="${conf.test.dir}/cactus.properties"
filtering="on"/>
</target>
</project>