<?xml version="1.0"?>

<project
	name="testsuite"
	default="run"
	basedir=".">
	<!-- The property ${eclipse-home} should be passed into this script -->
	<!-- Set a meaningful default value for when it is not. -->
	<!-- <property name="eclipse-home" value="${basedir}\..\.." /> -->

	<echo message="basedir ${basedir}" />
	<echo message="eclipse place ${eclipse-home}" />

	<!-- sets the properties plugin-name, and library-file -->
	<property
		name="plugin-name"
		value="org.eclipse.wst.html.ui.tests" />
	<property
		name="library-file"
		value="${eclipse-home}/plugins/org.eclipse.test_3.1.0/library.xml" />

	<!-- 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="org.eclipse.wst.html.ui.tests.*xml" />
		</delete>
	</target>

	<!-- This target defines the tests that need to be run. -->
	<target name="suite">
		<property
			name="wst-folder"
			value="${eclipse-home}/wst_folder" />
		<delete
			dir="${wst-folder}"
			quiet="true" />
		<ant
			target="ui-test"
			antfile="${library-file}"
			dir="${eclipse-home}">
			<property
				name="data-dir"
				value="${wst-folder}" />
			<property
				name="plugin-name"
				value="${plugin-name}" />
			<property
				name="classname"
				value="org.eclipse.wst.html.ui.tests.HTMLUITestSuite" />
			<property
				name="plugin-path"
				value="${eclipse-home}/plugins/${plugin-name}" />
		</ant>
	</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">
		<!--<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="org.eclipse.wst.html.ui.tests.*xml" />
			<property
				name="output-file"
				value="${plugin-name}.xml" />
		</ant>
		<!--		<emailResults resultsFile="${build-results-home}/${plugin-name}.xml" addresslist="david_williams@us.ibm.com" /> -->
	</target>

</project>