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

<!--
    Copyright (c) 2004, 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.jst.jsp.tests.encoding" />
    <property
        name="classname"
        value="org.eclipse.jst.jsp.tests.encoding.JSPEncodingTestSuite" />
    <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>