From d3bec9d0e8eab264263dfa9aa5be2f604d59db11 Mon Sep 17 00:00:00 2001 From: Anna Kozlova Date: Thu, 9 Dec 2021 12:55:07 +0100 Subject: [PATCH] [junit 5] ensure long method presentation if method has braces in the name (IDEA-280519) GitOrigin-RevId: cc7291bd3663483649cab9baae4d30b2e9439477 --- .../tests/kotlin/KotlinJUnit5AcceptanceTest.kt | 14 ++++++++++++++ .../execution/junit/JUnitConfiguration.java | 10 +++++----- 2 files changed, 19 insertions(+), 5 deletions(-) diff --git a/jvm/jvm-analysis-kotlin-tests/testSrc/com/intellij/codeInspection/tests/kotlin/KotlinJUnit5AcceptanceTest.kt b/jvm/jvm-analysis-kotlin-tests/testSrc/com/intellij/codeInspection/tests/kotlin/KotlinJUnit5AcceptanceTest.kt index aae1a264b920..8432378002cd 100644 --- a/jvm/jvm-analysis-kotlin-tests/testSrc/com/intellij/codeInspection/tests/kotlin/KotlinJUnit5AcceptanceTest.kt +++ b/jvm/jvm-analysis-kotlin-tests/testSrc/com/intellij/codeInspection/tests/kotlin/KotlinJUnit5AcceptanceTest.kt @@ -1,6 +1,7 @@ package com.intellij.codeInspection.tests.kotlin import com.intellij.codeInsight.TestFrameworks +import com.intellij.execution.junit.JUnitConfiguration import com.intellij.execution.junit.codeInsight.JUnit5TestFrameworkSetupUtil import com.intellij.psi.PsiClassOwner import com.intellij.testFramework.RunsInEdt @@ -29,4 +30,17 @@ annotation class CombinedKotlinAnnotation""") Assertions.assertNotNull(TestFrameworks.detectFramework ((file as PsiClassOwner).classes[0])) } + + @Test + fun bracesInMethodName() { + val file = fixture.configureByText("tests.kt", """ + class Tests { + @org.junit.jupiter.api.Test + fun `test with (in name)`() {} + } + """.trimIndent()) + Assertions.assertInstanceOf(PsiClassOwner::class.java, file) + val testMethod = (file as PsiClassOwner).classes[0].methods[0] + Assertions.assertEquals("test with (in name)()", JUnitConfiguration.Data.getMethodPresentation(testMethod)) + } } \ No newline at end of file diff --git a/plugins/junit/src/com/intellij/execution/junit/JUnitConfiguration.java b/plugins/junit/src/com/intellij/execution/junit/JUnitConfiguration.java index f9ad3744c653..3f9eb760fa13 100644 --- a/plugins/junit/src/com/intellij/execution/junit/JUnitConfiguration.java +++ b/plugins/junit/src/com/intellij/execution/junit/JUnitConfiguration.java @@ -1,4 +1,4 @@ -// Copyright 2000-2020 JetBrains s.r.o. Use of this source code is governed by the Apache 2.0 license that can be found in the LICENSE file. +// Copyright 2000-2021 JetBrains s.r.o. and contributors. Use of this source code is governed by the Apache 2.0 license that can be found in the LICENSE file. package com.intellij.execution.junit; @@ -19,7 +19,6 @@ import com.intellij.execution.runners.ExecutionEnvironmentBuilder; import com.intellij.execution.target.LanguageRuntimeType; import com.intellij.execution.target.TargetEnvironmentAwareRunProfile; import com.intellij.execution.target.TargetEnvironmentConfiguration; -import com.intellij.execution.target.TargetEnvironmentConfigurations; import com.intellij.execution.target.java.JavaLanguageRuntimeConfiguration; import com.intellij.execution.target.java.JavaLanguageRuntimeType; import com.intellij.execution.testframework.TestRunnerBundle; @@ -784,11 +783,12 @@ public class JUnitConfiguration extends JavaTestConfigurationWithDiscoverySuppor } public static @NlsSafe String getMethodPresentation(PsiMethod method) { - if (!method.getParameterList().isEmpty() && MetaAnnotationUtil.isMetaAnnotated(method, JUnitUtil.TEST5_ANNOTATIONS)) { - return method.getName() + "(" + ClassUtil.getVMParametersMethodSignature(method) + ")"; + String methodName = method.getName(); + if ((!method.getParameterList().isEmpty() || methodName.contains("(") || methodName.contains(")")) && MetaAnnotationUtil.isMetaAnnotated(method, JUnitUtil.TEST5_ANNOTATIONS)) { + return methodName + "(" + ClassUtil.getVMParametersMethodSignature(method) + ")"; } else { - return method.getName(); + return methodName; } }