Cleanup (test stability)

This commit is contained in:
Roman Shevchenko
2014-04-03 21:34:41 +02:00
parent d70e1ac0ef
commit 192b16f4d0
@@ -20,24 +20,24 @@
*/
package org.jetbrains.idea.eclipse;
import com.intellij.openapi.application.ApplicationManager;
import com.intellij.openapi.application.PluginPathManager;
import com.intellij.openapi.command.WriteCommandAction;
import com.intellij.openapi.module.Module;
import com.intellij.openapi.module.ModuleManager;
import com.intellij.openapi.module.StdModuleTypes;
import com.intellij.openapi.options.ConfigurationException;
import com.intellij.openapi.project.Project;
import com.intellij.openapi.roots.ModifiableRootModel;
import com.intellij.openapi.roots.ModuleRootManager;
import com.intellij.openapi.roots.ModuleRootModel;
import com.intellij.openapi.roots.ModuleRootModificationUtil;
import com.intellij.openapi.util.Computable;
import com.intellij.openapi.util.JDOMUtil;
import com.intellij.openapi.util.SystemInfo;
import com.intellij.openapi.util.io.FileUtil;
import com.intellij.openapi.util.text.StringUtil;
import com.intellij.testFramework.IdeaTestCase;
import junit.framework.Assert;
import com.intellij.util.Consumer;
import com.intellij.util.containers.ContainerUtil;
import org.jdom.Document;
import org.jdom.Element;
import org.jdom.JDOMException;
@@ -48,8 +48,7 @@ import org.jetbrains.idea.eclipse.conversion.EclipseClasspathWriter;
import java.io.File;
import java.io.IOException;
import java.util.ArrayList;
import java.util.HashSet;
import java.util.Set;
public class EclipseClasspathTest extends IdeaTestCase {
@Override
@@ -73,31 +72,35 @@ public class EclipseClasspathTest extends IdeaTestCase {
checkModule(path, setUpModule(path, project));
}
static Module setUpModule(final String path, @NotNull final Project project)
throws IOException, JDOMException, ConversionException, ConfigurationException {
static Module setUpModule(final String path, @NotNull final Project project) throws Exception {
final File classpathFile = new File(path, EclipseXml.DOT_CLASSPATH_EXT);
String fileText = FileUtil.loadFile(classpathFile).replaceAll("\\$ROOT\\$", project.getBaseDir().getPath());
if (!SystemInfo.isWindows) {
fileText = fileText.replaceAll(EclipseXml.FILE_PROTOCOL + "/", EclipseXml.FILE_PROTOCOL);
}
final Element classpathElement = JDOMUtil.loadDocument(fileText).getRootElement();
final Module module = WriteCommandAction.runWriteCommandAction(null, new Computable<Module>() {
@Override
public Module compute() {
return ModuleManager.getInstance(project)
.newModule(path + "/" + EclipseProjectFinder.findProjectName(path) + IdeaXml.IML_EXT, StdModuleTypes.JAVA.getId());
String imlPath = path + "/" + EclipseProjectFinder.findProjectName(path) + IdeaXml.IML_EXT;
return ModuleManager.getInstance(project).newModule(imlPath, StdModuleTypes.JAVA.getId());
}
});
final ModifiableRootModel rootModel = ModuleRootManager.getInstance(module).getModifiableModel();
final EclipseClasspathReader classpathReader = new EclipseClasspathReader(path, project, null);
classpathReader.init(rootModel);
classpathReader
.readClasspath(rootModel, new ArrayList<String>(), new ArrayList<String>(), new HashSet<String>(), new HashSet<String>(), null,
classpathElement);
new EclipseClasspathStorageProvider().assertCompatible(rootModel);
ApplicationManager.getApplication().runWriteAction(new Runnable() {
public void run() {
rootModel.commit();
ModuleRootModificationUtil.updateModel(module, new Consumer<ModifiableRootModel>() {
@Override
public void consume(ModifiableRootModel model) {
try {
final Set<String> sink = ContainerUtil.newHashSet();
final EclipseClasspathReader classpathReader = new EclipseClasspathReader(path, project, null);
classpathReader.init(model);
classpathReader.readClasspath(model, sink, sink, sink, sink, null, classpathElement);
new EclipseClasspathStorageProvider().assertCompatible(model);
}
catch (Exception e) {
throw new RuntimeException(e);
}
}
});
return module;
@@ -116,8 +119,8 @@ public class EclipseClasspathTest extends IdeaTestCase {
new EclipseClasspathWriter(model).writeClasspath(resultClasspathElement, classpathElement1);
String resulted = new String(JDOMUtil.printDocument(new Document(resultClasspathElement), "\n"));
Assert.assertTrue(resulted.replaceAll(StringUtil.escapeToRegexp(module.getProject().getBaseDir().getPath()), "\\$ROOT\\$"),
JDOMUtil.areElementsEqual(classpathElement1, resultClasspathElement));
assertTrue(resulted.replaceAll(StringUtil.escapeToRegexp(module.getProject().getBaseDir().getPath()), "\\$ROOT\\$"),
JDOMUtil.areElementsEqual(classpathElement1, resultClasspathElement));
}