Tests changes

The attached changes extend TaskdefsTest with a helper method for accessing its configured project's directory and update the relevant tasks to use this helped method. I did this because I needed to in order to be able to run the test from within VisualAge because I can't control the working directory (JBuilder has the same problem). However, the changes also clean up the tests and reduce the chance of error because they can now refer to files and directories relative to the same place their ant file does.

In addition, I added a new method TaskdefsTest.expectSpecificBuildException which verifies the message of the build exception rather than just that any build exception occurs (I did _not_ update all the tests to use this ;) .

I updated Get.xml to use www.apache.org instead of localhost. Either way it may not run for some people, but I think the chances of someone having an internet connection are much higher then them having a local web server.

Oh, and I created CopyTest.java. For some reason it seemed to be missing (even though there is a Copy.xml).

* files
? src/testcases/org/apache/tools/ant/taskdefs/CopyTest.java


Index: src/etc/testcases/taskdefs/copy.xml
===================================================================
RCS file: /home/cvspublic/jakarta-ant/src/etc/testcases/taskdefs/copy.xml,v
retrieving revision 1.3
diff -u -r1.3 copy.xml
--- src/etc/testcases/taskdefs/copy.xml	2000/12/18 15:43:51	1.3
+++ src/etc/testcases/taskdefs/copy.xml	2001/03/06 20:08:24
@@ -3,7 +3,17 @@
 <project name="copy-test" basedir="." default="test1">
 
   <target name="test1">
-    <copy file="copy.xml" todir="." overwrite="true"/>
+    <copy file="copy.xml" tofile="copytest1.tmp" />
   </target>
+ 
+  <target name="test2">
+    <copy file="copy.xml" todir="copytest1dir" overwrite="true"/>
+  </target>
+ 
+  <target name="cleanup"> 
+    <delete file="copytest1.tmp"/>
+    <delete dir="copytest1dir"/>
+  </target>
+
 
 </project>
Index: src/etc/testcases/taskdefs/deltree.xml
===================================================================
RCS file: /home/cvspublic/jakarta-ant/src/etc/testcases/taskdefs/deltree.xml,v
retrieving revision 1.2
diff -u -r1.2 deltree.xml
--- src/etc/testcases/taskdefs/deltree.xml	2000/12/18 15:43:53	1.2
+++ src/etc/testcases/taskdefs/deltree.xml	2001/03/06 20:08:24
@@ -7,7 +7,7 @@
   </target>
 
   <target name="test2">
-    <deltree dir="src/etc/testcases/taskdefs.tmp"/>
+    <deltree dir="taskdefs.tmp"/>
   </target>
 
 </project>
Index: src/etc/testcases/taskdefs/get.xml
===================================================================
RCS file: /home/cvspublic/jakarta-ant/src/etc/testcases/taskdefs/get.xml,v
retrieving revision 1.2
diff -u -r1.2 get.xml
--- src/etc/testcases/taskdefs/get.xml	2000/12/18 15:43:55	1.2
+++ src/etc/testcases/taskdefs/get.xml	2001/03/06 20:08:24
@@ -19,11 +19,11 @@
   </target>
 
   <target name="test5">
-    <get src="http://localhost" dest=""/>
+    <get src="http://www.apache.org" dest=""/>
   </target>
 
   <target name="test6">
-    <get src="http://localhost" dest="get.tmp"/>
+    <get src="http://www.apache.org" dest="get.tmp"/>
   </target>
 
 </project>

Index: src/testcases/org/apache/tools/ant/taskdefs/CopydirTest.java
===================================================================
RCS file: /home/cvspublic/jakarta-ant/src/testcases/org/apache/tools/ant/taskdefs/CopydirTest.java,v
retrieving revision 1.3
diff -u -r1.3 CopydirTest.java
--- src/testcases/org/apache/tools/ant/taskdefs/CopydirTest.java	2001/01/03 14:18:49	1.3
+++ src/testcases/org/apache/tools/ant/taskdefs/CopydirTest.java	2001/03/06 20:08:40
@@ -54,6 +54,8 @@
 
 package org.apache.tools.ant.taskdefs;
 
+import java.io.File;
+
 /**
  * @author Nico Seessle <nico@seessle.de> 
  */
