From 153cd19d31c3d81a427b2e7634b40500e8c2e1af Mon Sep 17 00:00:00 2001 From: Roman Shevchenko Date: Thu, 27 Apr 2017 13:47:26 +0200 Subject: [PATCH] [tests] base class for Java folding tests --- .../folding/JavaFolding8Test.groovy | 37 ++------------ .../folding/JavaFoldingTest.groovy | 34 ++----------- .../folding/JavaFoldingTestCase.java | 50 +++++++++++++++++++ 3 files changed, 56 insertions(+), 65 deletions(-) create mode 100644 java/java-tests/testSrc/com/intellij/codeInsight/folding/JavaFoldingTestCase.java diff --git a/java/java-tests/testSrc/com/intellij/codeInsight/folding/JavaFolding8Test.groovy b/java/java-tests/testSrc/com/intellij/codeInsight/folding/JavaFolding8Test.groovy index 2f6e81dc1c53..77a3619f8cdb 100644 --- a/java/java-tests/testSrc/com/intellij/codeInsight/folding/JavaFolding8Test.groovy +++ b/java/java-tests/testSrc/com/intellij/codeInsight/folding/JavaFolding8Test.groovy @@ -1,5 +1,5 @@ /* - * Copyright 2000-2016 JetBrains s.r.o. + * Copyright 2000-2017 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. @@ -15,43 +15,21 @@ */ package com.intellij.codeInsight.folding -import com.intellij.codeInsight.folding.impl.CodeFoldingManagerImpl -import com.intellij.codeInsight.folding.impl.JavaCodeFoldingSettingsImpl import com.intellij.codeInsight.folding.impl.JavaFoldingBuilder -import com.intellij.openapi.editor.ex.FoldingModelEx import com.intellij.openapi.editor.impl.FoldingModelImpl import com.intellij.testFramework.LightProjectDescriptor -import com.intellij.testFramework.fixtures.LightCodeInsightFixtureTestCase import org.jetbrains.annotations.NotNull /** * @author peter */ -class JavaFolding8Test extends LightCodeInsightFixtureTestCase { - - JavaCodeFoldingSettingsImpl myFoldingSettings - JavaCodeFoldingSettingsImpl myFoldingStateToRestore - +class JavaFolding8Test extends JavaFoldingTestCase { @NotNull @Override protected LightProjectDescriptor getProjectDescriptor() { return JAVA_8 } - @Override - void setUp() { - super.setUp() - myFoldingSettings = JavaCodeFoldingSettings.instance as JavaCodeFoldingSettingsImpl - myFoldingStateToRestore = new JavaCodeFoldingSettingsImpl() - myFoldingStateToRestore.loadState(myFoldingSettings) - } - - @Override - protected void tearDown() { - myFoldingSettings.loadState(myFoldingStateToRestore) - super.tearDown() - } - void "test no plain lambda folding where anonymous class can be real lambda but fold otherwise"() { myFixture.addClass('interface Runnable2 { void run(); }') myFixture.addClass('abstract class MyAction { public void run(); public void update() {} }') @@ -113,13 +91,4 @@ class Test { assert foldingModel.getCollapsedRegionAtOffset(text.indexOf("System.out.println"))?.placeholderText == '{...}' } - - private def configure(String text) { - myFixture.configureByText("a.java", text) - CodeFoldingManagerImpl.getInstance(getProject()).buildInitialFoldings(myFixture.editor) - def foldingModel = myFixture.editor.foldingModel as FoldingModelEx - foldingModel.rebuild() - myFixture.doHighlighting() - } - -} +} \ No newline at end of file diff --git a/java/java-tests/testSrc/com/intellij/codeInsight/folding/JavaFoldingTest.groovy b/java/java-tests/testSrc/com/intellij/codeInsight/folding/JavaFoldingTest.groovy index aea519878cb1..d0d35ca8dc68 100644 --- a/java/java-tests/testSrc/com/intellij/codeInsight/folding/JavaFoldingTest.groovy +++ b/java/java-tests/testSrc/com/intellij/codeInsight/folding/JavaFoldingTest.groovy @@ -17,8 +17,6 @@ package com.intellij.codeInsight.folding import com.intellij.codeInsight.CodeInsightSettings import com.intellij.codeInsight.daemon.DaemonCodeAnalyzerSettings -import com.intellij.codeInsight.folding.impl.CodeFoldingManagerImpl -import com.intellij.codeInsight.folding.impl.JavaCodeFoldingSettingsImpl import com.intellij.codeInsight.folding.impl.JavaFoldingBuilder import com.intellij.find.FindManager import com.intellij.openapi.actionSystem.IdeActions @@ -37,7 +35,6 @@ import com.intellij.psi.PsiMethod import com.intellij.psi.search.GlobalSearchScope import com.intellij.testFramework.EditorTestUtil import com.intellij.testFramework.LightProjectDescriptor -import com.intellij.testFramework.fixtures.LightCodeInsightFixtureTestCase import com.intellij.testFramework.fixtures.impl.CodeInsightTestFixtureImpl import com.intellij.util.DocumentUtil import org.intellij.lang.annotations.Language @@ -45,33 +42,16 @@ import org.jetbrains.annotations.NotNull /** * @author Denis Zhdanov - * @since 1/17/11 1:00 PM + * @since 17.01.2011 */ @SuppressWarnings("ALL") // too many warnings in injections -public class JavaFoldingTest extends LightCodeInsightFixtureTestCase { - def JavaCodeFoldingSettingsImpl myFoldingSettings - def JavaCodeFoldingSettingsImpl myFoldingStateToRestore - +class JavaFoldingTest extends JavaFoldingTestCase { @NotNull @Override protected LightProjectDescriptor getProjectDescriptor() { return JAVA_1_7 } - @Override - public void setUp() { - super.setUp() - myFoldingSettings = JavaCodeFoldingSettings.instance as JavaCodeFoldingSettingsImpl - myFoldingStateToRestore = new JavaCodeFoldingSettingsImpl() - myFoldingStateToRestore.loadState(myFoldingSettings) - } - - @Override - protected void tearDown() { - myFoldingSettings.loadState(myFoldingStateToRestore) - super.tearDown() - } - public void testEndOfLineComments() { doTest() } public void testEditingImports() { @@ -561,14 +541,6 @@ class Test { assertEquals(6, folds[0].endOffset) } - private def configure(String text) { - myFixture.configureByText("a.java", text) - CodeFoldingManagerImpl.getInstance(getProject()).buildInitialFoldings(myFixture.editor); - def foldingModel = myFixture.editor.foldingModel as FoldingModelEx - foldingModel.rebuild() - myFixture.doHighlighting() - } - public void "test simple property accessors in one line"() { @Language("JAVA") def text = """class Foo { @@ -1048,4 +1020,4 @@ class Foo { private int getExpandedFoldRegionsCount() { return myFixture.editor.foldingModel.allFoldRegions.count { it.isExpanded() ? 1 : 0} } -} +} \ No newline at end of file diff --git a/java/java-tests/testSrc/com/intellij/codeInsight/folding/JavaFoldingTestCase.java b/java/java-tests/testSrc/com/intellij/codeInsight/folding/JavaFoldingTestCase.java new file mode 100644 index 000000000000..17c344b446d6 --- /dev/null +++ b/java/java-tests/testSrc/com/intellij/codeInsight/folding/JavaFoldingTestCase.java @@ -0,0 +1,50 @@ +/* + * Copyright 2000-2017 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.codeInsight.folding; + +import com.intellij.codeInsight.folding.impl.JavaCodeFoldingSettingsImpl; +import com.intellij.openapi.editor.ex.FoldingModelEx; +import com.intellij.testFramework.fixtures.LightCodeInsightFixtureTestCase; + +public abstract class JavaFoldingTestCase extends LightCodeInsightFixtureTestCase { + protected JavaCodeFoldingSettings myFoldingSettings; + private JavaCodeFoldingSettings myFoldingSettingsBackup; + + @Override + protected void setUp() throws Exception { + super.setUp(); + myFoldingSettings = JavaCodeFoldingSettings.getInstance(); + myFoldingSettingsBackup = new JavaCodeFoldingSettingsImpl(); + ((JavaCodeFoldingSettingsImpl)myFoldingSettingsBackup).loadState((JavaCodeFoldingSettingsImpl)myFoldingSettings); + } + + @Override + protected void tearDown() throws Exception { + try { + ((JavaCodeFoldingSettingsImpl)myFoldingSettings).loadState(((JavaCodeFoldingSettingsImpl)myFoldingSettingsBackup)); + } + finally { + super.tearDown(); + } + } + + protected void configure(String text) { + myFixture.configureByText("a.java", text); + CodeFoldingManager.getInstance(getProject()).buildInitialFoldings(myFixture.getEditor()); + ((FoldingModelEx)myFixture.getEditor().getFoldingModel()).rebuild(); + myFixture.doHighlighting(); + } +} \ No newline at end of file