Added ability to test quickfix with java dependencies

This commit is contained in:
Simon Ogorodnik
2016-08-15 13:40:47 +03:00
committed by Valentin Kipyatkov
parent f40bb57d79
commit 251d87fd22
@@ -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);
}
}