diff --git a/java/execution/impl/src/com/intellij/testIntegration/RecentTestsData.java b/java/execution/impl/src/com/intellij/testIntegration/RecentTestsData.java index 191a7644eb8e..107bc1453a1a 100644 --- a/java/execution/impl/src/com/intellij/testIntegration/RecentTestsData.java +++ b/java/execution/impl/src/com/intellij/testIntegration/RecentTestsData.java @@ -61,6 +61,10 @@ public class RecentTestsData { } public void addTest(String url, TestStateInfo.Magnitude magnitude, Date runDate) { + if (myRunner.getLocation(url) == null) { + return; + } + if (myRunner.isSuite(url)) { mySuites.put(url, new SuiteInfo(url, magnitude, runDate)); return; diff --git a/java/java-tests/testSrc/com/intellij/testIntergration/RecentTestsTest.kt b/java/java-tests/testSrc/com/intellij/testIntergration/RecentTestsTest.kt index aea796c9460e..ab1a44627d91 100644 --- a/java/java-tests/testSrc/com/intellij/testIntergration/RecentTestsTest.kt +++ b/java/java-tests/testSrc/com/intellij/testIntergration/RecentTestsTest.kt @@ -15,6 +15,7 @@ */ package com.intellij.testIntergration +import com.intellij.execution.Location import com.intellij.execution.TestStateStorage import com.intellij.execution.testframework.JavaTestLocator import com.intellij.execution.testframework.sm.runner.states.TestStateInfo @@ -135,6 +136,24 @@ class RecentTestsStepTest { assertThat(step.values).isEqualTo(expected) } + + @Test + fun `do not show urls without location`() { + val storage = TestStorage() + + storage.addSuite("ASTest", true) + storage.addSuite("BSTest", false) + storage.addTest("BSTest.fff", false) + storage.addTest("BSTest.ppp", true) + + storage.addTest("", false) + storage.addSuite("", false) + + val step = SelectTestStep(storage.getMap(), runner) + val values = step.values.map { VirtualFileManager.extractPath(it) } + + assertThat(values).isEqualTo(listOf("BSTest", "BSTest.fff", "ASTest")) + } private fun createRunner(): RecentTestRunner { val runner = mock(RecentTestRunner::class.java) @@ -143,6 +162,10 @@ class RecentTestsStepTest { val protocol = VirtualFileManager.extractProtocol(url) JavaTestLocator.SUITE_PROTOCOL.startsWith(protocol.toString()) } + `when`(runner.getLocation(Matchers.anyString())).thenAnswer { + val url = it.arguments[0] as String + if (url.contains("<")) null else mock(Location::class.java) + } return runner }