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

      http://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 default="antunit" xmlns:au="antlib:org.apache.ant.antunit">
  <import file="../antunit-base.xml" />

  <import file="../propertyhelpers.xml" as="ph"/>

  <target name="tearDown" depends="antunit-base.tearDown,ph.tearDown">
    <delete dir="foo"/>
  </target>

  <target name="setUp">
    <mkdir dir="${output}"/>
    <echo file="${output}/text.txt"><![CDATA[
Hello, world!
]]></echo>
  </target>

  <target name="testRCSupport" depends="setUp">
    <replace token="world" value="Ant">
      <file file="${output}/text.txt"/>
    </replace>
    <au:assertResourceContains
       resource="${output}/text.txt" value="Hello, Ant!"/>
  </target>

  <target name="testNestedElementsOfFilter" depends="setUp">
    <replace>
      <file file="${output}/text.txt"/>
      <replacefilter>
        <replacetoken>world</replacetoken>
        <replacevalue>Ant</replacevalue>
      </replacefilter>
    </replace>
    <au:assertResourceContains
       resource="${output}/text.txt" value="Hello, Ant!"/>
  </target>

  <target name="testNoPropertyExpansion" depends="setUp">
    <property name="ant" value="Ant"/>
    <replace>
      <file file="${output}/text.txt"/>
      <replacetoken>world</replacetoken>
      <replacevalue>${ant}</replacevalue>
    </replace>
    <au:assertResourceDoesntContain
       resource="${output}/text.txt" value="Hello, Ant!"/>
  </target>

  <target name="testPropertyExpansion" depends="setUp">
    <property name="ant" value="Ant"/>
    <replace>
      <file file="${output}/text.txt"/>
      <replacetoken>world</replacetoken>
      <replacevalue expandproperties="true">${ant}</replacevalue>
    </replace>
    <au:assertResourceContains
       resource="${output}/text.txt" value="Hello, Ant!"/>
  </target>

  <target name="testNoReplace" depends="setUp">
    <replace token="ant" value="ant" summary="true">
      <file file="${output}/text.txt"/>
    </replace>
    <au:assertLogContains text="Replaced 0 occurrences in 0 files."/>
  </target>

  <target name="testFailOnNoReplace" depends="setUp">
    <au:expectfailure expectedMessage="didn't replace anything">
      <replace token="ant" value="ant" failOnNoReplacements="true">
        <file file="${output}/text.txt"/>
      </replace>
    </au:expectfailure>
  </target>

  <target name="testPropertyFilterResource" depends="setUp,ph.defineHelpers">
    <mkdir dir="foo"/>
    <echo file="foo/foo.properties"><![CDATA[
world=Ant
]]></echo>
    <replace replacefilterresource="${java:foo!foo.properties}">
      <file file="${output}/text.txt"/>
    </replace>
    <au:assertResourceContains
       resource="${output}/text.txt" value="Hello, Ant!"/>
  </target>

</project>
