diff --git a/plugins/junit/resources/fileTemplates/code/JUnit3 TearDown Method.java.ft b/plugins/junit/resources/fileTemplates/code/JUnit3 TearDown Method.java.ft index d9b5079004cd..7d5790903cb6 100644 --- a/plugins/junit/resources/fileTemplates/code/JUnit3 TearDown Method.java.ft +++ b/plugins/junit/resources/fileTemplates/code/JUnit3 TearDown Method.java.ft @@ -1,3 +1,4 @@ public void tearDown() throws Exception { + super.tearDown(); ${BODY} } \ No newline at end of file diff --git a/plugins/kotlin/code-insight/impl-base/kotlin.code-insight.impl-base.iml b/plugins/kotlin/code-insight/impl-base/kotlin.code-insight.impl-base.iml index e46a2035965a..5e14b501e431 100644 --- a/plugins/kotlin/code-insight/impl-base/kotlin.code-insight.impl-base.iml +++ b/plugins/kotlin/code-insight/impl-base/kotlin.code-insight.impl-base.iml @@ -58,5 +58,6 @@ + \ No newline at end of file diff --git a/plugins/kotlin/code-insight/impl-base/src/org/jetbrains/kotlin/idea/codeinsights/impl/base/testIntegration/KotlinCreateTestDialog.kt b/plugins/kotlin/code-insight/impl-base/src/org/jetbrains/kotlin/idea/codeinsights/impl/base/testIntegration/KotlinCreateTestDialog.kt index eee15a361bd9..9ffcb6138b1f 100644 --- a/plugins/kotlin/code-insight/impl-base/src/org/jetbrains/kotlin/idea/codeinsights/impl/base/testIntegration/KotlinCreateTestDialog.kt +++ b/plugins/kotlin/code-insight/impl-base/src/org/jetbrains/kotlin/idea/codeinsights/impl/base/testIntegration/KotlinCreateTestDialog.kt @@ -2,6 +2,7 @@ package org.jetbrains.kotlin.idea.codeinsights.impl.base.testIntegration +import com.intellij.ide.highlighter.JavaFileType import com.intellij.openapi.module.Module import com.intellij.openapi.project.Project import com.intellij.psi.PsiClass @@ -10,6 +11,7 @@ import com.intellij.refactoring.util.RefactoringMessageUtil import com.intellij.testIntegration.createTest.CreateTestDialog import org.jetbrains.annotations.Nls import org.jetbrains.kotlin.idea.KotlinFileType +import org.jetbrains.kotlin.idea.base.plugin.KotlinPluginModeProvider class KotlinCreateTestDialog( project: Project, @@ -23,5 +25,13 @@ class KotlinCreateTestDialog( override fun getClassName(): String = explicitClassName ?: super.className override fun checkCanCreateClass(): String? = - RefactoringMessageUtil.checkCanCreateClass(myTargetDirectory, getClassName(), KotlinFileType.INSTANCE) + RefactoringMessageUtil.checkCanCreateClass( + myTargetDirectory, + getClassName(), + if (KotlinPluginModeProvider.isK1Mode()) { + JavaFileType.INSTANCE + } else { + KotlinFileType.INSTANCE + } + ) } diff --git a/plugins/kotlin/idea/src/org/jetbrains/kotlin/idea/actions/generate/KotlinGenerateTestSupportActionBase.kt b/plugins/kotlin/idea/src/org/jetbrains/kotlin/idea/actions/generate/KotlinGenerateTestSupportActionBase.kt index 9efee02f9989..d607a5d6fd0a 100644 --- a/plugins/kotlin/idea/src/org/jetbrains/kotlin/idea/actions/generate/KotlinGenerateTestSupportActionBase.kt +++ b/plugins/kotlin/idea/src/org/jetbrains/kotlin/idea/actions/generate/KotlinGenerateTestSupportActionBase.kt @@ -157,7 +157,13 @@ abstract class KotlinGenerateTestSupportActionBase( project.executeWriteCommand(commandName) { PsiDocumentManager.getInstance(project).commitAllDocuments() - var function = KtPsiFactory(project).createFunction(templateText) + val factory = PsiElementFactory.getInstance(project) + val psiMethod = factory.createMethodFromText(templateText, null) + psiMethod.throwsList.referenceElements.forEach { it.delete() } + var function = psiMethod.j2k(settings = publicByDefault) as? KtNamedFunction ?: run { + errorHint = KotlinBundle.message("action.generate.test.support.error.cant.convert.java.template") + return@executeWriteCommand + } name?.let { function = substituteNewName(function, it) } diff --git a/plugins/kotlin/idea/src/org/jetbrains/kotlin/idea/testIntegration/KotlinCreateTestIntention.kt b/plugins/kotlin/idea/src/org/jetbrains/kotlin/idea/testIntegration/KotlinCreateTestIntention.kt index 3a2e973a85f8..61f822d29a7a 100644 --- a/plugins/kotlin/idea/src/org/jetbrains/kotlin/idea/testIntegration/KotlinCreateTestIntention.kt +++ b/plugins/kotlin/idea/src/org/jetbrains/kotlin/idea/testIntegration/KotlinCreateTestIntention.kt @@ -2,9 +2,8 @@ package org.jetbrains.kotlin.idea.testIntegration import com.intellij.codeInsight.navigation.activateFileWithPsiElement -import com.intellij.ide.highlighter.JavaFileType +import com.intellij.lang.java.JavaLanguage import com.intellij.openapi.application.runWriteAction -import com.intellij.openapi.fileTypes.FileType import com.intellij.openapi.module.Module import com.intellij.openapi.options.advanced.AdvancedSettings import com.intellij.openapi.project.Project @@ -38,7 +37,7 @@ class KotlinCreateTestIntention: AbstractKotlinCreateTestIntention() { generatedFile: PsiFile, srcModule: Module ) { - if (generatedFile !is PsiJavaFile || generatedClass.language != JavaFileType.INSTANCE) return + if (generatedFile !is PsiJavaFile || generatedClass.language != JavaLanguage.INSTANCE) return project.executeCommand( KotlinBundle.message("convert.class.0.to.kotlin", generatedClass.name.toString()), diff --git a/plugins/kotlin/run-configurations/junit/src/org/jetbrains/kotlin/idea/junit/KotlinJUnit3Framework.kt b/plugins/kotlin/run-configurations/junit/src/org/jetbrains/kotlin/idea/junit/KotlinJUnit3Framework.kt index 6374a1056343..c2a743939b46 100644 --- a/plugins/kotlin/run-configurations/junit/src/org/jetbrains/kotlin/idea/junit/KotlinJUnit3Framework.kt +++ b/plugins/kotlin/run-configurations/junit/src/org/jetbrains/kotlin/idea/junit/KotlinJUnit3Framework.kt @@ -21,6 +21,7 @@ import com.intellij.util.ThreeState import com.intellij.util.ThreeState.* import org.jetbrains.kotlin.asJava.elements.KtLightElement import org.jetbrains.kotlin.idea.KotlinLanguage +import org.jetbrains.kotlin.idea.base.plugin.KotlinPluginModeProvider import org.jetbrains.kotlin.idea.stubindex.KotlinClassShortNameIndex import org.jetbrains.kotlin.idea.testIntegration.framework.AbstractKotlinPsiBasedTestFramework import org.jetbrains.kotlin.idea.testIntegration.framework.KotlinPsiBasedTestFramework @@ -234,16 +235,32 @@ class KotlinJUnit3Framework: JUnit3Framework(), KotlinPsiBasedTestFramework { psiBasedDelegate.isIgnoredMethod(declaration) override fun getSetUpMethodFileTemplateDescriptor(): FileTemplateDescriptor? = - FileTemplateDescriptor("Kotlin JUnit3 SetUp Function.kt") + if (KotlinPluginModeProvider.isK1Mode()) { + super.getSetUpMethodFileTemplateDescriptor() + } else { + FileTemplateDescriptor("Kotlin JUnit3 SetUp Function.kt") + } override fun getTearDownMethodFileTemplateDescriptor(): FileTemplateDescriptor? = - FileTemplateDescriptor("Kotlin JUnit3 TearDown Function.kt") + if (KotlinPluginModeProvider.isK1Mode()) { + super.getTearDownMethodFileTemplateDescriptor() + } else { + FileTemplateDescriptor("Kotlin JUnit3 TearDown Function.kt") + } override fun getTestMethodFileTemplateDescriptor(): FileTemplateDescriptor = - FileTemplateDescriptor("Kotlin JUnit3 Test Function.kt") + if (KotlinPluginModeProvider.isK1Mode()) { + super.getTestMethodFileTemplateDescriptor() + } else { + FileTemplateDescriptor("Kotlin JUnit3 Test Function.kt") + } override fun getTestClassFileTemplateDescriptor(): FileTemplateDescriptor? = - FileTemplateDescriptor("Kotlin JUnit3 Test Class.kt") + if (KotlinPluginModeProvider.isK1Mode()) { + super.getTestClassFileTemplateDescriptor() + } else { + FileTemplateDescriptor("Kotlin JUnit3 Test Class.kt") + } } private val TEST_CLASS_FQN = setOf(JUnitUtil.TEST_CASE_CLASS) \ No newline at end of file diff --git a/plugins/kotlin/run-configurations/junit/src/org/jetbrains/kotlin/idea/junit/KotlinJUnit4Framework.kt b/plugins/kotlin/run-configurations/junit/src/org/jetbrains/kotlin/idea/junit/KotlinJUnit4Framework.kt index e7b953ea893c..55e7e9cb3126 100644 --- a/plugins/kotlin/run-configurations/junit/src/org/jetbrains/kotlin/idea/junit/KotlinJUnit4Framework.kt +++ b/plugins/kotlin/run-configurations/junit/src/org/jetbrains/kotlin/idea/junit/KotlinJUnit4Framework.kt @@ -15,6 +15,7 @@ import com.intellij.util.ThreeState.* import com.siyeh.ig.junit.JUnitCommonClassNames import org.jetbrains.kotlin.asJava.elements.KtLightElement import org.jetbrains.kotlin.idea.KotlinLanguage +import org.jetbrains.kotlin.idea.base.plugin.KotlinPluginModeProvider import org.jetbrains.kotlin.idea.testIntegration.framework.AbstractKotlinPsiBasedTestFramework import org.jetbrains.kotlin.idea.testIntegration.framework.KotlinPsiBasedTestFramework import org.jetbrains.kotlin.idea.testIntegration.framework.KotlinPsiBasedTestFramework.Companion.asKtClassOrObject @@ -171,23 +172,43 @@ class KotlinJUnit4Framework: JUnit4Framework(), KotlinPsiBasedTestFramework { psiBasedDelegate.isIgnoredMethod(declaration) override fun getSetUpMethodFileTemplateDescriptor(): FileTemplateDescriptor? { - return FileTemplateDescriptor("Kotlin JUnit4 SetUp Function.kt") + return if (KotlinPluginModeProvider.isK1Mode()) { + super.getSetUpMethodFileTemplateDescriptor() + } else { + FileTemplateDescriptor("Kotlin JUnit4 SetUp Function.kt") + } } override fun getTearDownMethodFileTemplateDescriptor(): FileTemplateDescriptor? { - return FileTemplateDescriptor("Kotlin JUnit4 TearDown Function.kt") + return if (KotlinPluginModeProvider.isK1Mode()) { + super.getTearDownMethodFileTemplateDescriptor() + } else { + FileTemplateDescriptor("Kotlin JUnit4 TearDown Function.kt") + } } override fun getTestMethodFileTemplateDescriptor(): FileTemplateDescriptor { - return FileTemplateDescriptor("Kotlin JUnit4 Test Function.kt") + return if (KotlinPluginModeProvider.isK1Mode()) { + super.getTestMethodFileTemplateDescriptor() + } else { + FileTemplateDescriptor("Kotlin JUnit4 Test Function.kt") + } } override fun getParametersMethodFileTemplateDescriptor(): FileTemplateDescriptor? { - return FileTemplateDescriptor("Kotlin JUnit4 Parameters Function.kt") + return if (KotlinPluginModeProvider.isK1Mode()) { + super.getParametersMethodFileTemplateDescriptor() + } else { + FileTemplateDescriptor("Kotlin JUnit4 Parameters Function.kt") + } } override fun getTestClassFileTemplateDescriptor(): FileTemplateDescriptor? = - FileTemplateDescriptor("Kotlin JUnit4 Test Class.kt") + if (KotlinPluginModeProvider.isK1Mode()) { + super.getTestClassFileTemplateDescriptor() + } else { + FileTemplateDescriptor("Kotlin JUnit4 Test Class.kt") + } override fun isFrameworkAvailable(clazz: PsiElement): Boolean { return super.isFrameworkAvailable(clazz) || clazz is KtClass && psiBasedDelegate.isFrameworkAvailable(clazz) diff --git a/plugins/kotlin/run-configurations/junit/src/org/jetbrains/kotlin/idea/junit/KotlinJUnit5Framework.kt b/plugins/kotlin/run-configurations/junit/src/org/jetbrains/kotlin/idea/junit/KotlinJUnit5Framework.kt index 2378c1719ffb..3bd1fe31452e 100644 --- a/plugins/kotlin/run-configurations/junit/src/org/jetbrains/kotlin/idea/junit/KotlinJUnit5Framework.kt +++ b/plugins/kotlin/run-configurations/junit/src/org/jetbrains/kotlin/idea/junit/KotlinJUnit5Framework.kt @@ -15,6 +15,7 @@ import com.intellij.util.ThreeState.* import com.siyeh.ig.junit.JUnitCommonClassNames import org.jetbrains.kotlin.asJava.elements.KtLightElement import org.jetbrains.kotlin.idea.KotlinLanguage +import org.jetbrains.kotlin.idea.base.plugin.KotlinPluginModeProvider import org.jetbrains.kotlin.idea.testIntegration.framework.AbstractKotlinPsiBasedTestFramework import org.jetbrains.kotlin.idea.testIntegration.framework.KotlinPsiBasedTestFramework import org.jetbrains.kotlin.idea.testIntegration.framework.KotlinPsiBasedTestFramework.Companion.asKtClassOrObject @@ -153,19 +154,35 @@ class KotlinJUnit5Framework: JUnit5Framework(), KotlinPsiBasedTestFramework { psiBasedDelegate.isIgnoredMethod(declaration) override fun getSetUpMethodFileTemplateDescriptor(): FileTemplateDescriptor? { - return FileTemplateDescriptor("Kotlin JUnit5 SetUp Function.kt") + return if (KotlinPluginModeProvider.isK1Mode()) { + super.getSetUpMethodFileTemplateDescriptor() + } else { + FileTemplateDescriptor("Kotlin JUnit5 SetUp Function.kt") + } } override fun getTearDownMethodFileTemplateDescriptor(): FileTemplateDescriptor? { - return FileTemplateDescriptor("Kotlin JUnit5 TearDown Function.kt") + return if (KotlinPluginModeProvider.isK1Mode()) { + super.getTearDownMethodFileTemplateDescriptor() + } else { + FileTemplateDescriptor("Kotlin JUnit5 TearDown Function.kt") + } } override fun getTestMethodFileTemplateDescriptor(): FileTemplateDescriptor { - return FileTemplateDescriptor("Kotlin JUnit5 Test Function.kt") + return if (KotlinPluginModeProvider.isK1Mode()) { + super.getTestMethodFileTemplateDescriptor() + } else { + FileTemplateDescriptor("Kotlin JUnit5 Test Function.kt") + } } override fun getTestClassFileTemplateDescriptor(): FileTemplateDescriptor? = - FileTemplateDescriptor("Kotlin JUnit5 Test Class.kt") + if (KotlinPluginModeProvider.isK1Mode()) { + super.getTestClassFileTemplateDescriptor() + } else { + FileTemplateDescriptor("Kotlin JUnit5 Test Class.kt") + } } private val METHOD_ANNOTATION_FQN = setOf( diff --git a/plugins/kotlin/run-configurations/testng/src/org/jetbrains/kotlin/idea/testng/KotlinTestNGFramework.kt b/plugins/kotlin/run-configurations/testng/src/org/jetbrains/kotlin/idea/testng/KotlinTestNGFramework.kt index 5c23dfee18e0..2c6da5cf2bd8 100644 --- a/plugins/kotlin/run-configurations/testng/src/org/jetbrains/kotlin/idea/testng/KotlinTestNGFramework.kt +++ b/plugins/kotlin/run-configurations/testng/src/org/jetbrains/kotlin/idea/testng/KotlinTestNGFramework.kt @@ -174,15 +174,27 @@ class KotlinTestNGFramework: TestNGFramework(), KotlinPsiBasedTestFramework { psiBasedDelegate.isIgnoredMethod(declaration) override fun getSetUpMethodFileTemplateDescriptor(): FileTemplateDescriptor? { - return FileTemplateDescriptor("Kotlin TestNG SetUp Function.kt") + return if (KotlinPluginModeProvider.isK1Mode()) { + super.getSetUpMethodFileTemplateDescriptor() + } else { + FileTemplateDescriptor("Kotlin TestNG SetUp Function.kt") + } } override fun getTearDownMethodFileTemplateDescriptor(): FileTemplateDescriptor? { - return FileTemplateDescriptor("Kotlin TestNG TearDown Function.kt") + return if (KotlinPluginModeProvider.isK1Mode()) { + super.getTearDownMethodFileTemplateDescriptor() + } else { + FileTemplateDescriptor("Kotlin TestNG TearDown Function.kt") + } } override fun getTestMethodFileTemplateDescriptor(): FileTemplateDescriptor { - return FileTemplateDescriptor("Kotlin TestNG Test Function.kt") + return if (KotlinPluginModeProvider.isK1Mode()) { + super.getTestMethodFileTemplateDescriptor() + } else { + FileTemplateDescriptor("Kotlin TestNG Test Function.kt") + } } override fun getTestClassFileTemplateDescriptor(): FileTemplateDescriptor? = @@ -193,7 +205,11 @@ class KotlinTestNGFramework: TestNGFramework(), KotlinPsiBasedTestFramework { } override fun getParametersMethodFileTemplateDescriptor(): FileTemplateDescriptor? { - return FileTemplateDescriptor("Kotlin TestNG Parameters Function.kt") + return if (KotlinPluginModeProvider.isK1Mode()) { + super.getParametersMethodFileTemplateDescriptor() + } else { + FileTemplateDescriptor("Kotlin TestNG Parameters Function.kt") + } } }