diff options
Diffstat (limited to 'framework/src/ant/apache-ant-1.9.6/src/tests/antunit/taskdefs/jar-spi-test.xml')
-rw-r--r-- | framework/src/ant/apache-ant-1.9.6/src/tests/antunit/taskdefs/jar-spi-test.xml | 149 |
1 files changed, 149 insertions, 0 deletions
diff --git a/framework/src/ant/apache-ant-1.9.6/src/tests/antunit/taskdefs/jar-spi-test.xml b/framework/src/ant/apache-ant-1.9.6/src/tests/antunit/taskdefs/jar-spi-test.xml new file mode 100644 index 00000000..c05311aa --- /dev/null +++ b/framework/src/ant/apache-ant-1.9.6/src/tests/antunit/taskdefs/jar-spi-test.xml @@ -0,0 +1,149 @@ +<?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 xmlns:au="antlib:org.apache.ant.antunit"> + <property name="jar.dir" location="jar_spi_dir"/> + <property name="jar.src.dir" location="jar_spi_dir/src"/> + <property name="jar.src.file" location="jar_spi_dir/src/a_file"/> + + <available property="jdk1.4+" classname="java.lang.CharSequence"/> + <condition property="some.regexp.support"> + <or> + <isset property="jdk1.4+"/> + <isset property="apache.regexp.present"/> + <isset property="apache.oro.present"/> + </or> + </condition> + + <target name="init"> + <mkdir dir="${jar.src.dir}"/> + <delete quiet="yes" file="${jar.src.file}"/> + <touch file="${jar.src.file}"/> + <delete quiet="yes" file="${jar.dir}/file.jar"/> + <delete quiet="yes" dir="${jar.dir}/output"/> + </target> + + <target name="test-simple" depends="init" if="some.regexp.support"> + + <jar jarfile="${jar.dir}/file.jar"> + <fileset dir="${jar.src.dir}"/> + <service type="a.b.c" provider="a.b.c.d"/> + </jar> + + <unjar src="${jar.dir}/file.jar" + dest="${jar.dir}/output"/> + + <loadfile property="simple" + srcfile="${jar.dir}/output/META-INF/services/a.b.c" + encoding="UTF-8"/> + + <au:assertTrue> + <matches string="${simple}" pattern="^a\.b\.c\.d$"/> + </au:assertTrue> + + </target> + + <target name="test-providers" depends="init" if="some.regexp.support"> + + <jar jarfile="${jar.dir}/file.jar"> + <fileset dir="${jar.src.dir}"/> + <service type="a.b.c"> + <provider classname="a.X"/> + <provider classname="a.D"/> + </service> + </jar> + + <unjar src="${jar.dir}/file.jar" + dest="${jar.dir}/output"/> + + <loadfile property="providers" + srcfile="${jar.dir}/output/META-INF/services/a.b.c" + encoding="UTF-8"/> + <au:assertTrue> + <matches string="${providers}" pattern="^a\.X\na\.D$"/> + </au:assertTrue> + + </target> + + <target name="test-multi" depends="init" if="some.regexp.support"> + + <jar jarfile="${jar.dir}/file.jar"> + <fileset dir="${jar.src.dir}"/> + <service type="a.b.c"> + <provider classname="a.X"/> + <provider classname="a.D"/> + </service> + <service type="javax.a.service"> + <provider classname="a.O.T"/> + <provider classname="a.B"/> + </service> + </jar> + + <unjar src="${jar.dir}/file.jar" + dest="${jar.dir}/output"/> + + <loadfile property="multi-a" + srcfile="${jar.dir}/output/META-INF/services/a.b.c" + encoding="UTF-8"/> + + <au:assertTrue> + <matches string="${multi-a}" pattern="^a\.X\na\.D$"/> + </au:assertTrue> + + <loadfile property="multi-b" + srcfile="${jar.dir}/output/META-INF/services/javax.a.service" + encoding="UTF-8"/> + + <au:assertTrue> + <matches string="${multi-b}" pattern="^a\.O\.T\na\.B$"/> + </au:assertTrue> + + </target> + + <target name="test-reject-no-type" depends="init"> + <au:expectfailure> + <jar jarfile="${jar.dir}/file.jar"> + <fileset dir="${jar.src.dir}"/> + <service provider="a.X"/> + </jar> + </au:expectfailure> + </target> + + <target name="test-reject-no-provider" depends="init"> + <au:expectfailure> + <jar jarfile="${jar.dir}/file.jar"> + <fileset dir="${jar.src.dir}"/> + <service type="a.X"/> + </jar> + </au:expectfailure> + </target> + + <target name="test-reject-no-classname" depends="init"> + <au:expectfailure> + <jar jarfile="${jar.dir}/file.jar"> + <fileset dir="${jar.src.dir}"/> + <service type="a.X"> + <provider/> + </service> + </jar> + </au:expectfailure> + </target> + + <target name="tearDown"> + <delete quiet="yes" dir="${jar.dir}"/> + </target> +</project> |