diff --git a/idea/tests/org/jetbrains/jet/plugin/libraries/AbstractNavigateToLibraryTest.java b/idea/tests/org/jetbrains/jet/plugin/libraries/AbstractNavigateToLibraryTest.java index 00c46f0c0b1..ecbd9874dba 100644 --- a/idea/tests/org/jetbrains/jet/plugin/libraries/AbstractNavigateToLibraryTest.java +++ b/idea/tests/org/jetbrains/jet/plugin/libraries/AbstractNavigateToLibraryTest.java @@ -21,6 +21,7 @@ import com.intellij.openapi.roots.ModifiableRootModel; import com.intellij.openapi.roots.ModuleRootManager; import com.intellij.openapi.roots.OrderRootType; import com.intellij.openapi.roots.libraries.Library; +import com.intellij.openapi.util.ThrowableComputable; import com.intellij.openapi.util.io.FileUtil; import com.intellij.openapi.vfs.LocalFileSystem; import com.intellij.openapi.vfs.VfsUtilCore; @@ -45,8 +46,6 @@ public abstract class AbstractNavigateToLibraryTest extends PlatformTestCase { protected static final String SOURCES_PATH = TEST_DATA_PATH + "/library"; protected static final String SRC_DIR_NAME = "src"; private static File tempDirWithCompiled; - protected VirtualFile libraryDir; - protected VirtualFile librarySourceDir; protected abstract boolean isWithSources(); @@ -70,16 +69,13 @@ public abstract class AbstractNavigateToLibraryTest extends PlatformTestCase { super.setUp(); final VirtualFile baseDir = getProject().getBaseDir(); assertNotNull(baseDir); - ApplicationManager.getApplication().runWriteAction(new Runnable() { + + final VirtualFile libraryDir = ApplicationManager.getApplication().runWriteAction(new ThrowableComputable() { @Override - public void run() { - try { - libraryDir = baseDir.createChildDirectory(this, "lib"); - baseDir.createChildDirectory(this, SRC_DIR_NAME); - } - catch (IOException e) { - throw new RuntimeException(e); - } + public VirtualFile compute() throws IOException { + VirtualFile libraryDir = baseDir.createChildDirectory(this, "lib"); + baseDir.createChildDirectory(this, SRC_DIR_NAME); + return libraryDir; } }); @@ -93,7 +89,7 @@ public abstract class AbstractNavigateToLibraryTest extends PlatformTestCase { return true; } }); - librarySourceDir = LocalFileSystem.getInstance().findFileByPath(SOURCES_PATH); + final VirtualFile librarySourceDir = LocalFileSystem.getInstance().findFileByPath(SOURCES_PATH); assertNotNull(librarySourceDir); FileUtil.copyDir(getTempDirWithCompiled(), new File(libraryDir.getPath())); diff --git a/idea/tests/org/jetbrains/jet/plugin/libraries/NavigateToDecompiledLibraryTest.java b/idea/tests/org/jetbrains/jet/plugin/libraries/NavigateToDecompiledLibraryTest.java index 7ae478fe1b0..937a89437d3 100644 --- a/idea/tests/org/jetbrains/jet/plugin/libraries/NavigateToDecompiledLibraryTest.java +++ b/idea/tests/org/jetbrains/jet/plugin/libraries/NavigateToDecompiledLibraryTest.java @@ -19,11 +19,16 @@ package org.jetbrains.jet.plugin.libraries; import com.beust.jcommander.internal.Maps; import com.intellij.openapi.editor.Document; import com.intellij.openapi.fileEditor.FileDocumentManager; +import com.intellij.openapi.roots.LibraryOrderEntry; +import com.intellij.openapi.roots.ModuleRootManager; +import com.intellij.openapi.roots.OrderEntry; +import com.intellij.openapi.roots.OrderRootType; import com.intellij.openapi.util.TextRange; import com.intellij.openapi.util.text.StringUtil; import com.intellij.openapi.vfs.VirtualFile; import com.intellij.psi.util.PsiTreeUtil; import org.jetbrains.annotations.NotNull; +import org.jetbrains.annotations.Nullable; import org.jetbrains.jet.lang.psi.JetDeclaration; import org.jetbrains.jet.lang.psi.JetFile; @@ -116,8 +121,21 @@ public class NavigateToDecompiledLibraryTest extends AbstractNavigateToLibraryTe return document.getText(); } + @Nullable + private LibraryOrderEntry findOurTestLibrary() { + for (OrderEntry orderEntry : ModuleRootManager.getInstance(getModule()).getOrderEntries()) { + if (orderEntry instanceof LibraryOrderEntry) { + return (LibraryOrderEntry) orderEntry; + } + } + return null; + } + private VirtualFile getClassFile() { - VirtualFile packageDir = libraryDir.findFileByRelativePath(PACKAGE.replace(".", "/")); + LibraryOrderEntry library = findOurTestLibrary(); + assertNotNull(library); + + VirtualFile packageDir = library.getFiles(OrderRootType.CLASSES)[0].findFileByRelativePath(PACKAGE.replace(".", "/")); assertNotNull(packageDir); VirtualFile classFile = packageDir.findChild(getTestName(false) + ".class"); assertNotNull(classFile); diff --git a/idea/tests/org/jetbrains/jet/plugin/libraries/NavigateToLibrarySourceTest.java b/idea/tests/org/jetbrains/jet/plugin/libraries/NavigateToLibrarySourceTest.java index 8e7c2671a40..38c938d47b0 100644 --- a/idea/tests/org/jetbrains/jet/plugin/libraries/NavigateToLibrarySourceTest.java +++ b/idea/tests/org/jetbrains/jet/plugin/libraries/NavigateToLibrarySourceTest.java @@ -19,15 +19,14 @@ package org.jetbrains.jet.plugin.libraries; import com.intellij.openapi.editor.Document; import com.intellij.openapi.editor.EditorFactory; import com.intellij.openapi.fileEditor.FileDocumentManager; +import com.intellij.openapi.roots.ProjectFileIndex; import com.intellij.openapi.util.Pair; -import com.intellij.openapi.vfs.VfsUtilCore; import com.intellij.openapi.vfs.VirtualFile; import com.intellij.psi.PsiDocumentManager; import com.intellij.psi.PsiElement; import com.intellij.psi.PsiFile; import com.intellij.psi.PsiReference; import com.intellij.util.containers.MultiMap; -import org.jetbrains.annotations.NotNull; import org.jetbrains.jet.JetTestUtils; import org.jetbrains.jet.plugin.references.JetPsiReference; @@ -120,7 +119,7 @@ public class NavigateToLibrarySourceTest extends AbstractNavigateToLibraryTest { if (targetNavPsiFile == null) continue; VirtualFile targetNavFile = targetNavPsiFile.getVirtualFile(); if (targetNavFile == null) continue; - if (VfsUtilCore.isAncestor(librarySourceDir, targetNavFile, true)) { + if (ProjectFileIndex.SERVICE.getInstance(getProject()).isInLibrarySource(targetNavFile)) { referenceContainersToReferences.put(ref.getElement(), (JetPsiReference)ref); } } @@ -128,16 +127,6 @@ public class NavigateToLibrarySourceTest extends AbstractNavigateToLibraryTest { return referenceContainersToReferences.values(); } - @NotNull - private String getRelativePath(@NotNull PsiFile librarySourceFile) { - VirtualFile virtualFile = librarySourceFile.getVirtualFile(); - if (virtualFile == null) { - return ""; - } - String relativePath = VfsUtilCore.getRelativePath(virtualFile, librarySourceDir, '/'); - return relativePath == null ? "" : relativePath; - } - private String getActualAnnotatedLibraryCode() { MultiMap> filesToNumbersAndOffsets = new MultiMap>(); int refNumber = 1; @@ -157,7 +146,7 @@ public class NavigateToLibrarySourceTest extends AbstractNavigateToLibraryTest { Collections.sort(files, new Comparator() { @Override public int compare(PsiFile o1, PsiFile o2) { - return getRelativePath(o1).compareTo(getRelativePath(o2)); + return o1.getName().compareTo(o2.getName()); } }); @@ -191,7 +180,7 @@ public class NavigateToLibrarySourceTest extends AbstractNavigateToLibraryTest { Document annotated = EditorFactory.getInstance().createDocument(resultForFile); String filePart = annotated.getText().substring(annotated.getLineStartOffset(minLine), annotated.getLineEndOffset(maxLine)); - result.append(" ").append(getRelativePath(file)).append("\n"); + result.append(" ").append(file.getName()).append("\n"); result.append(filePart).append("\n"); } return result.toString();