Stefan Bodewig 15 years ago
parent
commit
e052e5e8dc
3 changed files with 71 additions and 3 deletions
  1. +2
    -2
      src/main/org/apache/tools/ant/DirectoryScanner.java
  2. +12
    -1
      src/tests/junit/org/apache/tools/ant/DirectoryScannerTest.java
  3. +57
    -0
      src/tests/junit/org/apache/tools/ant/types/selectors/TokenizedPatternTest.java

+ 2
- 2
src/main/org/apache/tools/ant/DirectoryScanner.java View File

@@ -1458,7 +1458,7 @@ public class DirectoryScanner
* @param path the path to check.
* @return whether all the specified directory's contents are excluded.
*/
private boolean contentsExcluded(TokenizedPath path) {
/* package */ boolean contentsExcluded(TokenizedPath path) {
for (int i = 0; i < excludePatterns.length; i++) {
if (excludePatterns[i].endsWith(SelectorUtils.DEEP_TREE_MATCH)
&& excludePatterns[i].withoutLastToken()
@@ -1783,7 +1783,7 @@ public class DirectoryScanner
*
* @since Ant 1.6.3
*/
private synchronized void ensureNonPatternSetsReady() {
/* package */ synchronized void ensureNonPatternSetsReady() {
if (!areNonPatternSetsReady) {
includePatterns = fillNonPatternSet(includeNonPatterns, includes);
excludePatterns = fillNonPatternSet(excludeNonPatterns, excludes);


+ 12
- 1
src/tests/junit/org/apache/tools/ant/DirectoryScannerTest.java View File

@@ -19,10 +19,10 @@
package org.apache.tools.ant;

import org.apache.tools.ant.taskdefs.condition.Os;
import org.apache.tools.ant.types.selectors.TokenizedPath;
import org.apache.tools.ant.util.FileUtils;
import org.apache.tools.ant.util.SymbolicLinkUtils;


import java.io.File;
import java.io.IOException;
import java.util.Arrays;
@@ -555,4 +555,15 @@ public class DirectoryScannerTest extends BuildFileTest {
files.contains("alpha/beta/gamma/gamma.xml"
.replace('/', File.separatorChar)));
}

public void testContentsExcluded() {
DirectoryScanner ds = new DirectoryScanner();
ds.setBasedir(new File("."));
ds.setIncludes(new String[] {"**"});
ds.addDefaultExcludes();
ds.ensureNonPatternSetsReady();
File f = new File(".svn");
TokenizedPath p = new TokenizedPath(f.getAbsolutePath());
assertTrue(ds.contentsExcluded(p));
}
}

+ 57
- 0
src/tests/junit/org/apache/tools/ant/types/selectors/TokenizedPatternTest.java View File

@@ -0,0 +1,57 @@
/*
* 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.selectors;

import java.io.File;
import junit.framework.TestCase;

public class TokenizedPatternTest extends TestCase {
private static final String DOT_SVN_PATTERN =
SelectorUtils.DEEP_TREE_MATCH + File.separator + ".svn"
+ File.separator + SelectorUtils.DEEP_TREE_MATCH;

public void testTokenization() {
TokenizedPattern pat = new TokenizedPattern(DOT_SVN_PATTERN);
assertEquals(3, pat.depth());
assertEquals(DOT_SVN_PATTERN, pat.getPattern());
assertTrue(pat.containsPattern(SelectorUtils.DEEP_TREE_MATCH));
assertTrue(pat.containsPattern(".svn"));
}

public void testEndsWith() {
assertTrue(new TokenizedPattern(DOT_SVN_PATTERN)
.endsWith(SelectorUtils.DEEP_TREE_MATCH));
}

public void testWithoutLastToken() {
assertEquals(SelectorUtils.DEEP_TREE_MATCH + File.separatorChar
+ ".svn" + File.separator,
new TokenizedPattern(DOT_SVN_PATTERN)
.withoutLastToken().getPattern());
}

public void testMatchPath() {
File f = new File(".svn");
TokenizedPath p = new TokenizedPath(f.getAbsolutePath());
assertTrue(new TokenizedPattern(DOT_SVN_PATTERN).matchPath(p, true));
assertTrue(new TokenizedPattern(DOT_SVN_PATTERN)
.withoutLastToken().matchPath(p, true));
}

}

Loading…
Cancel
Save