[test] Fix testOnRunPossibility

This commit is contained in:
Dmitry Kovanikov
2015-08-24 12:49:08 +03:00
committed by Pavel V. Talanov
parent 3152792860
commit 740f311af6
4 changed files with 27 additions and 35 deletions
@@ -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)
}
}
@@ -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()