@@ -85,7 +87,7 @@
     
     public void test5() { 
         executeTarget("test5");
-        java.io.File f = new java.io.File("src/etc/testcases/taskdefs.tmp");
+        java.io.File f = new java.io.File(getProjectDir(), "../taskdefs.tmp");
         if (!f.exists() || !f.isDirectory()) { 
             fail("Copy failed");
         }
Index: src/testcases/org/apache/tools/ant/taskdefs/CopyfileTest.java
===================================================================
RCS file: /home/cvspublic/jakarta-ant/src/testcases/org/apache/tools/ant/taskdefs/CopyfileTest.java,v
retrieving revision 1.3
diff -u -r1.3 CopyfileTest.java
--- src/testcases/org/apache/tools/ant/taskdefs/CopyfileTest.java	2001/01/03 14:18:49	1.3
+++ src/testcases/org/apache/tools/ant/taskdefs/CopyfileTest.java	2001/03/06 20:09:29
@@ -54,11 +54,18 @@
 
 package org.apache.tools.ant.taskdefs;
 
+import java.io.File;
+
 /**
  * @author Nico Seessle <nico@seessle.de> 
  */
 public class CopyfileTest extends TaskdefsTest { 
     
+/*
+    public void test6() { 
+        expectBuildException("test6", "target is directory");
+    }
+*/
     public CopyfileTest(String name) { 
         super(name);
     }    
@@ -85,7 +92,7 @@
 
     public void test5() { 
         executeTarget("test5");
-        java.io.File f = new java.io.File("src/etc/testcases/taskdefs/copyfile.tmp");
+        java.io.File f = new java.io.File(getProjectDir(), "copyfile.tmp");
         if (f.exists()) { 
             f.delete();
         } else {

Index: src/testcases/org/apache/tools/ant/taskdefs/FilterTest.java
===================================================================
RCS file: /home/cvspublic/jakarta-ant/src/testcases/org/apache/tools/ant/taskdefs/FilterTest.java,v
retrieving revision 1.3
diff -u -r1.3 FilterTest.java
--- src/testcases/org/apache/tools/ant/taskdefs/FilterTest.java	2001/01/03 14:18:49	1.3
+++ src/testcases/org/apache/tools/ant/taskdefs/FilterTest.java	2001/03/06 21:08:29
@@ -64,15 +64,13 @@
  * @author Nico Seessle <nico@seessle.de> 
  */
 public class FilterTest extends TaskdefsTest { 
-    
-    private final static String TASKDEFS_DIR = "src/etc/testcases/taskdefs/";
-    
+      
     public FilterTest(String name) { 
         super(name);
     }    
     
     public void setUp() { 
-        configureProject(TASKDEFS_DIR + "filter.xml");
+        configureProject("src/etc/testcases/taskdefs/filter.xml");
     }
 
     public void test1() { 
@@ -94,32 +92,32 @@
     public void test5() {
         executeTarget("test5");
         assertEquals("2000",
-                     getFilteredFile("5", TASKDEFS_DIR + "filtered.tmp"));
+                     getFilteredFile("5", "filtered.tmp"));
     }
-
+    
 
     public void test6() {
         executeTarget("test6");
         assertEquals("2000",
-                     getFilteredFile("6", TASKDEFS_DIR + "taskdefs.tmp/filter1.txt"));
+                     getFilteredFile("6", "taskdefs.tmp/filter1.txt"));
     }
 
     public void test7() {
         executeTarget("test7");
         assertEquals("<%@ include file=\"root/some/include.jsp\"%>",
-                     getFilteredFile("7", TASKDEFS_DIR + "filtered.tmp"));
+                     getFilteredFile("7", "filtered.tmp"));
     }
-    
+
     public void test8() {
         executeTarget("test8");
         assertEquals("<%@ include file=\"root/some/include.jsp\"%>",
-                     getFilteredFile("8", TASKDEFS_DIR + "taskdefs.tmp/filter2.txt"));
+                     getFilteredFile("8", "taskdefs.tmp/filter2.txt"));
     }
     
     private String getFilteredFile(String testNumber, String filteredFile) {
     
         String line = null;
-        File f = new File(filteredFile);
+        File f = new File(getProjectDir(), filteredFile);
         if (!f.exists()) {
             fail("filter test"+testNumber+" failed");
         } else {

Index: src/testcases/org/apache/tools/ant/taskdefs/GUnzipTest.java
===================================================================
RCS file: /home/cvspublic/jakarta-ant/src/testcases/org/apache/tools/ant/taskdefs/GUnzipTest.java,v
retrieving revision 1.2
diff -u -r1.2 GUnzipTest.java
--- src/testcases/org/apache/tools/ant/taskdefs/GUnzipTest.java	2001/01/03 14:18:49	1.2
+++ src/testcases/org/apache/tools/ant/taskdefs/GUnzipTest.java	2001/03/06 20:09:30
@@ -52,7 +52,9 @@
  * <http://www.apache.org/>.
  */
 
-package org.apache.tools.ant.taskdefs;
+ package org.apache.tools.ant.taskdefs;
+ 
+ import java.io.File;
 
 /**
  * @author Nico Seessle <nico@seessle.de> 
@@ -77,12 +79,12 @@
 
     public void test3() { 
         executeTarget("test3");
-        java.io.File f = new java.io.File("src/etc/testcases/taskdefs/gzip.tmp2");
+        java.io.File f = new File(getProjectDir(), "gzip.tmp2");
         if (!f.exists()) { 
             fail("gzip failed");
         } else {
             f.delete();
-            f = new java.io.File("src/etc/testcases/taskdefs/gzip.tmp");
+            f = new File(getProjectDir(), "gzip.tmp");
             if (f.exists()) f.delete();
         }
     }

Index: src/testcases/org/apache/tools/ant/taskdefs/GetTest.java
===================================================================
RCS file: /home/cvspublic/jakarta-ant/src/testcases/org/apache/tools/ant/taskdefs/GetTest.java,v
retrieving revision 1.3
diff -u -r1.3 GetTest.java
--- src/testcases/org/apache/tools/ant/taskdefs/GetTest.java	2001/02/18 19:25:56	1.3
+++ src/testcases/org/apache/tools/ant/taskdefs/GetTest.java	2001/03/06 20:09:30
@@ -54,6 +54,8 @@
 
 package org.apache.tools.ant.taskdefs;
 
+import java.io.File;
+
 /**
  * @author Nico Seessle <nico@seessle.de> 
  */
@@ -84,21 +86,18 @@
     }
 
     public void test5() { 
-        // We can't expect a build-system to have a webserver installed...
-        //expectBuildException("test5", "dest invalid (or no http-server on local machine)");
+        expectBuildException("test5", "dest invalid (or no http-server on local machine)");
     }
 
     public void test6() { 
-        // We can't expect a build-system to have a webserver installed...
-/*
         executeTarget("test6");
-        java.io.File f = new java.io.File("src/etc/testcases/taskdefs/get.tmp");
+        java.io.File f = new File(getProjectDir(), "get.tmp");
         if (!f.exists()) { 
             fail("get failed");
         } else {
             f.delete();
         }
-*/        
+        
     }
     
 }

Index: src/testcases/org/apache/tools/ant/taskdefs/GzipTest.java
===================================================================
RCS file: /home/cvspublic/jakarta-ant/src/testcases/org/apache/tools/ant/taskdefs/GzipTest.java,v
retrieving revision 1.2
diff -u -r1.2 GzipTest.java
--- src/testcases/org/apache/tools/ant/taskdefs/GzipTest.java	2001/01/03 14:18:49	1.2
+++ src/testcases/org/apache/tools/ant/taskdefs/GzipTest.java	2001/03/06 20:09:30
@@ -54,6 +54,8 @@
 
 package org.apache.tools.ant.taskdefs;
 
+import java.io.File;
+ 
 /**
  * @author Nico Seessle <nico@seessle.de> 
  */
@@ -85,7 +87,7 @@
 
     public void test5() { 
         executeTarget("test5");
-        java.io.File f = new java.io.File("src/etc/testcases/taskdefs/gzip.tmp");
+        java.io.File f = new java.io.File(getProjectDir(), "gzip.tmp");
         if (!f.exists()) { 
             fail("gzip failed");
         }

Index: src/testcases/org/apache/tools/ant/taskdefs/JarTest.java
===================================================================
RCS file: /home/cvspublic/jakarta-ant/src/testcases/org/apache/tools/ant/taskdefs/JarTest.java,v
retrieving revision 1.2
diff -u -r1.2 JarTest.java
--- src/testcases/org/apache/tools/ant/taskdefs/JarTest.java	2001/01/03 14:18:49	1.2
+++ src/testcases/org/apache/tools/ant/taskdefs/JarTest.java	2001/03/06 20:09:30
@@ -63,7 +63,7 @@
 public class JarTest extends TaskdefsTest {
 
     private static long jarModifiedDate;
-    private static String tempJar = "src/etc/testcases/taskdefs/tmp.jar";
+    private static String tempJar = "tmp.jar";
 
     public JarTest(String name) {
         super(name);
@@ -87,14 +87,14 @@
 
     public void test4() {
         executeTarget("test4");
-        File jarFile = new File(tempJar);
+        File jarFile = new File(getProjectDir(), tempJar);
         assert(jarFile.exists());
         jarModifiedDate = jarFile.lastModified();
     }
 
     public void XXXtest5() {
         executeTarget("test5");
-        File jarFile = new File(tempJar);
+        File jarFile = new File(getProjectDir(), tempJar);
         assertEquals(jarModifiedDate, jarFile.lastModified());
     }
 }

Index: src/testcases/org/apache/tools/ant/taskdefs/MkdirTest.java
===================================================================
RCS file: /home/cvspublic/jakarta-ant/src/testcases/org/apache/tools/ant/taskdefs/MkdirTest.java,v
retrieving revision 1.3
diff -u -r1.3 MkdirTest.java
--- src/testcases/org/apache/tools/ant/taskdefs/MkdirTest.java	2001/01/03 14:18:49	1.3
+++ src/testcases/org/apache/tools/ant/taskdefs/MkdirTest.java	2001/03/06 20:09:30
@@ -1,3 +1,5 @@
+package org.apache.tools.ant.taskdefs;
+
 /*
  * The Apache Software License, Version 1.1
  *
@@ -52,8 +54,6 @@
  * <http://www.apache.org/>.
  */
 
-package org.apache.tools.ant.taskdefs;
-
 /**
  * @author Nico Seessle <nico@seessle.de> 
  */
@@ -61,8 +61,8 @@
     
     public MkdirTest(String name) { 
         super(name);
-    }    
-    
+    }
+
     public void setUp() { 
         configureProject("src/etc/testcases/taskdefs/mkdir.xml");
     }
@@ -77,12 +77,11 @@
 
     public void test3() { 
         executeTarget("test3");
-        java.io.File f = new java.io.File("src/etc/testcases/taskdefs/testdir.tmp");
+        java.io.File f = new java.io.File(getProjectDir(), "testdir.tmp");
         if (!f.exists() || !f.isDirectory()) { 
             fail("mkdir failed");
         } else {
             f.delete();
         }
     }
-    
 }

Index: src/testcases/org/apache/tools/ant/taskdefs/TaskdefsTest.java
===================================================================
RCS file: /home/cvspublic/jakarta-ant/src/testcases/org/apache/tools/ant/taskdefs/TaskdefsTest.java,v
retrieving revision 1.4
diff -u -r1.4 TaskdefsTest.java
--- src/testcases/org/apache/tools/ant/taskdefs/TaskdefsTest.java	2001/02/18 13:44:43	1.4
+++ src/testcases/org/apache/tools/ant/taskdefs/TaskdefsTest.java	2001/03/06 21:33:53
@@ -79,12 +79,7 @@
     }
 
     protected void expectBuildException(String taskname, String cause) { 
-        try { 
-            executeTarget(taskname);
-        } catch (org.apache.tools.ant.BuildException ex) { 
-            return;
-        }
-        fail("Should throw BuildException because: " + cause);
+        expectSpecificBuildException(taskname, cause, null);
     }
 
     protected void expectOutput(String taskname, String output) { 
@@ -170,6 +165,21 @@
         
     }
     
+    protected File getProjectDir() {
+        return project.getBaseDir();
+    }
+
+    protected void expectSpecificBuildException(String taskname, String cause, String msg) { 
+        try { 
+            executeTarget(taskname);
+        } catch (org.apache.tools.ant.BuildException ex) {
+            if ((null != msg) && (ex.getMessage() != msg)) {
+                fail("Should throw BuildException because '" + cause + "' with message '" + msg + "' (received message '" + ex.getMessage() + "' instead)");
+            }
+            return;
+        }
+        fail("Should throw BuildException because: " + cause);
+    }
     private class AntOutputStream extends java.io.OutputStream { 
         public void write(int b) { 
             outBuffer.append((char)b);
