<?xml version="1.0"?>

<project
	name="testsuite"
	default="run"
	basedir=".">

	<!-- Configurable Properties -->

	<!-- 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.tests.encoding" />
	<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">
		<delete>
			<fileset
				dir="${eclipse-home}"
				includes="org.eclipse.wst.html.tests.encoding.*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="core-test"
			antfile="${library-file}"
			dir="${eclipse-home}">
			<property
				name="data-dir"
				value="${wst-folder}" />
			<property
				name="plugin-name"
				value="org.eclipse.wst.html.tests.encoding" />
			<property
				name="classname"
				value="org.eclipse.wst.html.tests.encoding.HTMLEncodingTestSuite" />
			<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.tests.encoding.*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>