diff --git a/java/java-tests/testSrc/com/intellij/codeInsight/completion/CompletionSortingTestCase.java b/java/java-tests/testSrc/com/intellij/codeInsight/completion/CompletionSortingTestCase.java index 47eee184beb9..91309e5ddf32 100644 --- a/java/java-tests/testSrc/com/intellij/codeInsight/completion/CompletionSortingTestCase.java +++ b/java/java-tests/testSrc/com/intellij/codeInsight/completion/CompletionSortingTestCase.java @@ -10,11 +10,6 @@ import com.intellij.codeInsight.lookup.impl.LookupImpl; import com.intellij.testFramework.TestDataPath; import org.jetbrains.annotations.NonNls; -import javax.swing.*; -import java.util.ArrayList; -import java.util.Arrays; -import java.util.List; - /** * @author peter */ @@ -41,30 +36,12 @@ public abstract class CompletionSortingTestCase extends LightFixtureCompletionTe } protected void assertPreferredItems(final int selected, @NonNls final String... expected) { - final LookupImpl lookup = getLookup(); - final JList list = lookup.getList(); - final List model = lookup.getItems(); - final List actual = new ArrayList(); - final int count = lookup.getPreferredItemsCount(); - for (int i = 0; i < count; i++) { - actual.add(model.get(i).getLookupString()); - } - if (!actual.equals(Arrays.asList(expected))) { - final List strings = new ArrayList(); - for (int i = 0; i < model.size(); i++) { - final LookupElement item = model.get(i); - strings.add(item.getLookupString() + Arrays.toString(item.getUserData(CompletionLookupArranger.WEIGHT))); - if (i == count - 1) { - strings.add("---"); - } - } - assertOrderedEquals(strings, expected); - } - assertEquals(selected, list.getSelectedIndex()); + myFixture.assertPreferredCompletionItems(selected, expected); } protected LookupImpl invokeCompletion(final String path) throws Exception { - myFixture.configureFromExistingVirtualFile(myFixture.copyFileToProject(path, com.intellij.openapi.util.text.StringUtil.getShortName(path, '/'))); + myFixture.configureFromExistingVirtualFile( + myFixture.copyFileToProject(path, com.intellij.openapi.util.text.StringUtil.getShortName(path, '/'))); myFixture.complete(myType); return getLookup(); } diff --git a/platform/testFramework/src/com/intellij/testFramework/fixtures/CodeInsightTestFixture.java b/platform/testFramework/src/com/intellij/testFramework/fixtures/CodeInsightTestFixture.java index 867567e7ae6b..d45529c849d0 100644 --- a/platform/testFramework/src/com/intellij/testFramework/fixtures/CodeInsightTestFixture.java +++ b/platform/testFramework/src/com/intellij/testFramework/fixtures/CodeInsightTestFixture.java @@ -367,4 +367,6 @@ public interface CodeInsightTestFixture extends IdeaProjectTestFixture { void testFolding(String fileName); void testFoldingWithCollapseStatus(String fileName); + + void assertPreferredCompletionItems(int selected, @NonNls String... expected); } diff --git a/platform/testFramework/src/com/intellij/testFramework/fixtures/impl/CodeInsightTestFixtureImpl.java b/platform/testFramework/src/com/intellij/testFramework/fixtures/impl/CodeInsightTestFixtureImpl.java index d3df88473bf0..02d9a3460ead 100644 --- a/platform/testFramework/src/com/intellij/testFramework/fixtures/impl/CodeInsightTestFixtureImpl.java +++ b/platform/testFramework/src/com/intellij/testFramework/fixtures/impl/CodeInsightTestFixtureImpl.java @@ -20,6 +20,7 @@ import com.intellij.analysis.AnalysisScope; import com.intellij.codeHighlighting.HighlightDisplayLevel; import com.intellij.codeInsight.TargetElementUtilBase; import com.intellij.codeInsight.completion.CodeCompletionHandlerBase; +import com.intellij.codeInsight.completion.CompletionLookupArranger; import com.intellij.codeInsight.completion.CompletionProgressIndicator; import com.intellij.codeInsight.completion.CompletionType; import com.intellij.codeInsight.daemon.DaemonCodeAnalyzer; @@ -900,7 +901,7 @@ public class CodeInsightTestFixtureImpl extends BaseFixture implements CodeInsig @Override @Nullable public LookupElement[] getLookupElements() { - LookupImpl lookup = (LookupImpl)LookupManager.getActiveLookup(myEditor); + LookupImpl lookup = getLookup(); if (lookup == null) { return myEmptyLookup ? LookupElement.EMPTY_ARRAY : null; } @@ -1683,4 +1684,34 @@ public class CodeInsightTestFixtureImpl extends BaseFixture implements CodeInsig public void testFolding(final String verificationFileName) { testFoldingRegions(verificationFileName, false); } + + @Override + public void assertPreferredCompletionItems(final int selected, @NonNls final String... expected) { + final LookupImpl lookup = getLookup(); + assertNotNull(lookup); + final JList list = lookup.getList(); + final List model = lookup.getItems(); + final List actual = new ArrayList(); + final int count = lookup.getPreferredItemsCount(); + for (int i = 0; i < count; i++) { + actual.add(model.get(i).getLookupString()); + } + if (!actual.equals(Arrays.asList(expected))) { + final List strings = new ArrayList(); + for (int i = 0; i < model.size(); i++) { + final LookupElement item = model.get(i); + strings.add(item.getLookupString() + Arrays.toString(item.getUserData(CompletionLookupArranger.WEIGHT))); + if (i == count - 1) { + strings.add("---"); + } + } + assertOrderedEquals(strings, expected); + } + assertEquals(selected, list.getSelectedIndex()); + } + + private LookupImpl getLookup() { + return (LookupImpl)LookupManager.getActiveLookup(myEditor); + } + }