package com.jetbrains.lang.dart.typing;
import com.intellij.codeInsight.editorActions.SelectWordHandler;
import com.intellij.ide.DataManager;
import com.intellij.openapi.actionSystem.DataContext;
import com.intellij.testFramework.fixtures.LightPlatformCodeInsightFixtureTestCase;
import org.jetbrains.annotations.NotNull;
public class DartSelectWordTest extends LightPlatformCodeInsightFixtureTestCase {
private void doTest(@NotNull final String before, @NotNull final String... after) {
myFixture.configureByText("file.dart", before);
final DataContext dataContext = DataManager.getInstance().getDataContext(myFixture.getEditor().getComponent());
final SelectWordHandler handler = new SelectWordHandler(null);
for (String text : after) {
handler.execute(myFixture.getEditor(), myFixture.getEditor().getCaretModel().getCurrentCaret(), dataContext);
myFixture.checkResult(text);
}
}
public void testLineDocComment() throws Exception {
doTest("/// foo bar<caret> baz",
"/// foo <selection>bar</selection><caret> baz",
"/// <selection>foo bar<caret> baz</selection>",
"<selection>/// foo bar<caret> baz</selection>");
}
public void testExpressionAndSemicolon() throws Exception {
doTest("main() {\n pri<caret>nt \n (1); \n}",
"main() {\n <selection>pri<caret>nt</selection> \n (1); \n}",
"main() {\n<selection> pri<caret>nt \n</selection> (1); \n}",
"main() {\n<selection> pri<caret>nt \n (1);</selection> \n}",
"main() {\n<selection> pri<caret>nt \n (1); \n</selection>}",
"main() <selection>{\n pri<caret>nt \n (1); \n}</selection>",
"<selection>main() {\n pri<caret>nt \n (1); \n}</selection>");
}
}