Added checking traversal in live template tests.

This commit is contained in:
Evgeny Gerashchenko
2012-02-14 14:42:08 +04:00
parent 7ce86a138e
commit 2565684563
2 changed files with 42 additions and 4 deletions
@@ -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<Region> myExpectedRegions;
public void testAll() {
myFixture.configureByFile(PluginTestCaseBase.getTestDataPathBase() + "/templates/IdeTemplates.kt");
CodeFoldingManager.getInstance(myFixture.getProject()).buildInitialFoldings(myFixture.getEditor());
ArrayList<Region> 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<Region> 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;
@@ -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