From d085f3e474d24a44ff4e597523aad72bbcd95afd Mon Sep 17 00:00:00 2001 From: Nikolay Krasko Date: Fri, 20 Apr 2018 18:53:50 +0300 Subject: [PATCH] Don't call `elementAtCaret` for file usage test (fix for 181) Fix testPropertyFileUsages test in 181. Starting from 181, call `elementAtCaret` with zero offset returns null element, when file starts with comment. Test fails because of that. https://github.com/JetBrains/intellij-community/commit/fdebc4084b9067ec19933d45a1ef2e04861206c3 --- .../findUsages/AbstractFindUsagesTest.kt | 19 +++++++++++++------ 1 file changed, 13 insertions(+), 6 deletions(-) diff --git a/idea/tests/org/jetbrains/kotlin/findUsages/AbstractFindUsagesTest.kt b/idea/tests/org/jetbrains/kotlin/findUsages/AbstractFindUsagesTest.kt index ccd58106aec..c3b94d2176e 100644 --- a/idea/tests/org/jetbrains/kotlin/findUsages/AbstractFindUsagesTest.kt +++ b/idea/tests/org/jetbrains/kotlin/findUsages/AbstractFindUsagesTest.kt @@ -80,12 +80,14 @@ abstract class AbstractFindUsagesTest : KotlinLightCodeInsightFixtureTestCase() val isPropertiesFile = FileUtilRt.getExtension(path) == "properties" + val isFindFileUsages = InTextDirectivesUtils.isDirectiveDefined(mainFileText, "## FIND_FILE_USAGES") + @Suppress("UNCHECKED_CAST") val caretElementClass = (if (!isPropertiesFile) { val caretElementClassNames = InTextDirectivesUtils.findLinesWithPrefixesRemoved(mainFileText, "// PSI_ELEMENT: ") Class.forName(caretElementClassNames.single()) } - else if (InTextDirectivesUtils.isDirectiveDefined(mainFileText, "## FIND_FILE_USAGES")) { + else if (isFindFileUsages) { PropertiesFile::class.java } else { @@ -117,11 +119,16 @@ abstract class AbstractFindUsagesTest : KotlinLightCodeInsightFixtureTestCase() } myFixture.configureByFile(mainFileName) - val caretElement = if (InTextDirectivesUtils.isDirectiveDefined(mainFileText, "// FIND_BY_REF")) - TargetElementUtil.findTargetElement(myFixture.editor, - TargetElementUtil.REFERENCED_ELEMENT_ACCEPTED or JavaTargetElementEvaluator.NEW_AS_CONSTRUCTOR)!! - else - myFixture.elementAtCaret + val caretElement = when { + InTextDirectivesUtils.isDirectiveDefined(mainFileText, "// FIND_BY_REF") -> TargetElementUtil.findTargetElement( + myFixture.editor, + TargetElementUtil.REFERENCED_ELEMENT_ACCEPTED or JavaTargetElementEvaluator.NEW_AS_CONSTRUCTOR + )!! + + isFindFileUsages -> myFixture.file + + else -> myFixture.elementAtCaret + } UsefulTestCase.assertInstanceOf(caretElement, caretElementClass) val containingFile = caretElement.containingFile