JS tests: use js files from some places by default:

* add all js files from testData/_commonFiles
* add all js files from <testDir>/_commonFiles
* add <testDir>/cases/<testName>.js if it exists
This commit is contained in:
Zalim Bashorov
2014-12-10 14:58:48 +03:00
parent 2f6a135135
commit 7d9b824411
2 changed files with 32 additions and 23 deletions
@@ -38,10 +38,12 @@ import org.jetbrains.jet.config.CompilerConfiguration;
import org.jetbrains.jet.lang.psi.JetFile;
import org.jetbrains.jet.lang.psi.JetPsiFactory;
import org.jetbrains.jet.lang.resolve.lazy.KotlinTestWithEnvironment;
import org.jetbrains.jet.plugin.JetFileType;
import org.jetbrains.k2js.JavaScript;
import org.jetbrains.k2js.config.Config;
import org.jetbrains.k2js.config.EcmaVersion;
import org.jetbrains.k2js.facade.MainCallParameters;
import org.jetbrains.k2js.config.LibrarySourcesConfigWithCaching;
import org.jetbrains.k2js.facade.MainCallParameters;
import org.jetbrains.k2js.test.rhino.RhinoResultChecker;
import org.jetbrains.k2js.test.utils.JsTestUtils;
import org.jetbrains.k2js.translate.context.Namer;
@@ -211,14 +213,32 @@ public abstract class BasicTest extends KotlinTestWithEnvironment {
@NotNull
protected List<String> additionalKotlinFiles() {
List<String> additionalFiles = Lists.newArrayList();
additionalFiles.addAll(JsTestUtils.kotlinFilesInDirectory(TEST_DATA_DIR_PATH + COMMON_FILES_DIR));
additionalFiles.addAll(JsTestUtils.kotlinFilesInDirectory(pathToTestDir() + COMMON_FILES_DIR));
// add all kotlin files from testData/_commonFiles
additionalFiles.addAll(JsTestUtils.getFilesInDirectoryByExtension(TEST_DATA_DIR_PATH + COMMON_FILES_DIR, JetFileType.EXTENSION));
// add all kotlin files from <testDir>/_commonFiles
additionalFiles.addAll(JsTestUtils.getFilesInDirectoryByExtension(pathToTestDir() + COMMON_FILES_DIR, JetFileType.EXTENSION));
return additionalFiles;
}
@NotNull
protected List<String> additionalJsFiles(@NotNull EcmaVersion ecmaVersion) {
return Lists.newArrayList();
List<String> additionalFiles = Lists.newArrayList();
// add all js files from testData/_commonFiles
additionalFiles.addAll(JsTestUtils.getFilesInDirectoryByExtension(TEST_DATA_DIR_PATH + COMMON_FILES_DIR, JavaScript.EXTENSION));
// add all js files from <testDir>/_commonFiles
additionalFiles.addAll(JsTestUtils.getFilesInDirectoryByExtension(pathToTestDir() + COMMON_FILES_DIR, JavaScript.EXTENSION));
// add <testDir>/cases/<testName>.js if it exists
String jsFilePath = getInputFilePath(getTestName(true) + JavaScript.DOT_EXTENSION);
File jsFile = new File(jsFilePath);
if (jsFile.exists() && jsFile.isFile()) {
additionalFiles.add(jsFilePath);
}
return additionalFiles;
}
// helpers
@@ -24,11 +24,11 @@ import org.jetbrains.k2js.JavaScript;
import org.jetbrains.k2js.config.EcmaVersion;
import java.io.File;
import java.io.FilenameFilter;
import java.io.IOException;
import java.util.ArrayList;
import java.util.EnumSet;
import java.util.List;
import java.util.regex.Pattern;
public final class JsTestUtils {
@@ -67,28 +67,17 @@ public final class JsTestUtils {
}
@NotNull
public static List<String> kotlinFilesInDirectory(@NotNull String directory) {
public static List<String> getFilesInDirectoryByExtension(@NotNull String directory, String extension) {
File dir = new File(directory);
if (!dir.isDirectory()) {
return ContainerUtil.emptyList();
}
if (!dir.isDirectory()) return ContainerUtil.emptyList();
File[] kotlinFiles = dir.listFiles(new FilenameFilter() {
List<File> files = FileUtil.findFilesByMask(Pattern.compile(".*\\." + extension + "$"), dir);
return ContainerUtil.map2List(files, new Function<File, String>() {
@Override
public boolean accept(@NotNull File dir, @NotNull String name) {
return name.endsWith(".kt");
}
});
if (kotlinFiles == null) {
return ContainerUtil.emptyList();
}
return ContainerUtil.map2List(kotlinFiles, new Function<File, String>() {
@Override
public String fun(File kotlinFile) {
return kotlinFile.getAbsolutePath();
public String fun(File file) {
return file.getAbsolutePath();
}
});
}