Script tests: check that script is highlighted

This commit is contained in:
Natalia Selezneva
2018-12-14 16:22:50 +03:00
parent d389c9fd85
commit 6eff314b9d
4 changed files with 12 additions and 2 deletions
@@ -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()
@@ -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))
}
}
@@ -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))
}
}
@@ -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 {