under 1.5.x but nevertheless is not functional git-svn-id: https://svn.apache.org/repos/asf/ant/core/trunk@274398 13f79535-47bb-0310-9956-ffa450edef68master
@@ -302,6 +302,7 @@ | |||||
<patternset id="teststhatfail"> | <patternset id="teststhatfail"> | ||||
<exclude name="${optional.package}/BeanShellScriptTest.java"/> | <exclude name="${optional.package}/BeanShellScriptTest.java"/> | ||||
<exclude name="${ant.package}/taskdefs/ImportTest.java"/> | <exclude name="${ant.package}/taskdefs/ImportTest.java"/> | ||||
<exclude name="${ant.package}/TaskContainerTest.java"/> | |||||
</patternset> | </patternset> | ||||
<!-- | <!-- | ||||
@@ -0,0 +1,38 @@ | |||||
package test; | |||||
import org.apache.tools.ant.Task; | |||||
import org.apache.tools.ant.TaskContainer; | |||||
import org.apache.tools.ant.BuildException; | |||||
import org.apache.tools.ant.types.FileSet; | |||||
import java.util.*; | |||||
public class SpecialSeq extends Task implements TaskContainer { | |||||
/** Optional Vector holding the nested tasks */ | |||||
private Vector nestedTasks = new Vector(); | |||||
private FileSet fileset; | |||||
/** | |||||
* Add a nested task. | |||||
* <p> | |||||
* @param nestedTask Nested task to execute | |||||
* <p> | |||||
*/ | |||||
public void addTask(Task nestedTask) { | |||||
nestedTasks.addElement(nestedTask); | |||||
} | |||||
/** | |||||
* Execute all nestedTasks. | |||||
*/ | |||||
public void execute() throws BuildException { | |||||
for (Enumeration e = nestedTasks.elements(); e.hasMoreElements();) { | |||||
Task nestedTask = (Task) e.nextElement(); | |||||
nestedTask.perform(); | |||||
} | |||||
} | |||||
public void addFileset(FileSet fileset) { | |||||
this.fileset = fileset; | |||||
} | |||||
} |
@@ -1,7 +1,11 @@ | |||||
<project default="dont-run-this"> | <project default="dont-run-this"> | ||||
<property name="build.dir" value="build"/> | |||||
<target name="dont-run-this"> | <target name="dont-run-this"> | ||||
<fail>This build file is supposed to be run by a Unit test</fail> | <fail>This build file is supposed to be run by a Unit test</fail> | ||||
</target> | </target> | ||||
<target name="testPropertyExpansion"> | <target name="testPropertyExpansion"> | ||||
<sequential> | <sequential> | ||||
@@ -10,4 +14,23 @@ | |||||
<echo>As nested text: ${foo}</echo> | <echo>As nested text: ${foo}</echo> | ||||
</sequential> | </sequential> | ||||
</target> | </target> | ||||
<target name="testTaskdef"> | |||||
<mkdir dir="${build.dir}"/> | |||||
<javac srcdir="containersrc" destdir="${build.dir}" debug="on"/> | |||||
<sequential> | |||||
<taskdef name="sseq" classpath="${build.dir}" classname="test.SpecialSeq"/> | |||||
<sseq> | |||||
<property name="foo" value="it worked"/> | |||||
<echo message="As attribute: ${foo}"/> | |||||
<echo>As nested text: ${foo}</echo> | |||||
</sseq> | |||||
</sequential> | |||||
</target> | |||||
<target name="cleanup"> | |||||
<delete dir="${build.dir}"/> | |||||
</target> | |||||
</project> | </project> |
@@ -64,6 +64,10 @@ public class TaskContainerTest extends BuildFileTest { | |||||
configureProject("src/etc/testcases/core/taskcontainer.xml"); | configureProject("src/etc/testcases/core/taskcontainer.xml"); | ||||
} | } | ||||
public void tearDown() { | |||||
executeTarget("cleanup"); | |||||
} | |||||
public void testPropertyExpansion() { | public void testPropertyExpansion() { | ||||
executeTarget("testPropertyExpansion"); | executeTarget("testPropertyExpansion"); | ||||
assertTrue("attribute worked", | assertTrue("attribute worked", | ||||
@@ -71,4 +75,13 @@ public class TaskContainerTest extends BuildFileTest { | |||||
assertTrue("nested text worked", | assertTrue("nested text worked", | ||||
getLog().indexOf("As nested text: it worked") > -1); | getLog().indexOf("As nested text: it worked") > -1); | ||||
} | } | ||||
public void testTaskdef() { | |||||
executeTarget("testTaskdef"); | |||||
assertTrue("attribute worked", | |||||
getLog().indexOf("As attribute: it worked") > -1); | |||||
assertTrue("nested text worked", | |||||
getLog().indexOf("As nested text: it worked") > -1); | |||||
} | |||||
} | } |