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

📄 directoryscannertest.java

📁 Use the links below to download a source distribution of Ant from one of our mirrors. It is good pra
💻 JAVA
📖 第 1 页 / 共 2 页
字号:
                    } else if (included[i].equals("ThisIsALink"                                                  + File.separator                                                  + "taskdefs")) {                        haveTaskdefsPackage = true;                    }                }                // if we followed the symlink we just made we should                // bypass the excludes.                assertTrue("(1) zip package included", haveZipPackage);                assertTrue("(1) taskdefs package included",                           haveTaskdefsPackage);                ds = new DirectoryScanner();                ds.setFollowSymlinks(false);                ds.setBasedir(dir);                ds.setExcludes(new String[] {"ant/**"});                ds.scan();                haveZipPackage = false;                haveTaskdefsPackage = false;                included = ds.getIncludedDirectories();                for (int i=0; i<included.length; i++) {                    if (included[i].equals("zip")) {                        haveZipPackage = true;                    } else if (included[i].equals("ThisIsALink"                                                  + File.separator                                                  + "taskdefs")) {                        haveTaskdefsPackage = true;                    }                }                assertTrue("(2) zip package included", haveZipPackage);                assertTrue("(2) taskdefs package not included",                           !haveTaskdefsPackage);            } finally {                System.err.println("link exists pre-delete? " + linkFile.exists());                if (!linkFile.delete()) {                    throw new RuntimeException("Failed to delete " + linkFile);                }                System.err.println("link exists post-delete? " + linkFile.exists());            }        }    }    public void testExcludeOneFile() {        DirectoryScanner ds = new DirectoryScanner();        ds.setBasedir(new File(getProject().getBaseDir(), "tmp"));        ds.setIncludes(new String[] {            "**/*.xml"        });        ds.setExcludes(new String[] {            "alpha/beta/b*xml"        });        ds.scan();        compareFiles(ds, new String[] {"alpha/beta/gamma/gamma.xml"},                     new String[] {});    }    public void testExcludeHasPrecedence() {        DirectoryScanner ds = new DirectoryScanner();        ds.setBasedir(new File(getProject().getBaseDir(), "tmp"));        ds.setIncludes(new String[] {            "alpha/**"        });        ds.setExcludes(new String[] {            "alpha/**"        });        ds.scan();        compareFiles(ds, new String[] {},                     new String[] {});    }    public void testAlternateIncludeExclude() {        DirectoryScanner ds = new DirectoryScanner();        ds.setBasedir(new File(getProject().getBaseDir(), "tmp"));        ds.setIncludes(new String[] {            "alpha/**",            "alpha/beta/gamma/**"        });        ds.setExcludes(new String[] {            "alpha/beta/**"        });        ds.scan();        compareFiles(ds, new String[] {},                     new String[] {"alpha"});    }    public void testAlternateExcludeInclude() {        DirectoryScanner ds = new DirectoryScanner();        ds.setBasedir(new File(getProject().getBaseDir(), "tmp"));        ds.setExcludes(new String[] {            "alpha/**",            "alpha/beta/gamma/**"        });        ds.setIncludes(new String[] {            "alpha/beta/**"        });        ds.scan();        compareFiles(ds, new String[] {},                     new String[] {});    }    /**     * Test inspired by Bug#1415.     */    public void testChildrenOfExcludedDirectory() {        getProject().executeTarget("children-of-excluded-dir-setup");        DirectoryScanner ds = new DirectoryScanner();        ds.setBasedir(new File(getProject().getBaseDir(), "tmp"));        ds.setExcludes(new String[] {"alpha/**"});        ds.setFollowSymlinks(false);        ds.scan();        compareFiles(ds, new String[] {"delta/delta.xml"},                    new String[] {"", "delta"});        ds = new DirectoryScanner();        ds.setBasedir(new File(getProject().getBaseDir(), "tmp"));        ds.setExcludes(new String[] {"alpha"});        ds.setFollowSymlinks(false);        ds.scan();        compareFiles(ds, new String[] {"alpha/beta/beta.xml",                                       "alpha/beta/gamma/gamma.xml",                                        "delta/delta.xml"},                     new String[] {"", "alpha/beta", "alpha/beta/gamma", "delta"});    }    public void testIsExcludedDirectoryScanned() {        String shareclassloader = getProject().getProperty("tests.and.ant.share.classloader");        // when the test is started by the build.xml of ant        // if the property tests.and.ant.share.classloader is not set in the build.xml        // a sysproperty with name tests.and.ant.share.classloader and value        // ${tests.and.ant.share.classloader} will be set        // we are trying to catch this here.        if (shareclassloader == null                || (shareclassloader != null && shareclassloader.indexOf("${") == 0)) {            System.out.println("cannot execute testIsExcludedDirectoryScanned when tests are forked, " +                    "package private method called");            return;        }        getProject().executeTarget("children-of-excluded-dir-setup");        DirectoryScanner ds = new DirectoryScanner();        ds.setBasedir(new File(getProject().getBaseDir(), "tmp"));        ds.setExcludes(new String[] {"**/gamma/**"});        ds.setFollowSymlinks(false);        ds.scan();        Set set = ds.getScannedDirs();        assertFalse("empty set", set.isEmpty());        String s = "alpha/beta/gamma/".replace('/', File.separatorChar);        assertFalse("scanned " + s, set.contains(s));    }    public void testAbsolute1() {        getProject().executeTarget("extended-setup");        DirectoryScanner ds = new DirectoryScanner();        String tmpdir = getProject().getBaseDir().getAbsolutePath().replace(            File.separatorChar, '/') + "/tmp";        ds.setIncludes(new String[] {tmpdir + "/**/*"});        ds.scan();        compareFiles(ds, new String[] {tmpdir + "/alpha/beta/beta.xml",                                       tmpdir + "/alpha/beta/gamma/gamma.xml",                                       tmpdir + "/delta/delta.xml"},                     new String[] {tmpdir + "/alpha",                                   tmpdir + "/alpha/beta",                                   tmpdir + "/alpha/beta/gamma",                                   tmpdir + "/delta"});    }    public void testAbsolute2() {        getProject().executeTarget("setup");        DirectoryScanner ds = new DirectoryScanner();        ds.setIncludes(new String[] {"alpha/**", "alpha/beta/gamma/**"});        ds.scan();        String[] mt = new String[0];        compareFiles(ds, mt, mt);    }    public void testAbsolute3() {        getProject().executeTarget("extended-setup");        DirectoryScanner ds = new DirectoryScanner();        String tmpdir = getProject().getBaseDir().getAbsolutePath().replace(            File.separatorChar, '/') + "/tmp";        ds.setIncludes(new String[] {tmpdir + "/**/*"});        ds.setExcludes(new String[] {"**/alpha",                                     "**/delta/*"});        ds.scan();        compareFiles(ds, new String[] {tmpdir + "/alpha/beta/beta.xml",                                       tmpdir + "/alpha/beta/gamma/gamma.xml"},                     new String[] {tmpdir + "/alpha/beta",                                   tmpdir + "/alpha/beta/gamma",                                   tmpdir + "/delta"});    }    public void testAbsolute4() {        getProject().executeTarget("extended-setup");        DirectoryScanner ds = new DirectoryScanner();        String tmpdir = getProject().getBaseDir().getAbsolutePath().replace(            File.separatorChar, '/') + "/tmp";        ds.setIncludes(new String[] {tmpdir + "/alpha/beta/**/*",                                     tmpdir + "/delta/*"});        ds.setExcludes(new String[] {"**/beta.xml"});        ds.scan();        compareFiles(ds, new String[] {tmpdir + "/alpha/beta/gamma/gamma.xml",                                       tmpdir + "/delta/delta.xml"},                     new String[] {tmpdir + "/alpha/beta/gamma"});    }    public void testAbsolute5() {        //testing drive letter search from root:        if (!(Os.isFamily("dos") || Os.isFamily("netware"))) {            return;        }        DirectoryScanner ds = new DirectoryScanner();        String pattern = new File(File.separator).getAbsolutePath().toUpperCase() + "*";        ds.setIncludes(new String[] {pattern});        ds.scan();        //if this is our context we assume there must be something here:        assertTrue("should have at least one resident file",            ds.getIncludedFilesCount() + ds.getIncludedDirsCount() > 0);    }    private void compareFiles(DirectoryScanner ds, String[] expectedFiles,                              String[] expectedDirectories) {        String includedFiles[] = ds.getIncludedFiles();        String includedDirectories[] = ds.getIncludedDirectories();        assertEquals("file present: ", expectedFiles.length,                     includedFiles.length);        assertEquals("directories present: ", expectedDirectories.length,                     includedDirectories.length);        TreeSet files = new TreeSet();        for (int counter=0; counter < includedFiles.length; counter++) {            files.add(includedFiles[counter].replace(File.separatorChar, '/'));        }        TreeSet directories = new TreeSet();        for (int counter=0; counter < includedDirectories.length; counter++) {            directories.add(includedDirectories[counter]                            .replace(File.separatorChar, '/'));        }        String currentfile;        Iterator i = files.iterator();        int counter = 0;        while (i.hasNext()) {            currentfile = (String) i.next();            assertEquals(expectedFiles[counter], currentfile);            counter++;        }        String currentdirectory;        Iterator dirit = directories.iterator();        counter = 0;        while (dirit.hasNext()) {            currentdirectory = (String) dirit.next();            assertEquals(expectedDirectories[counter], currentdirectory);            counter++;        }    }}

⌨️ 快捷键说明

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