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

<!-- test launcher file for Android Eclipse tests -->
<project name="testsuite" default="run" basedir="."> 
    <!--The following properties should be passed into this script, set to some default value for now -->
    <property name="eclipse.home" value="/opt/eclipse" />
    <property name="sdk_home" value="/tmp/sdk" />
    <property name="eclipse_test" value="${eclipse.home}/plugins/org.eclipse.test_3.2.0" />
	
    <!-- eclipse scripts use an annoying mixture of eclipse-home and eclipse.home -->
    <!-- lets define both...-->
    <property name="eclipse-home" value="${eclipse.home}" />
    <property name="test-folder" value="${eclipse.home}/test_folder" />
        
    <!-- sets the properties eclipse.home, and library-file -->
    <property name="plugin-name" value="com.android.ide.eclipse.tests" />
    <property name="library-file" value="${eclipse_test}/library.xml" />

    <!-- location of adt preference file (within workspace) -->
    <property name="prefs_path" value="${test-folder}/.metadata/.plugins/org.eclipse.core.runtime/.settings/com.android.ide.eclipse.adt.prefs" />
    <!-- location of pref template file relative to this file -->

    <property name="prefs_template" value="prefs.template" />

    <!-- This target holds all initialization code that needs to be done for -->
    <!-- all tests that are to be run.         -->
    <target name="init">
        <tstamp />
        <echo message="eclipse.home:  ${eclipse.home}" />
        <echo message="libfile:  ${library-file}" />
        
        <!-- delete test eclipse workspace -->
        <delete dir="${test-folder}" quiet="true" />
    	
    	<!-- delete test results dir -->
    	<delete dir="${eclipse.home}/results" quiet="true" />

        <!-- Copy a preference file into the test workspace. -->
        <!-- This is done to ensure Android SDK preference is set on startup -->
        <copy file="${prefs_template}" tofile="${prefs_path}" />
        <!-- replace sdk path placeholder token with actual sdk path -->
        <replace file="${prefs_path}" token="sdk_home" value="${sdk_home}" />
        
        <!-- if this is on windows, escape the drive and file separators -->
        <replace file="${prefs_path}" token="\" value="\\" />
        <replace file="${prefs_path}" token=":" value="\:" />
    </target>

    <!-- This target defines the tests that need to be run. -->
    <target name="suite">
        <!-- launch as ui-test ie as a test which needs Eclipse workbench -->
        <ant target="ui-test" antfile="${library-file}" dir="${eclipse.home}">
            <property name="data-dir" value="${test-folder}" />
            <property name="plugin-name" value="${plugin-name}" />
            <property name="classname" value="com.android.ide.eclipse.tests.AllTests" />
            <!-- pass extra vm arg to set sdk_home env and test_data env variable -->
            <property name="extraVMargs" value="-Dtest_data=${test_data}" />
        </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">
    </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}/results">
            <property name="includes" value="com*.xml" />
            <property name="output-file" value="${plugin-name}.xml" />
        </ant>
    </target>
</project>

