<?xml version="1.0"?>

<project name="copy-test" basedir="." default="test1">

  <target name="test1">
    <copy file="copy.xml" tofile="copytest1.tmp" />
  </target>
 
  <target name="test2">
    <copy file="copy.xml" todir="copytest1dir" overwrite="true"/>
  </target>

  <target name="test3">
    <!-- create an empty file -->
    <touch file="copytest3.tmp"/>
    <!--wait -->
    <sleep seconds="4"/>
    <!-- copy a different file to two places --> 
    <copy file="copy.xml" tofile="copytest3a.tmp" overwrite="true"/>
    <copy file="copy.xml" tofile="copytest3b.tmp" overwrite="true"/>
    <!--wait -->
    <sleep seconds="4"/>
    <!-- copy an old file onto a newer file (should not work) -->
    <copy file="copytest3.tmp" tofile="copytest3b.tmp" />
    <!-- copy an older file onto a new one, should succeed -->
    <copy file="copytest3.tmp" tofile="copytest3c.tmp"
      overwrite="true"
      preservelastmodified="true" />
    <!-- copy a newer file onto an older one (should work) -->
    <copy file="copytest3a.tmp" tofile="copytest3.tmp" 
      preservelastmodified="true" />
    <!-- expected state :
      3a.tmp==3.tmp==copy.xml
      timeof(3a.tmp)==timeof(3.tmp)==now()-4
      sizeof(3c)==0
      timeof(3c.tmp)<timeof(3a.tmp);
      3b.tmp==copy.xml
    -->
  </target>
  
  <target name="test_single_file_fileset">
    <copy tofile="copytest_single_file_fileset.tmp">
      <fileset dir="." includes="copy.xml"/>
    </copy>
  </target>
  
  <target name="testFilterSet">
    <copy file="copy.filterset" tofile="copy.filterset.tmp">
      <filterset>
        <filter token="TITLE" value="Apache Ant Project"/>
      </filterset>
    </copy>
  </target>

  <target name="testFilterChain">
    <copy file="copy.filterset" tofile="copy.filterchain.tmp">
      <filterchain>
        <replacetokens>
          <token key="TITLE" value="Apache Ant Project"/>
        </replacetokens>
      </filterchain>
    </copy>
  </target>

  <target name="cleanup"> 
    <delete file="copytest1.tmp"/>
    <delete file="copytest3.tmp"/>
    <delete file="copytest3a.tmp"/>
    <delete file="copytest3b.tmp"/>
    <delete file="copytest3c.tmp"/>
    <delete file="copytest_single_file_fileset.tmp"/>
    <delete file="copy.filterset.tmp"/>
    <delete file="copy.filterchain.tmp"/>
    <delete dir="copytest1dir"/>
  </target>


</project>
