package mobi.hsz.idea.gitignore.completion; import com.intellij.testFramework.fixtures.LightPlatformCodeInsightFixtureTestCase; import mobi.hsz.idea.gitignore.file.type.kind.GitFileType; import org.jetbrains.annotations.NotNull; import java.io.IOException; public class CompletionTest extends LightPlatformCodeInsightFixtureTestCase { @Override protected boolean isWriteActionRequired() { return true; } public void testSimple() { myFixture.getTempDirFixture().createFile("fileName.txt"); doTest("fileN<caret>", "fileName.txt<caret>"); } public void testCurrentDirectoryAlias() throws IOException { myFixture.getTempDirFixture().createFile("fileName.txt"); doTest("./fileN<caret>", "./fileName.txt<caret>"); } public void testInHiddenDirectory() throws IOException { myFixture.getTempDirFixture().findOrCreateDir(".hidden").createChildData(this, "fileName.txt"); doTest(".hidden/fileN<caret>", ".hidden/fileName.txt<caret>"); } public void testInGlobDirectory() throws IOException { myFixture.getTempDirFixture().findOrCreateDir("glob1").createChildData(this, "fileName1.txt"); myFixture.getTempDirFixture().findOrCreateDir("glob2").createChildData(this, "fileName2.txt"); doTestVariants("*/fileN<caret>", "fileName1.txt", "fileName2.txt"); } public void testNegation() throws IOException { myFixture.getTempDirFixture().createFile("fileName.txt"); doTest("!fileNa<caret>", "!fileName.txt<caret>"); } private void doTest(@NotNull String beforeText, @NotNull String afterText) { myFixture.configureByText(GitFileType.INSTANCE, beforeText); myFixture.completeBasic(); myFixture.checkResult(afterText); } private void doTestVariants(@NotNull String beforeText, String... variants) { myFixture.configureByText(GitFileType.INSTANCE, beforeText); myFixture.completeBasic(); assertContainsElements(myFixture.getLookupElementStrings(), variants); } }