ant-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From bode...@apache.org
Subject cvs commit: jakarta-ant/src/testcases/org/apache/tools/ant/taskdefs InputTest.java
Date Fri, 30 Nov 2001 12:24:17 GMT
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>  &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 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>


Mime
View raw message