From bfadd489a397eaa9760e32fcb03dd948e8ff5ab2 Mon Sep 17 00:00:00 2001 From: Valentin Kipyatkov Date: Thu, 9 Apr 2015 12:19:24 +0300 Subject: [PATCH] Imports on paste tests: generate result if does not exist and use default target file text --- .../AddImportsButNoConversion.expected.kt | 2 +- .../AddImportsButNoConversion2.expected.kt | 2 +- .../AddImportsClassInSamePackage.expected.kt | 2 +- .../AddImportsDummyConflict.expected.kt | 2 +- .../kotlin/idea/AbstractCopyPasteTest.kt | 26 +++++++++++++++++++ .../AbstractInsertImportOnPasteTest.kt | 24 +---------------- ...ractJavaToKotlinCopyPasteConversionTest.kt | 20 +++++--------- 7 files changed, 38 insertions(+), 40 deletions(-) diff --git a/idea/testData/copyPaste/conversion/AddImportsButNoConversion.expected.kt b/idea/testData/copyPaste/conversion/AddImportsButNoConversion.expected.kt index 8b3c431f711..fc8a1a184d1 100644 --- a/idea/testData/copyPaste/conversion/AddImportsButNoConversion.expected.kt +++ b/idea/testData/copyPaste/conversion/AddImportsButNoConversion.expected.kt @@ -1,3 +1,3 @@ import java.io.File -fun foo(): List \ No newline at end of file +fun foo(): List \ No newline at end of file diff --git a/idea/testData/copyPaste/conversion/AddImportsButNoConversion2.expected.kt b/idea/testData/copyPaste/conversion/AddImportsButNoConversion2.expected.kt index c7320826a4b..be6257f0b76 100644 --- a/idea/testData/copyPaste/conversion/AddImportsButNoConversion2.expected.kt +++ b/idea/testData/copyPaste/conversion/AddImportsButNoConversion2.expected.kt @@ -1,5 +1,5 @@ import java.io.File fun foo() { - list.add(File.separatorChar) + list.add(File.separatorChar) } \ No newline at end of file diff --git a/idea/testData/copyPaste/conversion/AddImportsClassInSamePackage.expected.kt b/idea/testData/copyPaste/conversion/AddImportsClassInSamePackage.expected.kt index 1aff96c92d6..f4e668888e1 100644 --- a/idea/testData/copyPaste/conversion/AddImportsClassInSamePackage.expected.kt +++ b/idea/testData/copyPaste/conversion/AddImportsClassInSamePackage.expected.kt @@ -1,5 +1,5 @@ import ppp.Dependency fun f() { - return Dependency.FIELD + return Dependency.FIELD } \ No newline at end of file diff --git a/idea/testData/copyPaste/conversion/AddImportsDummyConflict.expected.kt b/idea/testData/copyPaste/conversion/AddImportsDummyConflict.expected.kt index 6af6b20a805..a920dd1bb04 100644 --- a/idea/testData/copyPaste/conversion/AddImportsDummyConflict.expected.kt +++ b/idea/testData/copyPaste/conversion/AddImportsDummyConflict.expected.kt @@ -1,5 +1,5 @@ import ppp.dummy0 fun f() { - return dummy0() + return dummy0() } \ No newline at end of file diff --git a/idea/tests/org/jetbrains/kotlin/idea/AbstractCopyPasteTest.kt b/idea/tests/org/jetbrains/kotlin/idea/AbstractCopyPasteTest.kt index ece8aafb960..38e32e02c9d 100644 --- a/idea/tests/org/jetbrains/kotlin/idea/AbstractCopyPasteTest.kt +++ b/idea/tests/org/jetbrains/kotlin/idea/AbstractCopyPasteTest.kt @@ -17,9 +17,14 @@ package org.jetbrains.kotlin.idea import com.intellij.codeInsight.CodeInsightSettings +import com.intellij.openapi.util.io.FileUtil +import com.intellij.psi.PsiFile +import org.jetbrains.kotlin.psi.JetFile +import java.io.File public abstract class AbstractCopyPasteTest : JetLightCodeInsightFixtureTestCase() { private var savedImportsOnPasteSetting: Int = 0 + private val DEFAULT_TO_FILE_TEXT = "package to\n\n" override fun setUp() { super.setUp() @@ -31,5 +36,26 @@ public abstract class AbstractCopyPasteTest : JetLightCodeInsightFixtureTestCase CodeInsightSettings.getInstance().ADD_IMPORTS_ON_PASTE = savedImportsOnPasteSetting super.tearDown() } + + protected fun configureByDependencyIfExists(dependencyFileName: String): PsiFile? { + val file = File(getTestDataPath() + File.separator + dependencyFileName) + if (!file.exists()) return null + return if (dependencyFileName.endsWith(".java")) { + //allow test framework to put it under right directory + myFixture.addClass(FileUtil.loadFile(file, true)).getContainingFile() + } + else { + myFixture.configureByFile(dependencyFileName) + } + } + + protected fun configureTargetFile(fileName: String): JetFile { + if (File(getTestDataPath() + File.separator + fileName).exists()) { + return myFixture.configureByFile(fileName) as JetFile + } + else { + return myFixture.configureByText(fileName, DEFAULT_TO_FILE_TEXT) as JetFile + } + } } diff --git a/idea/tests/org/jetbrains/kotlin/idea/codeInsight/AbstractInsertImportOnPasteTest.kt b/idea/tests/org/jetbrains/kotlin/idea/codeInsight/AbstractInsertImportOnPasteTest.kt index a0a79adbe44..17d3feb694c 100644 --- a/idea/tests/org/jetbrains/kotlin/idea/codeInsight/AbstractInsertImportOnPasteTest.kt +++ b/idea/tests/org/jetbrains/kotlin/idea/codeInsight/AbstractInsertImportOnPasteTest.kt @@ -30,7 +30,6 @@ import java.io.File public abstract class AbstractInsertImportOnPasteTest : AbstractCopyPasteTest() { private val BASE_PATH = PluginTestCaseBase.getTestDataPathBase() + "/copyPaste/imports" - private val DEFAULT_TO_FILE_TEXT = "package to\n\n" private val NO_ERRORS_DUMP_DIRECTIVE = "// NO_ERRORS_DUMP" private val DELETE_DEPENDENCIES_BEFORE_PASTE_DIRECTIVE = "// DELETE_DEPENDENCIES_BEFORE_PASTE" @@ -66,7 +65,7 @@ public abstract class AbstractInsertImportOnPasteTest : AbstractCopyPasteTest() KotlinCopyPasteReferenceProcessor.declarationsToImportSuggested = emptyList() - configureToFile(testFileName.replace(".kt", ".to.kt")) + configureTargetFile(testFileName.replace(".kt", ".to.kt")) performNotWriteEditorAction(IdeActions.ACTION_PASTE) val namesToImportDump = KotlinCopyPasteReferenceProcessor.declarationsToImportSuggested.joinToString("\n") @@ -79,25 +78,4 @@ public abstract class AbstractInsertImportOnPasteTest : AbstractCopyPasteTest() resultFile.dumpTextWithErrors() JetTestUtils.assertEqualsToFile(File(path.replace(".kt", ".expected.kt")), resultText) } - - private fun configureToFile(toFileName: String): JetFile { - if (File(BASE_PATH + "/" + toFileName).exists()) { - return myFixture.configureByFile(toFileName) as JetFile - } - else { - return myFixture.configureByText(toFileName, DEFAULT_TO_FILE_TEXT) as JetFile - } - } - - private fun configureByDependencyIfExists(dependencyFileName: String): PsiFile? { - val file = File(BASE_PATH + "/" + dependencyFileName) - if (!file.exists()) return null - return if (dependencyFileName.endsWith(".java")) { - //allow test framework to put it under right directory - myFixture.addClass(FileUtil.loadFile(file, true)).getContainingFile() - } - else { - myFixture.configureByFile(dependencyFileName) - } - } } diff --git a/idea/tests/org/jetbrains/kotlin/idea/conversion/copy/AbstractJavaToKotlinCopyPasteConversionTest.kt b/idea/tests/org/jetbrains/kotlin/idea/conversion/copy/AbstractJavaToKotlinCopyPasteConversionTest.kt index 0edf8f0b060..6989a31e2ce 100644 --- a/idea/tests/org/jetbrains/kotlin/idea/conversion/copy/AbstractJavaToKotlinCopyPasteConversionTest.kt +++ b/idea/tests/org/jetbrains/kotlin/idea/conversion/copy/AbstractJavaToKotlinCopyPasteConversionTest.kt @@ -17,12 +17,12 @@ package org.jetbrains.kotlin.idea.conversion.copy import com.intellij.openapi.actionSystem.IdeActions -import com.intellij.testFramework.LightProjectDescriptor import org.jetbrains.kotlin.idea.AbstractCopyPasteTest import org.jetbrains.kotlin.idea.JetWithJdkAndRuntimeLightProjectDescriptor import org.jetbrains.kotlin.idea.PluginTestCaseBase import org.jetbrains.kotlin.idea.editor.JetEditorOptions import org.jetbrains.kotlin.test.InTextDirectivesUtils +import org.jetbrains.kotlin.test.JetTestUtils import java.io.File import kotlin.test.assertEquals @@ -31,9 +31,9 @@ public abstract class AbstractJavaToKotlinCopyPasteConversionTest : AbstractCopy private var oldEditorOptions: JetEditorOptions? = null - override fun getProjectDescriptor(): LightProjectDescriptor { - return JetWithJdkAndRuntimeLightProjectDescriptor.INSTANCE - } + override fun getTestDataPath() = BASE_PATH + + override fun getProjectDescriptor() = JetWithJdkAndRuntimeLightProjectDescriptor.INSTANCE override fun setUp() { super.setUp() @@ -57,15 +57,9 @@ public abstract class AbstractJavaToKotlinCopyPasteConversionTest : AbstractCopy myFixture.performEditorAction(IdeActions.ACTION_COPY) - val toFileName = testName + ".to.kt" - val dependencyFileName = testName + ".dependency.kt" + configureByDependencyIfExists(testName + ".dependency.kt") - if (File(BASE_PATH + File.separator + dependencyFileName).exists()) { - myFixture.configureByFiles(toFileName, dependencyFileName) - } - else { - myFixture.configureByFile(toFileName) - } + configureTargetFile(testName + ".to.kt") ConvertJavaCopyPastePostProcessor.conversionPerformed = false @@ -74,6 +68,6 @@ public abstract class AbstractJavaToKotlinCopyPasteConversionTest : AbstractCopy assertEquals(noConversionExpected, !ConvertJavaCopyPastePostProcessor.conversionPerformed, if (noConversionExpected) "Conversion to Kotlin should not be suggested" else "No conversion to Kotlin suggested") - myFixture.checkResultByFile(testName + ".expected.kt") + JetTestUtils.assertEqualsToFile(File(path.replace(".java", ".expected.kt")), myFixture.getFile().getText()) } }