From 00ef0fc0a6c0037d11372af150d9884fbabe3d48 Mon Sep 17 00:00:00 2001 From: "Natalia.Ukhorskaya" Date: Thu, 27 Dec 2012 15:43:57 +0400 Subject: [PATCH] JUnit4: test function annotated with 'test' annotation #KT-3178 Fixed --- .../search/KotlinAnnotatedElementsSearcher.java | 10 +++++++++- idea/testData/search/junit/testJunit4Alias.kt | 13 +++++++++++++ .../jet/search/JUnitMembersSearcherTest.java | 14 +++++++++++++- 3 files changed, 35 insertions(+), 2 deletions(-) create mode 100644 idea/testData/search/junit/testJunit4Alias.kt diff --git a/idea/src/org/jetbrains/jet/plugin/search/KotlinAnnotatedElementsSearcher.java b/idea/src/org/jetbrains/jet/plugin/search/KotlinAnnotatedElementsSearcher.java index d61b3f06fe1..9e7742bf05f 100644 --- a/idea/src/org/jetbrains/jet/plugin/search/KotlinAnnotatedElementsSearcher.java +++ b/idea/src/org/jetbrains/jet/plugin/search/KotlinAnnotatedElementsSearcher.java @@ -101,7 +101,15 @@ public class KotlinAnnotatedElementsSearcher extends AnnotatedElementsSearcher { @Override public Collection compute() { if (useScope instanceof GlobalSearchScope) { - return JetAnnotationsIndex.getInstance().get(annClass.getName(), annClass.getProject(), (GlobalSearchScope)useScope); + Collection annotationEntries = + JetAnnotationsIndex.getInstance().get(annClass.getName(), annClass.getProject(), (GlobalSearchScope) useScope); + + // Add annotations 'test' as often used alias when we search Test annotation + if (annClass.getName().equals("Test")) { + annotationEntries.addAll(JetAnnotationsIndex.getInstance().get(annClass.getName().toLowerCase(), annClass.getProject(), (GlobalSearchScope) useScope)); + } + + return annotationEntries; } /* TODO getJetAnnotationCandidates works only with global search scope diff --git a/idea/testData/search/junit/testJunit4Alias.kt b/idea/testData/search/junit/testJunit4Alias.kt new file mode 100644 index 00000000000..b3a1ed601ee --- /dev/null +++ b/idea/testData/search/junit/testJunit4Alias.kt @@ -0,0 +1,13 @@ +import org.junit.Test as test +import org.junit.Test + +class MyTestClass { + test fun test1() {} + + [Deprecated test] fun test2() {} + + Test fun test3() {} +} + +// ANNOTATION: org.junit.Test +// SEARCH: PsiMethod:test1, PsiMethod:test2, PsiMethod:test3 \ No newline at end of file diff --git a/idea/tests/org/jetbrains/jet/search/JUnitMembersSearcherTest.java b/idea/tests/org/jetbrains/jet/search/JUnitMembersSearcherTest.java index 81ebc681b2a..4e8a30d8eae 100644 --- a/idea/tests/org/jetbrains/jet/search/JUnitMembersSearcherTest.java +++ b/idea/tests/org/jetbrains/jet/search/JUnitMembersSearcherTest.java @@ -63,6 +63,18 @@ public class JUnitMembersSearcherTest extends AbstractSearcherTest { }; public void testJunit3() throws IOException { + doJUnit3test(); + } + + public void testJunit4() throws IOException { + doJUnit4test(); + } + + public void testJunit4Alias() throws IOException { + doJUnit4test(); + } + + private void doJUnit3test() throws IOException { myFixture.configureByFile(getFileName()); List directives = InTextDirectivesUtils.findListWithPrefix("// CLASS: ", FileUtil.loadFile(new File(getPathToFile()))); assertFalse("Specify CLASS directive in test file", directives.isEmpty()); @@ -71,7 +83,7 @@ public class JUnitMembersSearcherTest extends AbstractSearcherTest { checkResult(ClassInheritorsSearch.search(psiClass, getProjectScope(), false)); } - public void testJunit4() throws IOException { + private void doJUnit4test() throws IOException { myFixture.configureByFile(getFileName()); List directives = InTextDirectivesUtils.findListWithPrefix("// ANNOTATION: ", FileUtil.loadFile(new File(getPathToFile()))); assertFalse("Specify ANNOTATION directive in test file", directives.isEmpty());