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