[tests] base class for Java folding tests

This commit is contained in:
Roman Shevchenko
2017-04-27 13:52:59 +02:00
parent e720a79919
commit 153cd19d31
3 changed files with 56 additions and 65 deletions
@@ -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()
}
}
}
@@ -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}
}
}
}
@@ -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();
}
}