mirror of
https://gitflic.ru/project/openide/openide.git
synced 2026-09-18 09:34:34 +07:00
navigation to class fixed if file not opened (IDEADEV-41617 re-fixed): test
This commit is contained in:
@@ -0,0 +1,55 @@
|
||||
package com.intellij.navigation;
|
||||
|
||||
import com.intellij.codeInsight.navigation.NavigationUtil;
|
||||
import com.intellij.openapi.editor.Editor;
|
||||
import com.intellij.openapi.fileEditor.FileEditor;
|
||||
import com.intellij.openapi.fileEditor.FileEditorManagerTestCase;
|
||||
import com.intellij.openapi.fileEditor.TextEditor;
|
||||
import com.intellij.openapi.vfs.VirtualFile;
|
||||
import com.intellij.psi.PsiClass;
|
||||
import com.intellij.psi.PsiJavaFile;
|
||||
|
||||
/**
|
||||
* @author Dmitry Avdeev
|
||||
* Date: 4/25/13
|
||||
*/
|
||||
public class GotoClassTest extends FileEditorManagerTestCase {
|
||||
|
||||
public void testGotoClass() throws Exception {
|
||||
PsiJavaFile file = (PsiJavaFile)myFixture.configureByText("Foo.java", "public class Foo {\n" +
|
||||
"}\n" +
|
||||
"\n" +
|
||||
"class Bar {}\n");
|
||||
|
||||
VirtualFile virtualFile = file.getVirtualFile();
|
||||
assertNotNull(virtualFile);
|
||||
myManager.openFile(virtualFile, true);
|
||||
assertEquals(0, getOffset(virtualFile));
|
||||
myManager.closeAllFiles();
|
||||
|
||||
PsiClass psiClass = file.getClasses()[1];
|
||||
int identifierOffset = psiClass.getNameIdentifier().getTextOffset();
|
||||
NavigationUtil.activateFileWithPsiElement(psiClass);
|
||||
assertEquals(identifierOffset, getOffset(virtualFile));
|
||||
|
||||
getEditor(virtualFile).getCaretModel().moveToOffset(identifierOffset + 3); // it's still inside the class, so keep it
|
||||
|
||||
NavigationUtil.activateFileWithPsiElement(psiClass);
|
||||
assertEquals(identifierOffset + 3, getOffset(virtualFile));
|
||||
|
||||
getEditor(virtualFile).getCaretModel().moveToOffset(0);
|
||||
NavigationUtil.activateFileWithPsiElement(psiClass);
|
||||
assertEquals(identifierOffset, getOffset(virtualFile));
|
||||
|
||||
}
|
||||
|
||||
private int getOffset(VirtualFile virtualFile) {
|
||||
Editor editor = getEditor(virtualFile);
|
||||
return editor.getCaretModel().getOffset();
|
||||
}
|
||||
|
||||
private Editor getEditor(VirtualFile virtualFile) {
|
||||
FileEditor[] editors = myManager.getEditors(virtualFile);
|
||||
return ((TextEditor)editors[0]).getEditor();
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user