From 162b80fa39a8cb5d81eeccd85a8cda64d06356f9 Mon Sep 17 00:00:00 2001 From: "Maxim.Mossienko" Date: Wed, 16 Oct 2013 12:26:13 +0200 Subject: [PATCH] fix tests --- .../DefaultClassNavigationContributor.java | 31 +++++++++---------- .../navigation/ChooseByNameTest.groovy | 10 +++++- 2 files changed, 23 insertions(+), 18 deletions(-) diff --git a/java/java-impl/src/com/intellij/ide/util/gotoByName/DefaultClassNavigationContributor.java b/java/java-impl/src/com/intellij/ide/util/gotoByName/DefaultClassNavigationContributor.java index 70429b93d1a2..23aa77adfc63 100644 --- a/java/java-impl/src/com/intellij/ide/util/gotoByName/DefaultClassNavigationContributor.java +++ b/java/java-impl/src/com/intellij/ide/util/gotoByName/DefaultClassNavigationContributor.java @@ -32,8 +32,6 @@ import com.intellij.util.indexing.IdFilter; import org.jetbrains.annotations.NotNull; import org.jetbrains.annotations.Nullable; -import java.util.ArrayList; - public class DefaultClassNavigationContributor implements ChooseByNameContributorEx, GotoClassContributor { @Override @NotNull @@ -52,19 +50,10 @@ public class DefaultClassNavigationContributor implements ChooseByNameContributo @Override @NotNull public NavigationItem[] getItemsByName(String name, final String pattern, Project project, boolean includeNonProjectItems) { - final GlobalSearchScope scope = includeNonProjectItems ? GlobalSearchScope.allScope(project) : GlobalSearchScope.projectScope(project); - return filterUnshowable(PsiShortNamesCache.getInstance(project).getClassesByName(name, scope), pattern); - } + CommonProcessors.CollectProcessor processor = new CommonProcessors.CollectProcessor(); + processElementsWithName(name, processor, FindSymbolParameters.wrap(pattern, project, includeNonProjectItems)); - private static NavigationItem[] filterUnshowable(PsiClass[] items, final String pattern) { - boolean isAnnotation = pattern.startsWith("@"); - ArrayList list = new ArrayList(items.length); - for (PsiClass item : items) { - if (item.getContainingFile().getVirtualFile() == null) continue; - if (isAnnotation && !item.isAnnotationType()) continue; - list.add(item); - } - return list.toArray(new NavigationItem[list.size()]); + return processor.toArray(new NavigationItem[processor.getResults().size()]); } @Override @@ -95,8 +84,16 @@ public class DefaultClassNavigationContributor implements ChooseByNameContributo @Override public void processElementsWithName(@NotNull String name, - @NotNull Processor processor, - @NotNull FindSymbolParameters parameters) { - PsiShortNamesCache.getInstance(parameters.getProject()).processClassesWithName(name, processor, parameters.getSearchScope(), parameters.getIdFilter()); + @NotNull final Processor processor, + @NotNull final FindSymbolParameters parameters) { + PsiShortNamesCache.getInstance(parameters.getProject()).processClassesWithName(name, new Processor() { + final boolean isAnnotation = parameters.getLocalPatternName().startsWith("@"); + @Override + public boolean process(PsiClass aClass) { + if (aClass.getContainingFile().getVirtualFile() == null) return true; + if (isAnnotation && !aClass.isAnnotationType()) return true; + return processor.process(aClass); + } + }, parameters.getSearchScope(), parameters.getIdFilter()); } } \ No newline at end of file diff --git a/java/java-tests/testSrc/com/intellij/navigation/ChooseByNameTest.groovy b/java/java-tests/testSrc/com/intellij/navigation/ChooseByNameTest.groovy index b72206fe91ab..d6c4e81bd6e4 100644 --- a/java/java-tests/testSrc/com/intellij/navigation/ChooseByNameTest.groovy +++ b/java/java-tests/testSrc/com/intellij/navigation/ChooseByNameTest.groovy @@ -141,10 +141,18 @@ class Intf { def popup = createPopup(new GotoFileModel(project), fooIndex) assert getPopupElements(popup, "foo/") == [fooIndex.containingDirectory] assert getPopupElements(popup, "foo\\") == [fooIndex.containingDirectory] - assert getPopupElements(popup, "foo") == [fooIndex.containingDirectory] + assert getPopupElements(popup, "/foo") == [fooIndex.containingDirectory] + assert getPopupElements(popup, "\\foo") == [fooIndex.containingDirectory] + assert getPopupElements(popup, "foo") == [] + assert getPopupElements(popup, "/index.html") == [fooIndex] + assert getPopupElements(popup, "\\index.html") == [fooIndex] + assert getPopupElements(popup, "index.html/") == [fooIndex] + assert getPopupElements(popup, "index.html\\") == [fooIndex] assert getPopupElements(popup, "bar.txt/") == [barIndex.containingDirectory] assert getPopupElements(popup, "bar.txt\\") == [barIndex.containingDirectory] + assert getPopupElements(popup, "/bar.txt") == [barIndex.containingDirectory] + assert getPopupElements(popup, "\\bar.txt") == [barIndex.containingDirectory] assert getPopupElements(popup, "bar.txt") == [barIndex] popup.close(false) }