Author: bodewig Date: Wed Jun 9 15:44:46 2010 New Revision: 953046 URL: http://svn.apache.org/viewvc?rev=953046&view=rev Log: some JUnit tests to verify/falsify http://mail-archives.apache.org/mod_mbox/ant-user/201006.mbox/%3c28829117.p...@talk.nabble.com%3e
Added: ant/core/trunk/src/tests/junit/org/apache/tools/ant/types/selectors/TokenizedPatternTest.java (with props) Modified: ant/core/trunk/src/main/org/apache/tools/ant/DirectoryScanner.java ant/core/trunk/src/tests/junit/org/apache/tools/ant/DirectoryScannerTest.java Modified: ant/core/trunk/src/main/org/apache/tools/ant/DirectoryScanner.java URL: http://svn.apache.org/viewvc/ant/core/trunk/src/main/org/apache/tools/ant/DirectoryScanner.java?rev=953046&r1=953045&r2=953046&view=diff ============================================================================== --- ant/core/trunk/src/main/org/apache/tools/ant/DirectoryScanner.java (original) +++ ant/core/trunk/src/main/org/apache/tools/ant/DirectoryScanner.java Wed Jun 9 15:44:46 2010 @@ -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); Modified: ant/core/trunk/src/tests/junit/org/apache/tools/ant/DirectoryScannerTest.java URL: http://svn.apache.org/viewvc/ant/core/trunk/src/tests/junit/org/apache/tools/ant/DirectoryScannerTest.java?rev=953046&r1=953045&r2=953046&view=diff ============================================================================== --- ant/core/trunk/src/tests/junit/org/apache/tools/ant/DirectoryScannerTest.java (original) +++ ant/core/trunk/src/tests/junit/org/apache/tools/ant/DirectoryScannerTest.java Wed Jun 9 15:44:46 2010 @@ -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 extend 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)); + } } Added: ant/core/trunk/src/tests/junit/org/apache/tools/ant/types/selectors/TokenizedPatternTest.java URL: http://svn.apache.org/viewvc/ant/core/trunk/src/tests/junit/org/apache/tools/ant/types/selectors/TokenizedPatternTest.java?rev=953046&view=auto ============================================================================== --- ant/core/trunk/src/tests/junit/org/apache/tools/ant/types/selectors/TokenizedPatternTest.java (added) +++ ant/core/trunk/src/tests/junit/org/apache/tools/ant/types/selectors/TokenizedPatternTest.java Wed Jun 9 15:44:46 2010 @@ -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)); + } + +} Propchange: ant/core/trunk/src/tests/junit/org/apache/tools/ant/types/selectors/TokenizedPatternTest.java ------------------------------------------------------------------------------ svn:eol-style = native