Update AbstractDecompiledTextTest
This commit is contained in:
+14
-11
@@ -17,7 +17,6 @@
|
||||
package org.jetbrains.jet.plugin.decompiler.textBuilder
|
||||
|
||||
import com.intellij.psi.PsiManager
|
||||
import com.intellij.psi.impl.compiled.ClsFileImpl
|
||||
import com.intellij.testFramework.LightProjectDescriptor
|
||||
import org.jetbrains.jet.plugin.JdkAndMockLibraryProjectDescriptor
|
||||
import org.jetbrains.jet.plugin.PluginTestCaseBase
|
||||
@@ -29,6 +28,8 @@ import org.jetbrains.jet.plugin.decompiler.navigation.NavigateToDecompiledLibrar
|
||||
import com.intellij.psi.PsiRecursiveElementVisitor
|
||||
import com.intellij.psi.PsiErrorElement
|
||||
import org.jetbrains.jet.lang.psi.JetPsiUtil
|
||||
import com.intellij.psi.PsiFile
|
||||
import org.jetbrains.jet.plugin.decompiler.JetClsFile
|
||||
|
||||
public abstract class AbstractDecompiledTextTest() : JetLightCodeInsightFixtureTestCase() {
|
||||
|
||||
@@ -36,16 +37,10 @@ public abstract class AbstractDecompiledTextTest() : JetLightCodeInsightFixtureT
|
||||
|
||||
public fun doTest(path: String) {
|
||||
val classFile = NavigateToDecompiledLibraryTest.getClassFile("test", getTestName(false), myModule!!)
|
||||
val clsFileForClassFile = PsiManager.getInstance(getProject()!!).findFile(classFile)
|
||||
assertTrue("Expecting java class file, was: " + clsFileForClassFile!!.javaClass, clsFileForClassFile is ClsFileImpl)
|
||||
val decompiledPsiFile = (clsFileForClassFile as ClsFileImpl).getDecompiledPsiFile()
|
||||
assertNotNull(decompiledPsiFile)
|
||||
assertSameLinesWithFile(path.substring(0, path.length - 1) + ".expected.kt", decompiledPsiFile!!.getText())
|
||||
decompiledPsiFile.accept(object : PsiRecursiveElementVisitor() {
|
||||
override fun visitErrorElement(element: PsiErrorElement) {
|
||||
fail("Decompiled file should not contain error elements!\n${JetPsiUtil.getElementTextWithContext(element)}")
|
||||
}
|
||||
})
|
||||
val clsFile = PsiManager.getInstance(getProject()!!).findFile(classFile)
|
||||
assertTrue("Expecting decompiled kotlin file, was: " + clsFile!!.javaClass, clsFile is JetClsFile)
|
||||
assertSameLinesWithFile(path.substring(0, path.length - 1) + ".expected.kt", clsFile.getText())
|
||||
checkThatFileWasParsedCorrectly(clsFile)
|
||||
}
|
||||
|
||||
override fun getProjectDescriptor(): LightProjectDescriptor {
|
||||
@@ -54,4 +49,12 @@ public abstract class AbstractDecompiledTextTest() : JetLightCodeInsightFixtureT
|
||||
}
|
||||
return JdkAndMockLibraryProjectDescriptor(TEST_DATA_PATH + "/" + getTestName(false), false)
|
||||
}
|
||||
|
||||
private fun checkThatFileWasParsedCorrectly(clsFile: PsiFile) {
|
||||
clsFile.accept(object : PsiRecursiveElementVisitor() {
|
||||
override fun visitErrorElement(element: PsiErrorElement) {
|
||||
fail("Decompiled file should not contain error elements!\n${JetPsiUtil.getElementTextWithContext(element)}")
|
||||
}
|
||||
})
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user