Generate multi-file quickfix tests for FIR plugin
Currently generate only for `Import` quickfix
This commit is contained in:
@@ -121,10 +121,7 @@ import org.jetbrains.kotlin.idea.navigation.*
|
|||||||
import org.jetbrains.kotlin.idea.navigationToolbar.AbstractKotlinNavBarTest
|
import org.jetbrains.kotlin.idea.navigationToolbar.AbstractKotlinNavBarTest
|
||||||
import org.jetbrains.kotlin.idea.parameterInfo.AbstractParameterInfoTest
|
import org.jetbrains.kotlin.idea.parameterInfo.AbstractParameterInfoTest
|
||||||
import org.jetbrains.kotlin.idea.perf.*
|
import org.jetbrains.kotlin.idea.perf.*
|
||||||
import org.jetbrains.kotlin.idea.quickfix.AbstractHighLevelQuickFixTest
|
import org.jetbrains.kotlin.idea.quickfix.*
|
||||||
import org.jetbrains.kotlin.idea.quickfix.AbstractQuickFixMultiFileTest
|
|
||||||
import org.jetbrains.kotlin.idea.quickfix.AbstractQuickFixMultiModuleTest
|
|
||||||
import org.jetbrains.kotlin.idea.quickfix.AbstractQuickFixTest
|
|
||||||
import org.jetbrains.kotlin.idea.refactoring.AbstractNameSuggestionProviderTest
|
import org.jetbrains.kotlin.idea.refactoring.AbstractNameSuggestionProviderTest
|
||||||
import org.jetbrains.kotlin.idea.refactoring.copy.AbstractCopyTest
|
import org.jetbrains.kotlin.idea.refactoring.copy.AbstractCopyTest
|
||||||
import org.jetbrains.kotlin.idea.refactoring.copy.AbstractMultiModuleCopyTest
|
import org.jetbrains.kotlin.idea.refactoring.copy.AbstractMultiModuleCopyTest
|
||||||
@@ -1180,6 +1177,10 @@ fun main(args: Array<String>) {
|
|||||||
model("quickfix/when", pattern = pattern, filenameStartsLowerCase = true)
|
model("quickfix/when", pattern = pattern, filenameStartsLowerCase = true)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
testClass<AbstractHighLevelQuickFixMultiFileTest> {
|
||||||
|
model("quickfix/autoImports", pattern = """^(\w+)\.((before\.Main\.\w+))$""", testMethod = "doTestWithExtraFile")
|
||||||
|
}
|
||||||
|
|
||||||
testClass<AbstractHLInspectionTest> {
|
testClass<AbstractHLInspectionTest> {
|
||||||
val pattern = "^(inspections\\.test)$"
|
val pattern = "^(inspections\\.test)$"
|
||||||
model("inspections/redundantUnitReturnType", pattern = pattern, singleClass = true)
|
model("inspections/redundantUnitReturnType", pattern = pattern, singleClass = true)
|
||||||
|
|||||||
+38
@@ -0,0 +1,38 @@
|
|||||||
|
/*
|
||||||
|
* Copyright 2010-2021 JetBrains s.r.o. and Kotlin Programming Language contributors.
|
||||||
|
* Use of this source code is governed by the Apache 2.0 license that can be found in the license/LICENSE.txt file.
|
||||||
|
*/
|
||||||
|
|
||||||
|
package org.jetbrains.kotlin.idea.quickfix
|
||||||
|
|
||||||
|
import com.intellij.codeInsight.intention.IntentionAction
|
||||||
|
import com.intellij.psi.PsiFile
|
||||||
|
import org.jetbrains.kotlin.psi.KtFile
|
||||||
|
import org.jetbrains.kotlin.test.utils.IgnoreTests
|
||||||
|
import java.nio.file.Files
|
||||||
|
import java.nio.file.Path
|
||||||
|
import java.nio.file.Paths
|
||||||
|
|
||||||
|
abstract class AbstractHighLevelQuickFixMultiFileTest : AbstractQuickFixMultiFileTest() {
|
||||||
|
override fun doTestWithExtraFile(beforeFileName: String) {
|
||||||
|
IgnoreTests.runTestIfNotDisabledByFileDirective(
|
||||||
|
Paths.get(beforeFileName),
|
||||||
|
disableTestDirective = IgnoreTests.DIRECTIVES.IGNORE_FIR_MULTILINE_COMMENT,
|
||||||
|
directivePosition = IgnoreTests.DirectivePosition.LAST_LINE_IN_FILE,
|
||||||
|
computeAdditionalFiles = { mainTestFile -> listOfNotNull(mainTestFile.getAfterFileIfExists()) },
|
||||||
|
test = { super.doTestWithExtraFile(beforeFileName) }
|
||||||
|
)
|
||||||
|
}
|
||||||
|
|
||||||
|
override val captureExceptions: Boolean = false
|
||||||
|
|
||||||
|
override fun checkForUnexpectedErrors(file: KtFile) {}
|
||||||
|
|
||||||
|
override fun checkAvailableActionsAreExpected(file: PsiFile, actions: Collection<IntentionAction>) {}
|
||||||
|
|
||||||
|
private fun Path.getAfterFileIfExists(): Path? {
|
||||||
|
val afterFileName = fileName.toString().removeSuffix(".before.Main.kt") + ".after.kt"
|
||||||
|
|
||||||
|
return resolveSibling(afterFileName).takeIf(Files::exists)
|
||||||
|
}
|
||||||
|
}
|
||||||
Generated
+377
@@ -0,0 +1,377 @@
|
|||||||
|
/*
|
||||||
|
* Copyright 2010-2021 JetBrains s.r.o. and Kotlin Programming Language contributors.
|
||||||
|
* Use of this source code is governed by the Apache 2.0 license that can be found in the license/LICENSE.txt file.
|
||||||
|
*/
|
||||||
|
|
||||||
|
package org.jetbrains.kotlin.idea.quickfix;
|
||||||
|
|
||||||
|
import com.intellij.testFramework.TestDataPath;
|
||||||
|
import org.jetbrains.kotlin.test.JUnit3RunnerWithInners;
|
||||||
|
import org.jetbrains.kotlin.test.KotlinTestUtils;
|
||||||
|
import org.jetbrains.kotlin.test.util.KtTestUtil;
|
||||||
|
import org.jetbrains.kotlin.test.TestMetadata;
|
||||||
|
import org.junit.runner.RunWith;
|
||||||
|
|
||||||
|
import java.io.File;
|
||||||
|
import java.util.regex.Pattern;
|
||||||
|
|
||||||
|
/** This class is generated by {@link org.jetbrains.kotlin.generators.tests.TestsPackage}. DO NOT MODIFY MANUALLY */
|
||||||
|
@SuppressWarnings("all")
|
||||||
|
@TestMetadata("idea/testData/quickfix/autoImports")
|
||||||
|
@TestDataPath("$PROJECT_ROOT")
|
||||||
|
@RunWith(JUnit3RunnerWithInners.class)
|
||||||
|
public class HighLevelQuickFixMultiFileTestGenerated extends AbstractHighLevelQuickFixMultiFileTest {
|
||||||
|
private void runTest(String testDataFilePath) throws Exception {
|
||||||
|
KotlinTestUtils.runTest(this::doTestWithExtraFile, this, testDataFilePath);
|
||||||
|
}
|
||||||
|
|
||||||
|
public void testAllFilesPresentInAutoImports() throws Exception {
|
||||||
|
KtTestUtil.assertAllTestsPresentByMetadataWithExcluded(this.getClass(), new File("idea/testData/quickfix/autoImports"), Pattern.compile("^(\\w+)\\.((before\\.Main\\.\\w+))$"), null, true);
|
||||||
|
}
|
||||||
|
|
||||||
|
@TestMetadata("ambiguousNamePreferFromJdk.before.Main.kt")
|
||||||
|
public void testAmbiguousNamePreferFromJdk() throws Exception {
|
||||||
|
runTest("idea/testData/quickfix/autoImports/ambiguousNamePreferFromJdk.before.Main.kt");
|
||||||
|
}
|
||||||
|
|
||||||
|
@TestMetadata("ambiguousNamePreferWithImportsFromPackage.before.Main.kt")
|
||||||
|
public void testAmbiguousNamePreferWithImportsFromPackage() throws Exception {
|
||||||
|
runTest("idea/testData/quickfix/autoImports/ambiguousNamePreferWithImportsFromPackage.before.Main.kt");
|
||||||
|
}
|
||||||
|
|
||||||
|
@TestMetadata("callWithTrailingComma.before.Main.kt")
|
||||||
|
public void testCallWithTrailingComma() throws Exception {
|
||||||
|
runTest("idea/testData/quickfix/autoImports/callWithTrailingComma.before.Main.kt");
|
||||||
|
}
|
||||||
|
|
||||||
|
@TestMetadata("callableReferenceExtension.before.Main.kt")
|
||||||
|
public void testCallableReferenceExtension() throws Exception {
|
||||||
|
runTest("idea/testData/quickfix/autoImports/callableReferenceExtension.before.Main.kt");
|
||||||
|
}
|
||||||
|
|
||||||
|
@TestMetadata("callableReferenceExtension2.before.Main.kt")
|
||||||
|
public void testCallableReferenceExtension2() throws Exception {
|
||||||
|
runTest("idea/testData/quickfix/autoImports/callableReferenceExtension2.before.Main.kt");
|
||||||
|
}
|
||||||
|
|
||||||
|
@TestMetadata("callableReferenceTopLevel.before.Main.kt")
|
||||||
|
public void testCallableReferenceTopLevel() throws Exception {
|
||||||
|
runTest("idea/testData/quickfix/autoImports/callableReferenceTopLevel.before.Main.kt");
|
||||||
|
}
|
||||||
|
|
||||||
|
@TestMetadata("classImport.before.Main.kt")
|
||||||
|
public void testClassImport() throws Exception {
|
||||||
|
runTest("idea/testData/quickfix/autoImports/classImport.before.Main.kt");
|
||||||
|
}
|
||||||
|
|
||||||
|
@TestMetadata("constructorReference.before.Main.kt")
|
||||||
|
public void testConstructorReference() throws Exception {
|
||||||
|
runTest("idea/testData/quickfix/autoImports/constructorReference.before.Main.kt");
|
||||||
|
}
|
||||||
|
|
||||||
|
@TestMetadata("divOperator.before.Main.kt")
|
||||||
|
public void testDivOperator() throws Exception {
|
||||||
|
runTest("idea/testData/quickfix/autoImports/divOperator.before.Main.kt");
|
||||||
|
}
|
||||||
|
|
||||||
|
@TestMetadata("dslMarkers.before.Main.kt")
|
||||||
|
public void testDslMarkers() throws Exception {
|
||||||
|
runTest("idea/testData/quickfix/autoImports/dslMarkers.before.Main.kt");
|
||||||
|
}
|
||||||
|
|
||||||
|
@TestMetadata("dslMarkersOnReceiver.before.Main.kt")
|
||||||
|
public void testDslMarkersOnReceiver() throws Exception {
|
||||||
|
runTest("idea/testData/quickfix/autoImports/dslMarkersOnReceiver.before.Main.kt");
|
||||||
|
}
|
||||||
|
|
||||||
|
@TestMetadata("extensionFunctionImport.before.Main.kt")
|
||||||
|
public void testExtensionFunctionImport() throws Exception {
|
||||||
|
runTest("idea/testData/quickfix/autoImports/extensionFunctionImport.before.Main.kt");
|
||||||
|
}
|
||||||
|
|
||||||
|
@TestMetadata("extensionFunctionImportImplicitReceiver.before.Main.kt")
|
||||||
|
public void testExtensionFunctionImportImplicitReceiver() throws Exception {
|
||||||
|
runTest("idea/testData/quickfix/autoImports/extensionFunctionImportImplicitReceiver.before.Main.kt");
|
||||||
|
}
|
||||||
|
|
||||||
|
@TestMetadata("extensionPropertyImport.before.Main.kt")
|
||||||
|
public void testExtensionPropertyImport() throws Exception {
|
||||||
|
runTest("idea/testData/quickfix/autoImports/extensionPropertyImport.before.Main.kt");
|
||||||
|
}
|
||||||
|
|
||||||
|
@TestMetadata("extensionPropertyOnTypeAliasFromExpansion.before.Main.kt")
|
||||||
|
public void testExtensionPropertyOnTypeAliasFromExpansion() throws Exception {
|
||||||
|
runTest("idea/testData/quickfix/autoImports/extensionPropertyOnTypeAliasFromExpansion.before.Main.kt");
|
||||||
|
}
|
||||||
|
|
||||||
|
@TestMetadata("extensionPropertyOnTypeAliasFromOtherTypeAlias.before.Main.kt")
|
||||||
|
public void testExtensionPropertyOnTypeAliasFromOtherTypeAlias() throws Exception {
|
||||||
|
runTest("idea/testData/quickfix/autoImports/extensionPropertyOnTypeAliasFromOtherTypeAlias.before.Main.kt");
|
||||||
|
}
|
||||||
|
|
||||||
|
@TestMetadata("factoryFunctionFromLambda.before.Main.kt")
|
||||||
|
public void testFactoryFunctionFromLambda() throws Exception {
|
||||||
|
runTest("idea/testData/quickfix/autoImports/factoryFunctionFromLambda.before.Main.kt");
|
||||||
|
}
|
||||||
|
|
||||||
|
@TestMetadata("falsePostfixOperator.before.Main.kt")
|
||||||
|
public void testFalsePostfixOperator() throws Exception {
|
||||||
|
runTest("idea/testData/quickfix/autoImports/falsePostfixOperator.before.Main.kt");
|
||||||
|
}
|
||||||
|
|
||||||
|
@TestMetadata("functionImport.before.Main.kt")
|
||||||
|
public void testFunctionImport() throws Exception {
|
||||||
|
runTest("idea/testData/quickfix/autoImports/functionImport.before.Main.kt");
|
||||||
|
}
|
||||||
|
|
||||||
|
@TestMetadata("importAliasClassAlreadyExists.before.Main.kt")
|
||||||
|
public void testImportAliasClassAlreadyExists() throws Exception {
|
||||||
|
runTest("idea/testData/quickfix/autoImports/importAliasClassAlreadyExists.before.Main.kt");
|
||||||
|
}
|
||||||
|
|
||||||
|
@TestMetadata("importAliasClassAlreadyExistsCollision.before.Main.kt")
|
||||||
|
public void testImportAliasClassAlreadyExistsCollision() throws Exception {
|
||||||
|
runTest("idea/testData/quickfix/autoImports/importAliasClassAlreadyExistsCollision.before.Main.kt");
|
||||||
|
}
|
||||||
|
|
||||||
|
@TestMetadata("importAliasFunctionAlreadyExists.before.Main.kt")
|
||||||
|
public void testImportAliasFunctionAlreadyExists() throws Exception {
|
||||||
|
runTest("idea/testData/quickfix/autoImports/importAliasFunctionAlreadyExists.before.Main.kt");
|
||||||
|
}
|
||||||
|
|
||||||
|
@TestMetadata("importAliasFunctionAlreadyExistsCollision.before.Main.kt")
|
||||||
|
public void testImportAliasFunctionAlreadyExistsCollision() throws Exception {
|
||||||
|
runTest("idea/testData/quickfix/autoImports/importAliasFunctionAlreadyExistsCollision.before.Main.kt");
|
||||||
|
}
|
||||||
|
|
||||||
|
@TestMetadata("importAliasPropertyAlreadyExists.before.Main.kt")
|
||||||
|
public void testImportAliasPropertyAlreadyExists() throws Exception {
|
||||||
|
runTest("idea/testData/quickfix/autoImports/importAliasPropertyAlreadyExists.before.Main.kt");
|
||||||
|
}
|
||||||
|
|
||||||
|
@TestMetadata("importFromRoot.before.Main.kt")
|
||||||
|
public void testImportFromRoot() throws Exception {
|
||||||
|
runTest("idea/testData/quickfix/autoImports/importFromRoot.before.Main.kt");
|
||||||
|
}
|
||||||
|
|
||||||
|
@TestMetadata("importGetValueExtensionForDelegateWithLambda.before.Main.kt")
|
||||||
|
public void testImportGetValueExtensionForDelegateWithLambda() throws Exception {
|
||||||
|
runTest("idea/testData/quickfix/autoImports/importGetValueExtensionForDelegateWithLambda.before.Main.kt");
|
||||||
|
}
|
||||||
|
|
||||||
|
@TestMetadata("importInFirstPartInQualifiedExpression.before.Main.kt")
|
||||||
|
public void testImportInFirstPartInQualifiedExpression() throws Exception {
|
||||||
|
runTest("idea/testData/quickfix/autoImports/importInFirstPartInQualifiedExpression.before.Main.kt");
|
||||||
|
}
|
||||||
|
|
||||||
|
@TestMetadata("ImportOperatorInvokeWithConvention.before.Main.kt")
|
||||||
|
public void testImportOperatorInvokeWithConvention() throws Exception {
|
||||||
|
runTest("idea/testData/quickfix/autoImports/ImportOperatorInvokeWithConvention.before.Main.kt");
|
||||||
|
}
|
||||||
|
|
||||||
|
@TestMetadata("importTrait.before.Main.kt")
|
||||||
|
public void testImportTrait() throws Exception {
|
||||||
|
runTest("idea/testData/quickfix/autoImports/importTrait.before.Main.kt");
|
||||||
|
}
|
||||||
|
|
||||||
|
@TestMetadata("infixCall.before.Main.kt")
|
||||||
|
public void testInfixCall() throws Exception {
|
||||||
|
runTest("idea/testData/quickfix/autoImports/infixCall.before.Main.kt");
|
||||||
|
}
|
||||||
|
|
||||||
|
@TestMetadata("infixCall2.before.Main.kt")
|
||||||
|
public void testInfixCall2() throws Exception {
|
||||||
|
runTest("idea/testData/quickfix/autoImports/infixCall2.before.Main.kt");
|
||||||
|
}
|
||||||
|
|
||||||
|
@TestMetadata("iteratorOperator.before.Main.kt")
|
||||||
|
public void testIteratorOperator() throws Exception {
|
||||||
|
runTest("idea/testData/quickfix/autoImports/iteratorOperator.before.Main.kt");
|
||||||
|
}
|
||||||
|
|
||||||
|
@TestMetadata("memberWithTopLevelConflict.before.Main.kt")
|
||||||
|
public void testMemberWithTopLevelConflict() throws Exception {
|
||||||
|
runTest("idea/testData/quickfix/autoImports/memberWithTopLevelConflict.before.Main.kt");
|
||||||
|
}
|
||||||
|
|
||||||
|
@TestMetadata("minusOperator.before.Main.kt")
|
||||||
|
public void testMinusOperator() throws Exception {
|
||||||
|
runTest("idea/testData/quickfix/autoImports/minusOperator.before.Main.kt");
|
||||||
|
}
|
||||||
|
|
||||||
|
@TestMetadata("nestedClass.before.Main.kt")
|
||||||
|
public void testNestedClass() throws Exception {
|
||||||
|
runTest("idea/testData/quickfix/autoImports/nestedClass.before.Main.kt");
|
||||||
|
}
|
||||||
|
|
||||||
|
@TestMetadata("noImportForFunInQualifiedNotFirst.before.Main.kt")
|
||||||
|
public void testNoImportForFunInQualifiedNotFirst() throws Exception {
|
||||||
|
runTest("idea/testData/quickfix/autoImports/noImportForFunInQualifiedNotFirst.before.Main.kt");
|
||||||
|
}
|
||||||
|
|
||||||
|
@TestMetadata("noImportForNestedInPrivate.before.Main.kt")
|
||||||
|
public void testNoImportForNestedInPrivate() throws Exception {
|
||||||
|
runTest("idea/testData/quickfix/autoImports/noImportForNestedInPrivate.before.Main.kt");
|
||||||
|
}
|
||||||
|
|
||||||
|
@TestMetadata("noImportForPrivateClass.before.Main.kt")
|
||||||
|
public void testNoImportForPrivateClass() throws Exception {
|
||||||
|
runTest("idea/testData/quickfix/autoImports/noImportForPrivateClass.before.Main.kt");
|
||||||
|
}
|
||||||
|
|
||||||
|
@TestMetadata("noImportInImports.before.Main.kt")
|
||||||
|
public void testNoImportInImports() throws Exception {
|
||||||
|
runTest("idea/testData/quickfix/autoImports/noImportInImports.before.Main.kt");
|
||||||
|
}
|
||||||
|
|
||||||
|
@TestMetadata("noImportInQualifiedExpressionNotFirst.before.Main.kt")
|
||||||
|
public void testNoImportInQualifiedExpressionNotFirst() throws Exception {
|
||||||
|
runTest("idea/testData/quickfix/autoImports/noImportInQualifiedExpressionNotFirst.before.Main.kt");
|
||||||
|
}
|
||||||
|
|
||||||
|
@TestMetadata("noImportInQualifiedUserTypeNotFirst.before.Main.kt")
|
||||||
|
public void testNoImportInQualifiedUserTypeNotFirst() throws Exception {
|
||||||
|
runTest("idea/testData/quickfix/autoImports/noImportInQualifiedUserTypeNotFirst.before.Main.kt");
|
||||||
|
}
|
||||||
|
|
||||||
|
@TestMetadata("noImportInSafeQualifiedExpressionNotFirst.before.Main.kt")
|
||||||
|
public void testNoImportInSafeQualifiedExpressionNotFirst() throws Exception {
|
||||||
|
runTest("idea/testData/quickfix/autoImports/noImportInSafeQualifiedExpressionNotFirst.before.Main.kt");
|
||||||
|
}
|
||||||
|
|
||||||
|
@TestMetadata("noImportInterfaceRefAsConstructor.before.Main.kt")
|
||||||
|
public void testNoImportInterfaceRefAsConstructor() throws Exception {
|
||||||
|
runTest("idea/testData/quickfix/autoImports/noImportInterfaceRefAsConstructor.before.Main.kt");
|
||||||
|
}
|
||||||
|
|
||||||
|
@TestMetadata("noImportsForClassInExcludedPackage.before.Main.kt")
|
||||||
|
public void testNoImportsForClassInExcludedPackage() throws Exception {
|
||||||
|
runTest("idea/testData/quickfix/autoImports/noImportsForClassInExcludedPackage.before.Main.kt");
|
||||||
|
}
|
||||||
|
|
||||||
|
@TestMetadata("noImportsForExcludedClass.before.Main.kt")
|
||||||
|
public void testNoImportsForExcludedClass() throws Exception {
|
||||||
|
runTest("idea/testData/quickfix/autoImports/noImportsForExcludedClass.before.Main.kt");
|
||||||
|
}
|
||||||
|
|
||||||
|
@TestMetadata("noImportsForFunctionInExcludedPackage.before.Main.kt")
|
||||||
|
public void testNoImportsForFunctionInExcludedPackage() throws Exception {
|
||||||
|
runTest("idea/testData/quickfix/autoImports/noImportsForFunctionInExcludedPackage.before.Main.kt");
|
||||||
|
}
|
||||||
|
|
||||||
|
@TestMetadata("noneApplicableFromInstanceButExtension.before.Main.kt")
|
||||||
|
public void testNoneApplicableFromInstanceButExtension() throws Exception {
|
||||||
|
runTest("idea/testData/quickfix/autoImports/noneApplicableFromInstanceButExtension.before.Main.kt");
|
||||||
|
}
|
||||||
|
|
||||||
|
@TestMetadata("notExcludedClass.before.Main.kt")
|
||||||
|
public void testNotExcludedClass() throws Exception {
|
||||||
|
runTest("idea/testData/quickfix/autoImports/notExcludedClass.before.Main.kt");
|
||||||
|
}
|
||||||
|
|
||||||
|
@TestMetadata("objectImport.before.Main.kt")
|
||||||
|
public void testObjectImport() throws Exception {
|
||||||
|
runTest("idea/testData/quickfix/autoImports/objectImport.before.Main.kt");
|
||||||
|
}
|
||||||
|
|
||||||
|
@TestMetadata("objectMemberFunctionImportWhenReceiverPresent.before.Main.kt")
|
||||||
|
public void testObjectMemberFunctionImportWhenReceiverPresent() throws Exception {
|
||||||
|
runTest("idea/testData/quickfix/autoImports/objectMemberFunctionImportWhenReceiverPresent.before.Main.kt");
|
||||||
|
}
|
||||||
|
|
||||||
|
@TestMetadata("packageClass.before.Main.kt")
|
||||||
|
public void testPackageClass() throws Exception {
|
||||||
|
runTest("idea/testData/quickfix/autoImports/packageClass.before.Main.kt");
|
||||||
|
}
|
||||||
|
|
||||||
|
@TestMetadata("plusOperator.before.Main.kt")
|
||||||
|
public void testPlusOperator() throws Exception {
|
||||||
|
runTest("idea/testData/quickfix/autoImports/plusOperator.before.Main.kt");
|
||||||
|
}
|
||||||
|
|
||||||
|
@TestMetadata("plusOperatorWithTypeMismatch.before.Main.kt")
|
||||||
|
public void testPlusOperatorWithTypeMismatch() throws Exception {
|
||||||
|
runTest("idea/testData/quickfix/autoImports/plusOperatorWithTypeMismatch.before.Main.kt");
|
||||||
|
}
|
||||||
|
|
||||||
|
@TestMetadata("postfixOperator.before.Main.kt")
|
||||||
|
public void testPostfixOperator() throws Exception {
|
||||||
|
runTest("idea/testData/quickfix/autoImports/postfixOperator.before.Main.kt");
|
||||||
|
}
|
||||||
|
|
||||||
|
@TestMetadata("propertyImport.before.Main.kt")
|
||||||
|
public void testPropertyImport() throws Exception {
|
||||||
|
runTest("idea/testData/quickfix/autoImports/propertyImport.before.Main.kt");
|
||||||
|
}
|
||||||
|
|
||||||
|
@TestMetadata("sameModuleImportPriority.before.Main.kt")
|
||||||
|
public void testSameModuleImportPriority() throws Exception {
|
||||||
|
runTest("idea/testData/quickfix/autoImports/sameModuleImportPriority.before.Main.kt");
|
||||||
|
}
|
||||||
|
|
||||||
|
@TestMetadata("timesAssign.before.Main.kt")
|
||||||
|
public void testTimesAssign() throws Exception {
|
||||||
|
runTest("idea/testData/quickfix/autoImports/timesAssign.before.Main.kt");
|
||||||
|
}
|
||||||
|
|
||||||
|
@TestMetadata("typeAliasExtensionFunction.before.Main.kt")
|
||||||
|
public void testTypeAliasExtensionFunction() throws Exception {
|
||||||
|
runTest("idea/testData/quickfix/autoImports/typeAliasExtensionFunction.before.Main.kt");
|
||||||
|
}
|
||||||
|
|
||||||
|
@TestMetadata("typeAliasExtensionFunctionInTypeAliasChain.before.Main.kt")
|
||||||
|
public void testTypeAliasExtensionFunctionInTypeAliasChain() throws Exception {
|
||||||
|
runTest("idea/testData/quickfix/autoImports/typeAliasExtensionFunctionInTypeAliasChain.before.Main.kt");
|
||||||
|
}
|
||||||
|
|
||||||
|
@TestMetadata("typeAliasExtensionProperty.before.Main.kt")
|
||||||
|
public void testTypeAliasExtensionProperty() throws Exception {
|
||||||
|
runTest("idea/testData/quickfix/autoImports/typeAliasExtensionProperty.before.Main.kt");
|
||||||
|
}
|
||||||
|
|
||||||
|
@TestMetadata("typeAliasImport.before.Main.kt")
|
||||||
|
public void testTypeAliasImport() throws Exception {
|
||||||
|
runTest("idea/testData/quickfix/autoImports/typeAliasImport.before.Main.kt");
|
||||||
|
}
|
||||||
|
|
||||||
|
@TestMetadata("unaryMinusOperator.before.Main.kt")
|
||||||
|
public void testUnaryMinusOperator() throws Exception {
|
||||||
|
runTest("idea/testData/quickfix/autoImports/unaryMinusOperator.before.Main.kt");
|
||||||
|
}
|
||||||
|
|
||||||
|
@TestMetadata("unaryPlusOperator.before.Main.kt")
|
||||||
|
public void testUnaryPlusOperator() throws Exception {
|
||||||
|
runTest("idea/testData/quickfix/autoImports/unaryPlusOperator.before.Main.kt");
|
||||||
|
}
|
||||||
|
|
||||||
|
@TestMetadata("withSmartCastQualifier.before.Main.kt")
|
||||||
|
public void testWithSmartCastQualifier() throws Exception {
|
||||||
|
runTest("idea/testData/quickfix/autoImports/withSmartCastQualifier.before.Main.kt");
|
||||||
|
}
|
||||||
|
|
||||||
|
@TestMetadata("idea/testData/quickfix/autoImports/kt21515")
|
||||||
|
@TestDataPath("$PROJECT_ROOT")
|
||||||
|
@RunWith(JUnit3RunnerWithInners.class)
|
||||||
|
public static class Kt21515 extends AbstractHighLevelQuickFixMultiFileTest {
|
||||||
|
private void runTest(String testDataFilePath) throws Exception {
|
||||||
|
KotlinTestUtils.runTest(this::doTestWithExtraFile, this, testDataFilePath);
|
||||||
|
}
|
||||||
|
|
||||||
|
public void testAllFilesPresentInKt21515() throws Exception {
|
||||||
|
KtTestUtil.assertAllTestsPresentByMetadataWithExcluded(this.getClass(), new File("idea/testData/quickfix/autoImports/kt21515"), Pattern.compile("^(\\w+)\\.((before\\.Main\\.\\w+))$"), null, true);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
@TestMetadata("idea/testData/quickfix/autoImports/mismatchingArgs")
|
||||||
|
@TestDataPath("$PROJECT_ROOT")
|
||||||
|
@RunWith(JUnit3RunnerWithInners.class)
|
||||||
|
public static class MismatchingArgs extends AbstractHighLevelQuickFixMultiFileTest {
|
||||||
|
private void runTest(String testDataFilePath) throws Exception {
|
||||||
|
KotlinTestUtils.runTest(this::doTestWithExtraFile, this, testDataFilePath);
|
||||||
|
}
|
||||||
|
|
||||||
|
public void testAllFilesPresentInMismatchingArgs() throws Exception {
|
||||||
|
KtTestUtil.assertAllTestsPresentByMetadataWithExcluded(this.getClass(), new File("idea/testData/quickfix/autoImports/mismatchingArgs"), Pattern.compile("^(\\w+)\\.((before\\.Main\\.\\w+))$"), null, true);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
@@ -144,7 +144,7 @@ abstract class AbstractQuickFixMultiFileTest : KotlinLightCodeInsightFixtureTest
|
|||||||
val actionShouldBeAvailable = actionHint.shouldPresent()
|
val actionShouldBeAvailable = actionHint.shouldPresent()
|
||||||
|
|
||||||
if (psiFile is KtFile) {
|
if (psiFile is KtFile) {
|
||||||
DirectiveBasedActionUtils.checkForUnexpectedErrors(psiFile)
|
checkForUnexpectedErrors(psiFile)
|
||||||
}
|
}
|
||||||
|
|
||||||
doAction(
|
doAction(
|
||||||
@@ -155,6 +155,7 @@ abstract class AbstractQuickFixMultiFileTest : KotlinLightCodeInsightFixtureTest
|
|||||||
getTestName(false),
|
getTestName(false),
|
||||||
this::availableActions,
|
this::availableActions,
|
||||||
myFixture::doHighlighting,
|
myFixture::doHighlighting,
|
||||||
|
checkAvailableActionsAreExpected = this::checkAvailableActionsAreExpected
|
||||||
)
|
)
|
||||||
|
|
||||||
val actualText = file.text
|
val actualText = file.text
|
||||||
@@ -221,7 +222,7 @@ abstract class AbstractQuickFixMultiFileTest : KotlinLightCodeInsightFixtureTest
|
|||||||
val actionShouldBeAvailable = actionHint.shouldPresent()
|
val actionShouldBeAvailable = actionHint.shouldPresent()
|
||||||
|
|
||||||
if (psiFile is KtFile) {
|
if (psiFile is KtFile) {
|
||||||
DirectiveBasedActionUtils.checkForUnexpectedErrors(psiFile)
|
checkForUnexpectedErrors(psiFile)
|
||||||
}
|
}
|
||||||
|
|
||||||
doAction(
|
doAction(
|
||||||
@@ -232,6 +233,7 @@ abstract class AbstractQuickFixMultiFileTest : KotlinLightCodeInsightFixtureTest
|
|||||||
beforeFileName,
|
beforeFileName,
|
||||||
this::availableActions,
|
this::availableActions,
|
||||||
myFixture::doHighlighting,
|
myFixture::doHighlighting,
|
||||||
|
checkAvailableActionsAreExpected = this::checkAvailableActionsAreExpected
|
||||||
)
|
)
|
||||||
|
|
||||||
if (actionShouldBeAvailable) {
|
if (actionShouldBeAvailable) {
|
||||||
@@ -273,6 +275,14 @@ abstract class AbstractQuickFixMultiFileTest : KotlinLightCodeInsightFixtureTest
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
protected open fun checkForUnexpectedErrors(file: KtFile) {
|
||||||
|
DirectiveBasedActionUtils.checkForUnexpectedErrors(file)
|
||||||
|
}
|
||||||
|
|
||||||
|
protected open fun checkAvailableActionsAreExpected(file: PsiFile, actions: Collection<IntentionAction>) {
|
||||||
|
DirectiveBasedActionUtils.checkAvailableActionsAreExpected(file, availableActions)
|
||||||
|
}
|
||||||
|
|
||||||
private val availableActions: List<IntentionAction>
|
private val availableActions: List<IntentionAction>
|
||||||
get() {
|
get() {
|
||||||
myFixture.doHighlighting()
|
myFixture.doHighlighting()
|
||||||
@@ -305,7 +315,9 @@ abstract class AbstractQuickFixMultiFileTest : KotlinLightCodeInsightFixtureTest
|
|||||||
testFilePath: String,
|
testFilePath: String,
|
||||||
getAvailableActions: () -> List<IntentionAction>,
|
getAvailableActions: () -> List<IntentionAction>,
|
||||||
doHighlighting: () -> List<HighlightInfo>,
|
doHighlighting: () -> List<HighlightInfo>,
|
||||||
shouldBeAvailableAfterExecution: Boolean = false
|
shouldBeAvailableAfterExecution: Boolean = false,
|
||||||
|
checkAvailableActionsAreExpected: (PsiFile, Collection<IntentionAction>) -> Unit =
|
||||||
|
DirectiveBasedActionUtils::checkAvailableActionsAreExpected
|
||||||
) {
|
) {
|
||||||
val pattern = if (text.startsWith("/"))
|
val pattern = if (text.startsWith("/"))
|
||||||
Pattern.compile(text.substring(1, text.length - 1))
|
Pattern.compile(text.substring(1, text.length - 1))
|
||||||
@@ -329,7 +341,7 @@ abstract class AbstractQuickFixMultiFileTest : KotlinLightCodeInsightFixtureTest
|
|||||||
StringUtil.join(infos, "\n")
|
StringUtil.join(infos, "\n")
|
||||||
)
|
)
|
||||||
} else {
|
} else {
|
||||||
DirectiveBasedActionUtils.checkAvailableActionsAreExpected(file, availableActions)
|
checkAvailableActionsAreExpected(file, availableActions)
|
||||||
}
|
}
|
||||||
} else {
|
} else {
|
||||||
if (!actionShouldBeAvailable) {
|
if (!actionShouldBeAvailable) {
|
||||||
|
|||||||
Reference in New Issue
Block a user