<?xml version="1.0" encoding="utf-8"?>
<!--
   Licensed to the Apache Software Foundation (ASF) under one or more
   contributor license agreements.  See the NOTICE file distributed with
   this work for additional information regarding copyright ownership.
   The ASF licenses this file to You under the Apache License, Version 2.0
   (the "License"); you may not use this file except in compliance with
   the License.  You may obtain a copy of the License at

       http://www.apache.org/licenses/LICENSE-2.0

   Unless required by applicable law or agreed to in writing, software
   distributed under the License is distributed on an "AS IS" BASIS,
   WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
   See the License for the specific language governing permissions and
   limitations under the License.
-->
<project default="antunit" xmlns:au="antlib:org.apache.ant.antunit"
         xmlns:cmp="antlib:org.apache.ant.compress">

  <import file="antunit-base.xml"/>

  <target name="-findAntHomeLib" depends="-useAntHome, -searchAntHomeLib"/>

  <target name="-useAntHome" if="ant.home">
    <property name="ant.home.lib" value="${ant.home}/lib"/>
  </target>

  <target name="-searchAntHomeLib" unless="ant.home">
    <first id="ant-jar">
      <restrict>
        <path path="${java.class.path}"/>
        <name name="**/ant.jar"/>
      </restrict>
    </first>
    <dirname property="ant.home.lib" file="${toString:ant-jar}"/>
  </target>

  <target name="testExtractJars" depends="-findAntHomeLib">
    <mkdir dir="${output}"/>
    <copy todir="${output}">
      <cmp:archives>
        <zips>
          <fileset dir="${ant.home.lib}"
                   includes="ant-*.jar"/>
        </zips>
      </cmp:archives>
    </copy>
    <au:assertFileExists
       file="${output}/org/apache/tools/ant/launch/Launcher.class"/>
    <au:assertFileExists
       file="${output}/org/apache/tools/ant/BuildFileTest.class"/>
  </target>

  <target name="testMixingFormats" depends="-findAntHomeLib">
    <mkdir dir="${output}"/>
    <tar destfile="${output}/test.tar.gz" compression="gzip">
      <fileset file="${ant.file}"/>
    </tar>
    <cmp:cpio destfile="${output}/test.cpio">
      <cmp:arfileset file="${ant.file}" prefix="cpio/"/>
    </cmp:cpio>
    <copy todir="${output}">
      <cmp:archives>
        <zips>
          <fileset dir="${ant.home.lib}"
                   includes="ant-launcher.jar"/>
        </zips>
        <tars>
          <gzipresource>
            <file file="${output}/test.tar.gz"/>
          </gzipresource>
        </tars>
        <ars>
          <file file="../resources/asf-logo.gif.ar"/>
        </ars>
        <cpios>
          <fileset file="${output}/test.cpio"/>
        </cpios>
      </cmp:archives>
    </copy>
    <au:assertFileExists
       file="${output}/org/apache/tools/ant/launch/Launcher.class"/>
    <basename property="filename" file="${ant.file}"/>
    <au:assertFileExists file="${output}/${filename}"/>
    <au:assertFilesMatch
       actual="${output}/asf-logo.gif"
       expected="../resources/asf-logo.gif"
       />
    <au:assertFileExists file="${output}/cpio/${filename}"/>
  </target>

  <target name="testArj">
    <mkdir dir="${output}"/>
    <copy todir="${output}">
      <cmp:archives>
        <arjs>
          <file file="../resources/asf-logo.gif.arj"/>
        </arjs>
      </cmp:archives>
    </copy>
    <au:assertFilesMatch
       actual="${output}/asf-logo.gif"
       expected="../resources/asf-logo.gif"
       />
  </target>

  <target name="testDump">
    <mkdir dir="${output}"/>
    <copy todir="${output}">
      <cmp:archives>
        <dumps>
          <file file="../resources/asf-logo.gif.dump"/>
        </dumps>
      </cmp:archives>
    </copy>
    <au:assertFilesMatch
       actual="${output}/asf-logo.gif"
       expected="../resources/asf-logo.gif"
       />
  </target>

  <target name="test7z">
    <mkdir dir="${output}"/>
    <copy todir="${output}">
      <cmp:archives>
        <sevenzs>
          <file file="../resources/asf-logo.gif.7z"/>
        </sevenzs>
      </cmp:archives>
    </copy>
    <au:assertFilesMatch
       actual="${output}/asf-logo.gif"
       expected="../resources/asf-logo.gif"
       />
  </target>

  <target name="testReference" depends="-findAntHomeLib">
    <mkdir dir="${output}"/>
    <cmp:archives id="ref">
      <zips>
        <fileset dir="${ant.home.lib}"
                 includes="ant-launcher.jar"/>
      </zips>
    </cmp:archives>
    <copy todir="${output}">
      <cmp:archives refid="ref"/>
    </copy>
    <au:assertFileExists
       file="${output}/org/apache/tools/ant/launch/Launcher.class"/>
  </target>

  <target name="testCircularReference">
    <au:expectfailure
       message="This data type contains a circular reference.">
      <copy todir="${output}">
        <cmp:archives id="ref">
          <zips>
            <cmp:archives refid="ref"/>
          </zips>
        </cmp:archives>
      </copy>
    </au:expectfailure>
    <au:expectfailure
       message="This data type contains a circular reference.">
      <copy todir="${output}">
        <cmp:archives refid="ref"/>
      </copy>
    </au:expectfailure>
  </target>    

  <!-- works but takes a veeeeeery long time -->
  <target name="skip-testResourcesManualExample">
    <mkdir dir="${output}"/>
    <copy todir="${output}">
      <cmp:archives>
        <zips>
          <restrict>
            <path path="${java.class.path}"/>
            <name name="*.jar"/>
          </restrict>
        </zips>
      </cmp:archives>
    </copy>
    <au:assertFileExists
       file="${output}/org/apache/tools/ant/launch/Launcher.class"/>
  </target>

  <target name="testZipManualExample">
    <mkdir dir="${output}/control"/>
    <mkdir dir="${input}/htdocs/manual"/>
    <touch file="${input}/htdocs/manual/foo.txt"/>
    <cmp:zip destfile="${input}/examples-a.zip">
      <fileset dir="." includes="*.xml"/>
    </cmp:zip>
    <cmp:zip destfile="${output}/manual.zip">
      <mappedresources>
        <fileset dir="${input}/htdocs/manual"/>
        <globmapper from="*" to="docs/user-guide/*"/>
      </mappedresources>
      <cmp:archives>
        <zips>
          <fileset dir="${input}" includes="examples*.zip"/>
        </zips>
      </cmp:archives>
    </cmp:zip>
    <cmp:unzip src="${output}/manual.zip" dest="${output}/control"/>
    <au:assertFileExists file="${output}/control/archives-test.xml"/>
    <au:assertFileExists file="${output}/control/docs/user-guide/foo.txt"/>
  </target>

</project>
