Browse Source

Adapted the FileUtils test to show behaviour based on os type.

git-svn-id: https://svn.apache.org/repos/asf/ant/core/trunk@277312 13f79535-47bb-0310-9956-ffa450edef68
master
Jacobus Martinus Kruithof 20 years ago
parent
commit
f334365459
2 changed files with 111 additions and 71 deletions
  1. +38
    -21
      src/testcases/org/apache/tools/ant/ProjectTest.java
  2. +73
    -50
      src/testcases/org/apache/tools/ant/util/FileUtilsTest.java

+ 38
- 21
src/testcases/org/apache/tools/ant/ProjectTest.java View File

@@ -20,6 +20,7 @@ package org.apache.tools.ant;
import org.apache.tools.ant.input.DefaultInputHandler; import org.apache.tools.ant.input.DefaultInputHandler;
import org.apache.tools.ant.input.InputHandler; import org.apache.tools.ant.input.InputHandler;
import org.apache.tools.ant.input.PropertyFileInputHandler; import org.apache.tools.ant.input.PropertyFileInputHandler;
import org.apache.tools.ant.taskdefs.condition.Os;
import org.apache.tools.ant.types.*; import org.apache.tools.ant.types.*;
import org.apache.tools.ant.util.JavaEnvUtils; import org.apache.tools.ant.util.JavaEnvUtils;


