<?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="pathconvert">

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

    <path id="testpath">
        <pathelement path="${ant.file}" />
    </path>

    <target name="testmap">
        <pathconvert property="result" dirsep="#">
            <path refid="testpath" />
            <map from="${basedir}" to="test" />
        </pathconvert>
    </target>

    <target name="testmapper">
        <pathconvert property="result" dirsep="#">
            <path refid="testpath" />
            <mapper type="glob" from="${basedir}*" to="test*" />
        </pathconvert>
    </target>

    <target name="testnotargetos">
        <pathconvert property="result" refid="testpath" />
    </target>

    <target name="test-nonmatching-mapper" description="test for bug fix bz-62076">
        <mkdir dir="${output}/mapper-source-dir"/>
        <!-- create 2 files, one of which will be matched/included by the globmapper
        later in this target -->
        <touch file="${output}/mapper-source-dir/file1.txt"/>
        <touch file="${output}/mapper-source-dir/file2.log"/>

        <pathconvert property="pc">
            <mappedresources>
                <fileset dir="${output}/mapper-source-dir"/>
                <!-- we intentionally exclude one of the files -->
                <globmapper from="*.log" to="*.txt"/>
            </mappedresources>
        </pathconvert>
    </target>

</project>
