<?xml version="1.0" encoding="UTF-8"?>
<project
    name="testsuite"
    default="run"
    basedir=".">

    <!-- 
         The following properties should be passed into this script
         so we'll fail fast if not. 
             ${eclipse-home}   
             ${buildDirectory}
             ${buildLabel}        
    -->
  
  	<fail
        message="Error: missing property. eclipse-home must be provided"
        unless="eclipse-home" />
    <fail
        message="Error: missing property. buildDirectory must be provided"
        unless="buildDirectory" />
    <fail
        message="Error: missing property. buildLabel must be provided"
        unless="buildLabel" />
	
    <!-- should be little need to change what's above  -->
	
    <property
        name="plugin-name"
        value="org.eclipse.jst.ws.cxf.tests"/>
    <property
        name="classname"
        value="org.eclipse.jst.ws.cxf.tests.AllTestsSuite"/>
    <property
        name="testType"
        value="ui-test"/>

    <!-- should be little need to change what's below -->
    <echo
        message="basedir: ${basedir}"/>
    <echo
        message="eclipse-home: ${eclipse-home}"/>
    <echo
        message="buildDirectory: ${buildDirectory}"/>
    <echo
        message="plugin-name: ${plugin-name}"/>
    <echo
        message="classname: ${classname}"/>
    <echo
        message="testType ${testType}"/>
    <property
        name="library-file"
        value="${eclipse-home}/plugins/org.eclipse.test_3.1.0/library.xml"/>
    <property
        name="workspace"
        value="${eclipse-home}/junitworkspaces/${plugin-name}"/>
	  <echo 
	      message="workspace: ${workspace}" />
    <!--
        This init target holds all initialization code that needs to be done
        for all tests that are to be run. Initialization for individual
        tests should be done within the body of the suite target. 
    -->
    <target
        name="init">
        <tstamp/>
        <delete>
            <fileset
                dir="${eclipse-home}"
                includes="${plugin-name}.*xml"/>
        </delete>
        <!-- make directory, in case path doesn't exist yet -->
        <mkdir
            dir="${workspace}"/>
        <!--  but delete to make sure fresh contents-->
        <delete
            dir="${workspace}"
            quiet="true"/>
    </target>

    <!-- This target defines the tests that need to be run. -->
    <target
        name="suite">
        <ant
            target="${testType}"
            antfile="${library-file}"
            dir="${eclipse-home}">
            <property
                name="data-dir"
                value="${workspace}"/>
            <property
                name="plugin-name"
                value="${plugin-name}"/>
            <property
                name="classname"
                value="${classname}"/>
            <property
                name="plugin-path"
                value="${eclipse-home}/plugins/${plugin-name}"/>
        </ant>
        <copy
            failonerror="false"
            file="${workspace}/.metadata/.log"
            tofile="${buildDirectory}/${buildLabel}/testResults/consolelogs/${plugin-name}.consolelog.txt"/>
    </target>

    <!-- This target holds code to cleanup the testing environment after -->
    <!--
        after all of the tests have been run. You can use this target to
    -->
    <!-- delete temporary files that have been created. -->
    <target
        name="cleanup">
        <!--
            usually no need to delete workspace until next run, and
            leaving it allows inspection
        -->
        <!-- <delete dir="${workspace}" quiet="true" /> -->
    </target>
    <!--
        This target runs the test suite. Any actions that need to happen
    -->
    <!-- after all the tests have been run should go here. -->
    <target
        name="run"
        depends="init,suite,cleanup">
        <ant
            target="collect"
            antfile="${library-file}"
            dir="${eclipse-home}">
            <property
                name="includes"
                value="${plugin-name}.*xml"/>
            <property
                name="output-file"
                value="${plugin-name}.xml"/>
        </ant>
    </target>
</project>