⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 pathtest.java

📁 Use the links below to download a source distribution of Ant from one of our mirrors. It is good pra
💻 JAVA
📖 第 1 页 / 共 2 页
字号:
/* *  Licensed to the Apache Software Foundation (ASF) under one or more *  contributor license agreements.  See the NOTICE file distributed with *  this work for additional information regarding copyright ownership. *  The ASF licenses this file to You under the Apache License, Version 2.0 *  (the "License"); you may not use this file except in compliance with *  the License.  You may obtain a copy of the License at * *      http://www.apache.org/licenses/LICENSE-2.0 * *  Unless required by applicable law or agreed to in writing, software *  distributed under the License is distributed on an "AS IS" BASIS, *  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. *  See the License for the specific language governing permissions and *  limitations under the License. * */package org.apache.tools.ant.types;import java.io.File;import java.util.Locale;import junit.framework.TestCase;import org.apache.tools.ant.BuildException;import org.apache.tools.ant.Project;import org.apache.tools.ant.taskdefs.condition.Os;/** * JUnit 3 testcases for org.apache.tools.ant.types.Path * */public class PathTest extends TestCase {    public static boolean isUnixStyle = File.pathSeparatorChar == ':';    public static boolean isNetWare = Os.isFamily("netware");    private Project project;    public PathTest(String name) {        super(name);    }    public void setUp() {        project = new Project();        project.setBasedir(System.getProperty("root"));    }    // actually tests constructor as well as setPath    public void testConstructorUnixStyle() {        Path p = new Path(project, "/a:/b");        String[] l = p.list();        assertEquals("two items, Unix style", 2, l.length);        if (isUnixStyle) {            assertEquals("/a", l[0]);            assertEquals("/b", l[1]);        } else if (isNetWare) {            assertEquals("\\a", l[0]);            assertEquals("\\b", l[1]);        } else {            String base = new File(File.separator).getAbsolutePath();            assertEquals(base + "a", l[0]);            assertEquals(base + "b", l[1]);        }    }    public void testRelativePathUnixStyle() {        project.setBasedir(new File(System.getProperty("root"), "src/etc").getAbsolutePath());        Path p = new Path(project, "..:testcases");        String[] l = p.list();        assertEquals("two items, Unix style", 2, l.length);        if (isUnixStyle) {           assertTrue("test resolved relative to src/etc",                 l[0].endsWith("/src"));           assertTrue("test resolved relative to src/etc",                 l[1].endsWith("/src/etc/testcases"));        } else if (isNetWare) {           assertTrue("test resolved relative to src/etc",                 l[0].endsWith("\\src"));           assertTrue("test resolved relative to src/etc",                 l[1].endsWith("\\src\\etc\\testcases"));        } else {           assertTrue("test resolved relative to src/etc",                 l[0].endsWith("\\src"));           assertTrue("test resolved relative to src/etc",                 l[1].endsWith("\\src\\etc\\testcases"));        }    }    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]);            assertEquals("/b", l[1]);        } else if (isNetWare) {            assertEquals("\\a", l[0]);            assertEquals("\\b", l[1]);        } else {            String base = new File(File.separator).getAbsolutePath();            assertEquals(base + "a", l[0]);            assertEquals(base + "b", l[1]);        }        p = new Path(project, "c:\\test");        l = p.list();        if (isUnixStyle) {            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("volumes on NetWare", 1, l.length);            assertEquals("c:\\test", l[0].toLowerCase(Locale.US));        } else {            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));        }        p = new Path(project, "c:/test");        l = p.list();        if (isUnixStyle) {            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("volumes on NetWare", 1, l.length);            assertEquals("c:\\test", l[0].toLowerCase(Locale.US));        } else {            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"));         }        // try a multi-part netware-volume length path with UNIX        // separator (this testcase if from an actual bug that was        // found, in AvailableTest, which uses PathTokenizer)        p = new Path(project,                     "SYS:\\JAVA/lib/rt.jar:SYS:\\JAVA/lib/classes.zip");        l = p.list();        if (isUnixStyle) {            assertEquals("no drives on Unix", 3, l.length);            assertTrue("sys resolved relative to project\'s basedir",                   l[0].endsWith("/SYS"));            assertEquals("/JAVA/lib/rt.jar", l[1]);

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -