fix tests

This commit is contained in:
Maxim Manuylov
2012-07-23 00:35:41 +04:00
committed by Evgeny Gerashchenko
parent 715f4ad0db
commit 9d75359f55
2 changed files with 33 additions and 7 deletions
@@ -68,11 +68,11 @@ public class KotlinSdkDescription extends CustomLibraryDescription {
descriptor.setTitle("Kotlin SDK");
descriptor.setDescription("Choose a directory containing Kotlin distribution");
final VirtualFile sdkHome = FileChooser.chooseFile(parentComponent, descriptor, initial);
if (sdkHome == null) return null;
final VirtualFile sdkHomeVFile = FileChooser.chooseFile(parentComponent, descriptor, initial);
if (sdkHomeVFile == null) return null;
final String sdkHomePath = sdkHome.getPath();
final String sdkVersion = KotlinSdkUtil.getSDKVersion(new File(sdkHomePath));
final File sdkHome = new File(sdkHomeVFile.getPath());
final String sdkVersion = KotlinSdkUtil.getSDKVersion(sdkHome);
if (sdkVersion == null) {
Messages.showErrorDialog(parentComponent,
"Failed to find Kotlin SDK in the specified path: cannot determine Kotlin version.",
@@ -83,7 +83,7 @@ public class KotlinSdkDescription extends CustomLibraryDescription {
return new NewLibraryConfiguration(KotlinSdkUtil.getSDKName(sdkVersion)) {
@Override
public void addRoots(@NotNull final LibraryEditor editor) {
addSDKRoots(editor, sdkHomePath);
addSDKRoots(editor, sdkHome);
}
};
}
@@ -95,8 +95,8 @@ public class KotlinSdkDescription extends CustomLibraryDescription {
return LocalFileSystem.getInstance().findFileByPath(FileUtil.toSystemIndependentName(path));
}
private static void addSDKRoots(@NotNull final LibraryEditor editor, @NotNull final String sdkHomePath) {
final File libDir = new File(sdkHomePath, "lib");
public static void addSDKRoots(@NotNull final LibraryEditor editor, @NotNull final File sdkHome) {
final File libDir = new File(sdkHome, "lib");
if (!libDir.isDirectory()) return;
final List<File> jars = new ArrayList<File>();
@@ -22,13 +22,19 @@ import com.intellij.openapi.compiler.TranslatingCompiler;
import com.intellij.openapi.roots.ContentEntry;
import com.intellij.openapi.roots.ModifiableRootModel;
import com.intellij.openapi.roots.ModuleRootManager;
import com.intellij.openapi.roots.libraries.Library;
import com.intellij.openapi.roots.ui.configuration.libraryEditor.NewLibraryEditor;
import com.intellij.openapi.roots.ui.configuration.projectRoot.LibrariesContainer;
import com.intellij.openapi.roots.ui.configuration.projectRoot.LibrariesContainerFactory;
import com.intellij.openapi.vfs.LocalFileSystem;
import com.intellij.openapi.vfs.VirtualFile;
import com.intellij.testFramework.PlatformTestCase;
import jet.Function1;
import junit.framework.Assert;
import org.jetbrains.annotations.NotNull;
import org.jetbrains.jet.plugin.sdk.KotlinSdkDescription;
import java.io.File;
import java.io.IOException;
/**
@@ -49,6 +55,7 @@ public abstract class IDECompilerMessagingTest extends PlatformTestCase {
MockCompileContext mockCompileContext = new MockCompileContext(myModule, outDirectory, root);
MockModuleChunk mockModuleChunk = new MockModuleChunk(myModule);
setSourceEntryForModule(root);
setKotlinSdkForModule();
assert sampleFile != null;
compile(compiler, sampleFile, mockCompileContext, mockModuleChunk);
checkMessages(whatToExpect, mockCompileContext);
@@ -80,6 +87,25 @@ public abstract class IDECompilerMessagingTest extends PlatformTestCase {
});
}
private void setKotlinSdkForModule() {
ApplicationManager.getApplication().runWriteAction(new Runnable() {
@Override
public void run() {
final ModifiableRootModel model = ModuleRootManager.getInstance(myModule).getModifiableModel();
model.addLibraryEntry(createKotlinSdkLibrary());
model.commit();
}
});
}
@NotNull
private Library createKotlinSdkLibrary() {
final NewLibraryEditor editor = new NewLibraryEditor();
editor.setName("Kotlin SDK");
KotlinSdkDescription.addSDKRoots(editor, new File("dist/kotlinc"));
return LibrariesContainerFactory.createContainer(myModule).createLibrary(editor, LibrariesContainer.LibraryLevel.GLOBAL);
}
protected abstract void checkHeader(@NotNull MessageChecker checker);
@NotNull