package com.intellij.psi.resolve; import com.intellij.codeInsight.CodeInsightTestCase; import com.intellij.codeInsight.navigation.actions.GotoDeclarationAction; import com.intellij.psi.PsiElement; import com.intellij.psi.PsiFile; import com.intellij.psi.PsiFileSystemItem; import com.intellij.psi.impl.include.FileIncludeInfo; import com.intellij.psi.impl.include.FileIncludeManager; /** * @author cdr */ public class FilePathResolveTest extends CodeInsightTestCase{ private static final String BASE_PATH = "/psi/resolve/filePath/"; public void testC1() throws Exception{ configure("C.java"); checkNavigatesTo("MyClass.java"); } public void testC2() throws Exception{ configure("C2.java"); checkNavigatesTo("MyFile.txt"); } public void testResolveFileReference() throws Exception { configureByFile(BASE_PATH + "C.java", BASE_PATH); FileIncludeManager fileIncludeManager = FileIncludeManager.getManager(getProject()); PsiFileSystemItem item = fileIncludeManager.resolveFileInclude(new FileIncludeInfo("x/MyFile.txt"), getFile()); assertNotNull(item); assertEquals("MyFile.txt", item.getName()); } private void checkNavigatesTo(String expected) { final int offset = myEditor.getCaretModel().getOffset(); final PsiElement targetElement = GotoDeclarationAction.findTargetElement(myProject, myEditor, offset); assertEquals(expected, ((PsiFile)targetElement).getName()); } private void configure(final String fileName) throws Exception { configureByFile(BASE_PATH + fileName, BASE_PATH); } }