mirror of
https://gitflic.ru/project/openide/openide.git
synced 2025-12-16 22:51:17 +07:00
85 lines
2.5 KiB
Java
85 lines
2.5 KiB
Java
package com.intellij.codeInsight.completion;
|
|
|
|
import com.intellij.codeInsight.lookup.Lookup;
|
|
import com.intellij.codeInsight.lookup.LookupElement;
|
|
import com.intellij.codeInsight.lookup.LookupManager;
|
|
import com.intellij.codeInsight.lookup.impl.LookupImpl;
|
|
import com.intellij.openapi.command.WriteCommandAction;
|
|
import com.intellij.psi.statistics.StatisticsManager;
|
|
import com.intellij.psi.statistics.impl.StatisticsManagerImpl;
|
|
import com.intellij.testFramework.LightProjectDescriptor;
|
|
import com.intellij.testFramework.fixtures.LightCodeInsightFixtureTestCase;
|
|
import org.jetbrains.annotations.NotNull;
|
|
|
|
/**
|
|
* @author peter
|
|
*/
|
|
public abstract class LightFixtureCompletionTestCase extends LightCodeInsightFixtureTestCase {
|
|
protected LookupElement[] myItems;
|
|
|
|
@Override
|
|
protected void setUp() throws Exception {
|
|
super.setUp();
|
|
((StatisticsManagerImpl)StatisticsManager.getInstance()).clearStatistics();
|
|
}
|
|
|
|
@NotNull
|
|
@Override
|
|
protected LightProjectDescriptor getProjectDescriptor() {
|
|
return JAVA_1_6;
|
|
}
|
|
|
|
@Override
|
|
protected void tearDown() throws Exception {
|
|
myItems = null;
|
|
super.tearDown();
|
|
}
|
|
|
|
protected void configureByFile(String path) {
|
|
myFixture.configureFromExistingVirtualFile(myFixture.copyFileToProject(path, com.intellij.openapi.util.text.StringUtil.getShortName(path, '/')));
|
|
complete();
|
|
}
|
|
|
|
protected void complete() {
|
|
myItems = myFixture.completeBasic();
|
|
}
|
|
|
|
protected void selectItem(LookupElement item) {
|
|
selectItem(item, (char)0);
|
|
}
|
|
|
|
protected void checkResultByFile(String path) {
|
|
myFixture.checkResultByFile(path);
|
|
}
|
|
|
|
protected void selectItem(LookupElement item, final char completionChar) {
|
|
final LookupImpl lookup = getLookup();
|
|
lookup.setCurrentItem(item);
|
|
if (completionChar == 0 || completionChar == '\n' || completionChar == '\t' || completionChar == Lookup.COMPLETE_STATEMENT_SELECT_CHAR) {
|
|
new WriteCommandAction.Simple(getProject()) {
|
|
@Override
|
|
protected void run() throws Throwable {
|
|
lookup.finishLookup(completionChar);
|
|
}
|
|
}.execute().throwException();
|
|
} else {
|
|
type(completionChar);
|
|
}
|
|
}
|
|
|
|
protected LookupImpl getLookup() {
|
|
return (LookupImpl)LookupManager.getInstance(getProject()).getActiveLookup();
|
|
}
|
|
|
|
protected void assertStringItems(String... items) {
|
|
assertOrderedEquals(myFixture.getLookupElementStrings(), items);
|
|
}
|
|
|
|
protected void type(String s) {
|
|
myFixture.type(s);
|
|
}
|
|
protected void type(char c) {
|
|
myFixture.type(c);
|
|
}
|
|
}
|