Get rid of try/finally in live template tests

This commit is contained in:
Alexander Zolotov
2014-12-08 18:56:39 +03:00
parent e16b6a7a17
commit 8ff44d2ae1
3 changed files with 32 additions and 29 deletions
@@ -1731,23 +1731,17 @@ class Foo {{
}
public void "test show popup with single live template if show_live_tempate_in_completion option is enabled"() {
def oldValue = LiveTemplateCompletionContributor.ourShowTemplatesInTests
try {
LiveTemplateCompletionContributor.ourShowTemplatesInTests = false
myFixture.configureByText "a.java", """
LiveTemplateCompletionContributor.setShowTemplatesInTests(false, getTestRootDisposable())
myFixture.configureByText "a.java", """
class Foo {{
ita<caret>
ita<caret>
"""
type 'r'
assert lookup == null
LiveTemplateCompletionContributor.ourShowTemplatesInTests = true
type '\br'
assert lookup
assert myFixture.lookupElementStrings == ['itar']
}
finally {
LiveTemplateCompletionContributor.ourShowTemplatesInTests = oldValue
}
type 'r'
assert lookup == null
LiveTemplateCompletionContributor.setShowTemplatesInTests(true, getTestRootDisposable())
type '\br'
assert lookup
assert myFixture.lookupElementStrings == ['itar']
}
}
@@ -31,19 +31,14 @@ import org.jetbrains.annotations.Nullable;
import java.util.Set;
public class TemplatesCompletionTest extends CompletionAutoPopupTestCase {
private boolean shotTemplatesInTestsOldValue;
@Override
public void setUp() {
super.setUp();
shotTemplatesInTestsOldValue = LiveTemplateCompletionContributor.ourShowTemplatesInTests;
LiveTemplateCompletionContributor.ourShowTemplatesInTests = false;
LiveTemplateCompletionContributor.setShowTemplatesInTests(false, getTestRootDisposable());
}
@Override
public void tearDown() throws Exception {
LiveTemplateCompletionContributor.ourShowTemplatesInTests = shotTemplatesInTestsOldValue;
PostfixTemplatesSettings settings = PostfixTemplatesSettings.getInstance();
assertNotNull(settings);
settings.setLangDisabledTemplates(ContainerUtil.<String, Set<String>>newHashMap());
@@ -53,13 +48,12 @@ public class TemplatesCompletionTest extends CompletionAutoPopupTestCase {
}
public void testSimpleCompletionList() {
LiveTemplateCompletionContributor.ourShowTemplatesInTests = true;
LiveTemplateCompletionContributor.setShowTemplatesInTests(true, getTestRootDisposable());
doAutoPopupTest("ins", InstanceofExpressionPostfixTemplate.class);
}
public void testAutopopupWithEnabledLiveTemplatesInCompletion() {
LiveTemplateCompletionContributor.ourShowTemplatesInTests = true;
LiveTemplateCompletionContributor.setShowTemplatesInTests(false, getTestRootDisposable());
configureByFile();
type("instanceof");
@@ -127,14 +121,14 @@ public class TemplatesCompletionTest extends CompletionAutoPopupTestCase {
}
public void testDoNotAutoCompleteCompletionElementIfTemplateUnique() {
LiveTemplateCompletionContributor.ourShowTemplatesInTests = true;
LiveTemplateCompletionContributor.setShowTemplatesInTests(true, getTestRootDisposable());
configureByFile();
myFixture.completeBasic();
checkResultByFile();
}
public void testDoNotCompleteTemplateInMultiCaretMode() {
LiveTemplateCompletionContributor.ourShowTemplatesInTests = true;
LiveTemplateCompletionContributor.setShowTemplatesInTests(true, getTestRootDisposable());
configureByFile();
assertEmpty(myFixture.complete(CompletionType.BASIC));
checkResultByFile();
@@ -190,7 +184,7 @@ public class TemplatesCompletionTest extends CompletionAutoPopupTestCase {
}
public void testTabCompletionWithTemplatesInAutopopup() {
LiveTemplateCompletionContributor.ourShowTemplatesInTests = true;
LiveTemplateCompletionContributor.setShowTemplatesInTests(true, getTestRootDisposable());
configureByFile();
type(".");
@@ -20,8 +20,10 @@ import com.intellij.codeInsight.lookup.LookupElement;
import com.intellij.codeInsight.template.CustomLiveTemplate;
import com.intellij.codeInsight.template.CustomLiveTemplateBase;
import com.intellij.codeInsight.template.CustomTemplateCallback;
import com.intellij.openapi.Disposable;
import com.intellij.openapi.application.ApplicationManager;
import com.intellij.openapi.editor.Editor;
import com.intellij.openapi.util.Disposer;
import com.intellij.openapi.util.registry.Registry;
import com.intellij.openapi.util.text.StringUtil;
import com.intellij.patterns.PlatformPatterns;
@@ -33,6 +35,7 @@ import com.intellij.util.ProcessingContext;
import com.intellij.util.containers.ContainerUtil;
import org.jetbrains.annotations.NotNull;
import org.jetbrains.annotations.Nullable;
import org.jetbrains.annotations.TestOnly;
import java.util.Collection;
import java.util.List;
@@ -45,7 +48,19 @@ import static com.intellij.codeInsight.template.impl.ListTemplatesHandler.filter
* @author peter
*/
public class LiveTemplateCompletionContributor extends CompletionContributor {
public static boolean ourShowTemplatesInTests = false;
private static boolean ourShowTemplatesInTests = false;
@TestOnly
public static void setShowTemplatesInTests(boolean show, @NotNull Disposable parentDisposable) {
ourShowTemplatesInTests = show;
Disposer.register(parentDisposable, new Disposable() {
@Override
public void dispose() {
//noinspection AssignmentToStaticFieldFromInstanceMethod
ourShowTemplatesInTests = false;
}
});
}
public static boolean shouldShowAllTemplates() {
if (ApplicationManager.getApplication().isUnitTestMode()) {