bodewig 01/11/30 04:24:17
Modified: . WHATSNEW
docs/manual coretasklist.html
docs/manual/CoreTasks overview.html
src/main/org/apache/tools/ant/taskdefs defaults.properties
Added: docs/manual/CoreTasks input.html
src/etc/testcases/taskdefs input.xml
src/main/org/apache/tools/ant/taskdefs Input.java
src/testcases/org/apache/tools/ant/taskdefs InputTest.java
Log:
New task <input>
Submitted by: Ulrich Schmidt <ulrich.schmidt@gmx.net>
Revision Changes Path
1.182 +1 -1 jakarta-ant/WHATSNEW
Index: WHATSNEW
===================================================================
RCS file: /home/cvs/jakarta-ant/WHATSNEW,v
retrieving revision 1.181
retrieving revision 1.182
diff -u -r1.181 -r1.182
--- WHATSNEW 2001/11/30 12:05:27 1.181
+++ WHATSNEW 2001/11/30 12:24:16 1.182
@@ -63,7 +63,7 @@
* Added support for specifying CVS_RSH in the <cvs/> task
* New tasks bzip2 and bunzip2 to pack and unpack files using the
- BZip2 alogrithm, replaceregexp, checksum, translate, waitfor
+ BZip2 alogrithm, replaceregexp, checksum, translate, waitfor, input
* The attributes zipfile, jarfile, warfile and earfile (from the Zip,
Jar, War and Ear tasks) have been deprecated and superseded by a
1.28 +1 -1 jakarta-ant/docs/manual/coretasklist.html
Index: coretasklist.html
===================================================================
RCS file: /home/cvs/jakarta-ant/docs/manual/coretasklist.html,v
retrieving revision 1.27
retrieving revision 1.28
diff -u -r1.27 -r1.28
--- coretasklist.html 2001/11/30 12:05:27 1.27
+++ coretasklist.html 2001/11/30 12:24:16 1.28
@@ -51,6 +51,7 @@
<a href="CoreTasks/get.html">Get</a><br>
<a href="CoreTasks/unpack.html">GUnzip</a><br>
<a href="CoreTasks/pack.html">GZip</a><br>
+<a href="CoreTasks/input.html">Input</a><br>
<a href="CoreTasks/jar.html">Jar</a><br>
<a href="CoreTasks/java.html">Java</a><br>
<a href="CoreTasks/javac.html">Javac</a><br>
@@ -81,7 +82,6 @@
<a href="CoreTasks/unzip.html">Unwar</a><br>
<a href="CoreTasks/unzip.html">Unzip</a><br>
<a href="CoreTasks/uptodate.html">Uptodate</a><br>
-<a href="CoreTasks/waitfor.html">Waitfor</a><br>
<a href="CoreTasks/waitfor.html">Waitfor</a><br>
<a href="CoreTasks/war.html">War</a><br>
<a href="CoreTasks/zip.html">Zip</a><br>
1.4 +33 -27 jakarta-ant/docs/manual/CoreTasks/overview.html
Index: overview.html
===================================================================
RCS file: /home/cvs/jakarta-ant/docs/manual/CoreTasks/overview.html,v
retrieving revision 1.3
retrieving revision 1.4
diff -u -r1.3 -r1.4
--- overview.html 2001/09/08 01:05:17 1.3
+++ overview.html 2001/11/30 12:24:16 1.4
@@ -7,8 +7,8 @@
<body>
<h2>Overview of Ant core tasks</h2>
-<p>Given the large number of tasks available to a build designer, it may be
-difficult to get an overall view of what each task can do. The following
+<p>Given the large number of tasks available to a build designer, it may be
+difficult to get an overall view of what each task can do. The following
table provides a short description of each task and a link to the complete
documentation.</p>
@@ -28,37 +28,37 @@
<td><p>Call another target within the same build-file optionally specifying
some
properties.</p></td>
</tr>
-
+
<tr valign="top">
<td><a href="antstructure.html">AntStructure</a></td>
<td><p>Generates a DTD for Ant buildfiles which contains information
about all tasks currently known to Ant.</p></td>
</tr>
-
+
<tr valign="top">
<td><a href="apply.html">Apply/<i>ExecOn</i></a></td>
<td><p>Executes a system command. When the <i>os</i> attribute
is specified, then
the command is only executed when Ant is run on one of the specified operating
systems.</p></td>
</tr>
-
+
<tr valign="top">
<td><a href="available.html">Available</a></td>
<td><p>Sets a property if a resource is available at runtime. This resource
can be a
file, a directory, a class in the classpath, or a JVM system resource.</p></td>
</tr>
-
+
<tr valign="top">
<td><a href="chmod.html">Chmod</a></td>
- <td><p>Changes the permissions of a file or all files inside specified
directories.
- Right now it has effect only under Unix. The permissions are also UNIX style, like
+ <td><p>Changes the permissions of a file or all files inside specified
directories.
+ Right now it has effect only under Unix. The permissions are also UNIX style, like
the argument for the chmod command.</p></td>
</tr>
<tr valign="top">
<td><a href="condition.html">Condition</a></td>
<td><p>Sets a property if a certain condition holds true - this is a
- generalization of <a href="available.html">Available</a> and
+ generalization of <a href="available.html">Available</a> and
<a href="uptodate.html">Uptodate</a>.</p></td>
</tr>
@@ -79,20 +79,20 @@
<tr valign="top">
<td><a href="cvs.html">Cvs</a></td>
- <td><p>Handles packages/modules retrieved from a
+ <td><p>Handles packages/modules retrieved from a
<a href="http://www.cvshome.org/" target="_top">CVS</a> repository.</p></td>
</tr>
<tr valign="top">
<td><a href="cvspass.html">CVSPass</a></td>
- <td><p>Adds entries to a .cvspass file. Adding entries to this file has
the same
+ <td><p>Adds entries to a .cvspass file. Adding entries to this file has
the same
affect as a cvs login command.</p></td>
</tr>
<tr valign="top">
<td><a href="delete.html">Delete</a></td>
- <td><p>Deletes either a single file, all files in a specified directory
- and its sub-directories, or a set of files specified by one or more
+ <td><p>Deletes either a single file, all files in a specified directory
+ and its sub-directories, or a set of files specified by one or more
<a href="../CoreTypes/fileset.html">FileSet</a>s.</p></td>
</tr>
@@ -166,6 +166,12 @@
</tr>
<tr valign="top">
+ <td><a href="input.html">Input</a></td>
+ <td><p>Allows user interaction during the build process by displaying a
+message and reading a line of input from the console.</p></td>
+ </tr>
+
+ <tr valign="top">
<td><a href="jar.html">Jar</a></td>
<td><p>Jars a set of files.</p></td>
</tr>
@@ -184,7 +190,7 @@
<tr valign="top">
<td><a href="javadoc.html">Javadoc/<i>Javadoc2</i></a></td>
<td><p>Generates code documentation using the javadoc tool.</p>
- <p><i>The Javadoc2 task is deprecated. Use the Javadoc task
+ <p><i>The Javadoc2 task is deprecated. Use the Javadoc task
instead.</i></p></td>
</tr>
@@ -210,7 +216,7 @@
<td><p>Parallel is a container task - it can contain other Ant tasks. Each
nested
task within the parallel task will be executed in its own thread. </p> </td>
</tr>
-
+
<tr valign="top">
<td><a href="patch.html">Patch</a></td>
<td><p>Applies a diff file to originals.</p></td>
@@ -241,7 +247,7 @@
<tr valign="top">
<td><a href="replace.html">Replace</a></td>
- <td><p>Replace is a directory based task for replacing the occurrence of
a given string with another string
+ <td><p>Replace is a directory based task for replacing the occurrence of
a given string with another string
in selected file.</p></td>
</tr>
@@ -252,12 +258,12 @@
<tr valign="top">
<td><a href="sequential.html">Sequential</a></td>
- <td><p>Sequential is a container task - it can contain other Ant tasks.
The nested
- tasks are simply executed in sequence. Sequential's primary use is to support
- the sequential execution of a subset of tasks within the
+ <td><p>Sequential is a container task - it can contain other Ant tasks.
The nested
+ tasks are simply executed in sequence. Sequential's primary use is to support
+ the sequential execution of a subset of tasks within the
<a href="parallel.html">parallel</a> task</p></td>
</tr>
-
+
<tr valign="top">
<td><a href="signjar.html">SignJar</a></td>
<td><p>Signs a jar or zip file with the javasign command line tool.</p></td>
@@ -265,14 +271,14 @@
<tr valign="top">
<td><a href="sleep.html">Sleep</a></td>
- <td><p> A task for sleeping a short period of time, useful when a build
or
+ <td><p> A task for sleeping a short period of time, useful when a build
or
deployment process requires an interval between tasks.</p></td>
</tr>
<tr valign="top">
<td><a href="sql.html">Sql</a></td>
- <td><p>Executes a series of SQL statements via JDBC to a database. Statements
- can either be read in from a text file using the <i>src</i> attribute or
from
+ <td><p>Executes a series of SQL statements via JDBC to a database. Statements
+ can either be read in from a text file using the <i>src</i> attribute or
from
between the enclosing SQL tags.</p></td>
</tr>
@@ -300,8 +306,8 @@
<tr valign="top">
<td><a href="tstamp.html">TStamp</a></td>
- <td><p>Sets the <code>DSTAMP</code>, <code>TSTAMP</code>,
and
- <code>TODAY</code> properties in the current project based on
+ <td><p>Sets the <code>DSTAMP</code>, <code>TSTAMP</code>,
and
+ <code>TODAY</code> properties in the current project based on
the current date and time.</p></td>
</tr>
@@ -340,8 +346,8 @@
<tr valign="top">
<td><a href="war.html">War</a></td>
<td><p>An extension of the <a href="jar.html">Jar</a> task
with special
- treatment for files that should end up in the <code>WEB-INF/lib</code>,
- <code>WEB-INF/classes</code> or <code>WEB-INF</code> directories
of the
+ treatment for files that should end up in the <code>WEB-INF/lib</code>,
+ <code>WEB-INF/classes</code> or <code>WEB-INF</code> directories
of the
Web Application Archive.</p></td>
</tr>
1.1 jakarta-ant/docs/manual/CoreTasks/input.html
Index: input.html
===================================================================
<html>
<head>
<meta http-equiv="Content-Language" content="en-us">
<title>Ant User Manual</title>
</head>
<body>
<h2><a name="input">Input</a></h2>
<h3>Description</h3>
<p>Allows user interaction during the build process by displaying a message and
reading a line of input from the console (System.in). The user will need to press
the Return key.
</p>
<p>The message displayed can be set via the message attribute
or as character data nested into the element.</p>
<p>Optinonally a set of valid imput arguments can be defined via the validargs
attribute. Input task will require the user to reenter values until the entered
value matches one of the predefined.</p>
<p>Optionally a set of exit arguments can be defined via the exitargs attribute.
Input task will throw a BuildException with a customisable exit message if the
entered value matches one of the predefined.</p>
<p>Optionally a property can be created from the value entered by the user. This
property can then be used during the following build run. Input behaves according
to <a href="property.html">property task</a> which means that existing properties
cannot be overriden.</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">message</td>
<td valign="top">the Message which gets displayed to the user during the build
run.</td>
<td valign="top" align="center">No</td>
</tr>
<tr>
<td valign="top">exitmessage</td>
<td valign="top">the exit message which gets displayed when exiting the build
run.</td>
<td valign="top" align="center">No</td>
</tr>
<tr>
<td valign="top">validargs</td>
<td valign="top">comma separated String containing valid input arguments. If set,
input task will reject any input not defined here and input task will
require the user to reenter arguments until the entered one matches one of the
predefined. Validargs are compared case sensitive. If you want 'a' and 'A' to
be accepted you will need to define both arguments within validargs.</td>
<td valign="top" align="center">No</td>
</tr>
<tr>
<td valign="top">exitargs</td>
<td valign="top">comma separated String containing exit arguments. If set,
input task will throw a BuildException with a customisable exit message if the
entered value matches to one of the predefined. Exitargs are compared case
sensitive. If you want 'x' and 'X' to end the build run you will need to define
both arguments within exitargs.</td>
<td valign="top" align="center">No</td>
</tr>
<tr>
<td valign="top">addproperty</td>
<td valign="top">the name of a property to be created from input. Behaviour is
equal
to <a href="property.html">property task</a> which means that existing
properties
cannot be overriden.</td>
<td valign="top" align="center">No</td>
</tr>
</table>
<h3>Examples</h3>
<pre> <input/></pre>
<p>Will pause the build run until return key is pressed.</p>
<pre> <input>Press Return key to continue...</input></pre>
<p>Will display the message "Press Return key to continue..." and
pause
the build run until return key is pressed.</p>
<pre> <input
message="Press Return key to continue..."
/></pre>
<p>Will display the message "Press Return key to continue..." and
pause
the build run until return key is pressed.</p>
<pre> <input
message="All data is going to be deleted from DB continue (y/n)?"
validargs="y,n"
exitargs="n"
exitmessage="Build abborted by user."
/></pre>
<p>Will display the message "All data is going to be deleted from DB continue
(y/n)?" and require 'y+retrun key' to continue build or 'n+return key'
to exit build with following message "Build abborted by user.".</p>
<pre> <input
message="Please enter db-username:"
addproperty="db.user"
/></pre>
<p>Will display the message "Please enter db-username:" and set
the
property <code>db.user</code> to the value entered by the user.</p>
<hr>
<p align="center">Copyright © 2000,2001 Apache Software Foundation. All rights
Reserved.</p>
</body>
</html>
1.1 jakarta-ant/src/etc/testcases/taskdefs/input.xml
Index: input.xml
===================================================================
<?xml version="1.0"?>
<project name="input-test" basedir="." default="test1">
<target name="test1">
<input testinput="test">Press Return key to continue...</input>
</target>
<target name="test2">
<input testinput="test"
message="Press Return key to continue..."
/>
</target>
<target name="test3">
<input testinput="test"
message="All data is going to be deleted from DB continue (y/n)?"
validargs="y,n"
exitargs="n"
/>
</target>
<target name="test4">
<input testinput="n"
message="All data is going to be deleted from DB continue (y/n)?"
validargs="y,n"
exitargs="n"
/>
</target>
<target name="test5">
<input testinput="y"
message="All data is going to be deleted from DB continue (y/n)?"
validargs="y,n"
exitargs="n"
/>
</target>
<target name="test6">
<input testinput="scott"
message="Please enter db-username:"
addproperty="db.user"
/>
</target>
<target name="test7">
<input testinput="R"
message="Press 'R' to make you very rich!"
validargs="R"
exitargs="R"
exitmessage="Don't trust if you don't have the source ;-)"
/>
</target>
</project>
1.99 +1 -0 jakarta-ant/src/main/org/apache/tools/ant/taskdefs/defaults.properties
Index: defaults.properties
===================================================================
RCS file: /home/cvs/jakarta-ant/src/main/org/apache/tools/ant/taskdefs/defaults.properties,v
retrieving revision 1.98
retrieving revision 1.99
diff -u -r1.98 -r1.99
--- defaults.properties 2001/11/30 12:05:27 1.98
+++ defaults.properties 2001/11/30 12:24:17 1.99
@@ -57,6 +57,7 @@
bunzip2=org.apache.tools.ant.taskdefs.BUnzip2
checksum=org.apache.tools.ant.taskdefs.Checksum
waitfor=org.apache.tools.ant.taskdefs.WaitFor
+input=org.apache.tools.ant.taskdefs.Input
# optional tasks
script=org.apache.tools.ant.taskdefs.optional.Script
1.1 jakarta-ant/src/main/org/apache/tools/ant/taskdefs/Input.java
Index: Input.java
===================================================================
/*
* The Apache Software License, Version 1.1
*
* Copyright (c) 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.BufferedReader;
import java.io.InputStreamReader;
import java.io.IOException;
import java.util.StringTokenizer;
import java.util.Vector;
import org.apache.tools.ant.*;
/**
* Ant task to read input line from console.
*
* @author Ulrich Schmidt <usch@usch.net>
*/
public class Input extends Task {
private String validargs = null;
private String exitargs = null;
private String exitmessage = "Build abborted.";
private String message = "";
private String addproperty = null;
private String input = null;
/**
* Defines valid input parameters as comma separated String. If set, input
* task will reject any input not defined as accepted and requires the user
* to reenter it. Validargs are case sensitive. If you want 'a' and 'A' to
* be accepted you need to define both values as accepted arguments.
*
* @param validargs A comma separated String defining valid input args.
*/
public void setValidargs (String validargs) {
this.validargs = validargs;
}
/**
* Defines the name of a property to be created from input. Behaviour is
* according to property task which means that existing properties
* cannot be overriden.
*
* @param exitargs Name for the property to be created from input
*/
public void setAddproperty (String addproperty) {
this.addproperty = addproperty;
}
/*
* Defines exit condition parameters as comma separated String. If input
* matches one of these input task will end build by throwing a
* BuildException. ExitArgs are case sensitive. If you want the build to
* end on 'x' and 'X' you need to define both values as exit arguments.
*
* @param exitargs A comma separated String defining exit arguments.
*/
public void setExitargs (String exitargs) {
this.exitargs = exitargs;
}
/**
* Sets the ExitMessage which gets displayed when exiting the build run.
* Default is 'Build abborted.'
* @param exitmessage The exit message to be displayed.
*/
public void setExitmessage (String exitmessage) {
this.exitmessage = exitmessage;
}
/**
* Sets the Message which gets displayed to the user during the build run.
* @param message The message to be displayed.
*/
public void setMessage (String message) {
this.message = message;
}
/**
* Sets surrogate input to allow automated testing.
* @param input The surrogate input used for testing.
*/
public void setTestinput (String testinput) {
this.input = testinput;
}
/**
* No arg constructor.
*/
public Input () {
}
/**
* Actual test method executed by jakarta-ant.
* @exception BuildException
*/
public void execute () throws BuildException {
Vector accept = null;
if (validargs != null) {
accept = new Vector();
StringTokenizer stok = new StringTokenizer(validargs, ",", false);
while (stok.hasMoreTokens()) {
accept.addElement(stok.nextToken());
}
}
Vector exit = null;
if (exitargs != null) {
exit = new Vector();
StringTokenizer stok = new StringTokenizer(exitargs, ",", false);
while (stok.hasMoreTokens()) {
exit.addElement(stok.nextToken());
}
}
log(message, Project.MSG_WARN);
if (input == null) {
try {
BufferedReader in = new BufferedReader(new InputStreamReader(System.in));
input = in.readLine();
if (accept != null) {
while (!accept.contains(input)) {
log(message, Project.MSG_WARN);
input = in.readLine();
}
}
} catch (IOException e) {
throw new BuildException("Failed to read input from Console.", e);
}
}
// not quite the original intention of this task but for the sake
// of testing ;-)
else {
if (accept != null && (!accept.contains(input))) {
throw new BuildException("Invalid input please reenter.");
}
}
// adopted from org.apache.tools.ant.taskdefs.Property
if (addproperty != null) {
if (project.getProperty(addproperty) == null) {
project.setProperty(addproperty, input);
}
else {
log("Override ignored for " + addproperty, Project.MSG_VERBOSE);
}
}
if (exit != null && exit.contains(input)) {
throw new BuildException(exitmessage);
}
}
// copied n' pasted from org.apache.tools.ant.taskdefs.Exit
/**
* Set a multiline message.
*/
public void addText(String msg) {
message +=
ProjectHelper.replaceProperties(project, msg, project.getProperties());
}
}
1.1 jakarta-ant/src/testcases/org/apache/tools/ant/taskdefs/InputTest.java
Index: InputTest.java
===================================================================
/*
* The Apache Software License, Version 1.1
*
* Copyright (c) 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 org.apache.tools.ant.BuildFileTest;
/**
* @author Ulrich Schmidt <usch@usch.net>
*/
public class InputTest extends BuildFileTest {
public InputTest(String name) {
super(name);
}
public void setUp() {
configureProject("src/etc/testcases/taskdefs/input.xml");
}
public void test1() {
expectLog("test1", "Press Return key to continue...");
}
public void test2() {
expectLog("test2", "Press Return key to continue...");
}
public void test3() {
String log = "All data is going to be deleted from DB continue (y/n)?";
String message = "Invalid input please reenter.";
try {
executeTarget("test3");
} catch (org.apache.tools.ant.BuildException e) {
String realLog = getLog();
assertEquals(log, realLog);
assertEquals(message, e.getMessage());
}
}
public void test4() {
String log = "All data is going to be deleted from DB continue (y/n)?";
String message = "Build abborted.";
try {
executeTarget("test4");
} catch (org.apache.tools.ant.BuildException e) {
String realLog = getLog();
assertEquals(log, realLog);
assertEquals(message, e.getMessage());
}
}
public void test5() {
expectLog("test5",
"All data is going to be deleted from DB continue (y/n)?");
}
public void test6() {
expectLog("test6",
"Please enter db-username:");
assertEquals("scott", project.getProperty("db.user"));
}
public void test7() {
expectBuildException("test7",
"Don't trust if you don't have the source ;-)");
}
}
--
To unsubscribe, e-mail: <mailto:ant-dev-unsubscribe@jakarta.apache.org>
For additional commands, e-mail: <mailto:ant-dev-help@jakarta.apache.org>
|