From 251d87fd223ffa0b5084b754de3219a2b005f29c Mon Sep 17 00:00:00 2001 From: Simon Ogorodnik Date: Mon, 15 Aug 2016 13:40:47 +0300 Subject: [PATCH] Added ability to test quickfix with java dependencies --- .../AbstractQuickFixMultiFileTest.java | 37 +++++++++++++------ 1 file changed, 26 insertions(+), 11 deletions(-) diff --git a/idea/tests/org/jetbrains/kotlin/idea/quickfix/AbstractQuickFixMultiFileTest.java b/idea/tests/org/jetbrains/kotlin/idea/quickfix/AbstractQuickFixMultiFileTest.java index 1a08833e807..989b8d06847 100644 --- a/idea/tests/org/jetbrains/kotlin/idea/quickfix/AbstractQuickFixMultiFileTest.java +++ b/idea/tests/org/jetbrains/kotlin/idea/quickfix/AbstractQuickFixMultiFileTest.java @@ -24,8 +24,11 @@ import com.intellij.codeInsight.intention.impl.ShowIntentionActionsHandler; import com.intellij.codeInspection.InspectionEP; import com.intellij.codeInspection.InspectionProfileEntry; import com.intellij.codeInspection.LocalInspectionEP; +import com.intellij.ide.highlighter.JavaFileType; import com.intellij.openapi.command.CommandProcessor; import com.intellij.openapi.extensions.Extensions; +import com.intellij.openapi.fileTypes.FileType; +import com.intellij.openapi.fileTypes.PlainTextFileType; import com.intellij.openapi.projectRoots.Sdk; import com.intellij.openapi.util.Pair; import com.intellij.openapi.util.io.FileUtil; @@ -73,6 +76,11 @@ public abstract class AbstractQuickFixMultiFileTest extends KotlinDaemonAnalyzer return texts; } + @NotNull + private static String extraFileNamePrefix(@NotNull String mainFileName) { + return mainFileName.replace(".Main.kt", ".").replace(".Main.java", "."); + } + protected void doTestWithoutExtraFile(String beforeFileName) throws Exception { doTest(beforeFileName, false); } @@ -116,7 +124,7 @@ public abstract class AbstractQuickFixMultiFileTest extends KotlinDaemonAnalyzer @Override protected void setUp() throws Exception { super.setUp(); - CodeInsightSettings.getInstance().EXCLUDED_PACKAGES = new String[]{"excludedPackage", "somePackage.ExcludedClass"}; + CodeInsightSettings.getInstance().EXCLUDED_PACKAGES = new String[] {"excludedPackage", "somePackage.ExcludedClass"}; } @Override @@ -125,6 +133,18 @@ public abstract class AbstractQuickFixMultiFileTest extends KotlinDaemonAnalyzer super.tearDown(); } + protected FileType guessFileType(TestFile file) { + if (file.name.contains("." + KotlinFileType.EXTENSION)) { + return KotlinFileType.INSTANCE; + } + else if (file.name.contains("." + JavaFileType.DEFAULT_EXTENSION)) { + return JavaFileType.INSTANCE; + } + else { + return PlainTextFileType.INSTANCE; + } + } + protected void doMultiFileTest(final String beforeFileName) throws Exception { String multifileText = FileUtil.loadFile(new File(beforeFileName), true); @@ -165,10 +185,10 @@ public abstract class AbstractQuickFixMultiFileTest extends KotlinDaemonAnalyzer subFiles.remove(beforeFile); for (TestFile file : subFiles) { - configureByText(KotlinFileType.INSTANCE, file.content); + configureByText(guessFileType(file), file.content); } - configureByText(KotlinFileType.INSTANCE, beforeFile.content); + configureByText(guessFileType(beforeFile), beforeFile.content); CommandProcessor.getInstance().executeCommand(getProject(), new Runnable() { @Override @@ -380,8 +400,9 @@ public abstract class AbstractQuickFixMultiFileTest extends KotlinDaemonAnalyzer } @NotNull - private static String extraFileNamePrefix(@NotNull String mainFileName) { - return mainFileName.replace(".Main.kt", ".").replace(".Main.java", "."); + private VirtualFile findVirtualFile(@NotNull String filePath) { + String absolutePath = getTestDataPath() + filePath; + return VfsTestUtil.findFileByCaseSensitivePath(absolutePath); } private static class TestFile { @@ -393,10 +414,4 @@ public abstract class AbstractQuickFixMultiFileTest extends KotlinDaemonAnalyzer this.content = content; } } - - @NotNull - private VirtualFile findVirtualFile(@NotNull String filePath) { - String absolutePath = getTestDataPath() + filePath; - return VfsTestUtil.findFileByCaseSensitivePath(absolutePath); - } }