From 8fc5676c95fafd25362fe212c9557fb0905e7bd6 Mon Sep 17 00:00:00 2001 From: Nikolay Krasko Date: Thu, 7 Mar 2013 19:12:39 +0400 Subject: [PATCH] Fix test. Add not only JS libraries but also libraries that could be JS headers. --- .../IDECompilerMessagingTest.java | 18 ++++++--- .../K2JSCompilerMessagingTest.java | 40 +++++++++++++++---- 2 files changed, 44 insertions(+), 14 deletions(-) diff --git a/idea/tests/org/jetbrains/jet/plugin/compilerMessages/IDECompilerMessagingTest.java b/idea/tests/org/jetbrains/jet/plugin/compilerMessages/IDECompilerMessagingTest.java index 82164643b7e..e10daa4e7a3 100644 --- a/idea/tests/org/jetbrains/jet/plugin/compilerMessages/IDECompilerMessagingTest.java +++ b/idea/tests/org/jetbrains/jet/plugin/compilerMessages/IDECompilerMessagingTest.java @@ -36,13 +36,11 @@ public abstract class IDECompilerMessagingTest extends PlatformTestCase { protected void performTest(@NotNull Function1 whatToExpect, @NotNull TranslatingCompiler compiler, @NotNull String testDataPath) { String pathToTestDir = testDataPath + "/" + getTestName(true); - VirtualFile testDir = LocalFileSystem.getInstance().findFileByPath(pathToTestDir); - Assert.assertNotNull(testDir); - VirtualFile sampleFile = LocalFileSystem.getInstance().findFileByPath(pathToTestDir + "/src/test.kt"); + + VirtualFile testDir = getFile(testDataPath, ""); + VirtualFile sampleFile = getFile(testDataPath, "/src/test.kt"); VirtualFile outDirectory = getOutDirectory(pathToTestDir, testDir); - String pathToSrc = pathToTestDir + "/src/"; - VirtualFile root = LocalFileSystem.getInstance().findFileByPath(pathToSrc); - Assert.assertNotNull(root); + VirtualFile root = getFile(testDataPath, "/src"); MockCompileContext mockCompileContext = new MockCompileContext(myModule, outDirectory, root); MockModuleChunk mockModuleChunk = new MockModuleChunk(myModule); setSourceEntryForModule(root); @@ -51,6 +49,14 @@ public abstract class IDECompilerMessagingTest extends PlatformTestCase { checkMessages(whatToExpect, mockCompileContext); } + protected VirtualFile getFile(@NotNull String testDataPath, @NotNull String relativePath) { + String pathToFile = testDataPath + "/" + getTestName(true) + relativePath; + VirtualFile file = LocalFileSystem.getInstance().findFileByPath(pathToFile); + Assert.assertNotNull("Can't find path " + pathToFile, file); + + return file; + } + private void checkMessages(@NotNull Function1 whatToExpect, @NotNull MockCompileContext mockCompileContext) { MessageChecker checker = new MessageChecker(mockCompileContext); checkHeader(checker); diff --git a/idea/tests/org/jetbrains/jet/plugin/compilerMessages/K2JSCompilerMessagingTest.java b/idea/tests/org/jetbrains/jet/plugin/compilerMessages/K2JSCompilerMessagingTest.java index 6557c12f895..f343e1793aa 100644 --- a/idea/tests/org/jetbrains/jet/plugin/compilerMessages/K2JSCompilerMessagingTest.java +++ b/idea/tests/org/jetbrains/jet/plugin/compilerMessages/K2JSCompilerMessagingTest.java @@ -16,10 +16,17 @@ package org.jetbrains.jet.plugin.compilerMessages; +import com.intellij.openapi.roots.OrderRootType; +import com.intellij.openapi.roots.ui.configuration.libraryEditor.NewLibraryEditor; +import com.intellij.openapi.vfs.VfsUtil; +import com.intellij.util.PathUtil; import jet.Function1; import org.jetbrains.annotations.NotNull; import org.jetbrains.jet.plugin.PluginTestCaseBase; import org.jetbrains.jet.plugin.compiler.K2JSCompiler; +import org.jetbrains.jet.testing.ConfigLibraryUtil; + +import java.io.File; import static org.jetbrains.jet.plugin.compilerMessages.Message.*; @@ -60,14 +67,31 @@ public final class K2JSCompilerMessagingTest extends IDECompilerMessagingTest { } public void testLib() { - throw new UnsupportedOperationException("Under construction"); - //doTest(new Function1() { - // @Override - // public Void invoke(MessageChecker checker) { - // //nothing apart from header - // return null; - // } - //}); + NewLibraryEditor editor = new NewLibraryEditor(null, null); + editor.setName("testLib"); + + String path = PathUtil.getLocalPath(getFile(TEST_DATA_PATH, "/src/lib.zip")); + assert path != null : "Can't get local path"; + + String libUrl = VfsUtil.getUrlForLibraryRoot(new File(path)); + + editor.addRoot(libUrl, OrderRootType.CLASSES); + editor.addRoot(libUrl, OrderRootType.SOURCES); + + try { + ConfigLibraryUtil.addLibrary(editor, myModule); + + doTest(new Function1() { + @Override + public Void invoke(MessageChecker checker) { + //nothing apart from header + return null; + } + }); + } + finally { + ConfigLibraryUtil.removeLibrary(myModule, "testLib"); + } } private void doTest(@NotNull Function1 whatToExpect) {