| <?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 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"> |
| <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> |
| |
| <target name="testLongestFilterWins" depends="setUp,ph.defineHelpers"> |
| <mkdir dir="${input}"/> |
| <echo file="${input}/filter.properties"><![CDATA[ |
| a=1 |
| ab=2 |
| abc=3 |
| abcd=4 |
| abcde=5 |
| abcdef=6 |
| abcdefg=7 |
| abcdefgh=8 |
| abcdefghi=9 |
| abcdefghij=10 |
| abcdefghijk=11 |
| abcdefghijkl=12 |
| abcdefghijklm=13 |
| abcdefghijklmn=14 |
| abcdefghijklmno=15 |
| abcdefghijklmnop=16 |
| abcdefghijklmnopq=17 |
| abcdefghijklmnopqr=18 |
| abcdefghijklmnopqrs=19 |
| abcdefghijklmnopqrst=20 |
| abcdefghijklmnopqrstu=21 |
| abcdefghijklmnopqrstuv=22 |
| abcdefghijklmnopqrstuvw=23 |
| abcdefghijklmnopqrstuvwx=24 |
| abcdefghijklmnopqrstuvwxy=25 |
| abcdefghijklmnopqrstuvwxyz=26 |
| A=27 |
| AB=28 |
| ABC=29 |
| ABCD=30 |
| ABCDE=31 |
| ABCDEF=32 |
| ABCDEFG=33 |
| ABCDEFGH=34 |
| ABCDEFGHI=35 |
| ABCDEFGHIJ=36 |
| ABCDEFGHIJK=37 |
| ABCDEFGHIJKL=38 |
| ABCDEFGHIJKLM=39 |
| ABCDEFGHIJKLMN=40 |
| ABCDEFGHIJKLMNO=41 |
| ABCDEFGHIJKLMNOP=42 |
| ABCDEFGHIJKLMNOPQ=43 |
| ABCDEFGHIJKLMNOPQR=44 |
| ABCDEFGHIJKLMNOPQRS=45 |
| ABCDEFGHIJKLMNOPQRST=46 |
| ABCDEFGHIJKLMNOPQRSTU=47 |
| ABCDEFGHIJKLMNOPQRSTUV=48 |
| ABCDEFGHIJKLMNOPQRSTUVW=49 |
| ABCDEFGHIJKLMNOPQRSTUVWX=50 |
| ABCDEFGHIJKLMNOPQRSTUVWXY=51 |
| ABCDEFGHIJKLMNOPQRSTUVWXYZ=52 |
| ]]></echo> |
| <echo file="${output}/text.txt"><![CDATA[ |
| a |
| ab |
| abc |
| abcd |
| abcde |
| abcdef |
| abcdefg |
| abcdefgh |
| abcdefghi |
| abcdefghij |
| abcdefghijk |
| abcdefghijkl |
| abcdefghijklm |
| abcdefghijklmn |
| abcdefghijklmno |
| abcdefghijklmnop |
| abcdefghijklmnopq |
| abcdefghijklmnopqr |
| abcdefghijklmnopqrs |
| abcdefghijklmnopqrst |
| abcdefghijklmnopqrstu |
| abcdefghijklmnopqrstuv |
| abcdefghijklmnopqrstuvw |
| abcdefghijklmnopqrstuvwx |
| abcdefghijklmnopqrstuvwxy |
| abcdefghijklmnopqrstuvwxyz |
| A |
| AB |
| ABC |
| ABCD |
| ABCDE |
| ABCDEF |
| ABCDEFG |
| ABCDEFGH |
| ABCDEFGHI |
| ABCDEFGHIJ |
| ABCDEFGHIJK |
| ABCDEFGHIJKL |
| ABCDEFGHIJKLM |
| ABCDEFGHIJKLMN |
| ABCDEFGHIJKLMNO |
| ABCDEFGHIJKLMNOP |
| ABCDEFGHIJKLMNOPQ |
| ABCDEFGHIJKLMNOPQR |
| ABCDEFGHIJKLMNOPQRS |
| ABCDEFGHIJKLMNOPQRST |
| ABCDEFGHIJKLMNOPQRSTU |
| ABCDEFGHIJKLMNOPQRSTUV |
| ABCDEFGHIJKLMNOPQRSTUVW |
| ABCDEFGHIJKLMNOPQRSTUVWX |
| ABCDEFGHIJKLMNOPQRSTUVWXY |
| ABCDEFGHIJKLMNOPQRSTUVWXYZ |
| ]]></echo> |
| <echo file="${output}/expected.txt"><![CDATA[ |
| 1 |
| 2 |
| 3 |
| 4 |
| 5 |
| 6 |
| 7 |
| 8 |
| 9 |
| 10 |
| 11 |
| 12 |
| 13 |
| 14 |
| 15 |
| 16 |
| 17 |
| 18 |
| 19 |
| 20 |
| 21 |
| 22 |
| 23 |
| 24 |
| 25 |
| 26 |
| 27 |
| 28 |
| 29 |
| 30 |
| 31 |
| 32 |
| 33 |
| 34 |
| 35 |
| 36 |
| 37 |
| 38 |
| 39 |
| 40 |
| 41 |
| 42 |
| 43 |
| 44 |
| 45 |
| 46 |
| 47 |
| 48 |
| 49 |
| 50 |
| 51 |
| 52 |
| ]]></echo> |
| <replace replacefilterresource="${input}/filter.properties"> |
| <file file="${output}/text.txt"/> |
| </replace> |
| <au:assertFilesMatch expected="${output}/expected.txt" |
| actual="${output}/text.txt"/> |
| </target> |
| |
| </project> |