mirror of
https://gitflic.ru/project/openide/openide.git
synced 2026-09-27 10:03:11 +07:00
show discovered tests action: search by methods fixed
This commit is contained in:
+1
-1
@@ -32,7 +32,7 @@ public class IntellijTestDiscoveryProducer implements TestDiscoveryProducer {
|
||||
return MultiMap.emptyInstance();
|
||||
}
|
||||
String methodFqn = classFQName + "." + methodName;
|
||||
String url = INTELLIJ_TEST_DISCOVERY_HOST + "/search/tests/by-method/" + methodFqn;
|
||||
String url = INTELLIJ_TEST_DISCOVERY_HOST + "/search/tests/by-method?fqn=" + methodFqn;
|
||||
LOG.debug(url);
|
||||
|
||||
RequestBuilder r = HttpRequests.request(url)
|
||||
|
||||
+44
-1
@@ -19,6 +19,7 @@ import com.intellij.find.actions.CompositeActiveComponent;
|
||||
import com.intellij.icons.AllIcons;
|
||||
import com.intellij.ide.DataManager;
|
||||
import com.intellij.lang.Language;
|
||||
import com.intellij.lang.jvm.JvmParameter;
|
||||
import com.intellij.openapi.Disposable;
|
||||
import com.intellij.openapi.actionSystem.*;
|
||||
import com.intellij.openapi.actionSystem.impl.ActionButton;
|
||||
@@ -43,6 +44,7 @@ import com.intellij.psi.search.GlobalSearchScope;
|
||||
import com.intellij.psi.util.ClassUtil;
|
||||
import com.intellij.psi.util.PsiTreeUtil;
|
||||
import com.intellij.psi.util.PsiUtilCore;
|
||||
import com.intellij.rt.coverage.testDiscovery.instrumentation.TestDiscoveryInstrumentationUtils;
|
||||
import com.intellij.uast.UastMetaLanguage;
|
||||
import com.intellij.ui.ActiveComponent;
|
||||
import com.intellij.usages.UsageView;
|
||||
@@ -67,6 +69,7 @@ import java.awt.event.ActionEvent;
|
||||
import java.util.ArrayList;
|
||||
import java.util.List;
|
||||
import java.util.Objects;
|
||||
import java.util.Optional;
|
||||
import java.util.stream.Collectors;
|
||||
|
||||
import static com.intellij.openapi.actionSystem.CommonDataKeys.EDITOR;
|
||||
@@ -308,7 +311,47 @@ public class ShowDiscoveredTestsAction extends AnAction {
|
||||
private static Couple<String> getMethodQualifiedName(@NotNull PsiMethod method) {
|
||||
PsiClass c = method.getContainingClass();
|
||||
String fqn = c != null ? getName(c) : null;
|
||||
return fqn == null ? null : Couple.of(fqn, method.getName());
|
||||
return fqn == null ? null : Couple.of(fqn, methodSignature(method));
|
||||
}
|
||||
|
||||
@NotNull
|
||||
private static String methodSignature(@NotNull PsiMethod method) {
|
||||
StringBuilder signature = new StringBuilder(method.getName());
|
||||
signature.append(TestDiscoveryInstrumentationUtils.SEPARATOR);
|
||||
signature.append("(");
|
||||
for (JvmParameter param : method.getParameters()) {
|
||||
formatType(signature, (PsiType)param.getType());
|
||||
}
|
||||
signature.append(")");
|
||||
if (method.getReturnType() == null || "void".equals(method.getReturnType().getCanonicalText())) {
|
||||
signature.append("V");
|
||||
}
|
||||
else {
|
||||
formatType(signature, method.getReturnType());
|
||||
}
|
||||
return signature.toString();
|
||||
}
|
||||
|
||||
private static void formatType(StringBuilder signature, PsiType type) {
|
||||
signature.append("L");
|
||||
String typeName = type.getCanonicalText();
|
||||
if (type instanceof PsiClassType) {
|
||||
PsiClass psiClass = ((PsiClassType)type).resolve();
|
||||
if (psiClass instanceof PsiTypeParameter) {
|
||||
// type parameter
|
||||
typeName = Optional.ofNullable(psiClass.getSuperClass())
|
||||
.map(PsiClass::getQualifiedName)
|
||||
.orElse(typeName);
|
||||
}
|
||||
else if (((PsiClassType)type).hasParameters()) {
|
||||
// parametrized type
|
||||
typeName = Optional.ofNullable(psiClass)
|
||||
.map(PsiClass::getQualifiedName)
|
||||
.orElse(typeName);
|
||||
}
|
||||
}
|
||||
signature.append(typeName.replace(".", "/"));
|
||||
signature.append(";");
|
||||
}
|
||||
|
||||
private static String getName(PsiClass c) {
|
||||
|
||||
Reference in New Issue
Block a user