diff --git a/compiler/tests/org/jetbrains/kotlin/test/MockLibraryUtil.java b/compiler/tests/org/jetbrains/kotlin/test/MockLibraryUtil.java index 2cae3ad349e..f55bfc4789d 100644 --- a/compiler/tests/org/jetbrains/kotlin/test/MockLibraryUtil.java +++ b/compiler/tests/org/jetbrains/kotlin/test/MockLibraryUtil.java @@ -123,7 +123,7 @@ public class MockLibraryUtil { File outDir = new File(contentDir, "out"); File outputFile = new File(outDir, jarName + ".js"); File outputMetaFile = new File(outDir, jarName + ".meta.js"); - compileKotlin2JS(sourcesPath, outputFile, outputMetaFile); + compileKotlin2JS(sourcesPath, outputFile, outputMetaFile, true); return createJarFile(contentDir, outDir, sourcesPath, jarName, addSources); } @@ -186,11 +186,14 @@ public class MockLibraryUtil { runJvmCompiler(args); } - public static void compileKotlin2JS(@NotNull String sourcesPath, @NotNull File outputFile, @Nullable File metaFile) { + public static void compileKotlin2JS(@NotNull String sourcesPath, @NotNull File outputFile, @Nullable File metaFile, boolean kjsm) { List args = new ArrayList(); if (metaFile != null) { args.add("-meta-info"); } + if (kjsm) { + args.add("-kjsm"); + } args.add("-output"); args.add(outputFile.getAbsolutePath()); diff --git a/idea/idea-completion/tests/org/jetbrains/kotlin/idea/completion/test/AbstractJSBasicCompletionTest.java b/idea/idea-completion/tests/org/jetbrains/kotlin/idea/completion/test/AbstractJSBasicCompletionTest.java index 678eb9e0273..9041c2ae15d 100644 --- a/idea/idea-completion/tests/org/jetbrains/kotlin/idea/completion/test/AbstractJSBasicCompletionTest.java +++ b/idea/idea-completion/tests/org/jetbrains/kotlin/idea/completion/test/AbstractJSBasicCompletionTest.java @@ -19,7 +19,6 @@ package org.jetbrains.kotlin.idea.completion.test; import com.intellij.codeInsight.completion.CompletionType; import com.intellij.testFramework.LightProjectDescriptor; import org.jetbrains.annotations.NotNull; -import org.jetbrains.kotlin.idea.js.KotlinJavaScriptLibraryManager; import org.jetbrains.kotlin.idea.test.KotlinStdJSProjectDescriptor; import org.jetbrains.kotlin.js.resolve.JsPlatform; import org.jetbrains.kotlin.resolve.TargetPlatform; @@ -37,12 +36,6 @@ public abstract class AbstractJSBasicCompletionTest extends KotlinFixtureComplet return JsPlatform.INSTANCE$; } - @Override - protected void setUpFixture(@NotNull String testPath) { - super.setUpFixture(testPath); - KotlinJavaScriptLibraryManager.getInstance(getProject()).syncUpdateProjectLibrary(); - } - @NotNull @Override protected CompletionType defaultCompletionType() { diff --git a/idea/idea-test-framework/src/org/jetbrains/kotlin/idea/test/ConfigLibraryUtil.java b/idea/idea-test-framework/src/org/jetbrains/kotlin/idea/test/ConfigLibraryUtil.java index 0b56bcef2a1..748d35bcf1f 100644 --- a/idea/idea-test-framework/src/org/jetbrains/kotlin/idea/test/ConfigLibraryUtil.java +++ b/idea/idea-test-framework/src/org/jetbrains/kotlin/idea/test/ConfigLibraryUtil.java @@ -27,7 +27,6 @@ import com.intellij.openapi.util.Computable; import com.intellij.openapi.vfs.VfsUtil; import kotlin.jvm.functions.Function0; import org.jetbrains.annotations.NotNull; -import org.jetbrains.kotlin.idea.js.KotlinJavaScriptLibraryManager; import org.jetbrains.kotlin.idea.util.application.ApplicationUtilsKt; import org.jetbrains.kotlin.test.InTextDirectivesUtils; import org.jetbrains.kotlin.utils.PathUtil; @@ -87,7 +86,6 @@ public class ConfigLibraryUtil { public static void unConfigureKotlinJsRuntimeAndSdk(Module module, Sdk sdk) { configureSdk(module, sdk); removeLibrary(module, DEFAULT_KOTLIN_JS_STDLIB_NAME); - removeLibrary(module, KotlinJavaScriptLibraryManager.LIBRARY_NAME); } public static void configureSdk(@NotNull final Module module, @NotNull final Sdk sdk) { diff --git a/idea/idea-test-framework/src/org/jetbrains/kotlin/idea/test/testUtils.kt b/idea/idea-test-framework/src/org/jetbrains/kotlin/idea/test/testUtils.kt index 84ba0940f4f..d3651bb3f3d 100644 --- a/idea/idea-test-framework/src/org/jetbrains/kotlin/idea/test/testUtils.kt +++ b/idea/idea-test-framework/src/org/jetbrains/kotlin/idea/test/testUtils.kt @@ -34,7 +34,6 @@ import org.jetbrains.kotlin.idea.caches.resolve.LibraryModificationTracker import org.jetbrains.kotlin.idea.caches.resolve.analyzeFullyAndGetResult import org.jetbrains.kotlin.idea.decompiler.KotlinClassFileViewProvider import org.jetbrains.kotlin.idea.decompiler.KtClsFile -import org.jetbrains.kotlin.idea.js.KotlinJavaScriptLibraryManager import org.jetbrains.kotlin.idea.references.BuiltInsReferenceResolver import org.jetbrains.kotlin.psi.KtFile import java.util.* @@ -68,7 +67,6 @@ public fun Module.configureAs(kind: ModuleKind) { this.configureAs(ProjectDescriptorWithStdlibSources.INSTANCE) ModuleKind.KOTLIN_JAVASCRIPT -> { this.configureAs(KotlinStdJSProjectDescriptor.instance) - KotlinJavaScriptLibraryManager.getInstance(this.getProject()).syncUpdateProjectLibrary() } else -> throw IllegalArgumentException("Unknown kind=$kind") diff --git a/idea/tests/org/jetbrains/kotlin/idea/decompiler/navigation/NavigateToDecompiledLibraryTest.java b/idea/tests/org/jetbrains/kotlin/idea/decompiler/navigation/NavigateToDecompiledLibraryTest.java index 10dce9dda96..4bc7f2ee104 100644 --- a/idea/tests/org/jetbrains/kotlin/idea/decompiler/navigation/NavigateToDecompiledLibraryTest.java +++ b/idea/tests/org/jetbrains/kotlin/idea/decompiler/navigation/NavigateToDecompiledLibraryTest.java @@ -175,6 +175,22 @@ public class NavigateToDecompiledLibraryTest extends LightCodeInsightFixtureTest return classFile; } + @NotNull + public static VirtualFile getKjsmFile( + @NotNull String packageName, + @NotNull String className, + @NotNull Module module + ) { + VirtualFile root = findTestLibraryRoot(module); + assertNotNull(root); + root.refresh(false, true); + VirtualFile packageDir = root.findFileByRelativePath(JdkAndMockLibraryProjectDescriptor.LIBRARY_NAME + "/" + packageName.replace(".", "/")); + assertNotNull(packageDir); + VirtualFile classFile = packageDir.findChild(className + ".kjsm"); + assertNotNull(classFile); + return classFile; + } + @Nullable public static VirtualFile findTestLibraryRoot(@NotNull Module module) { for (OrderEntry orderEntry : ModuleRootManager.getInstance(module).getOrderEntries()) { diff --git a/idea/tests/org/jetbrains/kotlin/idea/decompiler/stubBuilder/KotlinJavaScriptStubConsistencyTest.kt b/idea/tests/org/jetbrains/kotlin/idea/decompiler/stubBuilder/KotlinJavaScriptStubConsistencyTest.kt index 566aa319ef0..2b9931c817f 100644 --- a/idea/tests/org/jetbrains/kotlin/idea/decompiler/stubBuilder/KotlinJavaScriptStubConsistencyTest.kt +++ b/idea/tests/org/jetbrains/kotlin/idea/decompiler/stubBuilder/KotlinJavaScriptStubConsistencyTest.kt @@ -18,7 +18,6 @@ package org.jetbrains.kotlin.idea.decompiler.stubBuilder import com.intellij.openapi.vfs.VirtualFile import org.jetbrains.kotlin.idea.decompiler.textBuilder.buildDecompiledTextFromJsMetadata -import org.jetbrains.kotlin.idea.js.KotlinJavaScriptLibraryManager import org.jetbrains.kotlin.idea.test.KotlinStdJSProjectDescriptor import org.jetbrains.kotlin.idea.vfilefinder.JsVirtualFileFinder import org.jetbrains.kotlin.load.kotlin.PackageClassUtils @@ -26,11 +25,6 @@ import org.jetbrains.kotlin.load.kotlin.VirtualFileFinder import org.jetbrains.kotlin.name.FqName public class KotlinJavaScriptStubConsistencyTest : StubConsistencyBaseTest() { - override fun setUp() { - super.setUp() - KotlinJavaScriptLibraryManager.getInstance(getProject()).syncUpdateProjectLibrary() - } - override fun getFileIds() = listOf( "java.util", "jquery", "jquery.ui", "kotlin", "kotlin.browser", "kotlin.dom", "kotlin.js" diff --git a/idea/tests/org/jetbrains/kotlin/idea/decompiler/textBuilder/AbstractDecompiledTextFromJsMetadataTest.kt b/idea/tests/org/jetbrains/kotlin/idea/decompiler/textBuilder/AbstractDecompiledTextFromJsMetadataTest.kt index ad6bb868b92..73892258cc6 100644 --- a/idea/tests/org/jetbrains/kotlin/idea/decompiler/textBuilder/AbstractDecompiledTextFromJsMetadataTest.kt +++ b/idea/tests/org/jetbrains/kotlin/idea/decompiler/textBuilder/AbstractDecompiledTextFromJsMetadataTest.kt @@ -19,21 +19,14 @@ package org.jetbrains.kotlin.idea.decompiler.textBuilder import com.intellij.openapi.vfs.VirtualFile import com.intellij.psi.PsiFile import org.jetbrains.kotlin.idea.decompiler.KotlinJavascriptMetaFile -import org.jetbrains.kotlin.idea.js.KotlinJavaScriptLibraryManager +import org.jetbrains.kotlin.idea.decompiler.navigation.NavigateToDecompiledLibraryTest import org.jetbrains.kotlin.idea.test.ModuleKind import org.jetbrains.kotlin.idea.test.configureAs -import org.jetbrains.kotlin.idea.vfilefinder.JsVirtualFileFinder -import org.jetbrains.kotlin.name.ClassId -import org.jetbrains.kotlin.name.FqName import kotlin.test.assertTrue public abstract class AbstractDecompiledTextFromJsMetadataTest(baseDirectory: String) : AbstractDecompiledTextBaseTest(baseDirectory, true) { - protected override fun getFileToDecompile(): VirtualFile { - val className = getTestName(false) - val virtualFileFinder = JsVirtualFileFinder.SERVICE.getInstance(project) - val classId = ClassId(FqName(TEST_PACKAGE), FqName(className), false) - return virtualFileFinder.findVirtualFileWithHeader(classId)!! - } + protected override fun getFileToDecompile(): VirtualFile = + NavigateToDecompiledLibraryTest.getKjsmFile(TEST_PACKAGE, getTestName(false), myModule!!) protected override fun checkPsiFile(psiFile: PsiFile) = assertTrue(psiFile is KotlinJavascriptMetaFile, "Expecting decompiled kotlin javascript file, was: " + psiFile.javaClass) @@ -41,7 +34,6 @@ public abstract class AbstractDecompiledTextFromJsMetadataTest(baseDirectory: St override fun setUp() { super.setUp() myModule!!.configureAs(ModuleKind.KOTLIN_JAVASCRIPT) - KotlinJavaScriptLibraryManager.getInstance(project).syncUpdateProjectLibrary() } } diff --git a/idea/tests/org/jetbrains/kotlin/idea/decompiler/textBuilder/KotlinJavaScriptDecompiledTextConsistencyTest.kt b/idea/tests/org/jetbrains/kotlin/idea/decompiler/textBuilder/KotlinJavaScriptDecompiledTextConsistencyTest.kt index e33ff077f72..851a97f79cc 100644 --- a/idea/tests/org/jetbrains/kotlin/idea/decompiler/textBuilder/KotlinJavaScriptDecompiledTextConsistencyTest.kt +++ b/idea/tests/org/jetbrains/kotlin/idea/decompiler/textBuilder/KotlinJavaScriptDecompiledTextConsistencyTest.kt @@ -20,7 +20,6 @@ import com.intellij.openapi.vfs.VirtualFile import org.jetbrains.kotlin.descriptors.CallableMemberDescriptor import org.jetbrains.kotlin.descriptors.ModuleDescriptor import org.jetbrains.kotlin.descriptors.PackageFragmentDescriptor -import org.jetbrains.kotlin.idea.js.KotlinJavaScriptLibraryManager import org.jetbrains.kotlin.idea.test.KotlinStdJSProjectDescriptor import org.jetbrains.kotlin.idea.vfilefinder.JsVirtualFileFinder import org.jetbrains.kotlin.js.resolve.JsPlatform @@ -41,12 +40,7 @@ public class KotlinJavaScriptDecompiledTextConsistencyTest : TextConsistencyBase override fun getTopLevelMembers(): Map = mapOf("kotlin" to "intArrayOf") - override fun getVirtualFileFinder(): VirtualFileFinder = JsVirtualFileFinder.SERVICE.getInstance(getProject()) - - override fun setUp() { - super.setUp() - KotlinJavaScriptLibraryManager.getInstance(project).syncUpdateProjectLibrary() - } + override fun getVirtualFileFinder(): VirtualFileFinder = JsVirtualFileFinder.SERVICE.getInstance(project) override fun getDecompiledText(packageFile: VirtualFile, resolver: ResolverForDecompiler?): String = (resolver?.let { buildDecompiledTextFromJsMetadata(packageFile, it) } ?: buildDecompiledTextFromJsMetadata(packageFile)).text @@ -55,7 +49,7 @@ public class KotlinJavaScriptDecompiledTextConsistencyTest : TextConsistencyBase val stdlibJar = PathUtil.getKotlinPathsForDistDirectory().jsStdLibJarPath.absolutePath val module = KotlinTestUtils.createEmptyModule("", JsPlatform) val metadata = KotlinJavascriptMetadataUtils.loadMetadata(stdlibJar) - assert(metadata.size() == 1) + assert(metadata.size == 1) val provider = KotlinJavascriptSerializationUtil.createPackageFragmentProvider(module, metadata[0].body, LockBasedStorageManager()) .sure { "No package fragment provider was created" } diff --git a/idea/tests/org/jetbrains/kotlin/idea/internal/KotlinJavaScriptRefreshLibraryTest.kt b/idea/tests/org/jetbrains/kotlin/idea/internal/KotlinJavaScriptRefreshLibraryTest.kt deleted file mode 100644 index ce8b3d770b4..00000000000 --- a/idea/tests/org/jetbrains/kotlin/idea/internal/KotlinJavaScriptRefreshLibraryTest.kt +++ /dev/null @@ -1,86 +0,0 @@ -/* - * Copyright 2010-2015 JetBrains s.r.o. - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -package org.jetbrains.kotlin.idea.internal - -import com.intellij.openapi.application.ModalityState -import com.intellij.openapi.module.Module -import com.intellij.openapi.roots.ModifiableRootModel -import com.intellij.openapi.roots.OrderRootType -import com.intellij.openapi.util.io.FileUtilRt -import com.intellij.openapi.vfs.LocalFileSystem -import com.intellij.openapi.vfs.newvfs.RefreshQueue -import org.jetbrains.kotlin.idea.js.KotlinJavaScriptLibraryManager -import org.jetbrains.kotlin.idea.test.JdkAndMockLibraryProjectDescriptor -import org.jetbrains.kotlin.idea.test.KotlinLightCodeInsightFixtureTestCase -import org.jetbrains.kotlin.idea.test.KotlinStdJSProjectDescriptor -import org.jetbrains.kotlin.idea.test.configureAs -import org.jetbrains.kotlin.idea.vfilefinder.JsVirtualFileFinder -import org.jetbrains.kotlin.load.kotlin.VirtualFileFinder -import org.jetbrains.kotlin.name.ClassId -import org.jetbrains.kotlin.name.FqName -import org.jetbrains.kotlin.test.MockLibraryUtil -import java.io.File - -public class KotlinJavaScriptRefreshLibraryTest : KotlinLightCodeInsightFixtureTestCase() { - - private val TEST_DATA_PATH = "idea/testData/internal" - private val TEST_PACKAGE = "test" - - fun getVirtualFileFinder(): VirtualFileFinder = - JsVirtualFileFinder.SERVICE.getInstance(project) - - override fun getProjectDescriptor() = KotlinStdJSProjectDescriptor.instance - - fun testRefreshLibrary() { - val testPath = TEST_DATA_PATH + File.separator + getTestName(true) - - val oldLibSources = testPath + File.separator + "LibraryOld" - val newLibSources = testPath + File.separator + "LibraryNew" - - val oldLibraryJar = MockLibraryUtil.compileJsLibraryToJar(oldLibSources, JdkAndMockLibraryProjectDescriptor.LIBRARY_NAME, false) - val newLibraryJar = MockLibraryUtil.compileJsLibraryToJar(newLibSources, JdkAndMockLibraryProjectDescriptor.LIBRARY_NAME, false) - - myModule.configureAs(object: JdkAndMockLibraryProjectDescriptor(oldLibSources, false, true) { - override fun configureModule(module: Module, model: ModifiableRootModel) { - val jarUrl = "jar://" + FileUtilRt.toSystemIndependentName(oldLibraryJar.absolutePath) + "!/" - - val libraryModel = model.moduleLibraryTable.modifiableModel.createLibrary(JdkAndMockLibraryProjectDescriptor.LIBRARY_NAME).modifiableModel - libraryModel.addRoot(jarUrl, OrderRootType.CLASSES) - libraryModel.commit() - } - }) - - KotlinJavaScriptLibraryManager.getInstance(project).syncUpdateProjectLibrary() - - val classIdA = ClassId(FqName(TEST_PACKAGE), FqName("A"), false) - val classIdB = ClassId(FqName(TEST_PACKAGE), FqName("B"), false) - val classIdC = ClassId(FqName(TEST_PACKAGE), FqName("C"), false) - - assert(getVirtualFileFinder().findVirtualFileWithHeader(classIdA) != null) { "old: expected not null for A"} - assert(getVirtualFileFinder().findVirtualFileWithHeader(classIdB) != null) { "old: expected not null for B"} - assert(getVirtualFileFinder().findVirtualFileWithHeader(classIdC) == null) { "old: expected null for C"} - - FileUtilRt.copy(newLibraryJar, oldLibraryJar) - - val libraryJarVirtualFile = LocalFileSystem.getInstance().findFileByIoFile(oldLibraryJar) - RefreshQueue.getInstance().refresh(/* async = */ false, /* recursive = */ true, /* finishRunnable = */ null, ModalityState.NON_MODAL, libraryJarVirtualFile) - - assert(getVirtualFileFinder().findVirtualFileWithHeader(classIdA) != null) { "new: expected not null for A"} - assert(getVirtualFileFinder().findVirtualFileWithHeader(classIdB) == null) { "new: expected null for B"} - assert(getVirtualFileFinder().findVirtualFileWithHeader(classIdC) != null) { "new: expected not null for C"} - } -} \ No newline at end of file diff --git a/idea/tests/org/jetbrains/kotlin/idea/quickfix/AbstractQuickFixTest.java b/idea/tests/org/jetbrains/kotlin/idea/quickfix/AbstractQuickFixTest.java index f7bf0470f90..ccbc8ff9b2e 100644 --- a/idea/tests/org/jetbrains/kotlin/idea/quickfix/AbstractQuickFixTest.java +++ b/idea/tests/org/jetbrains/kotlin/idea/quickfix/AbstractQuickFixTest.java @@ -40,7 +40,6 @@ import org.apache.commons.lang.SystemUtils; import org.jetbrains.annotations.NotNull; import org.jetbrains.annotations.Nullable; import org.jetbrains.kotlin.idea.KotlinLightQuickFixTestCase; -import org.jetbrains.kotlin.idea.js.KotlinJavaScriptLibraryManager; import org.jetbrains.kotlin.idea.quickfix.utils.QuickfixTestUtilsKt; import org.jetbrains.kotlin.idea.test.ConfigLibraryUtil; import org.jetbrains.kotlin.idea.test.DirectiveBasedActionUtils; @@ -168,7 +167,6 @@ public abstract class AbstractQuickFixTest extends KotlinLightQuickFixTestCase { FileBasedIndex.getInstance().requestRebuild(StubUpdatingIndex.INDEX_ID); ConfigLibraryUtil.configureKotlinJsRuntimeAndSdk(getModule(), getFullJavaJDK()); - KotlinJavaScriptLibraryManager.getInstance(getProject()).syncUpdateProjectLibrary(); } else if (beforeFileName.endsWith("Runtime.kt")) { ConfigLibraryUtil.configureKotlinRuntimeAndSdk(getModule(), getFullJavaJDK()); diff --git a/js/js.tests/test/org/jetbrains/kotlin/js/test/BasicTest.java b/js/js.tests/test/org/jetbrains/kotlin/js/test/BasicTest.java index 47ef6619c36..62f0b5f885b 100644 --- a/js/js.tests/test/org/jetbrains/kotlin/js/test/BasicTest.java +++ b/js/js.tests/test/org/jetbrains/kotlin/js/test/BasicTest.java @@ -67,7 +67,7 @@ public abstract class BasicTest extends KotlinTestWithEnvironment { private static final boolean DELETE_OUT = false; public static final String TEST_DATA_DIR_PATH = "js/js.translator/testData/"; - public static final String DIST_DIR_PATH = "dist/"; + public static final String DIST_DIR_JS_PATH = "dist/js/"; private static final String CASES = "cases/"; private static final String OUT = "out/"; diff --git a/js/js.tests/test/org/jetbrains/kotlin/js/test/rhino/RhinoUtils.java b/js/js.tests/test/org/jetbrains/kotlin/js/test/rhino/RhinoUtils.java index ebe8d8b21ff..2dac6a9d952 100644 --- a/js/js.tests/test/org/jetbrains/kotlin/js/test/rhino/RhinoUtils.java +++ b/js/js.tests/test/org/jetbrains/kotlin/js/test/rhino/RhinoUtils.java @@ -34,7 +34,7 @@ import java.util.Map; import java.util.Set; import static org.jetbrains.kotlin.js.config.LibrarySourcesConfig.*; -import static org.jetbrains.kotlin.js.test.BasicTest.DIST_DIR_PATH; +import static org.jetbrains.kotlin.js.test.BasicTest.DIST_DIR_JS_PATH; import static org.jetbrains.kotlin.js.test.BasicTest.TEST_DATA_DIR_PATH; public final class RhinoUtils { @@ -197,8 +197,8 @@ public final class RhinoUtils { runFileWithRhino(TEST_DATA_DIR_PATH + "kotlin_lib.js", context, scope); runFileWithRhino(TEST_DATA_DIR_PATH + "maps.js", context, scope); runFileWithRhino(TEST_DATA_DIR_PATH + "long.js", context, scope); - runFileWithRhino(DIST_DIR_PATH + STDLIB_JS_FILE_NAME, context, scope); - runFileWithRhino(DIST_DIR_PATH + BUILTINS_JS_FILE_NAME, context, scope); + runFileWithRhino(DIST_DIR_JS_PATH + STDLIB_JS_FILE_NAME, context, scope); + runFileWithRhino(DIST_DIR_JS_PATH + BUILTINS_JS_FILE_NAME, context, scope); //runFileWithRhino(pathToTestFilesRoot() + "jshint.js", context, scope); for (String jsLibrary : jsLibraries) { runFileWithRhino(jsLibrary, context, scope);