From bbc49ca9fcfb60f76602bd10664c12abea5046c8 Mon Sep 17 00:00:00 2001 From: Nikolay Krasko Date: Mon, 20 May 2013 16:28:04 +0400 Subject: [PATCH] Configure project descriptor with directives Implement optimize import test with redesigned class --- .../jetbrains/jet/InTextDirectivesUtils.java | 4 ++ .../editor/optimizeImports/UnusedImports.kt | 4 +- .../optimizeImports/UnusedImports_after.kt | 4 +- .../JetLightCodeInsightFixtureTestCase.java | 26 +++++++++- .../importOptimizer/OptimizeImportsTest.java | 49 +++---------------- 5 files changed, 41 insertions(+), 46 deletions(-) diff --git a/compiler/tests/org/jetbrains/jet/InTextDirectivesUtils.java b/compiler/tests/org/jetbrains/jet/InTextDirectivesUtils.java index d91eb0cec1e..714bb8004ef 100644 --- a/compiler/tests/org/jetbrains/jet/InTextDirectivesUtils.java +++ b/compiler/tests/org/jetbrains/jet/InTextDirectivesUtils.java @@ -64,6 +64,10 @@ public final class InTextDirectivesUtils { return result; } + public static boolean isDirectiveDefined(String fileText, String directive) { + return !findListWithPrefixes(fileText, directive).isEmpty(); + } + @Nullable public static String findStringWithPrefixes(String fileText, String... prefixes) { List strings = findListWithPrefixes(fileText, prefixes); diff --git a/idea/testData/editor/optimizeImports/UnusedImports.kt b/idea/testData/editor/optimizeImports/UnusedImports.kt index 349e61ee9f2..a454695a3fa 100644 --- a/idea/testData/editor/optimizeImports/UnusedImports.kt +++ b/idea/testData/editor/optimizeImports/UnusedImports.kt @@ -17,4 +17,6 @@ class Action { measureTimeMillis({ println(HashMap().size()) }) val test : ArrayList? = null } -} \ No newline at end of file +} + +// RUNTIME \ No newline at end of file diff --git a/idea/testData/editor/optimizeImports/UnusedImports_after.kt b/idea/testData/editor/optimizeImports/UnusedImports_after.kt index fe7a544c7e8..a5377f45aa7 100644 --- a/idea/testData/editor/optimizeImports/UnusedImports_after.kt +++ b/idea/testData/editor/optimizeImports/UnusedImports_after.kt @@ -11,4 +11,6 @@ class Action { measureTimeMillis({ println(HashMap().size()) }) val test : ArrayList? = null } -} \ No newline at end of file +} + +// RUNTIME \ No newline at end of file diff --git a/idea/tests/org/jetbrains/jet/plugin/JetLightCodeInsightFixtureTestCase.java b/idea/tests/org/jetbrains/jet/plugin/JetLightCodeInsightFixtureTestCase.java index 0bd5ce32473..985f7d91651 100644 --- a/idea/tests/org/jetbrains/jet/plugin/JetLightCodeInsightFixtureTestCase.java +++ b/idea/tests/org/jetbrains/jet/plugin/JetLightCodeInsightFixtureTestCase.java @@ -18,21 +18,43 @@ package org.jetbrains.jet.plugin; import com.intellij.ide.startup.impl.StartupManagerImpl; import com.intellij.openapi.startup.StartupManager; +import com.intellij.openapi.util.io.FileUtil; +import com.intellij.testFramework.LightProjectDescriptor; import com.intellij.testFramework.fixtures.LightCodeInsightFixtureTestCase; +import org.jetbrains.annotations.NotNull; +import org.jetbrains.jet.InTextDirectivesUtils; + +import java.io.File; public abstract class JetLightCodeInsightFixtureTestCase extends LightCodeInsightFixtureTestCase { + LightProjectDescriptor projectDescriptor = null; + @Override protected void setUp() throws Exception { + String fileText = FileUtil.loadFile(new File(getTestDataPath(), fileName())); + if (InTextDirectivesUtils.isDirectiveDefined(fileText, "RUNTIME")) { + projectDescriptor = JetWithJdkAndRuntimeLightProjectDescriptor.INSTANCE; + } + else { + projectDescriptor = JetLightProjectDescriptor.INSTANCE; + } + super.setUp(); + ((StartupManagerImpl) StartupManager.getInstance(getProject())).runPostStartupActivities(); } @Override protected void tearDown() throws Exception { super.tearDown(); + projectDescriptor = null; } - protected String fileName() { - return getTestName(false) + ".kt"; + @NotNull + @Override + protected LightProjectDescriptor getProjectDescriptor() { + return projectDescriptor; } + + protected abstract String fileName(); } diff --git a/idea/tests/org/jetbrains/jet/plugin/importOptimizer/OptimizeImportsTest.java b/idea/tests/org/jetbrains/jet/plugin/importOptimizer/OptimizeImportsTest.java index 3ee8ca7396e..b422671bc34 100644 --- a/idea/tests/org/jetbrains/jet/plugin/importOptimizer/OptimizeImportsTest.java +++ b/idea/tests/org/jetbrains/jet/plugin/importOptimizer/OptimizeImportsTest.java @@ -16,27 +16,15 @@ package org.jetbrains.jet.plugin.importOptimizer; -import com.intellij.ide.startup.impl.StartupManagerImpl; import com.intellij.openapi.command.CommandProcessor; import com.intellij.openapi.command.UndoConfirmationPolicy; -import com.intellij.openapi.projectRoots.JavaSdk; -import com.intellij.openapi.projectRoots.Sdk; -import com.intellij.openapi.startup.StartupManager; -import com.intellij.testFramework.LightCodeInsightTestCase; -import org.apache.commons.lang.SystemUtils; +import org.jetbrains.jet.plugin.JetLightCodeInsightFixtureTestCase; import org.jetbrains.jet.plugin.PluginTestCaseBase; import org.jetbrains.jet.plugin.editor.importOptimizer.JetImportOptimizer; -import org.jetbrains.jet.testing.ConfigLibraryUtil; import java.io.File; -public class OptimizeImportsTest extends LightCodeInsightTestCase { - @Override - protected void setUp() throws Exception { - super.setUp(); - ((StartupManagerImpl) StartupManager.getInstance(getProject())).runPostStartupActivities(); - } - +public class OptimizeImportsTest extends JetLightCodeInsightFixtureTestCase { public void testAlreadyOptimized() throws Exception { doTest(); } @@ -54,7 +42,7 @@ public class OptimizeImportsTest extends LightCodeInsightTestCase { } public void testUnusedImports() throws Exception { - doTestWithKotlinRuntime(); + doTest(); } public void testWithAliases() throws Exception { @@ -86,23 +74,9 @@ public class OptimizeImportsTest extends LightCodeInsightTestCase { } public void doTest() throws Exception { - configureByFile(fileName()); + myFixture.configureByFile(fileName()); invokeFormatFile(); - checkResultByFile(null, checkFileName(), true); - } - - public void doTestWithKotlinRuntime() { - try { - ConfigLibraryUtil.configureKotlinRuntime(getModule(), getFullJavaJDK()); - - configureByFile(fileName()); - invokeFormatFile(); - - checkResultByFile(null, checkFileName(), false); - } - finally { - ConfigLibraryUtil.unConfigureKotlinRuntime(getModule(), getProjectJDK()); - } + myFixture.checkResultByFile(checkFileName(), false); } @Override @@ -112,14 +86,6 @@ public class OptimizeImportsTest extends LightCodeInsightTestCase { } @Override - protected Sdk getProjectJDK() { - return PluginTestCaseBase.jdkFromIdeaHome(); - } - - protected static Sdk getFullJavaJDK() { - return JavaSdk.getInstance().createJdk("JDK", SystemUtils.getJavaHome().getAbsolutePath()); - } - public String fileName() { return getTestName(false) + ".kt"; } @@ -128,9 +94,8 @@ public class OptimizeImportsTest extends LightCodeInsightTestCase { return getTestName(false) + "_after.kt"; } - private static void invokeFormatFile() { - CommandProcessor.getInstance().executeCommand( - getProject(), new JetImportOptimizer().processFile(getFile()), + private void invokeFormatFile() { + CommandProcessor.getInstance().executeCommand(myFixture.getProject(), new JetImportOptimizer().processFile(myFixture.getFile()), "Optimize Imports", null, UndoConfirmationPolicy.DO_NOT_REQUEST_CONFIRMATION); } }