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.test.StreamChainBuilderTestCase
import com.intellij.debugger.streams.wrapper.StreamChain import com.intellij.debugger.streams.wrapper.StreamChain
import com.intellij.debugger.streams.wrapper.StreamChainBuilder import com.intellij.debugger.streams.wrapper.StreamChainBuilder
import com.intellij.openapi.application.ApplicationManager
import com.intellij.openapi.project.Project import com.intellij.openapi.project.Project
import com.intellij.openapi.projectRoots.Sdk 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.VirtualFile
import com.intellij.openapi.vfs.newvfs.impl.VfsRootAccess
import com.intellij.psi.PsiManager import com.intellij.psi.PsiManager
import com.intellij.psi.impl.PsiManagerEx import com.intellij.psi.impl.PsiManagerEx
import com.intellij.psi.impl.file.impl.FileManagerImpl import com.intellij.psi.impl.file.impl.FileManagerImpl
import com.intellij.psi.impl.source.PsiFileImpl import com.intellij.psi.impl.source.PsiFileImpl
import com.intellij.testFramework.LightPlatformTestCase import com.intellij.testFramework.LightPlatformTestCase
import com.intellij.testFramework.PsiTestUtil
import junit.framework.TestCase import junit.framework.TestCase
import org.jetbrains.kotlin.idea.caches.resolve.LibraryModificationTracker import org.jetbrains.kotlin.idea.caches.resolve.LibraryModificationTracker
import org.jetbrains.kotlin.idea.decompiler.KotlinDecompiledFileViewProvider 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 getTestDataPath(): String = Paths.get(File("").absolutePath, "/testData/psi/$relativeTestPath/").toString()
override fun getFileExtension(): String = ".kt" override fun getFileExtension(): String = ".kt"
abstract val kotlinChainBuilder: StreamChainBuilder abstract val kotlinChainBuilder: StreamChainBuilder
override final fun getChainBuilder(): StreamChainBuilder = kotlinChainBuilder override final fun getChainBuilder(): StreamChainBuilder = kotlinChainBuilder
private val stdLibName = "kotlin-stdlib"
protected abstract fun doTest() protected abstract fun doTest()
@@ -40,9 +44,17 @@ abstract class KotlinPsiChainBuilderTestCase(private val relativePath: String) :
override fun setUp() { override fun setUp() {
super.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() LibraryModificationTracker.getInstance(LightPlatformTestCase.getProject()).incModificationCount()
} }
override fun getProjectJDK(): Sdk { override fun getProjectJDK(): Sdk {
return JdkManager.mockJdk18 return JdkManager.mockJdk18
} }
@@ -9,5 +9,5 @@ import java.io.File
object LibraryUtil { object LibraryUtil {
val LIBRARIES_DIRECTORY: String = File("lib").absolutePath val LIBRARIES_DIRECTORY: String = File("lib").absolutePath
val KOTLIN_STD_LIBRARY = "kotlin-stdlib.jar" val KOTLIN_STD_LIBRARY_JAR_NAME = "kotlin-stdlib.jar"
} }