mirror of
https://gitflic.ru/project/openide/openide.git
synced 2026-09-27 10:03:11 +07:00
Utility test method extracted
This commit is contained in:
@@ -19,20 +19,15 @@ import com.intellij.lang.ASTNode;
|
||||
import com.intellij.lang.PsiBuilder;
|
||||
import com.intellij.lang.StdLanguages;
|
||||
import com.intellij.openapi.fileTypes.StdFileTypes;
|
||||
import com.intellij.openapi.roots.LanguageLevelModuleExtension;
|
||||
import com.intellij.openapi.roots.LanguageLevelProjectExtension;
|
||||
import com.intellij.pom.java.LanguageLevel;
|
||||
import com.intellij.psi.FileViewProvider;
|
||||
import com.intellij.psi.PsiFile;
|
||||
import com.intellij.psi.PsiManager;
|
||||
import com.intellij.psi.SingleRootFileViewProvider;
|
||||
import com.intellij.psi.impl.JavaPsiFacadeEx;
|
||||
import com.intellij.psi.impl.source.PsiJavaFileImpl;
|
||||
import com.intellij.psi.impl.source.tree.FileElement;
|
||||
import com.intellij.psi.tree.IFileElementType;
|
||||
import com.intellij.testFramework.IdeaTestCase;
|
||||
import com.intellij.testFramework.LightVirtualFile;
|
||||
import com.intellij.testFramework.ParsingTestCase;
|
||||
import com.intellij.testFramework.*;
|
||||
import org.jetbrains.annotations.NonNls;
|
||||
|
||||
import java.io.IOException;
|
||||
@@ -45,32 +40,8 @@ public abstract class JavaParsingTestCase extends ParsingTestCase {
|
||||
IdeaTestCase.initPlatformPrefix();
|
||||
}
|
||||
|
||||
public static JavaPsiFacadeEx getJavaFacade() {
|
||||
return JavaPsiFacadeEx.getInstanceEx(getProject());
|
||||
}
|
||||
|
||||
protected static void withLevel(final LanguageLevel level, final Runnable r) {
|
||||
final LanguageLevelProjectExtension projectExt = LanguageLevelProjectExtension.getInstance(getProject());
|
||||
final LanguageLevelModuleExtension moduleExt = LanguageLevelModuleExtension.getInstance(getModule());
|
||||
|
||||
final LanguageLevel projectLevel = projectExt.getLanguageLevel();
|
||||
final LanguageLevel moduleLevel = moduleExt.getLanguageLevel();
|
||||
try {
|
||||
projectExt.setLanguageLevel(level);
|
||||
|
||||
final LanguageLevelModuleExtension modifiable = (LanguageLevelModuleExtension)moduleExt.getModifiableModel(true);
|
||||
modifiable.setLanguageLevel(level);
|
||||
modifiable.commit();
|
||||
|
||||
r.run();
|
||||
}
|
||||
finally {
|
||||
final LanguageLevelModuleExtension modifiable = (LanguageLevelModuleExtension)moduleExt.getModifiableModel(true);
|
||||
modifiable.setLanguageLevel(moduleLevel);
|
||||
modifiable.commit();
|
||||
|
||||
projectExt.setLanguageLevel(projectLevel);
|
||||
}
|
||||
IdeaTestUtil.withLevel(getModule(), level, r);
|
||||
}
|
||||
|
||||
protected interface TestParser {
|
||||
@@ -91,7 +62,7 @@ public abstract class JavaParsingTestCase extends ParsingTestCase {
|
||||
private static IFileElementType TEST_FILE_ELEMENT_TYPE = null;
|
||||
private static TestParser TEST_PARSER;
|
||||
|
||||
protected PsiFile createPsiFile(final String name, final String text, final TestParser parser) {
|
||||
private PsiFile createPsiFile(final String name, final String text, final TestParser parser) {
|
||||
if (TEST_FILE_ELEMENT_TYPE == null) {
|
||||
TEST_FILE_ELEMENT_TYPE = new IFileElementType("test.java.file", StdLanguages.JAVA) {
|
||||
@Override
|
||||
|
||||
@@ -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);
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user