[test] Fix testOnRunPossibility
This commit is contained in:
committed by
Pavel V. Talanov
parent
3152792860
commit
740f311af6
@@ -44,11 +44,11 @@ public class KotlinConsoleKeeper(val project: Project) {
|
||||
fun putVirtualFileToConsole(virtualFile: VirtualFile, console: KotlinConsoleRunner) = consoleMap.put(virtualFile, console)
|
||||
fun removeConsole(virtualFile: VirtualFile) = consoleMap.remove(virtualFile)
|
||||
|
||||
fun run(module: Module): KotlinConsoleRunner? {
|
||||
fun run(module: Module, testMode: Boolean = false): KotlinConsoleRunner? {
|
||||
val path = module.moduleFilePath
|
||||
val cmdLine = createCommandLine(module) ?: return errorNotification(project, "Module SDK not found") let { null }
|
||||
|
||||
val consoleRunner = KotlinConsoleRunner(cmdLine, module, project, REPL_TITLE, path)
|
||||
val consoleRunner = KotlinConsoleRunner(cmdLine, module, testMode, project, REPL_TITLE, path)
|
||||
consoleRunner.initAndRun()
|
||||
consoleRunner.setupGutters()
|
||||
|
||||
|
||||
@@ -29,6 +29,7 @@ import com.intellij.openapi.editor.ex.EditorEx
|
||||
import com.intellij.openapi.editor.markup.*
|
||||
import com.intellij.openapi.module.Module
|
||||
import com.intellij.openapi.project.Project
|
||||
import com.intellij.openapi.util.Disposer
|
||||
import com.intellij.psi.PsiManager
|
||||
import com.intellij.util.Consumer
|
||||
import org.jetbrains.kotlin.console.actions.BuildAndRestartConsoleAction
|
||||
@@ -46,10 +47,12 @@ import java.awt.Color
|
||||
import java.awt.Font
|
||||
import java.util.concurrent.ConcurrentHashMap
|
||||
import javax.swing.Icon
|
||||
import kotlin.properties.Delegates
|
||||
|
||||
public class KotlinConsoleRunner(
|
||||
private val cmdLine: GeneralCommandLine,
|
||||
private val module: Module,
|
||||
private val testMode: Boolean,
|
||||
myProject: Project,
|
||||
title: String,
|
||||
path: String?
|
||||
@@ -58,6 +61,8 @@ public class KotlinConsoleRunner(
|
||||
private val historyManager = KotlinConsoleHistoryManager(this)
|
||||
val executor = KotlinConsoleExecutor(this, historyManager)
|
||||
|
||||
private var disposableDescriptor: RunContentDescriptor by Delegates.notNull()
|
||||
|
||||
override fun createProcess() = cmdLine.createProcess()
|
||||
|
||||
override fun createConsoleView(): LanguageConsoleView? {
|
||||
@@ -102,8 +107,10 @@ public class KotlinConsoleRunner(
|
||||
defaultExecutor: Executor,
|
||||
contentDescriptor: RunContentDescriptor
|
||||
): List<AnAction> {
|
||||
disposableDescriptor = contentDescriptor
|
||||
|
||||
val actionList = arrayListOf<AnAction>(
|
||||
BuildAndRestartConsoleAction(project, module, defaultExecutor, contentDescriptor, restarter),
|
||||
BuildAndRestartConsoleAction(project, module, defaultExecutor, contentDescriptor, restarter, testMode),
|
||||
createConsoleExecAction(consoleExecuteActionHandler),
|
||||
createCloseAction(defaultExecutor, contentDescriptor)
|
||||
)
|
||||
@@ -177,4 +184,10 @@ public class KotlinConsoleRunner(
|
||||
val oldHighlighter = editorToIndicator[editor] ?: return
|
||||
WriteCommandAction.runWriteCommandAction(project) { oldHighlighter.gutterIconRenderer = KotlinConsoleIndicatorRenderer(newIcon) }
|
||||
}
|
||||
|
||||
// this method shouldn't be called in normal usage; it is for test purpose only
|
||||
fun dispose() {
|
||||
processHandler.destroyProcess()
|
||||
Disposer.dispose(disposableDescriptor)
|
||||
}
|
||||
}
|
||||
+3
-2
@@ -41,11 +41,12 @@ public class BuildAndRestartConsoleAction(
|
||||
private val module: Module,
|
||||
private val executor: Executor,
|
||||
private val contentDescriptor: RunContentDescriptor,
|
||||
private val restarter: Consumer<Module>
|
||||
private val restarter: Consumer<Module>,
|
||||
private val testMode: Boolean
|
||||
) : AnAction("Build and restart", buildAndRestartMessage(module), AllIcons.Actions.Restart) {
|
||||
|
||||
init {
|
||||
showOutdatedClassedNotificationIfNeeded()
|
||||
if (!testMode) showOutdatedClassedNotificationIfNeeded()
|
||||
}
|
||||
|
||||
override fun actionPerformed(_: AnActionEvent) = compileModule()
|
||||
|
||||
Reference in New Issue
Block a user