package org.angularjs.editor;
import com.intellij.ide.highlighter.HtmlFileType;
import com.intellij.lang.javascript.formatter.JSCodeStyleSettings;
import com.intellij.testFramework.fixtures.LightPlatformCodeInsightFixtureTestCase;
/**
* @author Dennis.Ushakov
*/
public class AngularTypedHandlerTest extends LightPlatformCodeInsightFixtureTestCase {
public void testBracketsClosing() {
myFixture.configureByText(HtmlFileType.INSTANCE, "{<caret>");
myFixture.type("{");
myFixture.checkResult("{{<caret>}}");
}
public void testBracketsNotClosingTwice() {
myFixture.configureByText(HtmlFileType.INSTANCE, "{<caret>}}");
myFixture.type("{");
myFixture.checkResult("{{<caret>}}");
}
public void testBracketsNotBreakingAtEnd() {
myFixture.configureByText(HtmlFileType.INSTANCE, "{{<caret>");
myFixture.type("}");
myFixture.checkResult("{{}}<caret>");
}
public void testClosingBracketsSkipped() {
myFixture.configureByText(HtmlFileType.INSTANCE, "{{<caret>}}");
myFixture.type("}");
myFixture.checkResult("{{}<caret>}");
}
public void testSecondClosingBracket() {
myFixture.configureByText(HtmlFileType.INSTANCE, "{{}<caret>");
myFixture.type("}");
myFixture.checkResult("{{}}<caret>");
}
public void testInsertWhitespace() {
myFixture.configureByText(HtmlFileType.INSTANCE, "{<caret>");
JSCodeStyleSettings settings = JSCodeStyleSettings.getSettings(myFixture.getFile());
boolean oldWhitespace = settings.SPACES_WITHIN_INTERPOLATION_EXPRESSIONS;
try {
settings.SPACES_WITHIN_INTERPOLATION_EXPRESSIONS = true;
myFixture.type("{");
myFixture.checkResult("{{ <caret> }}");
}
finally {
settings.SPACES_WITHIN_INTERPOLATION_EXPRESSIONS = oldWhitespace;
}
}
}