From b213dfdd87c96e47765afce87a2f4ca0c53f5cd7 Mon Sep 17 00:00:00 2001 From: peter Date: Thu, 13 Feb 2014 20:24:32 +0100 Subject: [PATCH] com.intellij.index.IndexTest._testSkipUnknownFileTypes --- .../testSrc/com/intellij/index/IndexTest.java | 40 +++++++++++++++++++ 1 file changed, 40 insertions(+) diff --git a/java/java-tests/testSrc/com/intellij/index/IndexTest.java b/java/java-tests/testSrc/com/intellij/index/IndexTest.java index 562ff74df869..29def05d4378 100644 --- a/java/java-tests/testSrc/com/intellij/index/IndexTest.java +++ b/java/java-tests/testSrc/com/intellij/index/IndexTest.java @@ -18,6 +18,7 @@ package com.intellij.index; import com.intellij.openapi.command.WriteCommandAction; import com.intellij.openapi.editor.Document; import com.intellij.openapi.fileEditor.FileDocumentManager; +import com.intellij.openapi.fileTypes.UnknownFileType; import com.intellij.openapi.util.Factory; import com.intellij.openapi.util.io.FileUtil; import com.intellij.openapi.vfs.VfsUtil; @@ -25,6 +26,7 @@ import com.intellij.openapi.vfs.VirtualFile; import com.intellij.psi.*; import com.intellij.psi.impl.PsiManagerEx; import com.intellij.psi.search.GlobalSearchScope; +import com.intellij.psi.search.PsiSearchHelper; import com.intellij.testFramework.IdeaTestCase; import com.intellij.testFramework.PlatformTestUtil; import com.intellij.testFramework.PsiTestUtil; @@ -264,5 +266,43 @@ public class IndexTest extends IdeaTestCase { } }); } + + public void _testSkipUnknownFileTypes() throws IOException { + VirtualFile dir = getVirtualFile(createTempDirectory()); + PsiTestUtil.addSourceContentToRoots(myModule, dir); + + final VirtualFile vFile = createChildData(dir, "Foo.test"); + VfsUtil.saveText(vFile, "Foo"); + assertEquals(UnknownFileType.INSTANCE, vFile.getFileType()); + assertEmpty(PsiSearchHelper.SERVICE.getInstance(myProject).findFilesWithPlainTextWords("Foo")); + + final Document document = FileDocumentManager.getInstance().getDocument(vFile); + //todo should file type be changed silently without events? + //assertEquals(UnknownFileType.INSTANCE, vFile.getFileType()); + + final PsiFile file = getPsiFile(document); + assertInstanceOf(file, PsiPlainTextFile.class); + assertEquals("Foo", file.getText()); + + assertEmpty(PsiSearchHelper.SERVICE.getInstance(myProject).findFilesWithPlainTextWords("Foo")); + + WriteCommandAction.runWriteCommandAction(myProject, new Runnable() { + @Override + public void run() { + document.insertString(0, " "); + assertEquals("Foo", file.getText()); + assertEmpty(PsiSearchHelper.SERVICE.getInstance(myProject).findFilesWithPlainTextWords("Foo")); + + FileDocumentManager.getInstance().saveDocument(document); + assertEquals("Foo", file.getText()); + assertEmpty(PsiSearchHelper.SERVICE.getInstance(myProject).findFilesWithPlainTextWords("Foo")); + + PsiDocumentManager.getInstance(myProject).commitAllDocuments(); + assertEquals(" Foo", file.getText()); + assertEmpty(PsiSearchHelper.SERVICE.getInstance(myProject).findFilesWithPlainTextWords("Foo")); + + } + }); + } }