@@ -0,0 +1,43 @@ | |||||
*.bat eol=crlf | |||||
*.bz2 binary | |||||
*.cmd eol=crlf | |||||
*.css text | |||||
*.dtd text | |||||
*.g text | |||||
*.gif binary | |||||
*.gz binary | |||||
*.html text diff=html | |||||
*.ico binary | |||||
*.inc text | |||||
*.jar binary | |||||
*.jpg binary | |||||
*.jsp text | |||||
*.md text | |||||
*.md5 text | |||||
*.md5sum text | |||||
*.mf text | |||||
*.pl text diff=perl | |||||
*.properties text | |||||
*.py text diff=python | |||||
*.result text | |||||
*.sample text | |||||
*.sh eol=lf | |||||
*.tar binary | |||||
*.test text | |||||
*.txt text | |||||
*.wxs text | |||||
*.xml text | |||||
*.xsd text | |||||
*.xsl text | |||||
*.zip binary | |||||
.gitattributes text | |||||
.gitignore text | |||||
CONTRIBUTORS text | |||||
INSTALL text | |||||
KEY text | |||||
LICENSE text | |||||
NOTICE text | |||||
README text | |||||
ReleaseInstructions text | |||||
STATUS text | |||||
WHATSNEW text |
@@ -1,29 +1,29 @@ | |||||
*.el | |||||
*.ipr | |||||
*.iws | |||||
*.pif | |||||
.ant.properties | |||||
.classpath | |||||
.project | |||||
.settings | |||||
bin | |||||
apache-ant-1.* | |||||
bootstrap | |||||
build | |||||
dist | |||||
distribution | |||||
java-repository | |||||
patch.tar.gz | |||||
patch.txt | |||||
target | |||||
velocity.log* | |||||
lib/optional/*.jar | |||||
src/tests/antunit/core/output | |||||
.idea | |||||
*.iml | |||||
/src/GPATH | |||||
/src/GRTAGS | |||||
/src/GSYMS | |||||
/src/GTAGS | |||||
/log.xml | |||||
lib/optional/license.txt | |||||
*.el | |||||
*.ipr | |||||
*.iws | |||||
*.pif | |||||
.ant.properties | |||||
.classpath | |||||
.project | |||||
.settings | |||||
bin | |||||
apache-ant-1.* | |||||
bootstrap | |||||
build | |||||
dist | |||||
distribution | |||||
java-repository | |||||
patch.tar.gz | |||||
patch.txt | |||||
target | |||||
velocity.log* | |||||
lib/optional/*.jar | |||||
src/tests/antunit/core/output | |||||
.idea | |||||
*.iml | |||||
/src/GPATH | |||||
/src/GRTAGS | |||||
/src/GSYMS | |||||
/src/GTAGS | |||||
/log.xml | |||||
lib/optional/license.txt |
@@ -1,71 +1,71 @@ | |||||
<?xml version="1.0" encoding="UTF-8"?> | |||||
<!-- | |||||
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. | |||||
--> | |||||
<!-- | |||||
This POM has been created manually by the Ant Development Team. | |||||
Please contact us if you are not satisfied with the data contained in this POM. | |||||
URL : http://ant.apache.org | |||||
--> | |||||
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" | |||||
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd"> | |||||
<parent> | |||||
<groupId>org.apache.ant</groupId> | |||||
<artifactId>ant-parent</artifactId> | |||||
<relativePath>../pom.xml</relativePath> | |||||
<version>1.9.5-SNAPSHOT</version> | |||||
</parent> | |||||
<modelVersion>4.0.0</modelVersion> | |||||
<url>http://ant.apache.org/</url> | |||||
<groupId>org.apache.ant</groupId> | |||||
<artifactId>ant-junit4</artifactId> | |||||
<version>1.9.5-SNAPSHOT</version> | |||||
<name>Apache Ant + JUnit 4</name> | |||||
<description>contains JUnit 4.x support</description> | |||||
<dependencies> | |||||
<dependency> | |||||
<groupId>org.apache.ant</groupId> | |||||
<artifactId>ant</artifactId> | |||||
<version>1.9.5-SNAPSHOT</version> | |||||
<scope>compile</scope> | |||||
</dependency> | |||||
<dependency> | |||||
<groupId>junit</groupId> | |||||
<artifactId>junit</artifactId> | |||||
<version>4.11</version> | |||||
<scope>compile</scope> | |||||
</dependency> | |||||
</dependencies> | |||||
<build> | |||||
<plugins> | |||||
<plugin> | |||||
<groupId>org.apache.maven.plugins</groupId> | |||||
<artifactId>maven-compiler-plugin</artifactId> | |||||
<configuration> | |||||
<includes> | |||||
<include>org/apache/tools/ant/taskdefs/optional/junit/JUnit4TestMethodAdapter*</include> | |||||
<include>org/apache/tools/ant/taskdefs/optional/junit/CustomJUnit4TestAdapterCache*</include> | |||||
</includes> | |||||
</configuration> | |||||
</plugin> | |||||
</plugins> | |||||
<sourceDirectory>../../../../src/main</sourceDirectory> | |||||
<testSourceDirectory>../../../../src/testcases</testSourceDirectory> | |||||
<outputDirectory>../../../../target/${project.artifactId}/classes</outputDirectory> | |||||
<testOutputDirectory>../../../../target/${project.artifactId}/testcases</testOutputDirectory> | |||||
<directory>../../../../target/${project.artifactId}</directory> | |||||
</build> | |||||
</project> | |||||
<?xml version="1.0" encoding="UTF-8"?> | |||||
<!-- | |||||
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. | |||||
--> | |||||
<!-- | |||||
This POM has been created manually by the Ant Development Team. | |||||
Please contact us if you are not satisfied with the data contained in this POM. | |||||
URL : http://ant.apache.org | |||||
--> | |||||
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" | |||||
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd"> | |||||
<parent> | |||||
<groupId>org.apache.ant</groupId> | |||||
<artifactId>ant-parent</artifactId> | |||||
<relativePath>../pom.xml</relativePath> | |||||
<version>1.9.5-SNAPSHOT</version> | |||||
</parent> | |||||
<modelVersion>4.0.0</modelVersion> | |||||
<url>http://ant.apache.org/</url> | |||||
<groupId>org.apache.ant</groupId> | |||||
<artifactId>ant-junit4</artifactId> | |||||
<version>1.9.5-SNAPSHOT</version> | |||||
<name>Apache Ant + JUnit 4</name> | |||||
<description>contains JUnit 4.x support</description> | |||||
<dependencies> | |||||
<dependency> | |||||
<groupId>org.apache.ant</groupId> | |||||
<artifactId>ant</artifactId> | |||||
<version>1.9.5-SNAPSHOT</version> | |||||
<scope>compile</scope> | |||||
</dependency> | |||||
<dependency> | |||||
<groupId>junit</groupId> | |||||
<artifactId>junit</artifactId> | |||||
<version>4.11</version> | |||||
<scope>compile</scope> | |||||
</dependency> | |||||
</dependencies> | |||||
<build> | |||||
<plugins> | |||||
<plugin> | |||||
<groupId>org.apache.maven.plugins</groupId> | |||||
<artifactId>maven-compiler-plugin</artifactId> | |||||
<configuration> | |||||
<includes> | |||||
<include>org/apache/tools/ant/taskdefs/optional/junit/JUnit4TestMethodAdapter*</include> | |||||
<include>org/apache/tools/ant/taskdefs/optional/junit/CustomJUnit4TestAdapterCache*</include> | |||||
</includes> | |||||
</configuration> | |||||
</plugin> | |||||
</plugins> | |||||
<sourceDirectory>../../../../src/main</sourceDirectory> | |||||
<testSourceDirectory>../../../../src/testcases</testSourceDirectory> | |||||
<outputDirectory>../../../../target/${project.artifactId}/classes</outputDirectory> | |||||
<testOutputDirectory>../../../../target/${project.artifactId}/testcases</testOutputDirectory> | |||||
<directory>../../../../target/${project.artifactId}</directory> | |||||
</build> | |||||
</project> |
@@ -0,0 +1 @@ | |||||
input.stdin text |
@@ -1,9 +1,9 @@ | |||||
#hebrew shalom olam (hello world) | |||||
text.hebrew=\u05e9\u05dc\u05d5\u05dd \u05e2\u05d5\u05dc\u05dd | |||||
#goethe gingko biloba | |||||
text.german.1=Sp\u00fcrst du nicht an meinen Liedern, | |||||
text.german.2=Da\u00df ich eins und doppelt bin ? | |||||
# Francois Villon Ballade des Pendus | |||||
text.french=Fr\u00e8res humains qui apr\u00e8s nous vivez | |||||
# Usual IT example | |||||
text.basic.latin=Hello World | |||||
#hebrew shalom olam (hello world) | |||||
text.hebrew=\u05e9\u05dc\u05d5\u05dd \u05e2\u05d5\u05dc\u05dd | |||||
#goethe gingko biloba | |||||
text.german.1=Sp\u00fcrst du nicht an meinen Liedern, | |||||
text.german.2=Da\u00df ich eins und doppelt bin ? | |||||
# Francois Villon Ballade des Pendus | |||||
text.french=Fr\u00e8res humains qui apr\u00e8s nous vivez | |||||
# Usual IT example | |||||
text.basic.latin=Hello World |
@@ -1,9 +1,9 @@ | |||||
#hebrew shalom olam (hello world) | |||||
text.hebrew=שלום עולם | |||||
#goethe gingko biloba | |||||
text.german.1=Spürst du nicht an meinen Liedern, | |||||
text.german.2=Daß ich eins und doppelt bin ? | |||||
# Francois Villon Ballade des Pendus | |||||
text.french=Frères humains qui après nous vivez | |||||
# Usual IT example | |||||
text.basic.latin=Hello World | |||||
#hebrew shalom olam (hello world) | |||||
text.hebrew=שלום עולם | |||||
#goethe gingko biloba | |||||
text.german.1=Spürst du nicht an meinen Liedern, | |||||
text.german.2=Daß ich eins und doppelt bin ? | |||||
# Francois Villon Ballade des Pendus | |||||
text.french=Frères humains qui après nous vivez | |||||
# Usual IT example | |||||
text.basic.latin=Hello World |
@@ -1,19 +1,19 @@ | |||||
<project name="blabla" default="doit"> | |||||
<target name="blabla"> | |||||
<exec executable="sh"> | |||||
<arg value="blabla.sh" /> | |||||
</exec> | |||||
</target> | |||||
<target name="doit"> | |||||
<antcall target="blabla"/> | |||||
<antcall target="blabla"/> | |||||
<antcall target="blabla"/> | |||||
<antcall target="blabla"/> | |||||
<antcall target="blabla"/> | |||||
<antcall target="blabla"/> | |||||
<antcall target="blabla"/> | |||||
<antcall target="blabla"/> | |||||
<antcall target="blabla"/> | |||||
<antcall target="blabla"/> | |||||
</target> | |||||
</project> | |||||
<project name="blabla" default="doit"> | |||||
<target name="blabla"> | |||||
<exec executable="sh"> | |||||
<arg value="blabla.sh" /> | |||||
</exec> | |||||
</target> | |||||
<target name="doit"> | |||||
<antcall target="blabla"/> | |||||
<antcall target="blabla"/> | |||||
<antcall target="blabla"/> | |||||
<antcall target="blabla"/> | |||||
<antcall target="blabla"/> | |||||
<antcall target="blabla"/> | |||||
<antcall target="blabla"/> | |||||
<antcall target="blabla"/> | |||||
<antcall target="blabla"/> | |||||
<antcall target="blabla"/> | |||||
</target> | |||||
</project> |
@@ -0,0 +1,2 @@ | |||||
ant eol=lf | |||||
anrRun eol=lf |
@@ -0,0 +1 @@ | |||||
utf-16.* binary |
@@ -1,125 +1,125 @@ | |||||
<?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 name="get-test" default="antunit" xmlns:au="antlib:org.apache.ant.antunit"> | |||||
<import file="../antunit-base.xml" /> | |||||
<property name="location" value="http://ant.apache.org/webtest/gettest" /> | |||||
<target name="setUp"> | |||||
<mkdir dir="${output}" /> | |||||
</target> | |||||
<target name="testSeeOtherRedirect"> | |||||
<get src="${location}/other.txt" dest="${output}/other.tmp"/> | |||||
<au:assertTrue> | |||||
<resourcecount count="1"> | |||||
<restrict> | |||||
<file file="${output}/other.tmp" /> | |||||
<contains text="seeother redirect succeeded" /> | |||||
</restrict> | |||||
</resourcecount> | |||||
</au:assertTrue> | |||||
<au:assertLogContains text="other.txt moved to http" /> | |||||
</target> | |||||
<target name="testPermanentRedirect"> | |||||
<get src="${location}/permanent.txt" dest="${output}/permanent.tmp"/> | |||||
<au:assertTrue> | |||||
<resourcecount count="1"> | |||||
<restrict> | |||||
<file file="${output}/permanent.tmp" /> | |||||
<contains text="permanent redirect succeeded" /> | |||||
</restrict> | |||||
</resourcecount> | |||||
</au:assertTrue> | |||||
<au:assertLogContains text="permanent.txt permanently moved to http" /> | |||||
</target> | |||||
<target name="testTemporaryRedirect"> | |||||
<get src="${location}/temp.txt" dest="${output}/temp.txt"/> | |||||
<au:assertTrue> | |||||
<resourcecount count="1"> | |||||
<restrict> | |||||
<file file="${output}/temp.txt" /> | |||||
<contains text="temporary redirect succeeded" /> | |||||
</restrict> | |||||
</resourcecount> | |||||
</au:assertTrue> | |||||
<au:assertLogContains text="temp.txt moved to http" /> | |||||
</target> | |||||
<target name="testStatusCode307Redirect"> | |||||
<get src="${location}/307.txt" dest="${output}/307.txt"/> | |||||
<au:assertTrue> | |||||
<resourcecount count="1"> | |||||
<restrict> | |||||
<file file="${output}/307.txt" /> | |||||
<contains text="307 status code redirect succeeded" /> | |||||
</restrict> | |||||
</resourcecount> | |||||
</au:assertTrue> | |||||
<au:assertLogContains text="307.txt moved to http" /> | |||||
</target> | |||||
<target name="test5LevelsOfRedirect"> | |||||
<get src="${location}/redir5.txt" dest="${output}/redir5.tmp"/> | |||||
<au:assertTrue> | |||||
<resourcecount count="1"> | |||||
<restrict> | |||||
<file file="${output}/redir5.tmp" /> | |||||
<contains text="5 levels of redirect succeeded" /> | |||||
</restrict> | |||||
</resourcecount> | |||||
</au:assertTrue> | |||||
<au:assertLogContains text="redir5.txt moved to http" /> | |||||
<au:assertLogContains text="redir5-4.txt moved to http" /> | |||||
</target> | |||||
<target name="testInfiniteRedirect"> | |||||
<au:expectfailure expectedmessage="More than 25 times redirected, giving up"> | |||||
<get src="${location}/infinite.txt" dest="${output}/infinite.tmp"/> | |||||
</au:expectfailure> | |||||
</target> | |||||
<target name="testNestedResources"> | |||||
<get dest="${output}/downloads"> | |||||
<url url="http://ant.apache.org/index.html"/> | |||||
<url url="http://ant.apache.org/faq.html"/> | |||||
</get> | |||||
<au:assertFileExists file="${output}/downloads/index.html"/> | |||||
<au:assertFileExists file="${output}/downloads/faq.html"/> | |||||
</target> | |||||
<target name="XtestRelativeRedirect"> | |||||
<get src="${location}/local.cgi" dest="${output}/other.tmp"/> | |||||
<au:assertTrue> | |||||
<resourcecount count="1"> | |||||
<restrict> | |||||
<file file="${output}/other.tmp" /> | |||||
<contains text="local redirect succeeded"/> | |||||
</restrict> | |||||
</resourcecount> | |||||
</au:assertTrue> | |||||
<au:assertLogContains text="local.cgi moved to http" /> | |||||
</target> | |||||
</project> | |||||
<?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 name="get-test" default="antunit" xmlns:au="antlib:org.apache.ant.antunit"> | |||||
<import file="../antunit-base.xml" /> | |||||
<property name="location" value="http://ant.apache.org/webtest/gettest" /> | |||||
<target name="setUp"> | |||||
<mkdir dir="${output}" /> | |||||
</target> | |||||
<target name="testSeeOtherRedirect"> | |||||
<get src="${location}/other.txt" dest="${output}/other.tmp"/> | |||||
<au:assertTrue> | |||||
<resourcecount count="1"> | |||||
<restrict> | |||||
<file file="${output}/other.tmp" /> | |||||
<contains text="seeother redirect succeeded" /> | |||||
</restrict> | |||||
</resourcecount> | |||||
</au:assertTrue> | |||||
<au:assertLogContains text="other.txt moved to http" /> | |||||
</target> | |||||
<target name="testPermanentRedirect"> | |||||
<get src="${location}/permanent.txt" dest="${output}/permanent.tmp"/> | |||||
<au:assertTrue> | |||||
<resourcecount count="1"> | |||||
<restrict> | |||||
<file file="${output}/permanent.tmp" /> | |||||
<contains text="permanent redirect succeeded" /> | |||||
</restrict> | |||||
</resourcecount> | |||||
</au:assertTrue> | |||||
<au:assertLogContains text="permanent.txt permanently moved to http" /> | |||||
</target> | |||||
<target name="testTemporaryRedirect"> | |||||
<get src="${location}/temp.txt" dest="${output}/temp.txt"/> | |||||
<au:assertTrue> | |||||
<resourcecount count="1"> | |||||
<restrict> | |||||
<file file="${output}/temp.txt" /> | |||||
<contains text="temporary redirect succeeded" /> | |||||
</restrict> | |||||
</resourcecount> | |||||
</au:assertTrue> | |||||
<au:assertLogContains text="temp.txt moved to http" /> | |||||
</target> | |||||
<target name="testStatusCode307Redirect"> | |||||
<get src="${location}/307.txt" dest="${output}/307.txt"/> | |||||
<au:assertTrue> | |||||
<resourcecount count="1"> | |||||
<restrict> | |||||
<file file="${output}/307.txt" /> | |||||
<contains text="307 status code redirect succeeded" /> | |||||
</restrict> | |||||
</resourcecount> | |||||
</au:assertTrue> | |||||
<au:assertLogContains text="307.txt moved to http" /> | |||||
</target> | |||||
<target name="test5LevelsOfRedirect"> | |||||
<get src="${location}/redir5.txt" dest="${output}/redir5.tmp"/> | |||||
<au:assertTrue> | |||||
<resourcecount count="1"> | |||||
<restrict> | |||||
<file file="${output}/redir5.tmp" /> | |||||
<contains text="5 levels of redirect succeeded" /> | |||||
</restrict> | |||||
</resourcecount> | |||||
</au:assertTrue> | |||||
<au:assertLogContains text="redir5.txt moved to http" /> | |||||
<au:assertLogContains text="redir5-4.txt moved to http" /> | |||||
</target> | |||||
<target name="testInfiniteRedirect"> | |||||
<au:expectfailure expectedmessage="More than 25 times redirected, giving up"> | |||||
<get src="${location}/infinite.txt" dest="${output}/infinite.tmp"/> | |||||
</au:expectfailure> | |||||
</target> | |||||
<target name="testNestedResources"> | |||||
<get dest="${output}/downloads"> | |||||
<url url="http://ant.apache.org/index.html"/> | |||||
<url url="http://ant.apache.org/faq.html"/> | |||||
</get> | |||||
<au:assertFileExists file="${output}/downloads/index.html"/> | |||||
<au:assertFileExists file="${output}/downloads/faq.html"/> | |||||
</target> | |||||
<target name="XtestRelativeRedirect"> | |||||
<get src="${location}/local.cgi" dest="${output}/other.tmp"/> | |||||
<au:assertTrue> | |||||
<resourcecount count="1"> | |||||
<restrict> | |||||
<file file="${output}/other.tmp" /> | |||||
<contains text="local redirect succeeded"/> | |||||
</restrict> | |||||
</resourcecount> | |||||
</au:assertTrue> | |||||
<au:assertLogContains text="local.cgi moved to http" /> | |||||
</target> | |||||
</project> |
@@ -1,44 +1,44 @@ | |||||
<?xml version="1.0" encoding="UTF-8"?> | |||||
<!-- | |||||
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" /> | |||||
<target name="-fileResourceSetup"> | |||||
<mkdir dir="${output}"/> | |||||
</target> | |||||
<target name="testInternationalText" depends="-fileResourceSetup" | |||||
description="https://issues.apache.org/bugzilla/show_bug.cgi?id=50515"> | |||||
<property name="line1" value="萬 利 食 品 批 發 公 司" /> | |||||
<property name="line2" value="TEL: (123)123-1234" /> | |||||
<propertyfile file="${output}/test.properties"> | |||||
<entry key="line1" value="${line1}" /> | |||||
<entry key="line2" value="${line2}" /> | |||||
</propertyfile> | |||||
<loadproperties prefix="rereading" srcfile="${output}/test.properties"/> | |||||
<au:assertTrue message="${line2}"> | |||||
<equals arg1="${line2}" arg2="${rereading.line2}" /> | |||||
</au:assertTrue> | |||||
<au:assertTrue message="${line1}"> | |||||
<equals arg1="${line1}" arg2="${rereading.line1}" /> | |||||
</au:assertTrue> | |||||
</target> | |||||
<?xml version="1.0" encoding="UTF-8"?> | |||||
<!-- | |||||
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" /> | |||||
<target name="-fileResourceSetup"> | |||||
<mkdir dir="${output}"/> | |||||
</target> | |||||
<target name="testInternationalText" depends="-fileResourceSetup" | |||||
description="https://issues.apache.org/bugzilla/show_bug.cgi?id=50515"> | |||||
<property name="line1" value="萬 利 食 品 批 發 公 司" /> | |||||
<property name="line2" value="TEL: (123)123-1234" /> | |||||
<propertyfile file="${output}/test.properties"> | |||||
<entry key="line1" value="${line1}" /> | |||||
<entry key="line2" value="${line2}" /> | |||||
</propertyfile> | |||||
<loadproperties prefix="rereading" srcfile="${output}/test.properties"/> | |||||
<au:assertTrue message="${line2}"> | |||||
<equals arg1="${line2}" arg2="${rereading.line2}" /> | |||||
</au:assertTrue> | |||||
<au:assertTrue message="${line1}"> | |||||
<equals arg1="${line1}" arg2="${rereading.line1}" /> | |||||
</au:assertTrue> | |||||
</target> | |||||
</project> | </project> |
@@ -1,96 +1,96 @@ | |||||
A DESCRIPTION OF THE SELECTOR TEST FRAMEWORK | |||||
When writing tests for selectors, I found that I wanted to have some | |||||
standard way of working with a set of files and testing whether one or | |||||
another of them was selected. To that end, I created a base class called | |||||
BaseSelectorTest that does most of the heavy lifting. Of course, you can | |||||
test your selectors any way you want, but if you want to reuse this code, | |||||
read on. | |||||
What BaseSelectorTest does is use an ant build file | |||||
"src/etc/testcases/types/selector.xml" to copy a tree of files out of | |||||
"src/etc/testcases/taskdefs/expected" into a "selectortest" directories. | |||||
Then it takes a list of 12 of the files and directories in this tree, and | |||||
applies whatever selector you pass in to each one. It passes back to your | |||||
test a 12 character long string indicating which of the 12 files and | |||||
directories was selected, using 'T' for selected and 'F' for not selected. | |||||
In the Test class for your selector, you override the getInstance() method | |||||
to create your own type of selector, and set the elements of your selector | |||||
a variety of ways to ensure that the string of T's and F's returned when | |||||
the selector is applied to those 12 files is correct. | |||||
So, for example, DepthSelectorTest.java extends BaseSelectorTest and has | |||||
the following code: | |||||
public BaseSelector getInstance() { | |||||
return new DepthSelector(); | |||||
} | |||||
public void testSelectionBehaviour() { | |||||
DepthSelector s; | |||||
String results; | |||||
try { | |||||
makeBed(); | |||||
s = (DepthSelector)getInstance(); | |||||
s.setMin(20); | |||||
s.setMax(25); | |||||
results = selectionString(s); | |||||
assertEquals("FFFFFFFFFFFF", results); | |||||
s = (DepthSelector)getInstance(); | |||||
s.setMin(0); | |||||
results = selectionString(s); | |||||
assertEquals("TTTTTTTTTTTT", results); | |||||
s = (DepthSelector)getInstance(); | |||||
s.setMin(1); | |||||
results = selectionString(s); | |||||
assertEquals("FFFFFTTTTTTT", results); | |||||
The first test says that none of the 12 files or directories will match if | |||||
the depth range for the selector is between 20 and 25 (that would be one | |||||
deep directory tree!). The second says that all files and directories | |||||
match if the minimum depth is set to 0 and the maximum isn't specified. The | |||||
third test says that if the minumum depth is 1, the first 5 entries in the | |||||
list of 12 will not be selected and the rest will. | |||||
You can find the 12 files and directories that are tested for selection in | |||||
the BaseSelectorTest class. I used a fixed list so that if someone added | |||||
new files to the src/etc/testcases/types directory it wouldn't break my | |||||
tests: | |||||
protected String[] filenames = {".","asf-logo.gif.md5","asf- | |||||
logo.gif.bz2", | |||||
"asf-logo.gif.gz","copy.filterset.filtered","zip/asf- | |||||
logo.gif.zip", | |||||
"tar/asf-logo.gif.tar","tar/asf-logo-huge.tar.gz", | |||||
"tar/gz/asf-logo.gif.tar.gz","tar/bz2/asf-logo.gif.tar.bz2", | |||||
"tar/bz2/asf-logo-huge.tar.bz2","tar/bz2"}; | |||||
If you wish to use this set of files and directories to test your selector, | |||||
you can reuse the BaseSelectorTest with no change to it. | |||||
You may find you need to alter the build file so that you get some | |||||
variation in the files that your selector can work with. Most of the core | |||||
selectors have required that kind of modification. If you do that, make | |||||
sure that it doesn't alter the output strings on the other selector test, | |||||
or if it does that you update their expected return results. | |||||
You may also want to alter the set of files you look at in a particular | |||||
selector test. Since the filelist in BaseSelectorTest is protected, you | |||||
should be able to override it as you need to. Or you can alter the fileset | |||||
in BaseSelectorTest itself, provided you update the test strings in all the | |||||
other unit tests. | |||||
A DESCRIPTION OF THE SELECTOR TEST FRAMEWORK | |||||
When writing tests for selectors, I found that I wanted to have some | |||||
standard way of working with a set of files and testing whether one or | |||||
another of them was selected. To that end, I created a base class called | |||||
BaseSelectorTest that does most of the heavy lifting. Of course, you can | |||||
test your selectors any way you want, but if you want to reuse this code, | |||||
read on. | |||||
What BaseSelectorTest does is use an ant build file | |||||
"src/etc/testcases/types/selector.xml" to copy a tree of files out of | |||||
"src/etc/testcases/taskdefs/expected" into a "selectortest" directories. | |||||
Then it takes a list of 12 of the files and directories in this tree, and | |||||
applies whatever selector you pass in to each one. It passes back to your | |||||
test a 12 character long string indicating which of the 12 files and | |||||
directories was selected, using 'T' for selected and 'F' for not selected. | |||||
In the Test class for your selector, you override the getInstance() method | |||||
to create your own type of selector, and set the elements of your selector | |||||
a variety of ways to ensure that the string of T's and F's returned when | |||||
the selector is applied to those 12 files is correct. | |||||
So, for example, DepthSelectorTest.java extends BaseSelectorTest and has | |||||
the following code: | |||||
public BaseSelector getInstance() { | |||||
return new DepthSelector(); | |||||
} | |||||
public void testSelectionBehaviour() { | |||||
DepthSelector s; | |||||
String results; | |||||
try { | |||||
makeBed(); | |||||
s = (DepthSelector)getInstance(); | |||||
s.setMin(20); | |||||
s.setMax(25); | |||||
results = selectionString(s); | |||||
assertEquals("FFFFFFFFFFFF", results); | |||||
s = (DepthSelector)getInstance(); | |||||
s.setMin(0); | |||||
results = selectionString(s); | |||||
assertEquals("TTTTTTTTTTTT", results); | |||||
s = (DepthSelector)getInstance(); | |||||
s.setMin(1); | |||||
results = selectionString(s); | |||||
assertEquals("FFFFFTTTTTTT", results); | |||||
The first test says that none of the 12 files or directories will match if | |||||
the depth range for the selector is between 20 and 25 (that would be one | |||||
deep directory tree!). The second says that all files and directories | |||||
match if the minimum depth is set to 0 and the maximum isn't specified. The | |||||
third test says that if the minumum depth is 1, the first 5 entries in the | |||||
list of 12 will not be selected and the rest will. | |||||
You can find the 12 files and directories that are tested for selection in | |||||
the BaseSelectorTest class. I used a fixed list so that if someone added | |||||
new files to the src/etc/testcases/types directory it wouldn't break my | |||||
tests: | |||||
protected String[] filenames = {".","asf-logo.gif.md5","asf- | |||||
logo.gif.bz2", | |||||
"asf-logo.gif.gz","copy.filterset.filtered","zip/asf- | |||||
logo.gif.zip", | |||||
"tar/asf-logo.gif.tar","tar/asf-logo-huge.tar.gz", | |||||
"tar/gz/asf-logo.gif.tar.gz","tar/bz2/asf-logo.gif.tar.bz2", | |||||
"tar/bz2/asf-logo-huge.tar.bz2","tar/bz2"}; | |||||
If you wish to use this set of files and directories to test your selector, | |||||
you can reuse the BaseSelectorTest with no change to it. | |||||
You may find you need to alter the build file so that you get some | |||||
variation in the files that your selector can work with. Most of the core | |||||
selectors have required that kind of modification. If you do that, make | |||||
sure that it doesn't alter the output strings on the other selector test, | |||||
or if it does that you update their expected return results. | |||||
You may also want to alter the set of files you look at in a particular | |||||
selector test. Since the filelist in BaseSelectorTest is protected, you | |||||
should be able to override it as you need to. Or you can alter the fileset | |||||
in BaseSelectorTest itself, provided you update the test strings in all the | |||||
other unit tests. | |||||
@@ -1,26 +1,26 @@ | |||||
<?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. | |||||
--> | |||||
<antlib> | |||||
<macrodef name="simple"> | |||||
<element name="some-tasks" optional="yes" implicit="yes"/> | |||||
<sequential> | |||||
<some-tasks/> | |||||
</sequential> | |||||
</macrodef> | |||||
</antlib> | |||||
<?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. | |||||
--> | |||||
<antlib> | |||||
<macrodef name="simple"> | |||||
<element name="some-tasks" optional="yes" implicit="yes"/> | |||||
<sequential> | |||||
<some-tasks/> | |||||
</sequential> | |||||
</macrodef> | |||||
</antlib> | |||||
@@ -1,26 +1,26 @@ | |||||
<?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. | |||||
--> | |||||
<antlib> | |||||
<macrodef name="simple"> | |||||
<element name="some-tasks" optional="yes" implicit="yes"/> | |||||
<sequential> | |||||
<some-tasks/> | |||||
</sequential> | |||||
</macrodef> | |||||
</antlib> | |||||
<?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. | |||||
--> | |||||
<antlib> | |||||
<macrodef name="simple"> | |||||
<element name="some-tasks" optional="yes" implicit="yes"/> | |||||
<sequential> | |||||
<some-tasks/> | |||||
</sequential> | |||||
</macrodef> | |||||
</antlib> | |||||