<?xml version="1.0" encoding="ISO-8859-1"?>
<!--

    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

-->

<!DOCTYPE project [
<!ENTITY commonSetup SYSTEM "./../../../config/properties.xml">
<!ENTITY commonBuild SYSTEM "./../../../config/common.xml">
<!ENTITY run SYSTEM "./../../../config/run.xml">
<!ENTITY testproperties SYSTEM "./build.properties">
]>

<project name="webcontainer_unittest" default="all" basedir=".">

    &commonSetup;
    &commonBuild;
    &testproperties;
    &run;

    <target name="all" depends="disable-http-service-sso,setup,build,deploy,run,undeploy,restore"/>

    <target name="clean" depends="init-common">
      <antcall target="clean-common"/>
    </target>

    <target name="compile" depends="clean">
        <antcall target="compile-common">
            <param name="src" value="servlet"/>
        </antcall>
    </target>

    <target name="disable-http-service-sso" depends="init-common">
        <antcall target="asadmin-common-ignore-fail">
            <param name="admin.command" value="set" />
            <param name="operand.props"
                   value="${appserver.instance.name}.http-service.sso-enabled=false"/>
        </antcall>
    </target>

    <target name="setup" depends="init-common">
        <antcall target="asadmin-common-ignore-fail">
            <param name="admin.command" value="set" />
            <param name="operand.props"
                   value="${appserver.instance.name}.http-service.virtual-server.server.sso-enabled="/>
        </antcall>
        <antcall target="asadmin-common-ignore-fail">
            <param name="admin.command" value="set" />
            <param name="operand.props"
                   value="${appserver.instance.name}.http-service.sso-enabled=true"/>
        </antcall>
        <antcall target="create-user-common">
            <param name="user" value="${testuser}"/>
            <param name="password" value="${testpassword}"/>
            <param name="groups" value="${testgroup}"/>
        </antcall>
    </target>

    <target name="build" depends="compile">
        <property name="hasWebclient" value="yes"/>
        <antcall target="webclient-war-common">
            <param name="hasWebclient" value="yes"/>
            <param name="webclient.war.classes" value="**/*.class"/>
        </antcall>

        <javac srcdir="." classpath="${env.APS_HOME}/lib/reportbuilder.jar"
               includes="WebTest.java"/>

    </target>

    <target name="build-publish-war" depends="build, publish-war-common" />

    <target name="deploy" depends="init-common">
        <antcall target="deploy-war-common"/>
    </target>

    <target name="run" depends="init-common">
        <java classname="WebTest">
          <arg value="${http.host}"/>
          <arg value="${http.port}"/>
          <arg value="${contextroot}"/>
          <arg value="${testuser}"/>
          <arg value="${testpassword}"/>
          <classpath>
           <pathelement location="${env.APS_HOME}/lib/reportbuilder.jar"/>
           <pathelement location="."/>
         </classpath>
        </java>
    </target>

    <target name="undeploy" depends="init-common">
        <antcall target="undeploy-war-common"/>
    </target>

    <target name="restore" depends="init-common">
        <antcall target="asadmin-common-ignore-fail">
            <param name="admin.command" value="set" />
            <param name="operand.props"
                   value="${appserver.instance.name}.http-service.sso-enabled="/>
        </antcall>
        <antcall target="asadmin-common-ignore-fail">
            <param name="admin.command" value="set" />
            <param name="operand.props"
                   value="${appserver.instance.name}.http-service.virtual-server.server.sso-enabled=false"/>
        </antcall>
        <antcall target="delete-user-common">
            <param name="user" value="${testuser}"/>
        </antcall>
    </target>

    <target name="usage">
        <antcall target="usage-common"/>
    </target>
</project>
