summaryrefslogtreecommitdiff
path: root/platform/testFramework/src/com
diff options
context:
space:
mode:
Diffstat (limited to 'platform/testFramework/src/com')
-rw-r--r--platform/testFramework/src/com/intellij/mock/Mock.java43
-rw-r--r--platform/testFramework/src/com/intellij/projectView/TestProjectTreeStructure.java2
-rw-r--r--platform/testFramework/src/com/intellij/projectView/TestProjectViewPSIPane.java57
-rw-r--r--platform/testFramework/src/com/intellij/testFramework/EditorTestUtil.java45
-rw-r--r--platform/testFramework/src/com/intellij/testFramework/LightPlatformCodeInsightTestCase.java29
-rw-r--r--platform/testFramework/src/com/intellij/testFramework/LightPlatformTestCase.java5
-rw-r--r--platform/testFramework/src/com/intellij/testFramework/ParsingTestCase.java4
-rw-r--r--platform/testFramework/src/com/intellij/testFramework/PlatformTestCase.java1
-rw-r--r--platform/testFramework/src/com/intellij/testFramework/ProjectViewTestUtil.java28
-rw-r--r--platform/testFramework/src/com/intellij/testFramework/TestDataProvider.java14
-rw-r--r--platform/testFramework/src/com/intellij/testFramework/fixtures/CodeInsightTestFixture.java3
-rw-r--r--platform/testFramework/src/com/intellij/testFramework/fixtures/impl/HeavyIdeaTestFixtureImpl.java3
12 files changed, 110 insertions, 124 deletions
diff --git a/platform/testFramework/src/com/intellij/mock/Mock.java b/platform/testFramework/src/com/intellij/mock/Mock.java
index 575bc0991c3e..73d6538c52b9 100644
--- a/platform/testFramework/src/com/intellij/mock/Mock.java
+++ b/platform/testFramework/src/com/intellij/mock/Mock.java
@@ -321,10 +321,6 @@ public class Mock {
public void closeAllFiles() {
}
- public Editor openTextEditorEnsureNoFocus(@NotNull OpenFileDescriptor descriptor) {
- return null;
- }
-
@Override
@NotNull
public Pair<FileEditor[], FileEditorProvider[]> openFileWithProviders(@NotNull VirtualFile file,
@@ -558,52 +554,55 @@ public class Mock {
return false;
}
+ @NotNull
@Override
public ToolWindow registerToolWindow(@NotNull String id, @NotNull JComponent component, @NotNull ToolWindowAnchor anchor) {
- return null;
+ throw new RuntimeException();
}
+ @NotNull
@Override
public ToolWindow registerToolWindow(@NotNull String id,
@NotNull JComponent component,
@NotNull ToolWindowAnchor anchor,
Disposable parentDisposable,
boolean canWorkInDumbMode, boolean canCloseContents) {
- return null;
+ throw new RuntimeException();
}
+ @NotNull
@Override
public ToolWindow registerToolWindow(@NotNull String id,
@NotNull JComponent component,
@NotNull ToolWindowAnchor anchor,
Disposable parentDisposable,
boolean canWorkInDumbMode) {
- return null;
+ throw new RuntimeException();
}
+ @NotNull
@Override
- public ToolWindow registerToolWindow(@NotNull String id, @NotNull JComponent component, @NotNull ToolWindowAnchor anchor, Disposable parentDisposable) {
- return null;
+ public ToolWindow registerToolWindow(@NotNull String id, @NotNull JComponent component, @NotNull ToolWindowAnchor anchor, @NotNull Disposable parentDisposable) {
+ throw new RuntimeException();
}
+ @NotNull
@Override
public ToolWindow registerToolWindow(@NotNull final String id, final boolean canCloseContent, @NotNull final ToolWindowAnchor anchor) {
- return null;
+ throw new RuntimeException();
}
+ @NotNull
@Override
public ToolWindow registerToolWindow(@NotNull final String id, final boolean canCloseContent, @NotNull final ToolWindowAnchor anchor,
final Disposable parentDisposable, final boolean dumbAware) {
- return null;
+ throw new RuntimeException();
}
+ @NotNull
@Override
public ToolWindow registerToolWindow(@NotNull final String id, final boolean canCloseContent, @NotNull final ToolWindowAnchor anchor, final boolean secondary) {
- return null;
- }
-
- public JComponent getFocusTargetFor(final JComponent comp) {
- return null;
+ throw new RuntimeException();
}
@Override
@@ -614,19 +613,12 @@ public class Mock {
public void activateEditorComponent() {
}
- public ActionCallback requestFocus(final Component c, final boolean forced) {
- return new ActionCallback.Done();
- }
-
- public ActionCallback requestFocus(final ActiveRunnable command, final boolean forced) {
- return new ActionCallback.Done();
- }
-
@Override
public boolean isEditorComponentActive() {
return false;
}
+ @NotNull
@Override
public String[] getToolWindowIds() {
return ArrayUtil.EMPTY_STRING_ARRAY;
@@ -643,9 +635,10 @@ public class Mock {
}
@Override
- public void invokeLater(Runnable runnable) {
+ public void invokeLater(@NotNull Runnable runnable) {
}
+ @NotNull
@Override
public IdeFocusManager getFocusManager() {
return IdeFocusManagerHeadless.INSTANCE;
diff --git a/platform/testFramework/src/com/intellij/projectView/TestProjectTreeStructure.java b/platform/testFramework/src/com/intellij/projectView/TestProjectTreeStructure.java
index 95a7b8b6b9e9..400744bcc9e0 100644
--- a/platform/testFramework/src/com/intellij/projectView/TestProjectTreeStructure.java
+++ b/platform/testFramework/src/com/intellij/projectView/TestProjectTreeStructure.java
@@ -46,7 +46,7 @@ public class TestProjectTreeStructure extends AbstractProjectTreeStructure imple
}
public AbstractProjectViewPSIPane createPane() {
- final AbstractProjectViewPSIPane pane = new TestProjectViewPSIPane(myProject, this);
+ final AbstractProjectViewPSIPane pane = new TestProjectViewPSIPane(myProject, this, 9);
pane.createComponent();
Disposer.register(this, pane);
return pane;
diff --git a/platform/testFramework/src/com/intellij/projectView/TestProjectViewPSIPane.java b/platform/testFramework/src/com/intellij/projectView/TestProjectViewPSIPane.java
index 9add34347b86..9f85f3b977f9 100644
--- a/platform/testFramework/src/com/intellij/projectView/TestProjectViewPSIPane.java
+++ b/platform/testFramework/src/com/intellij/projectView/TestProjectViewPSIPane.java
@@ -1,8 +1,22 @@
+/*
+ * Copyright 2000-2014 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 com.intellij.projectView;
import com.intellij.ide.SelectInTarget;
import com.intellij.ide.projectView.BaseProjectTreeBuilder;
-import com.intellij.ide.projectView.ProjectView;
import com.intellij.ide.projectView.impl.AbstractProjectViewPSIPane;
import com.intellij.ide.projectView.impl.ProjectAbstractTreeStructureBase;
import com.intellij.ide.projectView.impl.ProjectTreeBuilder;
@@ -10,10 +24,7 @@ import com.intellij.ide.projectView.impl.ProjectViewTree;
import com.intellij.ide.util.treeView.AbstractTreeBuilder;
import com.intellij.ide.util.treeView.AbstractTreeUpdater;
import com.intellij.ide.util.treeView.AlphaComparator;
-import com.intellij.openapi.project.DumbAwareRunnable;
import com.intellij.openapi.project.Project;
-import com.intellij.openapi.startup.StartupManager;
-import org.jetbrains.annotations.NonNls;
import org.jetbrains.annotations.NotNull;
import javax.swing.*;
@@ -24,11 +35,13 @@ import javax.swing.tree.DefaultTreeModel;
* @author yole
*/
class TestProjectViewPSIPane extends AbstractProjectViewPSIPane {
- private TestProjectTreeStructure myTestTreeStructure;
+ private final TestProjectTreeStructure myTestTreeStructure;
+ private final int myWeight;
- public TestProjectViewPSIPane(Project project, TestProjectTreeStructure treeStructure) {
+ public TestProjectViewPSIPane(Project project, TestProjectTreeStructure treeStructure, int weight) {
super(project);
myTestTreeStructure = treeStructure;
+ myWeight = weight;
}
@Override
@@ -36,11 +49,6 @@ class TestProjectViewPSIPane extends AbstractProjectViewPSIPane {
return null;
}
- @NonNls
- public String getComponentName() {
- return "comp name";
- }
-
@Override
protected AbstractTreeUpdater createTreeUpdater(AbstractTreeBuilder treeBuilder) {
return new AbstractTreeUpdater(treeBuilder);
@@ -55,11 +63,6 @@ class TestProjectViewPSIPane extends AbstractProjectViewPSIPane {
protected AbstractTreeUpdater createUpdater() {
return createTreeUpdater(this);
}
-
- protected void addTaskToWorker(final Runnable runnable, boolean first, final Runnable postRunnable) {
- runnable.run();
- postRunnable.run();
- }
};
}
@@ -96,26 +99,6 @@ class TestProjectViewPSIPane extends AbstractProjectViewPSIPane {
@Override
public int getWeight() {
- return 0;
- }
-
- public void projectOpened() {
- final Runnable runnable = new DumbAwareRunnable() {
- @Override
- public void run() {
- final ProjectView projectView = ProjectView.getInstance(myProject);
- projectView.addProjectPane(TestProjectViewPSIPane.this);
- }
- };
- StartupManager.getInstance(myProject).registerPostStartupActivity(runnable);
- }
-
- public void projectClosed() {
- }
-
- public void initComponent() { }
-
- public void disposeComponent() {
-
+ return myWeight;
}
}
diff --git a/platform/testFramework/src/com/intellij/testFramework/EditorTestUtil.java b/platform/testFramework/src/com/intellij/testFramework/EditorTestUtil.java
index 870d6d53b998..a86c1c1440dc 100644
--- a/platform/testFramework/src/com/intellij/testFramework/EditorTestUtil.java
+++ b/platform/testFramework/src/com/intellij/testFramework/EditorTestUtil.java
@@ -23,7 +23,6 @@ import com.intellij.openapi.actionSystem.*;
import com.intellij.openapi.application.Result;
import com.intellij.openapi.command.WriteCommandAction;
import com.intellij.openapi.editor.*;
-import com.intellij.openapi.editor.actionSystem.EditorActionHandler;
import com.intellij.openapi.editor.actionSystem.EditorActionManager;
import com.intellij.openapi.editor.actionSystem.TypedAction;
import com.intellij.openapi.editor.ex.EditorEx;
@@ -46,7 +45,6 @@ import com.intellij.psi.tree.IElementType;
import org.jetbrains.annotations.NotNull;
import org.jetbrains.annotations.Nullable;
import org.jetbrains.annotations.TestOnly;
-import org.junit.Assert;
import java.awt.*;
import java.util.ArrayList;
@@ -73,40 +71,45 @@ public class EditorTestUtil {
public static void performTypingAction(Editor editor, char c) {
EditorActionManager actionManager = EditorActionManager.getInstance();
if (c == BACKSPACE_FAKE_CHAR) {
- EditorActionHandler actionHandler = actionManager.getActionHandler(IdeActions.ACTION_EDITOR_BACKSPACE);
- actionHandler.execute(editor, DataManager.getInstance().getDataContext());
+ executeAction(editor, IdeActions.ACTION_EDITOR_BACKSPACE);
} else if (c == SMART_ENTER_FAKE_CHAR) {
- EditorActionHandler actionHandler = actionManager.getActionHandler(IdeActions.ACTION_EDITOR_COMPLETE_STATEMENT);
- actionHandler.execute(editor, DataManager.getInstance().getDataContext());
+ executeAction(editor, IdeActions.ACTION_EDITOR_COMPLETE_STATEMENT);
} else if (c == SMART_LINE_SPLIT_CHAR) {
- EditorActionHandler actionHandler = actionManager.getActionHandler(IdeActions.ACTION_EDITOR_SPLIT);
- actionHandler.execute(editor, DataManager.getInstance().getDataContext());
+ executeAction(editor, IdeActions.ACTION_EDITOR_SPLIT);
}
else if (c == '\n') {
- EditorActionHandler actionHandler = actionManager.getActionHandler(IdeActions.ACTION_EDITOR_ENTER);
- actionHandler.execute(editor, DataManager.getInstance().getDataContext());
+ executeAction(editor, IdeActions.ACTION_EDITOR_ENTER);
}
else {
TypedAction action = actionManager.getTypedAction();
- action.actionPerformed(editor, c, DataManager.getInstance().getDataContext());
+ action.actionPerformed(editor, c, DataManager.getInstance().getDataContext(editor.getContentComponent()));
}
}
- public static void performReferenceCopy(DataContext dataContext) {
+ public static void executeAction(Editor editor, String actionId) {
+ executeAction(editor, actionId, false);
+ }
+
+ public static void executeAction(Editor editor, String actionId, boolean assertActionIsEnabled) {
ActionManager actionManager = ActionManager.getInstance();
- AnAction action = actionManager.getAction(IdeActions.ACTION_COPY_REFERENCE);
- AnActionEvent
- event = new AnActionEvent(null, dataContext, "", action.getTemplatePresentation(),
- ActionManager.getInstance(), 0);
- action.update(event);
- Assert.assertTrue(event.getPresentation().isEnabled());
+ AnAction action = actionManager.getAction(actionId);
+ assertNotNull(action);
+ DataContext dataContext = DataManager.getInstance().getDataContext(editor.getContentComponent());
+ AnActionEvent event = new AnActionEvent(null, dataContext, "", action.getTemplatePresentation(), actionManager, 0);
+ action.beforeActionPerformedUpdate(event);
+ if (!event.getPresentation().isEnabled()) {
+ assertFalse("Action " + actionId + " is disabled", assertActionIsEnabled);
+ return;
+ }
action.actionPerformed(event);
}
+ public static void performReferenceCopy(Editor editor) {
+ executeAction(editor, IdeActions.ACTION_COPY_REFERENCE, true);
+ }
+
public static void performPaste(Editor editor) {
- EditorActionManager actionManager = EditorActionManager.getInstance();
- EditorActionHandler actionHandler = actionManager.getActionHandler(IdeActions.ACTION_EDITOR_PASTE);
- actionHandler.execute(editor, null, DataManager.getInstance().getDataContext());
+ executeAction(editor, IdeActions.ACTION_EDITOR_PASTE, true);
}
public static List<IElementType> getAllTokens(EditorHighlighter highlighter) {
diff --git a/platform/testFramework/src/com/intellij/testFramework/LightPlatformCodeInsightTestCase.java b/platform/testFramework/src/com/intellij/testFramework/LightPlatformCodeInsightTestCase.java
index 3c1f96113532..9dedcc6d47a8 100644
--- a/platform/testFramework/src/com/intellij/testFramework/LightPlatformCodeInsightTestCase.java
+++ b/platform/testFramework/src/com/intellij/testFramework/LightPlatformCodeInsightTestCase.java
@@ -19,10 +19,7 @@ import com.intellij.codeInsight.generation.actions.CommentByLineCommentAction;
import com.intellij.ide.DataManager;
import com.intellij.injected.editor.DocumentWindow;
import com.intellij.injected.editor.EditorWindow;
-import com.intellij.openapi.actionSystem.AnActionEvent;
-import com.intellij.openapi.actionSystem.CommonDataKeys;
-import com.intellij.openapi.actionSystem.DataContext;
-import com.intellij.openapi.actionSystem.IdeActions;
+import com.intellij.openapi.actionSystem.*;
import com.intellij.openapi.application.ApplicationManager;
import com.intellij.openapi.application.Result;
import com.intellij.openapi.application.ex.PathManagerEx;
@@ -145,7 +142,7 @@ public abstract class LightPlatformCodeInsightTestCase extends LightPlatformTest
* @throws java.io.IOException
*/
@NotNull
- protected static Document configureFromFileText(@NonNls @NotNull final String fileName, @NonNls @NotNull final String fileText) throws IOException {
+ protected static Document configureFromFileText(@NonNls @NotNull final String fileName, @NonNls @NotNull final String fileText) {
return new WriteCommandAction<Document>(null) {
@Override
protected void run(@NotNull Result<Document> result) throws Throwable {
@@ -353,24 +350,6 @@ public abstract class LightPlatformCodeInsightTestCase extends LightPlatformTest
return userMessage + " [" + engineMessage + "]";
}
- @Override
- public Object getData(String dataId) {
- if (CommonDataKeys.EDITOR.is(dataId)) {
- return myEditor;
- }
- if (dataId.equals(AnActionEvent.injectedId(CommonDataKeys.EDITOR.getName()))) {
- return InjectedLanguageUtil.getEditorForInjectedLanguageNoCommit(getEditor(), getFile());
- }
- if (CommonDataKeys.PSI_FILE.is(dataId)) {
- return myFile;
- }
- if (dataId.equals(AnActionEvent.injectedId(CommonDataKeys.PSI_FILE.getName()))) {
- Editor editor = InjectedLanguageUtil.getEditorForInjectedLanguageNoCommit(getEditor(), getFile());
- return editor instanceof EditorWindow ? ((EditorWindow)editor).getInjectedFile() : getFile();
- }
- return super.getData(dataId);
- }
-
/**
* @return Editor used in test.
*/
@@ -508,9 +487,7 @@ public abstract class LightPlatformCodeInsightTestCase extends LightPlatformTest
CommandProcessor.getInstance().executeCommand(getProject(), new Runnable() {
@Override
public void run() {
- EditorActionManager actionManager = EditorActionManager.getInstance();
- EditorActionHandler actionHandler = actionManager.getActionHandler(actionId);
- actionHandler.execute(getEditor(), null, DataManager.getInstance().getDataContext());
+ EditorTestUtil.executeAction(getEditor(), actionId);
}
}, "", null);
}
diff --git a/platform/testFramework/src/com/intellij/testFramework/LightPlatformTestCase.java b/platform/testFramework/src/com/intellij/testFramework/LightPlatformTestCase.java
index 33051b471049..268eb6d0831e 100644
--- a/platform/testFramework/src/com/intellij/testFramework/LightPlatformTestCase.java
+++ b/platform/testFramework/src/com/intellij/testFramework/LightPlatformTestCase.java
@@ -722,10 +722,7 @@ public abstract class LightPlatformTestCase extends UsefulTestCase implements Da
@Override
public Object getData(String dataId) {
- if (CommonDataKeys.PROJECT.is(dataId)) {
- return ourProject;
- }
- return null;
+ return ourProject == null || ourProject.isDisposed() ? null : new TestDataProvider(ourProject).getData(dataId);
}
protected Sdk getProjectJDK() {
diff --git a/platform/testFramework/src/com/intellij/testFramework/ParsingTestCase.java b/platform/testFramework/src/com/intellij/testFramework/ParsingTestCase.java
index f000733e8881..46b3adca7557 100644
--- a/platform/testFramework/src/com/intellij/testFramework/ParsingTestCase.java
+++ b/platform/testFramework/src/com/intellij/testFramework/ParsingTestCase.java
@@ -1,5 +1,5 @@
/*
- * Copyright 2000-2011 JetBrains s.r.o.
+ * Copyright 2000-2014 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.
@@ -89,7 +89,7 @@ public abstract class ParsingTestCase extends PlatformLiteFixture {
getApplication().getPicoContainer().registerComponent(new AbstractComponentAdapter(ProgressManager.class.getName(), Object.class) {
@Override
public Object getComponentInstance(PicoContainer container) throws PicoInitializationException, PicoIntrospectionException {
- return new ProgressManagerImpl(getApplication());
+ return new ProgressManagerImpl();
}
@Override
diff --git a/platform/testFramework/src/com/intellij/testFramework/PlatformTestCase.java b/platform/testFramework/src/com/intellij/testFramework/PlatformTestCase.java
index 347661846e2a..d9b32080f458 100644
--- a/platform/testFramework/src/com/intellij/testFramework/PlatformTestCase.java
+++ b/platform/testFramework/src/com/intellij/testFramework/PlatformTestCase.java
@@ -198,6 +198,7 @@ public abstract class PlatformTestCase extends UsefulTestCase implements DataPro
}
DocumentCommitThread.getInstance().clearQueue();
+ UIUtil.dispatchAllInvocationEvents();
}
public Project getProject() {
diff --git a/platform/testFramework/src/com/intellij/testFramework/ProjectViewTestUtil.java b/platform/testFramework/src/com/intellij/testFramework/ProjectViewTestUtil.java
index 66b59d06d200..548c312614d4 100644
--- a/platform/testFramework/src/com/intellij/testFramework/ProjectViewTestUtil.java
+++ b/platform/testFramework/src/com/intellij/testFramework/ProjectViewTestUtil.java
@@ -15,17 +15,27 @@
*/
package com.intellij.testFramework;
+import com.intellij.ide.projectView.ProjectView;
import com.intellij.ide.projectView.ProjectViewNode;
import com.intellij.ide.projectView.impl.AbstractProjectViewPSIPane;
+import com.intellij.ide.projectView.impl.ProjectViewImpl;
import com.intellij.ide.projectView.impl.nodes.BasePsiNode;
import com.intellij.ide.util.treeView.AbstractTreeNode;
import com.intellij.ide.util.treeView.AbstractTreeStructure;
+import com.intellij.openapi.extensions.Extensions;
+import com.intellij.openapi.project.Project;
import com.intellij.openapi.ui.Queryable;
import com.intellij.openapi.util.MultiValuesMap;
import com.intellij.openapi.vfs.VirtualFile;
+import com.intellij.openapi.wm.ToolWindow;
+import com.intellij.openapi.wm.ToolWindowAnchor;
+import com.intellij.openapi.wm.ToolWindowEP;
+import com.intellij.openapi.wm.ToolWindowId;
+import com.intellij.openapi.wm.ex.ToolWindowManagerEx;
import com.intellij.psi.PsiElement;
import com.intellij.psi.util.PsiUtilCore;
import com.intellij.util.Function;
+import org.jetbrains.annotations.NotNull;
import org.jetbrains.annotations.Nullable;
import org.junit.Assert;
@@ -151,4 +161,22 @@ public class ProjectViewTestUtil {
DefaultMutableTreeNode nodeForElement = getNodeForElement(element, pane);
return nodeForElement != null && isExpanded((DefaultMutableTreeNode)nodeForElement.getParent(), pane);
}
+
+ public static void setupImpl(@NotNull Project project, boolean loadPaneExtensions) {
+ ToolWindowManagerEx toolWindowManager = ToolWindowManagerEx.getInstanceEx(project);
+ ToolWindow toolWindow = toolWindowManager.getToolWindow(ToolWindowId.PROJECT_VIEW);
+
+ if (toolWindow == null) {
+ ToolWindowEP[] beans = Extensions.getExtensions(ToolWindowEP.EP_NAME);
+ for (final ToolWindowEP bean : beans) {
+ if (bean.id.equals(ToolWindowId.PROJECT_VIEW)) {
+ toolWindow = toolWindowManager.registerToolWindow(bean.id, new JLabel(), ToolWindowAnchor.fromText(bean.anchor), project,
+ false, bean.canCloseContents);
+ break;
+ }
+ }
+ }
+
+ ((ProjectViewImpl)ProjectView.getInstance(project)).setupImpl(toolWindow, loadPaneExtensions);
+ }
}
diff --git a/platform/testFramework/src/com/intellij/testFramework/TestDataProvider.java b/platform/testFramework/src/com/intellij/testFramework/TestDataProvider.java
index cc8376832e36..1ed87bbcb0fa 100644
--- a/platform/testFramework/src/com/intellij/testFramework/TestDataProvider.java
+++ b/platform/testFramework/src/com/intellij/testFramework/TestDataProvider.java
@@ -20,7 +20,6 @@ import com.intellij.openapi.actionSystem.DataProvider;
import com.intellij.openapi.actionSystem.PlatformDataKeys;
import com.intellij.openapi.editor.Editor;
import com.intellij.openapi.editor.impl.EditorComponentImpl;
-import com.intellij.openapi.fileEditor.FileEditorManager;
import com.intellij.openapi.fileEditor.OpenFileDescriptor;
import com.intellij.openapi.fileEditor.ex.FileEditorManagerEx;
import com.intellij.openapi.fileEditor.impl.text.TextEditorProvider;
@@ -50,18 +49,21 @@ public class TestDataProvider implements DataProvider {
if (CommonDataKeys.PROJECT.is(dataId)) {
return myProject;
}
- else if (CommonDataKeys.EDITOR.is(dataId) || OpenFileDescriptor.NAVIGATE_IN_EDITOR.is(dataId)) {
- return FileEditorManager.getInstance(myProject).getSelectedTextEditor();
+ FileEditorManagerEx manager = FileEditorManagerEx.getInstanceEx(myProject);
+ if (manager == null) {
+ return null;
+ }
+ if (CommonDataKeys.EDITOR.is(dataId) || OpenFileDescriptor.NAVIGATE_IN_EDITOR.is(dataId)) {
+ return manager.getSelectedTextEditor();
}
else if (PlatformDataKeys.FILE_EDITOR.is(dataId)) {
- Editor editor = FileEditorManager.getInstance(myProject).getSelectedTextEditor();
+ Editor editor = manager.getSelectedTextEditor();
return editor == null ? null : TextEditorProvider.getInstance().getTextEditor(editor);
}
else {
Editor editor = (Editor)getData(CommonDataKeys.EDITOR.getName());
if (editor != null) {
- FileEditorManagerEx manager = FileEditorManagerEx.getInstanceEx(myProject);
- Object managerData = manager.getData(dataId, editor, manager.getSelectedFiles()[0]);
+ Object managerData = manager.getData(dataId, editor, editor.getCaretModel().getCurrentCaret());
if (managerData != null) {
return managerData;
}
diff --git a/platform/testFramework/src/com/intellij/testFramework/fixtures/CodeInsightTestFixture.java b/platform/testFramework/src/com/intellij/testFramework/fixtures/CodeInsightTestFixture.java
index a309f9acda8f..581ca54b6baa 100644
--- a/platform/testFramework/src/com/intellij/testFramework/fixtures/CodeInsightTestFixture.java
+++ b/platform/testFramework/src/com/intellij/testFramework/fixtures/CodeInsightTestFixture.java
@@ -350,7 +350,8 @@ public interface CodeInsightTestFixture extends IdeaProjectTestFixture {
* hint text. Throws an assertion if no such intentions are found or if multiple intentions match the hint text.
*
* @param hint the text that the intention text should begin with.
- * @return the list of matching intentions
+ * @return the matching intention
+ * @throws java.lang.AssertionError if no intentions are found or if multiple intentions match the hint text.
*/
IntentionAction findSingleIntention(@NotNull String hint);
diff --git a/platform/testFramework/src/com/intellij/testFramework/fixtures/impl/HeavyIdeaTestFixtureImpl.java b/platform/testFramework/src/com/intellij/testFramework/fixtures/impl/HeavyIdeaTestFixtureImpl.java
index 27a45cbfe99e..72bbff443dfa 100644
--- a/platform/testFramework/src/com/intellij/testFramework/fixtures/impl/HeavyIdeaTestFixtureImpl.java
+++ b/platform/testFramework/src/com/intellij/testFramework/fixtures/impl/HeavyIdeaTestFixtureImpl.java
@@ -205,7 +205,7 @@ class HeavyIdeaTestFixtureImpl extends BaseFixture implements HeavyIdeaTestFixtu
Editor editor = (Editor)getData(CommonDataKeys.EDITOR.getName());
if (editor != null) {
FileEditorManagerEx manager = FileEditorManagerEx.getInstanceEx(myProject);
- return manager.getData(dataId, editor, manager.getSelectedFiles()[0]);
+ return manager.getData(dataId, editor, editor.getCaretModel().getCurrentCaret());
}
else if (LangDataKeys.IDE_VIEW.is(dataId)) {
VirtualFile[] contentRoots = ProjectRootManager.getInstance(myProject).getContentRoots();
@@ -217,6 +217,7 @@ class HeavyIdeaTestFixtureImpl extends BaseFixture implements HeavyIdeaTestFixtu
}
+ @NotNull
@Override
public PsiDirectory[] getDirectories() {
return new PsiDirectory[] {psiDirectory};