Add kotlin stdlib to psi tests

This commit is contained in:
Vitaliy.Bibaev
2017-10-27 13:41:40 +03:00
committed by Yan Zhulanow
parent 5502d62471
commit dd05a9b11b
2 changed files with 14 additions and 2 deletions
@@ -4,14 +4,18 @@ package com.intellij.debugger.streams.kotlin
import com.intellij.debugger.streams.test.StreamChainBuilderTestCase
import com.intellij.debugger.streams.wrapper.StreamChain
import com.intellij.debugger.streams.wrapper.StreamChainBuilder
import com.intellij.openapi.application.ApplicationManager
import com.intellij.openapi.project.Project
import com.intellij.openapi.projectRoots.Sdk
import com.intellij.openapi.roots.impl.libraries.ProjectLibraryTable
import com.intellij.openapi.vfs.VirtualFile
import com.intellij.openapi.vfs.newvfs.impl.VfsRootAccess
import com.intellij.psi.PsiManager
import com.intellij.psi.impl.PsiManagerEx
import com.intellij.psi.impl.file.impl.FileManagerImpl
import com.intellij.psi.impl.source.PsiFileImpl
import com.intellij.testFramework.LightPlatformTestCase
import com.intellij.testFramework.PsiTestUtil
import junit.framework.TestCase
import org.jetbrains.kotlin.idea.caches.resolve.LibraryModificationTracker
import org.jetbrains.kotlin.idea.decompiler.KotlinDecompiledFileViewProvider
@@ -27,8 +31,8 @@ abstract class KotlinPsiChainBuilderTestCase(private val relativePath: String) :
override fun getTestDataPath(): String = Paths.get(File("").absolutePath, "/testData/psi/$relativeTestPath/").toString()
override fun getFileExtension(): String = ".kt"
abstract val kotlinChainBuilder: StreamChainBuilder
override final fun getChainBuilder(): StreamChainBuilder = kotlinChainBuilder
private val stdLibName = "kotlin-stdlib"
protected abstract fun doTest()
@@ -40,9 +44,17 @@ abstract class KotlinPsiChainBuilderTestCase(private val relativePath: String) :
override fun setUp() {
super.setUp()
ApplicationManager.getApplication().runWriteAction {
if (ProjectLibraryTable.getInstance(LightPlatformTestCase.getProject()).getLibraryByName(stdLibName) == null) {
VfsRootAccess.allowRootAccess(LibraryUtil.LIBRARIES_DIRECTORY)
PsiTestUtil.addLibrary(testRootDisposable, LightPlatformTestCase.getModule(), stdLibName,
LibraryUtil.LIBRARIES_DIRECTORY, LibraryUtil.KOTLIN_STD_LIBRARY_JAR_NAME)
}
}
LibraryModificationTracker.getInstance(LightPlatformTestCase.getProject()).incModificationCount()
}
override fun getProjectJDK(): Sdk {
return JdkManager.mockJdk18
}
@@ -9,5 +9,5 @@ import java.io.File
object LibraryUtil {
val LIBRARIES_DIRECTORY: String = File("lib").absolutePath
val KOTLIN_STD_LIBRARY = "kotlin-stdlib.jar"
val KOTLIN_STD_LIBRARY_JAR_NAME = "kotlin-stdlib.jar"
}