diff --git a/idea/testData/templates/anonymous_1.exp.kt b/idea/testData/templates/anonymous_1.exp.kt new file mode 100644 index 00000000000..e319b8a07f9 --- /dev/null +++ b/idea/testData/templates/anonymous_1.exp.kt @@ -0,0 +1,10 @@ +import javax.swing.SwingUtilities + +fun main(args : Array) { + SwingUtilities.invokeLater(object : Runnable { + + override fun run() { + throw UnsupportedOperationException() + } + }) +} diff --git a/idea/testData/templates/anonymous_1.kt b/idea/testData/templates/anonymous_1.kt new file mode 100644 index 00000000000..9a31e402c33 --- /dev/null +++ b/idea/testData/templates/anonymous_1.kt @@ -0,0 +1,5 @@ +import javax.swing.SwingUtilities + +fun main(args : Array) { + SwingUtilities.invokeLater() +} diff --git a/idea/testData/templates/anonymous_2.exp.kt b/idea/testData/templates/anonymous_2.exp.kt new file mode 100644 index 00000000000..cdc6ddbf363 --- /dev/null +++ b/idea/testData/templates/anonymous_2.exp.kt @@ -0,0 +1,7 @@ +import javax.swing.SwingUtilities + +fun main(args : Array) { + SwingUtilities.invokeLater(object : Thread() { + + }) +} diff --git a/idea/testData/templates/anonymous_2.kt b/idea/testData/templates/anonymous_2.kt new file mode 100644 index 00000000000..9a31e402c33 --- /dev/null +++ b/idea/testData/templates/anonymous_2.kt @@ -0,0 +1,5 @@ +import javax.swing.SwingUtilities + +fun main(args : Array) { + SwingUtilities.invokeLater() +} diff --git a/idea/tests/org/jetbrains/jet/plugin/codeInsight/LiveTemplatesTest.java b/idea/tests/org/jetbrains/jet/plugin/codeInsight/LiveTemplatesTest.java index b1ec7e915c9..dc2d66dfda3 100644 --- a/idea/tests/org/jetbrains/jet/plugin/codeInsight/LiveTemplatesTest.java +++ b/idea/tests/org/jetbrains/jet/plugin/codeInsight/LiveTemplatesTest.java @@ -7,11 +7,14 @@ import com.intellij.codeInsight.template.TemplateManager; import com.intellij.codeInsight.template.impl.TemplateManagerImpl; import com.intellij.codeInsight.template.impl.TemplateState; import com.intellij.ide.DataManager; +import com.intellij.openapi.application.ApplicationManager; +import com.intellij.openapi.command.CommandProcessor; import com.intellij.openapi.editor.actionSystem.EditorActionHandler; import com.intellij.openapi.editor.actionSystem.EditorActionManager; import com.intellij.testFramework.LightProjectDescriptor; import com.intellij.testFramework.fixtures.LightCodeInsightFixtureTestCase; import com.intellij.util.ArrayUtil; +import com.intellij.util.ui.UIUtil; import org.jetbrains.annotations.NonNls; import org.jetbrains.annotations.NotNull; import org.jetbrains.jet.plugin.JetWithJdkAndRuntimeLightProjectDescriptor; @@ -153,6 +156,22 @@ public class LiveTemplatesTest extends LightCodeInsightFixtureTestCase { checkAfter(); } + public void testAnonymous_1() { + start(); + + typeAndNextTab("Runnable"); + + checkAfter(); + } + + public void testAnonymous_2() { + start(); + + typeAndNextTab("Thread"); + + checkAfter(); + } + private void paremeterless() { @@ -163,19 +182,42 @@ public class LiveTemplatesTest extends LightCodeInsightFixtureTestCase { private void start() { myFixture.configureByFile(getTestName(true) + ".kt"); - myFixture.type(getTestName(true)); + myFixture.type(getTemplateName()); doAction("ExpandLiveTemplateByTab"); } + private String getTemplateName() { + String testName = getTestName(true); + if (testName.contains("_")) { + return testName.substring(0, testName.indexOf("_")); + } + return testName; + } + private void checkAfter() { assertNull(getTemplateState()); - myFixture.checkResultByFile(getTestName(true) + ".exp.kt"); + myFixture.checkResultByFile(getTestName(true) + ".exp.kt", true); } private void typeAndNextTab(String s) { type(s); - nextTab(); + UIUtil.invokeAndWaitIfNeeded(new Runnable() { + @Override + public void run() { + CommandProcessor.getInstance().executeCommand(getProject(), new Runnable() { + @Override + public void run() { + ApplicationManager.getApplication().runWriteAction(new Runnable() { + @Override + public void run() { + nextTab(); + } + }); + } + }, "nextTab", null); + } + }); } private void type(String s) {