[nobug] sync HEAD with 3.2.1
diff --git a/tests/org.eclipse.wst.jsdt.core.tests.compiler/src/org/eclipse/wst/jsdt/core/tests/compiler/JSDTCompilerTests.java b/tests/org.eclipse.wst.jsdt.core.tests.compiler/src/org/eclipse/wst/jsdt/core/tests/compiler/JSDTCompilerTests.java
index 6b32849..7793053 100644
--- a/tests/org.eclipse.wst.jsdt.core.tests.compiler/src/org/eclipse/wst/jsdt/core/tests/compiler/JSDTCompilerTests.java
+++ b/tests/org.eclipse.wst.jsdt.core.tests.compiler/src/org/eclipse/wst/jsdt/core/tests/compiler/JSDTCompilerTests.java
@@ -24,6 +24,7 @@
import org.eclipse.wst.jsdt.core.tests.compiler.regression.CharOperationTest;
import org.eclipse.wst.jsdt.core.tests.compiler.regression.InferTypesTests;
import org.eclipse.wst.jsdt.core.tests.compiler.regression.UtilTest;
+import org.eclipse.wst.jsdt.core.tests.compiler.util.ExclusionTests;
import org.eclipse.wst.jsdt.core.tests.interpret.BasicInterpretTest;
/**
@@ -73,6 +74,9 @@
// }
//
TestSuite all = new TestSuite("JSDT 'Compiler' Tests");
+ all.addTest(ExclusionTests.suite());
+
+
// int possibleComplianceLevels = AbstractCompilerTest.getPossibleComplianceLevels();
// if ((possibleComplianceLevels & AbstractCompilerTest.F_1_3) != 0) {
// ArrayList tests_1_3 = (ArrayList)standardTests.clone();
diff --git a/tests/org.eclipse.wst.jsdt.core.tests.compiler/src/org/eclipse/wst/jsdt/core/tests/compiler/regression/AbstractRegressionTest.java b/tests/org.eclipse.wst.jsdt.core.tests.compiler/src/org/eclipse/wst/jsdt/core/tests/compiler/regression/AbstractRegressionTest.java
index 0fc895e..dcb0317 100644
--- a/tests/org.eclipse.wst.jsdt.core.tests.compiler/src/org/eclipse/wst/jsdt/core/tests/compiler/regression/AbstractRegressionTest.java
+++ b/tests/org.eclipse.wst.jsdt.core.tests.compiler/src/org/eclipse/wst/jsdt/core/tests/compiler/regression/AbstractRegressionTest.java
@@ -430,6 +430,7 @@
CompilerOptions.IGNORE);
defaultOptions.put(CompilerOptions.OPTION_ReportUnusedLocal,
CompilerOptions.WARNING);
+ defaultOptions.put(CompilerOptions.OPTION_SemanticValidation, CompilerOptions.ENABLED);
return defaultOptions;
}
diff --git a/tests/org.eclipse.wst.jsdt.core.tests.compiler/src/org/eclipse/wst/jsdt/core/tests/compiler/regression/BasicResolveTests.java b/tests/org.eclipse.wst.jsdt.core.tests.compiler/src/org/eclipse/wst/jsdt/core/tests/compiler/regression/BasicResolveTests.java
index 1dfe14d..36e34b9 100644
--- a/tests/org.eclipse.wst.jsdt.core.tests.compiler/src/org/eclipse/wst/jsdt/core/tests/compiler/regression/BasicResolveTests.java
+++ b/tests/org.eclipse.wst.jsdt.core.tests.compiler/src/org/eclipse/wst/jsdt/core/tests/compiler/regression/BasicResolveTests.java
@@ -1746,4 +1746,18 @@
);
}
+ public void testbug318004() {
+ this.runNegativeTest(
+ new String[] {
+ "Z.js",
+ "var obj = {};\n" +
+ "obj.first = {};\n" +
+ "obj.first.second = function() {};\n" +
+ "obj.first.second.prototype = new Object();\n" +
+ "if({} != obj.first.second) {}"
+ },
+ ""
+ );
+ }
+
}
\ No newline at end of file
diff --git a/tests/org.eclipse.wst.jsdt.core.tests.compiler/src/org/eclipse/wst/jsdt/core/tests/compiler/util/ExclusionTests.java b/tests/org.eclipse.wst.jsdt.core.tests.compiler/src/org/eclipse/wst/jsdt/core/tests/compiler/util/ExclusionTests.java
new file mode 100644
index 0000000..790640a
--- /dev/null
+++ b/tests/org.eclipse.wst.jsdt.core.tests.compiler/src/org/eclipse/wst/jsdt/core/tests/compiler/util/ExclusionTests.java
@@ -0,0 +1,660 @@
+/*******************************************************************************
+ * Copyright (c) 2010 IBM Corporation and others.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Contributors:
+ * IBM Corporation - initial API and implementation
+ *******************************************************************************/
+package org.eclipse.wst.jsdt.core.tests.compiler.util;
+
+import junit.extensions.TestSetup;
+import junit.framework.Test;
+import junit.framework.TestCase;
+import junit.framework.TestSuite;
+
+import org.eclipse.core.resources.IProject;
+import org.eclipse.core.resources.IProjectDescription;
+import org.eclipse.core.resources.ResourcesPlugin;
+import org.eclipse.core.runtime.CoreException;
+import org.eclipse.core.runtime.IPath;
+import org.eclipse.core.runtime.NullProgressMonitor;
+import org.eclipse.core.runtime.Path;
+import org.eclipse.wst.jsdt.internal.core.util.Util;
+
+public class ExclusionTests extends TestCase {
+
+ /** name of the test project */
+ private static final String PROJECT_NAME = "ExclusionTests";
+
+ /** the test project */
+ private static IProject fProject;
+
+ /**
+ * <p>Default constructor<p>
+ * <p>Use {@link #suite()}</p>
+ *
+ * @see #suite()
+ */
+ public ExclusionTests() {
+ super("Exclusion Tests");
+ }
+
+ /**
+ * <p>Constructor that takes a test name.</p>
+ * <p>Use {@link #suite()}</p>
+ *
+ * @param name The name this test run should have.
+ *
+ * @see #suite()
+ */
+ public ExclusionTests(String name) {
+ super(name);
+ }
+
+ /**
+ * <p>Use this method to add these tests to a larger test suite so set up
+ * and tear down can be performed</p>
+ *
+ * @return a {@link TestSetup} that will run all of the tests in this class
+ * with set up and tear down.
+ */
+ public static Test suite() {
+ TestSuite ts = new TestSuite(ExclusionTests.class, "Exclusion Tests");
+ return new ExclusionTestsSetup(ts);
+ }
+
+ public void testExcluded_DirPathWorkspaceRelative_DirExcludedWorkspaceRelative() {
+ IPath resourcePath = new Path(PROJECT_NAME + "/WebContent/dojo/dijit/");
+ char[][] inclusionPatterns = null;
+ char[][] exclusionPatterns = new char[1][0];
+ exclusionPatterns[0] = (PROJECT_NAME + "/WebContent/").toCharArray();
+
+ assertTrue(Util.isExcluded(resourcePath, inclusionPatterns, exclusionPatterns));
+ }
+
+ public void testExcluded_DirPathWorkspaceRelativeLeadingSeperator_DirExcludedWorkspaceRelative() {
+ IPath resourcePath = new Path(IPath.SEPARATOR + PROJECT_NAME + "/WebContent/dojo/dijit/");
+ char[][] inclusionPatterns = null;
+ char[][] exclusionPatterns = new char[1][0];
+ exclusionPatterns[0] = (PROJECT_NAME + "/WebContent/").toCharArray();
+
+ assertTrue(Util.isExcluded(resourcePath, inclusionPatterns, exclusionPatterns));
+ }
+
+ public void testExcluded_DirPathWorkspaceRelative_DirExcludedWorkspaceRelativeLeadingSeperator() {
+ IPath resourcePath = new Path(PROJECT_NAME + "/WebContent/dojo/dijit/");
+ char[][] inclusionPatterns = null;
+ char[][] exclusionPatterns = new char[1][0];
+ exclusionPatterns[0] = (IPath.SEPARATOR + PROJECT_NAME + "/WebContent/").toCharArray();
+
+ assertTrue(Util.isExcluded(resourcePath, inclusionPatterns, exclusionPatterns));
+ }
+
+ public void testExcluded_DirPathWorkspaceRelativeLeadingSeperator_DirExcludedWorkspaceRelativeLeadingSeperator() {
+ IPath resourcePath = new Path(IPath.SEPARATOR + PROJECT_NAME + "/WebContent/dojo/dijit/");
+ char[][] inclusionPatterns = null;
+ char[][] exclusionPatterns = new char[1][0];
+ exclusionPatterns[0] = (IPath.SEPARATOR + PROJECT_NAME + "/WebContent/").toCharArray();
+
+ assertTrue(Util.isExcluded(resourcePath, inclusionPatterns, exclusionPatterns));
+ }
+
+ public void testNotExcluded_DirPathWorkspaceRelative_DirExcludedWorkspaceRelative() {
+ IPath resourcePath = new Path("foo/WebContent/dojo/dijit/");
+ char[][] inclusionPatterns = null;
+ char[][] exclusionPatterns = new char[1][0];
+ exclusionPatterns[0] = (PROJECT_NAME + "/WebContent/").toCharArray();
+
+ assertFalse(Util.isExcluded(resourcePath, inclusionPatterns, exclusionPatterns));
+ }
+
+ public void testNotExcluded_DirPathWorkspaceRelativeLeadingSeperator_DirExcludedWorkspaceRelative() {
+ IPath resourcePath = new Path(IPath.SEPARATOR + "foo/WebContent/dojo/dijit/");
+ char[][] inclusionPatterns = null;
+ char[][] exclusionPatterns = new char[1][0];
+ exclusionPatterns[0] = (PROJECT_NAME + "/WebContent/").toCharArray();
+
+ assertFalse(Util.isExcluded(resourcePath, inclusionPatterns, exclusionPatterns));
+ }
+
+ public void testNotExcluded_DirPathWorkspaceRelative_DirExcludedWorkspaceRelativeLeadingSeperator() {
+ IPath resourcePath = new Path("foo/WebContent/dojo/dijit/");
+ char[][] inclusionPatterns = null;
+ char[][] exclusionPatterns = new char[1][0];
+ exclusionPatterns[0] = (IPath.SEPARATOR + PROJECT_NAME + "/WebContent/").toCharArray();
+
+ assertFalse(Util.isExcluded(resourcePath, inclusionPatterns, exclusionPatterns));
+ }
+
+ public void testNotExcluded_DirPathWorkspaceRelativeLeadingSeperator_DirExcludedWorkspaceRelativeLeadingSeperator() {
+ IPath resourcePath = new Path(IPath.SEPARATOR + "foo/WebContent/dojo/dijit/");
+ char[][] inclusionPatterns = null;
+ char[][] exclusionPatterns = new char[1][0];
+ exclusionPatterns[0] = (IPath.SEPARATOR + PROJECT_NAME + "/WebContent/").toCharArray();
+
+ assertFalse(Util.isExcluded(resourcePath, inclusionPatterns, exclusionPatterns));
+ }
+
+ public void testExcluded_FilePathWorkspaceRelative_DirExcludedWorkspaceRelative() {
+ IPath resourcePath = new Path(PROJECT_NAME + "/WebContent/dojo/dijit/_Widget.js");
+ char[][] inclusionPatterns = null;
+ char[][] exclusionPatterns = new char[1][0];
+ exclusionPatterns[0] = (PROJECT_NAME + "/WebContent/").toCharArray();
+
+ assertTrue(Util.isExcluded(resourcePath, inclusionPatterns, exclusionPatterns));
+ }
+
+ public void testExcluded_FilePathWorkspaceRelativeLeadingSeperator_DirExcludedWorkspaceRelative() {
+ IPath resourcePath = new Path(IPath.SEPARATOR + PROJECT_NAME + "/WebContent/dojo/dijit/_Widget.js");
+ char[][] inclusionPatterns = null;
+ char[][] exclusionPatterns = new char[1][0];
+ exclusionPatterns[0] = (PROJECT_NAME + "/WebContent/").toCharArray();
+
+ assertTrue(Util.isExcluded(resourcePath, inclusionPatterns, exclusionPatterns));
+ }
+
+ public void testExcluded_FilePathWorkspaceRelative_DirExcludedWorkspaceRelativeLeadingSeperator() {
+ IPath resourcePath = new Path(PROJECT_NAME + "/WebContent/dojo/dijit/_Widget.js");
+ char[][] inclusionPatterns = null;
+ char[][] exclusionPatterns = new char[1][0];
+ exclusionPatterns[0] = (IPath.SEPARATOR + PROJECT_NAME + "/WebContent/").toCharArray();
+
+ assertTrue(Util.isExcluded(resourcePath, inclusionPatterns, exclusionPatterns));
+ }
+
+ public void testExcluded_FilePathWorkspaceRelativeLeadingSeperator_DirExcludedWorkspaceRelativeLeadingSeperator() {
+ IPath resourcePath = new Path(IPath.SEPARATOR + PROJECT_NAME + "/WebContent/dojo/dijit/_Widget.js");
+ char[][] inclusionPatterns = null;
+ char[][] exclusionPatterns = new char[1][0];
+ exclusionPatterns[0] = (IPath.SEPARATOR + PROJECT_NAME + "/WebContent/").toCharArray();
+
+ assertTrue(Util.isExcluded(resourcePath, inclusionPatterns, exclusionPatterns));
+ }
+
+ public void testNotExcluded_FilePathWorkspaceRelative_DirExcludedWorkspaceRelative() {
+ IPath resourcePath = new Path("foo/WebContent/dojo/dijit/_Widget.js");
+ char[][] inclusionPatterns = null;
+ char[][] exclusionPatterns = new char[1][0];
+ exclusionPatterns[0] = (PROJECT_NAME + "/WebContent/").toCharArray();
+
+ assertFalse(Util.isExcluded(resourcePath, inclusionPatterns, exclusionPatterns));
+ }
+
+ public void testNotExcluded_FilePathWorkspaceRelativeLeadingSeperator_DirExcludedWorkspaceRelative() {
+ IPath resourcePath = new Path(IPath.SEPARATOR + "foo/WebContent/dojo/dijit/_Widget.js");
+ char[][] inclusionPatterns = null;
+ char[][] exclusionPatterns = new char[1][0];
+ exclusionPatterns[0] = (PROJECT_NAME + "/WebContent/").toCharArray();
+
+ assertFalse(Util.isExcluded(resourcePath, inclusionPatterns, exclusionPatterns));
+ }
+
+ public void testNotExcluded_FilePathWorkspaceRelative_DirExcludedWorkspaceRelativeLeadingSeperator() {
+ IPath resourcePath = new Path("foo/WebContent/dojo/dijit/_Widget.js");
+ char[][] inclusionPatterns = null;
+ char[][] exclusionPatterns = new char[1][0];
+ exclusionPatterns[0] = (IPath.SEPARATOR + PROJECT_NAME + "/WebContent/").toCharArray();
+
+ assertFalse(Util.isExcluded(resourcePath, inclusionPatterns, exclusionPatterns));
+ }
+
+ public void testNotExcluded_FilePathWorkspaceRelativeLeadingSeperator_DirExcludedWorkspaceRelativeLeadingSeperator() {
+ IPath resourcePath = new Path(IPath.SEPARATOR + "foo/WebContent/dojo/dijit/_Widget.js");
+ char[][] inclusionPatterns = null;
+ char[][] exclusionPatterns = new char[1][0];
+ exclusionPatterns[0] = (IPath.SEPARATOR + PROJECT_NAME + "/WebContent/").toCharArray();
+
+ assertFalse(Util.isExcluded(resourcePath, inclusionPatterns, exclusionPatterns));
+ }
+
+ public void testExcluded_DirPathAbsolute_DirExcludedWorkspaceRelative() {
+ IPath resourcePath = fProject.getLocation().append("/WebContent/dojo/dijit/");
+ char[][] inclusionPatterns = null;
+ char[][] exclusionPatterns = new char[1][0];
+ exclusionPatterns[0] = (PROJECT_NAME + "/WebContent/").toCharArray();
+
+ assertTrue(Util.isExcluded(resourcePath, inclusionPatterns, exclusionPatterns));
+ }
+
+ public void testExcluded_DirPathAbsolute_DirExcludedWorkspaceRelativeLeadingSeperator() {
+ IPath resourcePath = fProject.getLocation().append("/WebContent/dojo/dijit/");
+ char[][] inclusionPatterns = null;
+ char[][] exclusionPatterns = new char[1][0];
+ exclusionPatterns[0] = (IPath.SEPARATOR + PROJECT_NAME + "/WebContent/").toCharArray();
+
+ assertTrue(Util.isExcluded(resourcePath, inclusionPatterns, exclusionPatterns));
+ }
+
+ public void testNotExcluded_DirPathAbsolute_DirExcludedWorkspaceRelative() {
+ IPath resourcePath = fProject.getLocation().append("foo/WebContent/dojo/dijit/");
+ char[][] inclusionPatterns = null;
+ char[][] exclusionPatterns = new char[1][0];
+ exclusionPatterns[0] = (PROJECT_NAME + "/WebContent/").toCharArray();
+
+ assertFalse(Util.isExcluded(resourcePath, inclusionPatterns, exclusionPatterns));
+ }
+
+ public void testNotExcluded_DirPathAbsolute_DirExcludedWorkspaceRelativeLeadingSeperator() {
+ IPath resourcePath = fProject.getLocation().append("foo/WebContent/dojo/dijit/");
+ char[][] inclusionPatterns = null;
+ char[][] exclusionPatterns = new char[1][0];
+ exclusionPatterns[0] = (IPath.SEPARATOR + PROJECT_NAME + "/WebContent/").toCharArray();
+
+ assertFalse(Util.isExcluded(resourcePath, inclusionPatterns, exclusionPatterns));
+ }
+
+ public void testExcluded_FilePathAbsolute_DirExcludedWorkspaceRelative() {
+ IPath resourcePath = fProject.getLocation().append("/WebContent/dojo/dijit/_Widget.js");
+ char[][] inclusionPatterns = null;
+ char[][] exclusionPatterns = new char[1][0];
+ exclusionPatterns[0] = (PROJECT_NAME + "/WebContent/").toCharArray();
+
+ assertTrue(Util.isExcluded(resourcePath, inclusionPatterns, exclusionPatterns));
+ }
+
+ public void testExcluded_FilePathAbsolute_DirExcludedWorkspaceRelativeLeadingSeperator() {
+ IPath resourcePath = fProject.getLocation().append("/WebContent/dojo/dijit/_Widget.js");
+ char[][] inclusionPatterns = null;
+ char[][] exclusionPatterns = new char[1][0];
+ exclusionPatterns[0] = (IPath.SEPARATOR + PROJECT_NAME + "/WebContent/").toCharArray();
+
+ assertTrue(Util.isExcluded(resourcePath, inclusionPatterns, exclusionPatterns));
+ }
+
+ public void testNotExcluded_FilePathAbsolute_DirExcludedWorkspaceRelative() {
+ IPath resourcePath = fProject.getLocation().append("foo/WebContent/dojo/dijit/_Widget.js");
+ char[][] inclusionPatterns = null;
+ char[][] exclusionPatterns = new char[1][0];
+ exclusionPatterns[0] = (PROJECT_NAME + "/WebContent/").toCharArray();
+
+ assertFalse(Util.isExcluded(resourcePath, inclusionPatterns, exclusionPatterns));
+ }
+
+ public void testNotExcluded_FilePathAbsolute_DirExcludedWorkspaceRelativeLeadingSeperator() {
+ IPath resourcePath = fProject.getLocation().append("foo/WebContent/dojo/dijit/_Widget.js");
+ char[][] inclusionPatterns = null;
+ char[][] exclusionPatterns = new char[1][0];
+ exclusionPatterns[0] = (IPath.SEPARATOR + PROJECT_NAME + "/WebContent/").toCharArray();
+
+ assertFalse(Util.isExcluded(resourcePath, inclusionPatterns, exclusionPatterns));
+ }
+
+ public void testExcluded_DirPathAbsolute_DirExcludedAbsolute() {
+ IPath resourcePath = fProject.getLocation().append("/WebContent/dojo/dijit/");
+ char[][] inclusionPatterns = null;
+ char[][] exclusionPatterns = new char[1][0];
+
+ exclusionPatterns[0] = fProject.getLocation().append("/WebContent/").toPortableString().toCharArray();
+
+ assertTrue(Util.isExcluded(resourcePath, inclusionPatterns, exclusionPatterns));
+ }
+
+ public void testNotExcluded_DirPathAbsolute_DirExcludedAbsolute() {
+ IPath resourcePath = fProject.getLocation().append("foo/WebContent/dojo/dijit/");
+ char[][] inclusionPatterns = null;
+ char[][] exclusionPatterns = new char[1][0];
+ exclusionPatterns[0] = fProject.getLocation().append("/WebContent/").toPortableString().toCharArray();
+
+ assertFalse(Util.isExcluded(resourcePath, inclusionPatterns, exclusionPatterns));
+ }
+
+ public void testExcluded_FilePathAbsolute_DirExcludedAbsolute() {
+ IPath resourcePath = fProject.getLocation().append("/WebContent/dojo/dijit/_Widget.js");
+ char[][] inclusionPatterns = null;
+ char[][] exclusionPatterns = new char[1][0];
+ exclusionPatterns[0] = fProject.getLocation().append("/WebContent/").toPortableString().toCharArray();
+
+ assertTrue(Util.isExcluded(resourcePath, inclusionPatterns, exclusionPatterns));
+ }
+
+ public void testNotExcluded_FilePathAbsolute_DirExcludedAbsolute() {
+ IPath resourcePath = fProject.getLocation().append("foo/WebContent/dojo/dijit/_Widget.js");
+ char[][] inclusionPatterns = null;
+ char[][] exclusionPatterns = new char[1][0];
+ exclusionPatterns[0] = fProject.getLocation().append("/WebContent/").toPortableString().toCharArray();
+
+ assertFalse(Util.isExcluded(resourcePath, inclusionPatterns, exclusionPatterns));
+ }
+
+ public void testNotExcluded_DirPathWorkspaceRelative_FileExcludedWorkspaceRelative() {
+ IPath resourcePath = new Path(PROJECT_NAME + "/WebContent/dojo/dijit/");
+ char[][] inclusionPatterns = null;
+ char[][] exclusionPatterns = new char[1][0];
+ exclusionPatterns[0] = (PROJECT_NAME + "/WebContent/dojo/dijit/_Widget.js").toCharArray();
+
+ assertFalse(Util.isExcluded(resourcePath, inclusionPatterns, exclusionPatterns));
+ }
+
+ public void testNotExcluded_DirPathWorkspaceRelative_FileExcludedWorkspaceRelative_2() {
+ IPath resourcePath = new Path("foo/WebContent/dojo/dijit/");
+ char[][] inclusionPatterns = null;
+ char[][] exclusionPatterns = new char[1][0];
+ exclusionPatterns[0] = (PROJECT_NAME + "/WebContent/dojo/dijit/_Widget.js").toCharArray();
+
+ assertFalse(Util.isExcluded(resourcePath, inclusionPatterns, exclusionPatterns));
+ }
+
+ public void testNotExcluded_DirPathWorkspaceRelativeLeadingSeperator_FileExcludedWorkspaceRelative() {
+ IPath resourcePath = new Path(IPath.SEPARATOR + PROJECT_NAME + "/WebContent/dojo/dijit/");
+ char[][] inclusionPatterns = null;
+ char[][] exclusionPatterns = new char[1][0];
+ exclusionPatterns[0] = (PROJECT_NAME + "/WebContent/dojo/dijit/_Widget.js").toCharArray();
+
+ assertFalse(Util.isExcluded(resourcePath, inclusionPatterns, exclusionPatterns));
+ }
+
+ public void testNotExcluded_DirPathWorkspaceRelativeLeadingSeperator_FileExcludedWorkspaceRelative_2() {
+ IPath resourcePath = new Path(IPath.SEPARATOR + "foo/WebContent/dojo/dijit/");
+ char[][] inclusionPatterns = null;
+ char[][] exclusionPatterns = new char[1][0];
+ exclusionPatterns[0] = (PROJECT_NAME + "/WebContent/dojo/dijit/_Widget.js").toCharArray();
+
+ assertFalse(Util.isExcluded(resourcePath, inclusionPatterns, exclusionPatterns));
+ }
+
+ public void testNotExcluded_DirPathWorkspaceRelative_FileExcludedWorkspaceRelativeLeadingSeperator() {
+ IPath resourcePath = new Path(PROJECT_NAME + "/WebContent/dojo/dijit/");
+ char[][] inclusionPatterns = null;
+ char[][] exclusionPatterns = new char[1][0];
+ exclusionPatterns[0] = (IPath.SEPARATOR + PROJECT_NAME + "/WebContent/dojo/dijit/_Widget.js").toCharArray();
+
+ assertFalse(Util.isExcluded(resourcePath, inclusionPatterns, exclusionPatterns));
+ }
+
+ public void testNotExcluded_DirPathWorkspaceRelative_FileExcludedWorkspaceRelativeLeadingSeperator_2() {
+ IPath resourcePath = new Path("foo/WebContent/dojo/dijit/");
+ char[][] inclusionPatterns = null;
+ char[][] exclusionPatterns = new char[1][0];
+ exclusionPatterns[0] = (IPath.SEPARATOR + PROJECT_NAME + "/WebContent/dojo/dijit/_Widget.js").toCharArray();
+
+ assertFalse(Util.isExcluded(resourcePath, inclusionPatterns, exclusionPatterns));
+ }
+
+ public void testNotExcluded_DirPathWorkspaceRelativeLeadingSeperator_FileExcludedWorkspaceRelativeLeadingSeperator() {
+ IPath resourcePath = new Path(IPath.SEPARATOR + PROJECT_NAME + "/WebContent/dojo/dijit/");
+ char[][] inclusionPatterns = null;
+ char[][] exclusionPatterns = new char[1][0];
+ exclusionPatterns[0] = (IPath.SEPARATOR + PROJECT_NAME + "/WebContent/dojo/dijit/_Widget.js").toCharArray();
+
+ assertFalse(Util.isExcluded(resourcePath, inclusionPatterns, exclusionPatterns));
+ }
+
+ public void testNotExcluded_DirPathWorkspaceRelativeLeadingSeperator_FileExcludedWorkspaceRelativeLeadingSeperator_2() {
+ IPath resourcePath = new Path(IPath.SEPARATOR + "foo/WebContent/dojo/dijit/");
+ char[][] inclusionPatterns = null;
+ char[][] exclusionPatterns = new char[1][0];
+ exclusionPatterns[0] = (IPath.SEPARATOR + PROJECT_NAME + "/WebContent/dojo/dijit/_Widget.js").toCharArray();
+
+ assertFalse(Util.isExcluded(resourcePath, inclusionPatterns, exclusionPatterns));
+ }
+
+ public void testExcluded_FilePathWorkspaceRelative_FileExcludedWorkspaceRelative() {
+ IPath resourcePath = new Path(PROJECT_NAME + "/WebContent/dojo/dijit/_Widget.js");
+ char[][] inclusionPatterns = null;
+ char[][] exclusionPatterns = new char[1][0];
+ exclusionPatterns[0] = (PROJECT_NAME + "/WebContent/dojo/dijit/_Widget.js").toCharArray();
+
+ assertTrue(Util.isExcluded(resourcePath, inclusionPatterns, exclusionPatterns));
+ }
+
+ public void testExcluded_FilePathWorkspaceRelativeLeadingSeperator_FileExcludedWorkspaceRelative() {
+ IPath resourcePath = new Path(IPath.SEPARATOR + PROJECT_NAME + "/WebContent/dojo/dijit/_Widget.js");
+ char[][] inclusionPatterns = null;
+ char[][] exclusionPatterns = new char[1][0];
+ exclusionPatterns[0] = (PROJECT_NAME + "/WebContent/dojo/dijit/_Widget.js").toCharArray();
+
+ assertTrue(Util.isExcluded(resourcePath, inclusionPatterns, exclusionPatterns));
+ }
+
+ public void testExcluded_FilePathWorkspaceRelative_FileExcludedWorkspaceRelativeLeadingSeperator() {
+ IPath resourcePath = new Path(PROJECT_NAME + "/WebContent/dojo/dijit/_Widget.js");
+ char[][] inclusionPatterns = null;
+ char[][] exclusionPatterns = new char[1][0];
+ exclusionPatterns[0] = (IPath.SEPARATOR + PROJECT_NAME + "/WebContent/dojo/dijit/_Widget.js").toCharArray();
+
+ assertTrue(Util.isExcluded(resourcePath, inclusionPatterns, exclusionPatterns));
+ }
+
+ public void testExcluded_FilePathWorkspaceRelativeLeadingSeperator_FileExcludedWorkspaceRelativeLeadingSeperator() {
+ IPath resourcePath = new Path(IPath.SEPARATOR + PROJECT_NAME + "/WebContent/dojo/dijit/_Widget.js");
+ char[][] inclusionPatterns = null;
+ char[][] exclusionPatterns = new char[1][0];
+ exclusionPatterns[0] = (IPath.SEPARATOR + PROJECT_NAME + "/WebContent/dojo/dijit/_Widget.js").toCharArray();
+
+ assertTrue(Util.isExcluded(resourcePath, inclusionPatterns, exclusionPatterns));
+ }
+
+ public void testNotExcluded_FilePathWorkspaceRelative_FileExcludedWorkspaceRelative() {
+ IPath resourcePath = new Path("foo/WebContent/dojo/dijit/_Widget.js");
+ char[][] inclusionPatterns = null;
+ char[][] exclusionPatterns = new char[1][0];
+ exclusionPatterns[0] = (PROJECT_NAME + "/WebContent/dojo/dijit/_Widget.js").toCharArray();
+
+ assertFalse(Util.isExcluded(resourcePath, inclusionPatterns, exclusionPatterns));
+ }
+
+ public void testNotExcluded_FilePathWorkspaceRelativeLeadingSeperator_FileExcludedWorkspaceRelative() {
+ IPath resourcePath = new Path(IPath.SEPARATOR + "foo/WebContent/dojo/dijit/_Widget.js");
+ char[][] inclusionPatterns = null;
+ char[][] exclusionPatterns = new char[1][0];
+ exclusionPatterns[0] = (PROJECT_NAME + "/WebContent/dojo/dijit/_Widget.js").toCharArray();
+
+ assertFalse(Util.isExcluded(resourcePath, inclusionPatterns, exclusionPatterns));
+ }
+
+ public void testNotExcluded_FilePathWorkspaceRelative_FileExcludedWorkspaceRelativeLeadingSeperator() {
+ IPath resourcePath = new Path("foo/WebContent/dojo/dijit/_Widget.js");
+ char[][] inclusionPatterns = null;
+ char[][] exclusionPatterns = new char[1][0];
+ exclusionPatterns[0] = (IPath.SEPARATOR + PROJECT_NAME + "/WebContent/dojo/dijit/_Widget.js").toCharArray();
+
+ assertFalse(Util.isExcluded(resourcePath, inclusionPatterns, exclusionPatterns));
+ }
+
+ public void testNotExcluded_FilePathWorkspaceRelativeLeadingSeperator_FileExcludedWorkspaceRelativeLeadingSeperator() {
+ IPath resourcePath = new Path(IPath.SEPARATOR + "foo/WebContent/dojo/dijit/_Widget.js");
+ char[][] inclusionPatterns = null;
+ char[][] exclusionPatterns = new char[1][0];
+ exclusionPatterns[0] = (IPath.SEPARATOR + PROJECT_NAME + "/WebContent/dojo/dijit/_Widget.js").toCharArray();
+
+ assertFalse(Util.isExcluded(resourcePath, inclusionPatterns, exclusionPatterns));
+ }
+
+ public void testNotExcluded_DirPathAbsolute_FileExcludedWorkspaceRelative() {
+ IPath resourcePath = fProject.getLocation().append("/WebContent/dojo/dijit/");
+ char[][] inclusionPatterns = null;
+ char[][] exclusionPatterns = new char[1][0];
+ exclusionPatterns[0] = (PROJECT_NAME + "/WebContent/dojo/dijit/_Widget.js").toCharArray();
+
+ assertFalse(Util.isExcluded(resourcePath, inclusionPatterns, exclusionPatterns));
+ }
+
+ public void testNotExcluded_DirPathAbsolute_FileExcludedWorkspaceRelative_2() {
+ IPath resourcePath = fProject.getLocation().append("foo/WebContent/dojo/dijit/");
+ char[][] inclusionPatterns = null;
+ char[][] exclusionPatterns = new char[1][0];
+ exclusionPatterns[0] = (PROJECT_NAME + "/WebContent/dojo/dijit/_Widget.js").toCharArray();
+
+ assertFalse(Util.isExcluded(resourcePath, inclusionPatterns, exclusionPatterns));
+ }
+
+ public void testNotExcluded_DirPathAbsolute_FileExcludedWorkspaceRelativeLeadingSeperator() {
+ IPath resourcePath = fProject.getLocation().append("/WebContent/dojo/dijit/");
+ char[][] inclusionPatterns = null;
+ char[][] exclusionPatterns = new char[1][0];
+ exclusionPatterns[0] = (IPath.SEPARATOR + PROJECT_NAME + "/WebContent/dojo/dijit/_Widget.js").toCharArray();
+
+ assertFalse(Util.isExcluded(resourcePath, inclusionPatterns, exclusionPatterns));
+ }
+
+ public void testNotExcluded_DirPathAbsolute_FileExcludedWorkspaceRelativeLeadingSeperator_2() {
+ IPath resourcePath = fProject.getLocation().append("foo/WebContent/dojo/dijit/");
+ char[][] inclusionPatterns = null;
+ char[][] exclusionPatterns = new char[1][0];
+ exclusionPatterns[0] = (IPath.SEPARATOR + PROJECT_NAME + "/WebContent/dojo/dijit/_Widget.js").toCharArray();
+
+ assertFalse(Util.isExcluded(resourcePath, inclusionPatterns, exclusionPatterns));
+ }
+
+ public void testExcluded_FilePathAbsolute_FileExcludedWorkspaceRelative() {
+ IPath resourcePath = fProject.getLocation().append("/WebContent/dojo/dijit/_Widget.js");
+ char[][] inclusionPatterns = null;
+ char[][] exclusionPatterns = new char[1][0];
+ exclusionPatterns[0] = (PROJECT_NAME + "/WebContent/dojo/dijit/_Widget.js").toCharArray();
+
+ assertTrue(Util.isExcluded(resourcePath, inclusionPatterns, exclusionPatterns));
+ }
+
+ public void testExcluded_FilePathAbsolute_FileExcludedWorkspaceRelativeLeadingSeperator() {
+ IPath resourcePath = fProject.getLocation().append("/WebContent/dojo/dijit/_Widget.js");
+ char[][] inclusionPatterns = null;
+ char[][] exclusionPatterns = new char[1][0];
+ exclusionPatterns[0] = (IPath.SEPARATOR + PROJECT_NAME + "/WebContent/dojo/dijit/_Widget.js").toCharArray();
+
+ assertTrue(Util.isExcluded(resourcePath, inclusionPatterns, exclusionPatterns));
+ }
+
+ public void testNotExcluded_FilePathAbsolute_FileExcludedWorkspaceRelative() {
+ IPath resourcePath = fProject.getLocation().append("foo/WebContent/dojo/dijit/_Widget.js");
+ char[][] inclusionPatterns = null;
+ char[][] exclusionPatterns = new char[1][0];
+ exclusionPatterns[0] = (PROJECT_NAME + "/WebContent/dojo/dijit/_Widget.js").toCharArray();
+
+ assertFalse(Util.isExcluded(resourcePath, inclusionPatterns, exclusionPatterns));
+ }
+
+ public void testNotExcluded_FilePathAbsolute_FileExcludedWorkspaceRelativeLeadingSeperator() {
+ IPath resourcePath = fProject.getLocation().append("foo/WebContent/dojo/dijit/_Widget.js");
+ char[][] inclusionPatterns = null;
+ char[][] exclusionPatterns = new char[1][0];
+ exclusionPatterns[0] = (IPath.SEPARATOR + PROJECT_NAME + "/WebContent/dojo/dijit/_Widget.js").toCharArray();
+
+ assertFalse(Util.isExcluded(resourcePath, inclusionPatterns, exclusionPatterns));
+ }
+
+ public void testNotExcluded_DirPathAbsolute_FileExcludedAbsolute() {
+ IPath resourcePath = fProject.getLocation().append("/WebContent/dojo/dijit/");
+ char[][] inclusionPatterns = null;
+ char[][] exclusionPatterns = new char[1][0];
+
+ exclusionPatterns[0] = fProject.getLocation().append("/WebContent/dojo/dijit/_Widget.js").toPortableString().toCharArray();
+
+ assertFalse(Util.isExcluded(resourcePath, inclusionPatterns, exclusionPatterns));
+ }
+
+ public void testNotExcluded_DirPathAbsolute_FileExcludedAbsolute_2() {
+ IPath resourcePath = fProject.getLocation().append("foo/WebContent/dojo/dijit/");
+ char[][] inclusionPatterns = null;
+ char[][] exclusionPatterns = new char[1][0];
+ exclusionPatterns[0] = fProject.getLocation().append("/WebContent/dojo/dijit/_Widget.js").toPortableString().toCharArray();
+
+ assertFalse(Util.isExcluded(resourcePath, inclusionPatterns, exclusionPatterns));
+ }
+
+ public void testExcluded_FilePathAbsolute_FileExcludedAbsolute() {
+ IPath resourcePath = fProject.getLocation().append("/WebContent/dojo/dijit/_Widget.js");
+ char[][] inclusionPatterns = null;
+ char[][] exclusionPatterns = new char[1][0];
+ exclusionPatterns[0] = fProject.getLocation().append("/WebContent/dojo/dijit/_Widget.js").toPortableString().toCharArray();
+
+ assertTrue(Util.isExcluded(resourcePath, inclusionPatterns, exclusionPatterns));
+ }
+
+ public void testNotExcluded_FilePathAbsolute_FileExcludedAbsolute() {
+ IPath resourcePath = fProject.getLocation().append("foo/WebContent/dojo/dijit/_Widget.js");
+ char[][] inclusionPatterns = null;
+ char[][] exclusionPatterns = new char[1][0];
+ exclusionPatterns[0] = fProject.getLocation().append("/WebContent/dojo/dijit/_Widget.js").toPortableString().toCharArray();
+
+ assertFalse(Util.isExcluded(resourcePath, inclusionPatterns, exclusionPatterns));
+ }
+
+ public void testExcluded_DirPathWorkspaceRelative_DirExcludedWorkspaceRelativeStarWildCard() {
+ IPath resourcePath = new Path(PROJECT_NAME + "/WebContent/dojo/dijit/_Widget.js");
+ char[][] inclusionPatterns = null;
+ char[][] exclusionPatterns = new char[1][0];
+ exclusionPatterns[0] = (PROJECT_NAME + "/WebContent/*/dijit/").toCharArray();
+
+ assertTrue(Util.isExcluded(resourcePath, inclusionPatterns, exclusionPatterns));
+ }
+
+ public void testExcluded_DirPathWorkspaceRelative_DirExcludedWorkspaceRelativeDoubleStarWildCard() {
+ IPath resourcePath = new Path(PROJECT_NAME + "/WebContent/foo/dojo/dijit/_Widget.js");
+ char[][] inclusionPatterns = null;
+ char[][] exclusionPatterns = new char[1][0];
+ exclusionPatterns[0] = (PROJECT_NAME + "/WebContent/**/dijit/").toCharArray();
+
+ assertTrue(Util.isExcluded(resourcePath, inclusionPatterns, exclusionPatterns));
+ }
+
+ /**
+ * <p>This inner class is used to do set up and tear down before and
+ * after (respectively) all tests in the inclosing class have run.</p>
+ */
+ private static class ExclusionTestsSetup extends TestSetup {
+ private static final String WTP_AUTOTEST_NONINTERACTIVE = "wtp.autotest.noninteractive";
+ private static String previousWTPAutoTestNonInteractivePropValue = null;
+
+ /**
+ * Default constructor
+ *
+ * @param test do setup for the given test
+ */
+ public ExclusionTestsSetup(Test test) {
+ super(test);
+ }
+
+ /**
+ * <p>This is run once before all of the tests</p>
+ *
+ * @see junit.extensions.TestSetup#setUp()
+ */
+ public void setUp() throws Exception {
+ //project setup
+ fProject = createProject(PROJECT_NAME, null, null);
+
+ //set non-interactive
+ String noninteractive = System.getProperty(WTP_AUTOTEST_NONINTERACTIVE);
+ if (noninteractive != null) {
+ previousWTPAutoTestNonInteractivePropValue = noninteractive;
+ } else {
+ previousWTPAutoTestNonInteractivePropValue = "false";
+ }
+ System.setProperty(WTP_AUTOTEST_NONINTERACTIVE, "true");
+ }
+
+ /**
+ * <p>This is run once after all of the tests have been run</p>
+ *
+ * @see junit.extensions.TestSetup#tearDown()
+ */
+ public void tearDown() throws Exception {
+ //reset non-interactive
+ if (previousWTPAutoTestNonInteractivePropValue != null) {
+ System.setProperty(WTP_AUTOTEST_NONINTERACTIVE, previousWTPAutoTestNonInteractivePropValue);
+ }
+ }
+ }
+
+ private static IProject createProject(String name, IPath location, String[] natureIds) {
+ IProjectDescription description = ResourcesPlugin.getWorkspace().newProjectDescription(name);
+ if (location != null) {
+ description.setLocation(location);
+ }
+ if (natureIds != null) {
+ description.setNatureIds(natureIds);
+ }
+ IProject project = ResourcesPlugin.getWorkspace().getRoot().getProject(name);
+ try {
+ project.create(description, new NullProgressMonitor());
+ project.open(new NullProgressMonitor());
+ }
+ catch (CoreException e) {
+ e.printStackTrace();
+ }
+ return project;
+ }
+}