From ba80ee4277927bafe9f83c96641ca0845561abec Mon Sep 17 00:00:00 2001 From: Dmitry Jemerov Date: Tue, 19 Apr 2011 16:00:33 +0200 Subject: [PATCH] StructureViewTestCase -> CodeInsightTestFixture.testStructureView() --- .../testFramework/StructureViewTestCase.java | 54 ------------------- .../fixtures/CodeInsightTestFixture.java | 9 ++++ .../impl/CodeInsightTestFixtureImpl.java | 36 ++++++++++--- 3 files changed, 37 insertions(+), 62 deletions(-) delete mode 100644 java/testFramework/src/com/intellij/testFramework/StructureViewTestCase.java diff --git a/java/testFramework/src/com/intellij/testFramework/StructureViewTestCase.java b/java/testFramework/src/com/intellij/testFramework/StructureViewTestCase.java deleted file mode 100644 index 614c3c4af163..000000000000 --- a/java/testFramework/src/com/intellij/testFramework/StructureViewTestCase.java +++ /dev/null @@ -1,54 +0,0 @@ -/* - * Copyright 2000-2010 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.testFramework; - -import com.intellij.codeInsight.CodeInsightTestCase; -import com.intellij.ide.structureView.StructureViewBuilder; -import com.intellij.ide.structureView.newStructureView.StructureViewComponent; -import com.intellij.lang.LanguageStructureViewBuilder; -import com.intellij.openapi.fileEditor.FileEditor; -import com.intellij.openapi.fileEditor.FileEditorManager; -import com.intellij.openapi.util.Disposer; -import com.intellij.openapi.vfs.VirtualFile; - - -public abstract class StructureViewTestCase extends CodeInsightTestCase { - protected interface Test { - void test(StructureViewComponent component); - } - - protected void doTest(final Test test) { - assert myFile != null : "configure first"; - - final VirtualFile vFile = myFile.getVirtualFile(); - assert vFile != null : "no virtual file for " + myFile; - - final FileEditor fileEditor = FileEditorManager.getInstance(getProject()).getSelectedEditor(vFile); - assert fileEditor != null : "editor not opened for " + vFile; - - final StructureViewBuilder builder = LanguageStructureViewBuilder.INSTANCE.getStructureViewBuilder(myFile); - assert builder != null : "no builder for " + myFile; - - StructureViewComponent component = null; - try { - component = (StructureViewComponent)builder.createStructureView(fileEditor, myProject); - test.test(component); - } - finally { - if (component != null) Disposer.dispose(component); - } - } -} diff --git a/platform/testFramework/src/com/intellij/testFramework/fixtures/CodeInsightTestFixture.java b/platform/testFramework/src/com/intellij/testFramework/fixtures/CodeInsightTestFixture.java index 746a46a62a71..145d0495ccd1 100644 --- a/platform/testFramework/src/com/intellij/testFramework/fixtures/CodeInsightTestFixture.java +++ b/platform/testFramework/src/com/intellij/testFramework/fixtures/CodeInsightTestFixture.java @@ -24,6 +24,7 @@ import com.intellij.codeInspection.InspectionProfileEntry; import com.intellij.codeInspection.InspectionToolProvider; import com.intellij.codeInspection.LocalInspectionTool; import com.intellij.codeInspection.ex.InspectionTool; +import com.intellij.ide.structureView.newStructureView.StructureViewComponent; import com.intellij.openapi.actionSystem.AnAction; import com.intellij.openapi.actionSystem.Presentation; import com.intellij.openapi.editor.Document; @@ -38,6 +39,7 @@ import com.intellij.psi.PsiManager; import com.intellij.psi.PsiReference; import com.intellij.testFramework.TestDataFile; import com.intellij.usageView.UsageInfo; +import com.intellij.util.Consumer; import org.jetbrains.annotations.NonNls; import org.jetbrains.annotations.NotNull; import org.jetbrains.annotations.Nullable; @@ -371,4 +373,11 @@ public interface CodeInsightTestFixture extends IdeaProjectTestFixture { void testFoldingWithCollapseStatus(String fileName); void assertPreferredCompletionItems(int selected, @NonNls String... expected); + + /** + * Initializes the structure view for the file currently loaded in the editor and passes it to the specified consumer. + * + * @param consumer the callback in which the actual testing of the structure view is performed. + */ + void testStructureView(Consumer consumer); } diff --git a/platform/testFramework/src/com/intellij/testFramework/fixtures/impl/CodeInsightTestFixtureImpl.java b/platform/testFramework/src/com/intellij/testFramework/fixtures/impl/CodeInsightTestFixtureImpl.java index 3a28d06926e1..e4f17f8db55a 100644 --- a/platform/testFramework/src/com/intellij/testFramework/fixtures/impl/CodeInsightTestFixtureImpl.java +++ b/platform/testFramework/src/com/intellij/testFramework/fixtures/impl/CodeInsightTestFixtureImpl.java @@ -47,6 +47,9 @@ import com.intellij.find.impl.FindManagerImpl; import com.intellij.ide.DataManager; import com.intellij.ide.startup.StartupManagerEx; import com.intellij.ide.startup.impl.StartupManagerImpl; +import com.intellij.ide.structureView.StructureViewBuilder; +import com.intellij.ide.structureView.newStructureView.StructureViewComponent; +import com.intellij.lang.LanguageStructureViewBuilder; import com.intellij.lang.annotation.HighlightSeverity; import com.intellij.openapi.Disposable; import com.intellij.openapi.actionSystem.AnAction; @@ -69,10 +72,7 @@ import com.intellij.openapi.editor.markup.RangeHighlighter; import com.intellij.openapi.extensions.ExtensionPoint; import com.intellij.openapi.extensions.ExtensionPointName; import com.intellij.openapi.extensions.ExtensionsArea; -import com.intellij.openapi.fileEditor.FileDocumentManager; -import com.intellij.openapi.fileEditor.FileEditorManager; -import com.intellij.openapi.fileEditor.OpenFileDescriptor; -import com.intellij.openapi.fileEditor.TextEditor; +import com.intellij.openapi.fileEditor.*; import com.intellij.openapi.fileEditor.impl.text.TextEditorProvider; import com.intellij.openapi.fileTypes.FileType; import com.intellij.openapi.fileTypes.FileTypeManager; @@ -109,10 +109,7 @@ import com.intellij.refactoring.rename.RenamePsiElementProcessor; import com.intellij.testFramework.*; import com.intellij.testFramework.fixtures.*; import com.intellij.usageView.UsageInfo; -import com.intellij.util.ArrayUtil; -import com.intellij.util.CommonProcessors; -import com.intellij.util.Function; -import com.intellij.util.SmartList; +import com.intellij.util.*; import com.intellij.util.containers.ContainerUtil; import com.intellij.util.indexing.FileBasedIndex; import com.intellij.util.ui.UIUtil; @@ -1776,6 +1773,29 @@ public class CodeInsightTestFixtureImpl extends BaseFixture implements CodeInsig assertEquals(selected, list.getSelectedIndex()); } + @Override + public void testStructureView(Consumer consumer) { + assert myFile != null : "configure first"; + + final VirtualFile vFile = myFile.getVirtualFile(); + assert vFile != null : "no virtual file for " + myFile; + + final FileEditor fileEditor = FileEditorManager.getInstance(getProject()).getSelectedEditor(vFile); + assert fileEditor != null : "editor not opened for " + vFile; + + final StructureViewBuilder builder = LanguageStructureViewBuilder.INSTANCE.getStructureViewBuilder(myFile); + assert builder != null : "no builder for " + myFile; + + StructureViewComponent component = null; + try { + component = (StructureViewComponent)builder.createStructureView(fileEditor, myProjectFixture.getProject()); + consumer.consume(component); + } + finally { + if (component != null) Disposer.dispose(component); + } + } + private LookupImpl getLookup() { return (LookupImpl)LookupManager.getActiveLookup(myEditor); }