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 <[EMAIL PROTECTED]>
  
  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>  &lt;input/&gt;</pre>
  <p>Will pause the build run until return key is pressed.</p>
  <pre>  &lt;input&gt;Press Return key to continue...&lt;/input&gt;</pre>
  <p>Will display the message &quot;Press Return key to continue...&quot; and 
pause
  the build run until return key is pressed.</p>
  <pre>  &lt;input
      message=&quot;Press Return key to continue...&quot;
    /&gt;</pre>
  <p>Will display the message &quot;Press Return key to continue...&quot; and 
pause
  the build run until return key is pressed.</p>
  <pre>  &lt;input
      message=&quot;All data is going to be deleted from DB continue 
(y/n)?&quot;
      validargs=&quot;y,n&quot;
      exitargs=&quot;n&quot;
      exitmessage=&quot;Build abborted by user.&quot;
    /&gt;</pre>
  <p>Will display the message &quot;All data is going to be deleted from DB 
continue
  (y/n)?&quot; and require 'y+retrun key' to continue build or 'n+return key'
  to exit build with following message &quot;Build abborted by user.&quot;.</p>
  <pre>  &lt;input
      message=&quot;Please enter db-username:&quot;
      addproperty=&quot;db.user&quot;
    /&gt;</pre>
  <p>Will display the message &quot;Please enter db-username:&quot; and set the
  property <code>db.user</code> to the value entered by the user.</p>
  
  <hr>
  <p align="center">Copyright &copy; 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 [EMAIL PROTECTED]
   *
   * 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 <[EMAIL PROTECTED]>
   */
  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 [EMAIL PROTECTED]
   *
   * 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 <[EMAIL PROTECTED]>
   */
  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:[EMAIL PROTECTED]>
For additional commands, e-mail: <mailto:[EMAIL PROTECTED]>

Reply via email to