diff --git a/idea/tests/org/jetbrains/jet/plugin/codeInsight/IdeTemplatesTest.java b/idea/tests/org/jetbrains/jet/plugin/codeInsight/IdeTemplatesTest.java index 819b0c6b6de..0774a124f7d 100644 --- a/idea/tests/org/jetbrains/jet/plugin/codeInsight/IdeTemplatesTest.java +++ b/idea/tests/org/jetbrains/jet/plugin/codeInsight/IdeTemplatesTest.java @@ -1,8 +1,15 @@ package org.jetbrains.jet.plugin.codeInsight; import com.intellij.codeInsight.folding.CodeFoldingManager; +import com.intellij.ide.DataManager; +import com.intellij.openapi.actionSystem.ActionManager; +import com.intellij.openapi.actionSystem.ActionPlaces; +import com.intellij.openapi.actionSystem.AnAction; +import com.intellij.openapi.actionSystem.AnActionEvent; import com.intellij.openapi.editor.FoldRegion; +import com.intellij.openapi.editor.SelectionModel; import com.intellij.testFramework.fixtures.LightCodeInsightFixtureTestCase; +import org.jetbrains.annotations.NotNull; import org.jetbrains.jet.plugin.PluginTestCaseBase; import java.util.ArrayList; @@ -14,13 +21,38 @@ import java.util.regex.Pattern; * @since 2/14/12 */ public class IdeTemplatesTest extends LightCodeInsightFixtureTestCase { + private ArrayList myExpectedRegions; + public void testAll() { myFixture.configureByFile(PluginTestCaseBase.getTestDataPathBase() + "/templates/IdeTemplates.kt"); CodeFoldingManager.getInstance(myFixture.getProject()).buildInitialFoldings(myFixture.getEditor()); - ArrayList regions = getExpectedRegions(); - assertEquals(regions.toString(), getActualRegions().toString()); + myExpectedRegions = getExpectedRegions(); + assertEquals(myExpectedRegions.toString(), getActualRegions().toString()); + for (int i = 0; i <= myExpectedRegions.size(); i++) { + nextParam(); + checkSelectedRegion(i % myExpectedRegions.size()); + } + + for (int i = myExpectedRegions.size() - 1; i >= 0; i--) { + prevParam(); + checkSelectedRegion(i); + } + } + + private void checkSelectedRegion(int region) { + SelectionModel selectionModel = myFixture.getEditor().getSelectionModel(); + assertEquals(myExpectedRegions.get(region).start, selectionModel.getSelectionStart()); + assertEquals(myExpectedRegions.get(region).end, selectionModel.getSelectionEnd()); + } + + private void prevParam() { + doAction("PrevTemplateParameter"); + } + + private void nextParam() { + doAction("NextTemplateParameter"); } private ArrayList getExpectedRegions() { @@ -44,6 +76,13 @@ public class IdeTemplatesTest extends LightCodeInsightFixtureTestCase { return actual; } + private void doAction(@NotNull String actionId) { + AnAction action = ActionManager.getInstance().getAction(actionId); + action.actionPerformed(new AnActionEvent(null, DataManager.getInstance().getDataContext(myFixture.getEditor().getComponent()), + ActionPlaces.UNKNOWN, action.getTemplatePresentation(), + ActionManager.getInstance(), 0)); + } + private static class Region { public int start; public int end; diff --git a/idea/tests/org/jetbrains/jet/plugin/codeInsight/LiveTemplatesTest.java b/idea/tests/org/jetbrains/jet/plugin/codeInsight/LiveTemplatesTest.java index dc2d66dfda3..dbe4a5ad237 100644 --- a/idea/tests/org/jetbrains/jet/plugin/codeInsight/LiveTemplatesTest.java +++ b/idea/tests/org/jetbrains/jet/plugin/codeInsight/LiveTemplatesTest.java @@ -244,11 +244,10 @@ public class LiveTemplatesTest extends LightCodeInsightFixtureTestCase { return JetWithJdkAndRuntimeLightProjectDescriptor.INSTANCE; } - @SuppressWarnings("MethodOverridesPrivateMethodOfSuperclass") private void doAction(@NotNull String actionId) { EditorActionManager actionManager = EditorActionManager.getInstance(); EditorActionHandler actionHandler = actionManager.getActionHandler(actionId); - actionHandler.execute(myFixture.getEditor(), DataManager.getInstance().getDataContext()); + actionHandler.execute(myFixture.getEditor(), DataManager.getInstance().getDataContext(myFixture.getEditor().getComponent())); } @Override