package com.jetbrains.lang.dart.suppress;
import com.intellij.openapi.application.ApplicationManager;
import com.intellij.openapi.command.CommandProcessor;
import com.jetbrains.lang.dart.DartCodeInsightFixtureTestCase;
import com.jetbrains.lang.dart.ide.annotator.DartProblemGroup;
public class DartSuppressTest extends DartCodeInsightFixtureTestCase {
private boolean isSuppressActionAvailable(final boolean eolComment) {
return new DartProblemGroup.DartSuppressAction("", "", eolComment)
.isAvailable(getProject(), myFixture.getEditor(), myFixture.getElementAtCaret());
}
public void testActionAvailability() {
myFixture.configureByText("foo.dart", "var <caret>a;");
assertTrue(isSuppressActionAvailable(false));
assertTrue(isSuppressActionAvailable(true));
myFixture.configureByText("foo.dart", "//ignore something\n var <caret>a; // ignore :something");
assertTrue(isSuppressActionAvailable(false));
assertTrue(isSuppressActionAvailable(true));
myFixture.configureByText("foo.dart", "//ignore: something\nvar <caret>a;");
assertTrue(isSuppressActionAvailable(false));
assertFalse(isSuppressActionAvailable(true));
myFixture.configureByText("foo.dart", " // ignore: something // else\nvar <caret>a;");
assertTrue(isSuppressActionAvailable(false));
assertFalse(isSuppressActionAvailable(true));
myFixture.configureByText("foo.dart", "var <caret>a; // ignore: something");
assertFalse(isSuppressActionAvailable(false));
assertTrue(isSuppressActionAvailable(true));
myFixture.configureByText("foo.dart", "var <caret>a; // ignore: something // else");
assertFalse(isSuppressActionAvailable(false));
assertTrue(isSuppressActionAvailable(true));
myFixture.configureByText("foo.dart", "// ignore: something\n var <caret>a; // ignore: something");
assertTrue(isSuppressActionAvailable(false));
assertTrue(isSuppressActionAvailable(true));
}
public void testAddPrevLineComment() {
myFixture.configureByText("foo.dart", "var <caret>a;");
CommandProcessor.getInstance().executeCommand(getProject(), () -> ApplicationManager.getApplication().runWriteAction(
() -> new DartProblemGroup.DartSuppressAction("x", "", false)
.invoke(getProject(), myFixture.getEditor(), myFixture.getElementAtCaret())), null, null);
myFixture.checkResult("// ignore: x\nvar <caret>a;");
}
public void testAddPrevLineCommentWithOffset() {
myFixture.configureByText("foo.dart", "//a\n var <caret>a;");
CommandProcessor.getInstance().executeCommand(getProject(), () -> ApplicationManager.getApplication().runWriteAction(
() -> new DartProblemGroup.DartSuppressAction("x", "", false)
.invoke(getProject(), myFixture.getEditor(), myFixture.getElementAtCaret())), null, null);
myFixture.checkResult("//a\n // ignore: x\n var <caret>a;");
}
public void testUpdatePrevLineComment() {
myFixture.configureByText("foo.dart", " // ignore: y \n var <caret>a;");
CommandProcessor.getInstance().executeCommand(getProject(), () -> ApplicationManager.getApplication().runWriteAction(
() -> new DartProblemGroup.DartSuppressAction("x", "", false)
.invoke(getProject(), myFixture.getEditor(), myFixture.getElementAtCaret())), null, null);
myFixture.checkResult(" // ignore: y, x\n var <caret>a;");
}
public void testAddEolComment() {
myFixture.configureByText("foo.dart", "var <caret>a;");
CommandProcessor.getInstance().executeCommand(getProject(), () -> ApplicationManager.getApplication().runWriteAction(
() -> new DartProblemGroup.DartSuppressAction("x", "", true)
.invoke(getProject(), myFixture.getEditor(), myFixture.getElementAtCaret())), null, null);
myFixture.checkResult("var <caret>a; // ignore: x");
}
public void testAddEolCommentTrimSpaces() {
myFixture.configureByText("foo.dart", "var <caret>a; ");
CommandProcessor.getInstance().executeCommand(getProject(), () -> ApplicationManager.getApplication().runWriteAction(
() -> new DartProblemGroup.DartSuppressAction("x", "", true)
.invoke(getProject(), myFixture.getEditor(), myFixture.getElementAtCaret())), null, null);
myFixture.checkResult("var <caret>a; // ignore: x");
}
public void testAddEolCommentBeforeOtherComment() {
myFixture.configureByText("foo.dart", "var <caret>a; //comment");
CommandProcessor.getInstance().executeCommand(getProject(), () -> ApplicationManager.getApplication().runWriteAction(
() -> new DartProblemGroup.DartSuppressAction("x", "", true)
.invoke(getProject(), myFixture.getEditor(), myFixture.getElementAtCaret())), null, null);
myFixture.checkResult("var <caret>a; // ignore: x, //comment");
}
public void testUpdateEolComment() {
myFixture.configureByText("foo.dart", "var <caret>a; // ignore: y \n");
CommandProcessor.getInstance().executeCommand(getProject(), () -> ApplicationManager.getApplication().runWriteAction(
() -> new DartProblemGroup.DartSuppressAction("x", "", true)
.invoke(getProject(), myFixture.getEditor(), myFixture.getElementAtCaret())), null, null);
myFixture.checkResult("var <caret>a; // ignore: y, x\n");
}
}