package com.intellij.codeInsight.completion; import com.intellij.JavaTestUtil; import com.intellij.openapi.fileTypes.MockLanguageFileType; import com.intellij.openapi.fileTypes.ex.FileTypeManagerEx; import org.jetbrains.annotations.NotNull; import java.io.IOException; /** * @author Maxim.Mossienko */ public class CustomFileTypeCompletionTest extends LightCompletionTestCase { private static final String BASE_PATH = "/codeInsight/completion/customFileType/"; @NotNull @Override protected String getTestDataPath() { return JavaTestUtil.getJavaTestDataPath(); } public void testKeyWordCompletion() throws Exception { configureByFile(BASE_PATH + "1.cs"); checkResultByFile(BASE_PATH + "1_after.cs"); configureByFile(BASE_PATH + "2.cs"); checkResultByFile(BASE_PATH + "2_after.cs"); } public void testWordCompletion() throws Throwable { configureByFile(BASE_PATH + "WordCompletion.cs"); testByCount(2, "while", "whiwhiwhi"); } public void testErlang() throws Throwable { configureByFile(BASE_PATH + "Erlang.erl"); testByCount(2, "case", "catch"); } public void testComment() throws Throwable { configureByFile(BASE_PATH + "foo.cs"); testByCount(0, new String[] { null }); } public void testEmptyFile() throws Throwable { configureFromFileText("a.cs", "<caret>"); complete(); testByCount(1, "abstract", "x"); } public void testPlainTextSubstitution() throws IOException { FileTypeManagerEx.getInstanceEx().registerFileType(MockLanguageFileType.INSTANCE, "xxx"); try { configureFromFileText("a.xxx", "aaa a<caret>"); complete(); checkResultByText("aaa aaa<caret>"); } finally { FileTypeManagerEx.getInstanceEx().unregisterFileType(MockLanguageFileType.INSTANCE); } } }