KT-32366: Refactor tests to allow testing of preview window

- add directive `PREVIEW_ENABLED` into scratch file settings
This commit is contained in:
Roman Golyshev
2019-08-19 13:14:33 +03:00
committed by Roman Golyshev
parent dd1ace37d2
commit 358ec2b8bd
5 changed files with 30 additions and 13 deletions
@@ -19,6 +19,7 @@ import com.intellij.util.Alarm
import org.jetbrains.kotlin.idea.scratch.actions.RunScratchAction
import org.jetbrains.kotlin.idea.scratch.actions.RunScratchFromHereAction
import org.jetbrains.kotlin.idea.scratch.actions.ScratchCompilationSupport
import org.jetbrains.kotlin.idea.scratch.ui.findScratchFileEditorWithPreview
class ScratchFileAutoRunner(private val project: Project) : DocumentListener {
companion object {
@@ -72,6 +73,7 @@ class ScratchFileAutoRunner(private val project: Project) : DocumentListener {
}
private fun getScratchFile(file: VirtualFile, project: Project): ScratchFile? {
return getScratchFileFromEditorSelectedForFile(FileEditorManager.getInstance(project), file)
val editor = FileEditorManager.getInstance(project).getSelectedEditor(file) as? TextEditor
return editor?.findScratchFileEditorWithPreview()?.scratchFile
}
}
@@ -13,7 +13,9 @@ import com.intellij.openapi.fileEditor.TextEditor
import com.intellij.openapi.fileEditor.impl.text.TextEditorProvider
import com.intellij.openapi.project.Project
import com.intellij.openapi.vfs.VirtualFile
import org.jetbrains.annotations.TestOnly
import org.jetbrains.kotlin.idea.actions.KOTLIN_WORKSHEET_EXTENSION
import org.jetbrains.kotlin.idea.scratch.ui.KtScratchFileEditorWithPreview
import org.jetbrains.kotlin.idea.scratch.ui.findScratchFileEditorWithPreview
internal val LOG = Logger.getInstance("#org.jetbrains.kotlin.idea.scratch")
@@ -27,9 +29,10 @@ val VirtualFile.isKotlinWorksheet: Boolean
val VirtualFile.isKotlinScratch: Boolean
get() = ScratchFileService.getInstance().getRootType(this) is ScratchRootType
fun getScratchFileFromEditorSelectedForFile(fileManager: FileEditorManager, virtualFile: VirtualFile): ScratchFile? {
@TestOnly
fun getScratchEditorForSelectedFile(fileManager: FileEditorManager, virtualFile: VirtualFile): KtScratchFileEditorWithPreview? {
val editor = fileManager.getSelectedEditor(virtualFile) as? TextEditor ?: return null
return editor.getScratchFile()
return editor.findScratchFileEditorWithPreview()
}
fun getScratchFileFromSelectedEditor(project: Project): ScratchFile? {
@@ -23,6 +23,7 @@ import com.intellij.openapi.util.Key
import com.intellij.openapi.vfs.VirtualFile
import com.intellij.pom.Navigatable
import com.intellij.psi.PsiManager
import org.jetbrains.annotations.TestOnly
import org.jetbrains.kotlin.idea.scratch.*
import org.jetbrains.kotlin.idea.scratch.output.InlayScratchOutputHandler
import org.jetbrains.kotlin.idea.scratch.output.ScratchOutputHandlerAdapter
@@ -93,6 +94,11 @@ class KtScratchFileEditorWithPreview private constructor(
inlayOutputHandler.clear(scratchFile)
}
@TestOnly
fun setPreviewEnabled(isPreviewEnabled: Boolean) {
layout = if (isPreviewEnabled) Layout.SHOW_EDITOR_AND_PREVIEW else Layout.SHOW_EDITOR
}
companion object {
fun create(scratchFile: ScratchFile): KtScratchFileEditorWithPreview {
val textEditorProvider = TextEditorProvider.getInstance()