@@ -74,27 +75,43 @@ public class ProjectTest extends TestCase {
assertEquals(File.separator, assertEquals(File.separator,
p.resolveFile("\\", null).getPath()); p.resolveFile("\\", null).getPath());


/*
* throw in drive letters
*/
String driveSpec = "C:";
assertEquals(driveSpec + "\\",
p.resolveFile(driveSpec + "/", null).getPath());
assertEquals(driveSpec + "\\",
p.resolveFile(driveSpec + "\\", null).getPath());
String driveSpecLower = "c:";
assertEquals(driveSpec + "\\",
p.resolveFile(driveSpecLower + "/", null).getPath());
assertEquals(driveSpec + "\\",
p.resolveFile(driveSpecLower + "\\", null).getPath());
/*
* promised to eliminate consecutive slashes after drive letter.
*/
assertEquals(driveSpec + "\\",
p.resolveFile(driveSpec + "/////", null).getPath());
assertEquals(driveSpec + "\\",
p.resolveFile(driveSpec + "\\\\\\\\\\\\", null).getPath());

if (Os.isFamily("netware") || Os.isFamily("dos")) {
/*
* throw in drive letters
*/
String driveSpec = "C:";
assertEquals(driveSpec + "\\",
p.resolveFile(driveSpec + "/", null).getPath());
assertEquals(driveSpec + "\\",
p.resolveFile(driveSpec + "\\", null).getPath());
String driveSpecLower = "c:";
assertEquals(driveSpec + "\\",
p.resolveFile(driveSpecLower + "/", null).getPath());
assertEquals(driveSpec + "\\",
p.resolveFile(driveSpecLower + "\\", null).getPath());
/*
* promised to eliminate consecutive slashes after drive letter.
*/
assertEquals(driveSpec + "\\",
p.resolveFile(driveSpec + "/////", null).getPath());
assertEquals(driveSpec + "\\",
p.resolveFile(driveSpec + "\\\\\\\\\\\\", null).getPath());
} else {
/*
* drive letters are not used, just to be considered as normal
* part of a name
*/
String driveSpec = "C:";
assertEquals(driveSpec,
p.resolveFile(driveSpec + "/", null).getPath());
assertEquals(driveSpec,
p.resolveFile(driveSpec + "\\", null).getPath());
String driveSpecLower = "c:";
assertEquals(driveSpecLower,
p.resolveFile(driveSpecLower + "/", null).getPath());
assertEquals(driveSpecLower,
p.resolveFile(driveSpecLower + "\\", null).getPath());
}
/* /*
* Now test some relative file name magic. * Now test some relative file name magic.
*/ */


+ 73
- 50
src/testcases/org/apache/tools/ant/util/FileUtilsTest.java View File

@@ -109,37 +109,37 @@ public class FileUtilsTest extends TestCase {
assertEquals(File.separator, assertEquals(File.separator,
FILE_UTILS.resolveFile(null, "\\").getPath()); FILE_UTILS.resolveFile(null, "\\").getPath());


/*
* throw in drive letters
*/
String driveSpec = "C:";
assertEquals(driveSpec + "\\",
FILE_UTILS.resolveFile(null, driveSpec + "/").getPath());
assertEquals(driveSpec + "\\",
FILE_UTILS.resolveFile(null, driveSpec + "\\").getPath());
String driveSpecLower = "c:";
assertEquals(driveSpec + "\\",
FILE_UTILS.resolveFile(null, driveSpecLower + "/").getPath());
assertEquals(driveSpec + "\\",
FILE_UTILS.resolveFile(null, driveSpecLower + "\\").getPath());
/*
* promised to eliminate consecutive slashes after drive letter.
*/
assertEquals(driveSpec + "\\",
FILE_UTILS.resolveFile(null, driveSpec + "/////").getPath());
assertEquals(driveSpec + "\\",
FILE_UTILS.resolveFile(null, driveSpec + "\\\\\\\\\\\\").getPath());
if (Os.isFamily("netware")) {
if (Os.isFamily("dos")) {
/*
* throw in drive letters
*/
String driveSpec = "C:";
assertEquals(driveSpec + "\\",
FILE_UTILS.resolveFile(null, driveSpec + "/").getPath());
assertEquals(driveSpec + "\\",
FILE_UTILS.resolveFile(null, driveSpec + "\\").getPath());
String driveSpecLower = "c:";
assertEquals(driveSpec + "\\",
FILE_UTILS.resolveFile(null, driveSpecLower + "/").getPath());
assertEquals(driveSpec + "\\",
FILE_UTILS.resolveFile(null, driveSpecLower + "\\").getPath());
/*
* promised to eliminate consecutive slashes after drive letter.
*/
assertEquals(driveSpec + "\\",
FILE_UTILS.resolveFile(null, driveSpec + "/////").getPath());
assertEquals(driveSpec + "\\",
FILE_UTILS.resolveFile(null, driveSpec + "\\\\\\\\\\\\").getPath());
} else if (Os.isFamily("netware")) {
/* /*
* throw in NetWare volume names * throw in NetWare volume names
*/ */
driveSpec = "SYS:";
String driveSpec = "SYS:";
assertEquals(driveSpec, assertEquals(driveSpec,
FILE_UTILS.resolveFile(null, driveSpec + "/").getPath()); FILE_UTILS.resolveFile(null, driveSpec + "/").getPath());
assertEquals(driveSpec, assertEquals(driveSpec,
FILE_UTILS.resolveFile(null, driveSpec + "\\").getPath()); FILE_UTILS.resolveFile(null, driveSpec + "\\").getPath());
driveSpecLower = "sys:";
String driveSpecLower = "sys:";
assertEquals(driveSpec, assertEquals(driveSpec,
FILE_UTILS.resolveFile(null, driveSpecLower + "/").getPath()); FILE_UTILS.resolveFile(null, driveSpecLower + "/").getPath());
assertEquals(driveSpec, assertEquals(driveSpec,
@@ -151,6 +151,20 @@ public class FileUtilsTest extends TestCase {
FILE_UTILS.resolveFile(null, driveSpec + "/////").getPath()); FILE_UTILS.resolveFile(null, driveSpec + "/////").getPath());
assertEquals(driveSpec, assertEquals(driveSpec,
FILE_UTILS.resolveFile(null, driveSpec + "\\\\\\\\\\\\").getPath()); FILE_UTILS.resolveFile(null, driveSpec + "\\\\\\\\\\\\").getPath());
} else {
/*
* drive letters must be considered just normal filenames.
*/
String driveSpec = "C:";
assertEquals(driveSpec,
FILE_UTILS.resolveFile(null, driveSpec + "/").getPath());
assertEquals(driveSpec,
FILE_UTILS.resolveFile(null, driveSpec + "\\").getPath());
String driveSpecLower = "c:";
assertEquals(driveSpecLower,
FILE_UTILS.resolveFile(null, driveSpecLower + "/").getPath());
assertEquals(driveSpecLower,
FILE_UTILS.resolveFile(null, driveSpecLower + "\\").getPath());
} }


/* /*
@@ -191,41 +205,41 @@ public class FileUtilsTest extends TestCase {
assertEquals(File.separator, assertEquals(File.separator,
FILE_UTILS.normalize("\\").getPath()); FILE_UTILS.normalize("\\").getPath());


/*
* throw in drive letters
*/
String driveSpec = "C:";
assertEquals(driveSpec,
FILE_UTILS.normalize(driveSpec).getPath());
assertEquals(driveSpec + "\\",
FILE_UTILS.normalize(driveSpec + "/").getPath());
assertEquals(driveSpec + "\\",
FILE_UTILS.normalize(driveSpec + "\\").getPath());
String driveSpecLower = "c:";
assertEquals(driveSpec + "\\",
FILE_UTILS.normalize(driveSpecLower + "/").getPath());
assertEquals(driveSpec + "\\",
FILE_UTILS.normalize(driveSpecLower + "\\").getPath());
/*
* promised to eliminate consecutive slashes after drive letter.
*/
assertEquals(driveSpec + "\\",
FILE_UTILS.normalize(driveSpec + "/////").getPath());
assertEquals(driveSpec + "\\",
FILE_UTILS.normalize(driveSpec + "\\\\\\\\\\\\").getPath());
if (Os.isFamily("netware")) {
if (Os.isFamily("dos")) {
/*
* throw in drive letters
*/
String driveSpec = "C:";
assertEquals(driveSpec,
FILE_UTILS.normalize(driveSpec).getPath());
assertEquals(driveSpec + "\\",
FILE_UTILS.normalize(driveSpec + "/").getPath());
assertEquals(driveSpec + "\\",
FILE_UTILS.normalize(driveSpec + "\\").getPath());
String driveSpecLower = "c:";
assertEquals(driveSpec + "\\",
FILE_UTILS.normalize(driveSpecLower + "/").getPath());
assertEquals(driveSpec + "\\",
FILE_UTILS.normalize(driveSpecLower + "\\").getPath());
/*
* promised to eliminate consecutive slashes after drive letter.
*/
assertEquals(driveSpec + "\\",
FILE_UTILS.normalize(driveSpec + "/////").getPath());
assertEquals(driveSpec + "\\",
FILE_UTILS.normalize(driveSpec + "\\\\\\\\\\\\").getPath());
} else if (Os.isFamily("netware")) {
/* /*
* throw in NetWare volume names * throw in NetWare volume names
*/ */
driveSpec = "SYS:";
String driveSpec = "SYS:";
assertEquals(driveSpec, assertEquals(driveSpec,
FILE_UTILS.normalize(driveSpec).getPath()); FILE_UTILS.normalize(driveSpec).getPath());
assertEquals(driveSpec, assertEquals(driveSpec,
FILE_UTILS.normalize(driveSpec + "/").getPath()); FILE_UTILS.normalize(driveSpec + "/").getPath());
assertEquals(driveSpec, assertEquals(driveSpec,
FILE_UTILS.normalize(driveSpec + "\\").getPath()); FILE_UTILS.normalize(driveSpec + "\\").getPath());
driveSpecLower = "sys:";
String driveSpecLower = "sys:";
assertEquals(driveSpec, assertEquals(driveSpec,
FILE_UTILS.normalize(driveSpecLower).getPath()); FILE_UTILS.normalize(driveSpecLower).getPath());
assertEquals(driveSpec, assertEquals(driveSpec,
@@ -241,6 +255,15 @@ public class FileUtilsTest extends TestCase {
FILE_UTILS.normalize(driveSpec + "/////").getPath()); FILE_UTILS.normalize(driveSpec + "/////").getPath());
assertEquals(driveSpec, assertEquals(driveSpec,
FILE_UTILS.normalize(driveSpec + "\\\\\\\\\\\\").getPath()); FILE_UTILS.normalize(driveSpec + "\\\\\\\\\\\\").getPath());
} else {
try {
String driveSpec = "C:";
assertEquals(driveSpec,
FILE_UTILS.normalize(driveSpec).getPath());
fail("Expected failure, C: isn't an absolute path on other os's");
} catch (BuildException e) {
// Passed test
}
} }


/* /*


Loading…
Cancel
Save