From 56e560288ad2f9893e056c1289c05a037d4a802c Mon Sep 17 00:00:00 2001 From: peter Date: Thu, 10 Oct 2013 16:21:42 +0200 Subject: [PATCH] a simpler way to setup live templates in tests --- .../completion/SmartTypeCompletionTest.java | 15 ++----- .../template/LiveTemplateTest.groovy | 39 ++++++++----------- 2 files changed, 19 insertions(+), 35 deletions(-) diff --git a/java/java-tests/testSrc/com/intellij/codeInsight/completion/SmartTypeCompletionTest.java b/java/java-tests/testSrc/com/intellij/codeInsight/completion/SmartTypeCompletionTest.java index 15038d55c62d..bea6707b71e1 100644 --- a/java/java-tests/testSrc/com/intellij/codeInsight/completion/SmartTypeCompletionTest.java +++ b/java/java-tests/testSrc/com/intellij/codeInsight/completion/SmartTypeCompletionTest.java @@ -5,12 +5,8 @@ import com.intellij.codeInsight.CodeInsightSettings; import com.intellij.codeInsight.lookup.Lookup; import com.intellij.codeInsight.lookup.LookupElement; import com.intellij.codeInsight.lookup.LookupElementPresentation; -import com.intellij.codeInsight.template.SmartCompletionContextType; -import com.intellij.codeInsight.template.Template; -import com.intellij.codeInsight.template.TemplateContextType; -import com.intellij.codeInsight.template.TemplateManager; +import com.intellij.codeInsight.template.*; import com.intellij.codeInsight.template.impl.TemplateImpl; -import com.intellij.codeInsight.template.impl.TemplateSettings; import com.intellij.lang.java.JavaLanguage; import com.intellij.openapi.fileEditor.FileDocumentManager; import com.intellij.openapi.util.Condition; @@ -650,13 +646,8 @@ public class SmartTypeCompletionTest extends LightFixtureCompletionTestCase { final SmartCompletionContextType completionContextType = ContainerUtil.findInstance(TemplateContextType.EP_NAME.getExtensions(), SmartCompletionContextType.class); ((TemplateImpl)template).getTemplateContext().setEnabled(completionContextType, true); - TemplateSettings.getInstance().addTemplate(template); - try { - doTest(); - } - finally { - TemplateSettings.getInstance().removeTemplate(template); - } + LiveTemplateTest.addTemplate(template, myTestRootDisposable); + doTest(); } public void testInThisExpression() throws Throwable { doTest(); } diff --git a/java/java-tests/testSrc/com/intellij/codeInsight/template/LiveTemplateTest.groovy b/java/java-tests/testSrc/com/intellij/codeInsight/template/LiveTemplateTest.groovy index 80351b2c9ecf..d45581bdaca4 100644 --- a/java/java-tests/testSrc/com/intellij/codeInsight/template/LiveTemplateTest.groovy +++ b/java/java-tests/testSrc/com/intellij/codeInsight/template/LiveTemplateTest.groovy @@ -1,31 +1,32 @@ /* * Copyright (c) 2005 JetBrains s.r.o. All Rights Reserved. */ -package com.intellij.codeInsight.template; - +package com.intellij.codeInsight.template import com.intellij.JavaTestUtil import com.intellij.codeInsight.CodeInsightSettings import com.intellij.codeInsight.lookup.LookupManager import com.intellij.codeInsight.lookup.impl.LookupImpl import com.intellij.codeInsight.lookup.impl.LookupManagerImpl +import com.intellij.codeInsight.template.impl.* import com.intellij.codeInsight.template.macro.ClassNameCompleteMacro import com.intellij.codeInsight.template.macro.CompleteMacro import com.intellij.codeInsight.template.macro.MethodReturnTypeMacro +import com.intellij.openapi.Disposable import com.intellij.openapi.application.AccessToken import com.intellij.openapi.application.WriteAction import com.intellij.openapi.command.CommandProcessor import com.intellij.openapi.editor.Editor import com.intellij.openapi.editor.impl.DocumentImpl +import com.intellij.openapi.util.Disposer import com.intellij.psi.PsiDocumentManager import com.intellij.psi.codeStyle.CodeStyleSettingsManager import com.intellij.psi.codeStyle.CommonCodeStyleSettings import com.intellij.testFramework.fixtures.LightCodeInsightFixtureTestCase import com.intellij.util.containers.ContainerUtil import org.jetbrains.annotations.NotNull -import com.intellij.codeInsight.template.impl.* -import static com.intellij.codeInsight.template.Template.Property.* +import static com.intellij.codeInsight.template.Template.Property.USE_STATIC_IMPORT_IF_POSSIBLE /** * @author spleaner @@ -65,19 +66,11 @@ public class LiveTemplateTest extends LightCodeInsightFixtureTestCase { final TemplateContextType contextType = ContainerUtil.findInstance(TemplateContextType.EP_NAME.getExtensions(), JavaCodeContextType.class); ((TemplateImpl)template).getTemplateContext().setEnabled(contextType, true); - TemplateSettings settings = TemplateSettings.getInstance(); - try { - settings.addTemplate(template); - final Editor editor = getEditor(); + addTemplate(template, testRootDisposable) + final Editor editor = getEditor(); - manager.startTemplate(editor, settings.getDefaultShortcutChar()); - checkResultByText(expected); - } - finally { - if (settings.getTemplate(template.getKey(), group) != null) { - settings.removeTemplate(template); - } - } + manager.startTemplate(editor, (char)'\t'); + checkResultByText(expected); } public void testTemplateWithArg1() throws IOException { @@ -559,15 +552,15 @@ class Foo { myFixture.configureByText("a.java", "class A { void f() { String s = \"tpl\"; } }") + addTemplate(template, testRootDisposable) + myFixture.type '\t' + myFixture.checkResult 'class A { void f() { Stri "; } }' + } + + static void addTemplate(Template template, Disposable parentDisposable) { def settings = TemplateSettings.getInstance() settings.addTemplate(template); - try { - myFixture.type '\t' - myFixture.checkResult 'class A { void f() { Stri "; } }' - } - finally { - settings.removeTemplate(template); - } + Disposer.register(parentDisposable, { settings.removeTemplate(template) } as Disposable) } public void "test expand current live template on no suggestions in lookup"() {