Fix empty run actions in context menu for non-JVM test results.

Issue #KT-36910 Fixed
Issue #KT-36909 Fixed
This commit is contained in:
Konstantin Tskhovrebov
2020-03-02 12:24:23 +03:00
parent dc8f24b8bc
commit 35055d1895
@@ -8,6 +8,7 @@ package org.jetbrains.kotlin.idea.run
import com.intellij.execution.Location
import com.intellij.psi.PsiClass
import com.intellij.psi.PsiMethod
import org.jetbrains.kotlin.asJava.elements.KtLightElement
import org.jetbrains.kotlin.idea.caches.lightClasses.KtFakeLightClass
import org.jetbrains.kotlin.idea.caches.lightClasses.KtFakeLightMethod
import org.jetbrains.kotlin.psi.KtClassOrObject
@@ -16,13 +17,19 @@ import org.jetbrains.kotlin.psi.KtNamedFunction
import org.jetbrains.kotlin.psi.psiUtil.getParentOfType
internal fun getTestMethodForKotlinTest(location: Location<*>): PsiMethod? {
val leaf = location.psiElement
val leaf = when (val psi = location.psiElement) {
is KtLightElement<*, *> -> psi.kotlinOrigin
else -> psi
}
val function = leaf?.getParentOfType<KtNamedFunction>(false) ?: return null
return KtFakeLightMethod.get(function)
}
internal fun getTestClassForKotlinTest(location: Location<*>): PsiClass? {
val leaf = location.psiElement
val owner = leaf?.getParentOfType<KtDeclaration>(true) as? KtClassOrObject ?: return null
val leaf = when (val psi = location.psiElement) {
is KtLightElement<*, *> -> psi.kotlinOrigin
else -> psi
}
val owner = leaf?.getParentOfType<KtDeclaration>(false) as? KtClassOrObject ?: return null
return KtFakeLightClass(owner)
}