Update AbstractDecompiledTextTest

This commit is contained in:
Pavel V. Talanov
2014-12-02 14:43:08 +03:00
parent 6cf14f5500
commit 79ce7135a4
@@ -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)}")
}
})
}
}