<project name="user" default="build" basedir=".">
  <property name="gwt.root" location=".." />
  <property name="project.tail" value="user" />
  <property name="test.args" value="" />
  <property name="gwt.junit.emmatestcase.includes" value="**/*Suite.class,com/google/gwt/dev/jjs/test/*Test.class"/>
  <import file="${gwt.root}/common.ant.xml" />

  <!--
    Default hosted mode test cases
  -->
  <fileset id="default.hosted.tests" dir="${javac.junit.out}" 
       includes="${gwt.junit.testcase.includes}" />

  <fileset id="default.emma.tests" dir="${javac.junit.out}" 
       includes="**/EmmaClassLoadingTest.class" />

  <fileset id="default.hosted.emma.tests" dir="${javac.junit.out}" 
      excludes="**/CoverageTest.class,**/CompilerSuite.class" includes="${gwt.junit.emmatestcase.includes}" />
  <!-- everything succeeds except CoverageTest.java. It fails due to a javac bug in sun/OpenJDK's Java. See the file contents for details -->

  <fileset id="default.noserver.tests" dir="${javac.junit.out}" includes="**/IFrameLinkerTest.class" />
  <!-- Only IFrameLinker actually supports -noserver mode; run the other linker tests if and when they are supported -->

  <!--
    Default web mode test cases
  -->
  <fileset id="default.web.tests" dir="${javac.junit.out}"
         includes="${gwt.junit.testcase.includes}" />

  <!-- Platform shouldn't matter here, just picking one -->
  <property.ensure name="gwt.dev.jar" location="${gwt.build.lib}/gwt-dev-linux.jar" />

  <target name="compile" description="Compile all class files">
    <mkdir dir="${javac.out}" />
    <gwt.javac>
      <classpath>
        <pathelement location="${gwt.tools.lib}/tomcat/servlet-api-2.5.jar" />
        <pathelement location="${gwt.tools.lib}/junit/junit-3.8.1.jar" />
        <pathelement location="${gwt.tools.lib}/jfreechart/jfreechart-1.0.3.jar" />
        <pathelement location="${gwt.tools.lib}/selenium/selenium-java-client-driver.jar" />
        <pathelement location="${gwt.tools.lib}/w3c/sac/sac-1.3.jar" />
        <pathelement location="${gwt.tools.lib}/w3c/flute/flute-1.3.jar" />
        <pathelement location="${gwt.dev.jar}" />
      </classpath>
    </gwt.javac>

    <!-- Build the BrowserManagerServer_Stub to allow remote browser testing -->
    <rmic base="${javac.out}"
                  classname="com.google.gwt.junit.remote.BrowserManagerServer"
                  stubversion="1.2"/>
  </target>

  <!--
    Compile test code for dev/core to pick up TypeOracleTestUtils and others.
  -->
  <target name="compile.dev.core.tests" description="Compiles test dependencies in dev/core">
    <gwt.ant dir="../dev/core" target="compile.tests" />
  </target>

  <target name="compile.tests" depends="compile.dev.core.tests" description="Compiles the test code for this project">
    <mkdir dir="${javac.junit.out}" />
    <gwt.javac srcdir="test" excludes="com/google/gwt/langtest/**" destdir="${javac.junit.out}">
      <classpath>
        <pathelement location="${javac.out}" />
        <pathelement location="${gwt.build}/out/dev/core/bin-test" />
        <pathelement location="${gwt.tools.lib}/tomcat/servlet-api-2.5.jar" />
        <pathelement location="${gwt.tools.lib}/junit/junit-3.8.1.jar" />
        <pathelement location="${gwt.tools.lib}/selenium/selenium-java-client-driver.jar" />
        <pathelement location="${gwt.dev.jar}" />
      </classpath>
    </gwt.javac>
  </target>

  <target name="build" depends="compile" description="Build and package this project">
    <mkdir dir="${gwt.build.lib}" />
    <gwt.jar>
      <fileset dir="src" excludes="**/package.html" />
      <fileset dir="super" excludes="**/package.html" />
      <fileset dir="${javac.out}" />
      <zipfileset src="${gwt.tools.lib}/tomcat/servlet-api-2.5.jar" />
      <zipfileset src="${gwt.tools.lib}/w3c/sac/sac-1.3.jar" />
      <zipfileset src="${gwt.tools.lib}/w3c/flute/flute-1.3.jar" />
    </gwt.jar>
  </target>

  <target name="checkstyle" description="Static analysis of source">
    <gwt.checkstyle>
      <fileset dir="src" />
      <fileset dir="super/com/google/gwt/emul" />
      <fileset dir="super/com/google/gwt/junit/translatable" />
    </gwt.checkstyle>
  </target>

  <target name="remoteweb-test" description="Run a remoteweb test at the given host and path" if="gwt.remote.browsers">
    <echo message="Performing remote browser testing at ${gwt.remote.browsers}" />
    <gwt.junit test.args="${test.args} -out www -remoteweb ${gwt.remote.browsers}" test.out="${junit.out}/remoteweb" test.cases="default.web.tests" >
      <extraclasspaths>
        <pathelement location="${gwt.build}/out/dev/core/bin-test" />
      </extraclasspaths>
    </gwt.junit>
  </target>

  <target name="selenium-test" description="Run a remote test using Selenium RC test at the given host and path" if="gwt.selenium.hosts">
    <echo message="Performing remote browser testing using Selenium RC at ${gwt.selenium.hosts}" />
    <gwt.junit test.args="${test.args} -out www -selenium ${gwt.selenium.hosts}" test.out="${junit.out}/selenium" test.cases="default.web.tests" >
      <extraclasspaths>
        <pathelement location="${gwt.build}/out/dev/core/bin-test" />
      </extraclasspaths>
    </gwt.junit>
  </target>

  <target name="test.hosted.emma" depends="compile, compile.tests" description="Run all hosted-mode tests in emma mode.">
    <gwt.junit test.args="${test.args}" test.out="${junit.out}/${build.host.platform}-hosted-mode-emma" test.cases="default.hosted.emma.tests" >
      <extraclasspaths>
        <pathelement location="${gwt.build}/out/dev/core/bin-test" />
        <pathelement location="${gwt.tools.redist}/emma/emma.jar" />
      </extraclasspaths>
    </gwt.junit>
  </target>

  <target name="test.hosted" depends="compile, compile.tests" description="Run only hosted-mode tests for this project.">
    <gwt.junit test.args="${test.args}" test.out="${junit.out}/${build.host.platform}-hosted-mode" test.cases="default.hosted.tests" >
      <extraclasspaths>
        <pathelement location="${gwt.build}/out/dev/core/bin-test" />
      </extraclasspaths>
    </gwt.junit>
  </target>

  <target name="test.noserver" depends="compile, compile.tests" description="Run noserver hosted-mode tests for this project.">
    <gwt.junit test.args="${test.args}" test.out="${junit.out}/${build.host.platform}-noserver-mode" test.cases="default.noserver.tests">
      <extraclasspaths>
        <pathelement location="${gwt.build}/out/dev/core/bin-test" />
      </extraclasspaths>
    </gwt.junit>
  </target>

  <target name="test.web" depends="compile, compile.tests" description="Run only web-mode tests for this project.">
    <gwt.junit test.args="${test.args} -out www -web" test.out="${junit.out}/${build.host.platform}-web-mode" test.cases="default.web.tests">
      <extraclasspaths>
        <pathelement location="${gwt.build}/out/dev/core/bin-test" />
      </extraclasspaths>
    </gwt.junit>
  </target>

  <target name="test.web.disableClassMetadata" depends="compile, compile.tests" description="Run only web-mode tests for this project.">
    <gwt.junit test.args="${test.args} -XdisableClassMetadata -out www -web" test.out="${junit.out}/${build.host.platform}-web-mode-disableClassMetadata" test.cases="default.web.tests" >
      <extraclasspaths>
        <pathelement location="${gwt.build}/out/dev/core/bin-test" />
      </extraclasspaths>
    </gwt.junit>
  </target>

  <target name="test.web.draft" depends="compile, compile.tests" description="Run only web-mode tests for this project.">
    <gwt.junit test.args="${test.args} -draftCompile -out www -web" test.out="${junit.out}/${build.host.platform}-web-mode-draft" test.cases="default.web.tests" >
      <extraclasspaths>
        <pathelement location="${gwt.build}/out/dev/core/bin-test" />
      </extraclasspaths>
    </gwt.junit>
  </target>

  <target name="test" depends="compile, compile.tests" description="Run hosted-mode, web-mode, remoteweb, and selenium tests for this project.">
    <property.ensure name="distro.built" location="${gwt.dev.staging.jar}" message="GWT must be built before performing any tests.  This can be fixed by running ant in the ${gwt.root} directory." />

    <!--
      Run hosted and web mode tests for the platform on which this build
      is executing
    -->
    <limit failonerror="true" hours="2">
    <parallel threadsPerProcessor="${gwt.threadsPerProcessor}">
      <!-- selenium-test is a no-op unless gwt.selenium.hosts is defined -->
      <antcall target="selenium-test"/>
      <!-- remoteweb-test is a no-op unless gwt.remote.browsers is defined -->
      <antcall target="remoteweb-test"/>
      <antcall target="test.hosted"/>
      <antcall target="test.hosted.emma"/>
      <antcall target="test.noserver"/>
      <antcall target="test.web"/>
      <antcall target="test.web.disableClassMetadata"/>
      <antcall target="test.web.draft"/>
    </parallel>
    </limit>
  </target>

  <target name="clean" description="Cleans this project's intermediate and output files">
    <delete dir="${project.build}" />
    <delete file="${project.lib}" />
  </target>
  <target name="presubmit" depends="test, checkstyle" description="runs the gwt api checker, user checkstyle, and user tests">
    <gwt.ant dir=".." target="apicheck-nobuild"/>
  </target>
</project>
