Add test for inserting imports in JetCodeFragment after completion

This commit is contained in:
Natalia Ukhorskaya
2015-03-05 16:09:03 +03:00
parent f49e4ca3e9
commit c4f7bf6815
7 changed files with 34 additions and 1 deletions
@@ -0,0 +1,6 @@
fun main(args: Array<String>) {
<caret>val a = 1
}
// ELEMENT: ArrayList
// TAIL_TEXT: <E> (java.util)
@@ -0,0 +1 @@
ArrayList
@@ -0,0 +1 @@
import java.util.ArrayList
@@ -0,0 +1 @@
ArrayLis<caret>
@@ -30,7 +30,7 @@ public abstract class AbstractCompletionHandlerTest(private val defaultCompletio
private val COMPLETION_CHAR_PREFIX = "CHAR:"
private val COMPLETION_TYPE_PREFIX = "COMPLETION_TYPE:"
protected fun doTest(testPath: String) {
protected open fun doTest(testPath: String) {
setUpFixture(testPath)
val fileText = FileUtil.loadFile(File(testPath))
@@ -34,6 +34,7 @@ import org.jetbrains.kotlin.completion.ExpectedCompletionUtils
import org.jetbrains.kotlin.psi.JetElement
import org.jetbrains.kotlin.completion.handlers.AbstractCompletionHandlerTest
import com.intellij.codeInsight.completion.CompletionType
import com.intellij.openapi.util.text.StringUtil
import org.jetbrains.kotlin.resolve.JetModuleUtil
import org.jetbrains.kotlin.resolve.QualifiedExpressionResolver
import org.jetbrains.kotlin.resolve.BindingTraceContext
@@ -42,6 +43,8 @@ import org.jetbrains.kotlin.idea.caches.resolve.*
import com.intellij.psi.*
import com.intellij.psi.util.PsiModificationTracker
import com.intellij.psi.impl.PsiModificationTrackerImpl
import org.jetbrains.kotlin.test.JetTestUtils
import kotlin.test.fail
public abstract class AbstractCodeFragmentHighlightingTest : AbstractJetPsiCheckerTest() {
override fun doTest(filePath: String) {
@@ -82,6 +85,21 @@ public abstract class AbstractCodeFragmentCompletionHandlerTest : AbstractComple
override fun setUpFixture(testPath: String) {
myFixture.configureByCodeFragment(testPath)
}
override fun doTest(testPath: String) {
super.doTest(testPath)
val fragment = myFixture.getFile() as JetCodeFragment
val importList = fragment.getImportList()
val fragmentAfterFile = File(testPath + ".after.imports")
if (importList != null && fragmentAfterFile.exists()) {
JetTestUtils.assertEqualsToFile(fragmentAfterFile, StringUtil.convertLineSeparators(importList.getText()))
}
else if (fragmentAfterFile.exists()) {
fail("ImportList is empty")
}
}
}
private fun JavaCodeInsightTestFixture.configureByCodeFragment(filePath: String) {
@@ -53,4 +53,10 @@ public class CodeFragmentCompletionHandlerTestGenerated extends AbstractCodeFrag
String fileName = JetTestUtils.navigationMetadata("idea/testData/completion/handlers/runtimeCast/InsertFunction.kt");
doTest(fileName);
}
@TestMetadata("InsertImport.kt")
public void testInsertImport() throws Exception {
String fileName = JetTestUtils.navigationMetadata("idea/testData/completion/handlers/runtimeCast/InsertImport.kt");
doTest(fileName);
}
}