diff --git a/ExtendedApi/src/com/intellij/testFramework/IdeaTestCase.java b/ExtendedApi/src/com/intellij/testFramework/IdeaTestCase.java index 78098257e961..379277819168 100644 --- a/ExtendedApi/src/com/intellij/testFramework/IdeaTestCase.java +++ b/ExtendedApi/src/com/intellij/testFramework/IdeaTestCase.java @@ -11,6 +11,7 @@ import com.intellij.openapi.application.ApplicationManager; import com.intellij.openapi.command.CommandProcessor; import com.intellij.openapi.diagnostic.Logger; import com.intellij.openapi.editor.EditorFactory; +import com.intellij.openapi.extensions.Extensions; import com.intellij.openapi.fileEditor.FileDocumentManager; import com.intellij.openapi.fileEditor.FileEditorManager; import com.intellij.openapi.module.Module; @@ -86,6 +87,10 @@ public abstract class IdeaTestCase extends TestCase implements DataProvider { protected void initApplication() throws Exception { ourApplication = IdeaTestApplication.getInstance(); ourApplication.setDataProvider(this); + if (Extensions.getAllAreas().length < 2) { + Extensions.registerAreaClass("PROJECT", null); + Extensions.registerAreaClass("MODULE", "PROJECT"); + } } protected void setUp() throws Exception { diff --git a/ExtendedApi/src/com/intellij/testFramework/LightIdeaTestCase.java b/ExtendedApi/src/com/intellij/testFramework/LightIdeaTestCase.java index 519ddef77e87..99feba6e04e0 100644 --- a/ExtendedApi/src/com/intellij/testFramework/LightIdeaTestCase.java +++ b/ExtendedApi/src/com/intellij/testFramework/LightIdeaTestCase.java @@ -10,6 +10,7 @@ import com.intellij.openapi.actionSystem.DataProvider; import com.intellij.openapi.application.ApplicationManager; import com.intellij.openapi.command.undo.UndoManager; import com.intellij.openapi.editor.EditorFactory; +import com.intellij.openapi.extensions.Extensions; import com.intellij.openapi.module.Module; import com.intellij.openapi.module.ModuleManager; import com.intellij.openapi.project.ModuleListener; @@ -85,6 +86,10 @@ public class LightIdeaTestCase extends TestCase implements DataProvider { private void initApplication() throws Exception { ourApplication = IdeaTestApplication.getInstance(); ourApplication.setDataProvider(this); + if (Extensions.getAllAreas().length < 2) { + Extensions.registerAreaClass("PROJECT", null); + Extensions.registerAreaClass("MODULE", "PROJECT"); + } cleanupApplicationCaches(); } diff --git a/source/com/intellij/ide/plugins/PluginManager.java b/source/com/intellij/ide/plugins/PluginManager.java index bdbb5e62f8dc..15932a06e33b 100644 --- a/source/com/intellij/ide/plugins/PluginManager.java +++ b/source/com/intellij/ide/plugins/PluginManager.java @@ -6,8 +6,8 @@ import com.intellij.ide.startup.StartupActionScriptManager; import com.intellij.openapi.application.PathManager; import com.intellij.openapi.application.ex.ApplicationManagerEx; import com.intellij.openapi.diagnostic.Logger; -import com.intellij.openapi.util.JDOMUtil; import com.intellij.openapi.extensions.*; +import com.intellij.openapi.util.JDOMUtil; import com.intellij.util.ArrayUtil; import com.intellij.util.graph.CachingSemiGraph; import com.intellij.util.graph.DFSTBuilder; @@ -19,8 +19,8 @@ import sun.reflect.Reflection; import javax.swing.*; import java.io.File; -import java.io.InputStream; import java.io.IOException; +import java.io.InputStream; import java.lang.reflect.Field; import java.lang.reflect.InvocationTargetException; import java.lang.reflect.Method; @@ -84,7 +84,10 @@ public class PluginManager { } private static void initializePlugins() { - if (!shouldLoadPlugins()) return; + if (!shouldLoadPlugins()) { + ourPlugins = new PluginDescriptor[0]; + return; + } configureExtensions(); diff --git a/source/com/intellij/openapi/components/impl/ComponentManagerImpl.java b/source/com/intellij/openapi/components/impl/ComponentManagerImpl.java index 9d73529a486b..19653ddee7a6 100644 --- a/source/com/intellij/openapi/components/impl/ComponentManagerImpl.java +++ b/source/com/intellij/openapi/components/impl/ComponentManagerImpl.java @@ -367,6 +367,8 @@ public abstract class ComponentManagerImpl extends UserDataHolderBase implements } protected void initComponentsFromExtensions(final ExtensionsArea extensionsArea) { + if (ApplicationManagerEx.getApplicationEx().isUnitTestMode()) return; // TODO: quick and dirty. To make tests running. + final ComponentDescriptor[] componentDescriptors = (ComponentDescriptor[])extensionsArea.getExtensionPoint(PluginManager.COMPONENT_EXTENSION_POINT).getExtensions(); for (int i = 0; i < componentDescriptors.length; i++) {