From 7d9b82441119f7eb3cb89e9149ead667d41d28be Mon Sep 17 00:00:00 2001 From: Zalim Bashorov Date: Wed, 10 Dec 2014 14:58:48 +0300 Subject: [PATCH] JS tests: use js files from some places by default: * add all js files from testData/_commonFiles * add all js files from /_commonFiles * add /cases/.js if it exists --- .../org/jetbrains/k2js/test/BasicTest.java | 28 ++++++++++++++++--- .../k2js/test/utils/JsTestUtils.java | 27 ++++++------------ 2 files changed, 32 insertions(+), 23 deletions(-) diff --git a/js/js.tests/test/org/jetbrains/k2js/test/BasicTest.java b/js/js.tests/test/org/jetbrains/k2js/test/BasicTest.java index 247aac686f5..cab1cd4ddef 100644 --- a/js/js.tests/test/org/jetbrains/k2js/test/BasicTest.java +++ b/js/js.tests/test/org/jetbrains/k2js/test/BasicTest.java @@ -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 additionalKotlinFiles() { List 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 /_commonFiles + additionalFiles.addAll(JsTestUtils.getFilesInDirectoryByExtension(pathToTestDir() + COMMON_FILES_DIR, JetFileType.EXTENSION)); + return additionalFiles; } @NotNull protected List additionalJsFiles(@NotNull EcmaVersion ecmaVersion) { - return Lists.newArrayList(); + List 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 /_commonFiles + additionalFiles.addAll(JsTestUtils.getFilesInDirectoryByExtension(pathToTestDir() + COMMON_FILES_DIR, JavaScript.EXTENSION)); + + // add /cases/.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 diff --git a/js/js.tests/test/org/jetbrains/k2js/test/utils/JsTestUtils.java b/js/js.tests/test/org/jetbrains/k2js/test/utils/JsTestUtils.java index 7bd1dcb659d..ed49bf8d57f 100644 --- a/js/js.tests/test/org/jetbrains/k2js/test/utils/JsTestUtils.java +++ b/js/js.tests/test/org/jetbrains/k2js/test/utils/JsTestUtils.java @@ -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 kotlinFilesInDirectory(@NotNull String directory) { + public static List 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 files = FileUtil.findFilesByMask(Pattern.compile(".*\\." + extension + "$"), dir); + + return ContainerUtil.map2List(files, new Function() { @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() { - @Override - public String fun(File kotlinFile) { - return kotlinFile.getAbsolutePath(); + public String fun(File file) { + return file.getAbsolutePath(); } }); }