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

    Copyright (c) 1997, 2018 Oracle and/or its affiliates. All rights reserved.

    This program and the accompanying materials are made available under the
    terms of the Eclipse Public License v. 2.0, which is available at
    http://www.eclipse.org/legal/epl-2.0.

    This Source Code may also be made available under the following Secondary
    Licenses when the conditions for such availability set forth in the
    Eclipse Public License v. 2.0 are satisfied: GNU General Public License,
    version 2 with the GNU Classpath Exception, which is available at
    https://www.gnu.org/software/classpath/license.html.

    SPDX-License-Identifier: EPL-2.0 OR GPL-2.0 WITH Classpath-exception-2.0

-->

<project name="adminweb" default="usage" basedir=".">
    <property file="build.properties"/>
    
 <description>Builds, tests, and runs the GlassFish Admin GUI</description>
<!-- <import file="nbproject/build-impl.xml"/>-->

<target name="usage">
    <echo message="Hello World"/>
</target>
<target name="sun-taskdef">
    <taskdef name="sun-appserv-deploy" classname="org.apache.tools.ant.taskdefs.optional.sun.appserv.DeployTask">
        <classpath>
            <pathelement location="${sun.appserver.antjar}" />
        </classpath>
    </taskdef>
    <taskdef name="sun-appserv-undeploy" classname="org.apache.tools.ant.taskdefs.optional.sun.appserv.UndeployTask">
        <classpath>
            <pathelement location="${sun.appserver.antjar}" />
        </classpath>
    </taskdef>
</target>

<!--<env key="APPCPATH" path="${env.APS_HOME}/lib/testng.jar"/>-->

<path id="path2testng">
    <pathelement location="../lib/testng-5.0-jdk15.jar"/>
</path>
      
    

<path id="class.path">
    <fileset dir="${install.dir}/lib">
        <include name="**/*.jar"/>
    </fileset>      
    <pathelement location="classes"/>
</path>

<path id="test.classpath">
    <!--<fileset dir="${install.dir}/lib">
        <include name="**/*.jar"/>
    </fileset>-->
    <fileset dir="../../lib">
        <include name="**/*.jar"/>
    </fileset>    
    <pathelement location="./classes/test"/>
</path>


<taskdef name="testng"
         classpathref="path2testng"
         classname="org.testng.TestNGAntTask"/>
         

<!-- Generate the TestNG report -->
<target name="report">
    <!--<delete dir="../../test-report"/>-->
    <mkdir dir="../../test-report"/>
    <junitreport todir="../../test-report">
        <fileset dir="../../">
           <include name="**/test-output/**/*.xml"/>
           <exclude name="**/testng-failed.xml"/>
        </fileset>
        <report format="noframes" todir="../test-report"/>
    </junitreport>
</target>
<target name="compile-tests"
            description="compile the test ng example" depends="">
       <delete dir="classes/test" failonerror="false"/>
       <mkdir dir="classes/test"/>
       <javac   debug="true"
              fork="true"
              source="1.5"
              classpathref="test.classpath"
              srcdir="src/test"
              destdir="classes/test"
       />
</target>

<target name="start">
  <echo message="Starting Selenium Server"/>
  <java jar="../../lib/selenium/selenium-server.jar" fork="true">  
      <arg line="-interactive"/>
  </java>
      
</target>

<target  name="run">    
    
    <echo message="=============Starting Selenium TestNG test at \n ${basedir}  ============"/>  
  
    <mkdir dir="../test-output"/>
    <testng outputdir="../test-output"
            classpathref="test.classpath" groups="">
         <classfileset dir="classes/test" includes="**/SeleniumTest.class"/>
        <!--<xmlfileset dir="../../../" includes="testng.xml"/>-->
    </testng>
    
    <!--<antcall target="-post-test-run"/>    -->
    
</target>    

<target name="stop">
        <get taskname="selenium-shutdown"
            src="http://localhost:4444/selenium-server/driver/?cmd=shutDown"
            dest="result.txt"
            ignoreerrors="true"/>
        <echo taskname="selenium-shutdown"
            message="Errors during shutdown are expected"/>
    </target>

<target name="dist">
    <echo message="Save EAR/WAR/JAR file"/>
</target>

<target name="_start-selenium">
 <java jar="../lib/selenium/${selenium-srvr-jar}" fork="true" spawn="true" />
 <antcall target="_run-ua-tests" />
 <get dest="${testreportdir}/results.txt" 
        src="${selenium-srvr-loc}/selenium-server/driver/?cmd=shutDown" />
</target>


    

</project>
