aboutsummaryrefslogtreecommitdiffstats
path: root/framework/src/ant/apache-ant-1.9.6/src/tests/antunit/core/extension-point-test.xml
diff options
context:
space:
mode:
Diffstat (limited to 'framework/src/ant/apache-ant-1.9.6/src/tests/antunit/core/extension-point-test.xml')
-rw-r--r--framework/src/ant/apache-ant-1.9.6/src/tests/antunit/core/extension-point-test.xml210
1 files changed, 210 insertions, 0 deletions
diff --git a/framework/src/ant/apache-ant-1.9.6/src/tests/antunit/core/extension-point-test.xml b/framework/src/ant/apache-ant-1.9.6/src/tests/antunit/core/extension-point-test.xml
new file mode 100644
index 00000000..8c0dbdb9
--- /dev/null
+++ b/framework/src/ant/apache-ant-1.9.6/src/tests/antunit/core/extension-point-test.xml
@@ -0,0 +1,210 @@
+<?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 xmlns:au="antlib:org.apache.ant.antunit" default="antunit">
+
+ <import file="../antunit-base.xml"/>
+
+ <extension-point name="testExtensionPointWorksLikeTarget"
+ depends="setProperty, assertProperty"/>
+
+ <target name="setProperty">
+ <property name="foo" value="bar"/>
+ </target>
+
+ <target name="assertProperty">
+ <au:assertPropertyEquals name="foo" value="bar"/>
+ </target>
+
+ <target name="testExtensionPointMustBeEmpty">
+ <mkdir dir="${output}"/>
+ <echo file="${output}/build.xml"><![CDATA[
+<project>
+ <extension-point name="foo">
+ <echo>bar</echo>
+ </extension-point>
+</project>]]></echo>
+ <au:expectfailure
+ expectedMessage="you must not nest child elements into an extension-point">
+ <ant dir="${output}"/>
+ </au:expectfailure>
+ </target>
+
+ <target name="testAddToExtensionPoint">
+ <mkdir dir="${output}"/>
+ <echo file="${output}/build.xml"><![CDATA[
+<project default="foo">
+ <extension-point name="foo"/>
+ <target name="bar" extensionOf="foo">
+ <echo>In target bar</echo>
+ </target>
+</project>]]></echo>
+ <ant dir="${output}"/>
+ <au:assertLogContains text="In target bar"/>
+ </target>
+
+ <target name="testCantAddToPlainTarget">
+ <mkdir dir="${output}"/>
+ <echo file="${output}/build.xml"><![CDATA[
+<project default="foo">
+ <target name="foo"/>
+ <target name="bar" extensionOf="foo"/>
+</project>]]></echo>
+ <au:expectfailure
+ expectedMessage="referenced target foo is not an extension-point">
+ <ant dir="${output}"/>
+ </au:expectfailure>
+ </target>
+
+ <target name="testExtensionPointInImportedBuildfile" description="Bug 48804">
+ <mkdir dir="${output}"/>
+ <echo file="${output}/master.xml"><![CDATA[
+<project default="bar">
+ <extension-point name="foo"/>
+ <target name="bar" depends="foo"/>
+</project>]]></echo>
+ <echo file="${output}/build.xml"><![CDATA[
+<project>
+ <import file="master.xml"/>
+ <target name="prepare" extensionOf="foo">
+ <echo>in target prepare</echo>
+ </target>
+</project>]]></echo>
+ <ant dir="${output}" target="bar"/>
+ <au:assertLogContains text="in target prepare"/>
+ </target>
+
+ <target name="testExtensionPointInIncludedBuildfileWithNestedInclude">
+ <mkdir dir="${output}"/>
+ <echo file="${output}/abstract-compile.xml"><![CDATA[
+<project name="abstract-compile">
+ <extension-point name="compile"/>
+</project>]]></echo>
+ <echo file="${output}/compile-java.xml"><![CDATA[
+<project name="compile-java">
+ <include file="abstract-compile.xml" as="abstract-compile"/>
+ <target name="compile-java" extensionOf="abstract-compile.compile">
+ <echo>in compile java</echo>
+ </target>
+</project>]]></echo>
+ <echo file="${output}/build.xml"><![CDATA[
+<project name="master">
+ <include file="compile-java.xml" as="compile"/>
+</project>]]></echo>
+ <!-- here prefix should be concatened from each include first
+ "compile" then "abstract-compile"-->
+ <ant dir="${output}" target="compile.abstract-compile.compile"/>
+ <au:assertLogContains text="in compile java"/>
+
+ </target>
+
+ <target name="testExtensionPointInIncludedBuildfileWithNestedImport">
+ <mkdir dir="${output}"/>
+ <echo file="${output}/abstract-compile.xml"><![CDATA[
+<project name="abstract-compile">
+ <extension-point name="compile"/>
+</project>]]></echo>
+ <echo file="${output}/compile-java.xml"><![CDATA[
+<project name="compile-java">
+ <import file="abstract-compile.xml"/>
+ <target name="compile-java" extensionOf="compile">
+ <echo>in compile java</echo>
+ </target>
+</project>]]></echo>
+ <echo file="${output}/build.xml"><![CDATA[
+<project name="master">
+ <include file="compile-java.xml" as="compile"/>
+</project>]]></echo>
+ <!-- here the prefix should be "compile" as the import containing
+ the extension point is done inside an include using "compile"
+ as prefix -->
+ <ant dir="${output}" target="compile.compile"/>
+ <au:assertLogContains text="in compile java"/>
+
+ </target>
+
+ <target name="testExtensionPointInImportedBuildfileWithNestedImport">
+ <mkdir dir="${output}"/>
+ <echo file="${output}/abstract-compile.xml"><![CDATA[
+<project name="abstract-compile">
+ <extension-point name="compile"/>
+</project>]]></echo>
+ <echo file="${output}/compile-java.xml"><![CDATA[
+<project name="compile-java">
+ <import file="abstract-compile.xml"/>
+ <target name="compile-java" extensionOf="compile">
+ <echo>in compile java</echo>
+ </target>
+</project>]]></echo>
+ <echo file="${output}/build.xml"><![CDATA[
+<project name="master">
+ <import file="compile-java.xml"/>
+</project>]]></echo>
+ <!-- here extension point should not be prefixed at all -->
+ <ant dir="${output}" target="compile"/>
+ <au:assertLogContains text="in compile java"/>
+
+ </target>
+
+
+
+ <target name="testMissingExtensionPointCausesError">
+ <mkdir dir="${output}"/>
+ <echo file="${output}/build.xml"><![CDATA[
+<project default="bar">
+ <target name="bar" extensionOf="foo"/>
+</project>]]></echo>
+ <au:expectfailure
+ expectedMessage="can't add target bar to extension-point foo because the extension-point is unknown">
+ <ant dir="${output}" target="bar"/>
+ </au:expectfailure>
+ </target>
+
+ <target name="testMissingExtensionPointCausesWarningWhenConfigured">
+ <mkdir dir="${output}"/>
+ <echo file="${output}/build.xml"><![CDATA[
+<project default="bar">
+ <target name="bar" extensionOf="foo" onMissingExtensionPoint="warn"/>
+</project>]]></echo>
+ <ant dir="${output}" target="bar"/>
+ <au:assertLogContains level="warning"
+ text="can't add target bar to extension-point foo because the extension-point is unknown" />
+ </target>
+
+ <target name="testMissingExtensionPointIgnoredWhenConfigured">
+ <mkdir dir="${output}"/>
+ <echo file="${output}/build.xml"><![CDATA[
+<project default="bar">
+ <target name="bar" extensionOf="foo" onMissingExtensionPoint="ignore"/>
+</project>]]></echo>
+ <ant dir="${output}" target="bar"/>
+ <au:assertLogDoesntContain level="warning"
+ text="can't add target bar to extension-point foo because the extension-point is unknown" />
+ </target>
+
+ <target name="testOnlyAllowsExtensionPointMissingAttributeWhenExtensionOfPresent">
+ <mkdir dir="${output}"/>
+ <echo file="${output}/build.xml"><![CDATA[
+<project default="bar">
+ <target name="bar" onMissingExtensionPoint="ignore"/>
+</project>]]></echo>
+ <au:expectfailure
+ expectedMessage="onMissingExtensionPoint attribute cannot be specified unless extensionOf is specified">
+ <ant dir="${output}" target="bar"/>
+ </au:expectfailure>
+ </target>
+</project>