automatically clear templateTesting flag

This commit is contained in:
peter
2013-03-21 23:55:17 +01:00
parent 386a9a1cd3
commit 4018f78d4f
11 changed files with 99 additions and 170 deletions
@@ -871,32 +871,26 @@ class Foo {
}
public void testCompletionWhenLiveTemplateAreNotSufficient() {
((TemplateManagerImpl)TemplateManager.getInstance(getProject())).setTemplateTesting(true);
try {
myFixture.configureByText("a.java", """
class Foo {
{
Iterable<String> l1 = null;
Iterable<String> l2 = null;
Object asdf = null;
iter<caret>
}
}
""")
type '\t'
assert myFixture.lookupElementStrings == ['l2', 'l1']
type 'as'
assert lookup
assertContains 'asdf', 'assert'
type '\n.'
assert lookup
assert 'hashCode' in myFixture.lookupElementStrings
assert myFixture.file.text.contains('asdf.')
TemplateManagerImpl.setTemplateTesting(getProject(), getTestRootDisposable());
myFixture.configureByText("a.java", """
class Foo {
{
Iterable<String> l1 = null;
Iterable<String> l2 = null;
Object asdf = null;
iter<caret>
}
finally {
((TemplateManagerImpl)TemplateManager.getInstance(getProject())).setTemplateTesting(false);
}
}
""")
type '\t'
assert myFixture.lookupElementStrings == ['l2', 'l1']
type 'as'
assert lookup
assertContains 'asdf', 'assert'
type '\n.'
assert lookup
assert 'hashCode' in myFixture.lookupElementStrings
assert myFixture.file.text.contains('asdf.')
}
public void testNoWordCompletionAutoPopup() {
@@ -1177,16 +1171,11 @@ class Foo extends Abcdefg <caret>'''
}
public void testSoutvTemplate() {
((TemplateManagerImpl)TemplateManager.getInstance(getProject())).setTemplateTesting(true);
try {
myFixture.configureByText 'a.java', 'class Foo {{ <caret> }}'
type 'soutv\tgetcl.'
myFixture.checkResult '''class Foo {{
TemplateManagerImpl.setTemplateTesting(getProject(), getTestRootDisposable());
myFixture.configureByText 'a.java', 'class Foo {{ <caret> }}'
type 'soutv\tgetcl.'
myFixture.checkResult '''class Foo {{
System.out.println("getClass(). = " + getClass().<caret>); }}'''
}
finally {
((TemplateManagerImpl)TemplateManager.getInstance(getProject())).setTemplateTesting(false);
}
}
public void testReturnLParen() {
@@ -15,13 +15,11 @@
*/
package com.intellij.codeInsight.daemon.quickFix
import com.intellij.codeInsight.lookup.LookupManager
import com.intellij.codeInsight.template.TemplateManager
import com.intellij.codeInsight.template.impl.TemplateManagerImpl
import com.intellij.ide.DataManager
import com.intellij.openapi.actionSystem.DataContext
import com.intellij.openapi.actionSystem.IdeActions
import com.intellij.openapi.editor.actionSystem.EditorActionManager
/**
* @author ven
*/
@@ -41,7 +39,7 @@ class SomeOuterClassWithLongName {
}
}
"""
((TemplateManagerImpl)TemplateManager.getInstance(getProject())).setTemplateTesting(true);
TemplateManagerImpl.setTemplateTesting(project, testRootDisposable);
doAction("Create Method 'addSubGroup'")
def state = TemplateManagerImpl.getTemplateState(getEditor())
//skip void return type
@@ -78,12 +76,6 @@ class SomeOuterClassWithLongName {
}
@Override
protected void tearDown() throws Exception {
((TemplateManagerImpl)TemplateManager.getInstance(getProject())).setTemplateTesting(false);
super.tearDown()
}
@Override
protected String getBasePath() {
return "/codeInsight/daemonCodeAnalyzer/quickFix/createMethodFromUsage";
@@ -15,7 +15,6 @@
*/
package com.intellij.codeInsight.daemon.quickFix;
import com.intellij.codeInsight.template.TemplateManager;
import com.intellij.codeInsight.template.impl.TemplateManagerImpl;
import com.intellij.codeInsight.template.impl.TemplateState;
@@ -26,17 +25,13 @@ public class DelegateWithDefaultParamValueTest extends LightQuickFixTestCase {
@Override
protected void doAction(String text, boolean actionShouldBeAvailable, String testFullPath, String testName)
throws Exception {
try {
((TemplateManagerImpl)TemplateManager.getInstance(getProject())).setTemplateTesting(true);
super.doAction(text, actionShouldBeAvailable, testFullPath, testName);
TemplateManagerImpl.setTemplateTesting(getProject(), getTestRootDisposable());
super.doAction(text, actionShouldBeAvailable, testFullPath, testName);
if (actionShouldBeAvailable) {
TemplateState state = TemplateManagerImpl.getTemplateState(getEditor());
assert state != null;
state.gotoEnd(false);
}
} finally {
((TemplateManagerImpl)TemplateManager.getInstance(getProject())).setTemplateTesting(false);
if (actionShouldBeAvailable) {
TemplateState state = TemplateManagerImpl.getTemplateState(getEditor());
assert state != null;
state.gotoEnd(false);
}
}
@@ -15,7 +15,6 @@
*/
package com.intellij.codeInsight.generation.surroundWith;
import com.intellij.codeInsight.template.TemplateManager;
import com.intellij.codeInsight.template.impl.TemplateManagerImpl;
import com.intellij.codeInsight.template.impl.TemplateState;
import com.intellij.lang.surroundWith.Surrounder;
@@ -107,47 +106,23 @@ public class JavaSurroundWithTest extends LightCodeInsightTestCase {
}
public void testSurroundBinaryWithCast() {
final TemplateManagerImpl templateManager = (TemplateManagerImpl)TemplateManager.getInstance(getProject());
templateManager.setTemplateTesting(true);
try {
doTest(getTestName(false), new JavaWithCastSurrounder());
}
finally {
templateManager.setTemplateTesting(false);
}
TemplateManagerImpl.setTemplateTesting(getProject(), getTestRootDisposable());
doTest(getTestName(false), new JavaWithCastSurrounder());
}
public void testSurroundConditionalWithCast() {
final TemplateManagerImpl templateManager = (TemplateManagerImpl)TemplateManager.getInstance(getProject());
templateManager.setTemplateTesting(true);
try {
doTest(getTestName(false), new JavaWithCastSurrounder());
}
finally {
templateManager.setTemplateTesting(false);
}
TemplateManagerImpl.setTemplateTesting(getProject(), getTestRootDisposable());
doTest(getTestName(false), new JavaWithCastSurrounder());
}
public void testSurroundAssignmentWithCast() {
final TemplateManagerImpl templateManager = (TemplateManagerImpl)TemplateManager.getInstance(getProject());
templateManager.setTemplateTesting(true);
try {
doTest(getTestName(false), new JavaWithCastSurrounder());
}
finally {
templateManager.setTemplateTesting(false);
}
TemplateManagerImpl.setTemplateTesting(getProject(), getTestRootDisposable());
doTest(getTestName(false), new JavaWithCastSurrounder());
}
public void testSurroundWithNotNullCheck() {
final TemplateManagerImpl templateManager = (TemplateManagerImpl)TemplateManager.getInstance(getProject());
templateManager.setTemplateTesting(true);
try {
doTest(getTestName(false), new JavaWithNullCheckSurrounder());
}
finally {
templateManager.setTemplateTesting(false);
}
TemplateManagerImpl.setTemplateTesting(getProject(), getTestRootDisposable());
doTest(getTestName(false), new JavaWithNullCheckSurrounder());
}
private void doTest(@NotNull String fileName, final Surrounder surrounder) {
@@ -158,22 +133,16 @@ public class JavaSurroundWithTest extends LightCodeInsightTestCase {
private void doTestWithTemplateFinish(@NotNull String fileName, final Surrounder surrounder, @Nullable String textToType)
throws Exception {
final TemplateManagerImpl templateManager = (TemplateManagerImpl)TemplateManager.getInstance(getProject());
try {
templateManager.setTemplateTesting(true);
configureByFile(BASE_PATH + fileName + ".java");
SurroundWithHandler.invoke(getProject(), getEditor(), getFile(), surrounder);
if (textToType != null) {
type(textToType);
}
TemplateState templateState = TemplateManagerImpl.getTemplateState(getEditor());
assertNotNull(templateState);
templateState.nextTab();
checkResultByFile(BASE_PATH + fileName + "_after.java");
}
finally {
templateManager.setTemplateTesting(false);
TemplateManagerImpl.setTemplateTesting(getProject(), getTestRootDisposable());
configureByFile(BASE_PATH + fileName + ".java");
SurroundWithHandler.invoke(getProject(), getEditor(), getFile(), surrounder);
if (textToType != null) {
type(textToType);
}
TemplateState templateState = TemplateManagerImpl.getTemplateState(getEditor());
assertNotNull(templateState);
templateState.nextTab();
checkResultByFile(BASE_PATH + fileName + "_after.java");
}
}
@@ -37,13 +37,12 @@ public class LiveTemplateTest extends LightCodeInsightFixtureTestCase {
@Override
protected void setUp() throws Exception {
super.setUp();
((TemplateManagerImpl)TemplateManager.getInstance(getProject())).setTemplateTesting(true);
TemplateManagerImpl.setTemplateTesting(getProject(), getTestRootDisposable());
}
@Override
protected void tearDown() throws Exception {
CodeInsightSettings.instance.COMPLETION_CASE_SENSITIVE = CodeInsightSettings.FIRST_LETTER
((TemplateManagerImpl)TemplateManager.getInstance(getProject())).setTemplateTesting(false);
if (state != null) {
state.gotoEnd();
}
@@ -104,7 +104,7 @@ class InplaceRenameInvariantTest extends LightCodeInsightTestCase {
TemplateManagerImpl templateManager = (TemplateManagerImpl)TemplateManager.getInstance(project)
def oldPreselectSetting = myEditor.settings.preselectRename
try {
templateManager.templateTesting = true
TemplateManagerImpl.setTemplateTesting(getProject(), getTestRootDisposable());
myEditor.settings.preselectRename = preselect;
int offset = myEditor.caretModel.offset
final PsiElement element = TargetElementUtilBase.findTargetElement(myEditor, TargetElementUtilBase.getInstance().getAllAccepted())
@@ -126,16 +126,11 @@ class InplaceRenameInvariantTest extends LightCodeInsightTestCase {
finally {
myEditor.settings.preselectRename = oldPreselectSetting
try {
TemplateState state = TemplateManagerImpl.getTemplateState(editor)
TemplateState state = TemplateManagerImpl.getTemplateState(editor)
assertNotNull(state)
assertNotNull(state)
state.gotoEnd(false)
}
finally {
templateManager.templateTesting = false
}
state.gotoEnd(false)
}
}
@@ -2,7 +2,6 @@ package com.intellij.refactoring;
import com.intellij.JavaTestUtil;
import com.intellij.codeInsight.TargetElementUtilBase;
import com.intellij.codeInsight.template.TemplateManager;
import com.intellij.codeInsight.template.impl.TemplateManagerImpl;
import com.intellij.codeInsight.template.impl.TemplateState;
import com.intellij.lang.java.JavaRefactoringSupportProvider;
@@ -138,29 +137,23 @@ public class RenameLocalTest extends LightRefactoringTestCase {
final String name = getTestName(false);
configureByFile(BASE_PATH + name + ".java");
final TemplateManagerImpl templateManager = (TemplateManagerImpl)TemplateManager.getInstance(getProject());
try {
templateManager.setTemplateTesting(true);
TemplateManagerImpl.setTemplateTesting(getProject(), getTestRootDisposable());
new RenameWrongRefHandler().invoke(getProject(), getEditor(), getFile(), null);
new RenameWrongRefHandler().invoke(getProject(), getEditor(), getFile(), null);
final TemplateState state = TemplateManagerImpl.getTemplateState(getEditor());
assert state != null;
final TextRange range = state.getCurrentVariableRange();
assert range != null;
final TemplateState state = TemplateManagerImpl.getTemplateState(getEditor());
assert state != null;
final TextRange range = state.getCurrentVariableRange();
assert range != null;
new WriteCommandAction.Simple(getProject()) {
@Override
protected void run() throws Throwable {
getEditor().getDocument().replaceString(range.getStartOffset(), range.getEndOffset(), newName);
}
}.execute().throwException();
new WriteCommandAction.Simple(getProject()) {
@Override
protected void run() throws Throwable {
getEditor().getDocument().replaceString(range.getStartOffset(), range.getEndOffset(), newName);
}
}.execute().throwException();
state.gotoEnd(false);
checkResultByFile(BASE_PATH + name + "_after.java");
}
finally {
templateManager.setTemplateTesting(false);
}
state.gotoEnd(false);
checkResultByFile(BASE_PATH + name + "_after.java");
}
}
@@ -90,10 +90,23 @@ public class TemplateManagerImpl extends TemplateManager implements ProjectCompo
}
@TestOnly
@Deprecated
public void setTemplateTesting(final boolean templateTesting) {
myTemplateTesting = templateTesting;
}
@TestOnly
public static void setTemplateTesting(Project project, Disposable parentDisposable) {
final TemplateManagerImpl instance = (TemplateManagerImpl)getInstance(project);
instance.myTemplateTesting = true;
Disposer.register(parentDisposable, new Disposable() {
@Override
public void dispose() {
instance.myTemplateTesting = false;
}
});
}
private void disposeState(final TemplateState tState) {
Disposer.dispose(tState);
myDisposables.remove(tState);
@@ -15,13 +15,11 @@
*/
package com.intellij.refactoring;
import com.intellij.codeInsight.template.TemplateManager;
import com.intellij.codeInsight.template.impl.TemplateManagerImpl;
import com.intellij.codeInsight.template.impl.TemplateState;
import com.intellij.openapi.util.Pass;
import com.intellij.refactoring.introduce.inplace.AbstractInplaceIntroducer;
import com.intellij.testFramework.LightPlatformCodeInsightTestCase;
import com.intellij.testFramework.LightPlatformTestCase;
/**
* User: anna
@@ -35,9 +33,8 @@ public abstract class AbstractInplaceIntroduceTest extends LightPlatformCodeInsi
String name = getTestName(true);
configureByFile(getBasePath() + name + getExtension());
final boolean enabled = getEditor().getSettings().isVariableInplaceRenameEnabled();
TemplateManagerImpl templateManager = (TemplateManagerImpl)TemplateManager.getInstance(LightPlatformTestCase.getProject());
try {
templateManager.setTemplateTesting(true);
TemplateManagerImpl.setTemplateTesting(getProject(), getTestRootDisposable());
getEditor().getSettings().setVariableInplaceRenameEnabled(true);
invokeRefactoring();
@@ -48,7 +45,6 @@ public abstract class AbstractInplaceIntroduceTest extends LightPlatformCodeInsi
}
finally {
getEditor().getSettings().setVariableInplaceRenameEnabled(enabled);
templateManager.setTemplateTesting(false);
}
}
@@ -58,9 +54,8 @@ public abstract class AbstractInplaceIntroduceTest extends LightPlatformCodeInsi
String name = getTestName(true);
configureByFile(getBasePath() + name + getExtension());
final boolean enabled = getEditor().getSettings().isVariableInplaceRenameEnabled();
TemplateManagerImpl templateManager = (TemplateManagerImpl)TemplateManager.getInstance(LightPlatformTestCase.getProject());
try {
templateManager.setTemplateTesting(true);
TemplateManagerImpl.setTemplateTesting(getProject(), getTestRootDisposable());
getEditor().getSettings().setVariableInplaceRenameEnabled(true);
final AbstractInplaceIntroducer introducer = invokeRefactoring();
@@ -72,7 +67,6 @@ public abstract class AbstractInplaceIntroduceTest extends LightPlatformCodeInsi
}
finally {
getEditor().getSettings().setVariableInplaceRenameEnabled(enabled);
templateManager.setTemplateTesting(false);
}
}
@@ -168,19 +168,15 @@ public class XmlCompletionTest extends LightCodeInsightFixtureTestCase {
}
public void testAttributesTemplateFinishWithSpace() throws Throwable {
((TemplateManagerImpl)TemplateManager.getInstance(getProject())).setTemplateTesting(true);
try {
configureByFile(getTestName(false) + ".xml");
type('b');
type('e');
type('a');
type('n');
type(' ');
checkResultByFile(getTestName(false) + "_after.xml");
}
finally {
((TemplateManagerImpl)TemplateManager.getInstance(getProject())).setTemplateTesting(false);
}
TemplateManagerImpl.setTemplateTesting(getProject(), getTestRootDisposable());
configureByFile(getTestName(false) + ".xml");
type('b');
type('e');
type('a');
type('n');
type(' ');
checkResultByFile(getTestName(false) + "_after.xml");
}
private void configureByFile(String s) {
@@ -189,17 +185,13 @@ public class XmlCompletionTest extends LightCodeInsightFixtureTestCase {
}
public void testNoAttributesTemplateFinishWithSpace() throws Throwable {
((TemplateManagerImpl)TemplateManager.getInstance(getProject())).setTemplateTesting(true);
try {
configureByFile(getTestName(false) + ".xml");
type('d');
type('e');
type(' ');
checkResultByFile(getTestName(false) + "_after.xml");
}
finally {
((TemplateManagerImpl)TemplateManager.getInstance(getProject())).setTemplateTesting(false);
}
TemplateManagerImpl.setTemplateTesting(getProject(), getTestRootDisposable());
configureByFile(getTestName(false) + ".xml");
type('d');
type('e');
type(' ');
checkResultByFile(getTestName(false) + "_after.xml");
}
private void type(char c) {
@@ -14,7 +14,7 @@
* limitations under the License.
*/
package com.intellij.codeInsight.template
import com.intellij.codeInsight.CodeInsightSettings
import com.intellij.codeInsight.template.impl.ConstantNode
import com.intellij.codeInsight.template.impl.EmptyNode
import com.intellij.codeInsight.template.impl.TemplateManagerImpl
@@ -32,13 +32,11 @@ public class XmlLiveTemplateTest extends LightCodeInsightFixtureTestCase {
@Override
protected void setUp() throws Exception {
super.setUp();
((TemplateManagerImpl)TemplateManager.getInstance(getProject())).setTemplateTesting(true);
TemplateManagerImpl.setTemplateTesting(getProject(), getTestRootDisposable());
}
@Override
protected void tearDown() throws Exception {
CodeInsightSettings.instance.COMPLETION_CASE_SENSITIVE = CodeInsightSettings.FIRST_LETTER
((TemplateManagerImpl)TemplateManager.getInstance(getProject())).setTemplateTesting(false);
if (state != null) {
state.gotoEnd();
}