Script tests: check that script is highlighted
This commit is contained in:
+2
@@ -5,6 +5,7 @@ import kotlin.script.templates.*
|
|||||||
import java.io.File
|
import java.io.File
|
||||||
import java.util.concurrent.CompletableFuture
|
import java.util.concurrent.CompletableFuture
|
||||||
import java.util.concurrent.Future
|
import java.util.concurrent.Future
|
||||||
|
import kotlin.script.experimental.location.*
|
||||||
|
|
||||||
class TestDependenciesResolver : ScriptDependenciesResolver {
|
class TestDependenciesResolver : ScriptDependenciesResolver {
|
||||||
override fun resolve(
|
override fun resolve(
|
||||||
@@ -20,6 +21,7 @@ class TestDependenciesResolver : ScriptDependenciesResolver {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ScriptExpectedLocations([ScriptExpectedLocation.Everywhere])
|
||||||
@ScriptTemplateDefinition(TestDependenciesResolver::class, scriptFilePattern = "script.kts")
|
@ScriptTemplateDefinition(TestDependenciesResolver::class, scriptFilePattern = "script.kts")
|
||||||
class Template: Base()
|
class Template: Base()
|
||||||
|
|
||||||
|
|||||||
@@ -19,7 +19,7 @@ class ErrorDependenciesResolver : DependenciesResolver {
|
|||||||
scriptContents: ScriptContents,
|
scriptContents: ScriptContents,
|
||||||
environment: Environment
|
environment: Environment
|
||||||
): DependenciesResolver.ResolveResult {
|
): DependenciesResolver.ResolveResult {
|
||||||
return DependenciesResolver.ResolveResult.Failure(ScriptReport("Error"))
|
return DependenciesResolver.ResolveResult.Failure(ScriptReport("Error", severity = ScriptReport.Severity.FATAL))
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -19,7 +19,7 @@ class ErrorDependenciesResolver : DependenciesResolver {
|
|||||||
scriptContents: ScriptContents,
|
scriptContents: ScriptContents,
|
||||||
environment: Environment
|
environment: Environment
|
||||||
): DependenciesResolver.ResolveResult {
|
): DependenciesResolver.ResolveResult {
|
||||||
return DependenciesResolver.ResolveResult.Failure(ScriptReport("Error"))
|
return DependenciesResolver.ResolveResult.Failure(ScriptReport("Error", severity = ScriptReport.Severity.FATAL))
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -34,11 +34,13 @@ import com.intellij.testFramework.exceptionCases.AbstractExceptionCase
|
|||||||
import com.intellij.util.ui.UIUtil
|
import com.intellij.util.ui.UIUtil
|
||||||
import org.jetbrains.kotlin.codegen.forTestCompile.ForTestCompileRuntime
|
import org.jetbrains.kotlin.codegen.forTestCompile.ForTestCompileRuntime
|
||||||
import org.jetbrains.kotlin.idea.completion.test.KotlinCompletionTestCase
|
import org.jetbrains.kotlin.idea.completion.test.KotlinCompletionTestCase
|
||||||
|
import org.jetbrains.kotlin.idea.core.script.IdeScriptReportSink
|
||||||
import org.jetbrains.kotlin.idea.core.script.ScriptDefinitionContributor
|
import org.jetbrains.kotlin.idea.core.script.ScriptDefinitionContributor
|
||||||
import org.jetbrains.kotlin.idea.core.script.ScriptDefinitionsManager
|
import org.jetbrains.kotlin.idea.core.script.ScriptDefinitionsManager
|
||||||
import org.jetbrains.kotlin.idea.core.script.ScriptDependenciesManager.Companion.updateScriptDependenciesSynchronously
|
import org.jetbrains.kotlin.idea.core.script.ScriptDependenciesManager.Companion.updateScriptDependenciesSynchronously
|
||||||
import org.jetbrains.kotlin.idea.core.script.isScriptDependenciesUpdaterDisabled
|
import org.jetbrains.kotlin.idea.core.script.isScriptDependenciesUpdaterDisabled
|
||||||
import org.jetbrains.kotlin.idea.core.script.settings.KotlinScriptingSettings
|
import org.jetbrains.kotlin.idea.core.script.settings.KotlinScriptingSettings
|
||||||
|
import org.jetbrains.kotlin.idea.highlighter.KotlinHighlightingUtil
|
||||||
import org.jetbrains.kotlin.idea.navigation.GotoCheck
|
import org.jetbrains.kotlin.idea.navigation.GotoCheck
|
||||||
import org.jetbrains.kotlin.idea.util.application.runWriteAction
|
import org.jetbrains.kotlin.idea.util.application.runWriteAction
|
||||||
import org.jetbrains.kotlin.test.InTextDirectivesUtils
|
import org.jetbrains.kotlin.test.InTextDirectivesUtils
|
||||||
@@ -56,6 +58,7 @@ import org.junit.ComparisonFailure
|
|||||||
import java.io.File
|
import java.io.File
|
||||||
import java.util.regex.Pattern
|
import java.util.regex.Pattern
|
||||||
import kotlin.script.dependencies.Environment
|
import kotlin.script.dependencies.Environment
|
||||||
|
import kotlin.script.experimental.dependencies.ScriptReport
|
||||||
|
|
||||||
|
|
||||||
abstract class AbstractScriptConfigurationHighlightingTest : AbstractScriptConfigurationTest() {
|
abstract class AbstractScriptConfigurationHighlightingTest : AbstractScriptConfigurationTest() {
|
||||||
@@ -326,6 +329,11 @@ abstract class AbstractScriptConfigurationTest : KotlinCompletionTestCase() {
|
|||||||
VfsUtil.markDirtyAndRefresh(false, true, true, project.baseDir)
|
VfsUtil.markDirtyAndRefresh(false, true, true, project.baseDir)
|
||||||
// This is needed because updateScriptDependencies invalidates psiFile that was stored in myFile field
|
// This is needed because updateScriptDependencies invalidates psiFile that was stored in myFile field
|
||||||
myFile = psiManager.findFile(script)
|
myFile = psiManager.findFile(script)
|
||||||
|
|
||||||
|
val isFatalErrorPresent = myFile.virtualFile.getUserData(IdeScriptReportSink.Reports)?.any { it.severity == ScriptReport.Severity.FATAL } == true
|
||||||
|
assert(isFatalErrorPresent || KotlinHighlightingUtil.shouldHighlight(myFile)) {
|
||||||
|
"Highlighting is switched off for ${myFile.virtualFile.path}"
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
private fun compileLibToDir(srcDir: File, vararg classpath: String): File {
|
private fun compileLibToDir(srcDir: File, vararg classpath: String): File {
|
||||||
|
|||||||
Reference in New Issue
Block a user