This commit is contained in:
Alexey Kudravtsev
2009-10-05 13:18:17 +04:00
parent c7ea5fb547
commit 262f483564
8 changed files with 56 additions and 52 deletions
@@ -21,9 +21,6 @@ import com.intellij.lang.annotation.HighlightSeverity;
import com.intellij.openapi.Disposable;
import com.intellij.openapi.editor.Document;
import com.intellij.openapi.editor.Editor;
import com.intellij.openapi.fileTypes.FileType;
import com.intellij.openapi.fileTypes.FileTypeManager;
import com.intellij.openapi.fileTypes.StdFileTypes;
import com.intellij.openapi.module.Module;
import com.intellij.openapi.progress.ProgressIndicator;
import com.intellij.openapi.roots.ModuleRootManager;
@@ -46,9 +43,9 @@ import com.intellij.psi.impl.source.tree.TreeUtil;
import com.intellij.psi.search.GlobalSearchScope;
import com.intellij.psi.search.UsageSearchContext;
import com.intellij.testFramework.ExpectedHighlightingData;
import com.intellij.testFramework.FileTreeAccessFilter;
import com.intellij.util.IncorrectOperationException;
import gnu.trove.THashMap;
import gnu.trove.THashSet;
import gnu.trove.TIntArrayList;
import org.jetbrains.annotations.NonNls;
import org.jetbrains.annotations.NotNull;
@@ -61,7 +58,7 @@ public abstract class DaemonAnalyzerTestCase extends CodeInsightTestCase {
private final Map<String, LocalInspectionTool> myAvailableTools = new THashMap<String, LocalInspectionTool>();
private final Map<String, LocalInspectionToolWrapper> myAvailableLocalTools = new THashMap<String, LocalInspectionToolWrapper>();
private boolean toInitializeDaemon;
protected final Set<VirtualFile> myAddedClasses = new THashSet<VirtualFile>();
private final FileTreeAccessFilter myFileTreeAccessFilter = new FileTreeAccessFilter();
protected void setUp() throws Exception {
super.setUp();
@@ -169,9 +166,8 @@ public abstract class DaemonAnalyzerTestCase extends CodeInsightTestCase {
final ArrayList<LocalInspectionTool> result = new ArrayList<LocalInspectionTool>();
for (InspectionToolProvider toolProvider : provider) {
for (Class aClass : toolProvider.getInspectionClasses()) {
final Object tool;
try {
tool = aClass.newInstance();
final Object tool = aClass.newInstance();
assertTrue(tool instanceof LocalInspectionTool);
result.add((LocalInspectionTool)tool);
}
@@ -223,17 +219,9 @@ public abstract class DaemonAnalyzerTestCase extends CodeInsightTestCase {
//to initialize caches
myPsiManager.getCacheManager().getFilesWithWord("XXX", UsageSearchContext.IN_COMMENTS, GlobalSearchScope.allScope(myProject), true);
VirtualFileFilter javaFilesFilter = new VirtualFileFilter() {
public boolean accept(VirtualFile file) {
if (myAddedClasses.contains(file)) return false;
FileType fileType = FileTypeManager.getInstance().getFileTypeByFile(file);
return (fileType == StdFileTypes.JAVA || fileType == StdFileTypes.CLASS) && !file.getName().equals("package-info.java");
}
};
final JavaPsiFacadeEx facade = getJavaFacade();
if (facade != null) {
facade.setAssertOnFileLoadingFilter(javaFilesFilter); // check repository work
facade.setAssertOnFileLoadingFilter(myFileTreeAccessFilter); // check repository work
}
Collection<HighlightInfo> infos = doHighlighting();
@@ -249,7 +237,7 @@ public abstract class DaemonAnalyzerTestCase extends CodeInsightTestCase {
}
public void allowTreeAccessForFile(final VirtualFile file) {
myAddedClasses.add(file);
myFileTreeAccessFilter.allowTreeAccessForFile(file);
}
protected Collection<HighlightInfo> highlightErrors() {
@@ -8,16 +8,13 @@ import com.intellij.codeInsight.daemon.impl.HighlightInfo;
import com.intellij.codeInsight.daemon.impl.TextEditorHighlightingPassRegistrarEx;
import com.intellij.injected.editor.EditorWindow;
import com.intellij.openapi.editor.Editor;
import com.intellij.openapi.fileTypes.FileType;
import com.intellij.openapi.fileTypes.FileTypeManager;
import com.intellij.openapi.fileTypes.StdFileTypes;
import com.intellij.openapi.progress.ProgressIndicator;
import com.intellij.openapi.vfs.VirtualFile;
import com.intellij.openapi.vfs.VirtualFileFilter;
import com.intellij.psi.PsiDocumentManager;
import com.intellij.psi.PsiFile;
import com.intellij.psi.impl.source.tree.injected.InjectedLanguageUtil;
import com.intellij.testFramework.ExpectedHighlightingData;
import com.intellij.testFramework.FileTreeAccessFilter;
import com.intellij.testFramework.LightCodeInsightTestCase;
import com.intellij.util.ArrayUtil;
import org.jetbrains.annotations.NonNls;
@@ -29,6 +26,8 @@ import java.util.Collections;
import java.util.List;
public abstract class LightDaemonAnalyzerTestCase extends LightCodeInsightTestCase {
private final FileTreeAccessFilter myJavaFilesFilter = new FileTreeAccessFilter();
@Override
protected void setUp() throws Exception {
super.setUp();
@@ -54,13 +53,8 @@ public abstract class LightDaemonAnalyzerTestCase extends LightCodeInsightTestCa
PsiDocumentManager.getInstance(getProject()).commitAllDocuments();
getFile().getText(); //to load text
VirtualFileFilter javaFilesFilter = new VirtualFileFilter() {
public boolean accept(VirtualFile file) {
FileType fileType = FileTypeManager.getInstance().getFileTypeByFile(file);
return fileType == StdFileTypes.JAVA || fileType == StdFileTypes.CLASS;
}
};
getJavaFacade().setAssertOnFileLoadingFilter(javaFilesFilter); // check repository work
myJavaFilesFilter.allowTreeAccessForFile(getVFile());
getJavaFacade().setAssertOnFileLoadingFilter(myJavaFilesFilter); // check repository work
Collection<HighlightInfo> infos = doHighlighting();
@@ -40,7 +40,7 @@ public class IdeaTestUtil extends PlatformTestUtil {
};
public static final boolean COVERAGE_ENABLED_BUILD = "true".equals(System.getProperty("idea.coverage.enabled.build"));
public static final MyVirtualFileFilter CVS_FILE_FILTER = new MyVirtualFileFilter();
public static final CvsVirtualFileFilter CVS_FILE_FILTER = new CvsVirtualFileFilter();
private static HashMap<String, VirtualFile> buildNameToFileMap(VirtualFile[] files, VirtualFileFilter filter) {
HashMap<String, VirtualFile> map = new HashMap<String, VirtualFile>();
@@ -263,7 +263,7 @@ public class IdeaTestUtil extends PlatformTestUtil {
System.out.println("This machine timing: " + Timings.MACHINE_TIMING);
}
public static class MyVirtualFileFilter implements VirtualFileFilter, FilenameFilter {
public static class CvsVirtualFileFilter implements VirtualFileFilter, FilenameFilter {
public boolean accept(VirtualFile file) {
return !file.isDirectory() || !"CVS".equals(file.getName());
}