Quick fix tests launch improved
This commit is contained in:
@@ -20,6 +20,7 @@ import java.util.List;
|
|||||||
*/
|
*/
|
||||||
public abstract class JetTestCaseBase extends LightDaemonAnalyzerTestCase {
|
public abstract class JetTestCaseBase extends LightDaemonAnalyzerTestCase {
|
||||||
|
|
||||||
|
private static FilenameFilter emptyFilter;
|
||||||
private boolean checkInfos = false;
|
private boolean checkInfos = false;
|
||||||
private String dataPath;
|
private String dataPath;
|
||||||
protected final String name;
|
protected final String name;
|
||||||
@@ -75,20 +76,49 @@ public abstract class JetTestCaseBase extends LightDaemonAnalyzerTestCase {
|
|||||||
return dataPath;
|
return dataPath;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
protected void setUp() throws Exception {
|
||||||
|
super.setUp();
|
||||||
|
emptyFilter = new FilenameFilter() {
|
||||||
|
@Override
|
||||||
|
public boolean accept(File file, String name) {
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
};
|
||||||
|
}
|
||||||
|
|
||||||
public interface NamedTestFactory {
|
public interface NamedTestFactory {
|
||||||
@NotNull Test createTest(@NotNull String dataPath, @NotNull String name);
|
@NotNull Test createTest(@NotNull String dataPath, @NotNull String name);
|
||||||
}
|
}
|
||||||
|
|
||||||
@NotNull
|
@NotNull
|
||||||
public static TestSuite suiteForDirectory(String baseDataDir, @NotNull final String dataPath, boolean recursive, @NotNull NamedTestFactory factory) {
|
public static TestSuite suiteForDirectory(String baseDataDir, @NotNull final String dataPath, boolean recursive, @NotNull NamedTestFactory factory) {
|
||||||
|
return suiteForDirectory(baseDataDir, dataPath, recursive, emptyFilter, factory);
|
||||||
|
}
|
||||||
|
|
||||||
|
@NotNull
|
||||||
|
public static TestSuite suiteForDirectory(String baseDataDir, @NotNull final String dataPath, boolean recursive, final FilenameFilter filter, @NotNull NamedTestFactory factory) {
|
||||||
TestSuite suite = new TestSuite(dataPath);
|
TestSuite suite = new TestSuite(dataPath);
|
||||||
final String extension = ".jet";
|
final String extensionJet = ".jet";
|
||||||
FilenameFilter extensionFilter = new FilenameFilter() {
|
final String extensionKt = ".kt";
|
||||||
|
final FilenameFilter extensionFilter = new FilenameFilter() {
|
||||||
@Override
|
@Override
|
||||||
public boolean accept(File dir, String name) {
|
public boolean accept(File dir, String name) {
|
||||||
return name.endsWith(extension);
|
return name.endsWith(extensionJet) || name.endsWith(extensionKt);
|
||||||
}
|
}
|
||||||
};
|
};
|
||||||
|
FilenameFilter resultFilter;
|
||||||
|
if (filter != emptyFilter) {
|
||||||
|
resultFilter = new FilenameFilter() {
|
||||||
|
@Override
|
||||||
|
public boolean accept(File file, String s) {
|
||||||
|
if (extensionFilter.accept(file, s) && filter.accept(file, s)) return true;
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
};
|
||||||
|
}
|
||||||
|
else {
|
||||||
|
resultFilter = extensionFilter;
|
||||||
|
}
|
||||||
File dir = new File(baseDataDir + dataPath);
|
File dir = new File(baseDataDir + dataPath);
|
||||||
FileFilter dirFilter = new FileFilter() {
|
FileFilter dirFilter = new FileFilter() {
|
||||||
@Override
|
@Override
|
||||||
@@ -105,11 +135,12 @@ public abstract class JetTestCaseBase extends LightDaemonAnalyzerTestCase {
|
|||||||
suite.addTest(suiteForDirectory(baseDataDir, dataPath + "/" + subdir.getName(), recursive, factory));
|
suite.addTest(suiteForDirectory(baseDataDir, dataPath + "/" + subdir.getName(), recursive, factory));
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
List<File> files = Arrays.asList(dir.listFiles(extensionFilter));
|
List<File> files = Arrays.asList(dir.listFiles(resultFilter));
|
||||||
Collections.sort(files);
|
Collections.sort(files);
|
||||||
for (File file : files) {
|
for (File file : files) {
|
||||||
String fileName = file.getName();
|
String fileName = file.getName();
|
||||||
assert fileName != null;
|
assert fileName != null;
|
||||||
|
String extension = fileName.endsWith(extensionJet) ? extensionJet : extensionKt;
|
||||||
suite.addTest(factory.createTest(dataPath, fileName.substring(0, fileName.length() - extension.length())));
|
suite.addTest(factory.createTest(dataPath, fileName.substring(0, fileName.length() - extension.length())));
|
||||||
}
|
}
|
||||||
return suite;
|
return suite;
|
||||||
|
|||||||
@@ -1,23 +0,0 @@
|
|||||||
package org.jetbrains.jet.plugin.quickfix;
|
|
||||||
|
|
||||||
import com.intellij.codeInsight.daemon.quickFix.LightQuickFixTestCase;
|
|
||||||
|
|
||||||
/**
|
|
||||||
* @author svtk
|
|
||||||
*/
|
|
||||||
public class AbstractModifierFixTest extends LightQuickFixTestCase {
|
|
||||||
|
|
||||||
public void test() throws Exception {
|
|
||||||
doAllTests();
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
|
||||||
protected String getBasePath() {
|
|
||||||
return "/quickfix/abstract";
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
|
||||||
protected String getTestDataPath() {
|
|
||||||
return PluginTestCaseBase.getTestDataPathBase();
|
|
||||||
}
|
|
||||||
}
|
|
||||||
@@ -1,24 +0,0 @@
|
|||||||
package org.jetbrains.jet.plugin.quickfix;
|
|
||||||
|
|
||||||
import com.intellij.codeInsight.daemon.quickFix.LightQuickFixTestCase;
|
|
||||||
import org.jetbrains.jet.JetTestCaseBase;
|
|
||||||
|
|
||||||
/**
|
|
||||||
* @author svtk
|
|
||||||
*/
|
|
||||||
public class AddPrimaryConstructorFixTest extends LightQuickFixTestCase {
|
|
||||||
|
|
||||||
public void test() throws Exception {
|
|
||||||
doAllTests();
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
|
||||||
protected String getBasePath() {
|
|
||||||
return "/quickfix/addPrimaryConstructor";
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
|
||||||
protected String getTestDataPath() {
|
|
||||||
return PluginTestCaseBase.getTestDataPathBase();
|
|
||||||
}
|
|
||||||
}
|
|
||||||
@@ -1,23 +0,0 @@
|
|||||||
package org.jetbrains.jet.plugin.quickfix;
|
|
||||||
|
|
||||||
import com.intellij.codeInsight.daemon.quickFix.LightQuickFixTestCase;
|
|
||||||
|
|
||||||
/**
|
|
||||||
* @author svtk
|
|
||||||
*/
|
|
||||||
public class ChangeVariableMutabilityFixTest extends LightQuickFixTestCase {
|
|
||||||
|
|
||||||
public void test() throws Exception {
|
|
||||||
doAllTests();
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
|
||||||
protected String getBasePath() {
|
|
||||||
return "/quickfix/changeVariableMutability";
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
|
||||||
protected String getTestDataPath() {
|
|
||||||
return PluginTestCaseBase.getTestDataPathBase();
|
|
||||||
}
|
|
||||||
}
|
|
||||||
@@ -1,32 +0,0 @@
|
|||||||
package org.jetbrains.jet.plugin.quickfix;
|
|
||||||
|
|
||||||
import com.intellij.codeInsight.daemon.quickFix.LightQuickFixTestCase;
|
|
||||||
import com.intellij.openapi.projectRoots.Sdk;
|
|
||||||
import org.jetbrains.jet.JetTestCaseBase;
|
|
||||||
|
|
||||||
/**
|
|
||||||
* @author svtk
|
|
||||||
*/
|
|
||||||
public class ClassImportFixTest extends LightQuickFixTestCase {
|
|
||||||
|
|
||||||
public void test() throws Exception {
|
|
||||||
doAllTests();
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
|
||||||
protected String getBasePath() {
|
|
||||||
return "/quickfix/classImport";
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
|
||||||
protected String getTestDataPath() {
|
|
||||||
return PluginTestCaseBase.getTestDataPathBase();
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
|
||||||
protected Sdk getProjectJDK() {
|
|
||||||
return JetTestCaseBase.jdkFromIdeaHome();
|
|
||||||
}
|
|
||||||
|
|
||||||
}
|
|
||||||
|
|
||||||
@@ -1,24 +0,0 @@
|
|||||||
package org.jetbrains.jet.plugin.quickfix;
|
|
||||||
|
|
||||||
import com.intellij.codeInsight.daemon.quickFix.LightQuickFixTestCase;
|
|
||||||
import org.jetbrains.jet.JetTestCaseBase;
|
|
||||||
|
|
||||||
/**
|
|
||||||
* @author svtk
|
|
||||||
*/
|
|
||||||
public class ExpressionsFixTest extends LightQuickFixTestCase {
|
|
||||||
|
|
||||||
public void test() throws Exception {
|
|
||||||
doAllTests();
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
|
||||||
protected String getBasePath() {
|
|
||||||
return "/quickfix/expressions";
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
|
||||||
protected String getTestDataPath() {
|
|
||||||
return PluginTestCaseBase.getTestDataPathBase();
|
|
||||||
}
|
|
||||||
}
|
|
||||||
@@ -0,0 +1,96 @@
|
|||||||
|
package org.jetbrains.jet.plugin.quickfix;
|
||||||
|
|
||||||
|
import com.google.common.collect.Lists;
|
||||||
|
import com.intellij.codeInsight.daemon.quickFix.LightQuickFixTestCase;
|
||||||
|
import com.intellij.openapi.projectRoots.Sdk;
|
||||||
|
import junit.framework.Test;
|
||||||
|
import junit.framework.TestSuite;
|
||||||
|
import org.jetbrains.annotations.NotNull;
|
||||||
|
import org.jetbrains.jet.JetTestCaseBase;
|
||||||
|
|
||||||
|
import java.io.File;
|
||||||
|
import java.io.FilenameFilter;
|
||||||
|
import java.util.ArrayList;
|
||||||
|
import java.util.Arrays;
|
||||||
|
import java.util.Collections;
|
||||||
|
import java.util.List;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @author svtk
|
||||||
|
*/
|
||||||
|
public class JetQuickFixTest extends LightQuickFixTestCase {
|
||||||
|
private final String dataPath;
|
||||||
|
private final String name;
|
||||||
|
private static FilenameFilter quickFixTestsFilter;
|
||||||
|
|
||||||
|
public JetQuickFixTest(String dataPath, String name) {
|
||||||
|
this.dataPath = dataPath;
|
||||||
|
this.name = name;
|
||||||
|
}
|
||||||
|
|
||||||
|
private static void setFilter() {
|
||||||
|
final ArrayList<String> appropriateDirs = Lists.newArrayList("classImport", "expressions");
|
||||||
|
quickFixTestsFilter = new FilenameFilter() {
|
||||||
|
@Override
|
||||||
|
public boolean accept(File file, String s) {
|
||||||
|
if (appropriateDirs.contains(s)) return true;
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
};
|
||||||
|
}
|
||||||
|
|
||||||
|
public static Test suite() {
|
||||||
|
//setFilter(); //to launch only part of tests
|
||||||
|
TestSuite suite = new TestSuite();
|
||||||
|
FilenameFilter fileNameFilter = new FilenameFilter() {
|
||||||
|
@Override
|
||||||
|
public boolean accept(File file, String s) {
|
||||||
|
if (s.startsWith("before")) return true;
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
};
|
||||||
|
JetTestCaseBase.NamedTestFactory namedTestFactory = new JetTestCaseBase.NamedTestFactory() {
|
||||||
|
@NotNull
|
||||||
|
@Override
|
||||||
|
public Test createTest(@NotNull String dataPath, @NotNull String name) {
|
||||||
|
return new JetQuickFixTest(dataPath, name);
|
||||||
|
}
|
||||||
|
};
|
||||||
|
File dir = new File(getTestDataPathBase());
|
||||||
|
List<String> subDirs = Arrays.asList(quickFixTestsFilter != null ? dir.list(quickFixTestsFilter) : dir.list());
|
||||||
|
Collections.sort(subDirs);
|
||||||
|
for (String subDirName : subDirs) {
|
||||||
|
suite.addTest(JetTestCaseBase.suiteForDirectory(getTestDataPathBase(), subDirName, false, fileNameFilter, namedTestFactory));
|
||||||
|
|
||||||
|
}
|
||||||
|
return suite;
|
||||||
|
}
|
||||||
|
|
||||||
|
public static String getTestDataPathBase() {
|
||||||
|
return JetTestCaseBase.getHomeDirectory() + "/idea/testData/quickfix/";
|
||||||
|
}
|
||||||
|
|
||||||
|
public String getName() {
|
||||||
|
return "test" + name.replaceFirst(name.substring(0, 1), name.substring(0, 1).toUpperCase());
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
protected void runTest() throws Throwable {
|
||||||
|
doSingleTest(name.substring("before".length()) + ".kt");
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
protected String getBasePath() {
|
||||||
|
return "/quickfix/" + dataPath;
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
protected String getTestDataPath() {
|
||||||
|
return PluginTestCaseBase.getTestDataPathBase();
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
protected Sdk getProjectJDK() {
|
||||||
|
return JetTestCaseBase.jdkFromIdeaHome();
|
||||||
|
}
|
||||||
|
}
|
||||||
@@ -1,26 +0,0 @@
|
|||||||
package org.jetbrains.jet.plugin.quickfix;
|
|
||||||
|
|
||||||
import com.intellij.codeInsight.daemon.quickFix.LightQuickFixTestCase;
|
|
||||||
import org.jetbrains.jet.JetTestCaseBase;
|
|
||||||
|
|
||||||
/**
|
|
||||||
* @author svtk
|
|
||||||
*/
|
|
||||||
public class ModifiersFixTest extends LightQuickFixTestCase {
|
|
||||||
|
|
||||||
public void test() throws Exception {
|
|
||||||
doAllTests();
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
|
||||||
protected String getBasePath() {
|
|
||||||
return "/quickfix/modifiers";
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
|
||||||
protected String getTestDataPath() {
|
|
||||||
return PluginTestCaseBase.getTestDataPathBase();
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
@@ -1,25 +0,0 @@
|
|||||||
package org.jetbrains.jet.plugin.quickfix;
|
|
||||||
|
|
||||||
import com.intellij.codeInsight.daemon.quickFix.LightQuickFixTestCase;
|
|
||||||
import org.jetbrains.jet.JetTestCaseBase;
|
|
||||||
|
|
||||||
/**
|
|
||||||
* @author svtk
|
|
||||||
*/
|
|
||||||
public class OverrideModifierFixTest extends LightQuickFixTestCase {
|
|
||||||
|
|
||||||
public void test() throws Exception {
|
|
||||||
doAllTests();
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
|
||||||
protected String getBasePath() {
|
|
||||||
return "/quickfix/override";
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
|
||||||
protected String getTestDataPath() {
|
|
||||||
return PluginTestCaseBase.getTestDataPathBase();
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
@@ -1,31 +0,0 @@
|
|||||||
package org.jetbrains.jet.plugin.quickfix;
|
|
||||||
|
|
||||||
import com.intellij.codeInsight.daemon.quickFix.LightQuickFixTestCase;
|
|
||||||
import com.intellij.openapi.projectRoots.Sdk;
|
|
||||||
import org.jetbrains.jet.JetTestCaseBase;
|
|
||||||
|
|
||||||
/**
|
|
||||||
* @author svtk
|
|
||||||
*/
|
|
||||||
public class TypeAdditionFixTests extends LightQuickFixTestCase {
|
|
||||||
|
|
||||||
public void test() throws Exception {
|
|
||||||
doAllTests();
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
|
||||||
protected String getBasePath() {
|
|
||||||
return "/quickfix/typeAddition";
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
|
||||||
protected String getTestDataPath() {
|
|
||||||
return PluginTestCaseBase.getTestDataPathBase();
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
|
||||||
protected Sdk getProjectJDK() {
|
|
||||||
return JetTestCaseBase.jdkFromIdeaHome();
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
Reference in New Issue
Block a user