<?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>
  <path id="test-classes">
    <pathelement path="${java.class.path}"/>
  </path>
  
  <target name="simple">
    <presetdef name="my.echo">
      <echo message="Hello world"/>
    </presetdef>
    <my.echo/>
  </target>

  <target name="text">
    <presetdef name="my.echo">
      <echo>Inner Text</echo>
    </presetdef>
    <my.echo/>
  </target>

  <target name="uri">
    <presetdef name="echo" uri="abc">
      <echo message="Hello world"/>
    </presetdef>
    <x:echo xmlns:x="abc"/>
  </target>

  <target name="defaulttest">
    <taskdef name="defaulttest"
             classname="org.apache.tools.ant.taskdefs.PreSetDefTest$DefaultTest"
             classpathref="test-classes"/>
    <presetdef name="d">
      <defaulttest attribute="true"/>
    </presetdef>
    <d attribute="false"/>
  </target>

  <target name="doubledefault">
    <taskdef name="defaulttest"
             classname="org.apache.tools.ant.taskdefs.PreSetDefTest$DefaultTest"
             classpathref="test-classes"/>
    <presetdef name="d">
      <defaulttest attribute="true"/>
    </presetdef>
    <presetdef name="dd">
      <d attribute="false"/>
    </presetdef>
    <dd/>
    <dd attribute="true"/>
  </target>

  <target name="antTypeTest">
    <taskdef name="anttypetest"
             classname="org.apache.tools.ant.taskdefs.PreSetDefTest$AntTypeTest"
             classpathref="test-classes"/>
    <presetdef name="java.fileset">
      <fileset>
        <include name="**/*.java"/>
      </fileset>
    </presetdef>
    
    <anttypetest>
      <fileset ant-type="java.fileset" dir="."/>
      <configured ant-type="java.fileset" dir="."/>
    </anttypetest>
  </target>

  <target name="text.optional">
    <presetdef name="echo.mytext">
      <echo>MyText</echo>
    </presetdef>
    <echo.mytext/>
    <echo.mytext>override text</echo.mytext>
  </target>

  <target name="element.order">
    <presetdef name="el.order">
      <sequential>
        <echo>Line 1</echo>
      </sequential>
    </presetdef>
    <el.order>
      <echo>Line 2</echo>
    </el.order>
  </target>

  <target name="element.order2">
    <presetdef name="el.order">
      <sequential>
        <echo>Line 1</echo>
      </sequential>
    </presetdef>
    <presetdef name="el.order2">
      <el.order>
        <echo>Line 2</echo>
      </el.order>
    </presetdef>
    <el.order2>
      <echo>Line 3</echo>
    </el.order2>
  </target>

  <target name="correct_taskname_badattr">
    <presetdef name="mytask">
      <javac srcdir="whatever"/>
    </presetdef>

    <javac srcdir="whatever" badattr="whatever"/>
  </target>

  <target name="correct_taskname_badel">
    <presetdef name="mytask">
      <javac srcdir="whatever"/>
    </presetdef>

    <javac srcdir="whatever">
      <badel/>
    </javac>
  </target>

  <target name="presetdef-with-nested-element-twice">
    <copy todir=".">
      <fileset dir="." includes="nonexistent"/>
    </copy>
    <presetdef name="copy">
      <copy verbose="true"/>
    </presetdef>
  </target>
</project>
