mirror of
https://gitflic.ru/project/openide/openide.git
synced 2026-09-27 10:03:11 +07:00
javac ast indices: more find usages tests
This commit is contained in:
+7
@@ -0,0 +1,7 @@
|
||||
class Bar {
|
||||
|
||||
void m() {
|
||||
System.out.println(Foo.CONST);
|
||||
}
|
||||
|
||||
}
|
||||
+5
@@ -0,0 +1,5 @@
|
||||
public class Foo {
|
||||
|
||||
public static final String CONST = "value";
|
||||
|
||||
}
|
||||
+6
@@ -0,0 +1,6 @@
|
||||
/**
|
||||
* {@link System}
|
||||
*/
|
||||
class Foo {
|
||||
|
||||
}
|
||||
+7
@@ -0,0 +1,7 @@
|
||||
class Foo {
|
||||
|
||||
void m() {
|
||||
System.out.println("");
|
||||
}
|
||||
|
||||
}
|
||||
+9
@@ -0,0 +1,9 @@
|
||||
import java.util.Collections;
|
||||
|
||||
class Foo {
|
||||
|
||||
void m() {
|
||||
Collections.emptyList();
|
||||
}
|
||||
|
||||
}
|
||||
+64
-9
@@ -16,26 +16,81 @@
|
||||
package com.intellij.compiler;
|
||||
|
||||
import com.intellij.JavaTestUtil;
|
||||
import com.intellij.codeInsight.daemon.DaemonAnalyzerTestCase;
|
||||
import com.intellij.lang.injection.InjectedLanguageManager;
|
||||
import com.intellij.psi.PsiClass;
|
||||
import com.intellij.psi.PsiReference;
|
||||
import com.intellij.psi.*;
|
||||
import com.intellij.psi.impl.source.tree.injected.MyTestInjector;
|
||||
import com.intellij.psi.impl.source.tree.java.PsiReferenceExpressionImpl;
|
||||
import com.intellij.psi.search.searches.MethodReferencesSearch;
|
||||
import com.intellij.psi.search.searches.ReferencesSearch;
|
||||
import com.intellij.testFramework.CompilerTester;
|
||||
import com.intellij.testFramework.SkipSlowTestLocally;
|
||||
|
||||
@SkipSlowTestLocally
|
||||
public class CompilerReferencesFindUsagesTest extends CompilerReferencesTestBase {
|
||||
public class CompilerReferencesFindUsagesTest extends DaemonAnalyzerTestCase {
|
||||
//TODO merge tests
|
||||
private boolean myDefaultEnableState;
|
||||
private CompilerTester myCompilerTester;
|
||||
|
||||
@Override
|
||||
public void setUp() throws Exception {
|
||||
myDefaultEnableState = CompilerReferenceService.IS_ENABLED_KEY.asBoolean();
|
||||
CompilerReferenceService.IS_ENABLED_KEY.setValue(true);
|
||||
super.setUp();
|
||||
myCompilerTester = new CompilerTester(myModule);
|
||||
}
|
||||
|
||||
@Override
|
||||
public void tearDown() throws Exception {
|
||||
try {
|
||||
CompilerReferenceService.IS_ENABLED_KEY.setValue(myDefaultEnableState);
|
||||
myCompilerTester.tearDown();
|
||||
}
|
||||
finally {
|
||||
myCompilerTester = null;
|
||||
super.tearDown();
|
||||
}
|
||||
}
|
||||
|
||||
protected String getTestDataPath() {
|
||||
return JavaTestUtil.getJavaTestDataPath() + "/compiler/compilerReferenceFindUsages/";
|
||||
}
|
||||
|
||||
public void testFindUsagesInInjectedCode() {
|
||||
public void testLibMethodUsage() throws Exception {
|
||||
configureByFile(getName() + "/Foo.java");
|
||||
myCompilerTester.rebuild();
|
||||
PsiMethod methodToSearch = myJavaFacade.findClass(CommonClassNames.JAVA_UTIL_COLLECTIONS).findMethodsByName("emptyList", false)[0];
|
||||
assertOneElement(MethodReferencesSearch.search(methodToSearch).findAll());
|
||||
}
|
||||
|
||||
public void testLibClassUsage() throws Exception {
|
||||
configureByFile(getName() + "/Foo.java");
|
||||
myCompilerTester.rebuild();
|
||||
PsiClass classForSearch = myJavaFacade.findClass("java.lang.System");
|
||||
assertOneElement(ReferencesSearch.search(classForSearch).findAll());
|
||||
}
|
||||
|
||||
public void testLibClassInJavaDocUsage() throws Exception {
|
||||
configureByFile(getName() + "/Foo.java");
|
||||
myCompilerTester.rebuild();
|
||||
PsiClass classForSearch = myJavaFacade.findClass("java.lang.System");
|
||||
assertOneElement(ReferencesSearch.search(classForSearch).findAll());
|
||||
}
|
||||
|
||||
public void testCompileTimeConstFindUsages() throws Exception {
|
||||
configureByFiles(getName(), getName() + "/Bar.java", getName() + "/Foo.java");
|
||||
PsiField classForSearch = findClass("Foo").findFieldByName("CONST", false);
|
||||
PsiElement referenceBefore = assertOneElement(ReferencesSearch.search(classForSearch).findAll()).getElement();
|
||||
myCompilerTester.rebuild();
|
||||
PsiElement referenceAfter = assertOneElement(ReferencesSearch.search(classForSearch).findAll()).getElement();
|
||||
assertTrue(referenceBefore == referenceAfter);
|
||||
}
|
||||
|
||||
public void testFindUsagesInInjectedCode() throws Exception {
|
||||
new MyTestInjector(getPsiManager()).injectAll(getTestRootDisposable());
|
||||
myFixture.configureByFile(getName() + "/Foo.java");
|
||||
rebuildProject();
|
||||
PsiClass classForSearch = myFixture.getJavaFacade().findClass("java.lang.System");
|
||||
configureByFile(getName() + "/Foo.java");
|
||||
myCompilerTester.rebuild();
|
||||
PsiClass classForSearch = myJavaFacade.findClass("java.lang.System");
|
||||
PsiReference reference = assertOneElement(ReferencesSearch.search(classForSearch).findAll());
|
||||
assertTrue(InjectedLanguageManager.getInstance(getProject()).isInjectedFragment(((PsiReferenceExpressionImpl)reference).getContainingFile()));
|
||||
assertTrue(InjectedLanguageManager.getInstance(getProject()).isInjectedFragment(reference.getElement().getContainingFile()));
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user