Enable injection in injection tests

This commit is contained in:
Nikolay Krasko
2016-04-25 17:55:10 +03:00
parent 64c46a33c4
commit 2b51b526ba
2 changed files with 8 additions and 6 deletions
@@ -20,6 +20,7 @@ import com.intellij.injected.editor.EditorWindow
import com.intellij.psi.injection.Injectable import com.intellij.psi.injection.Injectable
import com.intellij.testFramework.LightProjectDescriptor import com.intellij.testFramework.LightProjectDescriptor
import junit.framework.TestCase import junit.framework.TestCase
import org.intellij.lang.annotations.Language
import org.intellij.plugins.intelliLang.Configuration import org.intellij.plugins.intelliLang.Configuration
import org.intellij.plugins.intelliLang.inject.InjectLanguageAction import org.intellij.plugins.intelliLang.inject.InjectLanguageAction
import org.intellij.plugins.intelliLang.inject.UnInjectLanguageAction import org.intellij.plugins.intelliLang.inject.UnInjectLanguageAction
@@ -39,7 +40,7 @@ abstract class AbstractInjectionTest : KotlinLightCodeInsightFixtureTestCase() {
} }
} }
protected fun doInjectionPresentTest(text: String, languageId: String? = null, unInjectShouldBePresent: Boolean = true) { protected fun doInjectionPresentTest(@Language("kotlin") text: String, languageId: String? = null, unInjectShouldBePresent: Boolean = true) {
myFixture.configureByText("${getTestName(true)}.kt", text.trimIndent()) myFixture.configureByText("${getTestName(true)}.kt", text.trimIndent())
assertInjectionPresent(languageId, unInjectShouldBePresent) assertInjectionPresent(languageId, unInjectShouldBePresent)
} }
@@ -60,14 +61,14 @@ abstract class AbstractInjectionTest : KotlinLightCodeInsightFixtureTestCase() {
} }
} }
protected fun assertNoInjection(text: String) { protected fun assertNoInjection(@Language("kotlin") text: String) {
myFixture.configureByText("${getTestName(true)}.kt", text.trimIndent()) myFixture.configureByText("${getTestName(true)}.kt", text.trimIndent())
TestCase.assertTrue("Injection action is not available. There's probably some injection but nothing was expected.", TestCase.assertTrue("Injection action is not available. There's probably some injection but nothing was expected.",
InjectLanguageAction().isAvailable(project, myFixture.editor, myFixture.file)) InjectLanguageAction().isAvailable(project, myFixture.editor, myFixture.file))
} }
protected fun doRemoveInjectionTest(before: String, after: String) { protected fun doRemoveInjectionTest(@Language("kotlin") before: String, @Language("kotlin") after: String) {
myFixture.setCaresAboutInjection(false) myFixture.setCaresAboutInjection(false)
myFixture.configureByText("${getTestName(true)}.kt", before.trimIndent()) myFixture.configureByText("${getTestName(true)}.kt", before.trimIndent())
@@ -78,11 +79,11 @@ abstract class AbstractInjectionTest : KotlinLightCodeInsightFixtureTestCase() {
myFixture.checkResult(after.trimIndent()) myFixture.checkResult(after.trimIndent())
} }
protected fun doFileReferenceInjectTest(before: String, after: String) { protected fun doFileReferenceInjectTest(@Language("kotlin") before: String, @Language("kotlin") after: String) {
doTest(FileReferenceInjector(), before, after) doTest(FileReferenceInjector(), before, after)
} }
protected fun doTest(injectable: Injectable, before: String, after: String) { protected fun doTest(injectable: Injectable, @Language("kotlin") before: String, @Language("kotlin") after: String) {
val configuration = Configuration.getProjectInstance(project).advancedConfiguration val configuration = Configuration.getProjectInstance(project).advancedConfiguration
val allowed = configuration.isSourceModificationAllowed val allowed = configuration.isSourceModificationAllowed
@@ -16,6 +16,7 @@
package org.jetbrains.kotlin.psi package org.jetbrains.kotlin.psi
import org.intellij.lang.annotations.Language
import org.intellij.lang.regexp.RegExpLanguage import org.intellij.lang.regexp.RegExpLanguage
import org.jetbrains.kotlin.idea.test.KotlinWithJdkAndRuntimeLightProjectDescriptor import org.jetbrains.kotlin.idea.test.KotlinWithJdkAndRuntimeLightProjectDescriptor
@@ -62,7 +63,7 @@ class KotlinStdlibInjectionTest : AbstractInjectionTest() {
RegExpLanguage.INSTANCE.id RegExpLanguage.INSTANCE.id
) )
private fun assertInjectionPresent(text: String, languageId: String) { private fun assertInjectionPresent(@Language("kotlin") text: String, languageId: String) {
doInjectionPresentTest(text, languageId = languageId, unInjectShouldBePresent = false) doInjectionPresentTest(text, languageId = languageId, unInjectShouldBePresent = false)
} }