diff --git a/idea/testData/navigation/implementations/ClassImplementatorsWithDeclaration.kt b/idea/testData/navigation/implementations/ClassImplementatorsWithDeclaration.kt new file mode 100644 index 00000000000..1d0279d8167 --- /dev/null +++ b/idea/testData/navigation/implementations/ClassImplementatorsWithDeclaration.kt @@ -0,0 +1,11 @@ +package testing + +open class Test + +open class TestOther : Test() + +class TestOtherMore : TestOther() + +// REF: Test +// REF: TestOther +// REF: TestOtherMore diff --git a/idea/testData/navigation/implementations/ClassNavigation.kt b/idea/testData/navigation/implementations/ClassNavigation.kt index 036eb0a1c0a..fd85a5a0eb9 100644 --- a/idea/testData/navigation/implementations/ClassNavigation.kt +++ b/idea/testData/navigation/implementations/ClassNavigation.kt @@ -2,6 +2,9 @@ package testing open class Test -class TestOther : Test() +open class TestOther : Test() -// REF: JetLightClass:testing.TestOther \ No newline at end of file +class TestOtherMore : TestOther() + +// REF: TestOtherMore +// REF: TestOther diff --git a/idea/tests/org/jetbrains/jet/plugin/navigation/JetGotoImplementationTest.java b/idea/tests/org/jetbrains/jet/plugin/navigation/JetGotoImplementationTest.java index 59782996687..e9cc658e048 100644 --- a/idea/tests/org/jetbrains/jet/plugin/navigation/JetGotoImplementationTest.java +++ b/idea/tests/org/jetbrains/jet/plugin/navigation/JetGotoImplementationTest.java @@ -18,8 +18,11 @@ package org.jetbrains.jet.plugin.navigation; import com.google.common.base.Function; import com.google.common.collect.Lists; +import com.google.common.collect.Ordering; import com.intellij.codeInsight.navigation.GotoImplementationHandler; import com.intellij.codeInsight.navigation.GotoTargetHandler; +import com.intellij.navigation.ItemPresentation; +import com.intellij.navigation.NavigationItem; import com.intellij.openapi.projectRoots.Sdk; import com.intellij.psi.PsiElement; import com.intellij.testFramework.LightCodeInsightTestCase; @@ -29,6 +32,7 @@ import org.jetbrains.jet.testing.InTextDirectivesUtils; import java.io.File; import java.util.Arrays; +import java.util.Collections; import java.util.List; /** @@ -39,6 +43,10 @@ public class JetGotoImplementationTest extends LightCodeInsightTestCase { doTest(); } + public void testClassImplementatorsWithDeclaration() { + doTest(); + } + @Override protected String getTestDataPath() { return new File(PluginTestCaseBase.getTestDataPathBase(), "/navigation/implementations").getPath() + @@ -55,6 +63,7 @@ public class JetGotoImplementationTest extends LightCodeInsightTestCase { List expectedReferences = Arrays.asList( InTextDirectivesUtils.findListWithPrefix("// REF:", getEditor().getDocument().getText())); + Collections.sort(expectedReferences); GotoTargetHandler.GotoData elements = new GotoImplementationHandler().getSourceAndTargetElements(getEditor(), getFile()); @@ -63,11 +72,14 @@ public class JetGotoImplementationTest extends LightCodeInsightTestCase { @Override public String apply(@Nullable PsiElement element) { assertNotNull(element); - return element.toString(); + assertTrue(element instanceof NavigationItem); + ItemPresentation presentation = ((NavigationItem)element).getPresentation(); + assertNotNull(presentation); + return presentation.getPresentableText(); } }); - assertOrderedEquals(expectedReferences, psiElements); + assertOrderedEquals(Ordering.natural().sortedCopy(psiElements), expectedReferences); } else { assertEmpty(expectedReferences);