<?xml version="1.0" encoding="UTF-8"?>

<project
    name="testsuite"
    default="run"
    basedir=".">
    
    <!-- The following properties should be passed into this script -->
    <!-- ${eclipse-home}   -->
    <!-- ${buildDirectory}  -->
    <!-- ${buildLabel}        -->

    <!-- should be little need to change what's above  -->
    
    <property
		name="plugin-name"
		value="org.eclipse.wst.common.snippets.tests" />
    <property
        name="classname"
        value="org.eclipse.wst.common.snippets.tests.AllTests" />
    <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}" />
        
    <!-- This 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>