Utility test method extracted

This commit is contained in:
Roman Shevchenko
2011-02-14 19:00:06 +01:00
parent 939dd6c470
commit f36e46e3d9
3 changed files with 36 additions and 32 deletions
@@ -18,6 +18,9 @@ package com.intellij.testFramework;
import com.intellij.ide.util.treeView.AbstractTreeNode;
import com.intellij.openapi.application.ApplicationManager;
import com.intellij.openapi.fileEditor.FileDocumentManager;
import com.intellij.openapi.module.Module;
import com.intellij.openapi.roots.LanguageLevelModuleExtension;
import com.intellij.openapi.roots.LanguageLevelProjectExtension;
import com.intellij.openapi.ui.Queryable;
import com.intellij.openapi.util.io.FileUtil;
import com.intellij.openapi.util.text.StringUtil;
@@ -25,6 +28,7 @@ import com.intellij.openapi.vfs.LocalFileSystem;
import com.intellij.openapi.vfs.VfsUtil;
import com.intellij.openapi.vfs.VirtualFile;
import com.intellij.openapi.vfs.VirtualFileFilter;
import com.intellij.pom.java.LanguageLevel;
import com.intellij.util.containers.HashMap;
import com.intellij.util.io.ZipUtil;
import junit.framework.Assert;
@@ -167,11 +171,35 @@ public class IdeaTestUtil extends PlatformTestUtil {
printDetectedPerformanceTimings();
}
@SuppressWarnings({"UseOfSystemOutOrSystemErr"})
public static void printDetectedPerformanceTimings() {
System.out.println("Etalon timing: " + ETALON_TIMING);
System.out.println("This machine timing: " + Timings.MACHINE_TIMING);
}
public static void withLevel(final Module module, final LanguageLevel level, final Runnable r) {
final LanguageLevelProjectExtension projectExt = LanguageLevelProjectExtension.getInstance(module.getProject());
final LanguageLevelModuleExtension moduleExt = LanguageLevelModuleExtension.getInstance(module);
final LanguageLevel projectLevel = projectExt.getLanguageLevel();
final LanguageLevel moduleLevel = moduleExt.getLanguageLevel();
try {
projectExt.setLanguageLevel(level);
setModuleLanguageLevel(level, moduleExt);
r.run();
}
finally {
setModuleLanguageLevel(moduleLevel, moduleExt);
projectExt.setLanguageLevel(projectLevel);
}
}
private static void setModuleLanguageLevel(final LanguageLevel level, final LanguageLevelModuleExtension moduleExt) {
final LanguageLevelModuleExtension modifiable = (LanguageLevelModuleExtension)moduleExt.getModifiableModel(true);
modifiable.setLanguageLevel(level);
modifiable.commit();
}
public static class CvsVirtualFileFilter implements VirtualFileFilter, FilenameFilter {
@Override
public boolean accept(VirtualFile file) {
@@ -19,6 +19,7 @@ import com.intellij.openapi.module.ModuleType;
import com.intellij.openapi.module.StdModuleTypes;
import com.intellij.openapi.projectRoots.Sdk;
import com.intellij.openapi.projectRoots.impl.JavaSdkImpl;
import com.intellij.pom.java.LanguageLevel;
import com.intellij.psi.impl.JavaPsiFacadeEx;
/**
@@ -49,4 +50,8 @@ public abstract class LightIdeaTestCase extends LightPlatformTestCase {
protected ModuleType getModuleType() {
return StdModuleTypes.JAVA;
}
protected static void withLevel(final LanguageLevel level, final Runnable r) {
IdeaTestUtil.withLevel(getModule(), level, r);
}
}