Added checking traversal in live template tests.
This commit is contained in:
@@ -1,8 +1,15 @@
|
|||||||
package org.jetbrains.jet.plugin.codeInsight;
|
package org.jetbrains.jet.plugin.codeInsight;
|
||||||
|
|
||||||
import com.intellij.codeInsight.folding.CodeFoldingManager;
|
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.FoldRegion;
|
||||||
|
import com.intellij.openapi.editor.SelectionModel;
|
||||||
import com.intellij.testFramework.fixtures.LightCodeInsightFixtureTestCase;
|
import com.intellij.testFramework.fixtures.LightCodeInsightFixtureTestCase;
|
||||||
|
import org.jetbrains.annotations.NotNull;
|
||||||
import org.jetbrains.jet.plugin.PluginTestCaseBase;
|
import org.jetbrains.jet.plugin.PluginTestCaseBase;
|
||||||
|
|
||||||
import java.util.ArrayList;
|
import java.util.ArrayList;
|
||||||
@@ -14,13 +21,38 @@ import java.util.regex.Pattern;
|
|||||||
* @since 2/14/12
|
* @since 2/14/12
|
||||||
*/
|
*/
|
||||||
public class IdeTemplatesTest extends LightCodeInsightFixtureTestCase {
|
public class IdeTemplatesTest extends LightCodeInsightFixtureTestCase {
|
||||||
|
private ArrayList<Region> myExpectedRegions;
|
||||||
|
|
||||||
public void testAll() {
|
public void testAll() {
|
||||||
myFixture.configureByFile(PluginTestCaseBase.getTestDataPathBase() + "/templates/IdeTemplates.kt");
|
myFixture.configureByFile(PluginTestCaseBase.getTestDataPathBase() + "/templates/IdeTemplates.kt");
|
||||||
CodeFoldingManager.getInstance(myFixture.getProject()).buildInitialFoldings(myFixture.getEditor());
|
CodeFoldingManager.getInstance(myFixture.getProject()).buildInitialFoldings(myFixture.getEditor());
|
||||||
|
|
||||||
ArrayList<Region> regions = getExpectedRegions();
|
myExpectedRegions = getExpectedRegions();
|
||||||
assertEquals(regions.toString(), getActualRegions().toString());
|
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() {
|
private ArrayList<Region> getExpectedRegions() {
|
||||||
@@ -44,6 +76,13 @@ public class IdeTemplatesTest extends LightCodeInsightFixtureTestCase {
|
|||||||
return actual;
|
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 {
|
private static class Region {
|
||||||
public int start;
|
public int start;
|
||||||
public int end;
|
public int end;
|
||||||
|
|||||||
@@ -244,11 +244,10 @@ public class LiveTemplatesTest extends LightCodeInsightFixtureTestCase {
|
|||||||
return JetWithJdkAndRuntimeLightProjectDescriptor.INSTANCE;
|
return JetWithJdkAndRuntimeLightProjectDescriptor.INSTANCE;
|
||||||
}
|
}
|
||||||
|
|
||||||
@SuppressWarnings("MethodOverridesPrivateMethodOfSuperclass")
|
|
||||||
private void doAction(@NotNull String actionId) {
|
private void doAction(@NotNull String actionId) {
|
||||||
EditorActionManager actionManager = EditorActionManager.getInstance();
|
EditorActionManager actionManager = EditorActionManager.getInstance();
|
||||||
EditorActionHandler actionHandler = actionManager.getActionHandler(actionId);
|
EditorActionHandler actionHandler = actionManager.getActionHandler(actionId);
|
||||||
actionHandler.execute(myFixture.getEditor(), DataManager.getInstance().getDataContext());
|
actionHandler.execute(myFixture.getEditor(), DataManager.getInstance().getDataContext(myFixture.getEditor().getComponent()));
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
|
|||||||
Reference in New Issue
Block a user