<?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

      https://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="xxx-test" basedir="." default="test1">

  <target name="test1">
    <get/>
  </target>

  <target name="test2">
    <get src=""/>
  </target>

  <target name="test3">
    <get src="" dest=""/>
  </target>

  <target name="test4">
    <get src="" dest=""/>
  </target>

  <target name="test5">
    <get src="https://www.apache.org/" dest=""/>
  </target>

  <target name="test6">
    <get src="https://www.apache.org/" dest="get.tmp" userAgent="Apache Ant/test"/>

    <fileset id="t6" file="get.tmp" />
    <pathconvert property="t6" refid="t6" setonempty="false" />

    <fail message="get failed">
      <condition>
        <not>
          <isset property="t6" />
        </not>
      </condition>
    </fail>
  </target>

  <target name="test7">
     <get src="" dest="" userAgent=""/>
  </target>

  <target name="testUseTimestamp" depends="-90s,-timestamp" />

  <target name="-90s">
    <property name="off" value="-90" />
    <property name="unit" value="second" />
  </target>

  <target name="testUseTomorrow" depends="+1d,-timestamp" />

  <target name="+1d">
    <property name="off" value="1" />
    <property name="unit" value="day" />
  </target>

  <target name="-timestamp">
    <property name="pat" value="yyyyMMddHHmm" />

    <tstamp>
      <format property="dt" pattern="${pat}" offset="${off}" unit="${unit}" />
    </tstamp>

    <touch file="get.tmp" datetime="${dt}" pattern="${pat}" />

    <get src="https://www.w3.org/MarkUp" dest="get.tmp"
         usetimestamp="true" verbose="true" />

    <fileset id="ts" file="get.tmp">
      <date when="equal" datetime="${dt}" pattern="${pat}" />
    </fileset>

    <pathconvert property="ts" refid="ts" setonempty="false" />

    <fail message="get w/ timestamp should have failed.">
      <condition>
        <not>
          <isset property="ts" />
        </not>
      </condition>
    </fail>
  </target>

  <target name="testTwoHeadersAreAddedOK">
    <get src="https://www.apache.org/" dest="get.tmp">
      <header name="header1" value="header1Value"/>
      <header name="header2" value="header2Value"/>
    </get>
  </target>

  <target name="testEmptyHeadersAreNeverAdded">
    <get src="https://www.apache.org/" dest="get.tmp">
      <header name="" value="headerValue"/>
      <header name="header2" value=""/>
    </get>
  </target>

  <target name="testThatWhenMoreThanOneHeaderHaveSameNameOnlyLastOneIsAdded">
    <get src="https://www.apache.org/" dest="get.tmp">
      <header name="header1" value="headerValue1"/>
      <header name="header1" value="headerValue2"/>
      <header name="header1" value="headerValue3"/>
    </get>
  </target>

  <target name="testHeaderSpaceTrimmed">
    <get src="https://www.apache.org/" dest="get.tmp">
      <header name="  header1     " value="  headerValue1  "/>
    </get>
  </target>

  <target name="cleanup">
    <delete>
      <fileset dir="${basedir}" includes="get.tmp" />
    </delete>
  </target>

</project>
