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

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

  <target name="setUp">
    <mkdir dir="${output}"/>
  </target>


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

  <target name="test2">
    <replace file=""/>
  </target>

  <target name="test3">
    <replace file="template.xml"/>
  </target>

  <target name="test4">
    <replace file="template.xml" token=""/>
  </target>

  <target name="test5">
    <replace file="template.xml" 
             token="dont_want_to_really_replace_something"/>
  </target>

  <target name="test6">
    <replace file="template.xml">
      <replacefilter />
    </replace>
  </target>

  <target name="test7">
    <replace file="template.xml">
      <replacefilter token="" />
    </replace>
  </target>

  <target name="test8">
    <replace file="template.xml">
      <replacefilter token="dont_want_to_really_replace_something" />
    </replace>
  </target>

  <target name="test9-setup">
    <!-- this fixing of line endings is necessary because the replace task is transforming the line endings -->
    <!-- of the replacement tokens and values to the platform default -->
    <!-- in certain cases (checkout done with cvs of cygwin, the line endings of the various files do not match-->
    <!-- the system property line.separator -->
    <copy file="replace/source.txt" tofile="${output}/output.txt"/>
    <copy file="replace/value.txt" tofile="${output}/value.txt" />
    <copy file="replace/result.txt" tofile="${output}/result.txt" />
    <fixcrlf srcdir="${output}" includes="*.txt"/>
  </target>
  <target name="test9" depends="test9-setup">
    <loadfile srcFile="${output}/value.txt" property="content"/>
    <replace file="${output}/output.txt" token="@@@Replace this@@@" value="${content}"/>
  </target>

  <target name="lastModifiedSetup">
    <mkdir dir="${output}"/>
    <echo file="${output}/test.txt">Hello, world!</echo>
  </target>
  <target name="testNoPreserve">
    <replace token="world" value="Ant" file="${output}/test.txt"/>
  </target>
  <target name="testPreserve">
    <replace token="world" value="Ant" file="${output}/test.txt"
             preserveLastModified="true"/>
  </target>

</project>
