Update AbstractDecompiledTextTest
This commit is contained in:
+14
-11
@@ -17,7 +17,6 @@
|
|||||||
package org.jetbrains.jet.plugin.decompiler.textBuilder
|
package org.jetbrains.jet.plugin.decompiler.textBuilder
|
||||||
|
|
||||||
import com.intellij.psi.PsiManager
|
import com.intellij.psi.PsiManager
|
||||||
import com.intellij.psi.impl.compiled.ClsFileImpl
|
|
||||||
import com.intellij.testFramework.LightProjectDescriptor
|
import com.intellij.testFramework.LightProjectDescriptor
|
||||||
import org.jetbrains.jet.plugin.JdkAndMockLibraryProjectDescriptor
|
import org.jetbrains.jet.plugin.JdkAndMockLibraryProjectDescriptor
|
||||||
import org.jetbrains.jet.plugin.PluginTestCaseBase
|
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.PsiRecursiveElementVisitor
|
||||||
import com.intellij.psi.PsiErrorElement
|
import com.intellij.psi.PsiErrorElement
|
||||||
import org.jetbrains.jet.lang.psi.JetPsiUtil
|
import org.jetbrains.jet.lang.psi.JetPsiUtil
|
||||||
|
import com.intellij.psi.PsiFile
|
||||||
|
import org.jetbrains.jet.plugin.decompiler.JetClsFile
|
||||||
|
|
||||||
public abstract class AbstractDecompiledTextTest() : JetLightCodeInsightFixtureTestCase() {
|
public abstract class AbstractDecompiledTextTest() : JetLightCodeInsightFixtureTestCase() {
|
||||||
|
|
||||||
@@ -36,16 +37,10 @@ public abstract class AbstractDecompiledTextTest() : JetLightCodeInsightFixtureT
|
|||||||
|
|
||||||
public fun doTest(path: String) {
|
public fun doTest(path: String) {
|
||||||
val classFile = NavigateToDecompiledLibraryTest.getClassFile("test", getTestName(false), myModule!!)
|
val classFile = NavigateToDecompiledLibraryTest.getClassFile("test", getTestName(false), myModule!!)
|
||||||
val clsFileForClassFile = PsiManager.getInstance(getProject()!!).findFile(classFile)
|
val clsFile = PsiManager.getInstance(getProject()!!).findFile(classFile)
|
||||||
assertTrue("Expecting java class file, was: " + clsFileForClassFile!!.javaClass, clsFileForClassFile is ClsFileImpl)
|
assertTrue("Expecting decompiled kotlin file, was: " + clsFile!!.javaClass, clsFile is JetClsFile)
|
||||||
val decompiledPsiFile = (clsFileForClassFile as ClsFileImpl).getDecompiledPsiFile()
|
assertSameLinesWithFile(path.substring(0, path.length - 1) + ".expected.kt", clsFile.getText())
|
||||||
assertNotNull(decompiledPsiFile)
|
checkThatFileWasParsedCorrectly(clsFile)
|
||||||
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)}")
|
|
||||||
}
|
|
||||||
})
|
|
||||||
}
|
}
|
||||||
|
|
||||||
override fun getProjectDescriptor(): LightProjectDescriptor {
|
override fun getProjectDescriptor(): LightProjectDescriptor {
|
||||||
@@ -54,4 +49,12 @@ public abstract class AbstractDecompiledTextTest() : JetLightCodeInsightFixtureT
|
|||||||
}
|
}
|
||||||
return JdkAndMockLibraryProjectDescriptor(TEST_DATA_PATH + "/" + getTestName(false), false)
|
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