Added simple IDE templates test which checks that folding worked normally.
This commit is contained in:
@@ -0,0 +1,42 @@
|
||||
fun main(args : Array<String>) {
|
||||
if (<#<condition>#>) {
|
||||
<#<block>#>
|
||||
} else {
|
||||
<#<block>#>
|
||||
}
|
||||
|
||||
fun <#<name>#>(<#<params>#>) : <#<returnType>#> {
|
||||
<#<body>#>
|
||||
}
|
||||
|
||||
for (<#<i>#> in <#<elements>#>) {
|
||||
<#<body>#>
|
||||
}
|
||||
|
||||
when (<#<expression>#>) {
|
||||
<#<condition>#> -> <#<value>#>
|
||||
else -> <#<elseValue>#>
|
||||
}
|
||||
|
||||
var <#<name>#> = <#<value>#>
|
||||
|
||||
class <#<name>#> {
|
||||
<#<body>#>
|
||||
}
|
||||
|
||||
class <#<name>#> {
|
||||
var <#<name>#> : <#<varType>#>
|
||||
get() {
|
||||
<#<body>#>
|
||||
}
|
||||
set(value) {
|
||||
<#<body>#>
|
||||
}
|
||||
|
||||
val <#<name>#> : <#<valType>#>
|
||||
get() {
|
||||
<#<body>#>
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -0,0 +1,63 @@
|
||||
package org.jetbrains.jet.plugin.codeInsight;
|
||||
|
||||
import com.intellij.codeInsight.folding.CodeFoldingManager;
|
||||
import com.intellij.openapi.editor.FoldRegion;
|
||||
import com.intellij.testFramework.fixtures.LightCodeInsightFixtureTestCase;
|
||||
import org.jetbrains.jet.plugin.PluginTestCaseBase;
|
||||
|
||||
import java.util.ArrayList;
|
||||
import java.util.regex.Matcher;
|
||||
import java.util.regex.Pattern;
|
||||
|
||||
/**
|
||||
* @author Evgeny Gerashchenko
|
||||
* @since 2/14/12
|
||||
*/
|
||||
public class IdeTemplatesTest extends LightCodeInsightFixtureTestCase {
|
||||
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());
|
||||
|
||||
}
|
||||
|
||||
private ArrayList<Region> getExpectedRegions() {
|
||||
Pattern regex = Pattern.compile("<#<(\\w+)>#>");
|
||||
Matcher matcher = regex.matcher(myFixture.getEditor().getDocument().getText());
|
||||
ArrayList<Region> expected = new ArrayList<Region>();
|
||||
while (matcher.find()) {
|
||||
expected.add(new Region(matcher.start(), matcher.end(), matcher.group(1)));
|
||||
}
|
||||
return expected;
|
||||
}
|
||||
|
||||
private ArrayList<Region> getActualRegions() {
|
||||
ArrayList<Region> actual = new ArrayList<Region>();
|
||||
for (FoldRegion fr : myFixture.getEditor().getFoldingModel().getAllFoldRegions()) {
|
||||
if (fr.shouldNeverExpand()) {
|
||||
assertFalse(fr.isExpanded());
|
||||
actual.add(new Region(fr.getStartOffset(), fr.getEndOffset(), fr.getPlaceholderText()));
|
||||
}
|
||||
}
|
||||
return actual;
|
||||
}
|
||||
|
||||
private static class Region {
|
||||
public int start;
|
||||
public int end;
|
||||
public String group;
|
||||
|
||||
private Region(int start, int end, String group) {
|
||||
this.start = start;
|
||||
this.end = end;
|
||||
this.group = group;
|
||||
}
|
||||
|
||||
@Override
|
||||
public String toString() {
|
||||
return String.format("%d..%d:%s", start, end, group);
|
||||
}
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user