check paths case-insensitively

This commit is contained in:
Alexey Kudravtsev
2013-04-24 17:52:44 +04:00
parent 1217d49785
commit b3391e85d5
6 changed files with 52 additions and 52 deletions
@@ -33,7 +33,6 @@ import com.intellij.openapi.module.ModuleManager;
import com.intellij.openapi.progress.EmptyProgressIndicator;
import com.intellij.openapi.projectRoots.Sdk;
import com.intellij.openapi.projectRoots.impl.JavaAwareProjectJdkTableImpl;
import com.intellij.openapi.projectRoots.impl.JavaSdkImpl;
import com.intellij.openapi.roots.*;
import com.intellij.openapi.roots.impl.libraries.ProjectLibraryTable;
import com.intellij.openapi.roots.libraries.Library;
@@ -45,7 +44,6 @@ import com.intellij.openapi.util.text.StringUtil;
import com.intellij.openapi.vfs.VfsUtil;
import com.intellij.openapi.vfs.VirtualFile;
import com.intellij.testFramework.IdeaTestUtil;
import com.intellij.util.ArrayUtil;
import com.intellij.util.PathUtil;
import com.intellij.util.concurrency.Semaphore;
import com.intellij.util.ui.UIUtil;
@@ -116,7 +114,7 @@ public abstract class MavenImportingTestCase extends MavenTestCase {
expectedRoots[i] = VfsUtil.pathToUrl(expectedRoots[i]);
}
assertUnorderedElementsAreEqual(actual, expectedRoots);
assertUnorderedPathsAreEqual(actual, Arrays.asList(expectedRoots));
}
protected void assertSources(String moduleName, String... expectedSources) {
@@ -155,7 +153,7 @@ public abstract class MavenImportingTestCase extends MavenTestCase {
actual.add(folderUrl);
}
assertUnorderedElementsAreEqual(actual, expected);
assertUnorderedPathsAreEqual(actual, Arrays.asList(expected));
}
protected void assertModuleOutput(String moduleName, String output, String testOutput) {
@@ -211,9 +209,9 @@ public abstract class MavenImportingTestCase extends MavenTestCase {
private void assertModuleLibDepPath(LibraryOrderEntry lib, OrderRootType type, List<String> paths) {
if (paths == null) return;
assertUnorderedElementsAreEqual(lib.getRootUrls(type), ArrayUtil.toStringArray(paths));
assertUnorderedPathsAreEqual(Arrays.asList(lib.getRootUrls(type)), paths);
// also check the library because it may contain slight different set of urls (e.g. with duplicates)
assertUnorderedElementsAreEqual(lib.getLibrary().getUrls(type), ArrayUtil.toStringArray(paths));
assertUnorderedPathsAreEqual(Arrays.asList(lib.getLibrary().getUrls(type)), paths);
}
protected void assertModuleLibDepScope(String moduleName, String depName, DependencyScope scope) {
@@ -35,6 +35,7 @@ import com.intellij.testFramework.UsefulTestCase;
import com.intellij.testFramework.fixtures.IdeaProjectTestFixture;
import com.intellij.testFramework.fixtures.IdeaTestFixtureFactory;
import com.intellij.util.ui.UIUtil;
import gnu.trove.THashSet;
import org.intellij.lang.annotations.Language;
import org.jetbrains.annotations.NonNls;
import org.jetbrains.idea.maven.indices.MavenIndicesManager;
@@ -497,6 +498,9 @@ public abstract class MavenTestCase extends UsefulTestCase {
protected static <T> void assertUnorderedElementsAreEqual(Collection<T> actual, Collection<T> expected) {
assertEquals(new HashSet<T>(expected), new HashSet<T>(actual));
}
protected static void assertUnorderedPathsAreEqual(Collection<String> actual, Collection<String> expected) {
assertEquals(new THashSet<String>(expected, FileUtil.PATH_HASHING_STRATEGY), new THashSet<String>(actual, FileUtil.PATH_HASHING_STRATEGY));
}
protected static <T> void assertUnorderedElementsAreEqual(T[] actual, T... expected) {
assertUnorderedElementsAreEqual(Arrays.asList(actual), expected);
@@ -3,8 +3,7 @@ package org.jetbrains.idea.maven.importing;
import com.intellij.facet.Facet;
import com.intellij.facet.FacetManager;
import com.intellij.facet.FacetType;
import com.intellij.openapi.vfs.VfsUtil;
import com.intellij.util.ArrayUtil;
import com.intellij.openapi.vfs.VfsUtilCore;
import org.jetbrains.idea.maven.MavenImportingTestCase;
import java.util.ArrayList;
@@ -25,11 +24,11 @@ public abstract class FacetImporterTestCase<FACET_TYPE extends Facet, FACET_TYPE
List<String> expectedRootUrls = new ArrayList<String>();
for (String r : roots) {
String url = VfsUtil.pathToUrl(getProjectPath() + "/" + r);
String url = VfsUtilCore.pathToUrl(getProjectPath() + "/" + r);
expectedRootUrls.add(url);
}
assertUnorderedElementsAreEqual(actualRoots, ArrayUtil.toStringArray(expectedRootUrls));
assertUnorderedPathsAreEqual(actualRoots, expectedRootUrls);
}
protected FACET_TYPE getFacet(String module) {
@@ -8,11 +8,10 @@ import com.intellij.openapi.application.ApplicationManager;
import com.intellij.openapi.roots.OrderRootType;
import com.intellij.openapi.roots.libraries.Library;
import org.jetbrains.idea.maven.MavenImportingTestCase;
import org.jetbrains.idea.maven.importing.MavenDefaultModifiableModelsProvider;
import org.jetbrains.idea.maven.importing.MavenRootModelAdapter;
import org.jetbrains.plugins.groovy.config.GroovyConfigUtils;
import java.io.File;
import java.util.Arrays;
public class GroovyImporterTest extends MavenImportingTestCase {
@Override
@@ -67,9 +66,9 @@ public class GroovyImporterTest extends MavenImportingTestCase {
Library[] libraries = GroovyConfigUtils.getInstance().getSDKLibrariesByModule(getModule("project"));
assertTrue("unexpected groovy libs configuration: " + libraries.length, libraries.length > 0);
Library library = libraries[0];
assertUnorderedElementsAreEqual(
library.getUrls(OrderRootType.CLASSES),
"jar://" + getRepositoryPath() + "/org/codehaus/groovy/groovy-all-minimal/1.5.6/groovy-all-minimal-1.5.6.jar!/");
assertUnorderedPathsAreEqual(
Arrays.asList(library.getUrls(OrderRootType.CLASSES)),
Arrays.asList("jar://" + getRepositoryPath() + "/org/codehaus/groovy/groovy-all-minimal/1.5.6/groovy-all-minimal-1.5.6.jar!/"));
}
public void testAddingGroovySpecificSources() throws Exception {
@@ -371,8 +371,8 @@ public class MavenProjectsManagerTest extends MavenImportingTestCase {
MavenProject parentNode = roots.get(0);
MavenProject childNode = myProjectsTree.getModules(roots.get(0)).get(0);
assertUnorderedElementsAreEqual(parentNode.getSources(), FileUtil.toSystemDependentName(getProjectPath() + "/value1"));
assertUnorderedElementsAreEqual(childNode.getSources(), FileUtil.toSystemDependentName(getProjectPath() + "/m/value1"));
assertUnorderedPathsAreEqual(parentNode.getSources(), Arrays.asList(FileUtil.toSystemDependentName(getProjectPath() + "/value1")));
assertUnorderedPathsAreEqual(childNode.getSources(), Arrays.asList(FileUtil.toSystemDependentName(getProjectPath() + "/m/value1")));
updateSettingsXml("<profiles>" +
" <profile>" +
@@ -387,14 +387,14 @@ public class MavenProjectsManagerTest extends MavenImportingTestCase {
"</profiles>");
waitForReadingCompletion();
assertUnorderedElementsAreEqual(parentNode.getSources(), FileUtil.toSystemDependentName(getProjectPath() + "/value2"));
assertUnorderedElementsAreEqual(childNode.getSources(), FileUtil.toSystemDependentName(getProjectPath() + "/m/value2"));
assertUnorderedPathsAreEqual(parentNode.getSources(), Arrays.asList(FileUtil.toSystemDependentName(getProjectPath() + "/value2")));
assertUnorderedPathsAreEqual(childNode.getSources(), Arrays.asList(FileUtil.toSystemDependentName(getProjectPath() + "/m/value2")));
deleteSettingsXml();
waitForReadingCompletion();
assertUnorderedElementsAreEqual(parentNode.getSources(), FileUtil.toSystemDependentName(getProjectPath() + "/${prop}"));
assertUnorderedElementsAreEqual(childNode.getSources(), FileUtil.toSystemDependentName(getProjectPath() + "/m/${prop}"));
assertUnorderedPathsAreEqual(parentNode.getSources(), Arrays.asList(FileUtil.toSystemDependentName(getProjectPath() + "/${prop}")));
assertUnorderedPathsAreEqual(childNode.getSources(), Arrays.asList(FileUtil.toSystemDependentName(getProjectPath() + "/m/${prop}")));
updateSettingsXml("<profiles>" +
" <profile>" +
@@ -409,8 +409,8 @@ public class MavenProjectsManagerTest extends MavenImportingTestCase {
"</profiles>");
waitForReadingCompletion();
assertUnorderedElementsAreEqual(parentNode.getSources(), FileUtil.toSystemDependentName(getProjectPath() + "/value2"));
assertUnorderedElementsAreEqual(childNode.getSources(), FileUtil.toSystemDependentName(getProjectPath() + "/m/value2"));
assertUnorderedPathsAreEqual(parentNode.getSources(), Arrays.asList(FileUtil.toSystemDependentName(getProjectPath() + "/value2")));
assertUnorderedPathsAreEqual(childNode.getSources(), Arrays.asList(FileUtil.toSystemDependentName(getProjectPath() + "/m/value2")));
}
public void testUpdatingProjectsWhenSettingsXmlLocationIsChanged() throws Exception {
@@ -461,20 +461,20 @@ public class MavenProjectsManagerTest extends MavenImportingTestCase {
MavenProject parentNode = roots.get(0);
MavenProject childNode = myProjectsTree.getModules(roots.get(0)).get(0);
assertUnorderedElementsAreEqual(parentNode.getSources(), FileUtil.toSystemDependentName(getProjectPath() + "/value1"));
assertUnorderedElementsAreEqual(childNode.getSources(), FileUtil.toSystemDependentName(getProjectPath() + "/m/value1"));
assertUnorderedPathsAreEqual(parentNode.getSources(), Arrays.asList(FileUtil.toSystemDependentName(getProjectPath() + "/value1")));
assertUnorderedPathsAreEqual(childNode.getSources(), Arrays.asList(FileUtil.toSystemDependentName(getProjectPath() + "/m/value1")));
getMavenGeneralSettings().setUserSettingsFile("");
waitForReadingCompletion();
assertUnorderedElementsAreEqual(parentNode.getSources(), FileUtil.toSystemDependentName(getProjectPath() + "/${prop}"));
assertUnorderedElementsAreEqual(childNode.getSources(), FileUtil.toSystemDependentName(getProjectPath() + "/m/${prop}"));
assertUnorderedPathsAreEqual(parentNode.getSources(), Arrays.asList(FileUtil.toSystemDependentName(getProjectPath() + "/${prop}")));
assertUnorderedPathsAreEqual(childNode.getSources(), Arrays.asList(FileUtil.toSystemDependentName(getProjectPath() + "/m/${prop}")));
getMavenGeneralSettings().setUserSettingsFile(new File(myDir, "settings.xml").getPath());
waitForReadingCompletion();
assertUnorderedElementsAreEqual(parentNode.getSources(), FileUtil.toSystemDependentName(getProjectPath() + "/value1"));
assertUnorderedElementsAreEqual(childNode.getSources(), FileUtil.toSystemDependentName(getProjectPath() + "/m/value1"));
assertUnorderedPathsAreEqual(parentNode.getSources(), Arrays.asList(FileUtil.toSystemDependentName(getProjectPath() + "/value1")));
assertUnorderedPathsAreEqual(childNode.getSources(), Arrays.asList(FileUtil.toSystemDependentName(getProjectPath() + "/m/value1")));
}
public void testUpdatingProjectsOnSettingsXmlCreationAndDeletion() throws Exception {
@@ -586,8 +586,8 @@ public class MavenProjectsManagerTest extends MavenImportingTestCase {
MavenProject parentNode = roots.get(0);
MavenProject childNode = myProjectsTree.getModules(roots.get(0)).get(0);
assertUnorderedElementsAreEqual(parentNode.getSources(), FileUtil.toSystemDependentName(getProjectPath() + "/value1"));
assertUnorderedElementsAreEqual(childNode.getSources(), FileUtil.toSystemDependentName(getProjectPath() + "/m/value1"));
assertUnorderedPathsAreEqual(parentNode.getSources(), Arrays.asList(FileUtil.toSystemDependentName(getProjectPath() + "/value1")));
assertUnorderedPathsAreEqual(childNode.getSources(), Arrays.asList(FileUtil.toSystemDependentName(getProjectPath() + "/m/value1")));
createProfilesXmlOldStyle("<profile>" +
" <id>one</id>" +
@@ -600,14 +600,14 @@ public class MavenProjectsManagerTest extends MavenImportingTestCase {
"</profile>");
waitForReadingCompletion();
assertUnorderedElementsAreEqual(parentNode.getSources(), FileUtil.toSystemDependentName(getProjectPath() + "/value2"));
assertUnorderedElementsAreEqual(childNode.getSources(), FileUtil.toSystemDependentName(getProjectPath() + "/m/value2"));
assertUnorderedPathsAreEqual(parentNode.getSources(), Arrays.asList(FileUtil.toSystemDependentName(getProjectPath() + "/value2")));
assertUnorderedPathsAreEqual(childNode.getSources(), Arrays.asList(FileUtil.toSystemDependentName(getProjectPath() + "/m/value2")));
deleteProfilesXml();
waitForReadingCompletion();
assertUnorderedElementsAreEqual(parentNode.getSources(), FileUtil.toSystemDependentName(getProjectPath() + "/${prop}"));
assertUnorderedElementsAreEqual(childNode.getSources(), FileUtil.toSystemDependentName(getProjectPath() + "/m/${prop}"));
assertUnorderedPathsAreEqual(parentNode.getSources(), Arrays.asList(FileUtil.toSystemDependentName(getProjectPath() + "/${prop}")));
assertUnorderedPathsAreEqual(childNode.getSources(), Arrays.asList(FileUtil.toSystemDependentName(getProjectPath() + "/m/${prop}")));
createProfilesXmlOldStyle("<profile>" +
" <id>one</id>" +
@@ -620,8 +620,8 @@ public class MavenProjectsManagerTest extends MavenImportingTestCase {
"</profile>");
waitForReadingCompletion();
assertUnorderedElementsAreEqual(parentNode.getSources(), FileUtil.toSystemDependentName(getProjectPath() + "/value2"));
assertUnorderedElementsAreEqual(childNode.getSources(), FileUtil.toSystemDependentName(getProjectPath() + "/m/value2"));
assertUnorderedPathsAreEqual(parentNode.getSources(), Arrays.asList(FileUtil.toSystemDependentName(getProjectPath() + "/value2")));
assertUnorderedPathsAreEqual(childNode.getSources(), Arrays.asList(FileUtil.toSystemDependentName(getProjectPath() + "/m/value2")));
}
public void testHandlingDirectoryWithPomFileDeletion() throws Exception {
@@ -691,9 +691,9 @@ public class MavenProjectsManagerTest extends MavenImportingTestCase {
myProjectsManager.setIgnoredFilesPatterns(Arrays.asList("*.xxx"));
state = myProjectsManager.getState();
assertUnorderedElementsAreEqual(state.originalFiles, p1.getPath(), p2.getPath());
assertUnorderedPathsAreEqual(state.originalFiles, Arrays.asList(p1.getPath(), p2.getPath()));
assertUnorderedElementsAreEqual(MavenWorkspaceSettingsComponent.getInstance(myProject).getState().enabledProfiles, "one", "two");
assertUnorderedElementsAreEqual(state.ignoredFiles, p1.getPath());
assertUnorderedPathsAreEqual(state.ignoredFiles, Arrays.asList(p1.getPath()));
assertUnorderedElementsAreEqual(state.ignoredPathMasks, "*.xxx");
MavenProjectsManagerState newState = new MavenProjectsManagerState();
@@ -705,10 +705,10 @@ public class MavenProjectsManagerTest extends MavenImportingTestCase {
myProjectsManager.loadState(newState);
assertUnorderedElementsAreEqual(myProjectsManager.getProjectsTreeForTests().getManagedFilesPaths(),
p1.getPath(), p3.getPath());
assertUnorderedPathsAreEqual(myProjectsManager.getProjectsTreeForTests().getManagedFilesPaths(),
Arrays.asList(p1.getPath(), p3.getPath()));
assertUnorderedElementsAreEqual(myProjectsManager.getExplicitProfiles(), "three");
assertUnorderedElementsAreEqual(myProjectsManager.getIgnoredFilesPaths(), p1.getPath());
assertUnorderedPathsAreEqual(myProjectsManager.getIgnoredFilesPaths(), Arrays.asList(p1.getPath()));
assertUnorderedElementsAreEqual(myProjectsManager.getIgnoredFilesPatterns(), "*.zzz");
waitForReadingCompletion();
@@ -1594,13 +1594,13 @@ public class MavenProjectsTreeReadingTest extends MavenProjectsTreeTestCase {
MavenProject parentNode = roots.get(0);
MavenProject childNode = myTree.getModules(roots.get(0)).get(0);
assertUnorderedElementsAreEqual(parentNode.getSources(), FileUtil.toSystemDependentName(getProjectPath() + "/value1"));
assertUnorderedElementsAreEqual(childNode.getSources(), FileUtil.toSystemDependentName(getProjectPath() + "/m/value1"));
assertUnorderedPathsAreEqual(parentNode.getSources(), Arrays.asList(FileUtil.toSystemDependentName(getProjectPath() + "/value1")));
assertUnorderedPathsAreEqual(childNode.getSources(), Arrays.asList(FileUtil.toSystemDependentName(getProjectPath() + "/m/value1")));
updateAll(Arrays.asList("two"), myProjectPom);
assertUnorderedElementsAreEqual(parentNode.getSources(), FileUtil.toSystemDependentName(getProjectPath() + "/value2"));
assertUnorderedElementsAreEqual(childNode.getSources(), FileUtil.toSystemDependentName(getProjectPath() + "/m/value2"));
assertUnorderedPathsAreEqual(parentNode.getSources(), Arrays.asList(FileUtil.toSystemDependentName(getProjectPath() + "/value2")));
assertUnorderedPathsAreEqual(childNode.getSources(), Arrays.asList(FileUtil.toSystemDependentName(getProjectPath() + "/m/value2")));
}
public void testUpdatingModelWhenProfilesXmlChange() throws Exception {
@@ -1628,7 +1628,7 @@ public class MavenProjectsTreeReadingTest extends MavenProjectsTreeTestCase {
List<MavenProject> roots = myTree.getRootProjects();
MavenProject project = roots.get(0);
assertUnorderedElementsAreEqual(project.getSources(), FileUtil.toSystemDependentName(getProjectPath() + "/value1"));
assertUnorderedPathsAreEqual(project.getSources(), Arrays.asList(FileUtil.toSystemDependentName(getProjectPath() + "/value1")));
createProfilesXmlOldStyle("<profile>" +
" <id>one</id>" +
@@ -1642,7 +1642,7 @@ public class MavenProjectsTreeReadingTest extends MavenProjectsTreeTestCase {
updateAll(myProjectPom);
assertUnorderedElementsAreEqual(project.getSources(), FileUtil.toSystemDependentName(getProjectPath() + "/value2"));
assertUnorderedPathsAreEqual(project.getSources(), Arrays.asList(FileUtil.toSystemDependentName(getProjectPath() + "/value2")));
}
public void testUpdatingModelWhenParentProfilesXmlChange() throws Exception {
@@ -1683,7 +1683,7 @@ public class MavenProjectsTreeReadingTest extends MavenProjectsTreeTestCase {
List<MavenProject> roots = myTree.getRootProjects();
MavenProject childProject = roots.get(1);
assertUnorderedElementsAreEqual(childProject.getSources(), FileUtil.toSystemDependentName(getProjectPath() + "/m/value1"));
assertUnorderedPathsAreEqual(childProject.getSources(), Arrays.asList(FileUtil.toSystemDependentName(getProjectPath() + "/m/value1")));
createProfilesXmlOldStyle("parent",
"<profile>" +
@@ -1697,7 +1697,7 @@ public class MavenProjectsTreeReadingTest extends MavenProjectsTreeTestCase {
"</profile>");
update(parent);
assertUnorderedElementsAreEqual(childProject.getSources(), FileUtil.toSystemDependentName(getProjectPath() + "/m/value2"));
assertUnorderedPathsAreEqual(childProject.getSources(), Arrays.asList(FileUtil.toSystemDependentName(getProjectPath() + "/m/value2")));
}
public void testUpdatingModelWhenParentProfilesXmlChangeAndItIsAModuleAlso() throws Exception {
@@ -1738,7 +1738,7 @@ public class MavenProjectsTreeReadingTest extends MavenProjectsTreeTestCase {
updateAll(myProjectPom);
MavenProject childNode = myTree.getModules(myTree.getRootProjects().get(0)).get(0);
assertUnorderedElementsAreEqual(childNode.getSources(), FileUtil.toSystemDependentName(getProjectPath() + "/m/value1"));
assertUnorderedPathsAreEqual(childNode.getSources(), Arrays.asList(FileUtil.toSystemDependentName(getProjectPath() + "/m/value1")));
createProfilesXmlOldStyle("<profile>" +
" <id>one</id>" +
@@ -1751,7 +1751,7 @@ public class MavenProjectsTreeReadingTest extends MavenProjectsTreeTestCase {
"</profile>");
updateAll(myProjectPom);
assertUnorderedElementsAreEqual(childNode.getSources(), FileUtil.toSystemDependentName(getProjectPath() + "/m/value2"));
assertUnorderedPathsAreEqual(childNode.getSources(), Arrays.asList(FileUtil.toSystemDependentName(getProjectPath() + "/m/value2")));
}
public void testDoNotUpdateModelWhenAggregatorProfilesXmlChange() throws Exception {