PR: Obtained from: Submitted by: Reviewed by: git-svn-id: https://svn.apache.org/repos/asf/ant/core/trunk@271908 13f79535-47bb-0310-9956-ffa450edef68master
| @@ -0,0 +1,69 @@ | |||||
| <html> | |||||
| <head> | |||||
| <meta http-equiv="Content-Language" content="en-us"> | |||||
| <title>Basename Task</title> | |||||
| </head> | |||||
| <body> | |||||
| <h2><a name="echo">Basename</a></h2> | |||||
| <h3>Description</h3> | |||||
| <p> | |||||
| Task to determine the basename of a specified file, optionally minus a | |||||
| specified suffix. | |||||
| </p> | |||||
| <p> | |||||
| When this task executes, it will set the specified property to the | |||||
| value of the last path element of the specified file. If <code>file</code> is a | |||||
| directory, the basename will be the last directory element. If | |||||
| <code>file</code> is a full-path, relative-path, or simple filename, | |||||
| the basename will be the simple file name, without any directory elements. | |||||
| </p> | |||||
| <p> | |||||
| <h3>Parameters</h3> | |||||
| <table border="1" cellpadding="2" cellspacing="0"> | |||||
| <tr> | |||||
| <td valign="top"><b>Attribute</b></td> | |||||
| <td valign="top"><b>Description</b></td> | |||||
| <td align="center" valign="top"><b>Required</b></td> | |||||
| </tr> | |||||
| <tr> | |||||
| <td valign="top">file</td> | |||||
| <td valign="top">The path to take the basename of.</td> | |||||
| <td valign="top" align="center">Yes</td> | |||||
| </tr> | |||||
| <tr> | |||||
| <td valign="top">property</td> | |||||
| <td valign="top">The name of the property to set.</td> | |||||
| <td valign="top" align="center">Yes</td> | |||||
| </tr> | |||||
| <tr> | |||||
| <td valign="top">suffix</td> | |||||
| <td valign="top">The suffix to remove from the resulting basename | |||||
| (specified either with or with the "<code>.</code>").</td> | |||||
| <td valign="top" align="center">No</td> | |||||
| </tr> | |||||
| </table> | |||||
| <h3>Examples</h3> | |||||
| <pre> <basename property="jar.filename" file="${lib.jarfile}"/></pre> | |||||
| will set <code>jar.filename</code> to | |||||
| <code>myjar.jar</code>, if <code>lib.jarfile</code> is defined as either a | |||||
| full-path filename (eg., <code>/usr/local/lib/myjar.jar</code>), | |||||
| a relative-path filename (eg., <code>lib/myjar.jar</code>), | |||||
| or a simple filename (eg., <code>myjar.jar</code>). | |||||
| <pre> <basename property="cmdname" file="D:/usr/local/foo.exe" suffix=".exe"/></pre> | |||||
| will set <code>cmdname</code> to <code>foo</code>. | |||||
| <pre> <basename property="temp.dirname" file="${env.TEMP}"/></pre> | |||||
| will set <code>temp.dirname</code> to the last directory element of | |||||
| the path defined for the <code>TEMP</code> environment variable.</p> | |||||
| <hr> | |||||
| <p align="center">Copyright © 2002 Apache Software Foundation. | |||||
| All rights Reserved.</p> | |||||
| </body> | |||||
| </html> | |||||
| @@ -0,0 +1,54 @@ | |||||
| <html> | |||||
| <head> | |||||
| <meta http-equiv="Content-Language" content="en-us"> | |||||
| <title>Dirname Task</title> | |||||
| </head> | |||||
| <body> | |||||
| <h2><a name="echo">Dirname</a></h2> | |||||
| <h3>Description</h3> | |||||
| <p> | |||||
| Task to determine the directory path of a specified file. | |||||
| </p> | |||||
| <p> | |||||
| When this task executes, it will set the specified property to the | |||||
| value of the specified file up to, but not including, the last path | |||||
| element. If the specified file is a path that ends in a filename, | |||||
| the filename will be dropped. If the specified file is just a filename, | |||||
| the directory will be the current directory. | |||||
| </p> | |||||
| <h3>Parameters</h3> | |||||
| <table border="1" cellpadding="2" cellspacing="0"> | |||||
| <tr> | |||||
| <td valign="top"><b>Attribute</b></td> | |||||
| <td valign="top"><b>Description</b></td> | |||||
| <td align="center" valign="top"><b>Required</b></td> | |||||
| </tr> | |||||
| <tr> | |||||
| <td valign="top">file</td> | |||||
| <td valign="top">The path to take the basename of.</td> | |||||
| <td valign="top" align="center">Yes</td> | |||||
| </tr> | |||||
| <tr> | |||||
| <td valign="top">property</td> | |||||
| <td valign="top">The name of the property to set.</td> | |||||
| <td valign="top" align="center">Yes</td> | |||||
| </tr> | |||||
| </table> | |||||
| <h3>Examples</h3> | |||||
| <pre> <dirname property="antfile.dir" file="${ant.file}"/></pre> | |||||
| will set <code>antfile.dir</code> to the directory path for | |||||
| <code>${ant.file}</code>. | |||||
| <pre> <dirname property="foo.dirname" file="foo.txt"</pre> | |||||
| will set <code>foo.dirname</code> to the current directory.</p> | |||||
| <hr> | |||||
| <p align="center">Copyright © 2002 Apache Software Foundation. | |||||
| All rights Reserved.</p> | |||||
| </body> | |||||
| </html> | |||||
| @@ -0,0 +1,25 @@ | |||||
| <?xml version="1.0"?> | |||||
| <project name="xxx-test" basedir="." default="test1"> | |||||
| <target name="test1"> | |||||
| <basename/> | |||||
| </target> | |||||
| <target name="test2"> | |||||
| <basename property="propname"/> | |||||
| </target> | |||||
| <target name="test3"> | |||||
| <basename file="filename"/> | |||||
| </target> | |||||
| <target name="test4"> | |||||
| <basename property="file.w.suf" file="${user.dir}/foo.txt"/> | |||||
| </target> | |||||
| <target name="test5"> | |||||
| <basename property="file.wo.suf" file="foo.txt" suffix="txt"/> | |||||
| </target> | |||||
| </project> | |||||
| @@ -0,0 +1,25 @@ | |||||
| <?xml version="1.0"?> | |||||
| <project name="xxx-test" basedir="." default="test1"> | |||||
| <target name="test1"> | |||||
| <dirname/> | |||||
| </target> | |||||
| <target name="test2"> | |||||
| <dirname property="propname"/> | |||||
| </target> | |||||
| <target name="test3"> | |||||
| <dirname file="filename"/> | |||||
| </target> | |||||
| <target name="test4"> | |||||
| <dirname property="local.dir" file="/usr/local/foo.txt"/> | |||||
| </target> | |||||
| <target name="test5"> | |||||
| <dirname property="base.dir" file="foo.txt"/> | |||||
| </target> | |||||
| </project> | |||||
| @@ -0,0 +1,129 @@ | |||||
| /* | |||||
| * The Apache Software License, Version 1.1 | |||||
| * | |||||
| * Copyright (c) 2002 The Apache Software Foundation. All rights | |||||
| * reserved. | |||||
| * | |||||
| * Redistribution and use in source and binary forms, with or without | |||||
| * modification, are permitted provided that the following conditions | |||||
| * are met: | |||||
| * | |||||
| * 1. Redistributions of source code must retain the above copyright | |||||
| * notice, this list of conditions and the following disclaimer. | |||||
| * | |||||
| * 2. Redistributions in binary form must reproduce the above copyright | |||||
| * notice, this list of conditions and the following disclaimer in | |||||
| * the documentation and/or other materials provided with the | |||||
| * distribution. | |||||
| * | |||||
| * 3. The end-user documentation included with the redistribution, if | |||||
| * any, must include the following acknowlegement: | |||||
| * "This product includes software developed by the | |||||
| * Apache Software Foundation (http://www.apache.org/)." | |||||
| * Alternately, this acknowlegement may appear in the software itself, | |||||
| * if and wherever such third-party acknowlegements normally appear. | |||||
| * | |||||
| * 4. The names "The Jakarta Project", "Ant", and "Apache Software | |||||
| * Foundation" must not be used to endorse or promote products derived | |||||
| * from this software without prior written permission. For written | |||||
| * permission, please contact apache@apache.org. | |||||
| * | |||||
| * 5. Products derived from this software may not be called "Apache" | |||||
| * nor may "Apache" appear in their names without prior written | |||||
| * permission of the Apache Group. | |||||
| * | |||||
| * THIS SOFTWARE IS PROVIDED ``AS IS'' AND ANY EXPRESSED OR IMPLIED | |||||
| * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES | |||||
| * OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE | |||||
| * DISCLAIMED. IN NO EVENT SHALL THE APACHE SOFTWARE FOUNDATION OR | |||||
| * ITS CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, | |||||
| * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT | |||||
| * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF | |||||
| * USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND | |||||
| * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, | |||||
| * OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT | |||||
| * OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF | |||||
| * SUCH DAMAGE. | |||||
| * ==================================================================== | |||||
| * | |||||
| * This software consists of voluntary contributions made by many | |||||
| * individuals on behalf of the Apache Software Foundation. For more | |||||
| * information on the Apache Software Foundation, please see | |||||
| * <http://www.apache.org/>. | |||||
| */ | |||||
| package org.apache.tools.ant.taskdefs; | |||||
| import java.io.File; | |||||
| import org.apache.tools.ant.BuildException; | |||||
| import org.apache.tools.ant.Task; | |||||
| /** | |||||
| * Task to determine the basename of a specified file, optionally minus a | |||||
| * specified suffix. | |||||
| * | |||||
| * This task can accept the following attributes: | |||||
| * <ul> | |||||
| * <li>file | |||||
| * <li>property | |||||
| * <li>suffix | |||||
| * </ul> | |||||
| * The <b>file</b> and <b>property</b> attributes are required. The | |||||
| * <b>suffix</b> attribute can be specified either with or without | |||||
| * the ".", and the result will be the same (ie., the | |||||
| * returned file name will be minus the .suffix). | |||||
| * <p> | |||||
| * When this task executes, it will set the specified property to the | |||||
| * value of the last element in the specified file. If file is a | |||||
| * directory, the basename will be the last directory element. If file | |||||
| * is a full-path filename, the basename will be the simple file name. | |||||
| * If a suffix is specified, and the specified file ends in that suffix, | |||||
| * the basename will be the simple file name without the suffix. | |||||
| * | |||||
| * @author Diane Holt <a href="mailto:holtdl@apache.org">holtdl@apache.org</a> | |||||
| * | |||||
| * @version $Revision$ | |||||
| * | |||||
| * @ant.task category="property" | |||||
| */ | |||||
| public class Basename extends Task { | |||||
| private File file; | |||||
| private String property; | |||||
| private String suffix; | |||||
| // The setter for the `file' attribute | |||||
| public void setFile(File file) { | |||||
| this.file = file; | |||||
| } | |||||
| // The setter for the `property' attribute | |||||
| public void setProperty(String property) { | |||||
| this.property = property ; | |||||
| } | |||||
| // The setter for the `suffix' attribute | |||||
| public void setSuffix(String suffix) { | |||||
| this.suffix = suffix; | |||||
| } | |||||
| // The method executing the task | |||||
| public void execute() throws BuildException { | |||||
| String value; | |||||
| if (property == null) { | |||||
| throw new BuildException("property attribute required", location); | |||||
| } | |||||
| if (file == null) { | |||||
| throw new BuildException("file attribute required", location); | |||||
| } else { | |||||
| value = file.getName(); | |||||
| if (suffix != null && value.endsWith(suffix)) { | |||||
| int pos = value.indexOf('.'); | |||||
| value = value.substring(0, pos); | |||||
| } | |||||
| this.project.setProperty(property, value); | |||||
| } | |||||
| } | |||||
| } | |||||
| @@ -0,0 +1,111 @@ | |||||
| /* | |||||
| * The Apache Software License, Version 1.1 | |||||
| * | |||||
| * Copyright (c) 2002 The Apache Software Foundation. All rights | |||||
| * reserved. | |||||
| * | |||||
| * Redistribution and use in source and binary forms, with or without | |||||
| * modification, are permitted provided that the following conditions | |||||
| * are met: | |||||
| * | |||||
| * 1. Redistributions of source code must retain the above copyright | |||||
| * notice, this list of conditions and the following disclaimer. | |||||
| * | |||||
| * 2. Redistributions in binary form must reproduce the above copyright | |||||
| * notice, this list of conditions and the following disclaimer in | |||||
| * the documentation and/or other materials provided with the | |||||
| * distribution. | |||||
| * | |||||
| * 3. The end-user documentation included with the redistribution, if | |||||
| * any, must include the following acknowlegement: | |||||
| * "This product includes software developed by the | |||||
| * Apache Software Foundation (http://www.apache.org/)." | |||||
| * Alternately, this acknowlegement may appear in the software itself, | |||||
| * if and wherever such third-party acknowlegements normally appear. | |||||
| * | |||||
| * 4. The names "The Jakarta Project", "Ant", and "Apache Software | |||||
| * Foundation" must not be used to endorse or promote products derived | |||||
| * from this software without prior written permission. For written | |||||
| * permission, please contact apache@apache.org. | |||||
| * | |||||
| * 5. Products derived from this software may not be called "Apache" | |||||
| * nor may "Apache" appear in their names without prior written | |||||
| * permission of the Apache Group. | |||||
| * | |||||
| * THIS SOFTWARE IS PROVIDED ``AS IS'' AND ANY EXPRESSED OR IMPLIED | |||||
| * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES | |||||
| * OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE | |||||
| * DISCLAIMED. IN NO EVENT SHALL THE APACHE SOFTWARE FOUNDATION OR | |||||
| * ITS CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, | |||||
| * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT | |||||
| * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF | |||||
| * USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND | |||||
| * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, | |||||
| * OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT | |||||
| * OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF | |||||
| * SUCH DAMAGE. | |||||
| * ==================================================================== | |||||
| * | |||||
| * This software consists of voluntary contributions made by many | |||||
| * individuals on behalf of the Apache Software Foundation. For more | |||||
| * information on the Apache Software Foundation, please see | |||||
| * <http://www.apache.org/>. | |||||
| */ | |||||
| package org.apache.tools.ant.taskdefs; | |||||
| import java.io.File; | |||||
| import org.apache.tools.ant.BuildException; | |||||
| import org.apache.tools.ant.Task; | |||||
| /** | |||||
| * Task to determine the directory name of the specified file. | |||||
| * | |||||
| * This task can accept the following attributes: | |||||
| * <ul> | |||||
| * <li>file | |||||
| * <li>property | |||||
| * </ul> | |||||
| * Both <b>file</b> and <b>property</b> are required. | |||||
| * <p> | |||||
| * When this task executes, it will set the specified property to the | |||||
| * value of the specified file up to, but not including, the last path | |||||
| * element. If file is a file, the directory will be the current | |||||
| * directory. | |||||
| * | |||||
| * @author Diane Holt <a href="mailto:holtdl@apache.org">holtdl@apache.org</a> | |||||
| * | |||||
| * @version $Revision$ | |||||
| * | |||||
| * @ant.task category="property" | |||||
| */ | |||||
| public class Dirname extends Task { | |||||
| private File file; | |||||
| private String property; | |||||
| // The setter for the `file' attribute | |||||
| public void setFile(File file) { | |||||
| this.file = file; | |||||
| } | |||||
| // The setter for the `property' attribute | |||||
| public void setProperty(String property) { | |||||
| this.property = property ; | |||||
| } | |||||
| // The method executing the task | |||||
| public void execute() throws BuildException { | |||||
| if (property == null) { | |||||
| throw new BuildException("property attribute required", location); | |||||
| } | |||||
| if (file == null) { | |||||
| throw new BuildException("file attribute required", location); | |||||
| } else { | |||||
| String value = file.getParent(); | |||||
| this.project.setProperty(property, value); | |||||
| } | |||||
| } | |||||
| } | |||||
| @@ -61,6 +61,8 @@ input=org.apache.tools.ant.taskdefs.Input | |||||
| loadfile=org.apache.tools.ant.taskdefs.LoadFile | loadfile=org.apache.tools.ant.taskdefs.LoadFile | ||||
| manifest=org.apache.tools.ant.taskdefs.Manifest | manifest=org.apache.tools.ant.taskdefs.Manifest | ||||
| loadproperties=org.apache.tools.ant.taskdefs.LoadProperties | loadproperties=org.apache.tools.ant.taskdefs.LoadProperties | ||||
| basename=org.apache.tools.ant.taskdefs.Basename | |||||
| dirname=org.apache.tools.ant.taskdefs.Dirname | |||||
| # optional tasks | # optional tasks | ||||
| script=org.apache.tools.ant.taskdefs.optional.Script | script=org.apache.tools.ant.taskdefs.optional.Script | ||||
| @@ -0,0 +1,103 @@ | |||||
| /* | |||||
| * The Apache Software License, Version 1.1 | |||||
| * | |||||
| * Copyright (c) 2000-2001 The Apache Software Foundation. All rights | |||||
| * reserved. | |||||
| * | |||||
| * Redistribution and use in source and binary forms, with or without | |||||
| * modification, are permitted provided that the following conditions | |||||
| * are met: | |||||
| * | |||||
| * 1. Redistributions of source code must retain the above copyright | |||||
| * notice, this list of conditions and the following disclaimer. | |||||
| * | |||||
| * 2. Redistributions in binary form must reproduce the above copyright | |||||
| * notice, this list of conditions and the following disclaimer in | |||||
| * the documentation and/or other materials provided with the | |||||
| * distribution. | |||||
| * | |||||
| * 3. The end-user documentation included with the redistribution, if | |||||
| * any, must include the following acknowlegement: | |||||
| * "This product includes software developed by the | |||||
| * Apache Software Foundation (http://www.apache.org/)." | |||||
| * Alternately, this acknowlegement may appear in the software itself, | |||||
| * if and wherever such third-party acknowlegements normally appear. | |||||
| * | |||||
| * 4. The names "The Jakarta Project", "Ant", and "Apache Software | |||||
| * Foundation" must not be used to endorse or promote products derived | |||||
| * from this software without prior written permission. For written | |||||
| * permission, please contact apache@apache.org. | |||||
| * | |||||
| * 5. Products derived from this software may not be called "Apache" | |||||
| * nor may "Apache" appear in their names without prior written | |||||
| * permission of the Apache Group. | |||||
| * | |||||
| * THIS SOFTWARE IS PROVIDED ``AS IS'' AND ANY EXPRESSED OR IMPLIED | |||||
| * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES | |||||
| * OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE | |||||
| * DISCLAIMED. IN NO EVENT SHALL THE APACHE SOFTWARE FOUNDATION OR | |||||
| * ITS CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, | |||||
| * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT | |||||
| * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF | |||||
| * USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND | |||||
| * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, | |||||
| * OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT | |||||
| * OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF | |||||
| * SUCH DAMAGE. | |||||
| * ==================================================================== | |||||
| * | |||||
| * This software consists of voluntary contributions made by many | |||||
| * individuals on behalf of the Apache Software Foundation. For more | |||||
| * information on the Apache Software Foundation, please see | |||||
| * <http://www.apache.org/>. | |||||
| */ | |||||
| package org.apache.tools.ant.taskdefs; | |||||
| import java.io.File; | |||||
| import org.apache.tools.ant.BuildFileTest; | |||||
| /** | |||||
| * @author Diane Holt <holtdl@apache.org> | |||||
| */ | |||||
| public class BasenameTest extends BuildFileTest { | |||||
| public BasenameTest(String name) { | |||||
| super(name); | |||||
| } | |||||
| public void setUp() { | |||||
| configureProject("src/etc/testcases/taskdefs/basename.xml"); | |||||
| } | |||||
| public void test1() { | |||||
| expectBuildException("test1", "required attribute missing"); | |||||
| } | |||||
| public void test2() { | |||||
| expectBuildException("test2", "required attribute missing"); | |||||
| } | |||||
| public void test3() { | |||||
| expectBuildException("test3", "required attribute missing"); | |||||
| } | |||||
| public void test4() { | |||||
| executeTarget("test4"); | |||||
| String expected = "foo.txt"; | |||||
| String checkprop = project.getProperty("file.w.suf"); | |||||
| if (!checkprop.equals(expected)) { | |||||
| fail("basename failed"); | |||||
| } | |||||
| } | |||||
| public void test5() { | |||||
| executeTarget("test5"); | |||||
| String expected = "foo"; | |||||
| String checkprop = project.getProperty("file.wo.suf"); | |||||
| if (!checkprop.equals(expected)) { | |||||
| fail("basename failed"); | |||||
| } | |||||
| } | |||||
| } | |||||
| @@ -0,0 +1,104 @@ | |||||
| /* | |||||
| * The Apache Software License, Version 1.1 | |||||
| * | |||||
| * Copyright (c) 2000-2001 The Apache Software Foundation. All rights | |||||
| * reserved. | |||||
| * | |||||
| * Redistribution and use in source and binary forms, with or without | |||||
| * modification, are permitted provided that the following conditions | |||||
| * are met: | |||||
| * | |||||
| * 1. Redistributions of source code must retain the above copyright | |||||
| * notice, this list of conditions and the following disclaimer. | |||||
| * | |||||
| * 2. Redistributions in binary form must reproduce the above copyright | |||||
| * notice, this list of conditions and the following disclaimer in | |||||
| * the documentation and/or other materials provided with the | |||||
| * distribution. | |||||
| * | |||||
| * 3. The end-user documentation included with the redistribution, if | |||||
| * any, must include the following acknowlegement: | |||||
| * "This product includes software developed by the | |||||
| * Apache Software Foundation (http://www.apache.org/)." | |||||
| * Alternately, this acknowlegement may appear in the software itself, | |||||
| * if and wherever such third-party acknowlegements normally appear. | |||||
| * | |||||
| * 4. The names "The Jakarta Project", "Ant", and "Apache Software | |||||
| * Foundation" must not be used to endorse or promote products derived | |||||
| * from this software without prior written permission. For written | |||||
| * permission, please contact apache@apache.org. | |||||
| * | |||||
| * 5. Products derived from this software may not be called "Apache" | |||||
| * nor may "Apache" appear in their names without prior written | |||||
| * permission of the Apache Group. | |||||
| * | |||||
| * THIS SOFTWARE IS PROVIDED ``AS IS'' AND ANY EXPRESSED OR IMPLIED | |||||
| * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES | |||||
| * OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE | |||||
| * DISCLAIMED. IN NO EVENT SHALL THE APACHE SOFTWARE FOUNDATION OR | |||||
| * ITS CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, | |||||
| * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT | |||||
| * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF | |||||
| * USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND | |||||
| * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, | |||||
| * OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT | |||||
| * OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF | |||||
| * SUCH DAMAGE. | |||||
| * ==================================================================== | |||||
| * | |||||
| * This software consists of voluntary contributions made by many | |||||
| * individuals on behalf of the Apache Software Foundation. For more | |||||
| * information on the Apache Software Foundation, please see | |||||
| * <http://www.apache.org/>. | |||||
| */ | |||||
| package org.apache.tools.ant.taskdefs; | |||||
| import java.io.File; | |||||
| import org.apache.tools.ant.BuildFileTest; | |||||
| /** | |||||
| * @author Diane Holt <holtdl@apache.org> | |||||
| */ | |||||
| public class DirnameTest extends BuildFileTest { | |||||
| public DirnameTest(String name) { | |||||
| super(name); | |||||
| } | |||||
| public void setUp() { | |||||
| configureProject("src/etc/testcases/taskdefs/dirname.xml"); | |||||
| } | |||||
| public void test1() { | |||||
| expectBuildException("test1", "required attribute missing"); | |||||
| } | |||||
| public void test2() { | |||||
| expectBuildException("test2", "required attribute missing"); | |||||
| } | |||||
| public void test3() { | |||||
| expectBuildException("test3", "required attribute missing"); | |||||
| } | |||||
| public void test4() { | |||||
| executeTarget("test4"); | |||||
| String filesep = System.getProperty("file.separator"); | |||||
| String expected = filesep + "usr" + filesep + "local"; | |||||
| String checkprop = project.getProperty("local.dir"); | |||||
| if (!checkprop.equals(expected)) { | |||||
| fail("dirname failed"); | |||||
| } | |||||
| } | |||||
| public void test5() { | |||||
| executeTarget("test5"); | |||||
| String expected = project.getProperty("basedir"); | |||||
| String checkprop = project.getProperty("base.dir"); | |||||
| if (!checkprop.equals(expected)) { | |||||
| fail("dirname failed"); | |||||
| } | |||||
| } | |||||
| } | |||||