diff --git a/idea/tests/org/jetbrains/kotlin/idea/quickfix/AbstractQuickFixMultiFileTest.java b/idea/tests/org/jetbrains/kotlin/idea/quickfix/AbstractQuickFixMultiFileTest.java index 73cc1de3b35..dd5081dd7be 100644 --- a/idea/tests/org/jetbrains/kotlin/idea/quickfix/AbstractQuickFixMultiFileTest.java +++ b/idea/tests/org/jetbrains/kotlin/idea/quickfix/AbstractQuickFixMultiFileTest.java @@ -18,6 +18,7 @@ package org.jetbrains.kotlin.idea.quickfix; import com.intellij.codeInsight.CodeInsightSettings; import com.intellij.codeInsight.daemon.impl.HighlightInfo; +import com.intellij.codeInsight.daemon.quickFix.ActionHint; import com.intellij.codeInsight.daemon.quickFix.LightQuickFixTestCase; import com.intellij.codeInsight.intention.IntentionAction; import com.intellij.codeInsight.intention.impl.ShowIntentionActionsHandler; @@ -285,10 +286,10 @@ public abstract class AbstractQuickFixMultiFileTest extends KotlinDaemonAnalyzer try { PsiFile psiFile = getFile(); - Pair pair = LightQuickFixTestCase.parseActionHint(psiFile, beforeFile.content); - String text = pair.getFirst(); + ActionHint actionHint = ActionHint.parse(psiFile, beforeFile.content); + String text = actionHint.getExpectedText(); - boolean actionShouldBeAvailable = pair.getSecond(); + boolean actionShouldBeAvailable = actionHint.shouldPresent(); if (psiFile instanceof KtFile) { DirectiveBasedActionUtils.INSTANCE.checkForUnexpectedErrors((KtFile) psiFile); @@ -300,7 +301,7 @@ public abstract class AbstractQuickFixMultiFileTest extends KotlinDaemonAnalyzer String afterText = new StringBuilder(actualText).insert(getEditor().getCaretModel().getOffset(), "").toString(); - if (pair.second) { + if (actionShouldBeAvailable) { assertNotNull(".after file should exist", afterFile); if (!afterText.equals(afterFile.content)) { StringBuilder actualTestFile = new StringBuilder(); @@ -389,10 +390,10 @@ public abstract class AbstractQuickFixMultiFileTest extends KotlinDaemonAnalyzer try { PsiFile psiFile = getFile(); - Pair pair = LightQuickFixTestCase.parseActionHint(psiFile, originalFileText); - String text = pair.getFirst(); + ActionHint actionHint = ActionHint.parse(psiFile, originalFileText); + String text = actionHint.getExpectedText(); - boolean actionShouldBeAvailable = pair.getSecond(); + boolean actionShouldBeAvailable = actionHint.shouldPresent(); if (psiFile instanceof KtFile) { DirectiveBasedActionUtils.INSTANCE.checkForUnexpectedErrors((KtFile) psiFile); diff --git a/idea/tests/org/jetbrains/kotlin/idea/quickfix/AbstractQuickFixMultiModuleTest.kt b/idea/tests/org/jetbrains/kotlin/idea/quickfix/AbstractQuickFixMultiModuleTest.kt index cfcc992fc0e..ec6b357a981 100644 --- a/idea/tests/org/jetbrains/kotlin/idea/quickfix/AbstractQuickFixMultiModuleTest.kt +++ b/idea/tests/org/jetbrains/kotlin/idea/quickfix/AbstractQuickFixMultiModuleTest.kt @@ -16,6 +16,7 @@ package org.jetbrains.kotlin.idea.quickfix +import com.intellij.codeInsight.daemon.quickFix.ActionHint import com.intellij.codeInsight.daemon.quickFix.LightQuickFixTestCase import com.intellij.codeInsight.intention.IntentionAction import com.intellij.codeInsight.intention.impl.ShowIntentionActionsHandler @@ -62,10 +63,10 @@ abstract class AbstractQuickFixMultiModuleTest : AbstractMultiModuleTest() { try { val psiFile = actionFile - val pair = LightQuickFixTestCase.parseActionHint(psiFile, actionFileText) - val text = pair.getFirst() + val actionHint = ActionHint.parse(psiFile, actionFileText) + val text = actionHint.expectedText - val actionShouldBeAvailable = pair.getSecond() + val actionShouldBeAvailable = actionHint.shouldPresent() if (psiFile is KtFile) { DirectiveBasedActionUtils.checkForUnexpectedErrors(psiFile) diff --git a/idea/tests/org/jetbrains/kotlin/idea/quickfix/AbstractQuickFixTest.java b/idea/tests/org/jetbrains/kotlin/idea/quickfix/AbstractQuickFixTest.java index 77b81f70655..0dddc529e6e 100644 --- a/idea/tests/org/jetbrains/kotlin/idea/quickfix/AbstractQuickFixTest.java +++ b/idea/tests/org/jetbrains/kotlin/idea/quickfix/AbstractQuickFixTest.java @@ -17,6 +17,7 @@ package org.jetbrains.kotlin.idea.quickfix; import com.intellij.codeInsight.daemon.impl.HighlightInfo; +import com.intellij.codeInsight.daemon.quickFix.ActionHint; import com.intellij.codeInsight.daemon.quickFix.QuickFixTestCase; import com.intellij.codeInsight.intention.IntentionAction; import com.intellij.codeInspection.InspectionProfileEntry; @@ -29,7 +30,6 @@ import com.intellij.openapi.command.CommandProcessor; import com.intellij.openapi.projectRoots.JavaSdk; import com.intellij.openapi.projectRoots.Sdk; import com.intellij.openapi.startup.StartupManager; -import com.intellij.openapi.util.Pair; import com.intellij.openapi.util.io.FileUtil; import com.intellij.openapi.util.text.StringUtil; import com.intellij.openapi.vfs.CharsetToolkit; @@ -187,18 +187,14 @@ public abstract class AbstractQuickFixTest extends KotlinLightQuickFixTestCase { private static void applyAction(String contents, QuickFixTestCase quickFixTestCase, String testName, String testFullPath) throws Exception { - Pair pair = quickFixTestCase.parseActionHintImpl(quickFixTestCase.getFile(), contents); - String fileName = StringsKt.substringAfterLast(testFullPath, "/", ""); - String text = pair.getFirst().replace("${file}", fileName); - - boolean actionShouldBeAvailable = pair.getSecond().booleanValue(); + ActionHint actionHint = ActionHint.parse(quickFixTestCase.getFile(), contents.replace("${file}", fileName)); quickFixTestCase.beforeActionStarted(testName, contents); try { myWrapper = quickFixTestCase; - quickFixTestCase.doAction(text, actionShouldBeAvailable, testFullPath, testName); + quickFixTestCase.doAction(actionHint, testFullPath, testName); } finally { myWrapper = null; @@ -207,9 +203,8 @@ public abstract class AbstractQuickFixTest extends KotlinLightQuickFixTestCase { } @Override - protected void doAction(String text, boolean actionShouldBeAvailable, String testFullPath, String testName) - throws Exception { - doAction(text, actionShouldBeAvailable, testFullPath, testName, myWrapper); + protected void doAction(ActionHint actionHint, String testFullPath, String testName) throws Exception { + doAction(actionHint, testFullPath, testName, myWrapper); } @Override @@ -267,13 +262,13 @@ public abstract class AbstractQuickFixTest extends KotlinLightQuickFixTestCase { private void checkForUnexpectedActions() throws ClassNotFoundException { String text = getEditor().getDocument().getText(); - Pair pair = parseActionHintImpl(getFile(), text); - if (!pair.second) { + ActionHint actionHint = ActionHint.parse(getFile(), text); + if (!actionHint.shouldPresent()) { List actions = getAvailableActions(); String prefix = "class "; - if (pair.first.startsWith(prefix)) { - String className = pair.first.substring(prefix.length()); + if (actionHint.getExpectedText().startsWith(prefix)) { + String className = actionHint.getExpectedText().substring(prefix.length()); final Class aClass = Class.forName(className); assert IntentionAction.class.isAssignableFrom(aClass) : className + " should be inheritor of IntentionAction";