mirror of
https://gitflic.ru/project/openide/openide.git
synced 2025-12-15 02:59:33 +07:00
[vue] WEB-73909 Migrate VueCompletionTest to WebFrameworkTestCase - part 2
(cherry picked from commit 41faf3962da97fce4c924abd08774c350d6834b3) IJ-CR-168451 GitOrigin-RevId: 5f8f41cb5bc97d1bca8513be506e8a7beed8eb7a
This commit is contained in:
committed by
intellij-monorepo-bot
parent
e812c7d44b
commit
7f2c122022
@@ -31,6 +31,13 @@ import com.intellij.openapi.util.io.FileUtil
|
||||
import com.intellij.openapi.util.registry.Registry
|
||||
import com.intellij.platform.backend.documentation.impl.computeDocumentationBlocking
|
||||
import com.intellij.platform.testFramework.core.FileComparisonFailedError
|
||||
import com.intellij.polySymbols.PolySymbol
|
||||
import com.intellij.polySymbols.declarations.PolySymbolDeclaration
|
||||
import com.intellij.polySymbols.declarations.PolySymbolDeclarationProvider
|
||||
import com.intellij.polySymbols.impl.canUnwrapSymbols
|
||||
import com.intellij.polySymbols.query.PolySymbolMatch
|
||||
import com.intellij.polySymbols.query.PolySymbolQueryExecutorFactory
|
||||
import com.intellij.polySymbols.search.PsiSourcedPolySymbol
|
||||
import com.intellij.psi.PsiDocumentManager
|
||||
import com.intellij.psi.PsiElement
|
||||
import com.intellij.psi.PsiFile
|
||||
@@ -53,13 +60,6 @@ import com.intellij.usages.Usage
|
||||
import com.intellij.util.ObjectUtils.coalesce
|
||||
import com.intellij.util.concurrency.AppExecutorUtil
|
||||
import com.intellij.util.concurrency.annotations.RequiresEdt
|
||||
import com.intellij.polySymbols.search.PsiSourcedPolySymbol
|
||||
import com.intellij.polySymbols.PolySymbol
|
||||
import com.intellij.polySymbols.declarations.PolySymbolDeclaration
|
||||
import com.intellij.polySymbols.declarations.PolySymbolDeclarationProvider
|
||||
import com.intellij.polySymbols.impl.canUnwrapSymbols
|
||||
import com.intellij.polySymbols.query.PolySymbolMatch
|
||||
import com.intellij.polySymbols.query.PolySymbolQueryExecutorFactory
|
||||
import junit.framework.TestCase.*
|
||||
import org.junit.Assert
|
||||
import java.io.File
|
||||
@@ -104,6 +104,7 @@ fun CodeInsightTestFixture.checkLookupItems(
|
||||
checkDocumentation: Boolean = false,
|
||||
containsCheck: Boolean = false,
|
||||
locations: List<String> = emptyList(),
|
||||
namedLocations: List<Pair<String, String>> = emptyList(),
|
||||
fileName: String = InjectedLanguageManager.getInstance(project).getTopLevelFile(file).virtualFile.nameWithoutExtension,
|
||||
expectedDataLocation: String = "",
|
||||
lookupItemFilter: (item: LookupElementInfo) -> Boolean = { true },
|
||||
@@ -117,9 +118,14 @@ fun CodeInsightTestFixture.checkLookupItems(
|
||||
for (lookupString in lookupsToCheck) {
|
||||
val lookupElement = lookupElements[lookupString]
|
||||
assertNotNull("Missing lookup string: $lookupString", lookupElement)
|
||||
val targets = PlatformTestUtil.callOnBgtSynchronously({ ProgressManager.getInstance().runProcess(Computable { runReadAction {
|
||||
val targets = PlatformTestUtil.callOnBgtSynchronously(
|
||||
{
|
||||
ProgressManager.getInstance().runProcess(Computable {
|
||||
runReadAction {
|
||||
IdeDocumentationTargetProvider.getInstance(project).documentationTargets(editor, file, lookupElement!!)
|
||||
} }, EmptyProgressIndicator()) }, 10)!!
|
||||
}
|
||||
}, EmptyProgressIndicator())
|
||||
}, 10)!!
|
||||
val doc = targets.firstOrNull()?.let { computeDocumentationBlocking(it.createPointer()) }?.html?.trim()
|
||||
|
||||
val sanitizedLookupString = lookupString.replace(Regex("[*\"?<>/\\[\\]:;|,#]"), "_")
|
||||
@@ -128,7 +134,7 @@ fun CodeInsightTestFixture.checkLookupItems(
|
||||
}
|
||||
|
||||
noAutoComplete {
|
||||
if (locations.isEmpty()) {
|
||||
if (locations.isEmpty() && namedLocations.isEmpty()) {
|
||||
completeBasic()
|
||||
checkListByFile(
|
||||
renderLookupItems(renderPriority, renderTypeText, renderTailText, renderProximity, renderDisplayText, renderDisplayEffects,
|
||||
@@ -139,14 +145,17 @@ fun CodeInsightTestFixture.checkLookupItems(
|
||||
checkLookupDocumentation()
|
||||
}
|
||||
else {
|
||||
locations.forEachIndexed { index, location ->
|
||||
locations.withIndex()
|
||||
.map { (index, value) -> (index + 1).toString() to value }
|
||||
.plus(namedLocations)
|
||||
.forEach { (index, location) ->
|
||||
moveToOffsetBySignature(location)
|
||||
completeBasic()
|
||||
try {
|
||||
checkListByFile(
|
||||
renderLookupItems(renderPriority, renderTypeText, renderTailText, renderProximity, renderDisplayText, renderDisplayEffects,
|
||||
lookupItemFilter),
|
||||
expectedDataLocation + (if (hasDir) "/items" else "$fileName.items") + ".${index + 1}.txt",
|
||||
expectedDataLocation + (if (hasDir) "/items" else "$fileName.items") + ".$index.txt",
|
||||
containsCheck
|
||||
)
|
||||
}
|
||||
@@ -155,7 +164,7 @@ fun CodeInsightTestFixture.checkLookupItems(
|
||||
e.expectedStringPresentation, e.actualStringPresentation,
|
||||
e.filePath, e.actualFilePath)
|
||||
}
|
||||
checkLookupDocumentation(".${index + 1}")
|
||||
checkLookupDocumentation(".$index")
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -260,9 +269,14 @@ private fun CodeInsightTestFixture.checkDocumentation(
|
||||
}
|
||||
|
||||
private fun CodeInsightTestFixture.renderDocAtCaret(): String? {
|
||||
val targets = PlatformTestUtil.callOnBgtSynchronously({ ProgressManager.getInstance().runProcess(Computable { runReadAction {
|
||||
val targets = PlatformTestUtil.callOnBgtSynchronously(
|
||||
{
|
||||
ProgressManager.getInstance().runProcess(Computable {
|
||||
runReadAction {
|
||||
IdeDocumentationTargetProvider.getInstance(project).documentationTargets(editor, file, caretOffset)
|
||||
} }, EmptyProgressIndicator()) }, 10)!!
|
||||
}
|
||||
}, EmptyProgressIndicator())
|
||||
}, 10)!!
|
||||
|
||||
return targets.mapNotNull { computeDocumentationBlocking(it.createPointer())?.html }
|
||||
.also { assertTrue("More then one documentation rendered:\n\n${it.joinToString("\n\n")}", it.size <= 1) }
|
||||
|
||||
Reference in New Issue
Block a user