|
|
@@ -1,7 +1,7 @@ |
|
|
|
/* |
|
|
|
* The Apache Software License, Version 1.1 |
|
|
|
* |
|
|
|
* Copyright (c) 2000-2001 The Apache Software Foundation. All rights |
|
|
|
* Copyright (c) 2000-2002 The Apache Software Foundation. All rights |
|
|
|
* reserved. |
|
|
|
* |
|
|
|
* Redistribution and use in source and binary forms, with or without |
|
|
@@ -86,7 +86,7 @@ public class PathTest extends TestCase { |
|
|
|
} |
|
|
|
|
|
|
|
// actually tests constructor as well as setPath |
|
|
|
public void testConstructor() { |
|
|
|
public void testConstructorUnixStyle() { |
|
|
|
Path p = new Path(project, "/a:/b"); |
|
|
|
String[] l = p.list(); |
|
|
|
assertEquals("two items, Unix style", 2, l.length); |
|
|
@@ -100,9 +100,11 @@ public class PathTest extends TestCase { |
|
|
|
assertEquals(":\\a", l[0].substring(1)); |
|
|
|
assertEquals(":\\b", l[1].substring(1)); |
|
|
|
} |
|
|
|
} |
|
|
|
|
|
|
|
p = new Path(project, "\\a;\\b"); |
|
|
|
l = p.list(); |
|
|
|
public void testConstructorWindowsStyle() { |
|
|
|
Path p = new Path(project, "\\a;\\b"); |
|
|
|
String[] l = p.list(); |
|
|
|
assertEquals("two items, DOS style", 2, l.length); |
|
|
|
if (isUnixStyle) { |
|
|
|
assertEquals("/a", l[0]); |
|
|
@@ -115,36 +117,39 @@ public class PathTest extends TestCase { |
|
|
|
assertEquals(":\\b", l[1].substring(1)); |
|
|
|
} |
|
|
|
|
|
|
|
p = new Path(project, "\\a;\\b:/c"); |
|
|
|
p = new Path(project, "c:\\test"); |
|
|
|
l = p.list(); |
|
|
|
assertEquals("three items, mixed style", 3, l.length); |
|
|
|
if (isUnixStyle) { |
|
|
|
assertEquals("/a", l[0]); |
|
|
|
assertEquals("/b", l[1]); |
|
|
|
assertEquals("/c", l[2]); |
|
|
|
assertEquals("no drives on Unix", 2, l.length); |
|
|
|
assertTrue("c resolved relative to project\'s basedir", |
|
|
|
l[0].endsWith("/c")); |
|
|
|
assertEquals("/test", l[1]); |
|
|
|
} else if (isNetWare) { |
|
|
|
assertEquals("\\a", l[0]); |
|
|
|
assertEquals("\\b", l[1]); |
|
|
|
assertEquals("\\c", l[2]); |
|
|
|
assertEquals("volumes on NetWare", 1, l.length); |
|
|
|
assertEquals("c:\\test", l[0].toLowerCase(Locale.US)); |
|
|
|
} else { |
|
|
|
assertEquals(":\\a", l[0].substring(1)); |
|
|
|
assertEquals(":\\b", l[1].substring(1)); |
|
|
|
assertEquals(":\\c", l[2].substring(1)); |
|
|
|
} |
|
|
|
assertEquals("drives on DOS", 1, l.length); |
|
|
|
assertEquals("c:\\test", l[0].toLowerCase(Locale.US)); |
|
|
|
} |
|
|
|
|
|
|
|
p = new Path(project, "c:\\test"); |
|
|
|
p = new Path(project, "c:\\test;d:\\programs"); |
|
|
|
l = p.list(); |
|
|
|
if (isUnixStyle) { |
|
|
|
assertEquals("no drives on Unix", 2, l.length); |
|
|
|
assertEquals("no drives on Unix", 4, l.length); |
|
|
|
assertTrue("c resolved relative to project\'s basedir", |
|
|
|
l[0].endsWith("/c")); |
|
|
|
assertEquals("/test", l[1]); |
|
|
|
assertTrue("d resolved relative to project\'s basedir", |
|
|
|
l[2].endsWith("/d")); |
|
|
|
assertEquals("/programs", l[3]); |
|
|
|
} else if (isNetWare) { |
|
|
|
assertEquals("volumes on NetWare", 1, l.length); |
|
|
|
assertEquals("volumes on NetWare", 2, l.length); |
|
|
|
assertEquals("c:\\test", l[0].toLowerCase(Locale.US)); |
|
|
|
assertEquals("d:\\programs", l[1].toLowerCase(Locale.US)); |
|
|
|
} else { |
|
|
|
assertEquals("drives on DOS", 1, l.length); |
|
|
|
assertEquals("drives on DOS", 2, l.length); |
|
|
|
assertEquals("c:\\test", l[0].toLowerCase(Locale.US)); |
|
|
|
assertEquals("d:\\programs", l[1].toLowerCase(Locale.US)); |
|
|
|
} |
|
|
|
|
|
|
|
p = new Path(project, "c:/test"); |
|
|
@@ -161,6 +166,139 @@ public class PathTest extends TestCase { |
|
|
|
assertEquals("drives on DOS", 1, l.length); |
|
|
|
assertEquals("c:\\test", l[0].toLowerCase(Locale.US)); |
|
|
|
} |
|
|
|
|
|
|
|
p = new Path(project, "c:/test;d:/programs"); |
|
|
|
l = p.list(); |
|
|
|
if (isUnixStyle) { |
|
|
|
assertEquals("no drives on Unix", 4, l.length); |
|
|
|
assertTrue("c resolved relative to project\'s basedir", |
|
|
|
l[0].endsWith("/c")); |
|
|
|
assertEquals("/test", l[1]); |
|
|
|
assertTrue("d resolved relative to project\'s basedir", |
|
|
|
l[2].endsWith("/d")); |
|
|
|
assertEquals("/programs", l[3]); |
|
|
|
} else if (isNetWare) { |
|
|
|
assertEquals("volumes on NetWare", 2, l.length); |
|
|
|
assertEquals("c:\\test", l[0].toLowerCase(Locale.US)); |
|
|
|
assertEquals("d:\\programs", l[1].toLowerCase(Locale.US)); |
|
|
|
} else { |
|
|
|
assertEquals("drives on DOS", 2, l.length); |
|
|
|
assertEquals("c:\\test", l[0].toLowerCase(Locale.US)); |
|
|
|
assertEquals("d:\\programs", l[1].toLowerCase(Locale.US)); |
|
|
|
} |
|
|
|
} |
|
|
|
|
|
|
|
public void testConstructorNetWareStyle() { |
|
|
|
// try a netware-volume length path, see how it is handled |
|
|
|
Path p = new Path(project, "sys:\\test"); |
|
|
|
String[] l = p.list(); |
|
|
|
if (isUnixStyle) { |
|
|
|
assertEquals("no drives on Unix", 2, l.length); |
|
|
|
assertTrue("sys resolved relative to project\'s basedir", |
|
|
|
l[0].endsWith("/sys")); |
|
|
|
assertEquals("/test", l[1]); |
|
|
|
} else if (isNetWare) { |
|
|
|
assertEquals("sys:\\test", l[0].toLowerCase(Locale.US)); |
|
|
|
assertEquals("volumes on NetWare", 1, l.length); |
|
|
|
} else { |
|
|
|
assertEquals("no multiple character-length volumes on Windows", 2, l.length); |
|
|
|
assertTrue("sys resolved relative to project\'s basedir", |
|
|
|
l[0].endsWith("\\sys")); |
|
|
|
assertTrue("test resolved relative to project\'s basedir", |
|
|
|
l[1].endsWith("\\test")); |
|
|
|
} |
|
|
|
|
|
|
|
// try a multi-part netware-volume length path, see how it is handled |
|
|
|
p = new Path(project, "sys:\\test;dev:\\temp"); |
|
|
|
l = p.list(); |
|
|
|
if (isUnixStyle) { |
|
|
|
assertEquals("no drives on Unix", 4, l.length); |
|
|
|
assertTrue("sys resolved relative to project\'s basedir", |
|
|
|
l[0].endsWith("/sys")); |
|
|
|
assertEquals("/test", l[1]); |
|
|
|
assertTrue("dev resolved relative to project\'s basedir", |
|
|
|
l[2].endsWith("/dev")); |
|
|
|
assertEquals("/temp", l[3]); |
|
|
|
} else if (isNetWare) { |
|
|
|
assertEquals("volumes on NetWare", 2, l.length); |
|
|
|
assertEquals("sys:\\test", l[0].toLowerCase(Locale.US)); |
|
|
|
assertEquals("dev:\\temp", l[1].toLowerCase(Locale.US)); |
|
|
|
} else { |
|
|
|
assertEquals("no multiple character-length volumes on Windows", 4, l.length); |
|
|
|
assertTrue("sys resolved relative to project\'s basedir", |
|
|
|
l[0].endsWith("\\sys")); |
|
|
|
assertTrue("test resolved relative to project\'s basedir", |
|
|
|
l[1].endsWith("\\test")); |
|
|
|
assertTrue("dev resolved relative to project\'s basedir", |
|
|
|
l[2].endsWith("\\dev")); |
|
|
|
assertTrue("temp resolved relative to project\'s basedir", |
|
|
|
l[3].endsWith("\\temp")); |
|
|
|
} |
|
|
|
|
|
|
|
// try a netware-volume length path w/forward slash, see how it is handled |
|
|
|
p = new Path(project, "sys:/test"); |
|
|
|
l = p.list(); |
|
|
|
if (isUnixStyle) { |
|
|
|
assertEquals("no drives on Unix", 2, l.length); |
|
|
|
assertTrue("sys resolved relative to project\'s basedir", |
|
|
|
l[0].endsWith("/sys")); |
|
|
|
assertEquals("/test", l[1]); |
|
|
|
} else if (isNetWare) { |
|
|
|
assertEquals("volumes on NetWare", 1, l.length); |
|
|
|
assertEquals("sys:\\test", l[0].toLowerCase(Locale.US)); |
|
|
|
} else { |
|
|
|
assertEquals("no multiple character-length volumes on Windows", 2, l.length); |
|
|
|
assertTrue("sys resolved relative to project\'s basedir", |
|
|
|
l[0].endsWith("\\sys")); |
|
|
|
assertTrue("test resolved relative to project\'s basedir", |
|
|
|
l[1].endsWith("\\test")); |
|
|
|
} |
|
|
|
|
|
|
|
// try a multi-part netware-volume length path w/forward slash, see how it is handled |
|
|
|
p = new Path(project, "sys:/test;dev:/temp"); |
|
|
|
l = p.list(); |
|
|
|
if (isUnixStyle) { |
|
|
|
assertEquals("no drives on Unix", 4, l.length); |
|
|
|
assertTrue("sys resolved relative to project\'s basedir", |
|
|
|
l[0].endsWith("/sys")); |
|
|
|
assertEquals("/test", l[1]); |
|
|
|
assertTrue("dev resolved relative to project\'s basedir", |
|
|
|
l[2].endsWith("/dev")); |
|
|
|
assertEquals("/temp", l[3]); |
|
|
|
} else if (isNetWare) { |
|
|
|
assertEquals("volumes on NetWare", 2, l.length); |
|
|
|
assertEquals("sys:\\test", l[0].toLowerCase(Locale.US)); |
|
|
|
assertEquals("dev:\\temp", l[1].toLowerCase(Locale.US)); |
|
|
|
} else { |
|
|
|
assertEquals("no multiple character-length volumes on Windows", 4, l.length); |
|
|
|
assertTrue("sys resolved relative to project\'s basedir", |
|
|
|
l[0].endsWith("\\sys")); |
|
|
|
assertTrue("test resolved relative to project\'s basedir", |
|
|
|
l[1].endsWith("\\test")); |
|
|
|
assertTrue("dev resolved relative to project\'s basedir", |
|
|
|
l[2].endsWith("\\dev")); |
|
|
|
assertTrue("temp resolved relative to project\'s basedir", |
|
|
|
l[3].endsWith("\\temp")); |
|
|
|
} |
|
|
|
} |
|
|
|
|
|
|
|
public void testConstructorMixedStyle() { |
|
|
|
Path p = new Path(project, "\\a;\\b:/c"); |
|
|
|
String[] l = p.list(); |
|
|
|
assertEquals("three items, mixed style", 3, l.length); |
|
|
|
if (isUnixStyle) { |
|
|
|
assertEquals("/a", l[0]); |
|
|
|
assertEquals("/b", l[1]); |
|
|
|
assertEquals("/c", l[2]); |
|
|
|
} else if (isNetWare) { |
|
|
|
assertEquals("\\a", l[0]); |
|
|
|
assertEquals("\\b", l[1]); |
|
|
|
assertEquals("\\c", l[2]); |
|
|
|
} else { |
|
|
|
assertEquals(":\\a", l[0].substring(1)); |
|
|
|
assertEquals(":\\b", l[1].substring(1)); |
|
|
|
assertEquals(":\\c", l[2].substring(1)); |
|
|
|
} |
|
|
|
} |
|
|
|
|
|
|
|
public void testSetLocation() { |
|
|
|