<?xml version="1.0"?>
<!--
  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 name="antunit-base"
         xmlns:cond="antlib:org.apache.tools.ant.types.conditions"
         xmlns:cmp="antlib:org.apache.ant.compress"
         xmlns:au="antlib:org.apache.ant.antunit">

  <property name="input" location="${java.io.tmpdir}/testinput"/>
  <property name="output" location="${java.io.tmpdir}/testoutput"/>

  <target name="tearDown">
    <delete dir="${input}"/>
    <delete dir="${output}"/>
  </target>

  <target name="antunit">
    <antunit xmlns="antlib:org.apache.ant.antunit">
      <plainlistener />
      <file file="${ant.file}" xmlns="antlib:org.apache.tools.ant" />
    </antunit>
  </target>

  <!-- should go into AntUnit -->
  <macrodef name="assertResourceExists">
    <element name="resource" implicit="true"/>
    <sequential>
      <au:assertTrue>
        <cond:resourceexists>
          <resource/>
        </cond:resourceexists>
      </au:assertTrue>
    </sequential>
  </macrodef>
  <macrodef name="assertResourceDoesntExist">
    <element name="resource" implicit="true"/>
    <sequential>
      <au:assertFalse>
        <cond:resourceexists>
          <resource/>
        </cond:resourceexists>
      </au:assertFalse>
    </sequential>
  </macrodef>

  <target name="-detect-zip-usage-of-extra-field">
    <!-- startig with a patch release of Java8
         java.util.zip.ZipEntry#getTime has started to use extended
         timestamp extra fields contained within ZIP archives, which
         leads to the timestamps contained within our tests to depend
         onthe local timezone and the version of Java.
         This target tries to detect whether the newer version is used
         (in which case the pattern including the timezone is
         required).
         The change in OpenJDK is
         http://hg.openjdk.java.net/jdk8u/jdk8u/jdk/rev/90df6756406f
         -->
    <condition property="zip-uses-extra-field">
      <cond:islastmodified datetime="2001-11-19-15:34:20 +0100"
                           pattern="yyyy-MM-dd-HH:mm:ss Z">
        <cmp:zipentry name="asf-logo.gif">
          <file file="../resources/asf-logo.gif.zip"/>
        </cmp:zipentry>
      </cond:islastmodified>
    </condition>
  </target>
  <target name="-zip-with-extra-field"
          depends="-detect-zip-usage-of-extra-field"
          if="zip-uses-extra-field">
    <property name="zip-ts-pattern" value="yyyy-MM-dd-HH:mm:ss Z"/>
    <property name="zip-ts-value" value="2001-11-19-15:34:20 +0100"/>
  </target>
  <target name="-zip-without-extra-field"
          depends="-detect-zip-usage-of-extra-field"
          unless="zip-uses-extra-field">
    <property name="zip-ts-pattern" value="yyyy-MM-dd-HH:mm:ss"/>
    <property name="zip-ts-value" value="2001-11-19-15:34:20"/>
  </target>
  <target name="-set-zip-ts-properties"
          depends="-zip-with-extra-field, -zip-without-extra-field"/>
</project>
