<?xml version="1.0" encoding="UTF-8"?>

<!--
    Copyright (c) 2009, 2018 IBM Corporation and others.
    This program and the accompanying materials
    are made available under the terms of the Eclipse Public License 2.0
    which accompanies this distribution, and is available at
    https://www.eclipse.org/legal/epl-2.0/

    SPDX-License-Identifier: EPL-2.0

    Contributors:
        IBM Corporation - initial API and implementation
 -->

<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.jsdt.web.ui.tests" />
    <property
        name="classname"
        value="org.eclipse.wst.jsdt.web.ui.tests.AllWebUITests" />
    <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>