From 6eff314b9dd8a6600d90505be30bfe61df851e0c Mon Sep 17 00:00:00 2001 From: Natalia Selezneva Date: Fri, 14 Dec 2018 16:22:50 +0300 Subject: [PATCH] Script tests: check that script is highlighted --- .../navigation/customBaseClass/template/template.kt | 2 ++ .../script/definition/order/reorder/template/template.kt | 2 +- .../definition/order/switchOff/template/template.kt | 2 +- .../kotlin/idea/script/AbstractScriptConfigurationTest.kt | 8 ++++++++ 4 files changed, 12 insertions(+), 2 deletions(-) diff --git a/idea/testData/script/definition/navigation/customBaseClass/template/template.kt b/idea/testData/script/definition/navigation/customBaseClass/template/template.kt index 86dc9f8e978..17aa2b32064 100644 --- a/idea/testData/script/definition/navigation/customBaseClass/template/template.kt +++ b/idea/testData/script/definition/navigation/customBaseClass/template/template.kt @@ -5,6 +5,7 @@ import kotlin.script.templates.* import java.io.File import java.util.concurrent.CompletableFuture import java.util.concurrent.Future +import kotlin.script.experimental.location.* class TestDependenciesResolver : ScriptDependenciesResolver { override fun resolve( @@ -20,6 +21,7 @@ class TestDependenciesResolver : ScriptDependenciesResolver { } } +@ScriptExpectedLocations([ScriptExpectedLocation.Everywhere]) @ScriptTemplateDefinition(TestDependenciesResolver::class, scriptFilePattern = "script.kts") class Template: Base() diff --git a/idea/testData/script/definition/order/reorder/template/template.kt b/idea/testData/script/definition/order/reorder/template/template.kt index 8627d6fec60..dc86bc97fa5 100644 --- a/idea/testData/script/definition/order/reorder/template/template.kt +++ b/idea/testData/script/definition/order/reorder/template/template.kt @@ -19,7 +19,7 @@ class ErrorDependenciesResolver : DependenciesResolver { scriptContents: ScriptContents, environment: Environment ): DependenciesResolver.ResolveResult { - return DependenciesResolver.ResolveResult.Failure(ScriptReport("Error")) + return DependenciesResolver.ResolveResult.Failure(ScriptReport("Error", severity = ScriptReport.Severity.FATAL)) } } diff --git a/idea/testData/script/definition/order/switchOff/template/template.kt b/idea/testData/script/definition/order/switchOff/template/template.kt index 8627d6fec60..dc86bc97fa5 100644 --- a/idea/testData/script/definition/order/switchOff/template/template.kt +++ b/idea/testData/script/definition/order/switchOff/template/template.kt @@ -19,7 +19,7 @@ class ErrorDependenciesResolver : DependenciesResolver { scriptContents: ScriptContents, environment: Environment ): DependenciesResolver.ResolveResult { - return DependenciesResolver.ResolveResult.Failure(ScriptReport("Error")) + return DependenciesResolver.ResolveResult.Failure(ScriptReport("Error", severity = ScriptReport.Severity.FATAL)) } } diff --git a/idea/tests/org/jetbrains/kotlin/idea/script/AbstractScriptConfigurationTest.kt b/idea/tests/org/jetbrains/kotlin/idea/script/AbstractScriptConfigurationTest.kt index a8120affc3e..9c6440a2250 100644 --- a/idea/tests/org/jetbrains/kotlin/idea/script/AbstractScriptConfigurationTest.kt +++ b/idea/tests/org/jetbrains/kotlin/idea/script/AbstractScriptConfigurationTest.kt @@ -34,11 +34,13 @@ import com.intellij.testFramework.exceptionCases.AbstractExceptionCase import com.intellij.util.ui.UIUtil import org.jetbrains.kotlin.codegen.forTestCompile.ForTestCompileRuntime 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.ScriptDefinitionsManager 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.settings.KotlinScriptingSettings +import org.jetbrains.kotlin.idea.highlighter.KotlinHighlightingUtil import org.jetbrains.kotlin.idea.navigation.GotoCheck import org.jetbrains.kotlin.idea.util.application.runWriteAction import org.jetbrains.kotlin.test.InTextDirectivesUtils @@ -56,6 +58,7 @@ import org.junit.ComparisonFailure import java.io.File import java.util.regex.Pattern import kotlin.script.dependencies.Environment +import kotlin.script.experimental.dependencies.ScriptReport abstract class AbstractScriptConfigurationHighlightingTest : AbstractScriptConfigurationTest() { @@ -326,6 +329,11 @@ abstract class AbstractScriptConfigurationTest : KotlinCompletionTestCase() { VfsUtil.markDirtyAndRefresh(false, true, true, project.baseDir) // This is needed because updateScriptDependencies invalidates psiFile that was stored in myFile field 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 {